Commit Graph

637 Commits

Author SHA1 Message Date
Norisz Fay
d281685db4 Backed out 5 changesets (bug 1742865, bug 1744397) for causing wpt failures on attr-meta-http-equiv-refresh/parsing.html CLOSED TREE
Backed out changeset 7b01edc5a0e0 (bug 1744397)
Backed out changeset 41abd4b7d2c0 (bug 1744397)
Backed out changeset 634641e3a05a (bug 1744397)
Backed out changeset 6e7755177481 (bug 1744397)
Backed out changeset e9fc94b33da9 (bug 1742865)
2021-12-14 13:25:58 +02:00
Peter Van der Beken
3303fb66bd Bug 1742865 - Handle meta refresh correctly with session history in the parent. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D132837
2021-12-14 10:13:58 +00:00
Edgar Chen
be93614b77 Bug 1744321 - Add IsInProcess() check while checking sandbox flags; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D133073
2021-12-10 18:56:42 +00:00
Cosmin Sabou
c26566def8 Backed out changeset 1778ca2ab291 (bug 1744425) for bc failures on browser_xpcom_graph_wait.js. CLOSED TREE 2021-12-08 07:20:54 +02:00
Chris Peterson
6e3e9adfcc Bug 1744425 - Replace nsContentUtils::GenerateUUID() to nsID::GenerateUUID(). r=nika
Bug 1723674 added a new nsID::GenerateUUID() static factory function to generate UUIDs without the overhead of querying and instantiating an nsIUUIDGenerator object. nsContentUtils::GenerateUUID() is a utility function that amortizes that overhead by holding an nsIUUIDGenerator singleton. That's no longer necessary because code that calls nsContentUtils::GenerateUUID() can now just call nsID::GenerateUUID(). No nsIUUDGenerator is needed.

Differential Revision: https://phabricator.services.mozilla.com/D132866
2021-12-08 03:19:11 +00:00
Narcis Beleuzu
6e9d812757 Backed out 12 changesets (bug 1721217) for bc failures on browser_TopLevelNavigationDelegate.js
Backed out changeset 5fe3c617d521 (bug 1721217)
Backed out changeset c131e4a6d9d5 (bug 1721217)
Backed out changeset a59210a5b400 (bug 1721217)
Backed out changeset 74362b0c39c0 (bug 1721217)
Backed out changeset c8075b91d660 (bug 1721217)
Backed out changeset 46512deaf0e5 (bug 1721217)
Backed out changeset b38bc569d227 (bug 1721217)
Backed out changeset ee9bd012fda8 (bug 1721217)
Backed out changeset 7aa2726a0982 (bug 1721217)
Backed out changeset 885ced5f4bb4 (bug 1721217)
Backed out changeset 7d3f99ca3f44 (bug 1721217)
Backed out changeset 2f5a0164679a (bug 1721217)
2021-12-01 03:38:10 +02:00
Anny Gakhokidze
f93c8afd88 Bug 1721217 - Part 2: Fix the race between navigations originating in the parent and in the content, r=nika
Add a synced ParentInitiatedNavigationEpoch field to browsing context, which
only gets incremented when we start navigations in the parent process. When a
child process initiates a navigation, it sends the current value of the field
that it sees via DocumentChannelCreationArgs. In the parent process, we can
compare the value of that field with the latest one for the same browsing
context. If the latest value is higher than the one provided by the content
process, it means that in the meantime parent process has started a navigation
so the earlier navigation originating in the content process will be cancelled.

Differential Revision: https://phabricator.services.mozilla.com/D126842
2021-11-30 16:31:34 +00:00
Peter Van der Beken
d46742709c Bug 1740516 - Fire pageshow for an iframe before the pageshow for its parent window when coming out of BFCache with session history in parent. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D131891
2021-11-27 11:14:08 +00:00
Narcis Beleuzu
96c4882d22 Backed out 11 changesets (bug 1721217) for bc failures on browser_scrollPositions.js . CLOSED TREE
Backed out changeset 750f4a84b30e (bug 1721217)
Backed out changeset c4eb4ad769ad (bug 1721217)
Backed out changeset 81af11d67439 (bug 1721217)
Backed out changeset 548f2441b7c6 (bug 1721217)
Backed out changeset cd584129321a (bug 1721217)
Backed out changeset f5f5291d1da8 (bug 1721217)
Backed out changeset 9ad66ceec1e2 (bug 1721217)
Backed out changeset 10b53a21bb23 (bug 1721217)
Backed out changeset 3755cfbe22fe (bug 1721217)
Backed out changeset 71436dc6c4c4 (bug 1721217)
Backed out changeset ecf33b73ae60 (bug 1721217)
2021-11-26 01:51:03 +02:00
Anny Gakhokidze
3318dd6b6e Bug 1721217 - Part 2: Fix the race between navigations originating in the parent and in the content, r=nika
Add a synced ParentInitiatedNavigationEpoch field to browsing context, which
only gets incremented when we start navigations in the parent process. When a
child process initiates a navigation, it sends the current value of the field
that it sees via DocumentChannelCreationArgs. In the parent process, we can
compare the value of that field with the latest one for the same browsing
context. If the latest value is higher than the one provided by the content
process, it means that in the meantime parent process has started a navigation
so the earlier navigation originating in the content process will be cancelled.

