Commit Graph

656 Commits

Author SHA1 Message Date
Rob Wu
878b74f39d 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
f1d1a8b43f 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
7c53006078 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
7005daf4e7 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
ec35d1bb34 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
37395deaee 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
419968af30 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
9bb1b0f5b5 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
6908262f8e 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
eb8d82d4c8 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
Rob Wu
3a79e1c6bb Bug 1498432 - Correctly delete _cachedCurrentURI r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D106734
2021-03-07 16:16:36 +00:00
Alexandru Michis
d28b5e906b Backed out 2 changesets (bug 1498432, bug 1680279) for causing bc failures in browser_ext_tabs_discard_reversed.js
CLOSED TREE

Backed out changeset 9ce142e600af (bug 1498432)
Backed out changeset 4c8c60ac262a (bug 1680279)
2021-03-05 02:50:58 +02:00
Tim Nguyen
33ec9ba505 Bug 1695351 - Wrap rich tab tooltip titles instead of cropping them. r=jaws
Differential Revision: https://phabricator.services.mozilla.com/D107281
2021-03-04 23:16:53 +00:00
Jonathan Kew
44517577c1 Bug 1695568 - Strip https:// from the URL in proton tab tooltips; add a broken-lock icon to http:// URLs. r=jaws
Differential Revision: https://phabricator.services.mozilla.com/D107250
2021-03-04 21:23:31 +00:00
Rob Wu
9777aa0dbf Bug 1498432 - Correctly delete _cachedCurrentURI r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D106734
2021-03-04 20:50:35 +00:00
Jared Wein
3009af62e0 Bug 1696322 - Move the formatted tab and bookmarks tooltip behind its own Proton pref. r=bwinton
Differential Revision: https://phabricator.services.mozilla.com/D107171
2021-03-04 18:03:58 +00:00
Florian Quèze
aef7090c8d Bug 1379174 - when closing multiple tabs, handle PermitUnload in parallel, r=Gijs.
Differential Revision: https://phabricator.services.mozilla.com/D106826
2021-03-04 14:04:57 +00:00
Jared Wein
e01ce23131 Bug 1695711 - Only add the position and anchortoclosest attributes to the tabs and bookmarks toolbar tooltips if Proton is enabled. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D106818
2021-03-01 20:49:02 +00:00
Masayuki Nakano
15df563492 Bug 1520263 - Make tabbrowser wait reply event for F7 key before toggling caret browsing mode r=smaug
Unfortunately, it seems that `F7` key handling in `tabbrowser.js` cannot
replaced with using XUL `<key>` element because it works with
`ShortcutUtils.getSystemActionForEvent` for mapping `F7` is a toggle key of
caret browsing mode.

Therefore, this patch exposes some raw information of `WidgetEvent` related
to cross process event propagation and makes `tabbrowser.js` check it and
request reply event if it's required.

So, when a remote content has focus, `tabbrowser.js` will do nothing for both
`keydown` and `keypress` of `F7` key with original events, then, will request
a reply event if its default is not prevented.  Finally, reply `F7` keypress
event will toggle caret browsing mode if the event is fired and not consumed.

Differential Revision: https://phabricator.services.mozilla.com/D106591
2021-02-27 03:02:23 +00:00
Patrick Storz
9b7c09f40d Bug 1009728 - Implement "Close Tabs to the Left" r=jaws
With "Close Tabs to the Right" having moved into a submenu in r533105,
it's only logical to offer this functionality as well for having feature parity.

