Commit graph

1004 commits

Author SHA1 Message Date
Tom Schuster
1d0c52ff34 Bug 1810964 - Replace callers of nsContentUtils::ResistFingerprinting. r=tjr,emilio
Differential Revision: https://phabricator.services.mozilla.com/D167169
2023-01-23 11:52:56 +00:00
Emilio Cobos Álvarez
56be5080d2 Bug 1807687 - Simplify Windows keyboard indicator setting handling. r=NeilDeakin
The only thing that can explain this is the WM_UPDATEUISTATE state
getting out of sync in a way that we think we need to unconditionally
show focus indicators for a window.

I tried to first make this less error prone (see patch above) but
digging more into these messages, I'm pretty sure we just don't need all
this code. See:

 * https://devblogs.microsoft.com/oldnewthing/20130516-00/?p=4343
 * https://devblogs.microsoft.com/oldnewthing/20130517-00/?p=4323

In particular, this is intended to be a windows feature to not show
keyboard indicators on dialogs until you use the keyboard. But that's
how Gecko dialogs behave already due to how :focus-visible behaves as
per:

  https://searchfox.org/mozilla-central/rev/43ee5e789b079e94837a21336e9ce2420658fd19/toolkit/components/prompts/src/CommonDialog.jsm#319

I haven't been able to repro this state, but sounds believable that it
could happen after opening a native dialog or so on?

The purpose of this code is to implement the 'Underline access keys' in
the Keyboard Accessibility control panel of windows.

There's an easier way of tracking this, via the SPI_GETKEYBOARDCUES SPI,
documented in:

  https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-systemparametersinfoa

Hook that into LookAndFeel rather than using custom IPC and so on.

Differential Revision: https://phabricator.services.mozilla.com/D165578
2023-01-09 18:19:03 +00:00
Andreas Farre
95de092629 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
Nika Layzell
8332c88faa Bug 1806709 - Part 2: Clean up some trivial nsIPrincipal helper methods from nsIGlobalObject, r=asuth
These methods only existed because nsIGlobalObject::PrincipalOrNull was not
available off-main-thread, so can now be removed.

Depends on D165198

Differential Revision: https://phabricator.services.mozilla.com/D165199
2022-12-21 15:53:22 +00:00
alwu
60bbc8ab3d Bug 1773551 - part1 : move AutoplayPolicy to media namespace in order to prevent naming collision. r=media-playback-reviewers,padenot
Differential Revision: https://phabricator.services.mozilla.com/D164748
2022-12-19 20:57:54 +00:00
Olli Pettay
82425958a8 Bug 1804409, cycle collect mVisualViewport, r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D164319
2022-12-09 10:53:42 +00:00
Jan Varga
e95f3b4eec Bug 1791867 - Add GetStorageManager to nsIGlobalObject; r=smaug,dom-storage-reviewers,asuth
Differential Revision: https://phabricator.services.mozilla.com/D157902
2022-11-30 09:51:14 +00:00
Tom Ritter
9a5f52f41e Bug 1778510: Require subclasses of nsIGlobalObject implement ShouldRFP r=asuth
For the less common subclasses we will hardcode a choice to always obey
RFP if the pref is enabled.

Differential Revision: https://phabricator.services.mozilla.com/D157562
2022-11-29 13:34:12 +00:00
Butkovits Atila
cb853b7f77 Backed out 33 changesets (bug 1778510) for causing build bustages at nsIGlobalObject.h. CLOSED TREE
Backed out changeset f2a53c9e497c
Backed out changeset 59350ca6f3f2 (bug 1778510)
Backed out changeset abbba7e72b57 (bug 1778510)
Backed out changeset 6cf7473afae8 (bug 1778510)
Backed out changeset 74fb5fed93ea (bug 1778510)
Backed out changeset 5b5dc70cdd0a (bug 1778510)
Backed out changeset ff93191cafd2 (bug 1778510)
Backed out changeset 39cc006b610c (bug 1778510)
Backed out changeset dfaef3ad17a9 (bug 1778510)
Backed out changeset 8fbabeb8244b (bug 1778510)
Backed out changeset 45051b62e3f1 (bug 1778510)
Backed out changeset 86c0923fd81f (bug 1778510)
Backed out changeset a49c0f69d519 (bug 1778510)
Backed out changeset cfad733d4aaf (bug 1778510)
Backed out changeset df6d0fe89d5b (bug 1778510)
Backed out changeset 704db76eab17 (bug 1778510)
Backed out changeset 0651c128e369 (bug 1778510)
Backed out changeset 1e650de647c0 (bug 1778510)
Backed out changeset fa15a3572741 (bug 1778510)
Backed out changeset 4ceffd409eae (bug 1778510)
Backed out changeset 47db43142c62 (bug 1778510)
Backed out changeset ebb21153aaac (bug 1778510)
Backed out changeset a87eaaec3f9c (bug 1778510)
Backed out changeset 43ad5ee21f79 (bug 1778510)
Backed out changeset 5f20af8e1263 (bug 1778510)
Backed out changeset b78576875db0 (bug 1778510)
Backed out changeset d801fdeac90b (bug 1778510)
Backed out changeset 5af032c628c0 (bug 1778510)
Backed out changeset 86aa59de11b4 (bug 1778510)
Backed out changeset 58642357a19c (bug 1778510)
Backed out changeset c575e824e291 (bug 1778510)
Backed out changeset 32a358de4843 (bug 1778510)
Backed out changeset 40e0708c01e7 (bug 1778510)
2022-11-28 23:14:52 +02:00
Tom Ritter
1f9c192cbf Bug 1778510: Require subclasses of nsIGlobalObject implement ShouldRFP r=asuth
For the less common subclasses we will hardcode a choice to always obey
RFP if the pref is enabled.

