Commit Graph

1223 Commits

Author SHA1 Message Date
Paul Zuehlcke
c1c045dd0d Bug 1679512 - Move contentBlockingAllowListPrincipal to WindowGlobalParent. r=timhuang,nika
We only use the contentBlockingAllowListPrincipal for excluding sites from content
blocking for top level documents. We don't need it in the content process and should
not compute it for every document.

Differential Revision: https://phabricator.services.mozilla.com/D100781
2021-01-14 20:37:35 +00:00
Dana Keeler
aa81f21079 Bug 1685552 - move certificate subject alternative name processing for error pages from backend to frontend r=bbeurdouche,johannh,baku
This removes nsIX509Cert.subjectAltNames and reduces potential attack surface
by avoiding parsing subject alternative names in C/C++. It also reduces PSM
reliance on NSS types.

Differential Revision: https://phabricator.services.mozilla.com/D101418
2021-01-14 09:58:03 +00:00
Steve Fink
c4d64c2a67 Bug 1685420 - ~nsCOMPtr and related hazard fixes. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D100966
2021-01-12 22:25:07 +00:00
Tom Tung
aa3c5a56be Bug 1685475 - Get cross-origin-isolated state from the scope object when it's a data document and thus don't have a browsing context; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D101327
2021-01-14 13:22: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
Edgar Chen
67a4228c78 Bug 1684837 - Adjust pointer lock request handling; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D100960
2021-01-08 21:18:07 +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
Noemi Erli
79825eed0b Backed out changeset 4de429b6ad64 (bug 1572798) for causing browser chrome failures CLOSED TREE 2021-01-06 07:05:57 +02:00
Emilio Cobos Álvarez
984930d9f0 Bug 1572798 - Should call MaybeActiveMediaComponents from SetScriptGlobalObject if becoming visible. r=bzbarsky,farre
Windows start blocking media by default (see the
media.block-autoplay-until-in-foreground pref).

If the document becomes visible from GetScriptHandlingObject(), we
hand-rolled our own UpdateVisibilityState and didn't call
MaybeActiveMediaComponents (which unblocks media playback).

It couldn't call it there before since given content docshells used
start as active, but now that they don't we can do that and fix the bug.

Differential Revision: https://phabricator.services.mozilla.com/D41438
2021-01-05 23:27:12 +00:00
Bogdan Tara
1eb4f0e97b Backed out 9 changesets (bug 1656107) for frequent assertion failures on layout/style/nsComputedDOMStyle.cpp CLOSED TREE
Backed out changeset 2d9843871809 (bug 1656107)
Backed out changeset 87031ccf6c8e (bug 1656107)
Backed out changeset 1e06017a213c (bug 1656107)
Backed out changeset b51bae240379 (bug 1656107)
Backed out changeset 8d98b76de39a (bug 1656107)
Backed out changeset 0f4ea8cdd34a (bug 1656107)
Backed out changeset 95eeff5318e5 (bug 1656107)
Backed out changeset 469fa7a429c2 (bug 1656107)
Backed out changeset ec3d7e825bc9 (bug 1656107)
2020-12-17 22:19:09 +02:00
Steven MacLeod
c8ca4e40e3 Bug 1656107 - remove unused Document::FindContentForSubDocument. r=farre
Differential Revision: https://phabricator.services.mozilla.com/D98622
2020-12-17 13:54:40 +00:00
Steven MacLeod
fabc645762 Bug 1656107 - remove FindContentForSubDocument use from Document. r=farre
Differential Revision: https://phabricator.services.mozilla.com/D98621
2020-12-16 01:06:57 +00:00
Emilio Cobos Álvarez
fe2b95e111 Bug 1682003 - Avoid UTF-8 -> UTF-16 conversion during CSSOM serialization. r=heycam
This lifts a bunch of string conversions higher up the stack, but allows
us to make the servo code use utf-8 unconditionally, and seemed faster
in my benchmarking (see comment 0).

It should also make a bunch of attribute setters faster too (like
setting .cssText), now that we use UTF8String for them (we couldn't
because we couldn't specify different string types for the getter and
setters).