Differential Revision: https://phabricator.services.mozilla.com/D104317
2021-02-25 21:57:54 +00:00
Jared Wein
12ff83d068 Bug 1665390 - Style bookmarks toolbar and tabs toolbar tooltips. r=NeilDeakin,ntim
Differential Revision: https://phabricator.services.mozilla.com/D104257
2021-02-25 20:47:54 +00:00
Micah Tigley
e25e40fd9d Bug 1690569 - Add Share item to the tab context menu on Windows and macOS. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D104558
2021-02-25 02:51:03 +00:00
Tom Tung
ab8028f08e Bug 1665942 - Remove the code for updating remoteness logic in addMultipleTabs since we have already handled fixing remoteness when restoring tabs; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D105942
2021-02-23 08:28:57 +00:00
Tom Tung
9a732b018b Bug 1683713 - Ensure the restoring tab is not reused in addMultipleTabs; r=dao
Differential Revision: https://phabricator.services.mozilla.com/D100249
2021-02-23 08:28:56 +00:00
Rob Wu
80e254bfd1 Bug 1693664 - Correctly run prefix logic in getWindowTitleForBrowser r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D105690
2021-02-23 08:23:44 +00:00
Mihai Alexandru Michis
fcb3945e6a Backed out changeset 29bb42ae7d0b (bug 1009728) for causing bc failures in browser_multiselect_tabs_close_tabs_to_the_left.js
CLOSED TREE
2021-02-18 01:36:25 +02:00
Patrick Storz
2b8fd2b00b Bug 1009728 - Implement "Close Tabs to the Left" r=jaws
With "Close Tabs to the Right" having moved into a submenu in r533105,
it's only logical to offer this functionality as well for having feature parity.

Differential Revision: https://phabricator.services.mozilla.com/D104317
2021-02-17 21:27:38 +00:00
Csoregi Natalia
133796a67b Backed out 2 changesets (bug 1665942, bug 1683713) for failures on browser_cookies_legacy.js. CLOSED TREE
Backed out changeset d2f4a6c7e9ca (bug 1665942)
Backed out changeset b04fe74185a0 (bug 1683713)
2021-02-17 13:28:09 +02:00
Tom Tung
2bd4876456 Bug 1683713 - Ensure the restoring tab is not reused in addMultipleTabs; r=dao
Differential Revision: https://phabricator.services.mozilla.com/D100249
2021-02-17 07:45:12 +00:00
james
c8a67215e0 Bug 1691274 - Use DOM hidden property methods instead of attribute methods in browser/ directory. r=ntim,preferences-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D104552
2021-02-13 23:33:51 +00:00
Narcis Beleuzu
d5390af0ba Backed out changeset b3fcb4fcea64 (bug 1691274) for bc failures on browser_pointerlock_warning.js . CLOSED TREE 2021-02-13 21:46:51 +02:00
james
1c970f6297 Bug 1691274 - Use DOM hidden property methods instead of attribute methods in browser/ directory. r=ntim,preferences-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D104552
2021-02-13 18:11:18 +00:00
Gijs Kruitbosch
eec33808fb Bug 1685313 - disable menus, commands and tabswitches while window-modal dialogs are up, r=jaws
This removes observation of the 'disabled' attribute from the macOS
full screen menu items, because removing the attribute doesn't work
correctly. This is a scenario that, as far as I can tell, didn't
happen elsewhere until now. On other OSes we use a single item which
gets disabled state directly from the command attribute (ie without
an 'observes' child) which appears to work fine.

It also exempts the editing commands from being disabled, but it
appears that at least on macOS, undo history is lost anyway. It's
not clear to me why this is the case, but I don't think it needs
to block an initial landing of this work.

Differential Revision: https://phabricator.services.mozilla.com/D103389
2021-02-12 22:41:54 +00:00
Andreea Pavel
dc95e4ea51 Backed out 3 changesets (bug 1685313) for failing test_prompt.html on a CLOSED TREE
Backed out changeset 7bdcbdc2d57f (bug 1685313)
Backed out changeset 319bc4d7bc0d (bug 1685313)
Backed out changeset 713de42fe3b4 (bug 1685313)
2021-02-12 06:50:58 +02:00
Gijs Kruitbosch
f0f5a0d8d0 Bug 1685313 - disable menus, commands and tabswitches while window-modal dialogs are up, r=jaws
This removes observation of the 'disabled' attribute from the macOS
full screen menu items, because removing the attribute doesn't work
correctly. This is a scenario that, as far as I can tell, didn't
happen elsewhere until now. On other OSes we use a single item which
gets disabled state directly from the command attribute (ie without
an 'observes' child) which appears to work fine.

