Commit Graph

328 Commits

Author SHA1 Message Date
Nika Layzell
e9fca6265b Bug 1523638 - Part 7: Transmit permissions for newly created WindowGlobalParent actors, r=Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D37654
2019-08-08 16:07:09 +00:00
Nika Layzell
10283e57f8 Bug 1523638 - Part 5: Create a WindowGlobal actor during normal PBrowser construction, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D37652
2019-08-08 16:07:05 +00:00
Nika Layzell
a377fe3db5 Bug 1523638 - Part 1: Remove mIPCClosed from PWindowGlobal, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D37648
2019-08-08 16:06:52 +00:00
Nika Layzell
fe8a4bd5e5 Bug 1568517 - Assert embedder exists when creating subframe WindowGlobalParent, r=farre
This asserts that the embedder is always set soon enough that we don't run into
the situation which caused the null deref fixed by bug 1565489.

Differential Revision: https://phabricator.services.mozilla.com/D39187
2019-07-30 14:45:47 +00:00
Narcis Beleuzu
7e80b6d717 Backed out changeset f74c9d255293 (bug 1568055) for Assertion failures (MOZ_ASSERT_UNREACHABLE: leaking stream event). CLOSED TREE 2019-07-23 23:13:43 +03:00
Nika Layzell
9c413c452a Bug 1568055 - Part 2: Set embedder for BrowsingContext upon frame creation, r=farre
This should help ensure that the embedder is always set soon enough that we
don't run into the situation which caused the null deref fixed by bug 1565489.

This patch also adds an assertion earlier in WindowGlobalParent's lifecycle to
ensure that the condition is satisfied. This assertion will fail before the
changes in part 1.

Differential Revision: https://phabricator.services.mozilla.com/D38723
2019-07-23 08:05:50 +00:00
Ciure Andrei
555c0eb5a5 Backed out 10 changesets (bug 1523638) for causing high frequency Android 7.0 mochitests failures CLOSED TREE
Backed out changeset 644ceb2fe568 (bug 1523638)
Backed out changeset 27647ee7a927 (bug 1523638)
Backed out changeset 96f1ccb95570 (bug 1523638)
Backed out changeset b60a17ea716a (bug 1523638)
Backed out changeset 507e63186c5f (bug 1523638)
Backed out changeset 33255408ca61 (bug 1523638)
Backed out changeset d97b2d223616 (bug 1523638)
Backed out changeset eba2a0514cde (bug 1523638)
Backed out changeset d7065174c5c4 (bug 1523638)
Backed out changeset c21b361e175d (bug 1523638)
2019-07-23 05:13:32 +03:00
Nika Layzell
e6f3614afb Bug 1523638 - Part 10: Implement WindowGlobalParent::GetRootFrameLoader in terms of Top()->GetEmbedderElement(), r=farre
Differential Revision: https://phabricator.services.mozilla.com/D38552
2019-07-19 19:53:53 +00:00
Nika Layzell
10a5437f88 Bug 1523638 - Part 7: Transmit permissions for newly created WindowGlobalParent actors, r=Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D37654
2019-07-18 19:38:18 +00:00
Nika Layzell
1b65ad0904 Bug 1523638 - Part 5: Create a WindowGlobal actor during normal PBrowser construction, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D37652
2019-07-18 19:38:14 +00:00
Nika Layzell
d474061620 Bug 1523638 - Part 1: Remove mIPCClosed from PWindowGlobal, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D37648
2019-07-18 19:38:01 +00:00
Nika Layzell
cb281429c0 Bug 1565489 - Part 1: Avoid null dereference in IsProcessRoot, r=farre
The crash appears to be being caused by the GetEmbedderWindowGlobal call
returning a null value. This patch simply avoids the crash in this case, and
returns a reasonable default value of false, as it should never be true for a
BrowsingContext with a parent without Fission enabled.

This patch should be small enough to safely uplift if necessary.

Differential Revision: https://phabricator.services.mozilla.com/D38722
2019-07-22 08:43:14 +00:00
Kris Maglione
1754243c71 Bug 1563409: Inherit RemoteSubframes and RemoteTabs flags from parent docshells. r=nika
This also adds an extra assertion against browsing context mismatches that
happen when we don't get this right.

