Commit Graph

848 Commits

Author SHA1 Message Date
Kashav Madan
fb01408d2e Bug 1666485 - Make BrowsingContext::CreatedDynamically non-synced, r=nika,kmag
Differential Revision: https://phabricator.services.mozilla.com/D89223
2020-09-23 12:45:38 +00:00
Emilio Cobos Álvarez
cb233b8098 Bug 1557645 - Clone OOP iframes in the right process. r=nika
This works, though probably we want to do some follow-up tweaks, like
the adding of the onload blocker and so on, so that we can avoid the
UpdateDimensions hack.

We may also want a PrintObject in the nsPrintJob tree, perhaps...

Differential Revision: https://phabricator.services.mozilla.com/D90310
2020-09-22 09:57:27 +00:00
Emilio Cobos Álvarez
864c51f341 Bug 1557645 - Unify in-process document cloning a bit more. r=jwatt
By passing the content viewer to CreateStaticClone we can do this fairly
easily. I'm going to add another entry-point to the clone process and
it'd be good if we avoid repeating the SetDocument dance and so on.

Differential Revision: https://phabricator.services.mozilla.com/D90315
2020-09-15 23:03:23 +00:00
Hiroyuki Ikezoe
7e1083594b Bug 1662325 - Use EqualsIgnoringFPD to compare originAttributes in nsFrameLoader::SwapWithOtherRemoteLoader. r=emilio,nika
Differential Revision: https://phabricator.services.mozilla.com/D89528
2020-09-09 23:57:28 +00:00
Emilio Cobos Álvarez
c6dfe1dcc4 Bug 1662259 - Don't create a non-extant docshell when doing static clones. r=kmag
If the docshell is not there already, it's probably not displayed or
what not.

Differential Revision: https://phabricator.services.mozilla.com/D89161
2020-09-07 00:54:38 +00:00
Dorel Luca
1833f90756 Backed out changeset e4e4c1c090c5 (bug 1662259) as requested by dev. 2020-09-07 02:47:01 +03:00
Emilio Cobos Álvarez
e9ac57dc13 Bug 1662259 - Don't create a non-extant docshell when doing static clones. r=kmag
If the docshell is not there already, it's probably not displayed or
what not.

Differential Revision: https://phabricator.services.mozilla.com/D89161
2020-09-02 23:16:34 +00:00
Emilio Cobos Álvarez
a74b1783e5 Bug 1662975 - Don't return from window.print() until the print dialog is closed. r=jwatt
As much as I hate nested event loops, I think we need to do it for this
case :)

Hopefully print() already assumes nested event loops can happen because
of the native dialog so it's already properly set up for this.

Differential Revision: https://phabricator.services.mozilla.com/D89254
2020-09-03 17:03:06 +00:00
Bogdan Tara
70db071bd2 Backed out changeset 52d0f9a901a9 (bug 1662975) for nested_fullscreen.https.html failures CLOSED TREE 2020-09-03 23:41:38 +03:00
Emilio Cobos Álvarez
b414ddf92b Bug 1662975 - Don't return from window.print() until the print dialog is closed. r=jwatt
As much as I hate nested event loops, I think we need to do it for this
case :)

Hopefully print() already assumes nested event loops can happen because
of the native dialog so it's already properly set up for this.

Differential Revision: https://phabricator.services.mozilla.com/D89254
2020-09-03 17:03:06 +00:00
Bob Owen
80124f1172 Bug 1661975: Add whether we have a selection to PrintPreviewResultInfo. r=jwatt
This is then used in the front end to set the option in the settings.

Differential Revision: https://phabricator.services.mozilla.com/D89045
2020-09-02 08:15:35 +00:00
Olli Pettay
eec5e45f9b Bug 1661835 - DocShell::Initialize may change the state of nsFrameLoader, r=kmag
This is a guess fix based on possible reason for the crash.
Use of AutoScriptBlocker would be one option too, but better to return as early as possible.

