Commit Graph

544 Commits

Author SHA1 Message Date
Kris Maglione
5b9aa444d6 Bug 1614462: Part 1 - Remove unused message principals. r=nika
These were added for the sake of app browsers, and all of the code which
actually needed them has since been removed.

Differential Revision: https://phabricator.services.mozilla.com/D70741
2020-04-20 20:11:29 +00:00
David Teller
d4def0c230 Bug 1605209 - Turn actor names into nsCString;r=nika
This should save (a little) memory and avoid quite a few conversions.

Differential Revision: https://phabricator.services.mozilla.com/D70341
2020-04-17 10:56:22 +00:00
Daniel Varga
914049e15c Backed out 4 changesets (bug 1605209) for causing browser-chrome failures at dom/ipc/tests/JSWindowActor/browser_crash_report.js
CLOSED TREE

Backed out changeset 6eb1cc169dbf (bug 1605209)
Backed out changeset d81b566ad94f (bug 1605209)
Backed out changeset e0e6dbf1d48d (bug 1605209)
Backed out changeset 289f5bbac1ae (bug 1605209)
2020-04-17 13:49:04 +03:00
David Teller
d2fbc273cd Bug 1605209 - Turn actor names into nsCString;r=nika
This should save (a little) memory and avoid quite a few conversions.

Differential Revision: https://phabricator.services.mozilla.com/D70341
2020-04-16 08:58:21 +00:00
Ciure Andrei
ea1e3cbe28 Backed out 10 changesets (bug 1614462) for causing xpcshell failures CLOSED TREE
Backed out changeset 34d4a86530b4 (bug 1614462)
Backed out changeset dbc2e2556d08 (bug 1614462)
Backed out changeset 512bbab4730c (bug 1614462)
Backed out changeset cd6b8d630f4c (bug 1614462)
Backed out changeset e4ad5037658f (bug 1614462)
Backed out changeset 0ffed1dc4296 (bug 1614462)
Backed out changeset 90ed81cbfe34 (bug 1614462)
Backed out changeset 6d2137eb1d52 (bug 1614462)
Backed out changeset b4819c99e16e (bug 1614462)
Backed out changeset b7deaed376ed (bug 1614462)
2020-04-17 02:26:14 +03:00
Kris Maglione
9b1f03f6ba Bug 1614462: Part 3c - Remove dead TabContext IsMozBrowserElement fields. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D70750
2020-04-16 22:20:12 +00:00
Kris Maglione
14ee8f4119 Bug 1614462: Part 3b - Remove moribund DocShell FrameType/IsMozBrowser/IsInMozBrowser fields. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D70749
2020-04-16 17:25:06 +00:00
Kris Maglione
9a9970a74b Bug 1614462: Part 1 - Remove unused message principals. r=nika
These were added for the sake of app browsers, and all of the code which
actually needed them has since been removed.

Differential Revision: https://phabricator.services.mozilla.com/D70741
2020-04-16 16:58:08 +00:00
Csoregi Natalia
0e78df90ed Backed out 7 changesets (bug 1625615) for multiple failures e.g. /test_windowedhistoryframes.html. CLOSED TREE
Backed out changeset f239d24658c9 (bug 1625615)
Backed out changeset acea7c78db20 (bug 1625615)
Backed out changeset d709f5a72c35 (bug 1625615)
Backed out changeset 4cd231b1f3fb (bug 1625615)
Backed out changeset 45942c8dc380 (bug 1625615)
Backed out changeset 3f03a8703a8a (bug 1625615)
Backed out changeset e9299fc48796 (bug 1625615)
2020-04-16 00:32:16 +03:00
alwu
0ab6ac7a66 Bug 1625615 - part0 : create and set the flag suspendMediaWhenInactive on docShell. r=baku,farre
Implemecurnt a flag `suspendMediaWhenInactive` on the docShell that indicates media in that shell should be suspended when the shell is inactive. Currently, only GeckoView is using this flag.

---

The reason of implementing this flag is because in bug1577890 we remove the old way to suspend/resume the media, and I thought setting docshell to inactive is enough to suspend the media because we already have a mechanism which would suspend/resume media when document becomes inactive/active [1].

However, the active state of document is actually different from what I thought it was. Setting docshell to inactive won't change the document's active state, because that indicates if the document is the current active document for the docshell [2] (docshell can have multiple documents), instead of indicating if the docshell is active or not.

Therefore, we have to add another flag to indicate if the docshell wants to suspend its media when it's inactive, in order to use current mechanism to suspend/resume media.