Differential Revision: https://phabricator.services.mozilla.com/D126842
2021-11-25 20:40:57 +00:00
Marian-Vasile Laza
59718b1e2e Backed out changeset a905fca36db2 (bug 1740516) for causing bc failures on browser_bug343515.js. CLOSED TREE 2021-11-25 22:55:43 +02:00
Peter Van der Beken
7c94e0f4c2 Bug 1740516 - Fire pageshow for an iframe before the pageshow for its parent window when coming out of BFCache with session history in parent. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D131891
2021-11-25 16:22:48 +00:00
Butkovits Atila
f11c69b446 Backed out 2 changesets (bug 1740517, bug 1740516) for causing failures at browser_bug343515.js and browser_browsingContext-webProgress.js. CLOSED TREE
Backed out changeset e656dd82e48a (bug 1740517)
Backed out changeset 9eb7a39f39b7 (bug 1740516)
2021-11-23 23:28:54 +02:00
Peter Van der Beken
64e739ad46 Bug 1740516 - Fire pageshow for an iframe before the pageshow for its parent window when coming out of BFCache with session history in parent. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D131891
2021-11-23 20:04:35 +00:00
Marian-Vasile Laza
465f8a2eb1 Backed out 4 changesets (bug 1741132, bug 1740516, bug 1740517) for causing mochitest failures on test_bug1741132.html.
Backed out changeset 9b91c4d469d7 (bug 1741132)
Backed out changeset 1ad268a75fec (bug 1741132)
Backed out changeset 6a6e91c8eeeb (bug 1740517)
Backed out changeset c8a789ba6dc7 (bug 1740516)
2021-11-23 19:07:58 +02:00
Peter Van der Beken
d3e1114ca6 Bug 1740516 - Fire pageshow for an iframe before the pageshow for its parent window when coming out of BFCache with session history in parent. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D131891
2021-11-23 15:37:23 +00:00
Tooru Fujisawa
688a5da5c5 Bug 1701001 - Part 2: Add "is popup" field to browsing context. r=smaug
Add BrowsingContext::FieldValues.mIsPopupRequested, and pass "is popup"
value calculated before opening window/tab to BrowsingContext::CreateDetached.

Other code path that is unrelated to content-priv window.open uses the
default value false.

Differential Revision: https://phabricator.services.mozilla.com/D129411
2021-11-06 01:19:14 +00:00
Marian-Vasile Laza
1ad5e0f00b Backed out 4 changesets (bug 1737832, bug 1701001) for causing geckoview failures on noopener-noreferrer-BarProp.window.html. CLOSED TREE
Backed out changeset ff439d9c0391 (bug 1701001)
Backed out changeset b0e47b1f4d39 (bug 1701001)
Backed out changeset 0e2ca3cc650e (bug 1701001)
Backed out changeset 712b897cbc76 (bug 1737832)
2021-11-06 02:44:46 +02:00
Tooru Fujisawa
4b4b4f1547 Bug 1701001 - Part 2: Add "is popup" field to browsing context. r=smaug
Add BrowsingContext::FieldValues.mIsPopupRequested, and pass "is popup"
value calculated before opening window/tab to BrowsingContext::CreateDetached.

Other code path that is unrelated to content-priv window.open uses the
default value false.

Differential Revision: https://phabricator.services.mozilla.com/D129411
2021-11-05 23:07:40 +00:00
alwu
0c767c1481 Bug 1733902 - part1 : create a new sync attribute on top-level browsing context for whether we should delay media from starting, and use it to replace the old attribute on outer windows. r=nika,emilio
Brief recap:
Before we have blocking autoplay, we had a feature which will delay media from start if the tab hasn't been visited by users, in order to prevent an unvisited background tab suddenly play sounds, which is annoying and might be unexpected to users.

