Commit graph

696 commits

Author SHA1 Message Date
Alexandru Michis
5ca72bfc53 Backed out 7 changesets (bug 1650089) for causing xpcshell failures in test_ext_cookieBehaviors.js
Backed out changeset 336d6eb2fc15 (bug 1650089)
Backed out changeset 283ba29cdbeb (bug 1650089)
Backed out changeset c470e4c65117 (bug 1650089)
Backed out changeset 8fc2f428694d (bug 1650089)
Backed out changeset 37e5185dae14 (bug 1650089)
Backed out changeset a26afdc56d91 (bug 1650089)
Backed out changeset 32e207558b3d (bug 1650089)
2021-08-04 12:32:07 +03:00
Nika Layzell
86eb6e4a0b Bug 1650089 - Part 6: Don't set maychangeremoteness on non-e10s browsers, r=Gijs
This change makes all browsers which were not created with an initial `remote`
attribute within a non-`useRemoteTabs` window be unable to process-switch, as
otherwise we may attempt to switch loads into a content process. We need to
keep process switching enabled for explicitly-remote browsers loaded in a
non-`useRemoteTabs` window as it's relied on for tests and can lead to
assertion failures due to loading remote content in the parent process.

Differential Revision: https://phabricator.services.mozilla.com/D121285
2021-08-03 18:17:56 +00:00
Noemi Erli
6cd9318b66 Backed out 7 changesets (bug 1650089) foe causing bustages in ProcessIsolation.cpp
Backed out changeset 4e73beb8872c (bug 1650089)
Backed out changeset 092451e931ce (bug 1650089)
Backed out changeset ca9ba60010c6 (bug 1650089)
Backed out changeset ee61b69ba556 (bug 1650089)
Backed out changeset 091c4efa36a7 (bug 1650089)
Backed out changeset dbdee40ef8a0 (bug 1650089)
Backed out changeset 54d12a4333a0 (bug 1650089)
2021-08-03 20:15:54 +03:00
Nika Layzell
53b9fff29c Bug 1650089 - Part 6: Don't set maychangeremoteness on non-e10s browsers, r=Gijs
This change makes all browsers which were not created with an initial `remote`
attribute within a non-`useRemoteTabs` window be unable to process-switch, as
otherwise we may attempt to switch loads into a content process. We need to
keep process switching enabled for explicitly-remote browsers loaded in a
non-`useRemoteTabs` window as it's relied on for tests and can lead to
assertion failures due to loading remote content in the parent process.

Differential Revision: https://phabricator.services.mozilla.com/D121285
2021-08-03 15:39:35 +00:00
Nika Layzell
29295703f8 Bug 1715773 - Remove preloaded newtab process selection logic, r=mconley
Differential Revision: https://phabricator.services.mozilla.com/D121423
2021-08-03 15:17:07 +00:00
Doug Thayer
0f70c8373a Bug 1546847 - Cache tab icons in worker to avoid serialization r=kashav
Read this as a first step. It's the easiest first step I could think of to
both reduce the quantity of stuff we serialize and ship to the worker as
well as to spread it out over multiple messages.

Anyway, the motivation is pretty simple. Taking a look at a session store
file on disk, a giant chunk of it is base64 encoded tab icons. I suspect
that in many cases these are not distinct. For my session store it's about
90% the same repeated searchfox icon over and over.

So what I did was I changed the "image" property of the tab to be a reference
into a deduplicated cache of objects (in this case strings). Whenever the tab
icon changes, we drop a reference to its cache entry and add a reference to a
new or existing entry. Each time a cache entry is added or deleted, we send
a message to the worker to update its own copy of the cache. This does
represent a memory hit, since the cache is maintained on the worker as well as
the main thread, but I think it's going to be minor, and it's only in one
process. Given the deduplication there is the possibility of an overall
reduction in memory use? This needs more testing.

Once it comes time to write the session data to disk, we send the payload with
"image" entries referencing IDs in the cache. When the worker gets the message
to write, it adds its internal cache to the object, which it then serializes
to JSON and writes to disk as usual.

When reading the data off disk, we take the cache items that had been written
and we slowly populate the worker's internal cache with them (to not overload
during startup with a giant message). And when populating tab icons of tabs in
the tab strip, we look up the image in the main thread copy of the cache. Also,
if we cannot find the entry, we assume that the image is just the raw
representation of the image. This ensures that we interpret a sessionstore file
from prior to this patch correctly.

Additionally, since we have the cache duplicated on both threads, if the worker
gets terminated for some reason, we rehydrate it with the snapshot of the cache
from when we noticed it was a problem.

I suspect some tests will need to be updated, or maybe many tests. However I
wanted to throw this patch past someone with more knowledge of the session
store's inner workings before throwing a bunch of time at that.