Differential Revision: https://phabricator.services.mozilla.com/D36852
2019-07-03 16:09:20 -07:00
Kashav Madan
6a4f916e27 Bug 1543251 - Move hasBeforeUnload from PBrowser to PWindowGlobal, r=nika
Differential Revision: https://phabricator.services.mozilla.com/D37003
2019-07-15 17:30:26 +00:00
Noemi Erli
a4d566a28f Backed out changeset 405100db6c45 (bug 1543251) for failing in nsGlobalWindowInner.cpp 2019-07-11 01:47:47 +03:00
Kashav Madan
84e5292633 Bug 1543251 - Move hasBeforeUnload from PBrowser to PWindowGlobal, r=nika
Differential Revision: https://phabricator.services.mozilla.com/D37003
2019-07-10 21:13:44 +00:00
Ryan Hunt
2ab8a93dfb Bug 1561395 - Move drawSnapshot API to WindowGlobalParent and allow specifying the whole viewport as a rect. r=mattwoodrow,nika
Differential Revision: https://phabricator.services.mozilla.com/D35842
2019-07-10 16:45:46 +00:00
Nika Layzell
37f417b0ae Bug 1559460 - Support subframe process switches into embedder process, r=mccr8
This change comes in two parts. First, the code in WindowGlobalChild was changed
to detect the in-process case, and instruct the nsFrameLoader to become a
non-remote nsFrameLoader, and second the logic in WindowGlobalParent was updated
to ensure that the OwnerProcessID is updated after the change.

Differential Revision: https://phabricator.services.mozilla.com/D35060
2019-06-21 16:34:30 +00:00
Johann Hofmann
7112f0f10b Bug 1555963 - Add WindowGlobalParent.getSecurityInfo(). r=nika,mconley
This adds an API for fetching security info per frame, no matter if we have
a certificate error or a valid certificate.

I tried to make this work in a Fission-compatible way, let me know if this
is the right approach.

Differential Revision: https://phabricator.services.mozilla.com/D34354
2019-06-21 05:58:40 +00:00
Nika Layzell
7920ede33c Bug 1559409 - Show subframe pids in tab hover text, r=mconley
Differential Revision: https://phabricator.services.mozilla.com/D35029
2019-06-14 15:42:39 +00:00
Nika Layzell
19dd35a330 Bug 1556483 - Expose isInitialDocument on WindowGlobalParent, r=bzbarsky
This should hopefully allow the parent process to tell whether a given document
is the initial about:blank document.

Differential Revision: https://phabricator.services.mozilla.com/D33542
2019-06-06 14:57:32 +00:00
John Dai
140803e1a2 Bug 1556686 - Add more comments on JSWindowActor; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D33619
2019-06-06 10:13:30 +00:00
Nika Layzell
fee845e144 Bug 1554280 - Part 2: Add an IsProcessRoot() getter to WindowGlobalActor, r=mconley
Differential Revision: https://phabricator.services.mozilla.com/D32516
2019-05-27 18:42:37 +00:00
Nika Layzell
455eea5026 Bug 1554280 - Part 1: Expose the ContentParentId of a WindowGlobalActor, r=mconley
Differential Revision: https://phabricator.services.mozilla.com/D32515
2019-05-27 18:42:35 +00:00
Nika Layzell
5e7f200545 Bug 1553270 - Part 1: Store the protocol ID on IProtocol directly, r=froydnj
This allows for the getter to be used in IProtocol's destructor, and generally
brings IProtocol more in line with IToplevelProtocol.

Differential Revision: https://phabricator.services.mozilla.com/D32042
2019-05-24 20:21:35 +00:00
Ryan Hunt
8f79ffabf2 Bug 1525720, part 13 - Stop inheriting nsIRemoteTab interface in BrowserParent. r=nika
This commit removes nsIRemoteTab as a parent class from BrowserParent,
so that BrowserHost is the only concrete implementation of nsIRemoteTab.

Some static_cast's are updated to cast to BrowserHost, and other places
have to be updated to pass a BrowserHost instead of a BrowserParent.

WindowGlobalParent had a getter to return it's managing BrowserParent
as a nsIRemoteTab. I couldn't find a use of this in-tree, so I've just
opt-ed to remove it. If there's a use-case, we can add something back
in.

Differential Revision: https://phabricator.services.mozilla.com/D31444
2019-05-08 14:34:47 -05:00
Ryan Hunt
68ed660efd Bug 1525720, part 5 - Redirect nsIHttpChannel using content process ID instead of nsIRemoteTab. r=valentin
This code currently works for remote subframes assuming that nsIRemoteTab is implemented
by BrowserParent, but will break when nsIRemoteTab is only for a top-level BrowserParent.

What this code really wants is a content process ID to retarget the channel to. This
commit switches the interfaces to pass this around instead of nsIRemoteTab.

