Commit Graph

703337 Commits

Author SHA1 Message Date
Timothy Nikkel
ea404ff352 Bug 1632357. Add a pref to disable adding the WS_EX_LAYERED style to the compositor window. r=sotaro
On older machines it creates a blank window and we only need the pref to direct manipulation (which hasn't landed yet and will be preffed off by default when it lands).

Differential Revision: https://phabricator.services.mozilla.com/D72283
2020-04-24 07:38:09 +00:00
Zac Svoboda
94b3905b7f Bug 1631474 - Change about:profiling radio description color; r=ntim
Differential Revision: https://phabricator.services.mozilla.com/D72252
2020-04-24 07:45:35 +00:00
Matt Woodrow
5fabd0f443 Bug 1602318 - Enable parent initiated loads pref. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D72232
2020-04-24 07:01:15 +00:00
Cosmin Sabou
c7b157939a Backed out 6 changesets (bug 1470768, bug 1607639) for causing xpc failures on xpcshell/test_objectgrips-13.js. CLOSED TREE
Backed out changeset 15642af7fdbd (bug 1607639)
Backed out changeset 53565f45e275 (bug 1607639)
Backed out changeset 9f1749c622fe (bug 1607639)
Backed out changeset 747efa62d7d6 (bug 1607639)
Backed out changeset 10d0aed39069 (bug 1607639)
Backed out changeset 70aa92ce25b7 (bug 1470768)
2020-04-24 10:27:28 +03:00
Matt Woodrow
b3c5f89904 Bug 1602318 - Disable parent-initiated loads when using devtools. r=nika,ochameau
Differential Revision: https://phabricator.services.mozilla.com/D71136
2020-04-24 07:01:02 +00:00
Matt Woodrow
fc342b8877 Bug 1602318 - Initiate document loads in the parent process in parallel with setting up the content process side. r=nika,jya
Differential Revision: https://phabricator.services.mozilla.com/D72112
2020-04-24 07:00:39 +00:00
Matt Woodrow
14182ed7f9 Bug 1602318 - Simplify DocumentChannelParent construction so that everything happens in Init. r=jya,necko-reviewers,valentin
Differential Revision: https://phabricator.services.mozilla.com/D72111
2020-04-24 06:59:59 +00:00
Matt Woodrow
6ed37ff3ce Bug 1602318 - Add load identifier and copy-ctor to nsDocShellLoadState. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D72110
2020-04-24 06:59:46 +00:00
Matt Woodrow
89ca645d61 Bug 1602318 - Expose LoadContext on BrowsingContext webidl. r=nika,kmag,necko-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D71135
2020-04-24 06:59:29 +00:00
Matt Woodrow
dae1822d4c Bug 1602318 - Allow less a smaller number of pref checks. r=mconley
Differential Revision: https://phabricator.services.mozilla.com/D70625
2020-04-24 06:58:48 +00:00
Matt Woodrow
da08be6550 Bug 1602318 - Make some browser tests wait on the test uri to load instead of any uri. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D70624
2020-04-24 06:58:31 +00:00
Matt Woodrow
f9c3d901f9 Bug 1602318 - Make xpihandler tests wait for load before starting the test. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D70623
2020-04-24 06:58:08 +00:00
Matt Woodrow
1cc39bc8c3 Bug 1602318 - Fix race in browser_ext_tabs_onUpdated by installing the listener before adding the new tab. r=zombie
Differential Revision: https://phabricator.services.mozilla.com/D70622
2020-04-24 06:57:50 +00:00
Matt Woodrow
ffa2817635 Bug 1602318 - Make sure rv is initialized correctly in all branches of OpenInitializedChannel. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D70621
2020-04-24 06:57:37 +00:00
Matt Woodrow
2049140b75 Bug 1602318 - Fix unified build issues. r=jya,necko-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D70620
2020-04-24 06:57:30 +00:00
Matt Woodrow
a884d27d80 Bug 1602318 - Remove nsILoadContext from DocumentLoadListener. r=nika,necko-reviewers,dragana
Differential Revision: https://phabricator.services.mozilla.com/D70618
2020-04-24 06:57:17 +00:00
Matt Woodrow
9bd5b11714 Bug 1602318 - Make download tests wait for the STOP progress event instead of load. r=kmag
When we initiate URL bar loads from the parent, loads that are handled externally won't fire a load event from the content process docshell, so we should use the progress listener instead.

Differential Revision: https://phabricator.services.mozilla.com/D67100
2020-04-24 06:56:39 +00:00
Matt Woodrow
41134bf4e9 Bug 1602318 - Make sure we wait for the right load to finish. r=kmag
r.js

Differential Revision: https://phabricator.services.mozilla.com/D67099
2020-04-24 06:56:32 +00:00
Matt Woodrow
b4d07b7600 Bug 1602318 - Change search engine tests to listen for, and block loads in the parent. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D67098
2020-04-24 06:56:24 +00:00
Matt Woodrow
374c5f9926 Bug 1602318 - Remove incorrect assertion. r=jya
This was previously true, since we only used ResumeRedirectedLoad with a brand new docshell. This bug adds code for using it with existing docshells, which can have any Document (and associated timing object) loaded in them.

Differential Revision: https://phabricator.services.mozilla.com/D67097
2020-04-24 06:56:22 +00:00
Matt Woodrow
6d033d2b99 Bug 1602318 - Defer nsIRemoteWindowContext load requests to avoid re-entrancy. r=nika,farre,necko-reviewers,dragana
Differential Revision: https://phabricator.services.mozilla.com/D67096
2020-04-24 06:56:20 +00:00
Matt Woodrow
e93ecebed1 Bug 1602318 - Initialize mixed content channel for process-switches. r=ckerschb,necko-reviewers,dragana
Same process origin changes are handled by the docshell, which detects this during AsyncOnChannelRedirect and clears the mixed content permission.
Process switches load in a fresh docshell, so we need to make sure we appropriately set or clear the mixed content permission.

Differential Revision: https://phabricator.services.mozilla.com/D67095
2020-04-24 06:56:18 +00:00
Matt Woodrow
ca01075202 Bug 1602318 - Associate a current DocumentLoadListener with CanonicalBrowsingContext. r=nika,necko-reviewers,dragana
Differential Revision: https://phabricator.services.mozilla.com/D67094
2020-04-24 06:55:20 +00:00
Jean-Yves Avenard
39cb670d46 Bug 1632098 - P2. Don't rely on onOpenWindow to determine when we can start. r=kmag
The startup script starts by searching a window by its type; how the window type parameter is only available once the window's document element has been created.
The main window has already been created however and it is in an in-between state which means that you can't find it by its type nor will domwindowcreated be fired.

So we listen to either initial-document-element-inserted which indicates when it's okay to search for the main window by type again and we are ready to start the reftest.

Differential Revision: https://phabricator.services.mozilla.com/D72142
2020-04-24 06:25:51 +00:00
Jean-Yves Avenard
803c6f27d1 Bug 1632098 - P1. prettify api.js file. r=kmag
The file being in a reftest folder is by default ignored thanks to a blanket rule.

Differential Revision: https://phabricator.services.mozilla.com/D72141
2020-04-23 17:47:07 +00:00
Jon Coppeard
e14ba5ffd3 Bug 1632139 - Recalculate GC thresholds once at the end of GC r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D71951
2020-04-23 15:04:02 +00:00
Gerald Squelart
d6c1b933f1 Bug 1630872 - Quick-moving InChunkPointer with ProfileBufferBlockIndex - r=canaltinova
As opposed to `ProfileBufferIndex` (no "Block"), `ProfileBufferBlockIndex` is only supposed to point at a valid block start.
If we trust this assumption, it allows for quick access to the given block index inside the buffer, as we don't need to read blocks one by one until we reach the given position.

There are still safety checks (MOZ_ASSERTs in DEBUG builds) to verify that block indices are correctly used.

Differential Revision: https://phabricator.services.mozilla.com/D71502
2020-04-24 06:21:46 +00:00
Gerald Squelart
a11580da0f Bug 1630872 - Replace uses of BlocksRingBuffer with ProfileChunkedBuffer in Base Profiler - r=canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D71883
2020-04-24 06:24:44 +00:00
Gerald Squelart
c00a525a32 Bug 1630872 - Removed 'BlocksRingBuffer' from some Base Profiler platform variables - r=canaltinova
Renamed some variables to be more generic. Their type is going to change in the next patch, and that type doesn't need to be in the names; also it will make the next patch easier to review.

Differential Revision: https://phabricator.services.mozilla.com/D71882
2020-04-24 06:21:10 +00:00
Gerald Squelart
d83022dc79 Bug 1630872 - Replace uses of BlocksRingBuffer with ProfileChunkedBuffer in Gecko Profiler - r=canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D71501
2020-04-24 06:21:05 +00:00
Gerald Squelart
46893a9a2b Bug 1630872 - Removed 'BlocksRingBuffer' from some Gecko Profiler platform variables - r=canaltinova
Renamed some variables to be more generic. Their type is going to change in the next patch, and that type doesn't need to be in the names; also it will make the next patch easier to review.

Differential Revision: https://phabricator.services.mozilla.com/D71500
2020-04-24 06:19:52 +00:00
Gerald Squelart
3a06f23a20 Bug 1630872 - Replace InChunkBuffer::operator bool() and operator!() with IsNull() - r=canaltinova
`explicit operator bool()` and `operator!()` were cute ways to make `InChunkBuffer` quack like a pointer when testing if it's effectively null.
But after some experience, and since `InChunkPointer` will not be used in generic code where pointers would be accepted, I now think that it's better to be clearer about it and use an explicit `IsNull()`.

Differential Revision: https://phabricator.services.mozilla.com/D71499
2020-04-24 06:19:39 +00:00
Gerald Squelart
6814c95c04 Bug 1630872 - ProfileChunkedBuffer Put* functions provide a Maybe<ProfileBufferEntryWriter> - r=canaltinova
Same as with `BlocksRingBuffer`: Instead of a potentially-null pointer to a
`ProfileBufferEntryWriter`, we are now providing a
`Maybe<ProfileBufferEntryWriter>`, which is safer.

Differential Revision: https://phabricator.services.mozilla.com/D71287
2020-04-24 06:19:27 +00:00
Gerald Squelart
525010089c Bug 1630872 - BlockRingBuffer Put* functions provide a Maybe<ProfileBufferEntryWriter> - r=canaltinova
Instead of a potentially-null pointer to a `ProfileBufferEntryWriter`, we are now providing a `Maybe<ProfileBufferEntryWriter>`, which is safer.

Differential Revision: https://phabricator.services.mozilla.com/D71286
2020-04-24 06:19:09 +00:00
Logan Smyth
da68440b0d Bug 1607639 - Part 5: Resolve sourcemaps relative to their execution environment. r=jlast
Differential Revision: https://phabricator.services.mozilla.com/D72116
2020-04-24 06:15:15 +00:00
Logan Smyth
2cdc9b1bbb Bug 1607639 - Part 4: Convert introductionUrl into sourceMapBaseURL to match actual usage. r=jlast
Differential Revision: https://phabricator.services.mozilla.com/D72115
2020-04-24 06:15:13 +00:00
Logan Smyth
01eef174fc Bug 1607639 - Part 3: Remove unnecessary falsy checks for _source in source actor. r=jlast
Differential Revision: https://phabricator.services.mozilla.com/D72107
2020-04-24 06:13:24 +00:00
Logan Smyth
1b301205ab Bug 1607639 - Part 2: Remove the unused 'introductionUrl' value from Source objects. r=jlast
Differential Revision: https://phabricator.services.mozilla.com/D72106
2020-04-24 06:13:11 +00:00
Logan Smyth
1f5bf8805c Bug 1607639 - Part 1: Remove the unused 'introductionType' value from Source objects. r=jlast
Differential Revision: https://phabricator.services.mozilla.com/D72105
2020-04-24 06:12:13 +00:00
Logan Smyth
9d69639c41 Bug 1470768 - Allow sourceURL to apply generally across all types of scripts. r=jlast
Differential Revision: https://phabricator.services.mozilla.com/D72104
2020-04-24 06:11:17 +00:00
James Teh
122d48f2b2 Bug 1632706: When updating AccGroupInfo, If a sibling has cached group info, assume it's visible. r=MarcoZ
This avoids unnecessary calls to States().

Differential Revision: https://phabricator.services.mozilla.com/D72265
2020-04-24 02:42:46 +00:00
Emilio Cobos Álvarez
b8fbb6ead5 Bug 1509418 - Collect ancestor hashes from single-length :is and :where selector lists. r=heycam,boris
We can only collect hashes from single-length selectors, as described in
the comment.

Differential Revision: https://phabricator.services.mozilla.com/D71458
2020-04-23 19:20:35 +00:00
Emilio Cobos Álvarez
f92b952261 Bug 1509418 - Handle disjoint selectors in the selector map. r=heycam,boris
This way, something like:

  *:where(.foo, .bar)

Will end up twice on the selector map, just as if you would've written
.foo, .bar.

But we're a bit careful to not be wasteful, so:

  .foo:where(div, span)

Will still end up using the .foo bucket.

It needs a bit of borrow-checker gymnastics to avoid cloning the entry
in the common path. It's a bit gross but not too terrible I think.

Differential Revision: https://phabricator.services.mozilla.com/D71457
2020-04-23 19:20:27 +00:00
Emilio Cobos Álvarez
844ccbee62 Bug 1509418 - Enable the feature in Nightly. r=heycam,boris
There are a bunch of missing tests, and there are some tests that don't
match the current spec text, that I need to write or fix before I enable the
feature everywhere.

But there are fairly complex invalidation tests, that we pass flawlessly :)

