Commit graph

61 commits

Author SHA1 Message Date
Hiroyuki Ikezoe
150dbc6970 Bug 1856088 - Handle scroll anchor adjustments as an absolute scroll position updates behind a pref. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D190888
2023-10-25 05:55:26 +00:00
Hiroyuki Ikezoe
3b13152733 Bug 1768393 - Split out ScrollSnapInfo. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D184333
2023-09-12 01:33:17 +00:00
Botond Ballo
2740392b19 Bug 1824480 - Remove ScrollMetadata::mBackgroundColor which is no longer used. r=dlrobertson
This field appears to be unused since bug 1349418.

Differential Revision: https://phabricator.services.mozilla.com/D173598
2023-04-04 18:00:38 +00:00
Dan Robertson
62e4d2a991 Bug 1759627 - Dump the WebRenderScrollLayerData on the compositor side. r=botond
When adding APZC info to the APZ tree log when apz.printtree=true, dump the
WebRenderScrollLayerData.

Differential Revision: https://phabricator.services.mozilla.com/D146248
2022-05-20 22:38:57 +00:00
Hiroyuki Ikezoe
9de4521753 Bug 1766192 - Introduce SnapTarget struct along with snap-area for each element. r=botond
In the next change we will use the snap-area to implement `snap-score`
properly.

Differential Revision: https://phabricator.services.mozilla.com/D144532
2022-05-10 08:51:37 +00:00
Timothy Nikkel
0250d89cfa Bug 1733747. Remove remaining critical display port code. r=botond
There is one thing to note in this patch that is a change: this patch changes the displayport that we log for test purposes from the critical display port to the display port.

This will only be different on android. If tests were checking this then they were broken because the critical display port has no significance. I did a quick survey of the tests I could find that used this. None of them seem like they really want the critical display port (given the new world where critical display port has no significance).

Depends on D127350

Differential Revision: https://phabricator.services.mozilla.com/D127351
2022-01-17 10:29:44 +00:00
Timothy Nikkel
20dbba5c10 Bug 1733363. Make FrameMetrics::mCumulativeResolution a 1d scale. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D127115
2021-10-09 12:49:40 +00:00
Timothy Nikkel
44c1ebd71b Bug 1729784. Remove unused FrameMetrics::mExtraResolution. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D124978
2021-09-23 22:07:26 +00:00
Timothy Nikkel
0b5eae3cc1 Bug 1731929. Add transform to ancestor scale to FrameMetrics/RepaintRequest. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D126305
2021-09-23 10:29:44 +00:00
Timothy Nikkel
e913e150ed Bug 1729606. Remove unused ScrollMetadata::mScrollClip. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D125473
2021-09-14 00:05:48 +00:00
Timothy Nikkel
6ec47c43ec Bug 1706865. Factor out a couple of FrameMetrics calculations so they can be used on variables outside the metrics. r=botond
We use this in the next patch.

Differential Revision: https://phabricator.services.mozilla.com/D113071
2021-04-28 03:08:08 +00:00
Botond Ballo
3fe9749ca2 Bug 1691572 - Rename CalculateRootCompositionSize() to CalculateBoundingCompositionSize(). r=tnikkel
Since bug 1650183, the value returned by this function is not
necessarily the composition size of the RCD-RSF, but may be
a smaller size suitable for bounding the composited size of
scroll frames in a given process.

Differential Revision: https://phabricator.services.mozilla.com/D104463
2021-02-08 23:31:53 +00:00
Timothy Nikkel
ddeb475085 Bug 1687927. Don't request a repaint for a scroll update of type NewScrollFrame that doesn't change the scroll offset. r=botond
https://searchfox.org/mozilla-central/rev/2c06b16a0c15ae340a0532e319cbf89ef9d21b68/gfx/layers/apz/src/AsyncPanZoomController.cpp#4866

scrollOffsetUpdated gets set to true if we get basically any scroll update, including a NewScrollFrame update that we create for every new scroll frame that just informs apzc the scroll offset is (0,0).

