Commit Graph

3809 Commits

Author SHA1 Message Date
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
Emilio Cobos Álvarez
354bc9602d Bug 1679456 - Use transient user activation for iframe external protocol blocking. r=smaug,edgar
I think this allows us to remove TryUsePopupOpeningToken (which is a similar
concept to consuming user activation), and also the ad-hoc <iframe> timing
thing we have from bug 1514547, which should be covered by the user activation
timeout.

Depends on D97640

Differential Revision: https://phabricator.services.mozilla.com/D98020
2020-11-30 16:16:41 +00:00
Simon Giesecke
a9f246233d Bug 1673931 - Remove dependency of BindingUtils.h on Document.h.
Differential Revision: https://phabricator.services.mozilla.com/D95048

Depends on D95047
2020-11-23 16:08:03 +00:00
Simon Giesecke
eae3689379 Bug 1673931 - Avoid including Document.h from header files. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D95046

Depends on D95045
2020-11-23 16:07:43 +00:00
Simon Giesecke
46908cfb51 Bug 1660470 - Add missing include directives/forward declarations. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D87865
2020-11-23 16:21:38 +00:00
Johann Hofmann
6bbc0f6169 Bug 1650095 - Part 4 - For Fission, reset SHEntryHasUserInteraction cache in the parent when adding/updating SH entries. r=smaug
When re-enabling the test case blocked by bug 1670933 it became apparent that we were not allowing
session history entries to be marked with user interaction when the SH entry was created by navigation
through a sub-frame. The code that we had for this only covered updating SH entries after pushState etc.,
not adding new entries for document loads.

When SH lives in the child this is easier to manage in nsDocShell, but with Fission it probably makes sense
to move this code to the parent.

Differential Revision: https://phabricator.services.mozilla.com/D97421
2020-11-18 23:42:46 +00:00
Johann Hofmann
c6d76d6c06 Bug 1650095 - Part 2 - Implement SessionHistoryEntry::Get/SetHasUserInteraction. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D93346
2020-11-18 11:51:00 +00:00
Gerald Squelart
a3b5f1a33e Bug 1675409 - Removed now-unused ProfilerMarkerPayload and all dependencies - r=gregtatum,necko-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D96054
2020-11-18 21:56:57 +00:00
Razvan Maries
4c8d4ec411 Backed out 23 changesets (bug 1675409) for build bustages on Preferences.cpp. CLOSED TREE
Backed out changeset c1a131a55767 (bug 1675409)
Backed out changeset 47d210802a5d (bug 1675409)
Backed out changeset e8ebb1c58d30 (bug 1675409)
Backed out changeset 69a1e9aeff2a (bug 1675409)
Backed out changeset 68f330b387a8 (bug 1675409)
Backed out changeset e4750d9ef5a1 (bug 1675409)
Backed out changeset bb6bb71e5ab3 (bug 1675409)
Backed out changeset 988d7f4716df (bug 1675409)
Backed out changeset ca41382e891c (bug 1675409)
Backed out changeset 90f3fbbbbeda (bug 1675409)
Backed out changeset 9b109d61a6f6 (bug 1675409)
Backed out changeset 3dd66abfdaa2 (bug 1675409)
Backed out changeset 44181df5f0db (bug 1675409)
Backed out changeset bb2603d947fc (bug 1675409)
Backed out changeset 97055cf20a56 (bug 1675409)
Backed out changeset f88fcf09de0d (bug 1675409)
Backed out changeset 7963e1c49786 (bug 1675409)
Backed out changeset 4c379c1061c3 (bug 1675409)
Backed out changeset b8be8ae7da63 (bug 1675409)
Backed out changeset 0b90aa89421e (bug 1675409)
Backed out changeset c10fb46467c9 (bug 1675409)
Backed out changeset 894ac233b290 (bug 1675409)
Backed out changeset 075d1d8e34c2 (bug 1675409)
2020-11-18 20:06:28 +02:00