Differential Revision: https://phabricator.services.mozilla.com/D114196
2021-08-02 16:17:30 +00:00
Gijs Kruitbosch
ee4d7daea5 Bug 1512851 - make share menu handling more generic and replace the file menu's email link with it on macOS, r=sfoster,fluent-reviewers,flod
Depends on D120637

Differential Revision: https://phabricator.services.mozilla.com/D120638
2021-07-26 12:22:38 +00:00
Gijs Kruitbosch
e2e1f06304 Bug 1512851 - extract share menu handling from tabbrowser.js into a utility in browser.js, r=sfoster
Depends on D120636

Differential Revision: https://phabricator.services.mozilla.com/D120637
2021-07-26 12:22:38 +00:00
Toshihito Kikuchi
a7bf50d1d1 Bug 1715858 - Part1. Add a new telemetry histogram TAB_UNLOAD_TO_RELOAD. r=NeilDeakin
The new histogram `TAB_UNLOAD_TO_RELOAD` records how long a tab had been
unloaded until it was reload by a user.  With this data, we can evaluate
the selection logic to choose a tab to unload.  For example, if many of
unloaded tabs are reloaded within 30 seconds or so, we unload a wrong tab.

Differential Revision: https://phabricator.services.mozilla.com/D120019
2021-07-22 21:15:00 +00:00
Neil Deakin
b8424dd0fb Bug 1717680, use popup.triggerNode instead of document.triggerNode when determining bookmarks tooltips, r=mak
Differential Revision: https://phabricator.services.mozilla.com/D118521
2021-07-09 11:51:14 +00:00
Daisuke Akatsuka
1cc55fd4cf Bug 1686951: Support switch-to-tab in private browsing window. r=adw
Differential Revision: https://phabricator.services.mozilla.com/D117974
2021-06-21 01:33:26 +00:00
Gijs Kruitbosch
1221473bc5 Bug 1711519 - remove non-proton notificationbox code and remove conditionals for proton, r=jaws
Depends on D116630

Differential Revision: https://phabricator.services.mozilla.com/D116631
2021-06-03 11:41:54 +00:00
Gijs Kruitbosch
a9281aec97 Bug 1711519 - remove trivial gProton and gProtonDoorhangers checks, r=jaws
Differential Revision: https://phabricator.services.mozilla.com/D116630
2021-06-03 11:41:54 +00:00
Neil Deakin
5b9b440b1f Bug 1709379, don't special case picture in picture mode in tooltips as the button is still a mute button, r=mconley
Differential Revision: https://phabricator.services.mozilla.com/D115555
2021-05-31 13:09:44 +00:00
Neil Deakin
0b4418c6a7 Bug 1696214, use moveToAnchor to position the tab and places tooltips so that the close and mute button tooltips appear correctly, r=jaws
This involves changing moveToAnchor to be allowed while the popup is showing. This change allows the buttons within the tab to use the normal algorithm for determining the tooltip position. This also fixes bug 1695900 so that tooltips for items in bookmarks menus also appear offset as well. Only the main tab and bookmarks on the toolbar appear aligned with the button's bottom edge.

Differential Revision: https://phabricator.services.mozilla.com/D115558
2021-05-31 13:07:35 +00:00
Gijs Kruitbosch
1d7f4797cd Bug 1712306 - add telemetry for the close multiple tabs modal, r=jaws
Differential Revision: https://phabricator.services.mozilla.com/D115840
2021-05-27 21:01:01 +00:00
Ed Lee
43b619e124 Bug 1706963 - Close other window modal subdialog before quit/close window prompts r=Gijs
Allow quit/close dialogs to jump the queue with new method gDialogBox.replaceDialogIfOpen().

Differential Revision: https://phabricator.services.mozilla.com/D114654
2021-05-21 17:56:20 +00:00
Florian Quèze
777e422931 Bug 1704868 - avoid triggering the notificationbar stack lazy getter for every tab close, r=mstriemer.
Differential Revision: https://phabricator.services.mozilla.com/D111891
2021-04-16 22:32:30 +00:00
Bogdan Tara
dadf80687b Backed out 2 changesets (bug 1704868) for browser_app.js mochitest failures CLOSED TREE
Backed out changeset 0ac53cac5ca8 (bug 1704868)
Backed out changeset cc993666f052 (bug 1704868)
2021-04-16 22:37:35 +03:00
Florian Quèze
664c69eabf Bug 1704868 - avoid triggering the notificationbar stack lazy getter for every tab close, r=mstriemer.
Differential Revision: https://phabricator.services.mozilla.com/D111891
2021-04-16 17:37:06 +00:00
Jan-Ivar Bruaroey
f0138debf4 Bug 1697487 - Show gray cam/mic indicator during permission grace periods. r=pbz
Differential Revision: https://phabricator.services.mozilla.com/D111000
2021-04-14 11:20:15 +00:00
Emilio Cobos Álvarez
3e0cb7c68b Bug 1703289 - Make mixed content blocker use a session-persistent permission rather than ad-hoc code. r=ckerschb,smaug
This is more fission-compatible, and a lot simpler.