In this patch:
The attribute we use to check whether we need to delay media is on the outer window, which is not Fission compatible if the top level window and its child windows are on the different process.

If the top level window has been visited, then all its child window should follow the same result. Therefore, we need to move the attribute to the browsing context in order to sync it across different windows.

Differential Revision: https://phabricator.services.mozilla.com/D128126
2021-11-01 22:26:40 +00:00
Olli Pettay
a6a3566d5d Bug 1583110, freeze/thaw in a separate step, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D129701
2021-11-01 14:43:31 +00:00
Emilio Cobos Álvarez
b3255b57be Bug 1736141 - Make Document::PreferredColorScheme safe to call off-main-thread. r=mstange
Document::GetBrowsingContext uses a WeakPtr<nsIDocShell> so we can't do
that. But we have all the other media emulation data and so on in the
pres context which we can access off the main thread for style, so move the
override code there.

Differential Revision: https://phabricator.services.mozilla.com/D128673
2021-10-19 09:00:42 +00:00
Olli Pettay
b8628eb4b5 Bug 1733067 - Update SHEntrySharedParentState::mExpired when loading a page, r=peterv
The main part of the patch is to get the state to
CanonicalBrowsingContext::SessionHistoryCommit.
The old code does similar thing in
https://searchfox.org/mozilla-central/rev/d37daf2f82ed22b6a2a5cbbb975423825dfd69fa/docshell/base/nsDocShell.cpp#11630-11638

This is not fixing the issue with session store where the flag is lost.
Also, I think SessionHistoryEntry should probably store a timestamp and not just a flag, but that
would change the behavior more vs. the old implementation.

Differential Revision: https://phabricator.services.mozilla.com/D128313
2021-10-13 14:42:56 +00:00
Emilio Cobos Álvarez
ad152d93ae Bug 1730503 - Make anonymous scrollbar caching work on mac by default, and unify scrollbars.css across platforms. r=mstange,desktop-theme-reviewers,dao
We make it work on macOS by setting pointer-events: none + opacity: 0 rather
than visibility: hidden, and tweaking the caching setup to be Android-like.

Now that the scrollbars sheet is the same across platforms, move it to where
the rest of the UA sheets are. This way we guarantee that the RDM vs. Android
difference is less (just the ifdef at the top of the sheet).

Depends on D128084

Differential Revision: https://phabricator.services.mozilla.com/D128085
2021-10-12 09:21:18 +00:00
Emilio Cobos Álvarez
e1e3914e8d Bug 1730503 - Make RDM force Android-style scrollbars better. r=mstange,devtools-backward-compat-reviewers,nchevobbe
There are a few bits that still don't work with this patch but will with the
following patches.

Differential Revision: https://phabricator.services.mozilla.com/D128083
2021-10-12 09:21:17 +00:00
Karl Tomlinson
1b6c022926 Bug 1732410 wait for focus before proceeding for enumerateDevices() Promises r=jib,nika
https://github.com/w3c/mediacapture-main/pull/574

Focus on browser chrome widgets is accepted provided the tab is fully active
and foreground.
https://github.com/w3c/mediacapture-main/issues/752#issuecomment-742036800

Differential Revision: https://phabricator.services.mozilla.com/D127051
2021-10-11 20:44:39 +00:00
Nika Layzell
8af8a308e2 Bug 1732911 - Hold a PendingDiscard during BrowsingContext::Detach in parent, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D127483
2021-10-04 21:04:05 +00:00
Edgar Chen
187885c5c7 Bug 1733052 - Part 2: Revise popup abuse level if there is a valid transient user activation; r=smaug
This is a intermediate solution to make popup block could work with new user
activation model (timer base). I think this should cover most of async case for
`window.open()`. For long term, we still need to clean up the popup state which
is tracked by bug 1656444.

Differential Revision: https://phabricator.services.mozilla.com/D126879
2021-10-04 09:17:18 +00:00
Olli Pettay
7ecc9afd1d Bug 1725680, requested index should be used only by the nsSHistory (and related code in CanonicalBrowsingContext), r=peterv
Using requestedIndex on the child side is hard, because there are race conditions when a session history load is triggered
and at the same time a non-session history load commits a new active entry.

