On CI we only want to log screenshots when something unexpected happens since anything
else is rather wasteful of resources. But locally getting screenshots for expected
failures seems helpful for debugging, so worth making the default. Hopefully this isn't
too confusing for people just checking if their patch regresses anything rather than
actively working on fixing failures.
Depends on D16973
Differential Revision: https://phabricator.services.mozilla.com/D16974
--HG--
extra : moz-landing-system : lando
When the logging setup moved to earlier in the setup we ended up setting the
option to enable tbpl-style screenshots from mach after the loggers were already
initalised. Move this to earlier in the command so this option starts working again.
Differential Revision: https://phabricator.services.mozilla.com/D16973
--HG--
extra : moz-landing-system : lando
This is a regression test to catch the scrolling issue we experienced
in Gmail.
Differential Revision: https://phabricator.services.mozilla.com/D16755
--HG--
extra : rebase_source : eceb13c8413d33df32ef52f600dedab2cdfe3abb
extra : source : a5362b7897c5c5ce6b48b9bf1aff5a4ee62f303a
The unittest/user.js file contained a mix of preferences that ensure tests can run (switching web services to dummy servers to prevent hitting networks, etc) and preferences that enable features that aren't shipping by default (turning on touch events, enabling experimental css features, etc).
In the future, we're going to want to run tests of only the features that are being shipped in release builds (or in beta builds, or in esr builds, etc), so we need to move feature-enabling preferences into a different file to make it possible to run tests with various sets of features enabled.
This commit just moves feature-enabling prefs into a new file and then includes that file everywhere unittest prefs were already being included, so it should have no functional difference in the set of preferences being set in test runs. It also renames the unittest profile to clarify its purpose, and adds pointers to each profile from the other, and adds comments explaining what they're used for.
Differential Revision: https://phabricator.services.mozilla.com/D16123
--HG--
rename : testing/profiles/unittest/extensions/README.txt => testing/profiles/unittest-features/extensions/README.txt
rename : testing/profiles/unittest/extensions/README.txt => testing/profiles/unittest-required/extensions/README.txt
rename : testing/profiles/unittest/user.js => testing/profiles/unittest-required/user.js
extra : moz-landing-system : lando
No one is using the aUseTrackingProtection parameter and also tracking
protection related preference in Classify API. And we shouldn't use it
that way in the future.
Differential Revision: https://phabricator.services.mozilla.com/D16798
--HG--
extra : moz-landing-system : lando
To reduce the attack surface in early test for BinAST, add a preference to
restrict the hosts that Firefox accepts BinAST file from.
The preference is turned on by default (BinAST itself is turned off by
default for now), and the list contains hosts which is going to be used in
early test.
For hosts not listed in the list, Firefox doesn't send BinAST MIME-Type in
Accept field, and doesn't handle BinAST file in case the server returns
BinAST file.
Differential Revision: https://phabricator.services.mozilla.com/D16517
--HG--
extra : moz-landing-system : lando
We should use parent document's referrer uri and referrer policy in this case
Differential Revision: https://phabricator.services.mozilla.com/D16551
--HG--
extra : moz-landing-system : lando
The unittest/user.js file contained a mix of preferences that ensure tests can run (switching web services to dummy servers to prevent hitting networks, etc) and preferences that enable features that aren't shipping by default (turning on touch events, enabling experimental css features, etc).
In the future, we're going to want to run tests of only the features that are being shipped in release builds (or in beta builds, or in esr builds, etc), so we need to move feature-enabling preferences into a different file to make it possible to run tests with various sets of features enabled.
This commit just moves feature-enabling prefs into a new file and then includes that file everywhere unittest prefs were already being included, so it should have no functional difference in the set of preferences being set in test runs.
Differential Revision: https://phabricator.services.mozilla.com/D16123
--HG--
rename : testing/profiles/unittest/extensions/README.txt => testing/profiles/unittest-features/extensions/README.txt
rename : testing/profiles/unittest/extensions/README.txt => testing/profiles/unittest-stability/extensions/README.txt
rename : testing/profiles/unittest/user.js => testing/profiles/unittest-stability/user.js
extra : moz-landing-system : lando
Bug 1509717 removed Gecko's definition of StyleBorderStyle to use the Rust one.
The Rust version was ordered in a different way, and the table code relied on
the order in order to build the mapping for border conflict resolution.
Simplify this mapping now that border constants are ordered in terms of
priority, see the comment on top of `enum BorderStyle`.
Differential Revision: https://phabricator.services.mozilla.com/D16565
--HG--
extra : moz-landing-system : lando
This patch makes us handle calc with percentages when we can convert to
percentages the same way we handle plain percentages in table layout.
We still treat length + percentage as auto (this matches Blink / WebKit as
well). There's one case we differ with Blink / WebKit, which is calc(% + 0px),
which they'd treat as auto instead of a percentage.
I think this is a bug on them (or at least worth some spec clarification). I
filed https://github.com/w3c/csswg-drafts/issues/3482 for that.
In practice what that'd means for us if the WG decides that Blink / WebKit is
right in that case is that we'd need to keep track of whether the calc()
specifies lengths, and return false from ConvertsToPercent if so.
In any case, nothing that would massively change this patch, and I think enough
of an edge case that is not worth blocking on the CSSWG decision here. Though I
could be convinced otherwise of course.
Differential Revision: https://phabricator.services.mozilla.com/D15719
--HG--
extra : moz-landing-system : lando
To reduce the attack surface in early test for BinAST, add a preference to
restrict the hosts that Firefox accepts BinAST file from.
The preference is turned on by default (BinAST itself is turned off by
default for now), and the list contains hosts which is going to be used in
early test.
For hosts not listed in the list, Firefox doesn't send BinAST MIME-Type in
Accept field, and doesn't handle BinAST file in case the server returns
BinAST file.
Differential Revision: https://phabricator.services.mozilla.com/D16517
--HG--
extra : moz-landing-system : lando
Any time we stop a load of an XML document before we've gotten all the data,
we'll end up in this code with mSink null, because nsParser::Terminate ends up
calling nsExpatDriver::DidBuildModel which nulls out mSink, and not getting all
the data means the XML won't be well-formed.
Differential Revision: https://phabricator.services.mozilla.com/D16856
--HG--
extra : moz-landing-system : lando
This patch implements a new, preffed-off tab opening/closing animation where the tab slides up and down in place. In addition, it adjusts some tests and code that were relying on the max-width transitionend event happening. The intent of the patch is to land it preffed-off and iterate on the design in the tree
Differential Revision: https://phabricator.services.mozilla.com/D15955
--HG--
extra : moz-landing-system : lando
The elements under <body> are treat as content append, so their frames
will be construct by nsCSSFrameConstructor::ContentAppended.
This patch fixed only the simple "append" case which is appending to the
last continuation of ::moz-column-content. For other more complex
appending or inserting cases, we might need to reframe (bug 1504053).
Differential Revision: https://phabricator.services.mozilla.com/D16076
--HG--
extra : moz-landing-system : lando
Before this change, testing/tps had 19 linter errors. These have been resolved.
Differential Revision: https://phabricator.services.mozilla.com/D15846
--HG--
extra : moz-landing-system : lando
As we move away from #ateam we need to make sure we that we point people to
the correct IRC Channel
Differential Revision: https://phabricator.services.mozilla.com/D16547
--HG--
extra : moz-landing-system : lando
To have the same pre-conditions for all wdspec tests, the session fixture
has to set a default window position.
Depends on D16338
Differential Revision: https://phabricator.services.mozilla.com/D16340
--HG--
extra : moz-landing-system : lando
Add wpt for testing interpolation result on grid-template-{columns|rows}.
Depends on D16129
Differential Revision: https://phabricator.services.mozilla.com/D16130
--HG--
extra : moz-landing-system : lando
Based on https://bugzilla.mozilla.org/show_bug.cgi?id=1348519#c6 and
https://github.com/w3c/csswg-drafts/issues/3201:
Currently grid-template-rows/columns interpolate “per computed value”, which
means that if the number of tracks differs, or any track changes to/from a
particular keyword value to any other value, or if a line name is added/removed
at any position, the entire track listing is interpolated as “discrete”.
But we "agree" with two more granular options:
1. Check interpolation type per track, rather than for the entire list, before
falling back to discrete. I.e. a length-percentage track can animate between
two values while an adjacent auto track flips discretely to min-content.
2. Allow discrete interpolation of line name changes independently of track
sizes.
Besides, for the repeat() function, it's complicated to support interpolation
between different repeat types (i.e. auto-fill, auto-fit) and different repeat
counts, so we always fall-back to discrete if the first parameter of repeat()
is different.
Depends on D16339
Differential Revision: https://phabricator.services.mozilla.com/D16129
--HG--
extra : moz-landing-system : lando
Bug 1502899: Allow provisional transceiver level assignments to be recovered by rollback.
Differential Revision: https://phabricator.services.mozilla.com/D10290
--HG--
extra : moz-landing-system : lando
With `ac_add_options --enable-project=tools/crashreporter` in a
mozconfig, `./mach build` builds minidump_stackwalk, dump_syms
and fileid.
One caveat is that due to limitation in how the build system works
currently, it's cumbersome to keep dump_syms as a host program for
Gecko, and to make it a target program for this project. For now,
keep it as a host program. We're not going to use it on automation,
but it's still convenient to have for quick local builds (I've had
to resort to awful hacks downstream).
Differential Revision: https://phabricator.services.mozilla.com/D16299
--HG--
extra : moz-landing-system : lando
Easier than separately enabling it for each test in turn, and shouldn't have any
bad side effects on tests that don't care about it, as this only exposes the new
Window.visualViewport object, but doesn't change anything else.
Differential Revision: https://phabricator.services.mozilla.com/D15688
--HG--
extra : moz-landing-system : lando
This line was removed by mistake in Bug 1415483. I'm restoring it along with
a eslint-rule-disabling comment that we now need (as of that same bug).
Differential Revision: https://phabricator.services.mozilla.com/D16235
--HG--
extra : moz-landing-system : lando
AsyncWaitRunnable holds a strong reference to its stream, and
NonBlockingAsyncInputStream holds a strong reference to the
runnable. The cycle gets broken in the RunAsyncWaitCallback() method
of the stream, but if the runnable is cancelled then we leak them
both. This patch fixes that by clearing the pointer to the stream when
the runnable is cancelled, breaking the cycle.
Differential Revision: https://phabricator.services.mozilla.com/D16248
--HG--
extra : moz-landing-system : lando
AsyncWaitRunnable holds a strong reference to its stream, and
NonBlockingAsyncInputStream holds a strong reference to the
runnable. The cycle gets broken in the RunAsyncWaitCallback() method
of the stream, but if the runnable is cancelled then we leak them
both. This patch fixes that by clearing the pointer to the stream when
the runnable is cancelled, breaking the cycle.
Differential Revision: https://phabricator.services.mozilla.com/D16248
--HG--
extra : moz-landing-system : lando
Instead of defaulting to regenerating the manifest in this case default to downloading
whatever the latest on central is.
Depends on D16315
Differential Revision: https://phabricator.services.mozilla.com/D16316
--HG--
extra : moz-landing-system : lando
This should help with diagnosing cases where we fail to download a manifest.
Differential Revision: https://phabricator.services.mozilla.com/D16315
--HG--
extra : moz-landing-system : lando
An unexpected remoteness change can cause the
"WebDriver:FindElement" command to hang forever.
To avoid that already pre-load a web page which
enables the remoteness flag.
Differential Revision: https://phabricator.services.mozilla.com/D16306
--HG--
extra : moz-landing-system : lando
The patch updates the Marionette client and all Marionette unit
tests to make use of the new `Create Window` command as much as
possible.
Depends on D13663
Differential Revision: https://phabricator.services.mozilla.com/D13664
--HG--
extra : moz-landing-system : lando
By default PollPromise has to behave similar to a normal Promise
and wait forever until it gets resolved or rejected.
Depends on D13662
Differential Revision: https://phabricator.services.mozilla.com/D15907
--HG--
extra : moz-landing-system : lando
To be closer to other test harnesses which are using executeSoon()
to run a task on the main thread, this patch adds the same
method to Marionette's sync module.
Differential Revision: https://phabricator.services.mozilla.com/D13659
--HG--
extra : moz-landing-system : lando
Previously we assumed that the path for the lsan_suppressions.txt file was the same as the prefs path,
which is correct in CI but wrong for local builds. This adds a --lsan-dir command line argument and sets
it in mach to the correct value for local builds and uses the prefs directory as a default for backwards
compatibility
Differential Revision: https://phabricator.services.mozilla.com/D16024
--HG--
extra : moz-landing-system : lando
This patch is alarmingly large, but I did not see any leaks in any of
these directories, even with a dozen or so retriggers. We can
whitelist stuff if there are any more intermittents I failed to catch.
Depends on D16090
Differential Revision: https://phabricator.services.mozilla.com/D16091
--HG--
extra : moz-landing-system : lando
I saw this intermittent leak, but it was only a single string.
Depends on D16089
Differential Revision: https://phabricator.services.mozilla.com/D16090
--HG--
extra : moz-landing-system : lando
To detect when the window got minimized usally "visibilitychange" events
are fired to the content window. The "WebDriver:MinimizeWindow" command
has to wait for those.
Depends on D16096
Differential Revision: https://phabricator.services.mozilla.com/D16098
--HG--
extra : moz-landing-system : lando
This commit adds a test that implementations can anchor to node that's inside
of a fragmented node.
Differential Revision: https://phabricator.services.mozilla.com/D16275
--HG--
extra : rebase_source : 3a8a8a3eddbced312adc8739f7f1e6aaeb7c6632
extra : intermediate-source : fbc14e9852b1b4dbfb729be6a5be5c86ce235c98
extra : source : 0726bf91da593f75563d2592c59228c3585290a1
As per the following spec change:
4ec1deb76a
Spec issue:
https://github.com/w3c/csswg-drafts/issues/3193
Of the added test cases, only the last one, "Returns reversed animations yet to
reach their active phase" fails without this code change. The others pass
because the animation is finished at that point but I added them for consistency
with the previous tests.
Differential Revision: https://phabricator.services.mozilla.com/D16001
--HG--
extra : moz-landing-system : lando
The patch updates the Marionette client and all Marionette unit
tests to make use of the new `Create Window` command as much as
possible.
Depends on D13663
Differential Revision: https://phabricator.services.mozilla.com/D13664
--HG--
extra : moz-landing-system : lando
By default PollPromise has to behave similar to a normal Promise
and wait forever until it gets resolved or rejected.
Depends on D13662
Differential Revision: https://phabricator.services.mozilla.com/D15907
--HG--
extra : moz-landing-system : lando
To be closer to other test harnesses which are using executeSoon()
to run a task on the main thread, this patch adds the same
method to Marionette's sync module.
Differential Revision: https://phabricator.services.mozilla.com/D13659
--HG--
extra : moz-landing-system : lando
We assumed that this method returned a logger and the fact that it
doesn't means we end up initialising logging a second time with the
default settings rather than the user overrides.
Differential Revision: https://phabricator.services.mozilla.com/D16057
--HG--
extra : moz-landing-system : lando
I believe that changes to 'overflow-anchor' should invalidate the current
scroll anchor. This isn't in the spec, but there's an issue open for it [1].
[1] https://github.com/w3c/csswg-drafts/issues/3494
Differential Revision: https://phabricator.services.mozilla.com/D16273
--HG--
extra : source : 04e2132249ace0a85fb274022949c7cfc5131fe2
extra : amend_source : 01ee5bfd2085dfce5887512a7ddc4668b955f30b
extra : intermediate-source : af4895c87d712e5151146e2fd61c249fb52c355b
We currently perform anchor adjustment in three spots:
1. If the target of RestyleManager::RecomputePosition is in a scroll anchor chain
2. If the reflow root is in a scroll anchor chain
3. In nsHTMLScrollFrame::DidReflow, for itself
It looks like it's possible for a scroll anchor container to be adjusted by (1)
and (2 or 3) in the same PresShell flush.
This should be okay, except that we consume mSuppressAnchorAdjustment when
performing an adjustment, and this can lead us to miss the second time that
we perform adjustments in a PresShell flush.
This commit reworks how we run anchor adjustments so that we collect all
scroll anchor containers that should be adjusted, and only perform the
adjustments once.
Differential Revision: https://phabricator.services.mozilla.com/D16407
--HG--
extra : source : cbdbd08379d99f9d55f756c57d728c28331be5da
This commit adds two tests around anchor selection.
The first tests that 'position: sticky' is an invalid subtree, which is new to
the spec. The second tests that implementations respect 'overflow-anchor' on
the table element, and don't get confused with the boxes generated by tables.
Differential Revision: https://phabricator.services.mozilla.com/D16274
--HG--
extra : rebase_source : 3c2e74a5765d3409a57aa892fe20aa208c5c0e84
extra : intermediate-source : 55addc12904b79f7300e47da96b1d33780a4cbfb
extra : source : 306393539feb1a3391c3a03baaee43e7058bc44a
The only visible change from this change is that telemetry will be
discontinuous. The owners for the relevant telemetry probes have
reviewed this and indicated that this discontinuity is OK.
The WebDriver:TakeScreenshot command relied on the document element's
clientWidth/clientHeight, but should according to the WebDriver
specification use the viewport's dimensions.
Thanks-to: JinaJita <jitajina@gmail.com>
The WebDriver:TakeScreenshot command relied on the document element's
clientWidth/clientHeight, but should according to the WebDriver
specification use the viewport's dimensions.
Thanks-to: JinaJita <jitajina@gmail.com>
All that is really required for this ticket is to invoke |mach android
archive-geckoview| after |mach package| in the right place.
But it's actively unhelpful to have this magic in mozharness --
especially since the documentation in `locales.rst` is subtly
incorrect (the environment variables and Make variables don't quite
work as written). So this commit adds a Mach command to do the actual
work and replaces most of the mozharness magic with that command.
Since the l10n Make targets check out the l10n HG repositories
locally, this basically Just Works without the mozharness checkout
steps when developing locally.
Differential Revision: https://phabricator.services.mozilla.com/D12455
--HG--
extra : moz-landing-system : lando
Not all tests are passing with the initial implementation. Most are due to
differences between Gecko and Blink with regards to ScrollTop, ScrollLeft in
documents with writing-mode: vertical-rl. Some are due to issues in our anchor
node selection algorithm remaining.
Differential Revision: https://phabricator.services.mozilla.com/D13275
--HG--
extra : rebase_source : 0e23fe91ddb62c24709fc73c007069c9c1f10e90
extra : source : 950bf6ad1ef2ee42c0dcbdc102f1828b68329992
Some of these tests were failing on try but passing locally because of viewport
size differences. This commit expands some spacing to ensure the tests are fully
scrollable on most screen sizes.
Differential Revision: https://phabricator.services.mozilla.com/D13274
--HG--
extra : rebase_source : 309f0a754d5ea40e9227dd682bbf8841b099939c
extra : source : b4cb2cbebdb6a099f64e477ec434701d39d4816d
Not all tests are passing with the initial implementation. Most are due to
differences between Gecko and Blink with regards to ScrollTop, ScrollLeft in
documents with writing-mode: vertical-rl. Some are due to issues in our anchor
node selection algorithm remaining.
Differential Revision: https://phabricator.services.mozilla.com/D13275
--HG--
extra : rebase_source : 4280a352ba1a2cf45c6734a75b6b343ef30d415a
extra : histedit_source : 75e5f5a7ef0b32e19b74515d00885eb88af99699
Some of these tests were failing on try but passing locally because of viewport
size differences. This commit expands some spacing to ensure the tests are fully
scrollable on most screen sizes.
Differential Revision: https://phabricator.services.mozilla.com/D13274
--HG--
extra : rebase_source : c9bacfda973acdb699e8ace905e2ea320381ce29
extra : histedit_source : 7802a4c24dad2da083783d6ae68bfa7723f951e6
Using the "Switch To Window" command to check if a user prompt is open
doesn't work because that command doesn't raise a "unexpected alert open"
error. To fix that the "Close Window" command can be used for.
Differential Revision: https://phabricator.services.mozilla.com/D15816
--HG--
extra : moz-landing-system : lando
This patch implements InputType.inputType which is declared by Input Events.
The attribute has already been implemented by Chrome and Safari. Chrome
implements Input Events Level 1, but Safari implements Input Events Level 2.
Difference between them is only whether it supports "insertFromComposition",
"deleteByComposition" and "deleteCompositionText". This patch makes the
level switchable with pref and takes Level 1 by default because Level 2 is
still unstable around event order with composition events.
For reducing string copy cost at dispatching "input" event, this patch
makes EditorInternalInputEvent store valid input-type as enum class,
EditorInputType and resolves it to string value when
dom::InputEvent::GetInputType() is called. Note that the reason why
this patch names the enum class as EditorInputType is, there is InputType
enum class already for avoiding conflict the name, this appends "Editor"
prefix because "input" and "beforeinput" events are fired only when an
editor has focus.
Differential Revision: https://phabricator.services.mozilla.com/D14128
--HG--
extra : moz-landing-system : lando
The WPT for InputEvent.inputType of each execCommand runs all tests in a
test function. Therefore, even if there is an unexpected result, it won't
test other part. Additionally, it tests execCommand's result of the DOM
tree in the contenteditable so that it's not useful for checking
InputEvent.inputType for now.
Therefore, this patch makes the test returns error for each result of
each call of execCommand.
Additionally, it sets contenteditable attribute to a <p> element which cannot
store other block elements like <ul>, <ol>, <div>, etc. Therefore, some of
the execCommand won't work on Gecko since Gecko's editor does not create
invalid child elements as far as possible. Therefore, this patch makes it
a <div> element.
And also adding "insertHorizontalRule", "backColor", "foreColor",
"hilightColor", "fontName", "createLink", "unlink". inputType values for
those commands are defined by current spec. So, if they'd be changed,
we could detect it quickly.
Differential Revision: https://phabricator.services.mozilla.com/D14123
--HG--
extra : moz-landing-system : lando
This is a first step to share LengthOrPercentage representation between Rust and
Gecko.
We need to preserve whether the value came from a calc() expression, for now at
least, since we do different things depending on whether we're calc or not right
now. See https://github.com/w3c/csswg-drafts/issues/3482 and dependent bugs for
example.
That means that the gecko conversion code needs to handle calc() in a bit of an
awkward way until I change it to not be needed (patches for that incoming in the
next few weeks I hope).
I need to add a hack to exclude other things from the PartialEq implementation
because the new conversion code is less lossy than the old one, and we relied on
the lousiness in AnimationValue comparison (in order to start transitions and
such, in [1] for example).
I expect to remove that manual PartialEq implementation as soon as I'm done with
the conversion.
The less lossy conversion does fix a few serialization bugs for animation values
though, like not loosing 0% values in calc() when interpolating lengths and
percentages, see the two modified tests:
* property-types.js
* test_animation_properties.html
Differential Revision: https://phabricator.services.mozilla.com/D15793
--HG--
extra : moz-landing-system : lando
This converts the tabmodalprompt binding to a class, to be constructed along side with the element
by TabModalPromptBox.
TabModalPromptBox will keep the instances in a map and pass it to the callers, instead of the element.
The tests and callers can access the class instance by passing the element reference to the map.
Differential Revision: https://phabricator.services.mozilla.com/D15505
--HG--
rename : toolkit/components/prompts/content/tabprompts.xml => toolkit/components/prompts/content/tabprompts.jsm
extra : moz-landing-system : lando
As decided during the last TPAC meeting the window rect commands
should not return the window state.
Differential Revision: https://phabricator.services.mozilla.com/D15681
--HG--
extra : moz-landing-system : lando
As decided during the last TPAC meeting the window rect commands
should not return the window state.
Differential Revision: https://phabricator.services.mozilla.com/D15681
--HG--
extra : moz-landing-system : lando
Marionette recently had changes made to its window maximisation algorithm
that lets us re-enable this test. It tests that session.window.maximize()
does not hang when the window is already maximised.
Differential Revision: https://phabricator.services.mozilla.com/D15582
--HG--
extra : moz-landing-system : lando
By stopping to use the scriptTimeout parameter with the
WebDriver:ExecuteScript and WebDriver:ExecuteAsyncScript commands
in the Marionette Python client, we can remove it from the server.
Differential Revision: https://phabricator.services.mozilla.com/D15583
--HG--
extra : moz-landing-system : lando
This isn't a supported behaviour and may be responsible for the observed intermittents.
Differential Revision: https://phabricator.services.mozilla.com/D14959
--HG--
extra : moz-landing-system : lando
Before this change, testing/gtest had 19 errors. These errors have been resolved.
Bug 1506611 - Fixed flake8 errors in testing/gtest
Differential Revision: https://phabricator.services.mozilla.com/D15074
--HG--
extra : moz-landing-system : lando
We were using more primitive methods before to support python 2.4, but
that's obviously no longer required.
Differential Revision: https://phabricator.services.mozilla.com/D15539
--HG--
extra : moz-landing-system : lando