Differential Revision: https://phabricator.services.mozilla.com/D99590
2020-12-17 14:04:35 +00:00
Paul Zuehlcke
67fa08be13 Bug 1654649 - Deny requestStorageAccess for sites with denied cookie permission. r=timhuang
Differential Revision: https://phabricator.services.mozilla.com/D99802
2020-12-16 16:45:18 +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
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
Simon Giesecke
98272c8edb Bug 1673931 - Avoid including ReferrerPolicyBinding.h from header files. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D97610
2020-12-10 11:09:29 +00:00
Bryce Seager van Dyk
4851d1b5f9 Bug 1675360 - Shutdown MediaKeys when parent inner window is destroyed rather than document. r=karlt
Rework the MediaKeys class to shutdown when its parent inner window is destroyed
rather than the document it's created in. This is done to mitigate the case
where a MediaKeys is created in an about:blank document that has not yet
undergone its async load (i.e. blank document that will stay blank, blank
documents loading to other pages will still clobber their keys on load). This
specifically addresses cases where sites could create an iframe, not wait for
load, create a MediaKeys in the iframe, and then find the keys had become
unusable.

This is achieved by associating MediaKeys instances with their inner window and
having the window notify keys when a window is going to be destroyed. I decided
to use this approach rather than have MediaKeys observe for window destruction
for a few reasons:
- The keys would need to support weak references to use the observer service in
  the desired way. Implementing this interface on the MediaKeys adds a
  non-trivial level of complexity and means the keys would implement the WeakPtr
  interface (already in place prior to this patch) and also the NS weak
  reference interface, which I found confusing.
- If the inner window stores pointers to MediaKeys created in it, it can be self
  aware of if EME activity is taking place within it. The allows us to better
  identify EME activity in documents. Historically one of the ways we'd
  determined EME activity by checking if media elements have MediaKeys attached,
  but this had lead to issues where if MediaKeys are created but not attached
  to a media element we overlook them. With this patch's changes, we can also
  have a document check its inner window to see if there are any MediaKeys. This
  patch uses this to extend our check to avoid bfcaching pages with EME content.
- There appears to be prior art using a similar approach for audio contexts and
  peer connections, which I assume is sensible and I'm not reinventing the wheel
  by following.

Differential Revision: https://phabricator.services.mozilla.com/D98641
2020-12-10 01:03:27 +00:00
Bogdan Tara
70e86098f5 Backed out changeset 98c3e6255c58 (bug 1597600) for browser_installssl.js failures CLOSED TREE 2020-12-07 21:01:50 +02:00
R. Martinho Fernandes
79ef0b5391 Bug 1597600 - make certificate overrides depend on origin attributes r=keeler,geckoview-reviewers,smaug,agi
Differential Revision: https://phabricator.services.mozilla.com/D91962
2020-12-07 17:10:52 +00:00
Emilio Cobos Álvarez
367b9e3c00 Bug 1666739 - Add an optional opacity threshold for visibility hit-test. r=mconley,miko
This is a best-effort thing of course, but so is the rest of the
visibility threshold stuff in practice and this should be good enough.

Differential Revision: https://phabricator.services.mozilla.com/D98360
2020-12-04 00:48:45 +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
946ebdd86e Bug 1678389 - Use transient user activation for <input> file/color picker. r=edgar,smaug
This matches other browsers, see [1], and should fix this and other
similar bugs like bug 1610726.

[1]: https://source.chromium.org/chromium/chromium/src/+/master:third_party/blink/renderer/core/html/forms/file_input_type.cc;l=163;drc=8a5de62dd01360cfe3d150640d3ff4d974bbe842

Differential Revision: https://phabricator.services.mozilla.com/D97640
2020-11-30 16:00:02 +00:00
Paul Zuehlcke
1f7f220dd4 Bug 1654546 - Don't set contentBlockingAllowListPrincipal to NullPrincipal for sandboxed documents. r=timhuang,emilio
Differential Revision: https://phabricator.services.mozilla.com/D98088
2020-11-30 12:31:28 +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
ec58955170 Bug 1673931 - Resolve Document/Element cycle. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D95045