Differential Revision: https://phabricator.services.mozilla.com/D126619
2021-09-29 13:22:34 +00:00
Nika Layzell
b46d5cc301 Bug 1725572 - Part 2: Keep BrowsingContext alive until every process has acknowledged the discard, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D125897
2021-09-23 18:54:31 +00:00
Olli Pettay
744c63884d Bug 1727514 - media playback should stop in the bfcache, r=peterv
This version doesn't change SetContainer handling, since it seems to be tricky for the top level page.
So only activity change notification is fired and IsActive() is updated.
The comment about IsActive() was wrong even with the old bfcache implementation.
(I did check that it returned false when the page was in bfcache and many of the activity observers rely on that)

The changes to HTMLMediaElement are needed to ensure page can enter bfcache..

Differential Revision: https://phabricator.services.mozilla.com/D124684
2021-09-20 08:49:22 +00:00
Sandor Molnar
d4735562cb Backed out changeset 2d49d73f38aa (bug 1727514) for causing frequent crashes. a=backout 2021-09-16 15:52:56 +03:00
Olli Pettay
094c43801e Bug 1727514 - media playback should stop in the bfcache, r=peterv
SetContainer handling is similar to what DocumentViewer does for the old bfcache implementation.
(The old implementation hides it quite well).
The changes to HTMLMediaElement are needed to ensure page can enter bfcache.

Removed erroneous MOZ_ASSERT in nsPresContext, it is ok to trigger that code path in the new implementation.
And the Run() method of the relevant nsIRunnable already deals with that case.

Differential Revision: https://phabricator.services.mozilla.com/D124684
2021-09-13 12:40:18 +00:00
Nika Layzell
02a67629af Bug 1725572 - Wait for parent ack when discarding BC from child, r=kmag
I am not confident that this will fix the underlying issue causing this crash,
but given how small of a change it is, I figure it's worth trying to land
quickly to see if the crash rate drops with it.

Differential Revision: https://phabricator.services.mozilla.com/D124503
2021-09-03 22:21:49 +00:00
Nika Layzell
0eeb1388f2 Bug 1722880 - Part 1: Add IsInBFCache to WindowContext, and make it non-SHIP compatible, r=smaug,necko-reviewers,dragana
This field will be useful to JS code such as JSWindowActors which need to be
able to detect when their WindowContext is no longer active.

Differential Revision: https://phabricator.services.mozilla.com/D124098
2021-09-03 15:26:13 +00:00
Nika Layzell
55861c5fc9 Bug 1728605 - Part 3: Rename IsFrame to IsSubframe, r=smaug
This makes the method's name more consistent with IsContentSubframe, and is
probably more clear than IsFrame (as a <browser> could be considered a frame).

Depends on D124211

Differential Revision: https://phabricator.services.mozilla.com/D124212
2021-09-02 14:15:04 +00:00
Nika Layzell
9feface235 Bug 1728605 - Part 2: Rename misleading {Window,Browsing}Context::IsCached, r=smaug
This method actually tracks whether the context is current, so it has been
renamed, and the behaviour has been inverted.

Depends on D124210

Differential Revision: https://phabricator.services.mozilla.com/D124211
2021-09-02 14:15:04 +00:00
alwu
ea440ffd35 Bug 1719183 - part1 : use a count to generalize the usage of preventing page from being suspended. r=nika
To support more cases, change this value to more general name and use a count instead, if the count is larger than zero, then we would not suspend the page.

In addition, this value now can be set in any processes (but still for the top level only), which is different from before where we would only set the value from the chrome process.

Differential Revision: https://phabricator.services.mozilla.com/D119837
2021-08-03 21:32:26 +00:00
Nika Layzell
fa9d05a266 Bug 1719184 - Transmit blob URLs more accurately when loading, r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D119539
2021-07-12 20:56:04 +00:00
Andreas Farre
bd9faf87ad Bug 1701303 - Move counting of private browsing contexts to parent process. r=smaug,johannh
Move the counting of private browsing contexts to the parent
process. Also change to only consider non-chrome browsing contexts
when counting private contexts. The latter is possible due to bug
1528115, because we no longer need to support hidden private windows.

With counting in the parent process we can make sure that when we're
changing remoteness on a private browsing context the private browsing
context count never drops to zero. This fixes an issue with Fission,
where we remoteness changes could transiently have a zero private
browsing context count, that would be mistaken for the last private
browsing context going away.

Changing to only count non-chrome browsing contexts makes us only fire
'last-pb-context-exited' once, and since we count them in the parent
there is no missing information about contexts that makes us wait for
a content process about telling us about insertion or removal of
browsing contexts.

