Able to access omnibox through bluetooth keyboard when settings or Bookmarks screen is ON. |
|||||||
Issue descriptionApp Version: 57.0.2960.0 canary, iOS Version: 9.3.5, iOS 10 Device: iPad PreCondition : 1.Connect the Bluetooth keyboard to the device. Steps to reproduce: 1. Launch chrome. 2. Type in “ ⌘ , “ in the bluetooth keyboard to open Settings dialog 3. Press “tab” key in bluetooth keyboard. Observed results: Able to access omnibox Expected results: Background should be disabled when settings,bookmarks and history screens are present. Number of times you were able to reproduce: 5/5 Bug reproducible after clean install: Yes Bug reproducible after clearing cache and cookies: Yes Bug reproducible on Chrome Mobile on Android: NA Bug reproducible on Dolphin/Safari/Firefox: NA Bug reproducible on current stable build (App Version, iOS Version): Yes in M55 Bug reproducible on the current beta channel build (App Version, iOS Version): Yes in M56 Link to Video : https://drive.google.com/a/google.com/file/d/0B--UpU2GW2EpZHpUb3N1UXpGYUk/view?usp=sharing
,
Dec 29 2016
,
Dec 29 2016
Louis, could you please look if settings should move focus from omnibox. CCing Eric for bookmarks, which probably should do the same.
,
Jan 4 2017
I initially thought we were the one focusing the omnibox via keyboard commands, but turns out we never handle the tab key (@"\t").
It is the keyboard that decides to focus the omnibox via:
* thread #1: tid = 0x92dd81, 0x0000000119704351 UIKit`-[UIResponder becomeFirstResponder], name = 'CrWebMain', queue = 'com.apple.main-thread', stop reason = breakpoint 5.1
frame #0: 0x0000000119704351 UIKit`-[UIResponder becomeFirstResponder]
frame #1: 0x000000011959da87 UIKit`-[UIView(Hierarchy) becomeFirstResponder] + 138
frame #2: 0x0000000119ffd7a8 UIKit`-[UITextField becomeFirstResponder] + 51
* frame #3: 0x000000010f5b7e36 Chromium`::-[OmniboxTextFieldIOS becomeFirstResponder](self=0x00007f811301e000, _cmd="becomeFirstResponder") + 54 at omnibox_text_field_ios.mm:994
frame #4: 0x00000001197bbb66 UIKit`-[UIKeyboardImpl handleTabWithShift:beforePublicKeyCommands:] + 352
frame #5: 0x00000001197b26c8 UIKit`-[UIKeyboardImpl handleKeyCommand:repeatOkay:beforePublicKeyCommands:] + 1578
frame #6: 0x00000001197cdcb1 UIKit`-[UIKeyboardImpl handleKeyEvent:executionContext:] + 1233
frame #7: 0x000000011a03d36b UIKit`-[UIKeyboardTaskQueue continueExecutionOnMainThread] + 385
frame #8: 0x00000001197cd74f UIKit`-[UIKeyboardImpl handleKeyEvent:] + 215
frame #9: 0x000000011adb044c CoreFoundation`__invoking___ + 140
frame #10: 0x000000011adb02d1 CoreFoundation`-[NSInvocation invoke] + 289
frame #11: 0x0000000119cd80b7 UIKit`-[UIRepeatedAction invoke] + 293
frame #12: 0x0000000119cd80ed UIKit`-[UIRepeatedAction _preInvocationTimerFire] + 22
frame #13: 0x000000011950bce2 UIKit`-[UIApplication _handleKeyUIEvent:] + 2183
frame #14: 0x00000001197060bd UIKit`-[UIResponder _handleKeyUIEvent:] + 79
frame #15: 0x00000001197060bd UIKit`-[UIResponder _handleKeyUIEvent:] + 79
frame #16: 0x00000001197060bd UIKit`-[UIResponder _handleKeyUIEvent:] + 79
frame #17: 0x00000001197060bd UIKit`-[UIResponder _handleKeyUIEvent:] + 79
frame #18: 0x00000001197060bd UIKit`-[UIResponder _handleKeyUIEvent:] + 79
frame #19: 0x00000001197060bd UIKit`-[UIResponder _handleKeyUIEvent:] + 79
frame #20: 0x00000001197060bd UIKit`-[UIResponder _handleKeyUIEvent:] + 79
frame #21: 0x00000001197060bd UIKit`-[UIResponder _handleKeyUIEvent:] + 79
frame #22: 0x00000001197060bd UIKit`-[UIResponder _handleKeyUIEvent:] + 79
frame #23: 0x00000001197060bd UIKit`-[UIResponder _handleKeyUIEvent:] + 79
frame #24: 0x00000001197060bd UIKit`-[UIResponder _handleKeyUIEvent:] + 79
frame #25: 0x00000001197060bd UIKit`-[UIResponder _handleKeyUIEvent:] + 79
frame #26: 0x00000001197060bd UIKit`-[UIResponder _handleKeyUIEvent:] + 79
frame #27: 0x00000001197060bd UIKit`-[UIResponder _handleKeyUIEvent:] + 79
frame #28: 0x000000011950b175 UIKit`-[UIApplication handleKeyUIEvent:] + 103
frame #29: 0x000000011950b0ee UIKit`-[UIApplication handleKeyHIDEvent:] + 665
frame #30: 0x0000000119cf6f96 UIKit`__dispatchPreprocessedEventFromEventQueue + 1305
frame #31: 0x0000000119cf0463 UIKit`__handleEventQueue + 4879
frame #32: 0x000000011adce761 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
frame #33: 0x000000011adb398c CoreFoundation`__CFRunLoopDoSources0 + 556
frame #34: 0x000000011adb2e76 CoreFoundation`__CFRunLoopRun + 918
frame #35: 0x000000011adb2884 CoreFoundation`CFRunLoopRunSpecific + 420
frame #36: 0x0000000120540a6f GraphicsServices`GSEventRunModal + 161
frame #37: 0x00000001194ecc68 UIKit`UIApplicationMain + 159
frame #38: 0x000000010ec9856a Chromium`main(argc=1, argv=0x00007fff50f688e8) + 1082 at chrome_exe_main.mm:66
frame #39: 0x0000000122a4968d libdyld.dylib`start + 1
frame #40: 0x0000000122a4968d libdyld.dylib`start + 1
Note the handleTabWithShift:beforePublicKeyCommands, so I don't think that adding a no-op key command would work.
I found out that when the BookmarkEditViewController is up, the first responder is nil and the bug reproes.
But when I let the BookmarkEditViewController become first responder, the bug doesn't repro.
Having all screens becoming first responders is going to be tricky…
,
Feb 24 2017
https://codereview.chromium.org/2718683002/ I couldn't test this with EarlGrey, I filed a bug for them to implement simulated key presses. If it comes, I'll add tests in https://codereview.chromium.org/2714933002/. Moving to M58 as this is not a regression.
,
Feb 24 2017
Claude, is Franky able to perform external keyboard events?
,
Feb 24 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a4a59720181d50024b86da5937cc7ae459f725a6 commit a4a59720181d50024b86da5937cc7ae459f725a6 Author: lpromero <lpromero@chromium.org> Date: Fri Feb 24 15:49:16 2017 Let modal view controllers become first responder when presented. By becoming first responder, they become the recipient of key presses and prevent the system to automatically focus the omnibox by calling -[UIKeyboardImpl handleTabWithShift:beforePublicKeyCommands:] when the tab key is pressed. BUG= 676993 R=gambard@chromium.org Review-Url: https://codereview.chromium.org/2718683002 Cr-Commit-Position: refs/heads/master@{#452835} [modify] https://crrev.com/a4a59720181d50024b86da5937cc7ae459f725a6/ios/chrome/browser/ui/bookmarks/bookmark_navigation_controller.mm [modify] https://crrev.com/a4a59720181d50024b86da5937cc7ae459f725a6/ios/chrome/browser/ui/history/history_panel_view_controller.mm [modify] https://crrev.com/a4a59720181d50024b86da5937cc7ae459f725a6/ios/chrome/browser/ui/reading_list/reading_list_view_controller.mm [modify] https://crrev.com/a4a59720181d50024b86da5937cc7ae459f725a6/ios/chrome/browser/ui/settings/settings_navigation_controller.mm
,
Feb 24 2017
The following revision refers to this bug: https://chrome-internal.googlesource.com/chrome/ios_internal.git/+/b2f7720512a7e920272c5bcaef89d59fea79c36a commit b2f7720512a7e920272c5bcaef89d59fea79c36a Author: lpromero <lpromero@google.com> Date: Fri Feb 24 16:58:34 2017
,
Feb 24 2017
,
Feb 28 2017
Verified on chrome canary version 58.0.3026.0 on iPad Mini 10.2.1/9.3.5. Background is disabled when settings, bookmarks and history screens are present. |
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by pmadalla@chromium.org
, Dec 26 2016