If a range endpoint is in the middle of a text node, and you call
deleteContents() or extractContents(), the spec says to delete the data
from the node. In the case of extractContents(), the new text node
that's inserted into the DocumentFragment is a clone with its data set
to the bit that was deleted.
<https://dom.spec.whatwg.org/#dom-range-deletecontents>
<https://dom.spec.whatwg.org/#dom-range-extractcontents>
We don't do this. Instead, we split the text node. Then the bit to
delete is deleted naturally at a later stage together with all the other
nodes.
The result is the same, but on the way there we do a bunch more node
mutations. This causes extra mutation records, which cause us to fail a
WPT test. Chrome passes. Changing to match the spec actually reduces
our lines of code anyway.
MozReview-Commit-ID: FTTV5yNSj71
--HG--
extra : rebase_source : 8d5f36c68c71db0700f0b86d1a73462759f922e8
In case of websites manipulating the browser's history via history.pushState
there will be no usual page load events fired. Instead listeners for popstate
events have to be used.
When such an event occurs we can directly return because the browser will
not load the underlying page. This only happens when navigating to another
page first, or restarting Firefox.
MozReview-Commit-ID: 3PceeYK9Co7
--HG--
extra : rebase_source : 30c162f72279712920a96ebc2076db27d01c41b6
Return the contents of value, if it exists, after asserting the response
was successful.
assert_success can be passed a value which will assert that the response's
value matches an expected value. If you want to compare a subsection
of the response it may be convenient to for the value to be returned
after it has been asserted that the response was a success.
MozReview-Commit-ID: 1dyzQIazYEN
--HG--
extra : rebase_source : f628f1fa144ccfd026b21df1b4bc2e748b08413c
Introduces two new APIs on client.Window in the WPT WebDriver client:
client.Window#state and client.Window#rect. The latter is used to reduce
raw calls amongst client.Window's shorthands to GET window/rect.
MozReview-Commit-ID: Kf4P2q93QaL
--HG--
extra : rebase_source : cd38db307a3db08c0cc94eb7adb582bd885987e2
If a test leaves the window in maximized, minimized, or fullscreen
state it should be returned to the normal state the next time a session
is requested.
MozReview-Commit-ID: IALlITFVz1w
--HG--
extra : rebase_source : df1944bc73d967fa9ff0fe4e60e7815044afef0b
Upgrades the webdriver crate dependency to 0.29.0, which contains some
backwards incompatible changes for RectResponse. This type has been
split in two, WindowRectResponse and ElementRectResponse.
The former type contains a new "state" field which is already implemented
by Marionette. Because geckodriver is used with a range of earlier
Firefoxen, it defaults to "normal" window state if the field is not
returned from Marionette. This is acceptable.
MozReview-Commit-ID: FRxppRVmiZl
--HG--
extra : rebase_source : 4a86659f337598bb4f5623c51f5df288c8a5dd69
They were just dropped from the spec:
https://github.com/whatwg/dom/issues/362https://github.com/whatwg/dom/pull/489
ErrorEvent we never supported anyway until it was added recently to
match the spec. PopStateEvent is not supported by WebKit, Blink is
planning to try dropping support, our telemetry shows usage is
basically zero, and we never supported any way to initialize it anyway.
The changes to Document-createEvent.html and Document-createEvent.js are
taken from upstream. The other wpt changes are new in this commit.
MozReview-Commit-ID: A6GzhLwL08l
--HG--
extra : rebase_source : 4bdcd605b179ea787985845e9b1c53f76ebc179a
The marionette.defaultPrefs.port and marionette.logging preferences were
removed in https://bugzil.la/1344748, which shipped in Firefox 54.
Because the next version of geckodriver (0.19.0) will only support
Firefox 55 and greater, it is safe to remove the fallbacks.
MozReview-Commit-ID: 4fhtoRasqyB
--HG--
extra : rebase_source : 0ac6dff0343efd66312a482f2be832e95013be48
This is the one event we don't support in createEvent() that Blink
doesn't want to drop support for because they see nontrivial usage:
https://www.chromestatus.com/metrics/feature/timeline/popularity/1171
Supporting it shouldn't hurt us and might make us work better on
whatever the sites are that Blink is hitting.
MozReview-Commit-ID: FbfTd6AYnDg
--HG--
extra : rebase_source : f6bbcbd04af87349064b965814571e832932c130
This will only work if runByManifest is enabled, otherwise the harness will error out. It's also
illegal to set this on an individual test, it must be on the entire manifest.
MozReview-Commit-ID: LWYa3Sk1uyW
--HG--
extra : rebase_source : ea4add087c795324745a0a5fc18b3ef50b2292b0
Currently manifestparser will only look for line continuations *after* looking for a key. This means
that line continuations cannot contain key separators. For example, this:
[test]
foo=
bar=baz
gets treated as:
{'name': 'test', 'foo': '', 'bar': 'baz'}
Here, bar=baz will be treated as a new key/value pair despite the indentation. This patch switches
the order around, so we look for a continuation first. Now, it is only treated as a continuation if
the indent is greater than the indent of the preceding key.
So this manifest:
[test]
foo=bar
baz=fleem
is a continuation and results in:
{'name': 'test', 'foo': 'bar\nbaz=fleem'}
But this manifest:
[test]
foo=bar
baz=fleem
is not a continuation, and yields:
{'name': 'test', 'foo': 'bar', 'baz': 'fleem'}
MozReview-Commit-ID: FAMP5TUIo9q
--HG--
extra : rebase_source : 624c53cfe0565374c1224dd86a3fffc8831279d3
The geckodriver HTTPD proxy implements WebDriver conforming capabilities
negotation and it is unnecessary to do this in the Marionette WebDriver
service. The capabilities matching that Marionette implements is also
not as good as the implementation found in geckodriver.
The WebDriver:NewSession command will still accept a JSON Object of
"configuration" capabilities that carry the pre-matched capabilities from
geckodriver. These will be used as configuration options for the session.
Type- and bounds checks will still be performed on this input.
MozReview-Commit-ID: CROjgGuTXOG
--HG--
extra : rebase_source : eb7e9f69fe3b23b77ea497d758fe30ac93d6373c
Also remove stale expected failures for region and locality.
MozReview-Commit-ID: 7McvaCWfY3a
--HG--
extra : rebase_source : e94b5e30df85f911fe8f5ce52dbd6459efbc92df
Changes to match spec, Chrome, and Safari. The spec was discussed and
is what we want -- we already expand entities from the internal subset
when parsing, so there's no need to remember their definitions. Indeed
it seems like it would make sense to alter the parser to throw away the
internal subset entirely at the end of parsing.
MozReview-Commit-ID: LDvYAqSZkgE
--HG--
extra : rebase_source : 928722b51d931a3c1ce358b2346c5e535bfa16df
This mechanically replaces nsILocalFile with nsIFile in
*.js, *.jsm, *.sjs, *.html, *.xul, *.xml, and *.py.
MozReview-Commit-ID: 4ecl3RZhOwC
--HG--
extra : rebase_source : 412880ea27766118c38498d021331a3df6bccc70
The WebDriver service in the remote protocol accepts sessionId and
session_id and we only need on. All known consumers are using sessionId,
and we can drop the session_id fallback.
MozReview-Commit-ID: 6fa5Lgkzwfu