In the old setup, a lookup with an nsAString key would implicitly construct an
AtomOrString, which would assign the key to an nsString. This would lead to
copies and heap-allocations if the key was an autostring, which it typically is
when coming from bindings.
This fix improves the performance of the new window-named-property-get.html pref
reftest by about 20-30%, and improves the new getElementById-1.html test by 2-3x.
Differential Revision: https://phabricator.services.mozilla.com/D44015
--HG--
extra : moz-landing-system : lando
To accomodate this, MediaStreamTrackListener::NotifyEnded/Removed get an
additional aGraph argument. NotifyEnabledStateChanged is getting it too, for
completion.
Differential Revision: https://phabricator.services.mozilla.com/D43667
--HG--
extra : moz-landing-system : lando
Only SeekToNextFrame cares about promises, but prior to this patch the common
method HTMLMediaElement::Seek() would always return a promise.
When the caller was not SeekToNextFrame (e.g., SetCurrentTime, FastSeek), the
promise would end up *not* being exposed. When later rejected, we would catch
this and write an error to the js console.
This patch lifts the handling of the promise out of Seek() and into
SeekToNextFrame() so that we avoid creating promises that would not get exposed
to js.
Differential Revision: https://phabricator.services.mozilla.com/D42511
--HG--
extra : moz-landing-system : lando
We're getting crashes because either there's no CycleCollectedJSContext or it
has a null JSContext. Hard to tell which, and whether this is happening
because our runnable comes really early in thread setup or really late in
thread teardown. In either case, this is restoring the null-check that used to
be there in this code.
Differential Revision: https://phabricator.services.mozilla.com/D43804
--HG--
extra : moz-landing-system : lando
This only enables mDNS on OS X for now. Some versions of Windows lack mDNS
support, there are some oddities with resolving IPv6 addresses on Linux, and
Android has not yet been tested. All of these will be addressed in follow on
bugs.
Differential Revision: https://phabricator.services.mozilla.com/D38496
--HG--
extra : moz-landing-system : lando
This gives control of the graph's lifetime to main thread. Not being in gGraphs
means it's not meant to be used for any new streams as it will irreversibly be
shutting down.
This obsoletes GraphDriver::Revive.
Differential Revision: https://phabricator.services.mozilla.com/D43663
--HG--
extra : moz-landing-system : lando
See https://groups.google.com/forum/#!topic/mozilla.dev.platform/70NFnet82cU
This commit introduces a new mathml.xlink.disabled option to disable support
for XLink attributes on MathML elements together with a use counter and
deprecation warning when support is enabled. For now, support is only disabled
in Nighly.
In the past, we relied on custom MathML deprecation warnings but those are
removed here. Corresponding tests for these legacy warning messages are
also removed from test_bug553917.html.
link-1.xhtml is run with XLink support enabled (since it check xlink:href)
while browser_contentAltClick.js is updated to check whether XLink has any
effect on MathML, depending on whether the option is enabled.
Differential Revision: https://phabricator.services.mozilla.com/D43332
--HG--
extra : moz-landing-system : lando
This also sets the fission.rebuild_frameloaders_on_remoteness_change=true
preference for some mochitest directories which require it for cross-process
window.opener to work in top-level windows, and makes a minor change to the
hack in browser_temporary_permissions.js to keep it passing reliably in try
runs.
Differential Revision: https://phabricator.services.mozilla.com/D43694
--HG--
extra : moz-landing-system : lando
Also adds a legacy `GetSameProcessOpener()` method for callers which can only
deal with in-process windows and may need to be updated for Fission.
Differential Revision: https://phabricator.services.mozilla.com/D43692
--HG--
extra : moz-landing-system : lando
We currently handler this correctly for the opener stored on the outer window,
but not on the BrowsingContext.
Differential Revision: https://phabricator.services.mozilla.com/D43691
--HG--
extra : moz-landing-system : lando
This is currently only available on the outer window, but needs to move to
BrowsingContext in order from us to remove redundant opener tracking from the
former.
Differential Revision: https://phabricator.services.mozilla.com/D43690
--HG--
extra : moz-landing-system : lando
Now that there is an {IPDL}ParamTraits implementation for nsIPrincipal* and
nsIContentSecurityPolicy*, we need not manually transform it to/from a
PrincipalInfo/CSPInfo ourselves.
Differential Revision: https://phabricator.services.mozilla.com/D36637
--HG--
extra : moz-landing-system : lando
The members of nsIWebProgressListener2 were added to BrowserChild (then
TabChild) in commit 1028814583232487b52b9c20d47e3b38dc1c288a, but the interface
was never added to the interface map.
Differential Revision: https://phabricator.services.mozilla.com/D35134
--HG--
extra : moz-landing-system : lando
This is the last message that WebProgressChild was sending to the
RemoteWebProgress in the parent process, so we can remove the module entirely.
Differential Revision: https://phabricator.services.mozilla.com/D35091
--HG--
extra : moz-landing-system : lando
Now that there is an {IPDL}ParamTraits implementation for nsIPrincipal* and
nsIContentSecurityPolicy*, we need not manually transform it to/form a
PrincipalInfo/CSPInfo ourselves.
Differential Revision: https://phabricator.services.mozilla.com/D36637
--HG--
extra : moz-landing-system : lando
The members of nsIWebProgressListener2 were added to BrowserChild (then
TabChild) in commit 1028814583232487b52b9c20d47e3b38dc1c288a, but the interface
was never added to the interface map.
Differential Revision: https://phabricator.services.mozilla.com/D35134
--HG--
extra : moz-landing-system : lando
This is the last message that WebProgressChild was sending to the
RemoteWebProgress in the parent process, so we can remove the module entirely.
Differential Revision: https://phabricator.services.mozilla.com/D35091
--HG--
extra : moz-landing-system : lando
Chrome flags need to be set both on the `window` and the `browser` object.
Right now we only set them on the `browser` objects and that could lead to
unintended consequences. This patch sets the flags to the `window` accordingly.
Differential Revision: https://phabricator.services.mozilla.com/D43523
--HG--
extra : moz-landing-system : lando
Converted the following to StaticPrefs so that we can easily test variations:
NS_GC_DELAY
NS_SHRINK_GC_BUFFERS_DELAY
NS_FIRST_GC_DELAY
NS_FULL_GC_DELAY
NS_INTERSLICE_GC_DELAY
NS_USER_INTERACTION_INTERVAL
Differential Revision: https://phabricator.services.mozilla.com/D43112
--HG--
extra : moz-landing-system : lando
See https://github.com/mathml-refresh/mathml/issues/5#issuecomment-475506856
and https://groups.google.com/forum/#!topic/mozilla.dev.platform/kl5c87mBlO0
This patch introduces a new preference
mathml.deprecated_style_attributes.disabled in order to disable legacy support
for attributes background, color, fontfamily, fontsize, fontstyle and
fontweight. Note that xlink:href will be handled separately in bug 1575870.
* A new counter and deprecation message is introduced for these attributes.
In nsMathMLElement, the old WarnDeprecated calls are replaced with a single
call to WarnOnceAbout for the deprecate attributes. Notice that for some
reason, the color attribute used to send warning in both ParseAttribute and
MapMathMLAttributesInto.
* sMtableStyles is removed and replaced with a simple comparison.
* sMathML3Attributes is split into two tables: one for script attributes which
will be handled in bug 1548471 and one for style attributes, handled here.
The attributes in this second table is now ignored when the feature flag is
disabled.
* test_bug553917.html is updated so that it no longer checks the old warning
messages for these attributes. New warning messages have been verified
manually.
* Reftests checking support for these attributes are run with the support
enabled.
* Finally, WPT tests are run with the support disabled and a new test
is added to verify that these attributes are no longer mapped to CSS.
Differential Revision: https://phabricator.services.mozilla.com/D43111
--HG--
extra : moz-landing-system : lando
Only SeekToNextFrame cares about promises, but prior to this patch the common
method HTMLMediaElement::Seek() would always return a promise.
When the caller was not SeekToNextFrame (e.g., SetCurrentTime, FastSeek), the
promise would end up *not* being exposed. When later rejected, we would catch
this and write an error to the js console.
This patch lifts the handling of the promise out of Seek() and into
SeekToNextFrame() so that we avoid creating promises that would not get exposed
to js.
Differential Revision: https://phabricator.services.mozilla.com/D42511
--HG--
extra : moz-landing-system : lando
Before, all `nsIContentSerializer::Append`* methods took an output
string. The state of `nsPlainTextSerializer` depended on the string
pointing to the same object.
Now, it's ensured that the same output string is used between
`nsIContentSerializer::Init` and `nsIContentSerializer::Finish`.
Moreover, `nsHTMLCopyEncoder::EncodeToStringWithContext` re-used
`mSerializer` without initializing it again. This was error-prone,
because after serializing with `mSerializer`, it's internal state might
have changed to an undesirable one (e.g.
`nsPlainTextSerializer::mWrapColumn` could've been modified).
Hence, it is now initialized again before serializing the common
ancestors.
Differential Revision: https://phabricator.services.mozilla.com/D43613
--HG--
extra : moz-landing-system : lando
This only enables mDNS on OS X for now. Some versions of Windows lack mDNS
support, there are some oddities with resolving IPv6 addresses on Linux, and
Android has not yet been tested. All of these will be addressed in follow on
bugs.
Differential Revision: https://phabricator.services.mozilla.com/D38496
--HG--
extra : moz-landing-system : lando
Quite oddly, this is only busting ccov builds... I'm mildly curious about why,
but also not really.
MANUAL PUSH: This bug busted ccov builds which only land on central.
Its value was at all places where it's read equal to
`outputLineBreak` which is now used instead.
Differential Revision: https://phabricator.services.mozilla.com/D43418
--HG--
extra : moz-landing-system : lando
After addressing review comments in the other patch of this bug, debug builds
assert all the time here when called from UnbindFromTree() on an already-unbound
subtree.
We clear the binding parent on unbind, so this is only guaranteed to match for
connected nodes, as far as I can tell.
Differential Revision: https://phabricator.services.mozilla.com/D43641
--HG--
extra : moz-landing-system : lando
This penalizes a bit non-shadow-DOM content, in exchange of making Shadow DOM
slightly faster as well.
The biggest advantage of this is that all ContentRemoved notifications would see
the flattened tree before the changes, which is something a11y needs to be
correct.
XBL would still not be handled right by a11y, but that's not new and content
cannot do random stuff with XBL so it's not too bad.
Differential Revision: https://phabricator.services.mozilla.com/D32639
--HG--
extra : moz-landing-system : lando
As we will allow user inputs on editable content to activate document, we should remove them from black list test.
Differential Revision: https://phabricator.services.mozilla.com/D43533
--HG--
extra : moz-landing-system : lando
As Chrome and Safari didn't block autoplay when haiving user input on editable content, it causes a compatible issue on Firefox because we only allow user inputs happening on non-editable content to activate document.
It seems that we don't really need to restrict that user inputs, which can activate document, should only occur on non-editable content.
Even if they occur on non-editable content, it might still have a chance to annoy user, it's totally depending on websites' design.
Differential Revision: https://phabricator.services.mozilla.com/D43532
--HG--
extra : moz-landing-system : lando
Before this patch, it was unclear who was responsible for checking deviceId and
groupId constraints for devices. MediaManager was doing it through one path for
getUserMedia, with the help of the devices, as part of selecting the
best-fitting device. However, Reconfigure() took another path where the regular
backends for camera and microphone were implemented correctly, but fake devices
were left out so automated tests for applyConstraints were failing.
This patch lifts the responsibility for checking deviceId and groupId
constraints out of the MediaEngineSources into MediaDevice, which already is the
owner of the anonymized ids that MediaEngineSources are unaware of.
This makes constraints checking a two-staged approached where deviceId and
groupid goes first. If they satisfy the constraints, the underlying device is
queried for whether the constraints fit.
As a bonus, this unclutters a lot of the MediaEngineSource interface.
Differential Revision: https://phabricator.services.mozilla.com/D40834
--HG--
extra : moz-landing-system : lando
It would be easier to reuse the utterance if it's stateless. The state
could still be tracked by moving from SpeechSynthesisUtterance to
nsSpeechTask, which is the place to change the state in original
implementation. By removing state in utterance, we don't need to check
the state of utterance when it's pushed into the speech queue.
Differential Revision: https://phabricator.services.mozilla.com/D35464
--HG--
extra : moz-landing-system : lando
All the LOG are placed in Dispatch*Impl except DispatchErrorImpl. Move
the LOG from DispatchError to DispatchErrorImpl to align the LOG policy
in the nsSpeechTask.
Differential Revision: https://phabricator.services.mozilla.com/D35461
--HG--
extra : moz-landing-system : lando
This check is used to reject cross-origin objects from being passed in
as |any| or |object| parameters to WebIDL methods. Remote object
proxies are technically same-origin, but we want to make them behave
the same as when Fission is not enabled.
Differential Revision: https://phabricator.services.mozilla.com/D43105
--HG--
extra : moz-landing-system : lando
This check is used to reject cross-origin objects from being passed in
as |any| or |object| parameters to WebIDL methods. Remote object
proxies are technically same-origin, but we want to make them behave
the same as when Fission is not enabled.
Differential Revision: https://phabricator.services.mozilla.com/D43105
--HG--
extra : moz-landing-system : lando
This patch adds support for quota cache invalidation if the profile is loaded in different builds.
Differential Revision: https://phabricator.services.mozilla.com/D39673
--HG--
extra : moz-landing-system : lando
performAction, performActionOnRow and performActionOnCell are methods of the
nsITreeView interface that are never called. This is to remove these methods.
A comm-central patch will be along shortly.
Differential Revision: https://phabricator.services.mozilla.com/D39273
Changes:
- when specifying `fail-if` condition for linux platform, narrow down the scope using Ubuntu version `16.04` since some tests are passing on Debian 10
Differential Revision: https://phabricator.services.mozilla.com/D43172
--HG--
extra : moz-landing-system : lando
This patch converts index based client type loops to iterator based client type
loops. This way the static cast is avoided and the loops are simpler and more
readable.
Differential Revision: https://phabricator.services.mozilla.com/D38629
--HG--
extra : moz-landing-system : lando
This patch makes it easier to create new Client::TypeTo and Client::TypeFrom
variations by creating generic reusable helpers.
Differential Revision: https://phabricator.services.mozilla.com/D38628
--HG--
extra : moz-landing-system : lando
This patch gets rid of gUsages in LSNG. This provides better consistency and
makes it easier to cache quota info on disk.
The patch also fixes some edge cases when usage was not adjusted correctly after
a failed file or database operation.
Differential Revision: https://phabricator.services.mozilla.com/D38229
--HG--
extra : moz-landing-system : lando
This patch wraps the uint64_t type in a Maybe container, so the client usage can
represent a state when there are no files on disk for the given client. Zero
usage then represents a state when there are some files but they are empty or
the client tracks logical size (not physical size of files on disk) and the
logical size is zero. This can be useful especially for LocalStorage.
Differential Revision: https://phabricator.services.mozilla.com/D38181
--HG--
extra : moz-landing-system : lando
This commit introduces new counters and deprecation warnings for the following
MathML features:
* mathspace names (bug 1575542)
* mathsize names (bug 1548527)
* linethickness names (bug 1548529)
Note: helper parsing functions for mfrac and mpadded are changed to non-static
in order to pass the document parameter needed to log warnings to the console.
Change manually tested with
<math>
<mspace width="thinmathspace"></mspace>
<mpadded width="2thickmathspace"></mpadded>
<mfrac linethickness="thin"><mn>1</mn><mn>2</mn></mfrac>
<mtext mathsize="big">3</mtext>
</math>
Differential Revision: https://phabricator.services.mozilla.com/D42890
--HG--
extra : moz-landing-system : lando
This patch modifies getUsageForPrincipal to support getting origin usage from
memory. Support for getting group usage is factored out to a standalone method
called Estimate.
Operations based on NormalOriginOperationBase can now avoid directory locking
if they don't touch disk.
Differential Revision: https://phabricator.services.mozilla.com/D38087
--HG--
extra : moz-landing-system : lando
These test that various DOM things fail when done
cross-origin. They'll fail in a different way if done cross-process,
so change the origin used so that it is same-process, but
cross-origin, even with Fission.
Differential Revision: https://phabricator.services.mozilla.com/D42678
--HG--
extra : moz-landing-system : lando
This patch adds a fixed-size array of client usages to OriginInfo and modifies
quota tracking APIs to require the client type to be passed in.
A new method ResetUsageForClient is implemented. The method is used during
client-specific origin clearing. ResetUsageForClient is much faster than calling
GetUsageForOrigin and calling DecreaseUsageForOrigin after that.
LockedUsage now has an assertion that verifies that the total sum of client
usages matches total origin usage. This method should be called instead of
touching mUsage directly.
A new assertion is added to GetQuotaObject which verifies that passed file
belongs to the given persistence type, origin, and client.
Differential Revision: https://phabricator.services.mozilla.com/D38028
--HG--
extra : moz-landing-system : lando
See https://github.com/mathml-refresh/mathml/issues/23
and https://groups.google.com/forum/#!topic/mozilla.dev.platform/wIjm9JjVHNg
This commit introduces a new preference option
mathml.legacy_number_syntax.disabled to disable legacy MathML numbers
(e.g. "1234.") that are not supported by CSS. This feature is now disabled by
default.
* test_bug553917.html is updated to check that such legacy values now cause an
error message to be logged into the console when the feature is disabled.
* Legacy MathML features are now disabled for WPT mathml test in a global
__dir__.ini file. Removing legacy numbers allow to pass
mathml/relations/css-styling/lengths-2.html
Differential Revision: https://phabricator.services.mozilla.com/D42907
--HG--
extra : moz-landing-system : lando
Seems we'll update the change hint properly via SetTarget if we get a new
target.
Differential Revision: https://phabricator.services.mozilla.com/D43397
--HG--
extra : moz-landing-system : lando