New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 627221 link

Starred by 7 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug

Blocking:
issue 589726



Sign in to add a comment

Telemetry action_runner keypress tests failing on Mac due to FATAL:browser_window_utils.mm(39)] Check failed: event.os_event != NULL

Project Member Reported by eakuefner@chromium.org, Jul 11 2016

Issue description

(cc Ned, Petr FYI)

Support for dispatching key events from Telemetry was added in https://codereview.chromium.org/2122703002 but this seems to have uncovered a crash bug on Mac. This is blocking the Catapult roll so I'm going to revert the offending CL for now, but Telemetry needs this functionality to support building system health user stories. shrike, can you help triage? Here's a stack trace:

********************************************************************************
  Standard output:
********************************************************************************
  	[48485:1287:0711/021633:ERROR:vt_video_encode_accelerator_mac.cc(539)]  VTCompressionSessionCreate failed: -12908
  	[48482:1287:0711/021633:FATAL:browser_window_utils.mm(39)] Check failed: event.os_event != NULL. 
  	0   Chromium Framework                  0x00000001077ad273 _ZN4base5debug10StackTraceC1Ev + 19
  	1   Chromium Framework                  0x00000001077cd3e7 _ZN7logging10LogMessageD2Ev + 71
  	2   Chromium Framework                  0x0000000109b55eea +[BrowserWindowUtils shouldHandleKeyboardEvent:] + 106
  	3   Chromium Framework                  0x0000000109b47717 _ZN18BrowserWindowCocoa22PreHandleKeyboardEventERKN7content22NativeWebKeyboardEventEPb + 71
  	4   Chromium Framework                  0x0000000109975760 _ZThn8_N7Browser22PreHandleKeyboardEventEPN7content11WebContentsERKNS0_22NativeWebKeyboardEventEPb + 64
  	5   Chromium Framework                  0x00000001048cd2c0 _ZThn144_N7content15WebContentsImpl22PreHandleKeyboardEventERKNS_22NativeWebKeyboardEventEPb + 48
  	6   Chromium Framework                  0x00000001047ba878 _ZN7content20RenderWidgetHostImpl20ForwardKeyboardEventERKNS_22NativeWebKeyboardEventE + 280
  	7   Chromium Framework                  0x0000000104510f80 _ZN7content8devtools5input12InputHandler16DispatchKeyEventERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEPKiPKdPSA_SG_SG_SG_SG_SD_SD_PKbSI_SI_ + 688
  	8   Chromium Framework                  0x000000010440a41e _ZN7content26DevToolsProtocolDispatcher23OnInputDispatchKeyEventENS_17DevToolsCommandIdENSt3__110unique_ptrIN4base15DictionaryValueENS2_14default_deleteIS5_EEEE + 1886
  	9   Chromium Framework                  0x00000001044140e9 _ZN4base8internal7InvokerINS0_9BindStateIMN7content26DevToolsProtocolDispatcherEFbNS3_17DevToolsCommandIdENSt3__110unique_ptrINS_15DictionaryValueENS6_14default_deleteIS8_EEEEEJNS0_17UnretainedWrapperIS4_EEEEEFbS5_SB_EE3RunEPNS0_13BindStateBaseEOS5_OSB_ + 57
  	10  Chromium Framework                  0x000000010450d38f _ZN7content23DevToolsProtocolHandler21HandleOptionalCommandEiNSt3__110unique_ptrIN4base15DictionaryValueENS1_14default_deleteIS4_EEEEPiPNS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE + 415
  	11  Chromium Framework                  0x000000010450d1b7 _ZN7content23DevToolsProtocolHandler21HandleOptionalMessageEiRKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEPiPS7_ + 183
  	12  Chromium Framework                  0x000000010452efeb _ZN7content28RenderFrameDevToolsAgentHost23DispatchProtocolMessageERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE + 155
  	13  Chromium Framework                  0x0000000104508960 _ZN7content21DevToolsAgentHostImpl23DispatchProtocolMessageEPNS_23DevToolsAgentHostClientERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE + 32
  	14  Chromium Framework                  0x00000001057f5b76 _ZN21devtools_http_handler27DevToolsAgentHostClientImpl9OnMessageERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE + 182
  	15  Chromium Framework                  0x00000001057f6bef _ZN4base8internal7InvokerINS0_9BindStateIMN21devtools_http_handler19DevToolsHttpHandlerEFviRKNSt3__112basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEEEJNS_7WeakPtrIS4_EEiSB_EEEFvvEE3RunEPNS0_13BindStateBaseE + 111
  	16  Chromium Framework                  0x00000001077ad8eb _ZN4base5debug13TaskAnnotator7RunTaskEPKcRKNS_11PendingTaskE + 187
  	17  Chromium Framework                  0x00000001077e11cc _ZN4base11MessageLoop7RunTaskERKNS_11PendingTaskE + 572
  	18  Chromium Framework                  0x00000001077e14ec _ZN4base11MessageLoop21DeferOrRunPendingTaskENS_11PendingTaskE + 44
  	19  Chromium Framework                  0x00000001077e18f3 _ZN4base11MessageLoop6DoWorkEv + 371
  	20  Chromium Framework                  0x00000001077e5007 _ZN4base24MessagePumpCFRunLoopBase7RunWorkEv + 55
  	21  Chromium Framework                  0x00000001077ce9da _ZN4base3mac15CallWithEHFrameEU13block_pointerFvvE + 10
  	22  Chromium Framework                  0x00000001077e4954 _ZN4base24MessagePumpCFRunLoopBase13RunWorkSourceEPv + 68
  	23  CoreFoundation                      0x00007fff8624b5b1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
  	24  CoreFoundation                      0x00007fff8623cc62 __CFRunLoopDoSources0 + 242
  	25  CoreFoundation                      0x00007fff8623c3ef __CFRunLoopRun + 831
  	26  CoreFoundation                      0x00007fff8623be75 CFRunLoopRunSpecific + 309
  	27  HIToolbox                           0x00007fff89d02a0d RunCurrentEventLoopInMode + 226
  	28  HIToolbox                           0x00007fff89d027b7 ReceiveNextEventCommon + 479
  	29  HIToolbox                           0x00007fff89d025bc _BlockUntilNextEventMatchingListInModeWithFilter + 65
  	30  AppKit                              0x00007fff8bdce24e _DPSNextEvent + 1434
  	31  AppKit                              0x00007fff8bdcd89b -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 122
  	32  AppKit                              0x00007fff8c12ce2e -[NSApplication _realDoModalLoop:peek:] + 642
  	33  AppKit                              0x00007fff8c12b54e -[NSApplication runModalForWindow:] + 117
  	34  AppKit                              0x00007fff8c12b0fd -[NSAlert runModal] + 145
  	35  AppKit                              0x00007fff8bdd3119 __55-[NSPersistentUIRestorer promptToIgnorePersistentState]_block_invoke + 1054
  	36  AppKit                              0x00007fff8bdd2cbe -[NSApplication _suppressFinishLaunchingFromEventHandlersWhilePerformingBlock:] + 28
  	37  AppKit                              0x00007fff8bdd2c5f -[NSPersistentUIRestorer promptToIgnorePersistentState] + 213
  	38  AppKit                              0x00007fff8bdd2b83 -[NSPersistentUIManager promptToIgnorePersistentState] + 28
  	39  AppKit                              0x00007fff8bdd29a4 -[NSApplication _reopenWindowsAsNecessaryIncludingRestorableState:registeringAsReady:completionHandler:] + 252
  	40  AppKit                              0x00007fff8bdd2779 -[NSApplication(NSAppleEventHandling) _handleAEOpenEvent:] + 557
  	41  AppKit                              0x00007fff8bdd21db -[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] + 242
  	42  Foundation                          0x00007fff9246c52a -[NSAppleEventManager dispatchRawAppleEvent:withRawReply:handlerRefCon:] + 294
  	43  Foundation                          0x00007fff9246c39d _NSAppleEventManagerGenericHandler + 106
  	44  AE                                  0x00007fff916fae1f _Z20aeDispatchAppleEventPK6AEDescPS_jPh + 381
  	45  AE                                  0x00007fff916fac32 _ZL25dispatchEventAndSendReplyPK6AEDescPS_ + 31
  	46  AE                                  0x00007fff916fab36 aeProcessAppleEvent + 315
  	47  HIToolbox                           0x00007fff89d0f161 AEProcessAppleEvent + 56
  	48  AppKit                              0x00007fff8bdce0b6 _DPSNextEvent + 1026
  	49  AppKit                              0x00007fff8bdcd89b -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 122
  	50  AppKit                              0x00007fff8bdc199c -[NSApplication run] + 553
  	51  Chromium Framework                  0x00000001077e5a47 _ZN4base24MessagePumpNSApplication5DoRunEPNS_11MessagePump8DelegateE + 359
  	52  Chromium Framework                  0x00000001077e4ddf _ZN4base24MessagePumpCFRunLoopBase3RunEPNS_11MessagePump8DelegateE + 127
  	53  Chromium Framework                  0x00000001077e0d27 _ZN4base11MessageLoop10RunHandlerEv + 215
  	54  Chromium Framework                  0x000000010780ed73 _ZN4base7RunLoop3RunEv + 51
  	55  Chromium Framework                  0x00000001072ea3d8 _ZN22ChromeBrowserMainParts18MainMessageLoopRunEPi + 280
  	56  Chromium Framework                  0x00000001044ba8b4 _ZN7content15BrowserMainLoop23RunMainMessageLoopPartsEv + 52
  	57  Chromium Framework                  0x00000001044bd3ae _ZN7content21BrowserMainRunnerImpl3RunEv + 174
  	58  Chromium Framework                  0x00000001044b6add _ZN7content11BrowserMainERKNS_18MainFunctionParamsE + 173
  	59  Chromium Framework                  0x0000000107294332 _ZN7content21ContentMainRunnerImpl3RunEv + 802
  	60  Chromium Framework                  0x0000000107293346 _ZN7content11ContentMainERKNS_17ContentMainParamsE + 54
  	61  Chromium Framework                  0x0000000103bd00ea ChromeMain + 58
  	
  ********************************************************************************
 