Depends on D94869
2020-11-23 16:07:21 +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
Noemi Erli
460b27e8f6 Backed out changeset b21f364898eb (bug 1678389) for causing Android gv-unit failures CLOSED TREE 2020-11-22 04:24:23 +02:00
Emilio Cobos Álvarez
1581184384 Bug 1678389 - Use transient user activation for <input> file/color picker. r=edgar
This matches other browsers, see [1], and should fix this and other
similar bugs like bug 1610726.

[1]: https://source.chromium.org/chromium/chromium/src/+/master:third_party/blink/renderer/core/html/forms/file_input_type.cc;l=163;drc=8a5de62dd01360cfe3d150640d3ff4d974bbe842

Differential Revision: https://phabricator.services.mozilla.com/D97640
2020-11-22 00:20:03 +00:00
Steven MacLeod
a8a5d5d11c Bug 1585070 - move nsPIDOMWindowOuter::mIsActive to BrowsingContext. r=kmag
A new `BrowsingContext` field 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-11-20 15:16:58 +00:00
Dragana Damjanovic
8ec3d7a16f Bug 1675503 - Add telemetry for the page load time and the time to first paint for sites that support HTTP3 r=smaug,bas
This will be collected for sites that have used HTTP3 and for sites that support HTTP3 but HTTP3 has not been used.

Differential Revision: https://phabricator.services.mozilla.com/D96787
2020-11-17 22:58:29 +00:00
Noemi Erli
bc4586b638 Backed out changeset 18448a7ebf82 (bug 1585070) for causing failures in test_cocoa_window_focus.html CLOSED TREE 2020-11-17 06:09:50 +02:00
Steven MacLeod
9727243f2f Bug 1585070 - move nsPIDOMWindowOuter::mIsActive to BrowsingContext. r=kmag
A new `BrowsingContext` field 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-11-16 22:37:51 +00:00
Steven MacLeod
cc94eb3f9f Bug 1606061 - move TouchEventsOverride to BrowsingContext. r=farre,devtools-backward-compat-reviewers
This change removes docshell's `mTouchEventsOverride` and replaces it
with a new `BrowsingContext` field `TouchEventsOverrideInternal`.
All uses of the old field have been replaced and an override should
now work under fission when there are cross-origin descendent frames.

Differential Revision: https://phabricator.services.mozilla.com/D96414
2020-11-10 15:57:30 +00:00
Sylvestre Ledru
68b806d604 Bug 1674637 - Use nested namespaces in dom/ r=sg,andi
Also add some missing namespace qualifications

Done with:
./mach static-analysis check --checks="-*,modernize-concat-nested-namespaces" --fix dom/
./mach clang-format -p $(hg status dom/|grep ^M|awk '{print $2}')

Differential Revision: https://phabricator.services.mozilla.com/D95456
2020-11-04 17:04:01 +00:00
Butkovits Atila
a6e7dcc53f Backed out changeset c0adbf7522dc (bug 1674637) for bustage on GMPParent.cpp. CLOSED TREE 2020-11-04 10:54:36 +02:00
Sylvestre Ledru
8f709b39e8 Bug 1674637 - Use nested namespaces in dom/ r=sg,andi
Also add some missing namespace qualifications

Done with:
./mach static-analysis check --checks="-*,modernize-concat-nested-namespaces" --fix dom/
./mach clang-format -p $(hg status dom/|grep ^M|awk '{print $2}')

Differential Revision: https://phabricator.services.mozilla.com/D95456
2020-11-04 08:29:00 +00:00
Johann Hofmann
e0f79a853d Bug 941354 - Use innerMostURI on about:{neterror,certerror}. r=prathiksha,baku
This is to prevent issues with parsing the correct hostname for displaying and adding
exceptions for urls like view-source:.

Differential Revision: https://phabricator.services.mozilla.com/D94421
2020-10-27 10:55:51 +00:00
Butkovits Atila
ab81829e80 Backed out changeset 2edd2bd119ff (bug 941354) for browser-chrome related failures. CLOSED TREE 2020-10-26 23:31:58 +02:00
Johann Hofmann
efc757c654 Bug 941354 - Use innerMostURI on about:{neterror,certerror}. r=prathiksha,baku
This is to prevent issues with parsing the correct hostname for displaying and adding
exceptions for urls like view-source:.