Differential Revision: https://phabricator.services.mozilla.com/D71424
2020-04-23 19:20:25 +00:00
Emilio Cobos Álvarez
7ff7bc8cc2 Bug 1509418 - Optimize invalidation by scanning the rightmost compound inside :where() and :is() with the outer visitor. r=heycam,boris
See the comment about why this is valuable. For a selector like:

    .foo:is(.bar) > .baz

Before this patch we'd generate an Dependency for .bar like this:

    Dependency {
        selector: .bar,
        offset: 0,
        parent: Some(Dependency {
            selector: .foo:is(.bar) > .baz,
            offset: 1, // Pointing to the `>` combinator.
            parent: None,
        }),
    }

After this patch we'd generate just:

    Dependency {
        selector: .foo:is(.bar) > .baz,
        offset: 1, // Pointing to the `>` combinator.
        parent: None,
    }

This is not only less memory but also less work. The reason for that is that,
before this patch, when .bar changes, we'd look the dependency, and see there's
a parent, and then scan that, so we'd match `.bar` two times, one for the
initial dependency, and one for .foo:is(.bar).

Instead, with this we'd only check `.foo:is(.bar)` once.

Differential Revision: https://phabricator.services.mozilla.com/D71423
2020-04-23 19:20:17 +00:00
Emilio Cobos Álvarez
2975274c6b Bug 1509418 - Make Invalidation work in terms of a dependency, not a selector. r=heycam,boris
That way we can look at the parent dependency as described in the previous
patch. An alternative would be to add a:

    parent_dependency: Option<&'a Dependency>

