Commit Graph

293 Commits

Author SHA1 Message Date
Nika Layzell
cd7c835794 Bug 1640019 - Part 1: Support toplevel process switches outside of tabbrowser, r=mattwoodrow
This new process switching behavior is only enabled for some browser elements,
which have specified a specific attribute. Turning this on for all browsers with
a `remote` attribute causes breakage in reftests.

The initial version does not handle switching from remote to parent or
vice-versa, that is covered in a later part.

Differential Revision: https://phabricator.services.mozilla.com/D78969
2020-06-15 23:23:43 +00:00
Bogdan Tara
01729dc302 Backed out changeset 26231891f004 (bug 1644943) for browser_backforward_userinteraction.js and browser_sessionHistory.js failures CLOSED TREE 2020-06-16 02:46:15 +03:00
Matt Woodrow
396f3259ce Bug 1644943 - Create single webprogress for CanonicalBrowsingContext, regardless of process the browser element contents are in. r=nika,kmag,Gijs
I think at this point we can remove all of RemoteWebProgressManager, some/all of the TabProgressListener recreations, and probably a bunch more.

Differential Revision: https://phabricator.services.mozilla.com/D79240
2020-06-15 22:01:34 +00:00
Narcis Beleuzu
a4b06a5d82 Backed out 10 changesets (bug 1508306, bug 1640019) for bc failures on browser_autoOpen.js . CLOSED TREE
Backed out changeset 8844170ff408 (bug 1508306)
Backed out changeset b750f1d873cf (bug 1508306)
Backed out changeset c7170e76e676 (bug 1640019)
Backed out changeset 5905995e4815 (bug 1640019)
Backed out changeset 7bf86513348e (bug 1640019)
Backed out changeset f7d0605295f7 (bug 1640019)
Backed out changeset 521b4d5a9a89 (bug 1640019)
Backed out changeset 8542edc564bc (bug 1640019)
Backed out changeset 4f6a03152526 (bug 1640019)
Backed out changeset 30d2bf04719b (bug 1640019)
2020-06-12 22:47:50 +03:00
Nika Layzell
ff4af69c9c Bug 1640019 - Part 1: Support toplevel process switches outside of tabbrowser, r=mattwoodrow
This new process switching behavior is only enabled for some browser elements,
which have specified a specific attribute. Turning this on for all browsers with
a `remote` attribute causes breakage in reftests.

The initial version does not handle switching from remote to parent or
vice-versa, that is covered in a later part.

Differential Revision: https://phabricator.services.mozilla.com/D78969
2020-06-12 16:52:00 +00:00
Anny Gakhokidze
e08215360f Bug 1630323 - Do not override user preferences when clicking on a service worker notification to open a new document, r=Gijs,nika,geckoview-reviewers,snorp
In Bug 1622749 a user preference for where to open new documents (from a
service worker notification) was temporarily overriden in order to quickly fix
a crash that was happening in mozilla::dom::ClientOpenWindow. The crash was
ocurring when the pref "browser.link.open_newwindow" was set to 2, meaning new
documents are opened in a new window, instead of a new tab. The reason the
browser crashed is because the path for opening a new document is different
depending on the current user setting, and in NEWWINDOW case we did not get a
browsing context returned when calling mozilla::dom::OpenWindow which resulted
in a failed assertion.

The solution is to pass in a callback to mozilla::dom::OpenWindow as part of
nsOpenWindowInfo object, and invoke that callback with a corresponding
BrowsingContext in nsFrameLoader when that browsing context is ready.

After we call mozilla::dom::OpenWindow, we wait on a promise, that will be
resolved when the callback is invoked, before executing the rest of the code
that depends on the browsing context for a newly opened document being
available.

Differential Revision: https://phabricator.services.mozilla.com/D72745
2020-05-27 18:15:36 +00:00
Botond Ballo
7b91b67d72 Bug 1638458 - Remove the ignoreRootScrollFrame parameter of FrameLoader.sendCrossProcessMouseEvent(). r=tnikkel
No one is setting this parameter to true any more.

Depends on D75734

Differential Revision: https://phabricator.services.mozilla.com/D75735
2020-05-18 03:05:32 +00:00
Andreas Farre
640d4c4881 Bug 1576188 - Handle save-as for cross process iframes. r=peterv
Depends on D70388

