Commit graph

1033 commits

Author SHA1 Message Date
Emilio Cobos Álvarez
f32093456d Bug 1786513 - Make SimpleResizeReflow not flush by default. r=jfkthame,layout-reviewers
Only GeckoMVMContext really needs the flush, to measure scrolled height
afterwards. Do that explicitly.

This shouldn't change behavior, for the most part; there was a preload
test that relied on the flush when changing DPI to start a run really
clean, but other than that this looks green on try.

Should at best be neutral (just code clean-up), or be a performance
improvement.

In a follow-up, we can possibly remove the DelayedResize code from the
view manager, though I need to think how to possibly coalesce the MVM
reflows, so let's not do that yet.

Differential Revision: https://phabricator.services.mozilla.com/D155385
2022-09-01 10:54:24 +00:00
Cristian Tuns
24652e5425 Backed out changeset e29b0fbf77f1 (bug 1786513) for causing mochitest failures on /browser_unified_extensions.js CLOSED TREE 2022-08-26 11:11:46 -04:00
Emilio Cobos Álvarez
7c34c8de9a Bug 1786513 - Make SimpleResizeReflow not flush by default. r=jfkthame,layout-reviewers
Only GeckoMVMContext really needs the flush, to measure scrolled height
afterwards. Do that explicitly.

This shouldn't change behavior, for the most part; there was a preload
test that relied on the flush when changing DPI to start a run really
clean, but other than that this looks green on try.

Should at best be neutral (just code clean-up), or be a performance
improvement.

In a follow-up, we can possibly remove the DelayedResize code from the
view manager, though I need to think how to possibly coalesce the MVM
reflows, so let's not do that yet.

Differential Revision: https://phabricator.services.mozilla.com/D155385
2022-08-26 12:58:12 +00:00
Emilio Cobos Álvarez
c20ec755c9 Bug 1782751 - Make desktop viewport mode a synced BrowsingContext field. r=twisniewski
So that it's preserved properly across replacements (bug 1781936).

Differential Revision: https://phabricator.services.mozilla.com/D155274
2022-08-22 22:12:07 +00:00
Narcis Beleuzu
94d309143f Backed out 5 changesets (bug 1694993) for bc failure on browser_cross_process_csp_inheritance.js
Backed out changeset 1d21d911b3e7 (bug 1694993)
Backed out changeset 3b412d5fbdcf (bug 1694993)
Backed out changeset c9585ce37fe5 (bug 1694993)
Backed out changeset 05d7cbbfe9e2 (bug 1694993)
Backed out changeset 3821545ab46b (bug 1694993)
2022-08-22 20:32:02 +03:00
Nika Layzell
4c195ef117 Bug 1694993 - Part 1: Be more explicit about principals used when creating pop-up windows, r=smaug
Previously we would pull this information frequently from the subject
principal, which is unreliable. With this new approach, we more explicitly pass
the principals around as-needed into where they're going to be used.

Some assertions about the subject principal were introduced to ensure that
assumptions made about chrome windows and the system principal are not
incorrect.

Differential Revision: https://phabricator.services.mozilla.com/D154563
2022-08-22 15:35:27 +00:00
Andreas Farre
4b493b6a30 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
Tim Huang
4bcf9694bb Bug 1746349 - Stop considering document.domain when deciding if we need to reset the window name. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D143994
2022-08-16 12:40:09 +00:00
Emilio Cobos Álvarez
ef562aae0a Bug 774398 - Hack to make print and viewport media query listeners fire when printing. r=geckoview-reviewers,owlish,dholbert
This still doesn't fire on print settings changes, so it uses the
default page size. Which is probably better than nothing, but...

To make viewport-size media-query listeners work more generally for
printed documents, we would need to re-clone the top document
unconditionally for all print settings changes, which needs front-end
work at least, and is dubious if the page changes dynamically.

