Commit Graph

3717 Commits

Author SHA1 Message Date
smolnar
8531f8bf09 Backed out changeset d807fa812d8f (bug 1691214) for causing failures in browser_bug1691214. CLOSED TREE 2021-02-08 13:24:16 +02:00
Emilio Cobos Álvarez
16ef02f359 Bug 1691214 - Take focus from window.open etc even if we're already active. r=hsivonen
With multiple windows, being active doesn't guarantee being in the
foreground window.

Differential Revision: https://phabricator.services.mozilla.com/D104326
2021-02-08 08:01:49 +00:00
Olli Pettay
60c6f03eaf Bug 1683751 - Removing iframes should update history.length r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D100274
2021-02-03 00:02:29 +00:00
Kris Maglione
1c35164c4d Bug 1647519: Reject javascript: requests targeting other content processes. r=nika
Loads targeting cross-process BrowsingContexts are by definition cross-origin,
which should preclude any javascript: loads. While those loads are currently
prevented by principal checks in the final target process, sending IPC
messages for the attempts is unnecessary, and potentially opens a door to
privilege escalation exploits by a compromised content process.

This patch prevents any cross-process load requests from being sent by content
processes, and adds checks in the parent process to kill any (potentially
compromised) content process which attempts to send them.

Differential Revision: https://phabricator.services.mozilla.com/D103529
2021-02-02 22:24:47 +00:00
Brindusan Cristian
96ac923d39 Backed out changeset e4cefba9f87e (bug 1647519) for build bustages in BrowsingContext.cpp. CLOSED TREE 2021-02-03 00:08:53 +02:00
Kris Maglione
f533d213f0 Bug 1647519: Reject javascript: requests targeting other content processes. r=nika
Loads targeting cross-process BrowsingContexts are by definition cross-origin,
which should preclude any javascript: loads. While those loads are currently
prevented by principal checks in the final target process, sending IPC
messages for the attempts is unnecessary, and potentially opens a door to
privilege escalation exploits by a compromised content process.

This patch prevents any cross-process load requests from being sent by content
processes, and adds checks in the parent process to kill any (potentially
compromised) content process which attempts to send them.

Differential Revision: https://phabricator.services.mozilla.com/D103529
2021-02-02 21:46:53 +00:00
Mihai Alexandru Michis
15e3cc11e1 Backed out changeset c0ecccf36d56 (bug 1647519) for causing bustages in BrowsingContext.cpp
CLOSED TREE
2021-02-02 22:47:01 +02:00
Kris Maglione
7731d7d180 Bug 1647519: Reject javascript: requests targeting other content processes. r=nika
Loads targeting cross-process BrowsingContexts are by definition cross-origin,
which should preclude any javascript: loads. While those loads are currently
prevented by principal checks in the final target process, sending IPC
messages for the attempts is unnecessary, and potentially opens a door to
privilege escalation exploits by a compromised content process.

This patch prevents any cross-process load requests from being sent by content
processes, and adds checks in the parent process to kill any (potentially
compromised) content process which attempts to send them.

Differential Revision: https://phabricator.services.mozilla.com/D103529
2021-02-02 20:32:04 +00:00
Brindusan Cristian
a235b9837e Backed out changeset 0395717ea76d (bug 1647519) for build bustages at BrowsingContext.cpp. CLOSED TREE 2021-02-02 22:07:10 +02:00
Kris Maglione
967bbfc75c Bug 1647519: Reject javascript: requests targeting other content processes. r=nika
Loads targeting cross-process BrowsingContexts are by definition cross-origin,
which should preclude any javascript: loads. While those loads are currently
prevented by principal checks in the final target process, sending IPC
messages for the attempts is unnecessary, and potentially opens a door to
privilege escalation exploits by a compromised content process.

This patch prevents any cross-process load requests from being sent by content
processes, and adds checks in the parent process to kill any (potentially
compromised) content process which attempts to send them.

Differential Revision: https://phabricator.services.mozilla.com/D103529
2021-02-02 19:47:12 +00:00
Kris Maglione
d2a262df04 Bug 1685106: Add some missing IsInProcess() checks to nsDocShell. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D103566
2021-02-01 22:09:01 +00:00
Emilio Cobos Álvarez
7f16942679 Bug 1690099 - Move focus for window.open() on a targeted tab. r=hsivonen
That doesn't go through BrowsingContext::InternalLoad. This matches the
behavior of clicking links and the behavior of other browsers.