Differential Revision: https://phabricator.services.mozilla.com/D70389
2020-04-27 05:41:40 +00:00
Dorel Luca
025a2310dc Backed out 2 changesets (bug 1576188) for Build bustage in docshell/base/BrowsingContext.cpp. CLOSED TREE
Backed out changeset 7e5e86986811 (bug 1576188)
Backed out changeset b731cbad59a8 (bug 1576188)
2020-04-24 23:02:11 +03:00
Andreas Farre
ca56bf0481 Bug 1576188 - Handle save-as for cross process iframes. r=peterv
Depends on D70388

Differential Revision: https://phabricator.services.mozilla.com/D70389
2020-04-24 15:47:26 +00:00
Nika Layzell
e4b5167f9b Bug 1580565 - Part 2: Delay creating nsFrameLoader in static clone until embedder has window, r=smaug
Follow-up parts in this bug depend on being able to read the `nsGlobalWindow`
which embeds a `nsFrameLoader` within `CreateBrowsingContext`, which is called
from the `nsFrameLoader` constructor. Unfortunately, we depend on creating the
`nsFrameLoader` and `BrowsingContext` before we have the window as part of the
fix to bug 1577711.

This patch changes `BuildNestedPrintObjects` to instead use a list of pending
clones stored on the parent `Document` object, and delays creation of the
`nsFrameLoader`, and thus the inner `BrowsingContext`, until after the document
has an owner global.

Due to the low number of automated tests for printing, I manually tested
print-previewing both the reduced test case from bug 1577711, a wikipedia
article, and 'data:text/html,<object data="data:text/html,hi">' to avoid
regressions.

Differential Revision: https://phabricator.services.mozilla.com/D71236
2020-04-24 18:32:59 +00:00
Narcis Beleuzu
f160c77a9f Backed out 7 changesets (bug 1580565) for bustages on nsDocShell.cpp . CLOSED TREE
Backed out changeset 8237f9a307f8 (bug 1580565)
Backed out changeset 47f5698d6c72 (bug 1580565)
Backed out changeset e1802670dcc4 (bug 1580565)
Backed out changeset 0a44c410b59b (bug 1580565)
Backed out changeset 20dbcfc9eacc (bug 1580565)
Backed out changeset cdf2b600e779 (bug 1580565)
Backed out changeset a421d33d03ce (bug 1580565)
2020-04-24 05:31:55 +03:00
Nika Layzell
5246d4c150 Bug 1580565 - Part 2: Delay creating nsFrameLoader in static clone until embedder has window, r=smaug
Follow-up parts in this bug depend on being able to read the `nsGlobalWindow`
which embeds a `nsFrameLoader` within `CreateBrowsingContext`, which is called
from the `nsFrameLoader` constructor. Unfortunately, we depend on creating the
`nsFrameLoader` and `BrowsingContext` before we have the window as part of the
fix to bug 1577711.

This patch changes `BuildNestedPrintObjects` to instead use a list of pending
clones stored on the parent `Document` object, and delays creation of the
`nsFrameLoader`, and thus the inner `BrowsingContext`, until after the document
has an owner global.

Due to the low number of automated tests for printing, I manually tested
print-previewing both the reduced test case from bug 1577711, a wikipedia
article, and 'data:text/html,<object data="data:text/html,hi">' to avoid
regressions.

Differential Revision: https://phabricator.services.mozilla.com/D71236
2020-04-23 21:52:37 +00:00
Arthur Iakab
b12ab8e1e9 Backed out 2 changesets (bug 1576188) for causing browser-chrome failures on browser_persist_cross_origin_iframe.js
CLOSED TREE

Backed out changeset d2c102f8d898 (bug 1576188)
Backed out changeset 9ddd9a63d178 (bug 1576188)
2020-04-23 19:38:58 +03:00
Andreas Farre
730d1fd342 Bug 1576188 - Handle save-as for cross process iframes. r=peterv
Depends on D70388

Differential Revision: https://phabricator.services.mozilla.com/D70389
2020-04-23 13:56:26 +00:00
Andreea Pavel
8cd16cba50 Backed out 7 changesets (bug 1580565) for bc failures on a CLOSED TREE
Backed out changeset e44e0a6366f8 (bug 1580565)
Backed out changeset c0849928f934 (bug 1580565)
Backed out changeset 3d4f155096be (bug 1580565)
Backed out changeset 108d5fb4418e (bug 1580565)
Backed out changeset d8dea951a032 (bug 1580565)
Backed out changeset f9ab41f29552 (bug 1580565)
Backed out changeset fd5d76304c09 (bug 1580565)
2020-04-22 21:51:17 +03:00
Nika Layzell
e3158ee62b Bug 1580565 - Part 2: Delay creating nsFrameLoader in static clone until embedder has window, r=smaug
Follow-up parts in this bug depend on being able to read the `nsGlobalWindow`
which embeds a `nsFrameLoader` within `CreateBrowsingContext`, which is called
from the `nsFrameLoader` constructor. Unfortunately, we depend on creating the
`nsFrameLoader` and `BrowsingContext` before we have the window as part of the
fix to bug 1577711.