on construction to `Invalidation`, but this way seems slightly better to avoid
growing the struct. It's not even one more indirection because the selector is
contained directly in the Dependency struct.

Differential Revision: https://phabricator.services.mozilla.com/D71422
2020-04-23 19:20:10 +00:00
Emilio Cobos Álvarez
40a0b1a6d6 Bug 1509418 - Keep track of nested dependencies for :where() and :is(). r=heycam,boris
The tricky part of :is() and :where() is that they can have combinators inside,
so something like this is valid:

  foo:is(#bar > .baz) ~ taz

The current invalidation logic is based on the assumption that you can
represent a combinator as a (selector, offset) tuple, which are stored in the
Dependency struct. This assumption breaks with :is() and :where(), so we need
to make them be able to represent a combinator in an "inner" selector.

For this purpose, we add a `parent` dependency. With it, when invalidating
inside the `:is()` we can represent combinators inside as a stack.

The basic idea is that, for the example above, when an id of "bar" is added or
removed, we'd find a dependency like:

    Dependency {
        selector: #bar > .baz,
        offset: 1, // pointing to the `>` combinator
        parent: Some(Dependency {
            selector: foo:is(#bar > .baz) > taz,
            offset: 1, // Pointing to the `~` combinator.
            parent: None,
        })
    }

That way, we'd start matching at the element that changed, towards the right,
and if we find an element that matches .baz, instead of invalidating that
element, we'd look at the parent dependency, then double-check that the whole
left-hand-side of the selector (foo:is(#bar > .baz)) actually changed, and then
keep invalidating to the right using the parent dependency as usual.

This patch only builds the data structure and keeps the code compiling, the
actual invalidation work will come in a following patch.

Differential Revision: https://phabricator.services.mozilla.com/D71421
2020-04-23 19:20:03 +00:00
Mike Hommey
631e3b46ff Bug 1632727 - Remove use of deprecated Error::description. r=webdriver-reviewers,whimboo
Differential Revision: https://phabricator.services.mozilla.com/D72285
2020-04-24 05:23:32 +00:00
Jean-Yves Avenard
e48b5b0393 Bug 1607984 - P14-2. Correct preference check. r=mattwoodrow
The test became invalid with the preference introduced in P17.

Differential Revision: https://phabricator.services.mozilla.com/D72288
2020-04-24 05:22:16 +00:00
Daisuke Akatsuka
3380bd0143 Bug 1604211: Add test of target-switching for inspectedWindow. r=rpl
Depends on D67438

Differential Revision: https://phabricator.services.mozilla.com/D67439
2020-04-24 04:37:05 +00:00