scrollOffsetUpdated being true means RequestContentRepaint gets called a little later. RequestContentRepaint causes a full display port to be set on the content. That is undesirable because we set zero margin display ports (via SetZeroMarginDisplayPortOnAsyncScrollableAncestors) and we don't want to expand them to full display ports.

This bug is to fix the regression caused by bug 1662013. Two other bugs also regressed this (bug 1627012 and bug 1667475), and we need to fix all of them to fix the problem. Bug 1687886 is filed for the regression from bug 1667475. Bug 1687926 is filed for the regression from bug 1627012.

Before https://hg.mozilla.org/integration/autoland/rev/b78646d59e32 we only set scrollOffsetUpdated to true if GetScrollOffsetUpdated() was set to true on the metrics, and it didn't get set to true for new scroll frames.

Differential Revision: https://phabricator.services.mozilla.com/D102587
2021-02-02 04:24:08 +00:00
Andreea Pavel
fc3ef5c379 Backed out changeset 3a23af510b99 (bug 1687927) for build bustages at FrameMetrics.cpp on a CLOSED TREE 2021-02-02 06:20:11 +02:00
Timothy Nikkel
3d86f18bc1 Bug 1687927. Don't request a repaint for a scroll update of type NewScrollFrame that doesn't change the scroll offset. r=botond
https://searchfox.org/mozilla-central/rev/2c06b16a0c15ae340a0532e319cbf89ef9d21b68/gfx/layers/apz/src/AsyncPanZoomController.cpp#4866

scrollOffsetUpdated gets set to true if we get basically any scroll update, including a NewScrollFrame update that we create for every new scroll frame that just informs apzc the scroll offset is (0,0).

scrollOffsetUpdated being true means RequestContentRepaint gets called a little later. RequestContentRepaint causes a full display port to be set on the content. That is undesirable because we set zero margin display ports (via SetZeroMarginDisplayPortOnAsyncScrollableAncestors) and we don't want to expand them to full display ports.

This bug is to fix the regression caused by bug 1662013. Two other bugs also regressed this (bug 1627012 and bug 1667475), and we need to fix all of them to fix the problem. Bug 1687886 is filed for the regression from bug 1667475. Bug 1687926 is filed for the regression from bug 1627012.

Before https://hg.mozilla.org/integration/autoland/rev/b78646d59e32 we only set scrollOffsetUpdated to true if GetScrollOffsetUpdated() was set to true on the metrics, and it didn't get set to true for new scroll frames.

Differential Revision: https://phabricator.services.mozilla.com/D102587
2021-02-02 04:00:58 +00:00
Timothy Nikkel
d70b8b4af4 Bug 1685009. Update the visual offset too when doing a paint skip transaction to keep it in sync with layout offset. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D101149
2021-01-10 01:52:24 +00:00
Mihai Alexandru Michis
14cf518abd Backed out changeset 24da67c3c956 (bug 1685009) for causing crashtest timeouts. 2021-01-09 04:21:14 +02:00
Timothy Nikkel
b38ba95a2a Bug 1685009. Update the visual offset too when doing a paint skip transaction to keep it in sync with layout offset. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D101149
2021-01-08 20:20:48 +00:00
Kartikaya Gupta
bebe87ee86 Bug 1662019 - Replace the uint32_t scroll generation with ScrollGeneration. r=tnikkel
Depends on D97035

Differential Revision: https://phabricator.services.mozilla.com/D97036
2020-11-13 22:58:06 +00:00
Kartikaya Gupta
a0b73e45df Bug 1671048 - Tweak the FrameMetrics serializer. r=botond
- The presShell id seems to be not very useful, so drop it.
- Be more explicit about the scrollId which is generally quite useful (I always
  have a hard time remembering which number is the scrollId)
- Label the RCD node with "rcd" rather than a "1" vs "0"

Differential Revision: https://phabricator.services.mozilla.com/D93436
2020-10-14 17:59:52 +00:00
Kartikaya Gupta
b5d18c1d64 Bug 1668921 - Move ScrollMetadata serializer into a friend function. r=mattwoodrow
Depends on D92844

