Commit Graph
113 Commits
Author SHA1 Message Date
Sandor Molnar ca978e2606 Backed out changeset 65b82edb2b88 (bug 1888729) for causing build bustages @ CloseWatcherManager.h CLOSED TREE 2024-08-21 19:01:23 +03:00
keithamus cee439094e Bug 1888729 - Implement CloseWatcher interface r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D206169
2024-08-21 13:49:38 +00:00
Tom Schuster f20ecbedcd Bug 1875466 - Remove nsContentUtils::ShouldHideObjectOrEmbedImageDocument. r=emilio
Depends on D199114

Differential Revision: https://phabricator.services.mozilla.com/D199115
2024-01-22 14:26:10 +00:00
Tooru Fujisawa 95bdb671e8 Bug 1873330 - Part 4: Add UserActivation::Modifiers getters. r=smaug
In order to use the modifiers in nsGlobalWindowOuter::OpenInternal, add accessor
methods to BrowsingContext, Document, and WindowContext.
Those accessors behave in the same way as ConsumeTransientUserGestureActivation
and RevisePopupAbuseLevel, except for checking the PopupBlocker state.

Differential Revision: https://phabricator.services.mozilla.com/D197862
2024-01-11 17:24:02 +00:00
Tooru Fujisawa 293b0ae3cb Bug 1873330 - Part 3: Store modifiers for user activation with input event. r=smaug
Depends on D197860

Differential Revision: https://phabricator.services.mozilla.com/D197861
2024-01-11 17:24:02 +00:00
Tooru Fujisawa 78a84c6044 Bug 1873330 - Part 2: Add UserActivation::Modifiers and UserActivation::StateAndModifiers. r=smaug
Associate modifier keys to user activation, in order to use the modifiers
in `window.open` initiated by the user activation.

Depends on D197859

Differential Revision: https://phabricator.services.mozilla.com/D197860
2024-01-11 17:24:01 +00:00
Tim Huang 0ad0e85c02 Bug 1824222 - Add OverriddenFingerprintingSettings to WindowContext. r=nika,tjr
This patch adds a field called OverriddenFingerprintingSettings to
WindowContext. The OverriddenFingerprintingSettings represents the
granular overrides of fingerprinting protections due to WebCompat for
the given context. The value can be Nothing() if there is no overrides
defined for the context.

Differential Revision: https://phabricator.services.mozilla.com/D188758
2023-10-17 22:02:29 +00:00
Benjamin VanderSloot 97b33d4ddc Bug 1848783, part 5 - Move UsingStorageAccess onto the WindowContext to fix the storage access check for resource reuqests within subdocuments without active storage access but with permission r=timhuang,nika
Differential Revision: https://phabricator.services.mozilla.com/D187138
2023-09-21 01:48:49 +00:00
Iulian Moraru 498b92b571 Backed out 9 changesets (bug 1848783, bug 1837168, bug 1835920) for causing multiple failures. CLOSED TREE
Backed out changeset ab1717421318 (bug 1848783)
Backed out changeset de5e1715c877 (bug 1848783)
Backed out changeset 1f64106e6667 (bug 1848783)
Backed out changeset e082ba20bbb2 (bug 1848783)
Backed out changeset cb56c5d713bf (bug 1848783)
Backed out changeset 735161c251e4 (bug 1848783)
Backed out changeset 3d1468ac6e84 (bug 1848783)
Backed out changeset 9ff5b92032cb (bug 1837168)
Backed out changeset 15cfb0c4f048 (bug 1835920)
2023-09-20 22:29:41 +03:00
Benjamin VanderSloot e0441af918 Bug 1848783, part 5 - Move UsingStorageAccess onto the WindowContext to fix the storage access check for resource reuqests within subdocuments without active storage access but with permission r=timhuang,nika
Differential Revision: https://phabricator.services.mozilla.com/D187138
2023-09-20 16:14:40 +00:00
Cosmin Sabou 805246368b Backed out 9 changesets (bug 1837168, bug 1835920, bug 1848783) for causing storage-access-api wpt failures. CLOSED TREE
Backed out changeset 3fd66f8f5d65 (bug 1848783)
Backed out changeset a96afb6d05d6 (bug 1848783)
Backed out changeset 117132b000ac (bug 1848783)
Backed out changeset 3a14281b7d72 (bug 1848783)
Backed out changeset 7dc5f794364d (bug 1848783)
Backed out changeset 84ca25a557a6 (bug 1848783)
Backed out changeset 8bb89cf9587e (bug 1848783)
Backed out changeset 15a005bef445 (bug 1837168)
Backed out changeset a97bc1fd6637 (bug 1835920)
2023-09-20 04:41:18 +03:00
Benjamin VanderSloot b0352105fc Bug 1848783, part 5 - Move UsingStorageAccess onto the WindowContext to fix the storage access check for resource reuqests within subdocuments without active storage access but with permission r=timhuang,nika
Differential Revision: https://phabricator.services.mozilla.com/D187138
2023-09-19 21:03:08 +00:00
Narcis Beleuzu cf8743b301 Backed out 9 changesets (bug 1835920, bug 1848783, bug 1837168) for assertion failure on PermissionManager.cpp . CLOSED TREE
Backed out changeset 589241e4e1f6 (bug 1848783)
Backed out changeset 7446d643420d (bug 1848783)
Backed out changeset 1b5a505a9bc6 (bug 1848783)
Backed out changeset bfd4df9014d7 (bug 1848783)
Backed out changeset 01f053bbdb97 (bug 1848783)
Backed out changeset e1b829bfb8d1 (bug 1848783)
Backed out changeset f17d58a27f3c (bug 1848783)
Backed out changeset d21bdbf5baf1 (bug 1837168)
Backed out changeset a2d17b5958b8 (bug 1835920)
2023-09-19 16:15:26 +03:00
Benjamin VanderSloot 218d63a6cc Bug 1848783, part 5 - Move UsingStorageAccess onto the WindowContext to fix the storage access check for resource reuqests within subdocuments without active storage access but with permission r=timhuang,nika
Differential Revision: https://phabricator.services.mozilla.com/D187138
2023-09-19 11:11:19 +00:00
Malte Juergens 9efcf29fd2 Bug 1838183: Include HTTPS-First in current HTTPS-Only exemption options on site identity pane r=freddyb,fluent-reviewers
Depends on D182322