Differential Revision: https://phabricator.services.mozilla.com/D150499
2022-08-11 23:11:37 +00:00
Emilio Cobos Álvarez
42b7f1a58c Bug 1780788 - Use abstract strings as in-arguments for ipdl. r=nika,necko-reviewers,media-playback-reviewers,alwu,dragana
This prevents copies and avoids the hack we have to avoid this, which
right now is using nsDependent{C,}String.

Non-virtual actors can still use `nsString` if they need to on the
receiving end.

Differential Revision: https://phabricator.services.mozilla.com/D152519
2022-07-25 20:19:48 +00:00
Jonathan Watt
c0ea877a65 Bug 1749598 p1 - Stop reading the last used printer name in content processes. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D150098
2022-07-18 14:34:27 +00:00
Thomas Wisniewski
d1c82fe05f Bug 1758745 - Refactor EffectiveStoragePrincipal to EffectiveCookiePrincipal and create new function EffectiveStoragePrincipal that is never unpartitioned; r=bvandersloot
Depends on D143626

Differential Revision: https://phabricator.services.mozilla.com/D143627
2022-07-15 13:26:17 +00:00
Cristian Tuns
2f5fe88da3 Backed out 19 changesets (bug 1758745, bug 1758740, bug 1762462, bug 1779603) for causing mochitest failures on browser_partitionedConsoleMessage.js CLOSED TREE
Backed out changeset e3c8cd6f00b6 (bug 1779603)
Backed out changeset 4e46a6f209b4 (bug 1762462)
Backed out changeset 00c0c6314640 (bug 1762462)
Backed out changeset 8f11221f859f (bug 1762462)
Backed out changeset ffbf90e3bbab (bug 1762462)
Backed out changeset 0c760428dfec (bug 1762462)
Backed out changeset 7c99293cc8f9 (bug 1762462)
Backed out changeset 92bd237a95e1 (bug 1762462)
Backed out changeset 74539a3cc7fc (bug 1762462)
Backed out changeset acf08a10c6fb (bug 1762462)
Backed out changeset 0cf191a7739f (bug 1762462)
Backed out changeset 030c276d6669 (bug 1762462)
Backed out changeset a88a099c684d (bug 1762462)
Backed out changeset cbd69786a24b (bug 1762462)
Backed out changeset e5e0655206a8 (bug 1762462)
Backed out changeset 707f9dfed501 (bug 1762462)
Backed out changeset 619e4bb01a81 (bug 1762462)
Backed out changeset 02b7641683b0 (bug 1758745)
Backed out changeset a2f110442038 (bug 1758740)
2022-07-14 17:26:17 -04:00
Thomas Wisniewski
3f80260311 Bug 1758745 - Refactor EffectiveStoragePrincipal to EffectiveCookiePrincipal and create new function EffectiveStoragePrincipal that is never unpartitioned; r=bvandersloot
Depends on D143626

Differential Revision: https://phabricator.services.mozilla.com/D143627
2022-07-14 19:26:26 +00:00
Norisz Fay
388468729f Backed out 18 changesets (bug 1762462, bug 1758745, bug 1758740) for causing mochitest failures on test_storage_copied.html
Backed out changeset a27ae15872a9 (bug 1762462)
Backed out changeset b7d979a36324 (bug 1762462)
Backed out changeset 6249efe40513 (bug 1762462)
Backed out changeset 1e81ed3014a0 (bug 1762462)
Backed out changeset 92cec5f5db1c (bug 1762462)
Backed out changeset fa3c45b4de5c (bug 1762462)
Backed out changeset 64df67f43ad7 (bug 1762462)
Backed out changeset d66dd76ec2b6 (bug 1762462)
Backed out changeset 4f8aaba02a03 (bug 1762462)
Backed out changeset 81eb7d60dea9 (bug 1762462)
Backed out changeset 01504f5f818a (bug 1762462)
Backed out changeset 2615b571c9ba (bug 1762462)
Backed out changeset 73ed8be3f117 (bug 1762462)
Backed out changeset edb94ba8ec59 (bug 1762462)
Backed out changeset 21dd6fdc672e (bug 1762462)
Backed out changeset 31a70f9ad879 (bug 1762462)
Backed out changeset 5261ee5a2368 (bug 1758745)
Backed out changeset ad6ffd85ef3c (bug 1758740)
2022-07-14 03:16:08 +03:00
Thomas Wisniewski
7a3c3e5c10 Bug 1758745 - Refactor EffectiveStoragePrincipal to EffectiveCookiePrincipal and create new function EffectiveStoragePrincipal that is never unpartitioned; r=bvandersloot
Depends on D143626