Comment 1 by shrike@chromium.org, Jul 11 2016

Cc: tapted@chromium.org
It looks like the script is faking a key even by passing a string to DevTools. This string makes it to InputHandler::DispatchKeyEvent() in content/browser/devtools/protocol/input_handler.cc, where it is converted to a NativeWebKeyboardEvent and passed along to the browser. The code in [BrowserWindowUtils shouldHandleKeyboardEvent:] in chrome/browser/ui/cocoa/browser_window_utils.mm fails on a DCHECK because the NativeWebKeyboardEvent os_event field is NULL (there was no actual OS event behind the key event). Presumably os_event needs to not be NULL because a handleKeyboardEvent: call at some point passes the native event to the Appkit.

tapted@ - any thoughts on how to deal with this?

Comment 2 by tapted@chromium.org, Jul 12 2016

Components: Platform>DevTools
Owner: dgozman@chromium.org
Status: Assigned (was: Untriaged)
dgozman implemented most of InputHandler::DispatchKeyEvent(..) - is it meant to work on Mac?

I'm not sure what it's used for. Maybe all it needs to do is set `event.skip_in_browser`, to avoid the DCHECK in

@implementation BrowserWindowUtils
+ (BOOL)shouldHandleKeyboardEvent:(const NativeWebKeyboardEvent&)event {
  if (event.skip_in_browser || event.type == NativeWebKeyboardEvent::Char)
    return NO;
  DCHECK(event.os_event != NULL);
  return YES;
}


