Closed Bug 1480456 Opened 6 years ago Closed 6 years ago

Implement “Select All Tabs” into tab context menu

Categories

(Firefox :: Tabbed Browser, enhancement, P3)

63 Branch
enhancement

Tracking

()

VERIFIED FIXED
Firefox 64
Tracking Status
firefox63 --- wontfix
firefox64 --- verified
firefox65 --- verified

People

(Reporter: amylee, Assigned: jaws)

References

(Blocks 1 open bug)

Details

Attachments

(2 files, 1 obsolete file)

Attached image Select All.png (obsolete) —
This option should be available for single selected tab and multi-selected tabs. If all tabs are already selected, this option is hidden.
Attached image Select All.png
Attachment #8997054 - Attachment is obsolete: true
Priority: -- → P3
I'm getting started on this issue. This is my first bug ever, but I think I'll be able to do it. I've already looked at some of the other bugs to find the relevant files.
We should have an access key for this menu item. "A" is taken by "Reload all tabs" which is scheduled for removal, so I think it makes sense to use "A". Should we set bug 1480532 as blocking this and just hold off for now? I can get started on removing that so we can move forward. I can also commit without setting the access key for now or set it to some other letter.
Flags: needinfo?(amlee)
In bug 1480532, Alice White points out that it would be useful for the context menu to stay open after selecting all tabs, specifically for the reload all tabs functionality. Is that something that would be useful? It seems like after selecting all tabs, you'd normally select another option from the context menu immediately after, making it generally more useful for the menu to stay open than to close.
(In reply to Ben Thayer from comment #4)
> In bug 1480532, Alice White points out that it would be useful for the
> context menu to stay open after selecting all tabs, specifically for the
> reload all tabs functionality. Is that something that would be useful? It
> seems like after selecting all tabs, you'd normally select another option
> from the context menu immediately after, making it generally more useful for
> the menu to stay open than to close.

Hi, 

If we implement a shortcut key for "select all" I don't think we need it in the context menu (this is the same behaviour as native MacOS, Windows, and linux). That reduces the items in the context menu and doesn't require the user to open the context menu twice. I can update this bug to reflect the change or file a new bug to add a shortcut for "Select All Tabs" and close this one. Do you have a preference Dao?
Flags: needinfo?(amlee) → needinfo?(dao+bmo)
I'm not sure I understand the proposal. Keyboard shortcuts aren't very discoverable, and it seems we'll still need something for mouse users if we consider this feature important enough. If it's not important enough to have a menu entry, we probably don't need a shortcut either?
Flags: needinfo?(dao+bmo)
Blocks: 1480532
(In reply to Dão Gottwald [::dao] from comment #6)
> I'm not sure I understand the proposal. Keyboard shortcuts aren't very
> discoverable, and it seems we'll still need something for mouse users if we
> consider this feature important enough. If it's not important enough to have
> a menu entry, we probably don't need a shortcut either?

Hi

I realize that we need "Select All" in a context menu for accessibility so only having a shortcut won't work. Please ignore the last comment and implement according to the posted spec. I was thinking if we include a shortcut for "Select All" for tabs, is there a way to ensure it doesn't conflict with "Select All" for selecting all text on a webpage or "Select All" in the awesome bar?
(In reply to Amy Lee [:amylee] UX from comment #7)
> I was thinking if we include a
> shortcut for "Select All" for tabs, is there a way to ensure it doesn't
> conflict with "Select All" for selecting all text on a webpage or "Select
> All" in the awesome bar?

The standard Select All shortcut is context-sensitive, so the user would need to focus the tab bar first, which is a bit tricky right now (you can only do it with the Tab key). We'd need to change that (unclear how exactly), or have a completely separate shortcut, or provide the shortcut only to the few users who know how to focus the tab bar with the keyboard.
For clarity, I'd like to point out that an access key like I was talking about is not the same as a shortcut. The access key is underlined for each entry when viewing the context menu and is used by simply pressing that key (and not holding ctrl or command).
No longer blocks: tabs-multiselect
No longer blocks: tab-manager
Assignee: nobody → jaws
Status: NEW → ASSIGNED
(In reply to Ben Thayer from comment #4)
> In bug 1480532, Alice White points out that it would be useful for the
> context menu to stay open after selecting all tabs, specifically for the
> reload all tabs functionality. Is that something that would be useful? It
> seems like after selecting all tabs, you'd normally select another option
> from the context menu immediately after, making it generally more useful for
> the menu to stay open than to close.

That might be useful for cases where one context menu action is followed by another, but we allow for multitab operations that aren't through the context menu. As well, keeping the menu open after clicking on an item would go against platform conventions and most likely would be unexpected behavior.
Comment on attachment 9012706 [details]
Bug 1480456 - Add 'Select All Tabs' into tab context menu. r?Felipe

:Felipe Gomes (needinfo me!) has approved the revision.
Attachment #9012706 - Flags: review+
Pushed by jwein@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/634bcbff6b05
Add 'Select All Tabs' into tab context menu. r=Felipe
Backout by nerli@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/aff180170b3d
Backed out changeset 634bcbff6b05 for failures in browser_customization_context_menus.js CLOSED TREE
Pushed by jwein@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/02f06f657185
Add 'Select All Tabs' into tab context menu. r=Felipe
Backed out changeset 634bcbff6b05 (bug 1480456) for failures in browser_customization_context_menus.js CLOSED TREE

Backout link: https://hg.mozilla.org/integration/autoland/rev/aff180170b3d1326957a70f84b5f0c86a1b0f6b3

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&resultStatus=testfailed,busted,exception&revision=634bcbff6b055a0d35e7cff7787121b62eb0063f

Log link: https://treeherder.mozilla.org/logviewer.html#?job_id=202249373&repo=autoland&lineNumber=2165

Log snippet:
[task 2018-09-28T17:04:05.056Z] 17:04:05     INFO - TEST-START | browser/components/customizableui/test/browser_customization_context_menus.js
[task 2018-09-28T17:04:05.710Z] 17:04:05     INFO - TEST-INFO | started process screentopng
[task 2018-09-28T17:04:06.389Z] 17:04:06     INFO - TEST-INFO | screentopng: exit 0
[task 2018-09-28T17:04:06.392Z] 17:04:06     INFO - Buffered messages logged at 17:04:05
[task 2018-09-28T17:04:06.393Z] 17:04:06     INFO - Entering test bound home_button_context
[task 2018-09-28T17:04:06.395Z] 17:04:06     INFO - TEST-PASS | browser/components/customizableui/test/browser_customization_context_menus.js | menuitem should match .customize-context-moveToPanel selector - 
[task 2018-09-28T17:04:06.396Z] 17:04:06     INFO - TEST-PASS | browser/components/customizableui/test/browser_customization_context_menus.js | disabled state for .customize-context-moveToPanel - 
[task 2018-09-28T17:04:06.397Z] 17:04:06     INFO - TEST-PASS | browser/components/customizableui/test/browser_customization_context_menus.js | menuitem should match .customize-context-removeFromToolbar selector - 
[task 2018-09-28T17:04:06.398Z] 17:04:06     INFO - TEST-PASS | browser/components/customizableui/test/browser_customization_context_menus.js | disabled state for .customize-context-removeFromToolbar - 
[task 2018-09-28T17:04:06.400Z] 17:04:06     INFO - TEST-PASS | browser/components/customizableui/test/browser_customization_context_menus.js | menuseparator expected - 
[task 2018-09-28T17:04:06.423Z] 17:04:06     INFO - TEST-PASS | browser/components/customizableui/test/browser_customization_context_menus.js | menuitem should match #toggle_toolbar-menubar selector - 
[task 2018-09-28T17:04:06.425Z] 17:04:06     INFO - TEST-PASS | browser/components/customizableui/test/browser_customization_context_menus.js | disabled state for #toggle_toolbar-menubar - 
[task 2018-09-28T17:04:06.426Z] 17:04:06     INFO - TEST-PASS | browser/components/customizableui/test/browser_customization_context_menus.js | menuitem should match #toggle_PersonalToolbar selector - 
[task 2018-09-28T17:04:06.427Z] 17:04:06     INFO - TEST-PASS | browser/components/customizableui/test/browser_customization_context_menus.js | disabled state for #toggle_PersonalToolbar - 
[task 2018-09-28T17:04:06.428Z] 17:04:06     INFO - TEST-PASS | browser/components/customizableui/test/browser_customization_context_menus.js | menuseparator expected - 
[task 2018-09-28T17:04:06.429Z] 17:04:06     INFO - TEST-PASS | browser/components/customizableui/test/browser_customization_context_menus.js | menuitem should match .viewCustomizeToolbar selector - 
[task 2018-09-28T17:04:06.430Z] 17:04:06     INFO - TEST-PASS | browser/components/customizableui/test/browser_customization_context_menus.js | disabled state for .viewCustomizeToolbar - 
[task 2018-09-28T17:04:06.431Z] 17:04:06     INFO - Leaving test bound home_button_context
[task 2018-09-28T17:04:06.432Z] 17:04:06     INFO - Entering test bound tabstrip_context
[task 2018-09-28T17:04:06.433Z] 17:04:06     INFO - Closed tabs: false
[task 2018-09-28T17:04:06.435Z] 17:04:06     INFO - TEST-PASS | browser/components/customizableui/test/browser_customization_context_menus.js | menuitem should match #toolbar-context-reloadAllTabs selector - 
[task 2018-09-28T17:04:06.436Z] 17:04:06     INFO - TEST-PASS | browser/components/customizableui/test/browser_customization_context_menus.js | disabled state for #toolbar-context-reloadAllTabs - 
[task 2018-09-28T17:04:06.437Z] 17:04:06     INFO - TEST-PASS | browser/components/customizableui/test/browser_customization_context_menus.js | menuitem should match #toolbar-context-bookmarkAllTabs selector - 
[task 2018-09-28T17:04:06.439Z] 17:04:06     INFO - TEST-PASS | browser/components/customizableui/test/browser_customization_context_menus.js | disabled state for #toolbar-context-bookmarkAllTabs - 
[task 2018-09-28T17:04:06.440Z] 17:04:06     INFO - Buffered messages finished
[task 2018-09-28T17:04:06.446Z] 17:04:06     INFO - TEST-UNEXPECTED-FAIL | browser/components/customizableui/test/browser_customization_context_menus.js | menuitem should match #toolbar-context-undoCloseTab selector - 
[task 2018-09-28T17:04:06.447Z] 17:04:06     INFO - Stack trace:
[task 2018-09-28T17:04:06.448Z] 17:04:06     INFO - chrome://mochitests/content/browser/browser/components/customizableui/test/head.js:checkContextMenu:460
[task 2018-09-28T17:04:06.449Z] 17:04:06     INFO - chrome://mochitests/content/browser/browser/components/customizableui/test/browser_customization_context_menus.js:tabstrip_context:72
[task 2018-09-28T17:04:06.450Z] 17:04:06     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest/<:1093
[task 2018-09-28T17:04:06.451Z] 17:04:06     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest:1084
[task 2018-09-28T17:04:06.452Z] 17:04:06     INFO - chrome://mochikit/content/browser-test.js:nextTest/<:986
[task 2018-09-28T17:04:06.454Z] 17:04:06     INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<:795
[task 2018-09-28T17:04:06.455Z] 17:04:06     INFO - TEST-PASS | browser/components/customizableui/test/browser_customization_context_menus.js | disabled state for #toolbar-context-undoCloseTab - 
[task 2018-09-28T17:04:06.455Z] 17:04:06     INFO - Not taking screenshot here: see the one that was previously logged
[task 2018-09-28T17:04:06.457Z] 17:04:06     INFO - TEST-UNEXPECTED-FAIL | browser/components/customizableui/test/browser_customization_context_menus.js | menuseparator expected - Got menuitem, expected menuseparator
[task 2018-09-28T17:04:06.458Z] 17:04:06     INFO - Stack trace:
[task 2018-09-28T17:04:06.459Z] 17:04:06     INFO - chrome://mochikit/content/browser-test.js:test_is:1295
[task 2018-09-28T17:04:06.459Z] 17:04:06     INFO - chrome://mochitests/content/browser/browser/components/customizableui/test/head.js:checkContextMenu:455
[task 2018-09-28T17:04:06.460Z] 17:04:06     INFO - chrome://mochitests/content/browser/browser/components/customizableui/test/browser_customization_context_menus.js:tabstrip_context:72
[task 2018-09-28T17:04:06.461Z] 17:04:06     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest/<:1093
[task 2018-09-28T17:04:06.462Z] 17:04:06     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest:1084
[task 2018-09-28T17:04:06.464Z] 17:04:06     INFO - chrome://mochikit/content/browser-test.js:nextTest/<:986
[task 2018-09-28T17:04:06.465Z] 17:04:06     INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<:795
[task 2018-09-28T17:04:06.466Z] 17:04:06     INFO - Not taking screenshot here: see the one that was previously logged
[task 2018-09-28T17:04:06.468Z] 17:04:06     INFO - TEST-UNEXPECTED-FAIL | browser/components/customizableui/test/browser_customization_context_menus.js | menuitem should match #toggle_toolbar-menubar selector - 
[task 2018-09-28T17:04:06.469Z] 17:04:06     INFO - Stack trace:
[task 2018-09-28T17:04:06.471Z] 17:04:06     INFO - chrome://mochitests/content/browser/browser/components/customizableui/test/head.js:checkContextMenu:460
[task 2018-09-28T17:04:06.472Z] 17:04:06     INFO - chrome://mochitests/content/browser/browser/components/customizableui/test/browser_customization_context_menus.js:tabstrip_context:72
[task 2018-09-28T17:04:06.472Z] 17:04:06     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest/<:1093
[task 2018-09-28T17:04:06.474Z] 17:04:06     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest:1084
[task 2018-09-28T17:04:06.474Z] 17:04:06     INFO - chrome://mochikit/content/browser-test.js:nextTest/<:986
[task 2018-09-28T17:04:06.474Z] 17:04:06     INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<:795
[task 2018-09-28T17:04:06.474Z] 17:04:06     INFO - TEST-PASS | browser/components/customizableui/test/browser_customization_context_menus.js | disabled state for #toggle_toolbar-menubar - 
[task 2018-09-28T17:04:06.475Z] 17:04:06     INFO - Not taking screenshot here: see the one that was previously logged
[task 2018-09-28T17:04:06.476Z] 17:04:06     INFO - TEST-UNEXPECTED-FAIL | browser/components/customizableui/test/browser_customization_context_menus.js | menuitem should match #toggle_PersonalToolbar selector - 
[task 2018-09-28T17:04:06.476Z] 17:04:06     INFO - Stack trace:
[task 2018-09-28T17:04:06.477Z] 17:04:06     INFO - chrome://mochitests/content/browser/browser/components/customizableui/test/head.js:checkContextMenu:460
[task 2018-09-28T17:04:06.478Z] 17:04:06     INFO - chrome://mochitests/content/browser/browser/components/customizableui/test/browser_customization_context_menus.js:tabstrip_context:72
[task 2018-09-28T17:04:06.478Z] 17:04:06     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest/<:1093
[task 2018-09-28T17:04:06.479Z] 17:04:06     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest:1084
[task 2018-09-28T17:04:06.480Z] 17:04:06     INFO - chrome://mochikit/content/browser-test.js:nextTest/<:986
[task 2018-09-28T17:04:06.481Z] 17:04:06     INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<:795
[task 2018-09-28T17:04:06.482Z] 17:04:06     INFO - TEST-PASS | browser/components/customizableui/test/browser_customization_context_menus.js | disabled state for #toggle_PersonalToolbar - 
[task 2018-09-28T17:04:06.483Z] 17:04:06     INFO - Not taking screenshot here: see the one that was previously logged
[task 2018-09-28T17:04:06.483Z] 17:04:06     INFO - TEST-UNEXPECTED-FAIL | browser/components/customizableui/test/browser_customization_context_menus.js | menuseparator expected - Got menuitem, expected menuseparator
Flags: needinfo?(jaws)
Flags: needinfo?(jaws)
https://hg.mozilla.org/mozilla-central/rev/02f06f657185
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 64
Depends on: 1495286
QA Contact: dao+bmo
QA Contact: dao+bmo
This bug was about implementing “Select All Tabs” option into tab context menu and I have seen the feature being implemented with latest Nightly on Windows 7, 64 Bit!

Build ID 	20181015100128
User Agent 	Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0
QA Whiteboard: [bugday-20181010]
Verified fixed in latest nightly 65.0a1(2018-11-08) and latest Beta 64.0b8 on Windows 10x64, macOS 10.13 and Ubuntu 16.04x64.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: