This code was already handling the world going away, but did not handle the case
of just getting unbound, which can happen if some selection listener (e.g.,
AccessibleCaret) flushes layout.
Differential Revision: https://phabricator.services.mozilla.com/D20469
--HG--
extra : moz-landing-system : lando
This will avoid trying to generate them during artifact builds.
Depends on D20587
Differential Revision: https://phabricator.services.mozilla.com/D20436
--HG--
extra : moz-landing-system : lando
ZoneCellIter can return cells that are about to be finalised in the next GC
slice. These cells can be used briefly but cannot be kept around and the GC
needs this behaviour.
This change introduces ZoneCellIterSafe which will not return about-to-be
finalised cells. Zone::cellIter() will use it now, the old behaviour is now
in cellIterUnsafe().
Update several uses of cellIter() to cellIterUnsafe() where that behaviour
is needed.
Differential Revision: https://phabricator.services.mozilla.com/D19890
--HG--
extra : moz-landing-system : lando
* Be sure to set mInitResult = S_OK when we've already done process-wide initialization;
* Don't bother checking for Win32 lockdown unless we're not in the parent process
Differential Revision: https://phabricator.services.mozilla.com/D20386
--HG--
extra : moz-landing-system : lando
By stopping composite during handling device reset, we could reduce a possibility of crashes.
Differential Revision: https://phabricator.services.mozilla.com/D20440
--HG--
extra : moz-landing-system : lando
Depends on D20195
This series of patches depends on the patch from [Bug 1525238](https://bugzilla.mozilla.org/show_bug.cgi?id=1525238)
- adds method to identify a CSS Rule actor by id
- adds context menu option to the Changes panel to allow copying the rule's authored text to the clipboard
Differential Revision: https://phabricator.services.mozilla.com/D20196
--HG--
extra : moz-landing-system : lando
This series of patches depends on the patch from [Bug 1525238](https://bugzilla.mozilla.org/show_bug.cgi?id=1525238)
This patch adds a new method to the StyleRuleActor on the server to expose the full text content of a CSS rule over the protocol to the client. This means exposing the CSS rule's authored text including comments and any nested rules if the target rule is an ancestor rule, like @media or @supports.
There's minor refactoring to include additional rule types for which StyleRuleActors will be created: @supports, @media, @keyframes. These are not explicitly rendered in the Rule view and shouldn't impact it. The Rule view filters for CSS Style Rules, element inline style and has special handling for keyframe at-rules.
Differential Revision: https://phabricator.services.mozilla.com/D20195
--HG--
extra : moz-landing-system : lando
FramePointerStackWalk can trip ASAN when walking the stack and reading outside
of ASAN-protected objects.
Differential Revision: https://phabricator.services.mozilla.com/D20208
--HG--
extra : moz-landing-system : lando
This bug occurs under the following conditions:
- The clip chain instance has multiple clip items.
- The first item in the clip chain is a clip rectangle, with:
- ClipMode::Clip
- Is in the same coordinate system as the primitive.
In this case, the code would skip adding the clip rect to the
mask (due to the same coord system). However, the logic that
determines whether to render subsequent masks with blend disabled
or multiplicative blend was only considering the index of the
clip item in the clip chain. In this case, these masks would
get added to the blend enabled batches, but the first clip mask
which would have written the initial mask values was skipped.
The end result was that the subsequent clip masks would be
blending with uninitialized render target contents from a previous
frame.
This patch changes the logic to track when the first clip mask
has actually been added to the batch, rather than relying on
the index. In this case, it means that the rounded rect mask
will get drawn in the blend disabled path, writing the correct
mask values without blending with the existing render target contents.
Differential Revision: https://phabricator.services.mozilla.com/D20590
--HG--
extra : moz-landing-system : lando
Without this patch, if we got a display item with the root clip id, we
would always clip that display item with the root clip of the enclosing
pipeline. However, this violates the documented semantics on
ClipId::root() which states that it effectively does no clipping.
Specifically, it could end up doing clipping if the display item was
part of a scrollframe that was scrolled such that the display item
extended beyond the enclosing pipeline.
This patch adds an extra argument to some of the flattening functions -
the flag is true when recursing the DL between a pipeline item and the
first stacking context that has a clip. For these items, the pipeline
clip is applied. Once inside the stacking context, the pipeline clip is
not applied.
Differential Revision: https://phabricator.services.mozilla.com/D20483
--HG--
extra : moz-landing-system : lando
The old complicated code here was working around a fundamental race in the
test. The test was trying to do the following:
1) Open a new tab. This sends an IPC message to do that and to start loading
about:blank in the tab.
2) Add a "load" listener. This sends an IPC message to add the listener.
3) Start loading the URL we really want to load. This sends an IPC message to
start the load.
There are two races here: the message from step 2 can be received before or
after the about:blank load is done, and the message from step 3 can be received
before or after the about:blank load is done. If step 2 wins the race (we add
the listener before the about:blank load is done) but step 3 loses the race
(new load starts only after the about:blank load is done), then we would get a
load event for the about:blank, not for the url we care about.
The test worked around this by having step 2 add a listener for the
"DOMDocElementInserted" event, which about:blank did not fire. Then when that
happened (indicating that the load from step 3 is now in progress), it added a
"load" listener. This fixed the race.
Bug 1528146 fixed about:blank to also fire "DOMDocElementInserted", so the test
became racy again. Now if the "DOMDocElementInserted" listener got added
_after_ the about:blank load had fired that event (which is what usually
happened), then the test passed. But if the IPC message from step 2 to add the
"DOMDocElementInserted" listener won the race against the about:blank load
firing "DOMDocElementInserted", then we added the "load" listener too early and
got the "load" event for the about:blank, not the document we cared about.
The fix is to just use the (now) existing openNewForegroundTab function which
lets us pass in a url, then wait until that URL is loaded, instead of trying to
reinvent that wheel.
There is an additional ride-along change to make openNewForegroundTab always
create a new process in this test, which is the original intent of the test but
wasn't necessarily guaranteed by the old code.
Differential Revision: https://phabricator.services.mozilla.com/D20544
--HG--
extra : moz-landing-system : lando
Will ask for r? from janerik once product has approved the data collected here.
Differential Revision: https://phabricator.services.mozilla.com/D19529
--HG--
extra : moz-landing-system : lando
A few instances of snprintf are replaced with SprintfLiteral, and a
implicit constructor is made explicit.
Differential Revision: https://phabricator.services.mozilla.com/D20401
--HG--
extra : moz-landing-system : lando
As per the help message, this can create significant pauses, but it can be
useful to developers for local tests.
Differential Revision: https://phabricator.services.mozilla.com/D20216
--HG--
extra : moz-landing-system : lando
The code was added to diagnose an issue that was likely due to heap corruption.
The vtable of the objects was sometimes 0. More details in bug 1153929.
That crash doesn't reproduce anymore so it should be OK to remove.
Differential Revision: https://phabricator.services.mozilla.com/D20561
--HG--
extra : moz-landing-system : lando
Looks like this is not needed anymore and we can just use SurfaceTexture
everywhere.
Differential Revision: https://phabricator.services.mozilla.com/D20527
--HG--
extra : moz-landing-system : lando
This position ends up being used for source notes in some cases now, meaning that this can
cause breakpoints to be given the wrong position when assigned to a variable. This fixes
that by using the correct token for the position value.
This fix also ensures that `cur->pos.end` is updated when skipping functions because
expression statements set their end based on the end position of the expression, and
if the expression statements end token is the end of a skipped function, we would
otherwise read the wrong position triggering assertion failures.
Differential Revision: https://phabricator.services.mozilla.com/D19714
--HG--
extra : moz-landing-system : lando
The blur event doesn't bubble so this wouldn't actually listen to fields getting blurred. See bug 1138774.
Differential Revision: https://phabricator.services.mozilla.com/D20396
--HG--
extra : moz-landing-system : lando
It wasn't clear in callee code that the window was the top-window and it wasn't necessary in many cases. Relying on the top-window would also cause problems with Fission if the windows are in separate processes.
Differential Revision: https://phabricator.services.mozilla.com/D20395
--HG--
extra : moz-landing-system : lando