Differential Revision: https://phabricator.services.mozilla.com/D103720
2021-02-02 14:33:48 +00:00
Gijs Kruitbosch
a63a41d1a8 Bug 1643789 - fix use of alternate URI fixup for middle clicks, context menu clicks, etc., r=nika
Differential Revision: https://phabricator.services.mozilla.com/D103410
2021-02-02 00:27:42 +00:00
Emilio Cobos Álvarez
4218ef78ca Bug 1689853 - Fake a user interaction when handling LOAD_FLAGS_ALLOW_POPUPS. r=edgar
I'll simplify all the popup-blocking setup in a follow-up, but this is
the low-risk change.

Need to add a test for this of course. Kinda baffled we did not have
any.

Differential Revision: https://phabricator.services.mozilla.com/D103571
2021-02-01 14:17:55 +00:00
dluca
47345e3442 Backed out 2 changesets (bug 1689853) for Browser-chrome crash in [@ mozilla::(anonymous namespace)::RunWatchdog(void*)]. CLOSED TREE
Backed out changeset f37f0997d677 (bug 1689853)
Backed out changeset 16c796643d52 (bug 1689853)
2021-02-01 15:18:08 +02:00
Emilio Cobos Álvarez
82d90cb668 Bug 1689853 - Fake a user interaction when handling LOAD_FLAGS_ALLOW_POPUPS. r=edgar
I'll simplify all the popup-blocking setup in a follow-up, but this is
the low-risk change.

Need to add a test for this of course. Kinda baffled we did not have
any.

Differential Revision: https://phabricator.services.mozilla.com/D103571
2021-02-01 10:15:15 +00:00
Nika Layzell
faf9d9907c Bug 1687805 - Part 3: Support submitting form data with noopener enabled, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D103361
2021-01-29 22:15:46 +00:00
Nika Layzell
051b109be1 Bug 1687805 - Part 2: Don't use OpenNoNavigate if noopener is force-enabled, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D103360
2021-01-29 22:15:44 +00:00
Nika Layzell
852a939cce Bug 1682285 - Part 2: Track LOAD_FLAGS_FROM_EXTERNAL separately from LOAD_TYPE, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D103365
2021-01-29 22:06:36 +00:00
Nika Layzell
5afbed67ee Bug 1682285 - Part 1: Split internal and external load flags, r=kmag,necko-reviewers,valentin
Differential Revision: https://phabricator.services.mozilla.com/D103364
2021-01-29 22:06:16 +00:00
Peter Van der Beken
9e0339850d Bug 1674464 - Stop adding entries for about:tabcrashed when SHIP is enabled. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D96383
2021-01-26 12:41:22 +00:00
Henri Sivonen
1d440d9632 Bug 1686463 - Gather telemetry about automatic encoding detection outcomes. r=chutten,emk
Differential Revision: https://phabricator.services.mozilla.com/D102397
2021-01-24 00:11:07 +00:00
Geoff Lankow
8df559622f Bug 1668432 - Add Thunderbird URL schemes to lists of known parent-process schemes. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D99174
2021-01-20 01:09:13 +00:00
Masatoshi Kimura
12c9fd0669 Bug 1685900 - Split internal and external contentPolicyType. r=ckerschb,smaug
Differential Revision: https://phabricator.services.mozilla.com/D101271
2021-01-15 12:07:16 +00:00
Henri Sivonen
dc81bb2634 Bug 1648464 - Add an Autodetect item to the Text Encoding menu. r=emk,chutten,Gijs
Take a step towards replacing the encoding menu with a single menu item that
triggers the autodetection manually. However, don't remove anything for now.

* Add an autodetect item.
* Add telemetry for autodetect used in session.
* Add telemetry for non-autodetect used in session.
* Restore and revise telemetry for how the encoding that is being overridden
  was discovered.

Differential Revision: https://phabricator.services.mozilla.com/D81132
2021-01-14 07:06:53 +00:00
Henri Sivonen
7ca6606f37 Bug 1647310 - Stop storing charset on cache entries. r=necko-reviewers,dragana
Storing the charset on cache entries makes the code path uselessly different
when loading from cache relative to uncached loads. Also, for future
telemetry purposes, caching the charset obscures its original source.