Differential Revision: https://phabricator.services.mozilla.com/D143627
2022-07-13 22:44:57 +00:00
Tom Schuster
17c4e9c29f Bug 1774866 - Support error stacks in window.postMessage. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D150625
2022-07-13 12:42:31 +00:00
Andrew Osmond
508ecd766a Bug 1072107 - Part 2. Expose FontFaceSet on nsIGlobalObject. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D149245
2022-07-07 21:24:08 +00:00
Emilio Cobos Álvarez
ee23efc9b5 Bug 1773813 - Incorporate OS zoom factor in window sizing calculations. r=tnikkel
In bug 1773342 I made OS text scale factor behave like a full zoom
factor which applies to all pages (including the browser chrome). That's
generally straight forward but it makes some callsites that use unzoomed
CSS coordinates misbehave (or behave correctly accidentally actually in
some other cases).

The main fix here is making
nsIBaseWindow::UnscaledDevicePixelsPerCSSPixel() and
nsIScreen::GetDefaultCSSScaleFactor() account for OS zoom as necessary.
However, I also went through the relevant code and cleaned it up to use
typed units and operations when possible.

The setup means:

 * nsIWidget::GetDefaultScale() doesn't account for OS full zoom.
 * nsIBaseWindow and nsIScreen does.

These are the places where this should matter and stuff can get
confused, but this works surprisingly well for all callers (except one
nsDeviceContext one which we use only for PuppetWidget and we can
remove by falling back to 1.0 like all other widgets until the update
comes).

Differential Revision: https://phabricator.services.mozilla.com/D149033
2022-06-14 15:01:52 +00:00
Norisz Fay
60ea7706bd Backed out changeset da5c71190673 (bug 1773813) for causing build bustages CLOSED TREE 2022-06-14 15:13:58 +03:00
Emilio Cobos Álvarez
c64d0fcaa6 Bug 1773813 - Incorporate OS zoom factor in window sizing calculations. r=tnikkel
In bug 1773342 I made OS text scale factor behave like a full zoom
factor which applies to all pages (including the browser chrome). That's
generally straight forward but it makes some callsites that use unzoomed
CSS coordinates misbehave (or behave correctly accidentally actually in
some other cases).

The main fix here is making
nsIBaseWindow::UnscaledDevicePixelsPerCSSPixel() and
nsIScreen::GetDefaultCSSScaleFactor() account for OS zoom as necessary.
However, I also went through the relevant code and cleaned it up to use
typed units and operations when possible.

The setup means:

 * nsIWidget::GetDefaultScale() doesn't account for OS full zoom.
 * nsIBaseWindow and nsIScreen does.

These are the places where this should matter and stuff can get
confused, but this works surprisingly well for all callers (except one
nsDeviceContext one which we use only for PuppetWidget and we can
remove by falling back to 1.0 like all other widgets until the update
comes).

Differential Revision: https://phabricator.services.mozilla.com/D149033
2022-06-14 11:37:25 +00:00
Benjamin VanderSloot
eeed1b8c84 Bug 1765313, part 3 - Rename ContentBlocking to StorageAccessAPIHelper, r=anti-tracking-reviewers,necko-reviewers,dragana,timhuang
The only functions that remain are used as helper functions in the various variants of the Storage Access API.
To make this clearer, I have renamed this class and file that contains it.