Differential Revision: https://phabricator.services.mozilla.com/D181356
2023-07-11 11:07:24 +00:00
Tom Schuster f06154807a Bug 1818250 - Add ShouldResistFingerprinting to WindowContext. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D172271
2023-03-20 18:52:25 +00:00
Andreas Farre 4f01d03c5a Bug 1745645 - Set the value for HasActivePeerConnections early. r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D165400
2022-12-22 16:53:54 +00:00
Olli Pettay 048bd344c4 Bug 1777574, automate CC zone handling, r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D155084
2022-09-07 11:22:51 +00:00
Sean Feng 27b1c54544 Bug 1750034 - Remove lazyload telemetry related code r=emilio
We have decided to use 600px in all directions, there's no need
to keep the telemetry stuff around.

Differential Revision: https://phabricator.services.mozilla.com/D155879
2022-08-30 16:00:11 +00:00
Sean Feng 1307dfe1f4 Bug 1785227 - Consider all browsing context as non-synthetic when we don't want to hide image document for <object> and <embed> r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D154997
2022-08-18 20:04:59 +00:00
Andreas Farre 3cab76dcc7 Bug 1595491 - Part 1: Make <embed> and <object> behave more like <iframe>. r=smaug,emilio
By making image loading in <embed> and <object> behave more like when
an <iframe> loads an image, we can make sure that the synthetic
document generated is process switched if the image is cross
origin. This is done by making image loading in nsObjectLoadingContent
follow the document loading path.

We also make sure that we pass the image size back to the embedder
element to not get stuck with the intrinsic size.

To avoid named targeting being able to target these synthetic
documents, as well as showing up in `Window.frames` and being counted
in `Window.length`, we keep a filtered list of non-synthetic browsing
contexts for that use-case.

This feature is controlled by two prefs:

* browser.opaqueResponseBlocking.syntheticBrowsingContext

  This triggers the creation of synthetic documents for images loaded
  in <object> or embed.

* browser.opaqueResponseBlocking.syntheticBrowsingContext.filter

  This turns on the filtering of synthetic browsing contexts in named
  targeting, `Window.length` and `Window.frames`.

Differential Revision: https://phabricator.services.mozilla.com/D148117
2022-08-16 16:42:58 +00:00
Mirko Brodesser 2cfdaa80da Bug 1744524: part 2) Add WindowContext::GetUserGestureStart and remove WindowContext::LastUserGestureTimeStamp. r=edgar
Preparation for part 3).

The return type of `GetUserGestureStart` is a class, the return type of
`LastUserGestureTimeStamp` a `double`. Hence using the former is safer.

Differential Revision: https://phabricator.services.mozilla.com/D148758
2022-06-16 14:43:40 +00:00
Edgar Chen c2b878aacd Bug 1766582 - Expose last user gesture timestamp; r=sgalich,smaug
Differential Revision: https://phabricator.services.mozilla.com/D144590
2022-04-27 08:26:56 +00:00
Nika Layzell 6b07821859 Bug 1754037 - Part 3c: Automatically update all ParamTraits implementations, r=ipc-reviewers,media-playback-reviewers,bryce,mccr8
Automatically generated rewrites of all ParamTraits and IPDLParamTraits
implementations in-tree to use IPC::Message{Reader,Writer}.