Differential Revision: https://phabricator.services.mozilla.com/D92845
2020-10-08 12:39:27 +00:00
Kartikaya Gupta
9472c5ba04 Bug 1668921 - Move FrameMetrics serializer into a friend function. r=mattwoodrow
Depends on D92843

Differential Revision: https://phabricator.services.mozilla.com/D92844
2020-10-08 12:39:12 +00:00
Kartikaya Gupta
83bb3063e2 Bug 1667863 - Move the stringification for OverscrollBehavior and OverscrollBehaviorInfo into ostream operators. r=mattwoodrow
Depends on D91652

Differential Revision: https://phabricator.services.mozilla.com/D91653
2020-09-29 02:56:47 +00:00
Kartikaya Gupta
1672cfac76 Bug 1667863 - Move OverscrollBehaviorInfo method bodies to .cpp file. r=mattwoodrow
Depends on D91651

Differential Revision: https://phabricator.services.mozilla.com/D91652
2020-09-29 02:56:32 +00:00
Timothy Nikkel
ad56527f09 Bug 1655130. Handle non-smooth scrolling with desktop zooming scrollbars. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D89408
2020-09-13 08:31:54 +00:00
Kartikaya Gupta
0863c04a4d Bug 1662013 - Move some function bodies into .cpp files. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D88746
2020-09-12 13:06:20 +00:00
Kartikaya Gupta
c942c614e3 Bug 1662013 - Update NotifyLayersUpdated to use the ScrollPositionUpdates. r=tnikkel,botond
This rewrites a big chunk of the NotifyLayersUpdated code (most of the code that
deals with incoming scroll requests from the main-thread) to instead iterate
through the list of ScrollPositionUpdates on the metadata and apply them in
order. A bunch of the ApplyXXXUpdateFrom functions on FrameMetrics have their
innards deduplicated and boil down to a single line, which is then inlined, so
those functions get removed entirely.

Note that this rewrite doesn't yet handle all the possible types of
ScrollPositionUpdate instances, just the ones that the old code handled. In the
future this support will be fleshed out with tests to exercise the relevant
codepaths.

There is also a change to nsGfxScrollFrame which slightly modifies the semantics
of mApzScrollPos to handle the case where multiple relative scrolls happen in a
single transaction. As the implementation now requires multiple relative
ScrollPositionUpdates rather than a single "unified" relative scroll in the
FrameMetrics, we need to update mApzScrollPos for each relative
ScrollPositionUpdate we generate.

Differential Revision: https://phabricator.services.mozilla.com/D88744
2020-09-12 13:06:10 +00:00
Botond Ballo
1ec395bfba Bug 1543485 - Preserve the relative scroll offset of the two viewports when accepting a main thread scroll update. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D87686
2020-08-21 01:25:37 +00:00
Botond Ballo
a4ecb96c87 Bug 1519285 - Replace most calls to FrameMetrics::{Get,Set}ScrollOffset() with calls to the more specific visual or layout accessors. r=kats
Likewise for RepaintRequest, and direct usages of mScrollOffset
inside FrameMetrics.

The general idea is:

 * APZ's copy of the FrameMetrics stores the visual scroll offset,
   so calls to GetScrollOffset() on it are replaced with
   GetVisualScrollOffset()

 * The layer tree's copy of the frame metrics (and copies derived
   from that like mLastContentPaintMetrics) currently stores the
   layout scroll offset, so calls to GetScrollOffset() on those
   are replaced with GetLayoutScrollOffset().

The latter changes are particularly important, as they enable us
to modify the layer tree's copy to store (a main thread snapshot
of) the visual offset in mScrollOffset in a future patch.

This patch intends no functional changes. In the cases where we
change GetScrollOffset() to GetLayoutScrollOffset(), mScrollOffset
and mLayoutViewport.TopLeft() should already be storing the same
thing.

The patch identifies a few usages as suspicious but leaves them
functionally unchanged for now.

A few problematic usages of GetScrollOffset() remain, which will
require other fixes to remove.