Setting skip_in_browser sounds like what we should do. It's only intended to be dispatched to web contents. I'll try it out tomorrow.
Blocking: 589726
What's the trybot name I can use to check the fix? If there is no such trybot, how do I run the tests manually?
Make sure that the test is available (not sure if the Catapult patch has rolled into Chromium yet):

(cd third_party/catapult && git cl patch 2144583002)

Then do the following:

third_party/catapult/telemetry/bin/run_tests KeyPress --browser=reference --device=desktop --also-run-disabled
Project Member

Comment 7 by bugdroid1@chromium.org, Jul 13 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6f04d86267fdbb9b0a9b7cda9841f7f7126ef0ef

commit 6f04d86267fdbb9b0a9b7cda9841f7f7126ef0ef
Author: catapult-deps-roller <catapult-deps-roller@chromium.org>
Date: Wed Jul 13 02:19:51 2016

Roll src/third_party/catapult/ 4160831d2..72fb0b506 (24 commits).

https://chromium.googlesource.com/external/github.com/catapult-project/catapult.git/+log/4160831d2082..72fb0b5062af

$ git log 4160831d2..72fb0b506 --date=short --no-merges --format='%ad %ae %s'

BUG= 605842 ,531641, 605842 ,450171,589726, 627221 , 625852 ,589726, 622290 ,589726

TBR=catapult-sheriff@chromium.org

