There are some error paths where we could allocate an external image ID
for a SourceSurfaceSharedData before we are able to finish sharing it.
This patch makes it so that we defer allocating the ID until the last
possible moment. This will ensure they are always increasing in order.
The patch also adds in the necessary plumbing for notifications for
waking up threads blocked on a particular external image ID for a shared
surface inside the compositor process. This is less relevant now since
it should always been in the SharedSurfacesParent map, as recordings are
only created from the main thread, but may become more important as we
add recordings to DOM workers.
Differential Revision: https://phabricator.services.mozilla.com/D196422
This tries to maintain stylistic continuity, while also trying to decouple from
newtab as much as possible. This is a first foray, and future patches will
further this decoupling.
This also modifies about:asrouter to show an error message if the ASRouter devtools
pref is not set to true.
Differential Revision: https://phabricator.services.mozilla.com/D194811
Porting only the main thread checks but not the checks inside service workers, because it's not clear what to do with permissions there as testdriver.js is window specific. Maybe it can be tweaked for service worker compatibility, but not in this patch.
Differential Revision: https://phabricator.services.mozilla.com/D196181
We'll want to be able to use this while generating the function code for addInitializer,
so we need to be able to specify the BytecodeEmitter to use.
Differential Revision: https://phabricator.services.mozilla.com/D195919
QuotaInitRunnable is invoked by Context to set up cache directory. This is not always successful as it could be
interrupted by shutdown or other filesystem issues. By the time in ran into error, it's possible that some objects
needed by Context are not yet initialized in QuotaInitRunnable::Run. Since QuotaInitRunnable internal state machine
will always transition to 'COMPLETING' and Context::OnQuotaInit would always be called; it's possible that some objects
like mDirectoryLock, mCipherKeyManager and mDirectoryMetadata didn't get initialized yet. As an effect, we should
only assert these objects being non-null in Context::OnQuotaInit if the QuotaInitRunnable was successful.
Differential Revision: https://phabricator.services.mozilla.com/D196113
PropertyId predates NonCustomPropertyId. Now that we have it, we can
clean up a bit the code.
The idea is to make PropertyId and AnimatedPropertyId basically the
same, so that conversions can be improved in bug 1846516.
While at it make NonCustomPropertyId a u32.
Differential Revision: https://phabricator.services.mozilla.com/D196415
In CompositorOGL (used by software webrender on Android) as an
optimization we use glInvalidateFramebuffer rather than glClear for
the color attachment if there is no non-opaque invalid region. This
causes rendering glitches on the Samsung Xclipse 920 GPU. This patch
marks GLfeature::invalidate_framebuffer as unsupported on this GPU,
causing us to fall back to the glClear pach which avoids the glitches.
Differential Revision: https://phabricator.services.mozilla.com/D196416
Because PropertyDeclarationId and its implementation do not make use of
templating, we might as well move it out of mako.
This will be useful later when creating OwnedPropertyDeclarationId,
which can be added to the same module.
Differential Revision: https://phabricator.services.mozilla.com/D195972
In order to investigate intermittent failures in bug 1851889, this patch
temporarily adds diagnostics code in DEBUG builds around prespawn CIG.
It adds logs on the broker side, and it makes sandboxed processes crash
upon CIG failures with diagnostics data available in the crashing
thread's stack.
Differential Revision: https://phabricator.services.mozilla.com/D196299