Differential Revision: https://phabricator.services.mozilla.com/D118182
2021-07-05 15:17:55 +00:00
Marian-Vasile Laza
7cf836b79b Backed out changeset 55f827545de2 (bug 1701303) for causing bustages on ContentParent.cpp. CLOSED TREE 2021-07-05 17:12:13 +03:00
Andreas Farre
042d294d58 Bug 1701303 - Move counting of private browsing contexts to parent process. r=smaug,johannh
Move the counting of private browsing contexts to the parent
process. Also change to only consider non-chrome browsing contexts
when counting private contexts. The latter is possible due to bug
1528115, because we no longer need to support hidden private windows.

With counting in the parent process we can make sure that when we're
changing remoteness on a private browsing context the private browsing
context count never drops to zero. This fixes an issue with Fission,
where we remoteness changes could transiently have a zero private
browsing context count, that would be mistaken for the last private
browsing context going away.

Changing to only count non-chrome browsing contexts makes us only fire
'last-pb-context-exited' once, and since we count them in the parent
there is no missing information about contexts that makes us wait for
a content process about telling us about insertion or removal of
browsing contexts.

Differential Revision: https://phabricator.services.mozilla.com/D118182
2021-07-05 13:16:49 +00:00
Marian-Vasile Laza
83fb5bc219 Backed out changeset 4854ff4fff72 (bug 1701303) for causing bustages on nsDocShell.cpp. CLOSED TREE 2021-07-05 14:21:48 +03:00
Andreas Farre
e7338fb5d4 Bug 1701303 - Move counting of private browsing contexts to parent process. r=smaug,johannh
Move the counting of private browsing contexts to the parent
process. Also change to only consider non-chrome browsing contexts
when counting private contexts. The latter is possible due to bug
1528115, because we no longer need to support hidden private windows.

With counting in the parent process we can make sure that when we're
changing remoteness on a private browsing context the private browsing
context count never drops to zero. This fixes an issue with Fission,
where we remoteness changes could transiently have a zero private
browsing context count, that would be mistaken for the last private
browsing context going away.

Changing to only count non-chrome browsing contexts makes us only fire
'last-pb-context-exited' once, and since we count them in the parent
there is no missing information about contexts that makes us wait for
a content process about telling us about insertion or removal of
browsing contexts.

Differential Revision: https://phabricator.services.mozilla.com/D118182
2021-07-05 09:30:53 +00:00
Kashav Madan
85a4822ac7 Bug 1703692 - Use ChildOffset to build the offset path for flushes, r=nika
We can't rely on the Children list since it may have been cleared on shutdown.
Since we don't clear parent edges, walking the parent chain and using
mChildOffset works.

Differential Revision: https://phabricator.services.mozilla.com/D118384
2021-06-26 20:25:29 +00:00
Kashav Madan
a1f3331643 Bug 1703692 - Store the latest embedder's permanent key on CanonicalBrowsingContext, r=nika,mccr8
And include it in Session Store flushes to avoid dropping updates in case the
browser is unavailable.

Differential Revision: https://phabricator.services.mozilla.com/D118385
2021-06-26 20:25:29 +00:00
Dorel Luca
c293dee662 Backed out 3 changesets (bug 1703692) for Browser-chrome failures in browser/components/sessionstore/test/browser_broadcast.js. CLOSED TREE
Backed out changeset fe5703d7b580 (bug 1703692)
Backed out changeset eec4a4138ca7 (bug 1703692)
Backed out changeset 6745b363a745 (bug 1703692)
2021-06-26 10:09:23 +03:00
Kashav Madan
bc9322271d Bug 1703692 - Use ChildOffset to build the offset path for flushes, r=nika
We can't rely on the Children list since it may have been cleared on shutdown.
Since we don't clear parent edges, walking the parent chain and using
mChildOffset works.

Differential Revision: https://phabricator.services.mozilla.com/D118384
2021-06-26 05:49:12 +00:00
Kashav Madan
bb26572412 Bug 1703692 - Store the latest embedder's permanent key on CanonicalBrowsingContext, r=nika,mccr8
And include it in Session Store flushes to avoid dropping updates in case the
browser is unavailable.

Differential Revision: https://phabricator.services.mozilla.com/D118385
2021-06-26 05:49:12 +00:00
Iulian Moraru
6f300817be Backed out 3 changesets (bug 1703692) for causing bc failures on multiple files.
Backed out changeset a199dfd8ce8d (bug 1703692)
Backed out changeset 599a0a99ded9 (bug 1703692)
Backed out changeset 14fe807e6be4 (bug 1703692)
2021-06-25 00:43:23 +03:00