This patch changes `BuildNestedPrintObjects` to instead use a list of pending
clones stored on the parent `Document` object, and delays creation of the
`nsFrameLoader`, and thus the inner `BrowsingContext`, until after the document
has an owner global.

Due to the low number of automated tests for printing, I manually tested
print-previewing both the reduced test case from bug 1577711, a wikipedia
article, and 'data:text/html,<object data="data:text/html,hi">' to avoid
regressions.

Differential Revision: https://phabricator.services.mozilla.com/D71236
2020-04-22 15:48:22 +00:00
Dorel Luca
4914ab736f Backed out 7 changesets (bug 1580565) for Gecko-view failures in Test.crashParent. CLOSED TREE
Backed out changeset 7da9785ebb06 (bug 1580565)
Backed out changeset a80e177a91b2 (bug 1580565)
Backed out changeset 2cf821f2a6ea (bug 1580565)
Backed out changeset a30f158eba45 (bug 1580565)
Backed out changeset 276b131190a8 (bug 1580565)
Backed out changeset 3c15e4c600c4 (bug 1580565)
Backed out changeset bf8877cdb10f (bug 1580565)
2020-04-22 18:42:24 +03:00
Nika Layzell
3f19146667 Bug 1580565 - Part 2: Delay creating nsFrameLoader in static clone until embedder has window, r=smaug
Follow-up parts in this bug depend on being able to read the `nsGlobalWindow`
which embeds a `nsFrameLoader` within `CreateBrowsingContext`, which is called
from the `nsFrameLoader` constructor. Unfortunately, we depend on creating the
`nsFrameLoader` and `BrowsingContext` before we have the window as part of the
fix to bug 1577711.

This patch changes `BuildNestedPrintObjects` to instead use a list of pending
clones stored on the parent `Document` object, and delays creation of the
`nsFrameLoader`, and thus the inner `BrowsingContext`, until after the document
has an owner global.

Due to the low number of automated tests for printing, I manually tested
print-previewing both the reduced test case from bug 1577711, a wikipedia
article, and 'data:text/html,<object data="data:text/html,hi">' to avoid
regressions.

Differential Revision: https://phabricator.services.mozilla.com/D71236
2020-04-22 03:22:00 +00:00
Bogdan Tara
8557fa3bcd Backed out 7 changesets (bug 1580565) for browser_entry_point_telemetry.js failures CLOSED TREE
Backed out changeset 12a4f3de76a8 (bug 1580565)
Backed out changeset 81d537df2dc1 (bug 1580565)
Backed out changeset b182e872c9d4 (bug 1580565)
Backed out changeset 0b4595b2c153 (bug 1580565)
Backed out changeset 4363e3a3d799 (bug 1580565)
Backed out changeset cbb14b2c7b33 (bug 1580565)
Backed out changeset 46b251848297 (bug 1580565)
2020-04-22 06:15:43 +03:00
Nika Layzell
5319ad9b3f Bug 1580565 - Part 2: Delay creating nsFrameLoader in static clone until embedder has window, r=smaug
Follow-up parts in this bug depend on being able to read the `nsGlobalWindow`
which embeds a `nsFrameLoader` within `CreateBrowsingContext`, which is called
from the `nsFrameLoader` constructor. Unfortunately, we depend on creating the
`nsFrameLoader` and `BrowsingContext` before we have the window as part of the
fix to bug 1577711.

This patch changes `BuildNestedPrintObjects` to instead use a list of pending
clones stored on the parent `Document` object, and delays creation of the
`nsFrameLoader`, and thus the inner `BrowsingContext`, until after the document
has an owner global.

Due to the low number of automated tests for printing, I manually tested
print-previewing both the reduced test case from bug 1577711, a wikipedia
article, and 'data:text/html,<object data="data:text/html,hi">' to avoid
regressions.

Differential Revision: https://phabricator.services.mozilla.com/D71236
2020-04-22 01:37:50 +00:00
Gijs Kruitbosch
def0a5a477 Bug 1631358 - remove CPOW support in the message manager, r=mccr8
This commit:

- removes sendRpcMessage, which was unused;
- removes the CPOW argument to sendAsyncMessage, broadcastAsyncMessage, and
  sendSyncMessage;
- removes the aIsSync argument used internally to distinguish sendRpcMessage
  and sendSyncMessage;
- removes CPOW tests;
- updates the few remaining callsites that use more than 2 arguments in
  sendAsyncMessage for the removal of the cpows argument.

Differential Revision: https://phabricator.services.mozilla.com/D71514
2020-04-21 14:07:57 +00:00
Kris Maglione
407c2b9912 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 22:15:19 +00:00
Ciure Andrei
9957be4184 Backed out 10 changesets (bug 1614462) for causing test_ipc_messagemanager_blob.js failures CLOSED TREE
Backed out changeset bf4f8253c708 (bug 1614462)
Backed out changeset c61b797d63e9 (bug 1614462)
Backed out changeset 284002de7137 (bug 1614462)
Backed out changeset 7f604ee5731c (bug 1614462)
Backed out changeset a73ef8167cd4 (bug 1614462)
Backed out changeset ecc3477ed34e (bug 1614462)
Backed out changeset 2106f3ccc4b5 (bug 1614462)
Backed out changeset e68c38a7741d (bug 1614462)
Backed out changeset 93b3bacdbb34 (bug 1614462)
Backed out changeset 0cf4898ae08d (bug 1614462)
2020-04-21 01:11:37 +03:00
Tetsuharu Ohzeki
1347aaf649 Bug 1631548 - part 3: Remove unused nsFrameLoader::InitializeFromBrowserParent(). r=emilio
There is no caller.

Differential Revision: https://phabricator.services.mozilla.com/D71631
2020-04-20 19:02:57 +00:00
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
Eden Chuang
5a92f0a34d Bug 1598131 - Propagate the browsingContext's COEP to the new created one in nsFrameLoader::Recreate r=farre
The COEP header needs to propagate to the new created BrowsingContext for process switching.

Differential Revision: https://phabricator.services.mozilla.com/D69936
2020-04-17 11:29:13 +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
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
Matt Woodrow
1b03d4ee89 Bug 1627971 - Add option to MaybeFireEmbedderLoadEvents to also fire the error event to the embedder element. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D70585
2020-04-15 22:30:13 +00:00
Nika Layzell
2374af2df0 Bug 1616353 - Part 7.3: Use nsOpenWindowInfo for initializing xul:browser elements, r=kmag
This patch adds a `openWindowInfo` XPCOM attribute to the `nsIBrowser` interface
supported by the browser custom element. This attribute is then read by
`XULFrameElement`, and passed to `nsFrameLoader` to ensure the relevant flags
are used for newly opened windows.

This patch does not add support for passing openWindowInfo into mozbrowser
elements.

Differential Revision: https://phabricator.services.mozilla.com/D67052
2020-04-07 21:39:34 +00:00
Nika Layzell
ea10ffb31a Bug 1616353 - Part 6.1: Implement nsILoadContext on BrowsingContext, r=smaug
This also moves nsDocShell's implementation of nsILoadContext to be based on its
BrowsingContext.

This patch does not, by itself, fix all places which try to mutate
`nsILoadContext`. Those are fixed by the other parts of this patch stack.

Differential Revision: https://phabricator.services.mozilla.com/D67045
2020-04-07 21:39:12 +00:00
Nika Layzell
bf125abae6 Bug 1616353 - Part 3: Use an attribute to set geckoViewUserContextId on a browser, r=geckoview-reviewers,esawin
This is necessary to avoid the use of setOriginAttributesBeforeLoading, which is
being removed in this patch set.

Differential Revision: https://phabricator.services.mozilla.com/D67042
2020-04-07 21:39:04 +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
694cb3a32f Bug 1616353 - Part 7.3: Use nsOpenWindowInfo for initializing xul:browser elements, r=kmag
This patch adds a `openWindowInfo` XPCOM attribute to the `nsIBrowser` interface
supported by the browser custom element. This attribute is then read by
`XULFrameElement`, and passed to `nsFrameLoader` to ensure the relevant flags
are used for newly opened windows.

This patch does not add support for passing openWindowInfo into mozbrowser
elements.

Differential Revision: https://phabricator.services.mozilla.com/D67052
2020-04-06 14:30:04 +00:00
Nika Layzell
458cd6db6a Bug 1616353 - Part 6.1: Implement nsILoadContext on BrowsingContext, r=smaug
This also moves nsDocShell's implementation of nsILoadContext to be based on its
BrowsingContext.

This patch does not, by itself, fix all places which try to mutate
`nsILoadContext`. Those are fixed by the other parts of this patch stack.