Review-Url: https://codereview.chromium.org/2147823002
Cr-Commit-Position: refs/heads/master@{#404903}

[modify] https://crrev.com/6f04d86267fdbb9b0a9b7cda9841f7f7126ef0ef/DEPS

Project Member

Comment 8 by bugdroid1@chromium.org, Jul 13 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/204daf38980716774d1d1e960ff803e6d317665e

commit 204daf38980716774d1d1e960ff803e6d317665e
Author: dgozman <dgozman@chromium.org>
Date: Wed Jul 13 03:51:01 2016

[DevTools] Set skip_in_browser=true for synthethic keyboard events.

We don't have native event (which is used in browser) and we only intend
these events to be processed by web contents anyway.

BUG= 627221 

Review-Url: https://codereview.chromium.org/2143113003
Cr-Commit-Position: refs/heads/master@{#404984}

[modify] https://crrev.com/204daf38980716774d1d1e960ff803e6d317665e/chrome/browser/devtools/devtools_sanity_browsertest.cc
[modify] https://crrev.com/204daf38980716774d1d1e960ff803e6d317665e/content/browser/devtools/protocol/input_handler.cc
[modify] https://crrev.com/204daf38980716774d1d1e960ff803e6d317665e/third_party/WebKit/Source/devtools/front_end/Tests.js

Project Member

Comment 9 by bugdroid1@chromium.org, Jul 13 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5889b01bdd579d8f04702996128340ca024f3403

commit 5889b01bdd579d8f04702996128340ca024f3403
Author: catapult-deps-roller <catapult-deps-roller@chromium.org>
Date: Wed Jul 13 14:18:38 2016

Roll src/third_party/catapult/ 65c2d9df0..8b7bf3c29 (1 commit).

https://chromium.googlesource.com/external/github.com/catapult-project/catapult.git/+log/65c2d9df0d06..8b7bf3c29a56

$ git log 65c2d9df0..8b7bf3c29 --date=short --no-merges --format='%ad %ae %s'

BUG= 627221 

TBR=catapult-sheriff@chromium.org

Review-Url: https://codereview.chromium.org/2152433002
Cr-Commit-Position: refs/heads/master@{#405141}

[modify] https://crrev.com/5889b01bdd579d8f04702996128340ca024f3403/DEPS

Status: Fixed (was: Assigned)
The patch re-enabling the tests on Mac (https://codereview.chromium.org/2152433002) has made it through the Chromium CQ. Thanks for fixing this :-)
Project Member

Comment 11 by bugdroid1@chromium.org, Jul 13 2016

Labels: merge-merged-2795
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/204daf38980716774d1d1e960ff803e6d317665e

commit 204daf38980716774d1d1e960ff803e6d317665e
Author: dgozman <dgozman@chromium.org>
Date: Wed Jul 13 03:51:01 2016

[DevTools] Set skip_in_browser=true for synthethic keyboard events.

We don't have native event (which is used in browser) and we only intend
these events to be processed by web contents anyway.

BUG= 627221 

Review-Url: https://codereview.chromium.org/2143113003
Cr-Commit-Position: refs/heads/master@{#404984}

[modify] https://crrev.com/204daf38980716774d1d1e960ff803e6d317665e/chrome/browser/devtools/devtools_sanity_browsertest.cc
[modify] https://crrev.com/204daf38980716774d1d1e960ff803e6d317665e/content/browser/devtools/protocol/input_handler.cc
[modify] https://crrev.com/204daf38980716774d1d1e960ff803e6d317665e/third_party/WebKit/Source/devtools/front_end/Tests.js

Project Member

Comment 12 by bugdroid1@chromium.org, Jul 13 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5889b01bdd579d8f04702996128340ca024f3403

commit 5889b01bdd579d8f04702996128340ca024f3403
Author: catapult-deps-roller <catapult-deps-roller@chromium.org>
Date: Wed Jul 13 14:18:38 2016

Roll src/third_party/catapult/ 65c2d9df0..8b7bf3c29 (1 commit).

https://chromium.googlesource.com/external/github.com/catapult-project/catapult.git/+log/65c2d9df0d06..8b7bf3c29a56

$ git log 65c2d9df0..8b7bf3c29 --date=short --no-merges --format='%ad %ae %s'

BUG= 627221 

TBR=catapult-sheriff@chromium.org

Review-Url: https://codereview.chromium.org/2152433002
Cr-Commit-Position: refs/heads/master@{#405141}

[modify] https://crrev.com/5889b01bdd579d8f04702996128340ca024f3403/DEPS

Cc: rsesek@chromium.org erikc...@chromium.org
 Issue 603930  has been merged into this issue.

Sign in to add a comment