Commit Graph

139 Commits

Author SHA1 Message Date
Mark Banner
a03d040295 Bug 1864821 - Replace PromiseUtils.defer() with Promise.withResolvers() in extension code. r=extension-reviewers,geckoview-reviewers,rpl,m_kato
Differential Revision: https://phabricator.services.mozilla.com/D197488
2024-01-05 09:22:34 +00:00
Brad Werth
f934e9176d Bug 1854820: Make the transition to window normal state work the same on extension windows as it does elsewhere. r=extension-reviewers,robwu
Calling window.restore will return the window to its previous
dimensions. Prior to this patch, extension windows transitioning to
normal state would add a second step where they would forcibly resize
the window to content. The motivating reason for this additional step is
some kind of difficulty with macOS windows restoring from other states.
Those issues were handled comprehensively in Bug 1631735, and now the
extra step is unnecessary and surprising to users. Since the call was
being made potentially during a deminimization native transition, the
window is at a very small size and expanding it to fit the content is
resizing it to a strange small size. Window.restore will do the right
thing, so this patch stops calling sizeToContent.

Differential Revision: https://phabricator.services.mozilla.com/D189972
2023-11-18 00:30:52 +00:00
Stanca Serban
d0eabbc73d Backed out 2 changesets (bug 1854820) for causing browser-chrome failures in browser_ext_windows_update.js.
Backed out changeset caeb06504910 (bug 1854820)
Backed out changeset e61a1f47853c (bug 1854820)
2023-11-08 12:00:47 +02:00
Brad Werth
8b006ce408 Bug 1854820: Make the transition to window normal state work the same on extension windows as it does elsewhere. r=extension-reviewers,robwu
Calling window.restore will return the window to its previous
dimensions. Prior to this patch, extension windows transitioning to
normal state would add a second step where they would forcibly resize
the window to content. The motivating reason for this additional step is
some kind of difficulty with macOS windows restoring from other states.
Those issues were handled comprehensively in Bug 1631735, and now the
extra step is unnecessary and surprising to users. Since the call was
being made potentially during a deminimization native transition, the
window is at a very small size and expanding it to fit the content is
resizing it to a strange small size. Window.restore will do the right
thing, so this patch stops calling sizeToContent.