Differential Revision: https://phabricator.services.mozilla.com/D148286
2022-06-08 21:57:17 +00:00
Benjamin VanderSloot
488f74b8a4 Bug 1770403, part 2 - Remove mStorageAccessPermissionGranted from the outer window, r=anti-tracking-reviewers,timhuang
With the use of mStorageAccessPermissionGranted reduced to a single meaning, it turns out to be entirely redundant with the variable on the inner window.

Depends on D147867

Differential Revision: https://phabricator.services.mozilla.com/D147868
2022-06-08 21:57:15 +00:00
Benjamin VanderSloot
f0465ef902 Bug 1770403, part 1 - Change initialization of mStorageAccessPermissionGranted on outer window, r=anti-tracking-reviewers,timhuang
mStorageAccessPermissionGranted was initialized to ShouldAllowAccessFor(...).
This had logic that has nothing to do with this the permission being granted.
A few bugs with my helpers were covered up by this default value, so I fixed the helpers in the same patch here.

This also required adding a new helper to the RejectForeignAllowList and exposing it to the Document.cpp file.
I'm not enthused about making that available, but we don't have a good component boundary for now, so I don't hate it.
Ideally the implementation of the rSA and hSA funcitons (and the like) would be in our component, but that is outside of this change's scope.

Differential Revision: https://phabricator.services.mozilla.com/D147867
2022-06-08 21:57:15 +00:00
Marian-Vasile Laza
a0f6973887 Backed out 5 changesets (bug 1765313, bug 1770403) for causing bc failures on browser_storageAccessPrivilegeAPI.js. CLOSED TREE
Backed out changeset 22153c8641e1 (bug 1765313)
Backed out changeset 588d54f796a0 (bug 1765313)
Backed out changeset 2376ca53eb9c (bug 1765313)
Backed out changeset 9cf02ec5657a (bug 1770403)
Backed out changeset 7d8147ba25e8 (bug 1770403)
2022-06-08 22:07:37 +03:00
Benjamin VanderSloot
a9c9c02c9c Bug 1765313, part 3 - Rename ContentBlocking to StorageAccessAPIHelper, r=anti-tracking-reviewers,necko-reviewers,dragana,timhuang
The only functions that remain are used as helper functions in the various variants of the Storage Access API.
To make this clearer, I have renamed this class and file that contains it.

Differential Revision: https://phabricator.services.mozilla.com/D148286
2022-06-08 17:11:19 +00:00
Benjamin VanderSloot
70760280fe Bug 1770403, part 2 - Remove mStorageAccessPermissionGranted from the outer window, r=anti-tracking-reviewers,timhuang
With the use of mStorageAccessPermissionGranted reduced to a single meaning, it turns out to be entirely redundant with the variable on the inner window.

Depends on D147867

Differential Revision: https://phabricator.services.mozilla.com/D147868
2022-06-08 17:11:18 +00:00
Benjamin VanderSloot
4d66e0257e Bug 1770403, part 1 - Change initialization of mStorageAccessPermissionGranted on outer window, r=anti-tracking-reviewers,timhuang
mStorageAccessPermissionGranted was initialized to ShouldAllowAccessFor(...).
This had logic that has nothing to do with this the permission being granted.
A few bugs with my helpers were covered up by this default value, so I fixed the helpers in the same patch here.

This also required adding a new helper to the RejectForeignAllowList and exposing it to the Document.cpp file.
I'm not enthused about making that available, but we don't have a good component boundary for now, so I don't hate it.
Ideally the implementation of the rSA and hSA funcitons (and the like) would be in our component, but that is outside of this change's scope.