Differential Revision: https://phabricator.services.mozilla.com/D31435
2019-05-15 12:33:42 -05:00
Gurzau Raul
65201d8181 Backed out 18 changesets (bug 1525720) for mass failures on Windows platform e.g ProcessPriorityManager.cpp on a CLOSED TREE.
Backed out changeset 1f2e86c2d691 (bug 1525720)
Backed out changeset 9b79caa460a0 (bug 1525720)
Backed out changeset e65cb2d4c5a5 (bug 1525720)
Backed out changeset 99f971a02d87 (bug 1525720)
Backed out changeset d25963c72ff7 (bug 1525720)
Backed out changeset 810b73719871 (bug 1525720)
Backed out changeset ee10a8254481 (bug 1525720)
Backed out changeset 1bcf9f586c55 (bug 1525720)
Backed out changeset d3b2ac8d5ca4 (bug 1525720)
Backed out changeset 697774dd8984 (bug 1525720)
Backed out changeset eadeacbe4483 (bug 1525720)
Backed out changeset 32eeee79d628 (bug 1525720)
Backed out changeset 07678a2fa9e7 (bug 1525720)
Backed out changeset 757b4f595cc4 (bug 1525720)
Backed out changeset b255e0a84e12 (bug 1525720)
Backed out changeset 9a255864f75d (bug 1525720)
Backed out changeset 5f1c1b609ec1 (bug 1525720)
Backed out changeset 00d83f1d02e0 (bug 1525720)
2019-05-23 01:57:16 +03:00
Ryan Hunt
eda6ea6e51 Bug 1525720, part 13 - Stop inheriting nsIRemoteTab interface in BrowserParent. r=nika
This commit removes nsIRemoteTab as a parent class from BrowserParent,
so that BrowserHost is the only concrete implementation of nsIRemoteTab.

Some static_cast's are updated to cast to BrowserHost, and other places
have to be updated to pass a BrowserHost instead of a BrowserParent.

WindowGlobalParent had a getter to return it's managing BrowserParent
as a nsIRemoteTab. I couldn't find a use of this in-tree, so I've just
opt-ed to remove it. If there's a use-case, we can add something back
in.

Differential Revision: https://phabricator.services.mozilla.com/D31444
2019-05-08 14:34:47 -05:00
Ryan Hunt
5e290a03af Bug 1525720, part 5 - Redirect nsIHttpChannel using content process ID instead of nsIRemoteTab. r=valentin
This code currently works for remote subframes assuming that nsIRemoteTab is implemented
by BrowserParent, but will break when nsIRemoteTab is only for a top-level BrowserParent.

What this code really wants is a content process ID to retarget the channel to. This
commit switches the interfaces to pass this around instead of nsIRemoteTab.

Differential Revision: https://phabricator.services.mozilla.com/D31435
2019-05-15 12:33:42 -05:00
Kyle Machulis
d29c67c357 Bug 1540839 - Add ability to preserve browsing contexts between FrameLoaders; r=nika
When changing processes and therefore destroying/rebuilding
frameloaders, add ability to keep the browsing context around and add
it to the new frameloader.

Differential Revision: https://phabricator.services.mozilla.com/D26267
2019-05-14 10:51:04 -07:00
Razvan Maries
e5b095be37 Backed out 8 changesets (bug 1540839) for build bustages. CLOSED TREE
Backed out changeset f7e477858ab7 (bug 1540839)
Backed out changeset 55e841a0f005 (bug 1540839)
Backed out changeset b71b58e40426 (bug 1540839)
Backed out changeset 484a54613358 (bug 1540839)
Backed out changeset b34c4d71f202 (bug 1540839)
Backed out changeset 8ff2ff524489 (bug 1540839)
Backed out changeset 27492a30286c (bug 1540839)
Backed out changeset f1c35e8e84f6 (bug 1540839)
2019-05-14 04:23:27 +03:00
Kyle Machulis
563569ce58 Bug 1540839 - Add ability to preserve browsing contexts between FrameLoaders; r=nika
When changing processes and therefore destroying/rebuilding
frameloaders, add ability to keep the browsing context around and add
it to the new frameloader.

Differential Revision: https://phabricator.services.mozilla.com/D26267
2019-05-13 17:58:44 -07:00
John Dai
7db82a494d Bug 1538979 - Part 1: Clear mManager in ActorDestroy and disallow sending message while Destroying; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D30195
2019-05-10 15:01:33 +00:00
Csoregi Natalia
22b1920370 Backed out 3 changesets (bug 1538979) for bustage on JSWindowActor.cpp. CLOSED TREE
Backed out changeset a098226e4211 (bug 1538979)
Backed out changeset 8e065761738c (bug 1538979)
Backed out changeset 9df2b856b655 (bug 1538979)
2019-05-10 12:44:22 +03:00
John Dai
2f139c0218 Bug 1538979 - Part 1: Clear mManager in ActorDestroy and disallow sending message while Destroying; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D30195
2019-05-10 09:19:27 +00:00
John Dai
bed31488db Bug 1539147 - Part 2: Refactor WindowGlobalParent and WindowGlobalChild; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D29427
2019-05-03 18:12:55 +00:00
Dorel Luca
72ea72145c Backed out 2 changesets (bug 1539147) for Build bustage in builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/dom/WindowGlobalActor.h. CLOSED TREE
Backed out changeset 366f29cc8ce7 (bug 1539147)
Backed out changeset 5fa4ae41da87 (bug 1539147)
2019-05-03 18:55:51 +03:00
John Dai
4c9ce745c8 Bug 1539147 - Part 2: Refactor WindowGlobalParent and WindowGlobalChild; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D29427
2019-05-03 15:31:04 +00:00
Ryan Hunt
6b09ea12a4 Bug 1534395 - Rename TabParent to BrowserParent. r=nika
This commit renames TabParent to BrowserParent.