Differential Revision: https://phabricator.services.mozilla.com/D140004
2022-03-04 15:39:41 +00:00
Toshihito Kikuchi 5723f6d9e6 Bug 1743663 - Remove windowContext.hasActivePeerConnections. r=peterv
TabUnloader.jsm can directly call windowGlobal.hasActivePeerConnections(),
so windowContext.hasActivePeerConnections is not needed.

Differential Revision: https://phabricator.services.mozilla.com/D132654
2021-12-16 16:14:13 +00:00
Toshihito Kikuchi e58a3e3b87 Bug 1734099 - Never unload tabs with active RTCPeerConnection instances. r=peterv,jesup
This patch makes sure the Tab Unloading feature does not unload tabs that have
active peer connections not to disrupt browsing experience based on WebRTC peer
connections.

To enable JS code to access the number of active peer connections, this patch
moves `nsPIDOMWindowInner::mTotalActivePeerConnections` to `WindowGlobalParent`.

Differential Revision: https://phabricator.services.mozilla.com/D128761
2021-11-18 22:59:12 +00:00
Nika Layzell 0eeb1388f2 Bug 1722880 - Part 1: Add IsInBFCache to WindowContext, and make it non-SHIP compatible, r=smaug,necko-reviewers,dragana
This field will be useful to JS code such as JSWindowActors which need to be
able to detect when their WindowContext is no longer active.

Differential Revision: https://phabricator.services.mozilla.com/D124098
2021-09-03 15:26:13 +00:00
Nika Layzell 9feface235 Bug 1728605 - Part 2: Rename misleading {Window,Browsing}Context::IsCached, r=smaug
This method actually tracks whether the context is current, so it has been
renamed, and the behaviour has been inverted.

Depends on D124210

Differential Revision: https://phabricator.services.mozilla.com/D124211
2021-09-02 14:15:04 +00:00
Andi-Bogdan Postelnicu 45c2f471e5 Bug 1519636 - Reformat recent changes to the Google coding style. r=necko-reviewers,emilio
Updated with clang-format version 12.0.0 (taskcluster-FZRqPXamQIOU_i4hF0cAcg)

Differential Revision: https://phabricator.services.mozilla.com/D117905
2021-06-17 11:00:22 +00:00
Kris Maglione 799bf19224 Bug 1646560: Part 2 - Move allowJavascript and friends from DocShell to BrowsingContext and WindowContext. r=jdescottes,nika,geckoview-reviewers,devtools-backward-compat-reviewers,agi
This is slightly complicated by the fact that the editor code wants to be able
to set this from the content process, so we really need separate
BrowsingContext and WindowContext flags, the latter of which can be set by the
owning process.

Differential Revision: https://phabricator.services.mozilla.com/D114899
2021-06-15 04:40:11 +00:00
Nika Layzell bbc36a2e5c Bug 1699626 - Downgrade mWindowGlobalChild to a weak pointer, r=smaug
Theoretically this change shouldn't be necessary, however frequent
intermittents suggest that there are still cases where holding a strong
reference here can lead to memory leaks.

Differential Revision: https://phabricator.services.mozilla.com/D109445
2021-03-24 14:11:49 +00:00
Nika Layzell e84c3c4778 Bug 1675820 - Part 4: Track WindowGlobalChild in WindowContext, r=kmag
This allows for the WindowGlobalChild getter in WindowContext to be acquired
more efficiently without performing hashtable lookups, and should generally
simplify things.

The patch also removes the unnecessary XRE_IsContentProcess assertions, and
removes the global hashtable for tracking WindowGlobalChild instances which is
no longer necessary.

Differential Revision: https://phabricator.services.mozilla.com/D108120
2021-03-18 19:24:50 +00:00
Simon Giesecke c7a36b5d58 Bug 1634281 - Use nsTHashMap instead of nsDataHashtable. r=xpcom-reviewers,necko-reviewers,jgilbert,nika,valentin
Note that this patch only transforms the use of the nsDataHashtable type alias
to a directly equivalent use of nsTHashMap. It does not change the specification
of the hash key type to make use of the key class deduction that nsTHashMap
allows for in some cases. That can be done in a separate step, but requires more
attention.

Differential Revision: https://phabricator.services.mozilla.com/D106008
2021-03-10 10:47:47 +00:00
Simon Giesecke 7c075f27d9 Bug 1691913 - Rename nsBaseHashtable::GetOrInsert(With) to LookupOrInsert(With). r=xpcom-reviewers,necko-reviewers,jgilbert,dragana,nika
The functions should be called "Lookup" rather than "Get" because they return
a DataType& (rather than UserDataType).