It also exempts the editing commands from being disabled, but it
appears that at least on macOS, undo history is lost anyway. It's
not clear to me why this is the case, but I don't think it needs
to block an initial landing of this work.

Differential Revision: https://phabricator.services.mozilla.com/D103389
2021-02-11 23:57:57 +00:00
Paul Zuehlcke
a1d23766c7 Bug 1596897 - Moved permission list from site identity to separate permission panel. r=johannh
- Added a new permission panel managed by the gPermissionPanel object
- Updated identity-box to separate identity and permission section

Differential Revision: https://phabricator.services.mozilla.com/D99892
2021-02-05 13:40:35 +00:00
Micah Tigley
f334a0d63b Bug 1686316 - Show the allowFocusCheckbox for dialogs opened from TabDialogBox. r=Gijs
This revision introduces helpers for determining whether or not dialogs opened with TabDialogBox show the checkbox for allowing focus (tab switching). The approach for showing the checkbox follows the pattern similar to how its handled for TabModalPromptBox:

First, when a prompt is opened, the "DOMWillOpenModalDialog" event is fired from `PromptParent.jsm` on the browser tab. The browser then determines if the tab the event is dispatched on is the current selected tab. If the dialog was opened from another tab, then we check if the content prompt principal permission "focus-tab-by-prompt" is allowed for the URI the dialog was opened for and store its prompt principal on the tab prompt's `_onNextPromptShowAllowFocusCheckboxFor` property.  This presence for this value is ultimately what determines whether or not the checkbox is shown. Everything after that, the prompt's UI component is responsible for handling the checkbox's state and setting a handler for setting the permission when it's checked.

Implementing this for TabDialogBox makes it so we also store the prompt principal on the dialog box. We then process this value and send some information (such as explicitly setting a `checkLabel` value) via the `args` object for common dialog to process. And finally, we set the "focus-tab-by-prompt" permission for that URI via a closing callback for the dialog.

Differential Revision: https://phabricator.services.mozilla.com/D102076
2021-01-31 03:05:00 +00:00
Narcis Beleuzu
926d2f6257 Backed out 2 changesets (bug 1596897) for bc failures on browser_search_discovery.js
Backed out changeset 635972f169e7 (bug 1596897)
Backed out changeset a84b667007e2 (bug 1596897)
2021-01-30 04:01:21 +02:00
Paul Zuehlcke
480794a586 Bug 1596897 - Moved permission list from site identity to separate permission panel. r=johannh
- Added a new permission panel managed by the gPermissionPanel object
- Updated identity-box to separate identity and permission section

Differential Revision: https://phabricator.services.mozilla.com/D99892
2021-01-29 16:06:08 +00:00
Brindusan Cristian
b0f9bc02f2 Backed out 2 changesets (bug 1596897) for mochitest failures at browser_setIgnoreCertificateErrors.js. CLOSED TREE
Backed out changeset 00c45a405129 (bug 1596897)
Backed out changeset 61304ccbaada (bug 1596897)
2021-01-28 21:53:46 +02:00
Mihai Alexandru Michis
cb4a4f1fa7 Backed out changeset 4c98dbd2dbac (bug 1686316) for causing bc failures in browser_openPromptInBackgroundTab.js
CLOSED TREE
2021-01-28 20:28:29 +02:00
Paul Zuehlcke
032c94dfc0 Bug 1596897 - Moved permission list from site identity to separate permission panel. r=johannh
- Added a new permission panel managed by the gPermissionPanel object
- Updated identity-box to separate identity and permission section