Differential Revision: https://phabricator.services.mozilla.com/D147867
2022-06-08 17:11:17 +00:00
Molnar Sandor
4012088f05 Backed out 5 changesets (bug 1765313, bug 1770403) for causing lint failure in tools/lint/rejected-words.yml CLOSED TREE
Backed out changeset c76671d99573 (bug 1765313)
Backed out changeset f0895e88c27e (bug 1765313)
Backed out changeset 81a0f8c40381 (bug 1765313)
Backed out changeset a11f5453e441 (bug 1770403)
Backed out changeset df452028881c (bug 1770403)
2022-06-08 15:48:57 +03:00
Benjamin VanderSloot
b49966ba21 Bug 1765313, part 3 - Rename ContentBlocking to StorageAccessAPIHelper, r=anti-tracking-reviewers,necko-reviewers,dragana,timhuang
The only functions that remain are used as helper functions in the various variants of the Storage Access API.
To make this clearer, I have renamed this class and file that contains it.

Differential Revision: https://phabricator.services.mozilla.com/D148286
2022-06-08 12:18:23 +00:00
Benjamin VanderSloot
02e93b18d1 Bug 1770403, part 2 - Remove mStorageAccessPermissionGranted from the outer window, r=anti-tracking-reviewers,timhuang
With the use of mStorageAccessPermissionGranted reduced to a single meaning, it turns out to be entirely redundant with the variable on the inner window.

Depends on D147867

Differential Revision: https://phabricator.services.mozilla.com/D147868
2022-06-08 12:18:22 +00:00
Benjamin VanderSloot
baaeaf9f69 Bug 1770403, part 1 - Change initialization of mStorageAccessPermissionGranted on outer window, r=anti-tracking-reviewers,timhuang
mStorageAccessPermissionGranted was initialized to ShouldAllowAccessFor(...).
This had logic that has nothing to do with this the permission being granted.
A few bugs with my helpers were covered up by this default value, so I fixed the helpers in the same patch here.

This also required adding a new helper to the RejectForeignAllowList and exposing it to the Document.cpp file.
I'm not enthused about making that available, but we don't have a good component boundary for now, so I don't hate it.
Ideally the implementation of the rSA and hSA funcitons (and the like) would be in our component, but that is outside of this change's scope.

Differential Revision: https://phabricator.services.mozilla.com/D147867
2022-06-08 12:18:21 +00:00
Emilio Cobos Álvarez
255763ef57 Bug 1773070 - Unify Gecko and Servo EventState/ElementState bits. r=smaug
Add a dom/base/rust crate called just "dom" where we can share these.

Most of the changes are automatic:

  s/mozilla::EventStates/mozilla::dom::ElementState/
  s/EventStates/ElementState/
  s/NS_EVENT_STATE_/ElementState::/
  s/NS_DOCUMENT_STATE_/DocumentState::/

And so on. This requires a new cbindgen version to avoid ugly casts for
large shifts.

Differential Revision: https://phabricator.services.mozilla.com/D148537
2022-06-07 23:09:52 +00:00
Edgar Chen
ff60ecba27 Bug 1757531 - Do not forward focus to child frame when calling window.focus() on parent frame; r=hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D146446
2022-05-31 19:59:39 +00:00
Butkovits Atila
1f108c2a9a Backed out changeset 630c31f32767 (bug 1757531) for causing wpt failures at activeelement-after-calling-window-focus.sub.html. CLOSED TREE 2022-05-30 18:03:23 +03:00
Edgar Chen
6a85d3f818 Bug 1757531 - Do not forward focus to child frame when calling window.focus() on parent frame; r=hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D146446
2022-05-30 12:59:48 +00:00
Masayuki Nakano
728f08af35 Bug 1680611 - part 8: Mark nsFocusManager::Blur and its callers in nsFocusManager as MOZ_CAN_RUN_SCRIPT r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D147067
2022-05-26 04:37:20 +00:00
Masayuki Nakano
1ccba43651 Bug 1680611 - part 3: Mark nsFocusManager::WindowLowered() and its callers in nsFocusManager as MOZ_CAN_RUN_SCRIPT r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D147062
2022-05-26 04:37:18 +00:00
Emilio Cobos Álvarez
9fffb1830a Bug 1769758 - Remove window.mozPaintCount. r=webidl,peterv
We unshipped it successfully a while ago (bug 1591968).