[1] https://searchfox.org/mozilla-central/rev/4d2a9d5dc8f0e65807ee66e2b04c64596c643b7a/dom/html/HTMLMediaElement.cpp#6453
[2] https://searchfox.org/mozilla-central/rev/4d2a9d5dc8f0e65807ee66e2b04c64596c643b7a/dom/base/Document.h#2627-2633

Differential Revision: https://phabricator.services.mozilla.com/D69669
2020-04-15 18:13:29 +00:00
Emilio Cobos Álvarez
c85faf2032 Bug 1627986 - Don't scroll when focusing the root for document navigation. r=hsivonen
This still scrolls back to the top when focusing a subdocument via the tab key
or such in a (same-origin) iframe... I've decided to preserve behavior there but
let me know if you just want me to add a root element check in
nsFocusManager::ScrollIntoView instead.

I don't think it matters much, it's an edge case and either way this is a
progression.

Differential Revision: https://phabricator.services.mozilla.com/D70540
2020-04-14 09:58:42 +00:00
Nika Layzell
f638a4da50 Bug 1616353 - Part 10.1: Remove special handling of window.open in mozbrowser, r=kmag
There are no remaining users of mozbrowser in our tree, so this patch removes
the logic which used to exist for handling window.open differently within
mozbrowser frames.

Differential Revision: https://phabricator.services.mozilla.com/D67057
2020-04-07 21:39:52 +00:00
Nika Layzell
825152748c Bug 1616353 - Part 7.2: Create and use nsOpenWindowInfo types in nsWindowWatcher logic, r=kmag
This patch builds on top of part 7.1 by creating this object within
nsWindowWatcher and ContentParent to carry the relevant information through
provider interfaces when creating new content windows. The nsOpenWindowInfo
object is not created for new chrome windows.

This patch does not propagate these flags all of the way through to the
nsFrameLoader. That change is performed in later parts to keep each part
smaller.

Differential Revision: https://phabricator.services.mozilla.com/D67051
2020-04-07 21:39:32 +00:00
Nika Layzell
954f423cb9 Bug 1616353 - Part 6.3: Replace many nsILoadContext mutators with assertions, r=smaug
Many of these setters are redundant, and duplicate work done elsewhere. As it is
no longer correct to set nsILoadContext attributes at these times, they're being
replaced with assertions.

Differential Revision: https://phabricator.services.mozilla.com/D67047
2020-04-07 21:39:16 +00:00
Nika Layzell
91e994bedc Bug 1616353 - Part 2: Remove the isPrivate flag from ParentShowInfo, r=kmag
This flag tries to change nsILoadContext flags late during browser creation,
which won't be possible after this patch stack.

Differential Revision: https://phabricator.services.mozilla.com/D67041
2020-04-07 21:38:56 +00:00
Nika Layzell
617d6fb574 Bug 1616353 - Part 1: Remove unused aIsPreallocated flag from NotifyTabContextUpdated, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D67040
2020-04-07 21:38:54 +00:00
Andreas Farre
9509fc894a Bug 1620594 - Part 7: Remove TabGroup and SystemGroup. r=nika,bas
TabGroup never really made any difference in which thread something go
dispatched to. This was the intended use, but development of TabGroups
with abstract main threads never made it that far. The good thing is
that thish makes it safe to also remove to the SystemGroup and instead
switch all SystemGroup dispatches to dispatches to main thread.

Timers for setTimeout and workers were the sole users of wrapped and
throttled event targets, that those throttled queues have been moved
to the BrowsingContextGroup and are now accessed explicitly.

The SchedulerEventTarget has been removed, since there are no longer a
separate event target for every TaskCategory. Instead a
LabellingEventTarget has been added to DocGroup to handle the case
where an event is dispatched do DocGroup or when an AbstractThread is
created using a DocGroup. This means that we'll actually label more
events correctly with the DocGroup that they belong to.

DocGroups have also been moved to BrowsingContextGroup.

Depends on D67636

Differential Revision: https://phabricator.services.mozilla.com/D65936
2020-04-07 15:17:47 +00:00
Andreas Farre
28dfa78c70 Bug 1620594 - Part 4: Remove SetEventTargetForActor with SystemGroup target. r=nika
Depends on D67633