Differential Revision: https://phabricator.services.mozilla.com/D111480
2021-04-12 18:04:12 +00:00
Gabriel Luong
f12235b53c Bug 1692840 - Add "Open a New Tab" at the top of the tabstrip context menu. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D108365
2021-04-12 10:28:46 +00:00
Mark Striemer
909ff1f4d9 Bug 1702330 - Graduate infobars to main proton pref r=jaws,marionette-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D110638
2021-04-10 19:56:10 +00:00
Dorel Luca
26ac39c8d5 Backed out 9 changesets (bug 1702330) for Mochitest failures in toolkit/components/url-classifier/tests/mochitest/test_reporturl.html. CLOSED TREE
Backed out changeset f84605e6fc8b (bug 1702330)
Backed out changeset 79c63bf11b29 (bug 1702330)
Backed out changeset 5425a2312f6e (bug 1702330)
Backed out changeset d76516e0d07d (bug 1702330)
Backed out changeset 3b75ffae171a (bug 1702330)
Backed out changeset 4bb6ceb6adb3 (bug 1702330)
Backed out changeset 607be325b4e8 (bug 1702330)
Backed out changeset 4b345ea924cc (bug 1702330)
Backed out changeset c7f0de372b21 (bug 1702330)
2021-04-10 07:48:08 +03:00
Mark Striemer
4119d385db Bug 1702330 - Graduate infobars to main proton pref r=jaws,marionette-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D110638
2021-04-10 00:30:39 +00:00
Dorel Luca
7c6d9844e5 Backed out 8 changesets (bug 1702330)for Browser-chrome failures in est/popups/browser_popup_blocker.js. CLOSED TREE
Backed out changeset b81511f8e157 (bug 1702330)
Backed out changeset 15f60f1d3f14 (bug 1702330)
Backed out changeset 809af1f94b4b (bug 1702330)
Backed out changeset 63cec3eadb4f (bug 1702330)
Backed out changeset b9964fb4dd70 (bug 1702330)
Backed out changeset 1e5ccb47056e (bug 1702330)
Backed out changeset 65faaeeb2339 (bug 1702330)
Backed out changeset e72fb8b52609 (bug 1702330)
2021-04-09 20:21:35 +03:00
Mark Striemer
71680c44e5 Bug 1702330 - Graduate infobars to main proton pref r=jaws,marionette-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D110638
2021-04-09 15:26:24 +00:00
Alexandru Michis
b40e464292 Backed out 5 changesets (bug 1702330) for causing failures in browser_aboutNewTab_defaultBrowserNotification.js
CLOSED TREE

Backed out changeset 365fd1bb6dde (bug 1702330)
Backed out changeset eba73c72be18 (bug 1702330)
Backed out changeset e1277c21543f (bug 1702330)
Backed out changeset 907e4fcda266 (bug 1702330)
Backed out changeset eb2a8569ed02 (bug 1702330)
2021-04-09 03:34:23 +03:00
Mark Striemer
0201d62878 Bug 1702330 - Graduate infobars to main proton pref r=jaws,marionette-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D110638
2021-04-08 22:25:04 +00:00
Michael Kohler
7ad0621f83 Bug 1699153 - Disable Close Multiple Tabs option when sub menuitems are disabled r=jaws
Differential Revision: https://phabricator.services.mozilla.com/D110866
2021-04-08 17:54:14 +00:00
Jared Wein
51c3023b73 Bug 1701707 - Update the tab tooltip for audio regardless if Proton is enabled or not. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D110592
2021-04-01 21:20:13 +00:00
Mark Striemer
355b6522d8 Bug 1690333 - Proton infobar styles r=jaws
Differential Revision: https://phabricator.services.mozilla.com/D104585
2021-03-29 02:38:56 +00:00
Butkovits Atila
e3f13578b0 Backed out changeset 1890d2ac5a43 (bug 1690333) for causing failures on test_bug509732.xhtml. CLOSED TREE 2021-03-29 02:56:02 +03:00
Mark Striemer
bc875387b4 Bug 1690333 - Proton infobar styles r=jaws
Differential Revision: https://phabricator.services.mozilla.com/D104585
2021-03-28 19:04:34 +00:00
Butkovits Atila
71d46d5a75 Backed out 2 changesets (bug 1690333, bug 1699250) for causing failures on test_bug509732.xhtml. CLOSED TREE
Backed out changeset dcba2814dbc4 (bug 1690333)
Backed out changeset ae3a0e6dde00 (bug 1699250)
2021-03-28 21:16:58 +03:00
Mark Striemer
5711775e12 Bug 1690333 - Proton infobar styles r=jaws
Differential Revision: https://phabricator.services.mozilla.com/D104585
2021-03-28 17:02:21 +00:00
Cosmin Sabou
4618d0a607 Backed out 2 changesets (bug 1690333, bug 1699250) for mochitest failures on test_notificationbox.xhtml.
Backed out changeset d6780d34ca05 (bug 1690333)
Backed out changeset 50cc5db86f1e (bug 1699250)
2021-03-27 23:58:04 +02:00
Mark Striemer
ce67801c64 Bug 1690333 - Proton infobar styles r=jaws
Differential Revision: https://phabricator.services.mozilla.com/D104585
2021-03-27 21:02:51 +00:00
Jared Wein
bf9bf52bb8 Bug 1701003 - Move proton tabs to the proton general pref. r=mstriemer
Differential Revision: https://phabricator.services.mozilla.com/D109764
2021-03-26 22:55:21 +00:00
Rob Wu
772719835c Bug 1698192 - Use correct currentURI during swapping of lazy browsers r=dao
Re-order calls in SessionStore.jsm to invoke the side-effect-free logic
before triggering observable events.

