With this change, the graph is already running when mEndTime is set and so
this must be done on the graph thread for consistent ordering with in-flight
messages.
Depends on D10168
Differential Revision: https://phabricator.services.mozilla.com/D10169
--HG--
extra : moz-landing-system : lando
This will prevent rendering from starting when the graph thread is started
before StartNonRealtimeProcessing() is called.
Depends on D10167
Differential Revision: https://phabricator.services.mozilla.com/D10168
--HG--
extra : moz-landing-system : lando
AudioWorket will need to keep processing events on the graph thread.
The graph thread is instead shut down when the AudioContext is destroyed.
Depends on D10165
Differential Revision: https://phabricator.services.mozilla.com/D10166
--HG--
extra : moz-landing-system : lando
mWaitState is only ever tested against WAITSTATE_WAITING_INDEFINITELY and so
the other values are equivalent. It is never WAITSTATE_WAITING_INDEFINITELY
on leaving (or entering) WaitForNextIteration and so there is no need to set
it in WakeUp().
Differential Revision: https://phabricator.services.mozilla.com/D10162
--HG--
extra : moz-landing-system : lando
This field was originally added for the b2g-only DeviceStorage API,
and isn't used for anything else right now.
This reverts the remaining parts of bug 1043136 and bug 1043136
as well as some support code for mobile.
Differential Revision: https://phabricator.services.mozilla.com/D10014
--HG--
extra : moz-landing-system : lando
In this patch, I went through any place in DOM fetch code, where there are
ReadableStreams and update the locked, disturbed, readable checks.
Because we expose streams more often, we need an extra care in the use of
ErrorResult objects. JS streams can now throw exceptions and we need to handle
them.
This patch also fixes a bug in FileStreamReader::CloseAndRelease() which could
be called in case mReader creation fails.
For now, we keep supporting the prefixed version, since there are examples/instructions
on the Web that don't include an unprefixed value.
Differential Revision: https://phabricator.services.mozilla.com/D10451
--HG--
extra : moz-landing-system : lando
For some content both transitions and animations are triggered simultaneously.
As a result of bug 1301305, if the set of animations includes animations that
affect geometry, then we ensure that any transform animations are run on the
main thread, rather than on the compositor.
However, we have observed some content where this synchronizing is not necessary
and produces unnecessary jank. In the particular cases we have observed,
the transitions and animations do not need to be synchronized so this patch
refines the approach from bug 1301305 to only synchronize within the set of CSS
transitions or the set of non-transition animations.
Differential Revision: https://phabricator.services.mozilla.com/D10328
--HG--
extra : moz-landing-system : lando
This has never been specced and is unused appart from our tests.
Differential Revision: https://phabricator.services.mozilla.com/D10082
--HG--
extra : rebase_source : c044f11325ec630dcabb673c85531a2283ff6ad4
extra : source : db3c2a88f79cb28440f4e13bcf27c5165c6ee060
Creates the nsDocShellLoadState object, which is basically
nsDocShellLoadInfo plus a few extra fields to make it usable as a
single argument to nsDocShell::LoadURI (and eventually
nsDocShell::InternalLoad).
Subframe history handling is a huge logic block in
nsDocShell::LoadURI, which is only used on history loads. This patch
also extracts the logic out into its own function to make the body of
LoadURI clearer.
Ensure that a PeerConnection is still open before setting the certificates.
Differential Revision: https://phabricator.services.mozilla.com/D10122
--HG--
extra : moz-landing-system : lando
This implementation is considerably more memory efficient than the existing JS
implementation. Migrating to it fully saves us about 28K per base content
process.
Differential Revision: https://phabricator.services.mozilla.com/D9887
--HG--
extra : source : a19c6b3e0402d16a77185f82d9fedab83a7ca52e
extra : intermediate-source : 28a19b7290ab288a1cb2cbf6d49f905cecc9682b
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
This implementation is considerably more memory efficient than the existing JS
implementation. Migrating to it fully saves us about 28K per base content
process.
Differential Revision: https://phabricator.services.mozilla.com/D9887
--HG--
extra : source : a19c6b3e0402d16a77185f82d9fedab83a7ca52e
This implementation is considerably more memory efficient than the existing JS
implementation. Migrating to it fully saves us about 28K per base content
process.
Differential Revision: https://phabricator.services.mozilla.com/D9887
--HG--
extra : rebase_source : f358f1f7097eaa8cd62ae916d048a58489e9f5ff
extra : histedit_source : c44c42de02750d71e23e70fdf22d3c3a40b91d3d
- Make ServiceWorkerGlobalScope.importScripts() throw a NetworkError when receiving a
bad (i.e. non-JavaScript) MIME type
- Correct registration-tests-mime-types.js to expect TypeError when registering
a service worker that calls importScripts() with a bad MIME type, per spec
- Add WPT import-scripts-mime-types.https.html to test importScripts success/failure,
depending on MIME type
Depends on D6416
Differential Revision: https://phabricator.services.mozilla.com/D9886
--HG--
extra : moz-landing-system : lando
- Change "ServiceWorkerRegisterMimeTypeError" to "ServiceWorkerRegisterMimeTypeError2"
to account for more acceptable MIME types
Differential Revision: https://phabricator.services.mozilla.com/D6416
--HG--
extra : moz-landing-system : lando
In original design, payment method response data is passed between processes
through a simple nsString. It means a special encoder/decoder is needed for
special response data, ex. BasicCardResponse, to serialize/deserialize
into/from the nsString. However, when a token spliter, ':', ';' and '@', is
used in response data, it makes the encoder/decoder can not work normally.
It is hard to define a suitable token spliter set for encoder/decoder.
So instead of using an error-prone encoder/decoder, this patch defining a new
IPC structure for response data.
--HG--
extra : rebase_source : 4972033516bc861ea3f975a27b7688fc6eb89a94
Content process of Android uses sync IPC when initializing LookAndFeel. But
current e10s has LookAndFeel cache for start up of content process.
So we should use it, then remove sync IPC for start up performance
Differential Revision: https://phabricator.services.mozilla.com/D9750
--HG--
extra : moz-landing-system : lando
1. Add a new preference, layout.css.step-position-jump.enabled, for
step(_, jump-*) timing functions.
2. We still keep JumpEnd and End tags, even though there is no difference
between them. Therefore, we could disable the preference if needed.
3. Update the calculation of StepTiming to match the algorithm in the spec.
4. For servo, we implement the correct step function algorithm except
for the handling of before_flag. This could be fixed later.
Depends on D9313
Differential Revision: https://phabricator.services.mozilla.com/D9314
--HG--
extra : moz-landing-system : lando
First, we generate StyleComputedTimingFunction by cbindgen from Rust, and use
it in nsTimingFunction, so we could copy it directly without handling
the different memory layout. However, we have to rewrite the
nsTimingFunction and mozilla::ComputedTimingFunction for this.
Second, the rust-bindgen seems cannot generate the correct generic members
from complex C++ templates, especially for the nested template struct,
(https://github.com/rust-lang-nursery/rust-bindgen/issues/1429)
So we have to hide StyleTimingFunction to avoid the compilation errors.
Depends on D9312
Differential Revision: https://phabricator.services.mozilla.com/D9313
--HG--
extra : moz-landing-system : lando
frames() timing function was removed from the spec, so we drop it.
Besides, some devtool tests are removed because they use frame(). I will
add them back by using new step function later.
Differential Revision: https://phabricator.services.mozilla.com/D9309
--HG--
extra : moz-landing-system : lando
Nobody is mirroring to 'mLogicallySeeking', so we can just use Watchable instead.
Differential Revision: https://phabricator.services.mozilla.com/D9642
--HG--
extra : moz-landing-system : lando
Creates the nsDocShellLoadState object, which is basically
nsDocShellLoadInfo plus a few extra fields to make it usable as a
single argument to nsDocShell::LoadURI (and eventually
nsDocShell::InternalLoad).
Subframe history handling is a huge logic block in
nsDocShell::LoadURI, which is only used on history loads. This patch
also extracts the logic out into its own function to make the body of
LoadURI clearer.
Differential Revision: https://phabricator.services.mozilla.com/D6944
--HG--
rename : docshell/base/nsDocShellLoadInfo.cpp => docshell/base/nsDocShellLoadState.cpp
rename : docshell/base/nsDocShellLoadInfo.h => docshell/base/nsDocShellLoadState.h
extra : moz-landing-system : lando
This is kind of like the previous patch (where we had a not-very-friendly user experience shutting down misbehaving h2 sessions), but in this case the server has proven to us that it can speak a minimum of h2, so we don't want to just fallback. Instead, when we send a GOAWAY frame because we have detected some error on the part of the server, if it's a top-level page load, we'll show an error page explaining that the server spoke bad http/2, and the site admin(s) need to be contacted. We already did this for INADEQUATE_SECURITY (which is its own special case still), but that didn't cover all the cases.
Differential Revision: https://phabricator.services.mozilla.com/D8436
--HG--
extra : moz-landing-system : lando
We may need this function to convert ReferrerPolicy enum to string then
we can display referrer policy applied to a request.
MozReview-Commit-ID: B3xPAiykcOV
Differential Revision: https://phabricator.services.mozilla.com/D9664
--HG--
extra : moz-landing-system : lando
It turns out that many tests are going to post Messages to content
from chrome with a mismatched OA. This patch exempt the check in that
case.
Depends on D8522
Differential Revision: https://phabricator.services.mozilla.com/D9753
--HG--
extra : moz-landing-system : lando
This patch adds a MOZ_DIAGNOSTIC_ASSERT for assuring the OAs
are matching when the targetOrigin is "*" for the postMessage().
But it ignores the FPD in OA since the FPDs are possible to be
different.
We also add a new pref 'privacy.firstparty.isolate.block_post_message'
for allowing blocking postMessage across different FPDs.
Differential Revision: https://phabricator.services.mozilla.com/D8521
--HG--
extra : moz-landing-system : lando
I left GetMethodInfo, GetConstant as they are still useful as separate methods.
Differential Revision: https://phabricator.services.mozilla.com/D9638
--HG--
extra : moz-landing-system : lando
When running tests, we can build a WebIDL environment with no interfaces
exposed on the primary global. Unfortunately, due to the perfecthash.py logic
not handling empty tables, this causes an assertion to be raised.
We can work around this by generating some dummy code for that situation, as we
will never try to build it.
Differential Revision: https://phabricator.services.mozilla.com/D9407
This strategy allows us to dodge dynamic allocations in WebIDLGlobalNameHash.
This removes the Init() and Shutdown() methods, as well as Register. The
RegisterBindings.cpp file now only contains static data and one method
declaration for the WebIDLGlobalNameHash class.
This should also be faster by making the hashtable lookup infallible.
Differential Revision: https://phabricator.services.mozilla.com/D9406
I guess we can eventually replace the conditions for autoSize with
`width == nsViewportInfo::Auto` or `height == nsViewportInfo::Auto`, but it
will break current behavior so for now we are going to preserve the current
behavior. For example, we currently consider no viewport meta tag means
autoSize is disabled but it should be an autoSize case.
Depends on D9461
Differential Revision: https://phabricator.services.mozilla.com/D9462
--HG--
extra : moz-landing-system : lando
Following four conditions are where nsIDocument::mAutoSize is true and
test cases for each condition. The conditions are the cases where we
currently set nsIDocument::mAutoSize true in nsIDocument:GetViewportInfo.
1) width=device-width
test_meta_viewport_auto_size_by_device_width.html
2) no width && height=device-height
test_meta_viewport_auto_size_by_device_height.html
3) no width && initial-scale=1
test_meta_viewport_auto_size_by_fixed_height_and_initial_scale_1.html
test_meta_viewport_auto_size_by_initial_scale_1.html
4) invalid width && (invalid height || no height)
test_meta_viewport_auto_size_by_invalid_width.html
Below tests are cases that autoSize is disabled.
test_meta_viewport_auto_size_by_fixed_width_and_initial_scale_1.html
test_meta_viewport_auto_size_by_fixed_width_and_device_height.html
test_meta_viewport_auto_size_by_initial_scale_0_5.html
test_meta_viewport_auto_size_by_invalid_width_and_fixed_height.html
Depends on D9460
Differential Revision: https://phabricator.services.mozilla.com/D9461
--HG--
extra : moz-landing-system : lando
This is a follow-up fix for bug 1431601, I didn't notice that we constrain
mMaxZoom in here nsViewport class.
In bug 1431601, instead we did constrain the value in nsIDocument::GetViewportInfo
since the contrained value is used in the function.
Differential Revision: https://phabricator.services.mozilla.com/D9459
--HG--
extra : moz-landing-system : lando
Fixes test browser/base/content/test/general/browser_documentnavigation.js
for browser.xhtml.
Differential Revision: https://phabricator.services.mozilla.com/D9711
--HG--
extra : moz-landing-system : lando
The previous resolution is restored when exiting fullscreen mode.
Depends on D9442
Differential Revision: https://phabricator.services.mozilla.com/D9443
--HG--
extra : moz-landing-system : lando
When early sandbox setartup is enabled, revert to sending SetProcessSandbox() to the child process as before. In the child process RecvSetProcessSandbox() handler, call CGSShutdownServerConnections() and then return early if the sandbox is already enabled.
Differential Revision: https://phabricator.services.mozilla.com/D9827
--HG--
extra : moz-landing-system : lando
Remove WorkerPrivate::mQueuedRunnables and its associated functions. The
approach they implement can never be correct, as the parent window gets
'resumed' whenever the debugger resumes execution after a breakpoint. The
interrupted JavaScript invocation has not yet completed, so it is not yet time
to run mQueuedRunnables. Simply re-enqueing them at that point can cause
messages from the worker to arrive out of order.
Instead, we create a separate ThrottledEventQueue,
WorkerPrivate::mMainThreadDebuggeeEventTarget especially for
WorkerDebuggeeRunnables, runnables sent from the worker to the main thread that
should not be delivered to a paused or frozen content window. This queue is
paused and resumed by WorkerPrivate::Freeze, WorkerPrivate::Thaw,
WorkerPrivate::ParentWindowPaused, and WorkerPrivate::ParentWindowResumed.
Since this affects when WorkerDebuggeeRunnables are delivered relative to other
administrative worker runnables, WorkerDebuggeeRunnable must use a
ThreadSafeWorkerRef to ensure that the WorkerPrivate sticks around long enough
for them to run properly.
Depends on D9219
Differential Revision: https://phabricator.services.mozilla.com/D9220
--HG--
extra : moz-landing-system : lando
The Rule of Three means that a class with a non-default dtor should
also have a non-default copy constructor and copy assignment operator.
If the default versions of any of these constructors are used, then
you end up with negative leaks.
Differential Revision: https://phabricator.services.mozilla.com/D9305
--HG--
extra : moz-landing-system : lando
The limit only applied within a child process.
However, within a child process we already share cubeb stream when requesting
the same device multiple times, and disallow capturing from more than one device
at a time.
This limit no longer has any effect.
Differential Revision: https://phabricator.services.mozilla.com/D10339
--HG--
extra : moz-landing-system : lando
As in part 1, this no longer serves any purpose.
This patch also removes the otherwise unused WrappersEnabled() method, which
was similarly only useful before we had compartment-based security isolation.
Its functionality is now handled by compartment flags.
Differential Revision: https://phabricator.services.mozilla.com/D10796
--HG--
extra : rebase_source : e4c85eda6cdf430844dea828e2eee3a083f2616d
This has never been specced and is unused appart from our tests.
Differential Revision: https://phabricator.services.mozilla.com/D10082
--HG--
extra : rebase_source : 4c54d808fb69c0e403ff2e1775b97571889efca4
extra : histedit_source : bc568066b0684bb82b4f553b99f0dd48212aa633
JSONWriter currently calls new and delete indirectly through mozilla::MakeUnique to allocate a buffer. Becuase of this, the methods of this class cannot be invoked within Spidermonkey due to https://searchfox.org/mozilla-central/source/config/check_vanilla_allocations.py#6-14. Therefore, JSONWriter needs an AllocPolicy template parameter so that the allocation and deallocation routines can be changed to match the JS AllocPolicy when invoked within SpiderMonkey.
Differential Revision: https://phabricator.services.mozilla.com/D7279
--HG--
extra : moz-landing-system : lando
Separating these runnables out under a separate subclass will let us delay their
delivery while the content window is paused in the debugger.
CancelingOnParentRunnable, used when the worker calls self.close(), to close the
worker from the parent thread, must also be a WorkerDebuggeeRunnable, since it
must be processed only after all prior messages/errors from the worker.
Depends on D9218
Differential Revision: https://phabricator.services.mozilla.com/D9219
--HG--
extra : moz-landing-system : lando
This just cleans up the function a bit to make the next change easier to see. No
behavior change intended.
Differential Revision: https://phabricator.services.mozilla.com/D9217
--HG--
extra : moz-landing-system : lando
There is a limited number of these, and this allows me to completely remove
mention of the 'System' global.
In the future System-only exposure could be achieved using a [Func] enabler.
Differential Revision: https://phabricator.services.mozilla.com/D9400
We don't need to expose on both Window and System anymore, as Window now
implies System. I don't remove unnecessary [Exposed=Window] annotations, as
WebIDL upstream has removed PrimaryGlobal.
Differential Revision: https://phabricator.services.mozilla.com/D9399
This condition unwraps the global to a window, and doesn't check before
dereferencing. This is no longer valid now that the corresponding interfaces
are exposed on BackstagePass.
Differential Revision: https://phabricator.services.mozilla.com/D9402
The spec algorithms have a step that throws NotFoundError in between steps that
throw HierarchyRequestError. We can't really implement that with our current
setup.
This changeset does not change observable behavior.
Also:
- Only init the base tex level for GenerateMipmap.
- Change ZeroTextureData warning into a perf warning.
Differential Revision: https://phabricator.services.mozilla.com/D9177
--HG--
extra : moz-landing-system : lando
Depends on D8741
This changeset updates some calls to ok() that should actually be calls to is()
and that needed tiny fixes to match the expected value.
Differential Revision: https://phabricator.services.mozilla.com/D8742
--HG--
extra : moz-landing-system : lando
Depends on D8740.
This changeset replaces calls to ok with 3 arguments to calls with 2 arguments
in situations where the switch does not have a significant impact on the assert.
Differential Revision: https://phabricator.services.mozilla.com/D8741
--HG--
extra : moz-landing-system : lando
Depends on D8739.
This changeset updates calls to ok() that were most likely intended
for is(), but are not working as is.
Differential Revision: https://phabricator.services.mozilla.com/D8740
--HG--
extra : moz-landing-system : lando
This changeset updates all the test that were wrongly using ok() and wanted to
use is() AND for which the assert is still passing without any modification
required.
Differential Revision: https://phabricator.services.mozilla.com/D8739
--HG--
extra : moz-landing-system : lando
Certain runnables sent from the worker to the content window must be delayed if
the content is paused in the JavaScript debugger. For example, delivering
onmessage events while stopped at a breakpoint would violate the DOM's
run-to-completion rule.
However, other sorts of runnables must be delivered promptly if the worker is
continue to function properly. Thus, the later patches in this bug that
implement the delay for the debugger may, in general, reorder the delivery of
some runnables. So whereas previously runnables sent from the worker to the main
thread could simply assert that the worker was still alive, delayed runnables
will now need to use a WorkerRef to hold the worker alive until they are
processed.
This affects the timing with which weak references to workers decay. Since there
is no solid way to test such GC-sensitive APIs, this patch simply requests a
second GC. This is not guaranteed to pass, but then again, the test as it stands
is not guaranteed to pass either.
Depends on D9217
Differential Revision: https://phabricator.services.mozilla.com/D9218
--HG--
extra : moz-landing-system : lando