Differential Revision: https://phabricator.services.mozilla.com/D94421
2020-10-26 20:12:14 +00:00
Emilio Cobos Álvarez
4a9219ca21 Bug 1665796 - Make sure Document::IsScrollingElement and overflow propagation code agree. r=mats
They got out of sync in bug 1635473.

Differential Revision: https://phabricator.services.mozilla.com/D93117
2020-10-25 10:45:37 +00:00
Emilio Cobos Álvarez
3d5f6d9516 Bug 1672856 - Don't crash when printing with selections pointing to detached nodes. r=jfkthame
In some edge cases involving shadow dom the selection code may get
confused and keep references to inside the shadow root (of <audio> in
this case).

Avoid crashing due to that in the printing code for now, bug.

Bug 1590379 tracks issues with selection handling inside shadow DOM.

Differential Revision: https://phabricator.services.mozilla.com/D94578
2020-10-23 11:01:14 +00:00
Emilio Cobos Álvarez
96044339f2 Bug 1646222 - Don't invalidate vector images as a result of size/display mode changes. r=tnikkel
sizemode/displaymode media queries only affect a given browsing context
tree so there's no need to propagate the change to images in that case.

Differential Revision: https://phabricator.services.mozilla.com/D94422
2020-10-22 09:29:43 +00:00
Denis Palmeiro
d8116c28e2 Bug 1671729 - Gather telemetry on page load and request animation frame callback time r=bas,smaug,Dexter
Current page load telemetry probes are insufficient in performance RUM testing.  FX_PAGE_LOAD_MS_2 will stop the timer when the user switches tabs or navigates off the page, while the current navigation probes include all content including about:blank, about:newtab, moz-extension, etc.  This patch adds support for the following probes which do not suffer from those limitations:

PERF_PAGE_LOAD_TIME_MS
PERF_PAGE_LOAD_TIME_FROM_RESPONSESTART_MS
PERF_DOM_CONTENT_LOADED_TIME_MS
PERF_DOM_CONTENT_LOADED_TIME_FROM_RESPONSESTART_MS
PERF_FIRST_CONTENTFUL_PAINT_MS
PERF_FIRST_CONTENTFUL_PAINT_FROM_RESPONSESTART_MS
PERF_REQUEST_ANIMATION_CALLBACK_PAGELOAD_MS
PERF_REQUEST_ANIMATION_CALLBACK_NON_PAGELOAD_MS

Differential Revision: https://phabricator.services.mozilla.com/D94004
2020-10-21 16:27:30 +00:00
Emilio Cobos Álvarez
f7cc4219e2 Bug 1670876 - Add support for printing selection in shadow dom. r=nordzilla
Recursive the things all :^)

The fix to the "corresponding node" bits in Document.cpp should be
pretty straight-forward. The fix in nsPrintJob is a bit more subtle:

The way printing selection works is literally "select everything else,
then call Selection.deleteFromDocument on that". We need to do the same
with shadow DOM, which involves skipping over shadow trees, and dealing
with selecting bits in ancestor trees as needed.

Note that for multi-range-selection case this technically relies on the
order of the ranges being shadow-tree-inclusive. We don't support
multi-range selection in shadow dom well, afaict, but I've added a
comment to the code to that effect.

Differential Revision: https://phabricator.services.mozilla.com/D93357
2020-10-16 17:36:37 +00:00
Christoph Kerschbaumer
99b03c8878 Bug 1671136: Assert to not use doc.write in system privileged contexts or about: pages. r=freddyb
Differential Revision: https://phabricator.services.mozilla.com/D93485
2020-10-15 17:02:53 +00:00
smolnar
705bd32b38 Backed out changeset 2dff9d72e9ec (bug 1671136) for causing Document.cpp failures. CLOSED TREE 2020-10-15 14:42:40 +03:00
Christoph Kerschbaumer
965b82cb83 Bug 1671136: Assert to not use doc.write in system privileged contexts or about: pages. r=freddyb
Differential Revision: https://phabricator.services.mozilla.com/D93485
2020-10-15 08:22:29 +00:00
Cameron McCormack
fe20869505 Bug 1656114 - Part 5: Report use counters in documents that come out of the bfcache. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D93046
2020-10-11 22:15:06 +00:00