Differential Revision: https://phabricator.services.mozilla.com/D189972
2023-11-07 22:04:07 +00:00
Mark Banner
32e5048c7c Bug 1832704 - Remove SearchService's init-complete, replace by a promise that resolves or rejects as appropriate. r=mcheang,extension-reviewers,robwu
Differential Revision: https://phabricator.services.mozilla.com/D187512
2023-09-25 10:44:49 +00:00
Sandor Molnar
a59dc0e8cf Backed out changeset f0a2aa2ffe6d (bug 1832704) for causing xpc failures in toolkit/components/search/tests/xpcshell/test_async.js 2023-09-19 03:19:30 +03:00
Mark Banner
8b11f7c564 Bug 1832704 - Remove SearchService's init-complete, replace by a promise that resolves or rejects as appropriate. r=mcheang,extension-reviewers,robwu
Differential Revision: https://phabricator.services.mozilla.com/D187512
2023-09-18 15:09:56 +00:00
Gregory Pappas
a57c4f9405 Bug 1845311 - [Part 2] Use ChromeUtils.defineLazyGetter in more places r=arai,webcompat-reviewers,necko-reviewers,extension-reviewers,settings-reviewers,application-update-reviewers,credential-management-reviewers,devtools-reviewers,fxview-reviewers,sync-reviewers,anti-tracking-reviewers,tabbrowser-reviewers,bytesized,twisniewski,sgalich,mak,kershaw,sclements,pbz,robwu,geckoview-reviewers,amejiamarmol
Differential Revision: https://phabricator.services.mozilla.com/D184623
2023-08-01 23:01:02 +00:00
Gregory Pappas
7b8c07142a Bug 1809094 - Implement tab.autoDiscardable property r=robwu,geckoview-reviewers,extension-reviewers,Gijs,owlish,tabbrowser-reviewers,dao
Differential Revision: https://phabricator.services.mozilla.com/D166440
2023-06-21 07:50:17 +00:00
Cosmin Sabou
811d79e739 Backed out changeset f3fe6cc42791 (bug 1809094) for bc failures on browser_ext_tabs_autoDiscardable.js. 2023-06-21 03:24:56 +03:00
Gregory Pappas
ad10790d6e Bug 1809094 - Implement tab.autoDiscardable property r=robwu,geckoview-reviewers,extension-reviewers,Gijs,owlish,tabbrowser-reviewers,dao
Differential Revision: https://phabricator.services.mozilla.com/D166440
2023-06-20 23:59:08 +00:00
Sandor Molnar
1e6677e684 Backed out changeset 0ee2d1b2ec37 (bug 1809094) for causing android bustages. CLOSED TREE 2023-06-21 02:20:26 +03:00
Gregory Pappas
b89c0a7e67 Bug 1809094 - Implement tab.autoDiscardable property r=robwu,geckoview-reviewers,extension-reviewers,Gijs,owlish,tabbrowser-reviewers,dao
Differential Revision: https://phabricator.services.mozilla.com/D166440
2023-06-20 23:06:37 +00:00
Katherine Patenio
ce9d8a5dad Bug 1834831 - update imports of browser/modules JSMs r=webdriver-reviewers,perftest-reviewers,zeid,extension-reviewers,settings-reviewers,pip-reviewers,credential-management-reviewers,devtools-reviewers,fxview-reviewers,sessionstore-reviewers,tabbrowser-reviewers,whimboo,mhowell,sgalich,robwu,sparky,Standard8,mconley,dao,sclements
Differential Revision: https://phabricator.services.mozilla.com/D179169
2023-06-19 18:44:48 +00:00
Cristian Tuns
f826f1b621 Backed out 2 changesets (bug 1834831) for causing node failures with checkBundles CLOSED TREE
Backed out changeset 58b351a155c8 (bug 1834831)
Backed out changeset 1acbb5231d14 (bug 1834831)
2023-06-19 13:22:35 -04:00
Katherine Patenio
333197cd22 Bug 1834831 - update imports of browser/modules JSMs r=webdriver-reviewers,perftest-reviewers,zeid,extension-reviewers,settings-reviewers,pip-reviewers,credential-management-reviewers,devtools-reviewers,fxview-reviewers,sessionstore-reviewers,tabbrowser-reviewers,whimboo,mhowell,sgalich,robwu,sparky,Standard8,mconley,dao,sclements
Differential Revision: https://phabricator.services.mozilla.com/D179169
2023-06-19 16:46:18 +00:00
Mark Banner
91fde42f7b Bug 1826062 - Automatic fixes for Prettier 2.0.5 upgrade. r=mossop,perftest-reviewers,webcompat-reviewers,geckoview-reviewers,denschub,devtools-reviewers,sparky,owlish
Differential Revision: https://phabricator.services.mozilla.com/D177025
2023-05-20 12:26:49 +00:00
Gijs Kruitbosch
64b3d90475 Bug 1810141 - fix replaceUrlInTab webextension utility to deal with loadURI changes, r=rpl
Depends on D168392

Differential Revision: https://phabricator.services.mozilla.com/D168393
2023-02-13 23:50:39 +00:00
Cristina Horotan
f062495d94 Backed out 9 changesets (bug 1810141) for several test failures on a CLOSED TREE
Backed out changeset 8781a0d1254d (bug 1810141)
Backed out changeset 131037295784 (bug 1810141)
Backed out changeset 3852fbe290f4 (bug 1810141)
Backed out changeset 118f131a524a (bug 1810141)
Backed out changeset ab5d76846e10 (bug 1810141)
Backed out changeset dce3aa683445 (bug 1810141)
Backed out changeset 4dc41d90dbb3 (bug 1810141)
Backed out changeset 50b57ba1a061 (bug 1810141)
Backed out changeset 569de94781e4 (bug 1810141)
2023-02-13 16:05:30 +02:00
Gijs Kruitbosch
214358c5c7 Bug 1810141 - fix replaceUrlInTab webextension utility to deal with loadURI changes, r=rpl
Depends on D168392

Differential Revision: https://phabricator.services.mozilla.com/D168393
2023-02-13 12:55:24 +00:00
Tomislav Jovanovic
d378ab25a4 Bug 1805523 - Implement temporary access state and attention, r=rpl
Differential Revision: https://phabricator.services.mozilla.com/D165490
2023-01-24 00:47:13 +00:00
Oriol Brufau
ca1a72c7a6 Bug 1808615 - Make addTab default skipLoad to createLazyBrowser. r=Gijs,extension-reviewers,nika,robwu
And make callers rely on that instead of allowInheritPrincipal when
creating lazy tabs.

Unlike allowInheritPrincipal, skipLoad sets the nodefaultsrc attribute.
This avoids a load instead of falling back to about:blank.

One consequence of that is that switching to a lazy about:blank tab will
not notify invoke listeners registered with addTabsProgressListener
(listeners registered with addProgressListener will still be invoked).

Thus test browser_open_in_lazy_tab.js needs to be updated.

Differential Revision: https://phabricator.services.mozilla.com/D166012
2023-01-07 13:51:47 +00:00
Sandor Molnar
4f5ee6f941 Backed out changeset 2b67bd0dd255 (bug 1808615) for causing bc failures in browser/components/customizableui/test/browser_open_in_lazy_tab.js CLOSED TREE 2023-01-07 03:18:23 +02:00
Oriol Brufau
60b9a931c7 Bug 1808615 - Make addTab default skipLoad to createLazyBrowser. r=Gijs,extension-reviewers,nika,robwu
And make callers rely on that instead of allowInheritPrincipal when
creating lazy tabs.

Differential Revision: https://phabricator.services.mozilla.com/D166012
2023-01-07 00:37:36 +00:00
trickypr
589688feed Bug 1510561 - Part 16: Apply plugin:mozilla/valid-jsdoc to toolkit/components/extensions. r=geckoview-reviewers,extension-reviewers,zombie,owlish
Differential Revision: https://phabricator.services.mozilla.com/D161391
2022-11-19 11:41:48 +00:00
Mark Banner
5407bdffa8 Bug 1792341 - Migrate more toolkit/modules consumers to use direct ES module import. r=Gijs,webdriver-reviewers,perftest-reviewers,necko-reviewers,geckoview-reviewers,preferences-reviewers,application-update-reviewers,pip-reviewers,credential-management-reviewers,sgalich,owlish,bytesized,AlexandruIonescu,whimboo,mconley,mixedpuppy
Mainly automated changes. Some manual ESLint fixes and whitespace cleanup.

Differential Revision: https://phabricator.services.mozilla.com/D158452
2022-10-18 11:21:26 +00:00
Mark Banner
a49b8ef78f Bug 1792365 - Convert toolkit/modules consumers to use ES module imports directly. r=webdriver-reviewers,perftest-reviewers,geckoview-reviewers,extension-reviewers,preferences-reviewers,desktop-theme-reviewers,application-update-reviewers,pip-reviewers,credential-management-reviewers,robwu,Gijs,sgalich,bytesized,AlexandruIonescu,dao,m_kato
Differential Revision: https://phabricator.services.mozilla.com/D158094
2022-09-29 06:52:34 +00:00
Brian
0b327f0974 Bug 1788925 - Convert AboutReader from JSM to ESM. r=Gijs.
Differential Revision: https://phabricator.services.mozilla.com/D157034
2022-09-23 21:19:12 +00:00
Emilio Cobos Álvarez
0676d5d593 Bug 1780876 - Try to deal with DOM/widget state mismatch on macOS. r=robwu
The patch that that regressed this started using the widget state rather
than the DOM state to return full-screen. It seems on macOS they
sometimes can get out of sync, in the failure from comment 0 the window
is really full-screen.

We seemed to account for some of this in:

  https://searchfox.org/mozilla-central/rev/00e504083572d47f2199168f0f79c75c0ddaefb3/browser/components/extensions/test/browser/browser_ext_windows_create.js#31-36

Make sure we exit full-screen as appropriate if DOM thinks we're
fullscreen. This passes verify and at worst it should be harmless.

Differential Revision: https://phabricator.services.mozilla.com/D155353
2022-08-23 22:13:19 +00:00
Emilio Cobos Álvarez
bc40301982 Bug 1780680 - More cleanly return "normal" state for closed windows. r=mixedpuppy
It bit me in the dependent bug because bug, see the comment in:

  https://hg.mozilla.org/integration/autoland/rev/8bbec265ab8c

Differential Revision: https://phabricator.services.mozilla.com/D152480
2022-07-26 12:02:46 +00:00
Emilio Cobos Álvarez
b2f89efc95 Bug 1780372 - Fix a failure in browser_ext_sessions_getRecentlyClosed.js.
MANUAL PUSH: Trivial fixup CLOSED TREE
2022-07-22 02:18:43 +02:00
Emilio Cobos Álvarez
fa9bacd71f Bug 1780372 - Make extension APIs deal with async window state changes. r=mixedpuppy
Before my previous patch, the widget code lied, and always returned the
requested window state before it had actually happened. Instead, teach
the extension code to wait if necessary for the window state to be
effective.

Differential Revision: https://phabricator.services.mozilla.com/D152394
2022-07-21 23:04:08 +00:00
Oriol Brufau
ce0f675cd9 Bug 1764452 - Avoid tabs.onUpdated events for 'attention' when value doesn't change. r=Gijs,mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D143553
2022-04-21 08:30:07 +00:00
Rob Wu
1b1a03702b Bug 1764566 - Update API availability in MV3 r=mixedpuppy
- Remove unsupported tabs API definitions that are gone in MV3.
- Mark content script APIs (superseded by scripting APIs) as MV2-only.
- Re-enable extension.getBackgroundPage in MV2 since it makes sense with
  event pages, and we enabled runtime.getBackgroundPage in bug 1759308.
- Add tests that verify API availability in MV3.

Differential Revision: https://phabricator.services.mozilla.com/D143721
2022-04-17 16:43:50 +00:00
Tooru Fujisawa
845f7c0588 Bug 1762326 - Do not get information about a tab with empty history in browser.sessions.getRecentlyClosed. r=robwu
Differential Revision: https://phabricator.services.mozilla.com/D142526
2022-03-31 16:36:10 +00:00
Olli Pettay
fa2a63a0b8 Bug 1718532, don't try to create tabId if the relevant window is already closing, r=rpl
The leak I can reproduce locally somewhat often is coming from
https://searchfox.org/mozilla-central/rev/08c493902519265d570250c8e7ce575c8cd6f5b5/browser/components/extensions/test/browser/browser_ext_windows_create_cookieStoreId.js#308,319-321
When adopting a tab to a new window, there is internally a frameloader swap.
The initial frameloader is loading about:blank and after the old window has started to close
https://searchfox.org/mozilla-central/rev/08c493902519265d570250c8e7ce575c8cd6f5b5/browser/actors/AboutReaderParent.jsm#156 triggers a call to
extension code where getId is called. The failure becomes almost perma-fail with bug 1727829.

Will push this with bug 1727829 to tryserver.

Differential Revision: https://phabricator.services.mozilla.com/D124958
2021-09-08 21:29:54 +00:00
Tomislav Jovanovic
007d45809d Bug 1708243 - Part 2: stop using sender data from the child process r=robwu,agi
Differential Revision: https://phabricator.services.mozilla.com/D123351
2021-08-31 23:15:17 +00:00
criss
952851eac2 Backed out changeset a269440d7e21 (bug 1708243) for causing failures on mochitest/test_ext_tabs_create.html. CLOSED TREE 2021-08-31 23:22:19 +03:00
Tomislav Jovanovic
f3de0ca755 Bug 1708243 - Part 2: stop using sender data from the child process r=robwu,agi
Differential Revision: https://phabricator.services.mozilla.com/D123351
2021-08-31 18:48:17 +00:00
Csoregi Natalia
042ea59c67 Backed out changeset f966b7898d9f (bug 1708243) for geckoview failures. CLOSED TREE 2021-08-31 18:40:20 +03:00
Tomislav Jovanovic
03e6dbf364 Bug 1708243 - Part 2: stop using sender data from the child process r=robwu,agi
Differential Revision: https://phabricator.services.mozilla.com/D123351
2021-08-31 11:46:11 +00:00
Marian-Vasile Laza
59ce1ed270 Backed out changeset 1395c54325a7 (bug 1708243) for causing gv-junit failures. CLOSED TREE 2021-08-31 06:53:43 +03:00
Tomislav Jovanovic
2fd100c9da Bug 1708243 - Part 2: stop using sender data from the child process r=robwu,agi
Differential Revision: https://phabricator.services.mozilla.com/D123351
2021-08-31 00:21:38 +00:00
Marian-Vasile Laza
98586de04c Backed out changeset 38cfb452cecf (bug 1708243) for causing mochitest failures on test_ext_tabs_sendMessage.html. CLOSED TREE 2021-08-31 02:40:51 +03:00
Tomislav Jovanovic
17daa8e5d9 Bug 1708243 - Part 2: stop using sender data from the child process r=robwu,agi
Differential Revision: https://phabricator.services.mozilla.com/D123351
2021-08-30 22:54:47 +00:00
Narcis Beleuzu
123fc4c3ae Backed out changeset e49874b751fa (bug 1708243) for bc failures on browser_shims.js . CLOSED TREE 2021-08-25 19:23:32 +03:00
Tomislav Jovanovic
f9181cbf8a Bug 1708243 - Part 2: stop using sender data from the child process r=robwu,agi
Differential Revision: https://phabricator.services.mozilla.com/D123351
2021-08-25 12:00:34 +00:00
Tomislav Jovanovic
d325696b9f Bug 1708243 - Part 1: Stop using FrameData for windowId in the child process r=robwu
Also remove windowId getters from Context classes, as they're largely unused.

Differential Revision: https://phabricator.services.mozilla.com/D123220
2021-08-23 19:50:37 +00:00
Doug Thayer
422c3e0585 Bug 1546847 - Backed out bug 1546847 and related revs r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D121898
2021-08-05 18:34:56 +00:00
Doug Thayer
1099a0fe75 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