Commit Graph

924 Commits

Author SHA1 Message Date
pbz
94229b44a8 Bug 1615588 - Extended nsIPromptService to support tab modal prompts. r=johannh,MattN,necko-reviewers,dragana
This patch introduces a new tab modal system prompt type. It can be opened via the nsIPromptService
with a destination BrowsingContext. These tab system prompts overlap slightly with the upper
chrome UI to differentiate them from content prompts (previously called tab prompts).

- Extended nsIPromptService and nsIPrompt to accept 3 types of modal prompts:
  - Window prompts
  - Tab (system) prompts
  - Content prompts (the old tab prompts)
- Removed prompt code from Prompter.jsm, always call PromptParent window actor instead
- Added PromptChild window actor to forward pagehide events to parent actor
- Created additional prompt methods in nsIPromptService to prompt by browsingContext and modalType
- Backwards compatibility is maintained, consumers can still open content prompts calling nsIPrompt with a content window

Differential Revision: https://phabricator.services.mozilla.com/D66446
2020-04-16 14:43:50 +00:00
Anny Gakhokidze
c99c9fc71c Bug 1594529 - Create LoadInfo for subdocuments directly in parent process with DocumentChannel. r=mattwoodrow,nika
Currently, with Fission enabled we are not able to create a proper LoadInfo
object when doing a subdocument load because we do not have access to a loading
context if the load is happening inside of an OOP frame. To solve this problem,
we can create LoadInfo object from scratch in the parent process where we have
all of the required information.

Differential Revision: https://phabricator.services.mozilla.com/D68893
2020-04-15 18:53:06 +00:00
Tetsuharu Ohzeki
850a13501a Bug 1597435 - part 2: Fix uses of nsIDocShellTreeItem in nsGlobalWindowOuter::SetInitialPrincipalToSubject. r=farre
Differential Revision: https://phabricator.services.mozilla.com/D69011
2020-04-15 13:42:40 +00:00
Tetsuharu Ohzeki
4b226101ea Bug 1597435 - part 1: Update the comment obsoleted by bug 1616353. r=farre
Differential Revision: https://phabricator.services.mozilla.com/D70545
2020-04-15 13:42:27 +00:00
Stefan Hindli
2337657bba Backed out 2 changesets (bug 1594529) for causing perma wpt2 with ValueError: badly formed hexadecimal UUID string in /cookies/samesite/iframe-reload.https.html CLOSED TREE
Backed out changeset fbf55a44d7fb (bug 1594529)
Backed out changeset 4ba9a230586a (bug 1594529)
2020-04-15 08:41:10 +03:00
Jeff Walden
7a2ef45277 Bug 949220 - Make |NewProxyObject| return only non-singletons, and add |NewSingletonProxyObject| for the singleton case. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D70502
2020-04-14 16:57:15 +00:00
Anny Gakhokidze
8a9c2d50e4 Bug 1594529 - Create LoadInfo for subdocuments directly in parent process with DocumentChannel. r=mattwoodrow,nika
Currently, with Fission enabled we are not able to create a proper LoadInfo
object when doing a subdocument load because we do not have access to a loading
context if the load is happening inside of an OOP frame. To solve this problem,
we can create LoadInfo object from scratch in the parent process where we have
all of the required information.