Differential Revision: https://phabricator.services.mozilla.com/D101570
2021-01-15 09:35:56 +00:00
Narcis Beleuzu
30a5f83baa Backed out changeset a52961071dcd (bug 1685900) for Build bustage in nsContentSecurityManager.cpp. CLOSED TREE 2021-01-15 04:04:37 +02:00
Masatoshi Kimura
666d7f8e2b Bug 1685900 - Split internal and external contentPolicyType. r=ckerschb,smaug
Differential Revision: https://phabricator.services.mozilla.com/D101271
2021-01-15 04:02:41 +02:00
Dorel Luca
922d64bb4f Backed out changeset a52961071dcd (bug 1685900) for Build bustage in nsContentSecurityManager.cpp. CLOSED TREE 2021-01-15 02:45:34 +02:00
Masatoshi Kimura
fd94179ca1 Bug 1685900 - Split internal and external contentPolicyType. r=ckerschb,smaug
Differential Revision: https://phabricator.services.mozilla.com/D101271
2021-01-14 20:44:54 +00:00
Olli Pettay
f622614a72 Bug 1682394 - Consider to not check *unload event listeners for bfcache, r=jesup
Differential Revision: https://phabricator.services.mozilla.com/D99716
2021-01-07 23:43:44 +00:00
Razvan Maries
3999c5d799 Backed out changeset 8f99f3809630 (bug 1683220) for performance regression (bug 1684434). CLOSED TREE 2021-01-07 14:55:07 +02:00
Nika Layzell
e014f17874 Bug 1680418 - avoid clobbering shared state in same-document navigations, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D100166
2021-01-05 13:31:27 +00:00
Emilio Cobos Álvarez
2ca4fbcf9b Bug 1684490 - Check an in-process window context for user interaction. r=smaug,edgar
In the case we click a link from inside the frame, we don't want to
check for activation from the parent window but ourselves.

It feels like using the sourceWindowContext for these checks is always
the right thing to do, but it's not always possible if we set the
location.href from an out-of-process parent. In this case, we fall back
to consuming user activation on the iframe itself. This is tested in
browbrowser_protocol_ask_dialog.js when run with fission enabled.

We could consider making the user activation stuff more
multiprocess-friendly, but it's not clear to me it's worth it for this
particular edge case.

