In Yahoo! Mail, the paragraph has `<br>` after `<span>` element which has
`background-color`. In this case, Gecko creates the following DOM tree after
splitting the paragraph:
```
<div><span>foo</span></div><div><span></span><br></div>
```
Then, the empty `<span>` in the right paragraph will be removed by the
post-processing. However, in this case, the inline element is required for
preserving the style continued from the previous paragraph.
In this case, we should move the `<br>` element into the `<span>` to make
it non-empty and avoid it to be removed. This is compatible with Chrome.
Differential Revision: https://phabricator.services.mozilla.com/D151345
When reading Dwarf unwind info, `CallFrameInfo::State::DoInstruction` is
called once per CFI instruction. At both call sites, the call is driven by a
simple loop. Because each call doesn't do much work, the call overhead is
quite high, and there are huge numbers of CFI instructions to be processed.
This patch moves the loop into its own method `DoInstructions`, and adds
annotations in the hope of getting `DoInstruction` inlined into the loop.
On an Intel Core i5 1135G7 at circa 4 GHz, this reduces the Dwarf read time
from 0.27 seconds (after bugs 1754932, 1777540 and 1777949 have landed) to
0.26 seconds. Not much of a win, but on the other hand, the insn count falls
from 3906 million to 3640 million, which seems like a worthwhile win for what
is a trivial change.
Differential Revision: https://phabricator.services.mozilla.com/D151262
When setting focus to input element, Gecko sets focused element to central via
`zoomToFocusedInput`. So when we receives `focusin` event, content may be
scrolled and zoomed. To pass correct element rectangle, we have to wait until
it is completed.
Fennec added `PanZoom:StateChange` event to listen APZ state. So GV should use
same way.
Differential Revision: https://phabricator.services.mozilla.com/D150453
The tag bit is now only used for the activation's `exitFP` field.
Similar to part 2, this makes it easier for stack unwinders to unwind through Wasm frames.
Differential Revision: https://phabricator.services.mozilla.com/D151252
If there's no `CodeRange` for a frame's return address, this must be a direct call
from JIT code.
Use `AssertDirectJitCall` in a few more places to help catch issues with this.
Depends on D151250
Differential Revision: https://phabricator.services.mozilla.com/D151251
The `unwoundJitCallerFP_` is only used when the iterator is `done()` (to transition
to the JS JIT frame iterator after either the `JitEntry` stub or a direct call).
With this patch, we only set `unwoundJitCallerFP_` right before we're done iterating.
Depends on D151249
Differential Revision: https://phabricator.services.mozilla.com/D151250
Treat the `InterpEntry` stub more like the `JitEntry` stub in `ProfilingFrameIterator`.
This lets us remove the `FakeInterpEntry` `ExitReason`, which was a bit of a hack because
this is not an exit.
Depends on D151247
Differential Revision: https://phabricator.services.mozilla.com/D151248
This will let native stack unwinders (such as 'perf' or crash-stats tooling) unwind
from Wasm to C++ frames.
Depends on D151246
Differential Revision: https://phabricator.services.mozilla.com/D151247
This will let us preserve the caller's frame pointer in later patches. It's also more
consistent with what we do for the JitEntry stub.
Differential Revision: https://phabricator.services.mozilla.com/D151246
To ensure that we don't ship a schema that breaks Experimenter, we now have
in-tree tests that validate FxMS messages against our schema using the same
JSON Schema evaluator (python-jsonchema).
Our test corpus is the same as test_PanelTestProvider.js. We cannot have
PanelTestProvider.jsm fetch the messages from the JSON due to fetch() not being
supported in the newtab npm tests.
Differential Revision: https://phabricator.services.mozilla.com/D151169
Current implementation quits video overlay rendering on the error. If the error continues, the video overlay is not rendered correctly. Then it seems better to disable video overlay on the error.
Differential Revision: https://phabricator.services.mozilla.com/D151350