Differential Revision: https://phabricator.services.mozilla.com/D68893
2020-04-13 23:00:43 +00:00
Tetsuharu OHZEKI
e50d31d8c4 Bug 1594283 - part 2: Rename nsIDocShell::GetSameTypeParentIgnoreBrowserBoundaries to nsIDocShell::GetSameTypeInProcessParentIgnoreBrowserBoundaries. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D70549
2020-04-14 19:17:21 +00:00
Bogdan Tara
a5eb751d67 Backed out 30 changesets (bug 949220) for assertion failure on JSObject.cpp CLOSED TREE
Backed out changeset b077b434866d (bug 949220)
Backed out changeset 437dc6f1a0b1 (bug 949220)
Backed out changeset 9043d3f4ea6f (bug 949220)
Backed out changeset 761005340836 (bug 949220)
Backed out changeset 650ccbbc2e15 (bug 949220)
Backed out changeset b7459076dbf5 (bug 949220)
Backed out changeset e1ac27ee38e2 (bug 949220)
Backed out changeset 5c07df930240 (bug 949220)
Backed out changeset 42312dec52aa (bug 949220)
Backed out changeset ca28434cf70f (bug 949220)
Backed out changeset c8322158294f (bug 949220)
Backed out changeset 817de77f7cf1 (bug 949220)
Backed out changeset 097d29b3ed26 (bug 949220)
Backed out changeset a2a3821dcc6e (bug 949220)
Backed out changeset cf4659d06791 (bug 949220)
Backed out changeset 53c4c74abb23 (bug 949220)
Backed out changeset a4a124e8f193 (bug 949220)
Backed out changeset 53a89cfb8c24 (bug 949220)
Backed out changeset 69e8d2e49ee1 (bug 949220)
Backed out changeset afb91f3ce31e (bug 949220)
Backed out changeset 43ff0c2fc3dc (bug 949220)
Backed out changeset eda9a8e621b3 (bug 949220)
Backed out changeset 93b33661e87b (bug 949220)
Backed out changeset ddf62ab9e8cc (bug 949220)
Backed out changeset 62fff9f3a631 (bug 949220)
Backed out changeset 45e22642cd49 (bug 949220)
Backed out changeset 54f48761a664 (bug 949220)
Backed out changeset c0d4d9557fac (bug 949220)
Backed out changeset 98ac0d0d392c (bug 949220)
Backed out changeset 2d677ae71924 (bug 949220)
2020-04-14 13:17:51 +03:00
Jeff Walden
675dfc4bcd Bug 949220 - Make |NewProxyObject| return only non-singletons, and add |NewSingletonProxyObject| for the singleton case. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D70502
2020-04-14 08:37:31 +00:00
Tooru Fujisawa
748fd470d3 Bug 1432749 - Part 2: Introduce WindowFeature class with spec-compliant tokenization, and use it both in nsGlobalWindowOuter and nsWindowWatcher. r=smaug
WindowFeature provides the tokenization and access to the map.
This changes the following behavior:
  * "*" value is removed, given it's unused.
    * Default width and default height handling is removed,
      given there's no callsites
  * Some chrome-priv feature handling becomes stricter:
    * All substring match is removed and directly checks the item in the map

Also, fixed noopener=0 and noreferrer=0 options to be handled properly.

Differential Revision: https://phabricator.services.mozilla.com/D67725
2020-04-14 06:27:47 +00:00
Narcis Beleuzu
8f3be16cf1 Backed out 3 changesets (bug 1624150, bug 1432749) for wpt failures at open-features-tokenization-top-left.html. CLOSED TREE
Backed out changeset ff061c8d9da9 (bug 1624150)
Backed out changeset 7e96d4acf317 (bug 1432749)
Backed out changeset a95f77732a1c (bug 1432749)
2020-04-13 22:51:48 +03:00
Tooru Fujisawa
e84e39b64e Bug 1432749 - Part 2: Introduce WindowFeature class with spec-compliant tokenization, and use it both in nsGlobalWindowOuter and nsWindowWatcher. r=smaug
WindowFeature provides the tokenization and access to the map.
This changes the following behavior:
  * "*" value is removed, given it's unused.
    * Default width and default height handling is removed,
      given there's no callsites
  * Some chrome-priv feature handling becomes stricter:
    * All substring match is removed and directly checks the item in the map

Also, fixed noopener=0 and noreferrer=0 options to be handled properly.

Differential Revision: https://phabricator.services.mozilla.com/D67725
2020-04-13 15:42:19 +00:00
Csoregi Natalia
a3c8408007 Backed out 5 changesets (bug 1615588) for browser-chrome failures e.g. browser_beforeunload_duplicate_dialogs.js. CLOSED TREE
Backed out changeset 751cca7566a8 (bug 1615588)
Backed out changeset 474aca043834 (bug 1615588)
Backed out changeset 7839b95ef76c (bug 1615588)
Backed out changeset 32bb87f48b13 (bug 1615588)
Backed out changeset 264e642042b1 (bug 1615588)
2020-04-10 21:19:15 +03:00
pbz
79ef17c4dc Bug 1615588 - Extended nsIPromptService to support tab modal prompts. r=johannh,MattN
This patch introduces a new tab modal system prompt type. It can be opened via the nsIPromptService
with a destination BrowsingContext. These tab system prompts overlap slightly with the upper
chrome UI to differentiate them from content prompts (previously called tab prompts).

- Extended nsIPromptService and nsIPrompt to accept 3 types of modal prompts:
  - Window prompts
  - Tab (system) prompts
  - Content prompts (the old tab prompts)
- Removed prompt code from Prompter.jsm, always call PromptParent window actor instead
- Added PromptChild window actor to forward pagehide events to parent actor
- Created additional prompt methods in nsIPromptService to prompt by browsingContext and modalType
- Backwards compatibility is maintained, consumers can still open content prompts calling nsIPrompt with a content window