Differential Revision: https://phabricator.services.mozilla.com/D105472
2021-02-26 09:11:45 +00:00
Nika Layzell 83c189c2cf Bug 1691410 - Add support for reverting racy changes in CanSet, r=kmag
In some cases, a content process may think they should be able to make a change
to a synced field, but in the meantime something in the parent process has
changed and the change can no longer be applied. This was the cause of a number
of issues around the in-flight process ID, and can cause issues such as crashes
if the CanSet method was made too strict.

This patch introduces a new possible return type from `CanSet` which allows
requesting a `Revert`. A reverted field change will either be cancelled at the
source (if the CanSet fails in the setting process), or will be cancelled by
sending a new transaction back to the source process reverting the change to
ensure consistency.

In addition, some additional logging is added which made it easier to locate the
underlying bug and verify the correctness of the change.

The current primary use-case for this new feature is the CurrentInnerWindowId
field which can be updated by the previous process' docshell after the parent
process has already performed a switch to a new process. This can lead to the
current WindowContext being inaccurate for a BrowsingContext in some edge cases
as we allow the flawed set due the in-flight process ID matching.

This patch changes the logic to no longer check the in-flight process ID, and
instead revert any changes to the CurrentInnerWindowId field coming from a
process which is not currently active in the BrowsingContext.

No tests were added as it is very timing-sensitive, and difficult to create the
specific scenario, however without these changes my patch for bug 1663757
consistently causes geckoview-junit crashes due to currentWindowGlobal being
incorrect.

Differential Revision: https://phabricator.services.mozilla.com/D105553
2021-02-20 03:55:06 +00:00
Sean Feng 51dd37c76b Bug 1692350 - Implement a telemetry probe to collect page load data for documents that use lazyload r=emilio,chutten
Differential Revision: https://phabricator.services.mozilla.com/D104912
2021-02-17 22:25:02 +00:00
Mihai Alexandru Michis 4c0ea6b213 Backed out changeset 6a0dcd8f4e3e (bug 1692350) for causing crashes in WindowContext.
CLOSED TREE
2021-02-17 21:02:59 +02:00
Sean Feng be7a7a24d9 Bug 1692350 - Implement a telemetry probe to collect page load data for documents that use lazyload r=emilio,chutten
Differential Revision: https://phabricator.services.mozilla.com/D104912
2021-02-17 17:17:52 +00:00
Andreas Farre 73ab5df607 Bug 1612147 - Don't store FeaturePolicy in BrowsingContext. r=smaug
Syncing the container FeaturePolicy across BrowsingContext is actually
a bit more heavy-handed than necessary. We only ever need a container
FeaturePolicy when inheriting a FeaturePolicy in exactly the document
the container contains. Not every process that the tree the container
is a part of. So instead of storing a FeaturePolicy in a synced field,
we manually send it to the correct WindowGlobalChild (which
corresponds to a document) and retrieve it from there.

Differential Revision: https://phabricator.services.mozilla.com/D61479
2021-01-14 11:15:24 +00:00
Razvan Maries 50e24c409f Backed out changeset 7d10fe1f2f2e (bug 1684490) for causing bug 1685106. a=backout DONTBUILD 2021-01-05 17:59:54 +02:00
Emilio Cobos Álvarez 1c606f2c8f Bug 1684490 - Make some BrowsingContext/WindowContext asserts DIAGNOSTIC_ASSERTS. r=edgar
These would've caught the issue a lot sooner.

Differential Revision: https://phabricator.services.mozilla.com/D100579
2021-01-04 20:54:15 +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 9e669d0c2e Bug 1684490 - Make some BrowsingContext/WindowContext asserts DIAGNOSTIC_ASSERTS. r=edgar DONTBUILD
These would've caught the issue a lot sooner.

Differential Revision: https://phabricator.services.mozilla.com/D100579
2021-01-04 20:54:15 +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
Dimi Lee 7a3e429320 Bug 1582499 - P1. Add isLocalIP to WindowContext r=nika
When a user clicks a form, the password manager popups a warning when the
form is not in a secure context. However, there is an exception when
a form is in an iframe. When both the url of the iframe and the top-level
are both local ip addresses, we consider it is safe.

This patch adds isLocalIP to WindowContext and WindowGlobalActor.webidl
so password manager can identify whether the top-level url is a local ip
address under fission.

Differential Revision: https://phabricator.services.mozilla.com/D99041
2020-12-10 20:45:54 +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 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 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
Sylvestre Ledru 9eb066b684 Bug 1519636 - Reformat recent changes to the Google coding style r=andi,necko-reviewers,dragana
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D92459
2020-10-06 16:12:00 +00:00
julianwels c0d05f3250 Bug 1653026 - Added HTTPS-Only Mode upgrade info to browser UI state. r=mattwoodrow,necko-reviewers,dragana
Differential Revision: https://phabricator.services.mozilla.com/D86566
2020-10-06 00:34:55 +00:00