This prevents calls to nsPresContext::NotifyInvalidation from using a transaction id that has already been revoked.
Android does "repeat" transactions, where one EndTransaction call results in two transactions. The first updates the "critical" area of painted content (immediately visible). The second updates the rest of the display port.
What happens in the specific failing test that triggered this is the first transaction results in invalidations from layer tree invalidation. The second transaction nothing has changed, so it gets revoked. When EndTransaction returns to the nsDisplayList code and calls nsPresContext::NotifyInvalidation it uses the last transaction id stored on the layer manager. But this has already been revoked.
Differential Revision: https://phabricator.services.mozilla.com/D25702
--HG--
extra : moz-landing-system : lando
This stack is pretty clear that calling StopListeningForVisibilityEvents
(via ClearTransaction) is a no-go from the cycle collector. We need to instead
just do the minimum version of bug 1540378, just reset mTransaction and move on.
Differential Revision: https://phabricator.services.mozilla.com/D25804
--HG--
extra : moz-landing-system : lando
The `nsresult` codes that mozStorage returns are often too generic. For
example, `NS_ERROR_FAILURE` might be anything from a SQL syntax error
to an invalid column name in a trigger.
This commit adds a `Conn::call_and_wrap_error` helper that checks the
last SQLite error, and returns that instead of `nsresult`. Not all
errors are SQLite errors, however, so we only use this for mozStorage
methods that return `convertResultCode`.
Differential Revision: https://phabricator.services.mozilla.com/D25179
--HG--
extra : moz-landing-system : lando
In Bug 1448408 ("Don't listen to visibility events"), I changed `U2FTokenManager::
ClearTransaction` to send aborts, to handle the new visibility states. However,
`WebAuthnTransactionParent::ActorDestroy` is called at the conclusion of IPC
shutdown, which calls `MaybeClearTransaction` in `U2FTokenManager`, which calls
ClearTransaction, which then tries to send an Abort, which is a state machine
failure since we just shut the IPC down.
This patch creates a new `AbortOngoingTransaction` method which is used
to send the aborts instead of shoehorning that into `ClearTransaction`, reverting
`ClearTransaction` back to the prior form, and instead changes `Register` and
`Sign` to call the new method.
Differential Revision: https://phabricator.services.mozilla.com/D25687
--HG--
extra : moz-landing-system : lando
The propType is changed to *not* required as the function is
only passed when the grouping pref is true.
Differential Revision: https://phabricator.services.mozilla.com/D25560
--HG--
extra : moz-landing-system : lando
This patch introduces a new marionette media test along
with a Youtube test.
To run the Youtube streaming test locally:
./mach marionette-test dom/media/test/marionette/test_youtube.py -vv --gecko-log -
Differential Revision: https://phabricator.services.mozilla.com/D23644
--HG--
extra : moz-landing-system : lando
Remove the now obsolete event handling code including `new Funcition`. Remove dialog.xml from eval() whitelist.
Differential Revision: https://phabricator.services.mozilla.com/D25742
--HG--
extra : moz-landing-system : lando
`nsIControllerCommandTable` isn't implemented with JS even in comm-central nor
BlueGriffon. Therefore, we can make it a builtinclass.
Additionally, it's inherited only by nsControllerCommandTable. So, all users
in C++ can treat the concrete class directly.
Differential Revision: https://phabricator.services.mozilla.com/D25727
--HG--
extra : moz-landing-system : lando
`nsICommandManager` isn't implemented by JS even in comm-central nor
BlueGriffon. Therefore, we can make it a builtinclass.
Additionally, this patch makes all users in C++ use `nsCommandManager` which is
the only implementation of `nsICommandManager`. This avoids QI from
`nsICommandManager` to `nsPICommandUpdater`.
Differential Revision: https://phabricator.services.mozilla.com/D25726
--HG--
extra : moz-landing-system : lando
`nsPresContext` should use `mozilla::PresShell` directly instead of
`nsIPresShell`. This patch makes it.
Unfortunately, `nsPresContext` and `nsIFrame` have `PresShell()`. Therefore,
we cannot use `PresShell*` in its methods so that this patch uses `mozilla::`
namespace prefix.
It might be better to rename them as `PresShellPtr()` in another bug.
Differential Revision: https://phabricator.services.mozilla.com/D25721
--HG--
extra : moz-landing-system : lando
`nsChildView::GetEditorView()` is called by `TextInputHandlerBase::GetWindowLevel()`
which is called when Cocoa requests window level of focused widget.
It currently gets widget including focused element (e.g., it may be in a XUL
`<panel>`) with `eQueryTextContent` event. However, it requires only the widget
(i.e., when a XUL `<panel>` has focused element, the widget for the panel).
Therefore, it does not require to flush the layout.
However, on macOS, `ContentEventHandler` always flushes layout even with
`eQueryContentState` which does not require any layout information. Whether
it requires flushing layout or not is considered with
`WidgetQueryContentEvent::mNeedsToFlushLayout` but this is set to false only
when `IMEContentObserver` notifies widget (and IME) of focus set. At this
time, only on macOS, IME caches the layout information, for example, the
character coordinates, but we don't have a way to update it. This is the reason
why we always flush layout on macOS.
Unfortunately, when a menu popup frame is created, widget for the popup is
created synchronously. Then, Cocoa retrieves window level of the widget including
focused element. But this is unsafe to flush the layout. So, we need to stop
flushing layout in this case.
Therefore, this patch moves the `#ifdef` from `TextEvents.h` to
`IMEContentObserver.cpp`, then, makes `nsChildView::GetEditorView()` use
`eQueryContentState` which is the simplest query content event, and finally,
sets `mNeedsToFlushLayout` to `false`.
Differential Revision: https://phabricator.services.mozilla.com/D25912
--HG--
extra : moz-landing-system : lando