Differential Revision: https://phabricator.services.mozilla.com/D66446
2020-04-10 16:47:00 +00:00
Nika Layzell
2b076e179b Bug 1616353 - Part 7.7: Remove window initialization properties which are redundant with nsOpenWindowInfo, r=kmag
These properties used to be passed to newly created content windows in many
different ways, but are now unified under nsOpenWindowInfo. This patch cleans up
the remaining properties.

Differential Revision: https://phabricator.services.mozilla.com/D67056
2020-04-07 21:39:44 +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
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
3ae4bb4eaf Bug 1616353 - Part 11: Remove broken TabGroup assertion, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D67217
2020-04-06 14:30:31 +00:00
Nika Layzell
fd1843d5af Bug 1616353 - Part 7.7: Remove window initialization properties which are redundant with nsOpenWindowInfo, r=kmag
These properties used to be passed to newly created content windows in many
different ways, but are now unified under nsOpenWindowInfo. This patch cleans up
the remaining properties.

Differential Revision: https://phabricator.services.mozilla.com/D67056
2020-04-06 14:30:19 +00:00
Andrea Marchesini
dda9dc8015 Bug 1625568 - Add compatibility heuristics to third-party cookie blocking - part 5 - extra code to enable heuristics, r=timhuang
Differential Revision: https://phabricator.services.mozilla.com/D69355
2020-04-02 14:59:44 +00:00
Andrea Marchesini
1fb5fc06bf Bug 1625568 - Add compatibility heuristics to third-party cookie blocking - part 2 - enable storageAccess API and heuristics, r=dimi,timhuang
Differential Revision: https://phabricator.services.mozilla.com/D69047
2020-04-02 15:30:57 +00:00
Tetsuharu OHZEKI
d9498ec29e Bug 1597436 - Fix uses of nsIDocShellTreeItem in nsGlobalWindowOuter::SetNewDocument. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D67359
2020-03-31 14:57:24 +00:00
Tim Huang
693cba7245 Bug 1616788 - Part 6: Propagate the HasStoragePermission from the loadInfo to the WindowContext. r=dimi,baku
We propagate the HasStoragePermission flag from the loadInfo to the
WindowContext in the patch. We add a flag HasStoragePermission in the
document and this flag will get updated when the
Document::StartDocumentLoad() happens. And then, we would sync this to
the WindowContext in the final stage of the
nsGlobalWindowOuter::SetNewDocument() where the WindowContext is ready.

Differential Revision: https://phabricator.services.mozilla.com/D67471
2020-03-30 14:12:11 +00:00
Emilio Cobos Álvarez
66ff09f01e Bug 1624829 - Use FunctionRef for various Enumerate* callbacks. r=edgar
This avoids a bunch of ugly casts and void pointers, without much overhead
(unlike std::function or such).

Differential Revision: https://phabricator.services.mozilla.com/D68182
2020-03-26 12:44:47 +00:00
Andrew McCreight
ff5f75bb41 Bug 1570487 - Nuke Xray waivers for local outer window proxies on navigation. r=peterv
We nuke xray waivers when we navigate outer windows out of process,
because it doesn't make much sense to have a waiver in that case.
This patch makes the behavior for navigating to local outer windows
consistent, by also nuking remote window proxies. Hopefully that
won't break anything.

This is Nightly-only for now, because it might break addons.

Differential Revision: https://phabricator.services.mozilla.com/D66495
2020-03-24 19:24:03 +00:00
Valentin Gosu
374f0d0d36 Bug 1617889 - COOP: Open new windows as "noopener" when origins don't match r=nika
If current's top-level browsing context's active document's cross-origin
opener-policy is "same-origin" or "same-origin + COEP", then:
- Let currentDoc be current's active document.
- If currentDoc's origin is not same origin with currentDoc's top-level
  origin, then set noopener to true.

https://gist.github.com/annevk/6f2dd8c79c77123f39797f6bdac43f3e#changes-to-choosing-a-browsing-context

Differential Revision: https://phabricator.services.mozilla.com/D66433
2020-03-17 16:39:27 +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
Tim Huang
d633e61059 Bug 1621282 - Fix the issue that CookieJarSettings is not synced to the WindowContext. r=dimi,Ehsan
We sync the CookieJarSettings to the WindowContext in
Document::StartDocumentLoad(). This is incorrect because the inner
window hasn't been set to the document in
Document::StartDocumentLoad(). So, the CookieJarSettings doesn't be
synced properly to the WindowContext.

This patch fixes this issue by changing the place where we do the sync. It
changes it to do the sync at the end of
nsGlobalWindowOuter::SetNewDocument() where the inner window and the
window context are both ready for the document.