Differential Revision: https://phabricator.services.mozilla.com/D67634
2020-04-07 15:16:54 +00:00
Cosmin Sabou
357a0887a1 Backed out 24 changesets (bug 1616353) for fission assertion failures nsGlobalWindowOuter.cpp.
Backed out changeset 3a43210e4900 (bug 1616353)
Backed out changeset cb77e9149cf8 (bug 1616353)
Backed out changeset 3aacc7cfe33f (bug 1616353)
Backed out changeset c026b06063a5 (bug 1616353)
Backed out changeset 580e790c5d17 (bug 1616353)
Backed out changeset 6f09bc1c476d (bug 1616353)
Backed out changeset 6955906262c0 (bug 1616353)
Backed out changeset a7700472807a (bug 1616353)
Backed out changeset a4735096e01b (bug 1616353)
Backed out changeset bd1706c57d91 (bug 1616353)
Backed out changeset 363c13296fda (bug 1616353)
Backed out changeset e414df387524 (bug 1616353)
Backed out changeset 765d3364cca0 (bug 1616353)
Backed out changeset 8a13355b4ac4 (bug 1616353)
Backed out changeset ada17fb8fca7 (bug 1616353)
Backed out changeset 6b6b99af186d (bug 1616353)
Backed out changeset ea966e78b296 (bug 1616353)
Backed out changeset cb88e0bbb3b9 (bug 1616353)
Backed out changeset f89a89015114 (bug 1616353)
Backed out changeset ae6058552969 (bug 1616353)
Backed out changeset f42bb5b48c1b (bug 1616353)
Backed out changeset 1ab9d22c73bb (bug 1616353)
Backed out changeset 2692c2c1396b (bug 1616353)
Backed out changeset 11a279c8da08 (bug 1616353)
2020-04-06 20:03:02 +03:00
Nika Layzell
c934332142 Bug 1616353 - Part 10.1: Remove special handling of window.open in mozbrowser, r=kmag
There are no remaining users of mozbrowser in our tree, so this patch removes
the logic which used to exist for handling window.open differently within
mozbrowser frames.

Differential Revision: https://phabricator.services.mozilla.com/D67057
2020-04-06 14:30:26 +00:00
Nika Layzell
17fdb0cd39 Bug 1616353 - Part 7.2: Create and use nsOpenWindowInfo types in nsWindowWatcher logic, r=kmag
This patch builds on top of part 7.1 by creating this object within
nsWindowWatcher and ContentParent to carry the relevant information through
provider interfaces when creating new content windows. The nsOpenWindowInfo
object is not created for new chrome windows.

This patch does not propagate these flags all of the way through to the
nsFrameLoader. That change is performed in later parts to keep each part
smaller.

Differential Revision: https://phabricator.services.mozilla.com/D67051
2020-04-06 14:30:02 +00:00
Nika Layzell
a262f4881c Bug 1616353 - Part 6.3: Replace many nsILoadContext mutators with assertions, r=smaug
Many of these setters are redundant, and duplicate work done elsewhere. As it is
no longer correct to set nsILoadContext attributes at these times, they're being
replaced with assertions.

Differential Revision: https://phabricator.services.mozilla.com/D67047
2020-04-06 14:29:52 +00:00
Nika Layzell
8cb68f7a88 Bug 1616353 - Part 2: Remove the isPrivate flag from ParentShowInfo, r=kmag
This flag tries to change nsILoadContext flags late during browser creation,
which won't be possible after this patch stack.

Differential Revision: https://phabricator.services.mozilla.com/D67041
2020-04-06 14:29:33 +00:00
Nika Layzell
512750fa20 Bug 1616353 - Part 1: Remove unused aIsPreallocated flag from NotifyTabContextUpdated, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D67040
2020-04-06 14:29:30 +00:00
Emilio Cobos Álvarez
10c626806a Bug 1624747 - Null-check docshell from BrowserChild::RecvScrollbarPreferencesChanged / RecvShow. r=nika
Apparently we can have collected the nsWebBrowser already, or its docshell.

mWebNav is a nsWebBrowser instance, which is destroyed early during shutdown, in
BrowserChild::DestroyWindow, which nulls out its nsDocShell instance and can cause
do_GetInterface to fail.

Just deal with it.

Differential Revision: https://phabricator.services.mozilla.com/D69244
2020-04-02 15:00:44 +00:00
Kartikaya Gupta
3825e0c671 Bug 1622360 - Remove SLGuidAndRenderRoot and convert remaining uses to ScrollableLayerGuid. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D68400
2020-03-27 17:44:21 +00:00
Tim Huang
b8076090ad Bug 1612378 - Part 5: Make the browser.ContentBlockingAllowListPrincipal to directly get the ContentBlockingAllowListPrincipal from the WindowGlobalParent. r=dimi,johannh,baku
Right now, we have a ContentBlockingAllowListPrincipal in the
WindowGlobalParent. So, the browse element can directly get this
principal from there. And we can stop sending the
ContentBlockingAllowListPrincipal from the content to parent when
OnLocationChange happens.