Clear (likely) stale value of the cached currentURI when lazy browsers
are swapped.

And while I was at it, I also fixed a bug that caused a lazy browser to
eagerly be unlazified because the unneeded mute() call on a lazy browser
unlazifies it (discovered when I added complete test coverage for this
change).

Differential Revision: https://phabricator.services.mozilla.com/D108260
2021-03-26 19:51:15 +00:00
Rob Wu
f4e9de17e6 Bug 1695346 - Skip tabs amidst restoration in tabs.onUpdated r=Gijs,rpl
`swapBrowsersAndCloseOther` calls `SessionStore.setTabState`, but the
latter may trigger several tab events before the tab has fully been
restored. This results in duplicate tabs.onUpdated events and in
unexpected access to properties of the tab/browser (which in turn
triggers the reported bug).

Fix this specific case by ignoring events that happen while the tab is
amidst a restoration.

Differential Revision: https://phabricator.services.mozilla.com/D108259
2021-03-26 19:51:14 +00:00
Jens Stutte
48b1ebeb71 Bug 1696397: Move SpinEventLoopUntilOrShutdown to -Quit and move the current shutdown state logic from nsThreadManager to AppShutdown; r=kmag,xpcom-reviewers
The SpinEventLoopUntilOrShutdown is interrupted in the main process only at stage "xpcom-shutdown", which is too late. In a content process instead we interrupt it early enough, at "content-child-will-shutdown".

This patch removes the current observer logic in nsThreadManager in favor of a current shutdown phase state machinery in AppShutdown and renames SpinEventLoopUntilOrShutdown to SpinEventLoopUntilOrQuit. It also ensures that SpinEventLoopUntilOrQuit breaks early (at "quit-application" in the main process).

For a further possible cleanup around shutdown state in child and parent process please refer to bug 1697745.

We have no automated test for this edge case, but we have diagnostic telemetry that will tell us if it helps.

Differential Revision: https://phabricator.services.mozilla.com/D107619
2021-03-17 08:07:48 +00:00
Tim Nguyen
46fa6456fb Bug 1693066 - Implement new proton tab audio indicator design. r=jaws,fluent-reviewers,flod
Differential Revision: https://phabricator.services.mozilla.com/D107733
2021-03-13 14:17:36 +00:00
heftydav
cfda812b52 Bug 1669205 - Ensure PictureinPicture attribute is preserved when parent tab is changed r=mhowell,mtigley
Differential Revision: https://phabricator.services.mozilla.com/D105831
2021-03-12 21:27:24 +00:00
Jared Wein
5f3ba32ae9 Bug 1688301 - Use a special attribute to insert the space between the pinned tabs and unpinned tabs to account for possible hidden tabs. r=mconley
Differential Revision: https://phabricator.services.mozilla.com/D105381
2021-03-12 18:19:42 +00:00
Paul Zuehlcke
5d2d56e536 Bug 1693621 - Only clear temporary block permissions on user reload. r=johannh
Differential Revision: https://phabricator.services.mozilla.com/D106496
2021-03-12 10:06:15 +00:00
Gijs Kruitbosch
833b41296c Bug 1697783 - don't create a share menu on older Windows versions, r=mtigley
Differential Revision: https://phabricator.services.mozilla.com/D107997
2021-03-11 20:11:44 +00:00
Erica Wright
314b24db0d Bug 1682676 - Position infobars inside of the chrome. r=mstriemer
Depends on D106012

Differential Revision: https://phabricator.services.mozilla.com/D104741
2021-03-10 19:22:56 +00:00
Matjaz Horvat
4a3f6d7778 Bug 1693048 - Update close tabs warning dialog. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D107535
2021-03-08 23:05:23 +00:00