Differential Revision: https://phabricator.services.mozilla.com/D87159
2020-08-18 05:11:23 +00:00
Botond Ballo
6740c552aa Bug 1519285 - Keep subframes' mLayoutViewport in sync with the visual viewport. r=kats
This reduces the need for conditional logic, and clarifies the model that
AsyncPanZoomController::mFrameMetrics stores the up-to-date async-scrolled
versions of the visual and layout viewport offsets, while
mLastContentPaintMetrics stores the versions as of the last paint.

Differential Revision: https://phabricator.services.mozilla.com/D87154
2020-08-18 04:11:38 +00:00
Botond Ballo
671b80b84e Bug 1626659 - Fix non-unified build errors elsewhere in gfx/layers. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D69720

--HG--
extra : moz-landing-system : lando
2020-04-04 23:39:14 +00:00
Andrew Osmond
91b071ed14 Bug 1618345 - Enforce proper color management by splitting gfx::Color into sRGBColor and DeviceColor types. r=jrmuizel
gfx::Color is currently misused in many places. The DrawTargets expect
the color space to be in device space, e.g. what we are actually going
to draw using. Everything sitting above generally deals with sRGB, as
specified in CSS. Sometimes we missed the conversion from sRGB to device
space when issuing draw calls, and similarly sometimes we converted the
color to device space twice.

This patch splits the type in two. sRGBColor and DeviceColor now
represent sRGB and device color spaces respectively. DrawTarget only
accepts DeviceColor, and one can get a DeviceColor from an sRGBColor via
the ToDeviceColor helper API. The reftests now pass with color
management enabled for everything (e.g. CSS) instead of just tagged
raster images.

There will be a follow up patch to enable color management everywhere by
default on all supported platforms.

Differential Revision: https://phabricator.services.mozilla.com/D64771

--HG--
extra : moz-landing-system : lando
2020-03-09 14:16:17 +00:00
Emilio Cobos Álvarez
707ed5c818 Bug 1602421 - Remove some useless includes. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D56350

--HG--
extra : moz-landing-system : lando
2019-12-09 14:53:50 +00:00
Nicholas Nethercote
d8d32dfe97 Bug 1563139 - Update comments mentioning StaticPrefs.h. r=glandium
StaticPrefs.h will be removed two commits from now, so update these comments.

The patch removes the comment above SetUsesContainerScrolling() because it's
wrong -- it did use static prefs when introduced by bug 1181832 but then
stopped using static prefs in bug 1470504 -- and makes it inlinable.

Differential Revision: https://phabricator.services.mozilla.com/D39133

--HG--
extra : moz-landing-system : lando
2019-07-25 04:08:23 +00:00
Jean-Yves Avenard
022c57caf3 Bug 1550422 - P23. Remove now unused gfxPrefs. r=jrmuizel
And with some tidying some comments and removing stray #include "gfxPrefs.h"

Differential Revision: https://phabricator.services.mozilla.com/D31468

--HG--
extra : moz-landing-system : lando
2019-05-26 14:31:53 +00:00
Gurzau Raul
967bc2a754 Backed out 31 changesets (bug 1552643, bug 1550422) for xpcshell crash on a CLOSED TREE.
Backed out changeset e30c1aa75529 (bug 1552643)
Backed out changeset caadcd7e02d3 (bug 1552643)
Backed out changeset aa7086ab09be (bug 1552643)
Backed out changeset 0b4029671710 (bug 1550422)
Backed out changeset a16295296035 (bug 1550422)
Backed out changeset 3b70307c0db5 (bug 1550422)
Backed out changeset 69df7818d4a3 (bug 1550422)
Backed out changeset d98dfc565927 (bug 1550422)
Backed out changeset 6f0997976944 (bug 1550422)
Backed out changeset 0edd264464c2 (bug 1550422)
Backed out changeset 9ea6da7a74ec (bug 1550422)
Backed out changeset f855f9309c8b (bug 1550422)
Backed out changeset 1033546224a7 (bug 1550422)
Backed out changeset ade7384c6186 (bug 1550422)
Backed out changeset 75b04de7e99c (bug 1550422)
Backed out changeset 91c3acdb2454 (bug 1550422)
Backed out changeset 77d2f80257d1 (bug 1550422)
Backed out changeset e0cd10d35327 (bug 1550422)
Backed out changeset 097091082423 (bug 1550422)
Backed out changeset 2f328853c1ab (bug 1550422)
Backed out changeset f92f2cc29cb1 (bug 1550422)
Backed out changeset 6dc82f88333d (bug 1550422)
Backed out changeset c20f66494d69 (bug 1550422)
Backed out changeset 2ba22cddeb6f (bug 1550422)
Backed out changeset 3aa72f89e295 (bug 1550422)
Backed out changeset ab4c4e806977 (bug 1550422)
Backed out changeset 72e5de040dda (bug 1550422)
Backed out changeset 7d3c2d486706 (bug 1550422)
Backed out changeset 132e0b8d8468 (bug 1550422)
Backed out changeset 54c85ac75dd0 (bug 1550422)
Backed out changeset d7ba4a18dd54 (bug 1550422)
2019-05-25 09:07:49 +03:00
Jean-Yves Avenard
074aea57fe Bug 1550422 - P23. Remove now unused gfxPrefs. r=jrmuizel
And with some tidying some comments and removing stray #include "gfxPrefs.h"