Differential Revision: https://phabricator.services.mozilla.com/D66212
2020-03-25 13:22:02 +00:00
Nika Layzell
95184fc842 Bug 1614259 - Ensure BrowisngContexts are detached when nsDocShell is destroyed, r=farre
After bug 1582832, DocShell destruction and BrowsingContext detaching happen
in separate operations, leaving a gap where a DocShell has been destroyed, but
its BrowsingContext is still considered attached. During this gap, the usual
invariant that an in-process, attached BrowsingContext always has an
associated DOM window doesn't hold, nor do the usual invariants for outer
window forwarding security checks.

This patch fixes the detach timing so that a child BrowsingContext for a frame
which has been removed is always marked detached at the same time its DocShell
is destroyed.

Co-authored-by: Kris Maglione <maglione.k@gmail.com>

Differential Revision: https://phabricator.services.mozilla.com/D62791
2020-03-23 13:28:09 +00:00
Alphan Chen
fbf3532114 Bug 1507287 - Make sessionRestore work with session history living in the parent process. r=peterv,mikedeboer
Differential Revision: https://phabricator.services.mozilla.com/D46281
2020-03-19 14:31:52 +00:00
Tooru Fujisawa
5d9a6a7b95 Bug 1507375 - Restrict the controllability of UI parts visibility with features parameter of window.open. r=smaug
Make the features parameter of window.open just a condition for whether to open
a popup or a new tab.
Also remove dom.disable_window_open_feature.* prefs.

Differential Revision: https://phabricator.services.mozilla.com/D65926
2020-03-19 09:13:12 +00:00
Noemi Erli
8a3c00f099 Backed out changeset 6fe5ce050c0d (bug 1507375) for failures in test_transformed_scrolling_repaints_3.html CLOSED TREE 2020-03-19 08:56:17 +02:00
Tooru Fujisawa
85724a833d Bug 1507375 - Restrict the controllability of UI parts visibility with features parameter of window.open. r=smaug
Make the features parameter of window.open just a condition for whether to open
a popup or a new tab.
Also remove dom.disable_window_open_feature.* prefs.

Differential Revision: https://phabricator.services.mozilla.com/D65926
2020-03-19 03:50:25 +00:00
Matt Woodrow
d77d408034 Bug 1620875 - Suppress extra onStateChange(STATE_START) notifications from RemoteWebProgress when switching DocumentChannel with a real channel. r=Gijs,nika
Note that this also suppresses notifications from the initial about:blank in the new process, and updates the tabbrowser to not expect those.

Differential Revision: https://phabricator.services.mozilla.com/D65923
2020-03-17 00:50:29 +00:00
Noemi Erli
24dfe6678b Backed out changeset 4c6b9209306d (bug 1507287) for causing geckoview failures CLOSED TREE 2020-03-16 23:23:09 +02:00
Alphan Chen
afa243f82c Bug 1507287 - Make sessionRestore work with session history living in the parent process. r=peterv,mikedeboer
Differential Revision: https://phabricator.services.mozilla.com/D46281
2020-03-16 18:33:32 +00:00
Neil Deakin
02a99f0a24 Bug 1558520, rework remote controller to use JSWindowActor instead of having the browser have a controller, r=smaug
When searching for the controller for a command in nsWindowRoot::GetControllerForCommand, look for a focused browsing context instead and get the controller through the Controllers actor associated with that browsing context. When a command update occurs in a window in the child process, send the list of commands to the parent process along with the browsing context for that window. The parent will pass this information to the controllers actor. As long as we can get the right currently focused browsing context descendant, we can get the correct command state and invoke commands through the right actor.