Differential Revision: https://phabricator.services.mozilla.com/D66207
2020-03-10 22:03:03 +00:00
Dimi Lee
54edc8bc17 Bug 1620602 - P3. Pass parent window's BrowsingContext to AllowAccessFor r=timhuang,Ehsan
This patch doesn't make ContentBlocking::AllowAccessFor fission
compatible. This is more like a prerequisite work.

Differential Revision: https://phabricator.services.mozilla.com/D65729
2020-03-10 20:28:42 +00:00
Ehsan Akhgari
ad14267240 Bug 1620322 - Part 8: Rename AntiTrackingCommon to ContentBlocking; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D65821
2020-03-09 23:36:39 +00:00
Ehsan Akhgari
97ef8b6e0b Bug 1620322 - Part 5: Refactor the code for calculating the permission type string to AntiTrackingUtils; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D65818
2020-03-09 23:36:44 +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
d7d656e700 Bug 1620322 - Part 8: Rename AntiTrackingCommon to ContentBlocking; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D65821
2020-03-09 18:12:40 +00:00
Ehsan Akhgari
dca9bb4b2f Bug 1620322 - Part 5: Refactor the code for calculating the permission type string to AntiTrackingUtils; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D65818
2020-03-09 18:12:33 +00: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
eaebe39024 Bug 1620322 - Part 8: Rename AntiTrackingCommon to ContentBlocking; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D65821
2020-03-09 10:23:07 +00:00
Ehsan Akhgari
49887ecb23 Bug 1620322 - Part 5: Refactor the code for calculating the permission type string to AntiTrackingUtils; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D65818
2020-03-09 10:21:15 +00: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
Boris Zbarsky
d1a2b382d3 Bug 1448992. Get rid of nsXPCComponentsBase. r=bholley
Differential Revision: https://phabricator.services.mozilla.com/D65737
2020-03-06 17:40:57 +00:00
Alastor Wu
4d9c04e46d Bug 1577890 - part9 : remove unused suspend types. r=baku
We won't need these suspend states anymore which were used for media control and audio focus on Fennec.

Differential Revision: https://phabricator.services.mozilla.com/D65265
2020-03-05 06:17:41 +00:00
Tim Huang
37f162c69d Bug 1616570 - Part 1: Rename CookieSettings to CookieJarSettings. r=Ehsan
Given that we are going to add ContentBlockingAllowList in
CookieSettings, so CookieSettings will be responsible for more stuff than the
cookie behavior and cookie permission. We should use a proper name to
reflect the purpose of it. The name 'CookieSettings' is misleading that
this is only for cookie related stuff. So, we decide to rename
'CookieSettins' to 'CookieJarSettings' which serves better meaning here.

Differential Revision: https://phabricator.services.mozilla.com/D63935
2020-03-04 08:59:08 +00:00
Henri Sivonen
825c84d559 Bug 1618803 - Remove nsFocusManager::SetActiveWindowWithCallerType. r=NeilDeakin
Differential Revision: https://phabricator.services.mozilla.com/D64727
2020-03-02 09:52:58 +00:00
Matt Woodrow
3dbda6eae9 Bug 1615966 - Try to compute topWindowURI/contentblockingallowlistprincipal in the parent process for DocumentChannel. r=nika,Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D63041
2020-03-01 19:25:01 +00:00
Boris Zbarsky
03260abc1d Bug 911444 part 4. Expose a print method on PDF viewer windows. r=bholley
The method is exposed only if the consumer has the same principal as the PDF
would have if it were not getting the PDF viewer treatment.

The method just calls the print() method in the PDF viewer window.

It's enough to expose this on nsOuterWindowProxy, not RemoteOuterWindowProxy,
because PDF documents end up in the process they would have been in based on
their pre-PDF-viewer principal, since we do process determination in the parent
process but only run the pdfjs stream converter in the content process, once we
have decided which one to use.

Differential Revision: https://phabricator.services.mozilla.com/D63711
2020-02-27 14:54:53 +00:00
Henri Sivonen
9118bbcad7 Bug 1618117 - Use BrowsingContext for activeness check in FocusOuter. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D64299
2020-02-27 13:01:49 +00:00
Kris Maglione
1c9408508b Bug 1609443: Follow-up: Fix null deref in assertion.
Differential Revision: https://phabricator.services.mozilla.com/D64460
2020-02-26 21:29:31 +00:00
Kris Maglione
3b58dc5fe6 Bug 1609443: Part 2 - Fix most dodgy uses of fission.autostart pref. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D64435
2020-02-26 19:43:32 +00:00