Previously, this code cached a list of controls on first use and used that for navigation.
This refactor addresses several issues:
1. There is now a separate focus order for tab/shift+tab and down/up arrows.
This allows menulists, textboxes, etc. which use the arrow keys themselves to be focused with tab, but skipped with the arrows.
This means the user won't fall into these controls when using the up/down arrow keys and be confused by the subsequent arrowing behaviour.
2. When a menulist, textbox, etc. is focused, the arrow keys, space and enter are now passed to the control.
This is a better fix for handling of the arrow keys by menulists (bug 1522092).
It also fixes left arrow in a textarea moving to the previous view instead of moving the caret (bug 1489874).
3. This improves handling of dynamic updates to the panel.
For example, elements that are initially disabled and enabled later will be navigable.
This is because the next element is determined dynamically by the TreeWalker, rather than using a cached list.
4. The interim fix for bug 1522092 disabled PanelMultiView keyboard navigation.
This caused some regressions, including arrow keys/activation on the Site Identity Report a Problem link (bug 1539976) and some controls not being navigable if the Site Identity panel is opened using the mouse (bug 1539984).
With the above fixes, we can now re-enable PanelMultiView keyboard navigation in the Site identity panel and thus fix these regressions.
5. Previously, PanelMultiView keyboard navigation was disabled in the main toolbar overflow menu.
This is because the search box can be added to the overflow menu, which previously caused problems for the arrow keys.
With the above fixes, we can now safely enable PanelMultiView keyboard navigation in the overflow menu.
6. PanelMultiView keyboard tests have been added.
Previously, we relied on tests specific to various panels to exercise this functionality.
Differential Revision: https://phabricator.services.mozilla.com/D25905
--HG--
extra : moz-landing-system : lando
Previously, this code cached a list of controls on first use and used that for navigation.
This refactor addresses several issues:
1. There is now a separate focus order for tab/shift+tab and down/up arrows.
This allows menulists, textboxes, etc. which use the arrow keys themselves to be focused with tab, but skipped with the arrows.
This means the user won't fall into these controls when using the up/down arrow keys and be confused by the subsequent arrowing behaviour.
2. When a menulist, textbox, etc. is focused, the arrow keys, space and enter are now passed to the control.
This is a better fix for handling of the arrow keys by menulists (bug 1522092).
It also fixes left arrow in a textarea moving to the previous view instead of moving the caret (bug 1489874).
3. This improves handling of dynamic updates to the panel.
For example, elements that are initially disabled and enabled later will be navigable.
This is because the next element is determined dynamically by the TreeWalker, rather than using a cached list.
4. The interim fix for bug 1522092 disabled PanelMultiView keyboard navigation.
This caused some regressions, including arrow keys/activation on the Site Identity Report a Problem link (bug 1539976) and some controls not being navigable if the Site Identity panel is opened using the mouse (bug 1539984).
With the above fixes, we can now re-enable PanelMultiView keyboard navigation in the Site identity panel and thus fix these regressions.
5. Previously, PanelMultiView keyboard navigation was disabled in the main toolbar overflow menu.
This is because the search box can be added to the overflow menu, which previously caused problems for the arrow keys.
With the above fixes, we can now safely enable PanelMultiView keyboard navigation in the overflow menu.
6. PanelMultiView keyboard tests have been added.
Previously, we relied on tests specific to various panels to exercise this functionality.
Differential Revision: https://phabricator.services.mozilla.com/D25905
--HG--
extra : moz-landing-system : lando
PanelMultiView's keyboard navigation code currently overrides the arrow keys in menulists.
This breaks the permission selectors in the Site Identity panel.
For now, just disable this keyboard navigation code.
DOM will then handle tabbing as it normally would.
This panel is more like a dialog than a menu, so users will generally navigate it with the tab key rather than the arrow keys anyway.
Note that the code in PanelMultiView which makes controls focusable still runs even with disablekeynav set, which is what we want.
Differential Revision: https://phabricator.services.mozilla.com/D21484
--HG--
extra : moz-landing-system : lando
This is mostly a lot of boilerplate based off the trackers category/subpanels.
I would like to do some code-de-duplication, especially in browser-contentblocking,
but I figured it would be a good idea to leave that to a different bug to not obstruct
the feature from landing :)
Differential Revision: https://phabricator.services.mozilla.com/D18826
--HG--
extra : rebase_source : d0fb21c5a42cf16dfe6b185806575f09e9a9f1a5
Change the styling of the create/remove exception button in the control center.
Differential Revision: https://phabricator.services.mozilla.com/D10312
--HG--
extra : moz-landing-system : lando
This removes the old TRACKING_PROTECTION_EVENTS probe and replaces it with new
Telemetry events that record basic user interaction in the identity popup.
We are now measuring interaction with more elements than before, not just block/unblock.
We're also dropping the old way of measuring updates to onSecurityChange,
since with the recent changes to content blocking it would just record most page loads.
Differential Revision: https://phabricator.services.mozilla.com/D6895
--HG--
extra : moz-landing-system : lando
Labels in the identity popup that are potentially multiline get dynamic heights set
as part of the descriptionHeightWorkaround. This causes some cross-platform glitches
in vertically centering the icon and the label of the disabled indicator.
The disabled label doesn't really need to be multiline, so we avoid doing that. This
also means that we need to make some changes to handle long "Disabled" labels a little
more gracefully, but looking at existing translations of the word "Disabled" we won't
run into trouble: https://transvision.mozfr.org/string/?entity=browser/chrome/browser/browser.dtd:contentBlocking.disabled.label&repo=gecko_strings
Differential Revision: https://phabricator.services.mozilla.com/D6041
--HG--
extra : moz-landing-system : lando
This updates some copy based on UX and legal requirements as well as add a correct
SUMO URL for the "Learn More" link for breakage reporting.
Differential Revision: https://phabricator.services.mozilla.com/D4172
--HG--
extra : moz-landing-system : lando
This commit switches the identity popup to use "Content Blocking" as a top-level section
instead of Tracking Protection, which is now demoted to a category of Content Blocking.
To keep this change halfway reviewable, I avoided renaming variables, classNames, ids, etc.
that use the term trackingProtection if they were otherwise unaffected by this patch. There
will be other patches that can do this in the future
Differential Revision: https://phabricator.services.mozilla.com/D2775
--HG--
rename : browser/base/content/browser-trackingprotection.js => browser/base/content/browser-contentblocking.js
extra : rebase_source : 0dd57d6142c971617e9f47d32ce76a4a028d98eb
PanelMultiView has its own concept of "selected", so we should use this rather than move focus
using advanceFocusIntoSubTree.
MozReview-Commit-ID: DW2JqqggLl1
--HG--
extra : rebase_source : ec7a6f83fdda176f3286cf4395dc72de6cad2466
The containers are given an ARIA role of group and labels are associated using aria-labelledby.
For example, this allows screen reader users to know which permission each control is associated with.
Otherwise, they might hear only "Clear this permission and ask again button", with no knowledge of what the permission is.
MozReview-Commit-ID: LeiOmz6go9l
--HG--
extra : rebase_source : 66920efd9d0f72375561c5b10d4bbd765306abf1