Differential Revision: https://phabricator.services.mozilla.com/D67045
2020-04-06 14:29:47 +00:00
Nika Layzell
c4bb426604 Bug 1616353 - Part 3: Use an attribute to set geckoViewUserContextId on a browser, r=geckoview-reviewers,esawin
This is necessary to avoid the use of setOriginAttributesBeforeLoading, which is
being removed in this patch set.

Differential Revision: https://phabricator.services.mozilla.com/D67042
2020-04-06 14:29:35 +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
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
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
Dan Glastonbury
45185f50d2 Bug 1616171 - P1: Remote obsolete RemoteFrameChild fwd decl. r=nika
According to searchfox, this class doesn't exist anymore.

Differential Revision: https://phabricator.services.mozilla.com/D63453
2020-02-25 23:17:45 +00:00
Nika Layzell
9638b99abf Bug 1615480 - Part 3: Rename nsFrameLoader::mBrowsingContext to avoid confusion, r=kmag
The new name should make it more clear that this should not be the default way
to look up the BrowsingContext instance from a nsFrameLoader, as it does not
ensure that the BrowsingContext has been fully initialized and attached to the
tree.

Differential Revision: https://phabricator.services.mozilla.com/D62959
2020-02-21 21:53:33 +00:00
Nika Layzell
b6a044a365 Bug 1615480 - Part 1: Return a raw pointer from Get[Extant]BrowsingContext, r=kmag
The BrowsingContext is guaranteed to be being kept alive by
`nsFrameLoader::mBrowsingContext` and by the nsDocShell or RemoteBrowser object.
This improves the ergonomics of this helper method, which may help avoid misuse
of `mBrowsingContext`.

Differential Revision: https://phabricator.services.mozilla.com/D62957
2020-02-21 21:03:54 +00:00
Cosmin Sabou
243d82098b Backed out 3 changesets (bug 1615480) for causing build bustages on nsFrameLoader.cpp.
CLOSED TREE

Backed out changeset d6fd08e3fccf (bug 1615480)
Backed out changeset ad31eae54af2 (bug 1615480)
Backed out changeset 70aff2593d98 (bug 1615480)
2020-02-21 23:00:55 +02:00
Nika Layzell
38ed6e3be9 Bug 1615480 - Part 3: Rename nsFrameLoader::mBrowsingContext to avoid confusion, r=kmag
The new name should make it more clear that this should not be the default way
to look up the BrowsingContext instance from a nsFrameLoader, as it does not
ensure that the BrowsingContext has been fully initialized and attached to the
tree.

Differential Revision: https://phabricator.services.mozilla.com/D62959
2020-02-21 18:46:38 +00:00
Nika Layzell
88323b85cf Bug 1615480 - Part 1: Return a raw pointer from Get[Extant]BrowsingContext, r=kmag
The BrowsingContext is guaranteed to be being kept alive by
`nsFrameLoader::mBrowsingContext` and by the nsDocShell or RemoteBrowser object.
This improves the ergonomics of this helper method, which may help avoid misuse
of `mBrowsingContext`.

Differential Revision: https://phabricator.services.mozilla.com/D62957
2020-02-21 18:44:57 +00:00
Kris Maglione
d7e4043bb8 Bug 1582832: Part 1 - Make FrameLoader owner rather than DocShell responsible for discarding a BC. r=nika
There are all sorts of lifecycle issues which arise from making DocShell
responsible for discarding BrowsingContexts. In this particular bug, we tend
to run into them in cases where we create a BrowsingContext for a FrameLoader,
and then never create a DocShell for it, leading to it never being destroyed.
But there are myriad other issues as well.

This patch moves the responsibility for BrowsingContext lifecycle management
to the FrameLoader/FrameLoaderOwner, rather than the DocShell, which makes
things more consistent, and more closely aligns with spec-defined behavior.

Differential Revision: https://phabricator.services.mozilla.com/D59008
2020-02-06 19:07:56 +00:00
Kris Maglione
5f3ffd1b57 Bug 1595936: Part 4 - Assert that we don't init FrameLoaders when unsafe. r=smaug
We go to some lengths to defer FrameLoader initialization to the end of
document updates. However, it is still possible for initialization to happen
earlier as a side-effect of other operations (such as
`nsFrameLoader::GetBrowsingContext()`) if they're called before initialization
has already happened. Since this is such an easy mistake to make, we should
assert that it doesn't happen so that we find out about it sooner rather than
later.

Differential Revision: https://phabricator.services.mozilla.com/D55877
2020-01-24 19:03:20 +00:00