Differential Revision: https://phabricator.services.mozilla.com/D28133
2019-04-09 16:38:15 -05:00
Ryan Hunt
c6e302039f Bug 1534395 - Rename nsITabParent to nsIRemoteTab. r=nika,mconley
nsITabParent is exposed to frontend code and is generally used as a representation of a remote tab. We could just rename the interface to nsIBrowserParent and worry about it later, but I think it's better to rename the interface to nsIRemoteTab so that we can later work on splitting the interface away from the PBrowser protocol.

Note: Some frontend code refers to a TabParentId. This commit renames this to RemoteTabId. We need to figure out the purpose of TabId with fission.

Differential Revision: https://phabricator.services.mozilla.com/D28132
2019-04-09 15:59:37 -05:00
Ryan Hunt
c92dd8da37 Bug 1534395 - Unified build fixes. r=nika
File renames cause some unified build issues. This commit adds the missing headers.

Differential Revision: https://phabricator.services.mozilla.com/D28130
2019-04-09 17:38:11 -05:00
Nika Layzell
e233a67a37 Bug 1544936 - Part 1: Add a sendQuery method to send an async message with a response to JSWindowActor, r=mconley,jdai
This adds a single new method, which acts like sendAsyncMessage, but
also returns a promise. This promise is fulfilled when the promise
returned from the receiveMessage callback is resolved.

```
partial interface JSWindowActor {
  [Throws]
  Promise<any> sendQuery(DOMString messageName,
                         optional any obj,
                         optional any transfers);
}
```

Differential Revision: https://phabricator.services.mozilla.com/D27809
2019-04-18 19:37:15 +00:00
Nika Layzell
3ee1e26b6d Bug 1539163 - Part 2: Support changing the process of subframes, r=qdot
When a remote type mismatch is found for a subframe, this patch checks if
fission is enabled for that window. If it is, it triggers a process switch,
continuing the load in a new process.

With this patch, subframes will only change process when navigating to a HTML
subframe, and not when navigating to a non-HTML subframe. That will be fixed in
a follow-up. This patch also does not change the remote type selection logic,
so only very limited types of remote iframes are supported.

Differential Revision: https://phabricator.services.mozilla.com/D27513
2019-04-17 00:53:32 +00:00
Nika Layzell
aac7e782f2 Bug 1525427 - Part 1: Expose WindowGlobalParent & Element on BrowsingContext, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D25181
2019-04-17 00:51:36 +00:00
Nika Layzell
9a95bec8eb Bug 1542786 - Set documentURI during WindowGlobalParent creation, r=farre
This avoids a racy situation early during WGP creation where a null documentURI
can be read incorrectly.

Differential Revision: https://phabricator.services.mozilla.com/D26555
2019-04-09 11:58:35 +00:00
Barret Rennie
bb164697d6 Bug 1510569 - Add missing includes and using namespace declarations r=Ehsan
WindowGlobalChild.cpp was relying on several headers already included by other
files in its unified build translation unit, but the addition of the
RemoteWebProgressRequest in the next change bumps them into another translation
unit and breaks the build.

The missing `#include` and `using namespace` statements have been added,
allowing builds to succeed.

Differential Revision: https://phabricator.services.mozilla.com/D24937
2019-04-03 17:31:00 +00:00
Barret Rennie
c597ca0513 Bug 1510569 - Add missing includes to WindowGlobalParent.cpp r=Ehsan
Due to adding a new CPP file in the next change, the unified build fails due to
files being shuffled around between translation units. This change fixes the
build.

Differential Revision: https://phabricator.services.mozilla.com/D24810
2019-04-03 17:30:27 +00:00
Gurzau Raul
a31d364d9b Backed out 4 changesets (bug 1525427) for failing at /browser_browsingContext-embedder.js on a CLOSED TREE.
Backed out changeset 0227a59eba8e (bug 1525427)
Backed out changeset 18fba79d8671 (bug 1525427)
Backed out changeset f7c82615ea05 (bug 1525427)
Backed out changeset 4a210c9266ed (bug 1525427)
2019-03-28 20:54:28 +02:00
Nika Layzell
527af262b0 Bug 1525427 - Part 1: Expose WindowGlobalParent & Element on BrowsingContext, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D25181
2019-03-28 15:03:54 +00:00