Differential Revision: https://phabricator.services.mozilla.com/D31468

--HG--
extra : moz-landing-system : lando
2019-05-24 11:37:50 +00:00
Gurzau Raul
74c555539e Backed out 28 changesets (bug 1550422) for marionette AssertionError and failing browser_policy_hardware_acceleration.js on a CLOSED TREE.
Backed out changeset 5dd10a365ba9 (bug 1550422)
Backed out changeset 529f5be01ab9 (bug 1550422)
Backed out changeset b6861d3badf8 (bug 1550422)
Backed out changeset 059cff1a3dde (bug 1550422)
Backed out changeset 6ada1116b241 (bug 1550422)
Backed out changeset ca67e8e45262 (bug 1550422)
Backed out changeset a1961a51ae44 (bug 1550422)
Backed out changeset 1c90b9cb3ad4 (bug 1550422)
Backed out changeset 285fa46e4f26 (bug 1550422)
Backed out changeset e2938a444234 (bug 1550422)
Backed out changeset 7a930fc51125 (bug 1550422)
Backed out changeset 898ed02804fe (bug 1550422)
Backed out changeset e1b7abc99ae9 (bug 1550422)
Backed out changeset f781d415cef6 (bug 1550422)
Backed out changeset 2fef10a7cce5 (bug 1550422)
Backed out changeset ea64b4d8d4ff (bug 1550422)
Backed out changeset 86a8ba1b755c (bug 1550422)
Backed out changeset 9c0c9e80f309 (bug 1550422)
Backed out changeset 10c153ddbaea (bug 1550422)
Backed out changeset 60fe635ec2c9 (bug 1550422)
Backed out changeset a38796266b28 (bug 1550422)
Backed out changeset 2db647dcdf1c (bug 1550422)
Backed out changeset 952ddac02972 (bug 1550422)
Backed out changeset ba46b53643ec (bug 1550422)
Backed out changeset ca47ef6c59f7 (bug 1550422)
Backed out changeset f45f471a1a40 (bug 1550422)
Backed out changeset 371b4da5b771 (bug 1550422)
Backed out changeset 02fc78890032 (bug 1550422)
2019-05-23 05:59:44 +03:00
Jean-Yves Avenard
d59781ac33 Bug 1550422 - P23. Remove now unused gfxPrefs. r=jrmuizel
And with some tidying some comments and removing stray #include "gfxPrefs.h"

Differential Revision: https://phabricator.services.mozilla.com/D31468

--HG--
extra : moz-landing-system : lando
2019-05-22 12:46:30 +00:00
Hiroyuki Ikezoe
d3e6eadc70 Bug 1546219 - Rename mScrollSnapType{X,Y} to mScrollSnapStrictness{X,Y}. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D31746

--HG--
extra : moz-landing-system : lando
2019-05-22 17:43:34 +00:00
Hiroyuki Ikezoe
7356d7a696 Bug 1544198 - Use the proper frame to get scroll-snap-type value on the root element. r=botond
Now scroll-snap-type property on body element doesn't affect scroll position
so that scrollTo-scrollBy-snaps.html is needed to be modified to specify
scroll-snap-type on html.

