[omnibox][ai-mode] Adjust tab order for RHS AIM button and keyword mode Desired behavior: 1) `query<tab>` should focus the AIM button. 2) `youtube<tab>` should focus the keyword chip. 3) `youtube<tab><tab>` should focus the 2nd suggestion. 4) `youtube<tab>query<tab>` should focus the 2nd suggestion. 5) `@gemini<tab>` should focus the 2nd suggestion. 6) `<shift+tab xN>` should perfectly undo `<tab xN>` Currently, (2) inserts the AIM button in the tab order. But the case is handled correctly anyways because the keyword chip comes earlier in the tab order. This CL takes a stricter approach of not inserting the AIM button in the tab order; partly because it's more semantically correct and partly because it's simpler to implement. No behavior change. Currently, (3) inserts the AIM button in the tab order. But the case is handled correctly anyways because the AIM button is hidden after user tabs into a keyword chip. This CL doesn't insert the AIM button in the tab order to avoid relying on the AIM button visibility logic remaining constant over time. Currently, (5) isn't handled correctly, the AIM button is selected, breaking muscle memory. This CL doesn't insert the AIM button in the tab order when the 2nd match has an instant keyword. Currently, (6) isn't handled correctly when e.g. `youtube<tab><tab><shift+tab>`. The AIM button isn't focused when tabbing forward, because the AIM button isn't visible when tabbed into a keyword chip (see (2) above). But the AIM button is focused when tabbing backwards because the AIM button is visible when the suggestion below the keyword chip is focused. This CL's approach simply avoids adding the AIM button in the tab order when - the 1st match has a keyword chip; (2) & (3) - the 1st match is in typed keyword mode; (4) - the 2nd match has an instant keyword; (5) And since this logic doesn't rely on AIM button visibility, (6) works correctly too. Bug: 432744091 Change-Id: Ie309867a19f22779689816498c942a06147e291c Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6926796 Reviewed-by: Justin Donnelly <jdonnelly@chromium.org> Commit-Queue: manuk hovanesian <manukh@chromium.org> Cr-Commit-Position: refs/heads/main@{#1515151}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure.
For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.
If you found a bug, please file it at https://crbug.com/new.