Differential Revision: https://phabricator.services.mozilla.com/D157562
2022-11-28 18:04:04 +00:00
Cosmin Sabou
d245f666b9 Backed out 33 changesets (bug 1778510) for causing bp-hybrid bustages on nsIPrincipal.h. CLOSED TREE
Backed out changeset 282f589ede4a
Backed out changeset e23d03ba5a89 (bug 1778510)
Backed out changeset cbdb34cf7c8d (bug 1778510)
Backed out changeset d9a54521f3fb (bug 1778510)
Backed out changeset f5b7f8ce38b0 (bug 1778510)
Backed out changeset eb64607765a9 (bug 1778510)
Backed out changeset 18291e692834 (bug 1778510)
Backed out changeset bb71cc94a8be (bug 1778510)
Backed out changeset 507e84e1dafe (bug 1778510)
Backed out changeset 6d42e7a083ac (bug 1778510)
Backed out changeset 53799e6a46dd (bug 1778510)
Backed out changeset ff20d709839a (bug 1778510)
Backed out changeset 328d4d2df591 (bug 1778510)
Backed out changeset 9ba44fd8a440 (bug 1778510)
Backed out changeset eb1b7e30e519 (bug 1778510)
Backed out changeset c0927de6153b (bug 1778510)
Backed out changeset 02a306acd093 (bug 1778510)
Backed out changeset 2c5eecc4ad4c (bug 1778510)
Backed out changeset 38a9f45c9621 (bug 1778510)
Backed out changeset 35b7c7df62ce (bug 1778510)
Backed out changeset 187d71f42593 (bug 1778510)
Backed out changeset 450f4ccd6cd0 (bug 1778510)
Backed out changeset 915149e27da0 (bug 1778510)
Backed out changeset 9c6e85369f15 (bug 1778510)
Backed out changeset c6a9fe0ce713 (bug 1778510)
Backed out changeset a2f00462157e (bug 1778510)
Backed out changeset 5278e40b80c3 (bug 1778510)
Backed out changeset dba220581d93 (bug 1778510)
Backed out changeset 17a63044b0dc (bug 1778510)
Backed out changeset 68d607aaa121 (bug 1778510)
Backed out changeset e93004f91f6f (bug 1778510)
Backed out changeset 41d6d9f889e1 (bug 1778510)
Backed out changeset 28ac62019086 (bug 1778510)
2022-11-28 07:34:46 +02:00
Tom Ritter
c6dbdf3adf Bug 1778510: Require subclasses of nsIGlobalObject implement ShouldRFP r=asuth
For the less common subclasses we will hardcode a choice to always obey
RFP if the pref is enabled.

Differential Revision: https://phabricator.services.mozilla.com/D157562
2022-11-28 04:21:24 +00:00
Jan Varga
7ce6e92fa1 Bug 1790207 - Change nsIGlobalObject::GetStorageKey to return NS_ERROR_NOT_AVAILABLE by default; r=dom-storage-reviewers,jesup,asuth
nsGlobalWindowInner, WorkerGlobalScopeBase, BackstagePas and SandboxPrivate now
explicitly provide GetStorageKey implementation which explicitly block null and
expanded principals. All other globals (nsGlobalWindowOuter, SimpleGlobalObject,
ShadowRealmGlobalScope and WorkletGlobalScope) inherit the default
implementation which returns NS_ERROR_NOT_AVAILABLE.