Differential Revision: https://phabricator.services.mozilla.com/D88808
2020-09-02 03:21:34 +00:00
Jonathan Watt
2e793fcf9a Bug 1653340. Add new FrameLoader.printPreview() API. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D88703
2020-09-01 11:00:36 +00:00
Anny Gakhokidze
a7185cba9a Bug 1589102 - Part 1: Enable about:srcdoc loads via DocumentChannel, r=mattwoodrow
This patch enables sandboxed srcdoc loads to take place via DocumentChannel,
and adds mechanisms for enabling unsandboxed ones.

Both unsandboxed srcdoc, and in subsequent patches, about:blank, loads require
that the triggering principal and the principal to inherit point to the same
instance if the load takes place in the same process as where we are inheriting
those principals from. We save those principals on a target browsing context before
we load the URI, and later, when we are deserializing LoadInfoArgs into
LoadInfo in the content process, we retrieve the saved principals if the
current load identifier of the target BC matches the load identifier saved
along with the principals.

We also need to make sure that during a process switch for about:srcdoc load,
we don't use the original URI for about:srcdoc to determine the remote type and
instead we use channel's result principal.

Differential Revision: https://phabricator.services.mozilla.com/D85079
2020-08-28 17:20:30 +00:00
Peter Van der Beken
78c82ffa68 Bug 1660869 - Forward RemoveFromSessionHistory to the parent process for session history in the parent. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D88061
2020-08-25 16:20:17 +00:00
Emilio Cobos Álvarez
2c0dea8fd4 Bug 1636728 - Centralize printing entry points in nsGlobalWindowOuter, and move cloning out of nsPrintJob. r=jwatt,geckoview-reviewers,smaug,agi
This centralizes our print and preview setup in nsGlobalWindowOuter so
that we never re-clone a clone, and so that we reuse the window.open()
codepath to create the browsing context to clone into.

For window.print, for both old print dialog / silent printing and new
print preview UI, we now create a hidden browser (as in with visibility:
collapse, which takes no space but still gets a layout box).

 * In the modern UI case, this browser is swapped with the actual print
   preview clone, and the UI takes care of removing the browser.

 * In the print dialog / silent printing case, the printing code calls
   window.close() from nsDocumentViewer::OnDonePrinting().

 * We don't need to care about the old print preview UI for this case
   because it can't be open from window.print().

We need to fall back to an actual window when there's no
nsIBrowserDOMWindow around for WPT print tests and the like, which don't
have one. That seems fine, we could special-case this code path more if
needed but it doesn't seem worth it.

Differential Revision: https://phabricator.services.mozilla.com/D87063
2020-08-25 17:45:12 +00:00
Kashav Madan
0322b6cb85 Bug 1660537 - Null check mOwnerContent in GetWindowDimensions, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D87903
2020-08-21 22:18:59 +00:00
Dorel Luca
282e4df17e Backed out changeset 178fa7e29bb6 (bug 1585070) for Browser-chrome failures in general/browser_windowactivation.js. CLOSED TREE 2020-08-12 20:10:46 +03:00
Steven MacLeod
0efb173a27 Bug 1585070 - move nsPIDOMWindowOuter::mIsActive to BrowsingContext. r=farre
A new `BrowsingContext` field, `isActiveBrowserWindow`, has been added
to track the active browser window for the `:-moz-window-inactive`
pseudoclass. This field takes the place of
`nsPIDOMWindowOuter::mIsActive`.

With this change `:-moz-window-inactive` is now fission compatible.

Differential Revision: https://phabricator.services.mozilla.com/D86422
2020-08-11 12:53:57 +00:00
Nika Layzell
e0d335983e Bug 1656854 - Part 1: Block subframe creation in discarded BCs, r=farre
This should help catch and/or prevent any cases where we're creating a new
subframe at an unfortunate time during `BrowsingContext` or `WindowContext`
teardown.

Differential Revision: https://phabricator.services.mozilla.com/D85896
2020-08-06 14:03:30 +00:00
Nika Layzell
e9a2f4801a Bug 1589517 - Part 4: Remove sameProcessAsFrameLoader, r=zombie,mconley,farre,smacleod
The functionality has been fully subsumed by the new
initialBrowsingContextGroupId attribute, so it is no longer necessary.