Differential Revision: https://phabricator.services.mozilla.com/D27987

--HG--
extra : moz-landing-system : lando
2019-04-23 01:16:02 +00:00
Botond Ballo
58c5bb6a5a Bug 1519007 - Do not allow APZ to move the layout viewport outside the scrollable rect. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D24826

--HG--
extra : moz-landing-system : lando
2019-03-29 22:00:36 +00:00
Ryan Hunt
85ff4bdc33 Bug 1523969 part 8 - Move method definition inline comments to new line in 'gfx/'. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D21108

--HG--
extra : rebase_source : 48a4586f507891f3a2f0f970e9b9a0b15f0f3d61
2019-02-25 16:07:19 -06:00
Sylvestre Ledru
47a5dd1fb8 Bug 1519636 - Reformat everything to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D16388

--HG--
extra : moz-landing-system : lando
2019-01-16 08:50:07 +00:00
Botond Ballo
8e0fca04b3 Bug 1518584 - Rename {FrameMetrics,RepaintRequest}::mViewport to mLayoutViewport. r=kats
Depends on D15972

Differential Revision: https://phabricator.services.mozilla.com/D15973

--HG--
extra : moz-landing-system : lando
2019-01-09 15:34:34 +00:00
Sylvestre Ledru
265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Ryan Hunt
2226bcc8a3 Bug 1504220 - Move ScrollableLayerGuid, ViewID, ZoomConstraints from FrameMetrics.h r=botond
This commit attempts to lower the pain of modifying FrameMetrics.h.

It looks like most includes really only want ViewID or
ScrollableLayerGuid, so this commit factors them out into a separate
header. In the process FrameMetrics::ViewID is changed to
ScrollableLayerGuid::ViewID, which personally seems like a better
place for it now that we have RepaintRequest. Unfortunately that
requires a lot of places to be updated.

After this commit there are still a couple of major places that
FrameMetrics is included.
 * nsDisplayList.h
 * nsIScrollableFrame.h
 * Layers.h

Those are going to be more tricky or impossible to fix so they're
not in this commit.

Differential Revision: https://phabricator.services.mozilla.com/D10722

--HG--
rename : gfx/layers/FrameMetrics.h => gfx/layers/ScrollableLayerGuid.h
rename : gfx/layers/FrameMetrics.h => gfx/layers/ZoomConstraints.h
extra : rebase_source : 29ac79f91460a181bf7437af5c371207e22858e2
extra : source : c2e70e531075493fc6e374dcec862827f0bc6e77
2018-11-01 15:15:46 -05:00
Botond Ballo
7944b45377 Bug 1495055 - Adjust the composited layout viewport in AdjustScrollForSurfaceShift(). r=kats
Depends on D7368

Differential Revision: https://phabricator.services.mozilla.com/D7369

--HG--
extra : moz-landing-system : lando
2018-10-11 05:58:13 +00:00
Cosmin Sabou
5a7a044de4 Backed out 2 changesets (bug 1495055) for frequently asserting on FrameLayerBuilder.cpp in crashtest on OSX. a=backout
Backed out changeset fd895bb95b99 (bug 1495055)
Backed out changeset ed9b268816b4 (bug 1495055)
2018-10-05 12:36:11 +03:00
Botond Ballo
e1fd77184f Bug 1470504 - Remove the assertion in ScrollMetadata::SetUsesContainerScrolling(). r=kats
The assertion is not serving much purpose. Now that container scrolling is
a Live pref, checking it on the compositor side is racy if the pref is
flipped, and on the content side it's clear from the code that it will
only be set to true if the pref is turned on.

Differential Revision: https://phabricator.services.mozilla.com/D7339

--HG--
extra : rebase_source : 4ba80a40969aeac50f303e949472e51d05884fbd
extra : histedit_source : 54c1c0ac5d33a1523080f43ab10c2d01b545a3cc
2018-09-26 19:17:54 -04:00