Differential Revision: https://phabricator.services.mozilla.com/D162087
2022-11-15 17:13:01 +00:00
Emilio Cobos Álvarez
44ef3b8685 Bug 1799435 - Make RFP checks faster. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D161447
2022-11-08 02:36:25 +00:00
Sandor Molnar
7a39c6eef3 Backed out changeset c7f5349824c4 (bug 1799435) for causing crashes in mozilla::dom::HTMLImageElement::LoadSelectedImage CLOSED TREE 2022-11-08 02:39:14 +02:00
Emilio Cobos Álvarez
68c342910f Bug 1799435 - Make RFP checks faster. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D161447
2022-11-07 22:23:50 +00:00
Iulian Moraru
2f0dd0e293 Backed out changeset 44cb21194dc0 (bug 1799435) for causing multiple resist fingerprint related failures. CLOSED TREE 2022-11-07 18:42:11 +02:00
Emilio Cobos Álvarez
bac0597c49 Bug 1799435 - Make RFP checks faster. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D161447
2022-11-07 14:40:57 +00:00
Emilio Cobos Álvarez
25e4585462 Bug 1798836 - Improve sizing of the profile manager (again). r=Gijs,webidl,smaug
Instead of imposing the min-width as a max-size, make prefwidth act as
it should (as suggesting a preferred width, but with min-content as a
minimum).

This can be reproduced locally by applying a patch like:

```
diff --git a/toolkit/profile/content/profileSelection.xhtml b/toolkit/profile/content/profileSelection.xhtml
index 3dd1c864f79f1..7e8cbf8ce8c3e 100644
--- a/toolkit/profile/content/profileSelection.xhtml
+++ b/toolkit/profile/content/profileSelection.xhtml
@@ -17,7 +17,7 @@
   data-l10n-id="profile-selection-window"
   orient="vertical"
   prefwidth="min-width"
-  style="min-width: 30em;"
+  style="min-width: 10em;"
   onload="startup();">
 <dialog id="profileWindow"
   buttons="accept,cancel"
```

Before patch, stuff overflowed. This patch guarantees that everything is
on-screen.

Differential Revision: https://phabricator.services.mozilla.com/D161229
2022-11-05 19:24:31 +00:00
Cosmin Sabou
d6ab6f4a98 Backed out changeset f456713ddff8 (bug 1798836) for causing build bustages on Window.webidl. CLOSED TREE 2022-11-05 15:15:53 +02:00
Emilio Cobos Álvarez
fe3a1ffba6 Bug 1798836 - Improve sizing of the profile manager (again). r=Gijs,webidl,smaug
Instead of imposing the min-width as a max-size, make prefwidth act as
it should (as suggesting a preferred width, but with min-content as a
minimum).

This can be reproduced locally by applying a patch like:

```
diff --git a/toolkit/profile/content/profileSelection.xhtml b/toolkit/profile/content/profileSelection.xhtml
index 3dd1c864f79f1..7e8cbf8ce8c3e 100644
--- a/toolkit/profile/content/profileSelection.xhtml
+++ b/toolkit/profile/content/profileSelection.xhtml
@@ -17,7 +17,7 @@
   data-l10n-id="profile-selection-window"
   orient="vertical"
   prefwidth="min-width"
-  style="min-width: 30em;"
+  style="min-width: 10em;"
   onload="startup();">
 <dialog id="profileWindow"
   buttons="accept,cancel"
```

Before patch, stuff overflowed. This patch guarantees that everything is
on-screen.

Differential Revision: https://phabricator.services.mozilla.com/D161229
2022-11-05 13:02:31 +00:00
Emilio Cobos Álvarez
8eb8a765bc Bug 1797140 - Throw better errors from promiseDocumentFlushed. r=Gijs
NS_ERROR_FAILURE is no good to know if this is an exception you can
ignore or not.

Differential Revision: https://phabricator.services.mozilla.com/D160089
2022-10-24 17:38:14 +00:00
Emilio Cobos Álvarez
ab8ce397d0 Bug 1792337 - Add a more convenient API to size a window constrained to a default size. r=bytesized,extension-reviewers,robwu,TYLin
Differential Revision: https://phabricator.services.mozilla.com/D158235
2022-09-30 00:45:36 +00:00
Peter Van der Beken
9e85242679 Bug 1792444 - Switch some WebIDL APIs from 'any' to a union with 'undefined'. r=edgar,media-playback-reviewers,padenot
Differential Revision: https://phabricator.services.mozilla.com/D158195
2022-09-28 19:10:51 +00:00
Kagami Sascha Rosylight
32a02a7021 Bug 1784590 - Part 1: Remove hide_in_pbmode prefs r=asuth
It turns out that websites break with different reasons when hiding things. At this point we want to stop revising the hack further and instead gather the data about how many websites are currently affected.

Differential Revision: https://phabricator.services.mozilla.com/D154578
2022-08-24 10:58:46 +00:00
Marian-Vasile Laza
e32b8c70e9 Backed out 2 changesets (bug 1784590) for causing mochitest failures on test_privateBrowsing.html. CLOSED TREE
Backed out changeset cd284ba05fbb (bug 1784590)
Backed out changeset 2f714355a8c8 (bug 1784590)
2022-08-23 01:26:37 +03:00
Kagami Sascha Rosylight
ee9aec5cb9 Bug 1784590 - Part 1: Remove hide_in_pbmode prefs r=asuth
It turns out that websites break with different reasons when hiding things. At this point we want to stop revising the hack further and instead gather the data about how many websites are currently affected.

Differential Revision: https://phabricator.services.mozilla.com/D154578
2022-08-22 20:48:33 +00:00
Marian-Vasile Laza
b92a6b8396 Backed out 2 changesets (bug 1784590) for causing mochitest failures on test_privateBrowsing.html.
Backed out changeset 36d36e75930f (bug 1784590)
Backed out changeset 35dbbd6dbb70 (bug 1784590)
2022-08-22 22:50:41 +03:00
Kagami Sascha Rosylight
bfc04ec1a4 Bug 1784590 - Part 1: Remove hide_in_pbmode prefs r=asuth
It turns out that websites break with different reasons when hiding things. At this point we want to stop revising the hack further and instead gather the data about how many websites are currently affected.

Differential Revision: https://phabricator.services.mozilla.com/D154578
2022-08-22 18:48:12 +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
Benjamin VanderSloot
c737ca4ccc Bug 1781818 - Allow unpartitioning of SessionStorage, r=timhuang
This is controlled by a preference so we can disable it for experimentation later.

Differential Revision: https://phabricator.services.mozilla.com/D152893
2022-07-29 13:44:28 +00:00
Emilio Cobos Álvarez
414e110a93 Bug 1780212 - Miscellaneous clean-ups to related code. r=Gijs
These don't change behavior but I did them while debugging this.

Differential Revision: https://phabricator.services.mozilla.com/D152176
2022-07-19 21:25:03 +00:00
Tom Ritter
1c40624193 Bug 1770498: Populate the RFP member of CookieJar Settings r=timhuang,geckoview-reviewers,owlish
CookieJarSettings frequently gets populated in a place
where we have ready access to the Document/Channel it
is being constructed for. This lets us populate the boolean
and pass it into CookieJarSetting's constructor easily.

When it is created for LoadInfo, we need to plumb the URI
through by adding it to LoadInfo::CreateForDocument.

Differential Revision: https://phabricator.services.mozilla.com/D150588
2022-07-15 20:39:19 +00:00
Tom Schuster
3400605cfd Bug 1740420 - Improve sandbox error message when accessing storages. r=saschanaz
Differential Revision: https://phabricator.services.mozilla.com/D150255
2022-07-15 16:33:46 +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
Kagami Sascha Rosylight
f4fcfcd045 Bug 1778489 - Define window.indexedDB as null in Private Browsing Mode r=twisniewski,asuth
https://www.msn.com/ja-jp/feed accesses `indexedDB` as a global variable and thus it throws undefined identifier error when it's not defined. Returning null fixes the regression.

Differential Revision: https://phabricator.services.mozilla.com/D151373
2022-07-08 16:05:25 +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
Kagami Sascha Rosylight
48adbee64d Bug 1776109 - Part 3: Hide caches/indexedDB/serviceWorker in PBMode r=asuth,twisniewski
Differential Revision: https://phabricator.services.mozilla.com/D150064
2022-06-30 11:33:56 +00:00
Iulian Moraru
23c0c3baed Backed out 3 changesets (bug 1776109) for causing hazzard build bustages on ServiceWorker.cpp.
Backed out changeset b6222b68a403 (bug 1776109)
Backed out changeset 80fb3c3a5a40 (bug 1776109)
Backed out changeset 021a94a72d0c (bug 1776109)
2022-06-30 09:53:28 +03:00
Kagami Sascha Rosylight
30b8df0dc0 Bug 1776109 - Part 3: Hide caches/indexedDB/serviceWorker in PBMode r=asuth,twisniewski
Differential Revision: https://phabricator.services.mozilla.com/D150064
2022-06-30 01:35:13 +00:00
criss
a78fdd3dc0 Backed out 3 changesets (bug 1776109) for causing multiple failures. CLOSED TREE
Backed out changeset 8e76401f7c43 (bug 1776109)
Backed out changeset 1cdbbad1d996 (bug 1776109)
Backed out changeset 66bb4c49d615 (bug 1776109)
2022-06-30 03:23:01 +03:00
Kagami Sascha Rosylight
4c9ef0bb36 Bug 1776109 - Part 3: Hide caches/indexedDB/serviceWorker in PBMode r=asuth,twisniewski
Differential Revision: https://phabricator.services.mozilla.com/D150064
2022-06-29 22:52:39 +00:00
Emilio Cobos Álvarez
456fba026e Bug 1774821 - Don't include glean bindings from nsGlobalWindowInner.h. r=chutten
Differential Revision: https://phabricator.services.mozilla.com/D149639
2022-06-17 17:10:27 +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