Differential Revision: https://phabricator.services.mozilla.com/D100578
2021-01-04 20:54:07 +00:00
Narcis Beleuzu
63f58ff8b8 Backed out 2 changesets (bug 1684490) as per emilio`s request
Backed out changeset 1f44b3e9ec62 (bug 1684490)
Backed out changeset 7ad6088bb2c2 (bug 1684490)
2021-01-04 23:51:15 +02:00
Emilio Cobos Álvarez
e00221de91 Bug 1684490 - Check an in-process window context for user interaction. r=smaug,edgar DONTBUILD
In the case we click a link from inside the frame, we don't want to
check for activation from the parent window but ourselves.

It feels like using the sourceWindowContext for these checks is always
the right thing to do, but it's not always possible if we set the
location.href from an out-of-process parent. In this case, we fall back
to consuming user activation on the iframe itself. This is tested in
browbrowser_protocol_ask_dialog.js when run with fission enabled.

We could consider making the user activation stuff more
multiprocess-friendly, but it's not clear to me it's worth it for this
particular edge case.

Differential Revision: https://phabricator.services.mozilla.com/D100578
2021-01-04 20:54:07 +00:00
Andi-Bogdan Postelnicu
b0b5f1eaa8 Bug 1683532 - Make docshell buildable outside of unified-build environment. r=sg
Differential Revision: https://phabricator.services.mozilla.com/D100205
2021-01-04 14:18:37 +00:00
Steve Fink
3df2fad2b1 Bug 1683220 - Remove nsJSContext::MaybeRunNextCollectorSlice entirely r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D96209
2020-12-21 17:23:26 +00:00
Yaron Tausky
31293229ae Bug 1675097 - Use the correct sandboxing flags for initial about:blank r=asuth,smaug
Differential Revision: https://phabricator.services.mozilla.com/D99237
2020-12-16 13:06:56 +00:00
Masatoshi Kimura
279bad6dbb Bug 1682103 - Make nsContentPolicyType a CEnum type. r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D99580
2020-12-16 11:36:47 +00:00
Sean Feng
401de7849b Bug 1662265 - Fix input events handling for sync XHR when both TaskController and e10s are enabled r=smaug
There are two issues in our current setup

1) Input events which are occurring in the same tab are going to be lost
because sync XHR. We have event handling suppression for synx XHR, so input
events are going to be discarded.

2) Input events that are happening in another tab (same process as the
synx XHR tab) are not going to be delayed. This is not correct since
sync XHR should block the Javascript execution.

This patches fixes the above cases for when both TaskController and e10s are
enabled by suspending the InputTaskManager during sync XHR, which
delays the input event handling and keeps the events around.

Differential Revision: https://phabricator.services.mozilla.com/D90780
2020-12-15 01:33:24 +00:00
Peter Van der Beken
a1af39795c Bug 1681729 - Pass the right value for aCloneChildren to AddChildSHEntryHelper with SHIP. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D99481
2020-12-15 15:02:33 +00:00
Kris Maglione
9e07a6556c Bug 1672479: Fix beforeunload handling in location.refresh under SHiP. r=peterv
Per spec, whenever a "beforeunload" event handler which would affect a
`location.reload()` call exists, it must be called before the `reload()` call
returns. If a handler requests to block the navigation and we choose to
display a confirmation prompt, that must also be displayed before the call
returns.

With session history in parent, though, that currently does not happen,
because `location.reload()` triggers an async IPC call to the parent process,
and only attempts the actual reload (and thus beforeunload dispatch and
prompting) once it returns, which is too late to affect the caller.

This patch changes the handling in this case to manually perform permit unload
checks before taking an async code path. This still leaves the opportunity for
session history handlers in the parent to cancel the load asynchronously, but
that doesn't violate any spec-defined behavior.

Differential Revision: https://phabricator.services.mozilla.com/D94354
2020-12-14 21:25:46 +00:00
Olli Pettay
096f64cd95 Bug 1671839 - [Fission] Fix and re-enable back.py and navigate.py for Fission, r=peterv
I think there could be still other issues with persist handling (or at least it could be simplified),
but this should be pretty much the minimal patch to fix the issue when
about:newtab url is changed to about:blank (without a redirect, but magical about: handling).
So we need to check persisted handling later than currently.

I'd prefer to land something like this first and then consider if there are better ways to handle
both about: url changes and proper redirects.

Depends on D93899

Differential Revision: https://phabricator.services.mozilla.com/D98871
2020-12-14 14:37:25 +00:00
Emilio Cobos Álvarez
136e604164 Bug 1635914 - Move active flag handling explicitly to BrowsingContext. r=nika
And have it mirror in the parent process more automatically.

The docShellIsActive setter in the browser-custom-element side needs to
be there rather than in the usual DidSet() calls because the
AsyncTabSwitcher code relies on getting an exact amount of notifications
as response to that specific setter. Not pretty, but...

BrowserChild no longer sets IsActive() on the docshell itself for OOP
iframes. This fixes bug 1679521. PresShell activeness is used to
throttle rAF as well, which handles OOP iframes nicely as well.

Differential Revision: https://phabricator.services.mozilla.com/D96072
2020-12-11 15:43:19 +00:00
Christoph Kerschbaumer
2d6f6ae1e6 Bug 1681510: Remove unused argument aPrincipal from CopyFavicon() in Pcontent.ipdl r=nika
Differential Revision: https://phabricator.services.mozilla.com/D99226
2020-12-10 05:53:17 +00:00
Emilio Cobos Álvarez
b747e0757e Bug 1680721 - Grant a single iframe without user interaction to top windows. r=smaug,johannh
Only for top windows because for nested iframes they could get around
this without being noticed by reloading themselves which is not great.

Differential Revision: https://phabricator.services.mozilla.com/D98775
2020-12-08 10:15:18 +00:00
Simon Giesecke
fbb9c742c8 Bug 1679272 - Include ScopeExit.h exactly where used. r=andi
Differential Revision: https://phabricator.services.mozilla.com/D98888
2020-12-07 14:25:59 +00:00
Razvan Maries
c641d8ebcd Backed out changeset 432c83951167 (bug 1662265) for perma failures on test_sync_xhr_event_handling_switch_bcg.html. CLOSED TREE 2020-12-03 23:03:05 +02:00
Sean Feng
35929d7fef Bug 1662265 - Fix input events handling for sync XHR when both TaskController and e10s are enabled r=smaug
There are two issues in our current setup

1) Input events which are occurring in the same tab are going to be lost
because sync XHR. We have event handling suppression for synx XHR, so input
events are going to be discarded.

2) Input events that are happening in another tab (same process as the
synx XHR tab) are not going to be delayed. This is not correct since
sync XHR should block the Javascript execution.

This patches fixes the above cases for when both TaskController and e10s are
enabled by suspending the InputTaskManager during sync XHR, which
delays the input event handling and keeps the events around.

Differential Revision: https://phabricator.services.mozilla.com/D90780
2020-12-03 03:13:04 +00:00