Differential Revision: https://phabricator.services.mozilla.com/D146575
2022-05-17 14:14:10 +00:00
Jonathan Watt
41b151c8c4 Bug 1432651 p1 - Pass RemotePrintJobChild through to the places where it's needed. r=emilio
Given how nsIPrintSettings is passed around, stored and copied all over the
place, it's very hard to reason about where and when a RemotePrintJobChild is
needed or valid. This patch avoids all that by explicitly passing a
RemotePrintJobChild when it's needed.

Another reason to make this change is because RemotePrintJobChild really does
not belong on nsIPrintSettings. That interface is supposed to represent a
collection of settings for laying out the document that is to be printed.

Differential Revision: https://phabricator.services.mozilla.com/D146380
2022-05-16 08:38:01 +00:00
Cristian Tuns
23517e3d2b Backed out 3 changesets (bug 1758745, bug 1758740, bug 1762462) for causing mochitest failures on test_storagePermissionsAccept.html CLOSED TREE
Backed out changeset fa222c0a9a26 (bug 1762462)
Backed out changeset 9daa04b239f9 (bug 1758745)
Backed out changeset c18aecb431c0 (bug 1758740)
2022-05-10 20:12:45 -04:00
Thomas Wisniewski
37c3de998a Bug 1758745 - Refactor EffectiveStoragePrincipal to EffectiveCookiePrincipal and create new function EffectiveStoragePrincipal that is never unpartitioned; r=twisniewski
Depends on D143626

Differential Revision: https://phabricator.services.mozilla.com/D143627
2022-05-10 21:49:42 +00:00
Butkovits Atila
387096a2fc Backed out 3 changesets (bug 1758745, bug 1758740, bug 1762462) for causing failures at browser_storage_dfpi.js. CLOSED TREE
Backed out changeset a3024e8b2a58 (bug 1762462)
Backed out changeset 8bc1291b9bdb (bug 1758745)
Backed out changeset c7b693b2fd05 (bug 1758740)
2022-05-10 16:17:59 +03:00
Thomas Wisniewski
6cae86aea9 Bug 1758745 - Refactor EffectiveStoragePrincipal to EffectiveCookiePrincipal and create new function EffectiveStoragePrincipal that is never unpartitioned; r=twisniewski
Depends on D143626

Differential Revision: https://phabricator.services.mozilla.com/D143627
2022-05-10 12:05:51 +00:00
Jonathan Watt
4fd095afe9 Bug 1712104 p2 - Support printing directly via the system print dialog. r=emilio
This is behind the bool pref print.prefer_system_dialog

Differential Revision: https://phabricator.services.mozilla.com/D135452
2022-05-06 14:30:25 +00:00
Emilio Cobos Álvarez
74e34694dc Bug 1765961 - Avoid some warning spam in nsGlobalWindowOuter. r=smaug
NS_ENSURE_TRUE prints to stderr, which is noisy (this can happen
legitimately).

Differential Revision: https://phabricator.services.mozilla.com/D144416
2022-04-23 10:21:20 +00:00
Michel Le Bihan
2ce5e195a6 Bug 1764541 - Add telemetry for window.open with empty url argument r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D143590
2022-04-20 13:39:34 +00:00
Edgar Chen
c1d1b06e41 Bug 1758164 - Align the behavior of defining non-configurable properties on a WindowProxy on Nightly with Release/Beta; r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D141732
2022-03-29 20:33:24 +00:00
Emilio Cobos Álvarez
2dd7088690 Bug 1759163 - Add origin trial support for worklets. r=asuth
Move the trial getter to nsIGlobalObject, make every implementation
provide a reasonable value, and add a test.

Differential Revision: https://phabricator.services.mozilla.com/D140848
2022-03-15 23:16:14 +00:00
Marian-Vasile Laza
f0b42c159c Backed out changeset 558e256fcb31 (bug 1759163) for causing mochitest failures on test_header_simple.html. 2022-03-15 15:23:04 -07:00