Differential Revision: https://phabricator.services.mozilla.com/D85653
2020-08-06 17:01:13 +00:00
Nika Layzell
0efd2d28ee Bug 1589517 - Part 1: Add initialBrowsingContextGroupId attribute, r=farre
This attribute will subsume the existing sameProcessAsFrameLoader attribute. It
works by specifying the BrowsingContextGroup which the initial BrowsingContext
in a <browser> should be created within.

Due to bug 1652144, all documents within the same BrowsingContextGroup with the
same remote type will be loaded in the same process, meaning that specifying
both "initialBrowsingContextGroupId" and "remoteType" will cause the initial
about:blank document to be loaded in a specific content process.

Differential Revision: https://phabricator.services.mozilla.com/D85650
2020-08-06 17:01:06 +00:00
Emilio Cobos Álvarez
263bef0cb2 Bug 1657599 - Remove mozallowfullscreen code. r=smaug
I realized this was broken because feature policy was not accounting for
it (I fixed that in 79), but I _thought_ we weren't shipping
feature policy. It turns out we've been shipping it for a while (since 74),
so I'd rather remove support for it officially.

Differential Revision: https://phabricator.services.mozilla.com/D86191
2020-08-06 15:11:37 +00:00
Butkovits Atila
7aa3c5898d Backed out 10 changesets (bug 1589102) for failure at browser_saveHeapSnapshot_e10s_01.js CLOSED TREE
Backed out changeset 0d22ad297b19 (bug 1589102)
Backed out changeset 14bcaf2a452c (bug 1589102)
Backed out changeset 20905f91e2bb (bug 1589102)
Backed out changeset 29ee0fbe855f (bug 1589102)
Backed out changeset d1f6185030af (bug 1589102)
Backed out changeset 31949872cc1d (bug 1589102)
Backed out changeset ec04e1a20597 (bug 1589102)
Backed out changeset ffe8da473b91 (bug 1589102)
Backed out changeset 3b92f7306c64 (bug 1589102)
Backed out changeset b187548e258f (bug 1589102)
2020-08-05 21:47:50 +03:00
Anny Gakhokidze
d0d9ae5dc4 Bug 1589102 - Part 1: Enable about:srcdoc loads via DocumentChannel, r=mattwoodrow
This patch enables sandboxed srcdoc loads to take place via DocumentChannel,
and adds mechanisms for enabling unsandboxed ones.

Both unsandboxed srcdoc, and in subsequent patches, about:blank, loads require
that the triggering principal and the principal to inherit point to the same
instance if the load takes place in the same process as where we are inheriting
those principals from. We save those principals on a target browsing context before
we load the URI, and later, when we are deserializing LoadInfoArgs into
LoadInfo in the content process, we retrieve the saved principals if the
current load identifier of the target BC matches the load identifier saved
along with the principals.

We also need to make sure that during a process switch for about:srcdoc load,
we don't use the original URI for about:srcdoc to determine the remote type and
instead we use channel's result principal.

Differential Revision: https://phabricator.services.mozilla.com/D85079
2020-08-05 16:44:01 +00:00
Emilio Cobos Álvarez
2e89f92f74 Bug 1656596 - Add another missing null-check in our printing code. r=nordzilla
This code needs fuzzing desperately...

Differential Revision: https://phabricator.services.mozilla.com/D85631
2020-07-31 21:53:02 +00:00
Andreas Farre
b447c24f6c Bug 1613431 - Part 3: Handle synced setters return value. r=nika
Depends on D83646

Differential Revision: https://phabricator.services.mozilla.com/D83647
2020-07-31 13:37:13 +00:00
Emilio Cobos Álvarez
9aa8a79623 Bug 1655746 - Avoid crashing when getting error notifications from printing. r=jwatt
We could legitimately get multiple error notifications and we'd try to
reject the promise twice and crash.

Differential Revision: https://phabricator.services.mozilla.com/D85441
2020-07-30 17:32:03 +00:00
Nathan Froyd
1a5e36fc8f Bug 1223932 - delete guard object uses from the tree; r=jwalden
CLOSED TREE

We don't need these macros anymore, for two reasons:

1. We have static analysis to provide the same sort of checks via `MOZ_RAII`
   and friends.
2. clang now warns for the "temporary that should have been a declaration" case.

The extra requirements on class construction also show up during debug tests
as performance problems.

This change was automated by using the following sed script:

```
# Remove declarations in classes.
/MOZ_DECL_USE_GUARD_OBJECT_NOTIFIER/d
/MOZ_GUARD_OBJECT_NOTIFIER_INIT/d

# Remove individual macros, carefully.
{
  # We don't have to worry about substrings here because the closing
  # parenthesis "anchors" the match.
  s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM)/)/g;
  s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM_TO_PARENT)/)/g;
  s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM_IN_IMPL)/)/g;
  s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM_IN_IMPL)/)/g;

  # Remove the longer identifier first.
  s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM_TO_PARENT//g;
  s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM//g;
}

# Remove the actual include.
\@# *include "mozilla/GuardObjects.h"@d
```

and running:

```
find . -name \*.cpp -o -name \*.h | grep -v 'GuardObjects.h' |xargs sed -i -f script 2>/dev/null
mach clang-format
```

Differential Revision: https://phabricator.services.mozilla.com/D85168
2020-07-30 14:22:38 +00:00
Mihai Alexandru Michis
367903d750 Backed out changeset ac9c811bc427 (bug 1223932) for causing spidermonkey rust failures.
CLOSED TREE
2020-07-30 18:23:21 +03:00
Nathan Froyd
05fe6be54b Bug 1223932 - delete guard object uses from the tree; r=jwalden
We don't need these macros anymore, for two reasons:

1. We have static analysis to provide the same sort of checks via `MOZ_RAII`
   and friends.
2. clang now warns for the "temporary that should have been a declaration" case.

The extra requirements on class construction also show up during debug tests
as performance problems.

This change was automated by using the following sed script:

```
# Remove declarations in classes.
/MOZ_DECL_USE_GUARD_OBJECT_NOTIFIER/d
/MOZ_GUARD_OBJECT_NOTIFIER_INIT/d

# Remove individual macros, carefully.
{
  # We don't have to worry about substrings here because the closing
  # parenthesis "anchors" the match.
  s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM)/)/g;
  s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM_TO_PARENT)/)/g;
  s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM_IN_IMPL)/)/g;
  s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM_IN_IMPL)/)/g;

  # Remove the longer identifier first.
  s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM_TO_PARENT//g;
  s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM//g;
}

# Remove the actual include.
\@# *include "mozilla/GuardObjects.h"@d
```

and running:

```
find . -name \*.cpp -o -name \*.h | grep -v 'GuardObjects.h' |xargs sed -i -f script 2>/dev/null
mach clang-format
```

Differential Revision: https://phabricator.services.mozilla.com/D85168
2020-07-30 14:22:38 +00:00
Nika Layzell
959ca86280 Bug 1648955 - Check parent WC is in-proc rather than parent BC nsDocShell to tree, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D85309
2020-07-30 12:27:12 +00:00
Jonathan Watt
19bf28a23f Bug 1652270. Convert nsFrameLoader::Print to return a Promise. r=farre,remote-protocol-reviewers,marionette-reviewers,jgraham,whimboo,mixedpuppy
(Instead of requiring callers to pass an nsIWebProgressListener.)

Differential Revision: https://phabricator.services.mozilla.com/D83249
2020-07-22 23:17:45 +00:00
Narcis Beleuzu
25bcd488ae Backed out changeset f95c19e45ab2 (bug 1652270) for reftest failures on test-text.html . CLOSED TREE 2020-07-22 20:36:53 +03:00
Jonathan Watt
2a0f138ef8 Bug 1652270. Convert nsFrameLoader::Print to return a Promise. r=farre,remote-protocol-reviewers,marionette-reviewers,jgraham,whimboo,mixedpuppy
(Instead of requiring callers to pass an nsIWebProgressListener.)

Differential Revision: https://phabricator.services.mozilla.com/D83249
2020-07-22 15:54:01 +00:00
Edgar Chen
3e6487ae46 Bug 1653214 - Part 1: Merge implementations of nsDocShell::Create into nsDocShell::InitWindow; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D83766
2020-07-16 20:42:02 +00:00
Edgar Chen
91279a2a5b Bug 1652921 - Remove notifying inprocess-browser-shown observer; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D83607
2020-07-15 09:28:55 +00:00
Nika Layzell
d6d174879f Bug 1650163 - Part 2: Add a NOT_REMOTE_TYPE define to clarify calling code, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D82106
2020-07-08 20:16:04 +00:00
Nika Layzell
5f45e08c22 Bug 1650163 - Part 1: Switch native remoteType values to nsCString, r=farre,geckoview-reviewers,agi
Differential Revision: https://phabricator.services.mozilla.com/D82104
2020-07-08 20:15:59 +00:00
Mihai Alexandru Michis
e53e708b23 Backed out 3 changesets (bug 1650163) for causing bustages in nsContentSecurityManager.cpp
CLOSED TREE

Backed out changeset 51d7c644a1e6 (bug 1650163)
Backed out changeset 3d2b6908447a (bug 1650163)
Backed out changeset 79141707d47b (bug 1650163)
2020-07-08 21:18:44 +03:00
Nika Layzell
d44b7fc074 Bug 1650163 - Part 2: Add a NOT_REMOTE_TYPE define to clarify calling code, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D82106
2020-07-08 01:13:45 +00:00
Nika Layzell
d627e924a9 Bug 1650163 - Part 1: Switch native remoteType values to nsCString, r=farre,geckoview-reviewers,agi
Differential Revision: https://phabricator.services.mozilla.com/D82104
2020-07-08 14:54:48 +00:00
Narcis Beleuzu
ff8a3cf3a3 Backed out 7 changesets (bug 1650163, bug 1649477) for bustages on JSActor.cpp . CLOSED TREE
Backed out changeset 4a21afb65254 (bug 1650163)
Backed out changeset c41753a56f5a (bug 1650163)
Backed out changeset 5fb444c35764 (bug 1650163)
Backed out changeset 830aa93d2b0c (bug 1649477)
Backed out changeset eca6e9dce450 (bug 1649477)
Backed out changeset 5b217aa88289 (bug 1649477)
Backed out changeset 8959d02b840f (bug 1649477)
2020-07-08 04:09:27 +03:00
Nika Layzell
4dade3039f Bug 1650163 - Part 2: Add a NOT_REMOTE_TYPE define to clarify calling code, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D82106
2020-07-06 20:27:59 +00:00
Nika Layzell
1332ec8539 Bug 1650163 - Part 1: Switch native remoteType values to nsCString, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D82104
2020-07-06 20:30:58 +00:00
Nika Layzell
9447d51ff3 Bug 1599579 - Part 1: Add the ability to specify a specific BrowsingContextGroup during process switch, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D80254
2020-07-06 20:10:43 +00:00
Matt Woodrow
731131bb58 Bug 1581500 - Don't assert if there are multiple process switches in-flight, since we don't do anything to prevent this. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D82309
2020-07-06 19:31:33 +00:00
Simon Giesecke
a69d79b6db Bug 1648010 - Replace uses of NS_LITERAL_STRING/NS_LITERAL_CSTRING macros by _ns literals. r=geckoview-reviewers,jgilbert,agi,hsivonen,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D80860
2020-07-01 08:29:29 +00:00
Butkovits Atila
6ed80007ad Backed out 6 changesets (bug 1599579) for bc failures at test_chrome_ext_contentscript_data_uri.html.
Backed out changeset b767f26b10ed (bug 1599579)
Backed out changeset c5bc0ea42193 (bug 1599579)
Backed out changeset cfdd8d5973d4 (bug 1599579)
Backed out changeset 73f6c956fc30 (bug 1599579)
Backed out changeset 14698ab42ee4 (bug 1599579)
Backed out changeset b4bdd8759433 (bug 1599579)
2020-06-30 21:41:27 +03:00
Nika Layzell
911b40f827 Bug 1599579 - Part 1: Add the ability to specify a specific BrowsingContextGroup during process switch, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D80254
2020-06-30 16:52:53 +00:00