Differential Revision: https://phabricator.services.mozilla.com/D99892
2021-01-28 18:00:44 +00:00
Micah Tigley
eaf0222bf7 Bug 1686316 - Show the allowFocusCheckbox for dialogs opened from TabDialogBox. r=Gijs
This revision introduces helpers for determining whether or not dialogs opened with TabDialogBox show the checkbox for allowing focus (tab switching). The approach for showing the checkbox follows the pattern similar to how its handled for TabModalPromptBox:

First, when a prompt is opened, the "DOMWillOpenModalDialog" event is fired from `PromptParent.jsm` on the browser tab. The browser then determines if the tab the event is dispatched on is the current selected tab. If the dialog was opened from another tab, then we check if the content prompt principal permission "focus-tab-by-prompt" is allowed for the URI the dialog was opened for and store its prompt principal on the tab prompt's `_onNextPromptShowAllowFocusCheckboxFor` property.  This presence for this value is ultimately what determines whether or not the checkbox is shown. Everything after that, the prompt's UI component is responsible for handling the checkbox's state and setting a handler for setting the permission when it's checked.

Implementing this for TabDialogBox makes it so we also store the prompt principal on the dialog box. We then process this value and send some information (such as explicitly setting a `checkLabel` value) via the `args` object for common dialog to process. And finally, we set the "focus-tab-by-prompt" permission for that URI via a closing callback for the dialog.

Differential Revision: https://phabricator.services.mozilla.com/D102076
2021-01-28 17:41:00 +00:00
Paul Zuehlcke
089bde5df0 Bug 1686989 - Fixed SubDialogManager focus issues and added support for custom focus handlers. r=Gijs
- Content embedded by SubDialog can define its own focus handler which will be called on SubDialog#focus
- Updated CommonDialog to register custom focus handler
- Moved focus calls from SubDialog to SubDialogManager
- Return early after tab dialog focus on tab switch

Differential Revision: https://phabricator.services.mozilla.com/D102298
2021-01-27 11:33:57 +00:00
Mark Banner
8a9fc4165b Bug 1687235 - Enable ESLint rule no-setter-return for browser/. r=mossop,preferences-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D102152
2021-01-26 13:42:38 +00:00
smolnar
f4beabe28a Backed out 2 changesets (bug 1686989, bug 1684469) for causing mochitest failures in browser_basicAuth_multiTab. CLOSED TREE
Backed out changeset b2aa38ecfb55 (bug 1684469)
Backed out changeset d96ac6e7874e (bug 1686989)
2021-01-26 15:36:54 +02:00
Paul Zuehlcke
4c6fe5d82d Bug 1686989 - Fixed SubDialogManager focus issues and added support for custom focus handlers. r=Gijs
- Content embedded by SubDialog can define its own focus handler which will be called on SubDialog#focus
- Updated CommonDialog to register custom focus handler
- Moved focus calls from SubDialog to SubDialogManager
- Return early after tab dialog focus on tab switch

Differential Revision: https://phabricator.services.mozilla.com/D102298
2021-01-26 10:33:51 +00:00
Brindusan Cristian
201069fdac Backed out 5 changesets (bug 1687235) for mochitest failures at test_menulist_null_value.xhtml. CLOSED TREE
Backed out changeset 638c802ca1d1 (bug 1687235)
Backed out changeset ec830b771bce (bug 1687235)
Backed out changeset a7c933ddecfd (bug 1687235)
Backed out changeset c36493fb0599 (bug 1687235)
Backed out changeset 6eb33ad5d460 (bug 1687235)
2021-01-26 10:58:43 +02:00
Mark Banner
36cf48f89d Bug 1687235 - Enable ESLint rule no-setter-return for browser/. r=mossop,preferences-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D102152
2021-01-25 22:27:19 +00:00
Csoregi Natalia
94e791f120 Backed out 2 changesets (bug 1686989, bug 1684469) for auth and dialog box failures. CLOSED TREE
Backed out changeset 111af4c2bf6b (bug 1684469)
Backed out changeset 81794f8a220b (bug 1686989)
2021-01-25 21:47:43 +02:00