Differential Revision: https://phabricator.services.mozilla.com/D66222
2020-03-12 16:47:57 +00:00
Ehsan Akhgari
a4aaf9e877 Bug 1620322 - Part 2: Refactor the code for content blocking events and notifications out of AntiTrackingCommon.cpp; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D65743
2020-03-09 23:36:37 +00:00
Narcis Beleuzu
422807b8e0 Backed out 8 changesets (bug 1620322) for bustages on nsContentSink.cpp . CLOSED TREE
Backed out changeset f41739c64dff (bug 1620322)
Backed out changeset be942a7f329e (bug 1620322)
Backed out changeset a916987c7c71 (bug 1620322)
Backed out changeset ead3484ffb5f (bug 1620322)
Backed out changeset 4e1e8b9afa1a (bug 1620322)
Backed out changeset 473bba698e5a (bug 1620322)
Backed out changeset 0e5e5d41597d (bug 1620322)
Backed out changeset 31b24d79db3d (bug 1620322)
2020-03-09 22:18:36 +02:00
Ehsan Akhgari
0e484cb976 Bug 1620322 - Part 2: Refactor the code for content blocking events and notifications out of AntiTrackingCommon.cpp; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D65743
2020-03-09 18:12:26 +00:00
Noemi Erli
f3729f347c Backed out 8 changesets (bug 1620322) for causing bustages in ContentBlockingLog.cpp CLOSED TREE
Backed out changeset 3dcf513e36cb (bug 1620322)
Backed out changeset 46714855ce1d (bug 1620322)
Backed out changeset 0eb2b5f7322f (bug 1620322)
Backed out changeset 72d640fa0740 (bug 1620322)
Backed out changeset 4533bb4e5177 (bug 1620322)
Backed out changeset 659270edd419 (bug 1620322)
Backed out changeset 6802c18b1914 (bug 1620322)
Backed out changeset 60ff34db9f15 (bug 1620322)
2020-03-09 19:19:41 +02:00
Ehsan Akhgari
27fb2c35e0 Bug 1620322 - Part 2: Refactor the code for content blocking events and notifications out of AntiTrackingCommon.cpp; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D65743
2020-03-09 10:16:54 +00:00
Timothy Nikkel
b6236e1fbc Bug 1620817. Invalidate when the BrowserChild gets a different visible rect. r=mattwoodrow
layout/reftests/bugs/370422-1.html changes the size of a fission iframe.

Bug 1615504 made sure the visible rect got to the child process. But there is still a failure mode where (I assume) all invalidations/painting of changing the document size in the iframe content process happens before the effects visible rect ipc msg arrives at the content process.

In this case we still need to invalidate even though we use the correct visible rect on the builder we need a dirty rect that includes the unveiled area.

Depends on D65888

Differential Revision: https://phabricator.services.mozilla.com/D65889
2020-03-08 22:19:10 +00:00
Simon Giesecke
7381912040 Bug 1613985 - Use default for equivalent-to-default constructors/destructors in dom/ipc. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D65179
2020-03-06 09:11:40 +00:00
Makoto Kato
e93441044a Bug 1503656 - Part 7. Notify of safe area insets changed. r=smaug
Since safe area insets uses on content, we need send it from chrome process to
content process.

SafeAreaInsetsChanged will be called per window position/size change (Next
patch is Android implementation for it), we have to calculate safe area insets
on widget/window per change.

Current implementation is that this value is top level document only like Blink
since https://github.com/w3c/csswg-drafts/issues/4670 isn't resolved yet.

Differential Revision: https://phabricator.services.mozilla.com/D55084
2020-03-04 08:16:31 +00:00
Csoregi Natalia
078d08c712 Backed out 6 changesets (bug 1503656) as per request. CLOSED TREE
Backed out changeset 27faa3b167a9 (bug 1503656)
Backed out changeset 7111f9b5ad06 (bug 1503656)
Backed out changeset 43fdc889beac (bug 1503656)
Backed out changeset 332ceea26151 (bug 1503656)
Backed out changeset f31efa4ea2ec (bug 1503656)
Backed out changeset 91b847efe591 (bug 1503656)
2020-03-04 10:07:42 +02:00
Makoto Kato
ae5b78896d Bug 1503656 - Part 7. Notify of safe area insets changed. r=smaug
Since safe area insets uses on content, we need send it from chrome process to
content process.

SafeAreaInsetsChanged will be called per window position/size change (Next
patch is Android implementation for it), we have to calculate safe area insets
on widget/window per change.

Current implementation is that this value is top level document only like Blink
since https://github.com/w3c/csswg-drafts/issues/4670 isn't resolved yet.

Differential Revision: https://phabricator.services.mozilla.com/D55084
2020-03-04 07:28:04 +00:00
Daniel Varga
1f76c49b49 Backed out changeset e51b4e883adc (bug 1507287) for not having proper review 2020-03-03 18:23:07 +02:00
Alphan Chen
4a2e26cab8 Bug 1507287 - Make sessionRestore work with session history living in the parent process. r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D46281
2020-03-03 16:16:03 +00:00
Andrew McCreight
611f5029e6 Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown
Patch by bhackett and jlaster. Also reviewed by mccr8.

Differential Revision: https://phabricator.services.mozilla.com/D60197
2020-02-27 17:39:15 +00:00
Ciure Andrei
c06273c350 Backed out changeset d407a28318e6 (bug 1609815) for causing windows ming bustages CLOSED TREE 2020-02-27 07:05:19 +02:00