Issue metadata
Sign in to add a comment
|
DRM site page is getting hanged in fullscreen upon right click |
||||||||||||||||||||||
Issue descriptionChrome Version: 70.0.3538.16 OS: Windows & Mac What steps will reproduce the problem? (1) Launch chrome (2) Navigate to DRM site (http://drmtest2.adobe.com/AccessPlayer/player.html) (3) Play the video (4) Fullscreen video by clicking on 'Full screen' button at bottom right corner of the page (5) Check forward & reverse (video should be played) (6) Right click on video (while playing) & observe no popup menu is getting generated & page get hanged (7) Now try to move forward the video .. it is not working (8) Try to rewind video.. it is not working (9) Now unable to play & click any control when it is in full screen (10) Click on'Full screen' button at bottom right corner of the page (11) Try to reload the page . Observe page gets crashed after some time What is the expected result? DRM site should be played successfully in fullscreen mode when user right click on the video & Forwsrd & rewind mode too What happens instead? DRM site page is getting hanged in fullscreen upon right click Issue seen on canary-71.0.3552.2 & dev-70.0.3538.16. No issue seen on stable-69.0.3497.92.Issue regressed in M70. Bisect info: ----------- Good-70.0.3523.0 Bad- 70.0.3524.0 Change log: ---------- You are probably looking for a change made after 583316 (known good), but no later than 583317 (first known bad). CHANGELOG URL: The script might not always return single CL as suspect as some perf builds might get missing due to failure. https://chromium.googlesource.com/chromium/src/+log/8ac49d0dd386e1aa9d647df698cfe30bfa989c7e..2065e9fca33dd2d9b96e1e22bc73c6fbd404ebb0 Suspecting: https://chromium.googlesource.com/chromium/src/+/2065e9fca33dd2d9b96e1e22bc73c6fbd404ebb0 ellyjones@,Could you please take a look into this issue. Please find the attached screencast for reference.As it is regressed in M70, adding release block stable. Note: DRM site will not play on Linux OS. Thanks..!
,
Sep 17
#1: Does step 3 require Flash? Do you have a repro for this that doesn't require Flash?
,
Sep 18
ellyjones@, At step 3, we have to enable (allow) adobe flash player to play video. Thanks.!
,
Sep 18
#3: Right - do we have any repro steps that *don't* use Flash? If this bug only affects Flash content that lowers the priority vs if it also affects non-Flash pages.
,
Sep 18
Okay, I repro this using the Flash video. Hm.
,
Sep 18
The renderer is hung here:
(lldb) bt
* thread #1, name = 'CrRendererMain', queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
* frame #0: 0x00007fff50f8f20a libsystem_kernel.dylib`mach_msg_trap + 10
frame #1: 0x00007fff50f8e724 libsystem_kernel.dylib`mach_msg + 60
frame #2: 0x00007fff28f6fff5 CoreFoundation`__CFRunLoopServiceMachPort + 341
frame #3: 0x00007fff28f6f347 CoreFoundation`__CFRunLoopRun + 1783
frame #4: 0x00007fff28f6e9b7 CoreFoundation`CFRunLoopRunSpecific + 487
frame #5: 0x00007fff2b085f26 Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 277
frame #6: 0x000000010df2d3cd libbase.dylib`base::MessagePumpNSRunLoop::DoRun(this=0x00007fe12a020000, delegate=<unavailable>) at message_pump_mac.mm:729 [opt]
frame #7: 0x000000010df2be9e libbase.dylib`base::MessagePumpCFRunLoopBase::Run(this=0x00007fe12a020000, delegate=0x00007fe12a020a50) at message_pump_mac.mm:184 [opt]
frame #8: 0x000000010df26ec2 libbase.dylib`base::MessageLoop::Run(this=0x00007fe12a020a50, application_tasks_allowed=<unavailable>) at message_loop.cc:383 [opt]
frame #9: 0x000000010df65099 libbase.dylib`base::RunLoop::Run(this=0x00007ffee4032ce8) at run_loop.cc:102 [opt]
frame #10: 0x00000001192e84c1 libcontent.dylib`content::PPB_Flash_MessageLoop_Impl::InternalRun(this=0x00007fe128d845d0, callback=<unavailable>)> const&) at ppb_flash_message_loop_impl.cc:96 [opt]
frame #11: 0x000000011d94647f libppapi_proxy.dylib`ppapi::proxy::PPB_Flash_MessageLoop_Proxy::OnMsgRun(this=<unavailable>, flash_message_loop=0x00007ffee4033188, reply=<unavailable>) at ppb_flash_message_loop_proxy.cc:143 [opt]
frame #12: 0x000000011d9460cc libppapi_proxy.dylib`bool IPC::MessageT<PpapiHostMsg_PPBFlashMessageLoop_Run_Meta, std::__1::tuple<ppapi::HostResource>, std::__1::tuple<int> >::DispatchDelayReply<ppapi::proxy::PPB_Flash_MessageLoop_Proxy, void, void (ppapi::proxy::PPB_Flash_MessageLoop_Proxy::*)(ppapi::HostResource const&, IPC::Message*)>(IPC::Message const*, ppapi::proxy::PPB_Flash_MessageLoop_Proxy*, void*, void (ppapi::proxy::PPB_Flash_MessageLoop_Proxy::*)(ppapi::HostResource const&, IPC::Message*)) [inlined] void base::DispatchToMethodImpl<ppapi::proxy::PPB_Flash_MessageLoop_Proxy*, void (ppapi::proxy::PPB_Flash_MessageLoop_Proxy::*)(ppapi::HostResource const&, IPC::Message*), std::__1::tuple<ppapi::HostResource>, std::__1::tuple<IPC::Message&>, 0ul, 0ul>(method=<unavailable>, in=0x000003ae466eea89, out=<unavailable>)(ppapi::HostResource const&, IPC::Message*), std::__1::tuple<ppapi::HostResource>&&, std::__1::tuple<IPC::Message&>*, std::__1::integer_sequence<unsigned long, 0ul>, std::__1::integer_sequence<unsigned long, 0ul>) at tuple.h:94 [opt]
frame #13: 0x000000011d9460ad libppapi_proxy.dylib`bool IPC::MessageT<PpapiHostMsg_PPBFlashMessageLoop_Run_Meta, std::__1::tuple<ppapi::HostResource>, std::__1::tuple<int> >::DispatchDelayReply<ppapi::proxy::PPB_Flash_MessageLoop_Proxy, void, void (ppapi::proxy::PPB_Flash_MessageLoop_Proxy::*)(ppapi::HostResource const&, IPC::Message*)>(IPC::Message const*, ppapi::proxy::PPB_Flash_MessageLoop_Proxy*, void*, void (ppapi::proxy::PPB_Flash_MessageLoop_Proxy::*)(ppapi::HostResource const&, IPC::Message*)) [inlined] void base::DispatchToMethod<ppapi::proxy::PPB_Flash_MessageLoop_Proxy*, void (ppapi::proxy::PPB_Flash_MessageLoop_Proxy::*)(ppapi::HostResource const&, IPC::Message*), std::__1::tuple<ppapi::HostResource>, std::__1::tuple<IPC::Message&> >(method=<unavailable>, in=0x000003ae466eea89, out=<unavailable>)(ppapi::HostResource const&, IPC::Message*), std::__1::tuple<ppapi::HostResource>&&, std::__1::tuple<IPC::Message&>*) at tuple.h:105 [opt]
frame #14: 0x000000011d9460ad libppapi_proxy.dylib`bool IPC::MessageT<PpapiHostMsg_PPBFlashMessageLoop_Run_Meta, std::__1::tuple<ppapi::HostResource>, std::__1::tuple<int> >::DispatchDelayReply<ppapi::proxy::PPB_Flash_MessageLoop_Proxy, void, void (msg=0x00007fe12a5adcd0, obj=<unavailable>, (null)=<unavailable>, func=<unavailable>)(ppapi::HostResource const&, IPC::Message*)>(IPC::Message const*, ppapi::proxy::PPB_Flash_MessageLoop_Proxy*, void*, void (ppapi::proxy::PPB_Flash_MessageLoop_Proxy::*)(ppapi::HostResource const&, IPC::Message*)) at ipc_message_templates.h:229 [opt]
frame #15: 0x000000011d945cd9 libppapi_proxy.dylib`ppapi::proxy::PPB_Flash_MessageLoop_Proxy::OnMessageReceived(this=0x00007fe128d940a0, msg=0x00007fe12a5adcd0) at ppb_flash_message_loop_proxy.cc:110 [opt]
frame #16: 0x000000011d8a74f0 libppapi_proxy.dylib`ppapi::proxy::Dispatcher::OnMessageReceived(this=0x00007fe12a42af70, msg=0x00007fe12a5adcd0) at dispatcher.cc:70 [opt]
frame #17: 0x000000011d93fa36 libppapi_proxy.dylib`ppapi::proxy::HostDispatcher::OnMessageReceived(this=0x00007fe12a42af70, msg=0x00007fe12a5adcd0) at host_dispatcher.cc:206 [opt]
frame #18: 0x0000000110128f01 libipc.dylib`IPC::ChannelProxy::Context::OnDispatchMessage(this=0x00007fe12a45a910, message=<unavailable>) at ipc_channel_proxy.cc:320 [opt]
frame #19: 0x000000011013bfc2 libipc.dylib`IPC::SyncChannel::ReceivedSyncMsgQueue::DispatchMessages(this=<unavailable>, dispatching_context=0x00007fe12a45a910) at ipc_sync_channel.cc:230 [opt]
frame #20: 0x000000011013e0ba libipc.dylib`IPC::SyncChannel::OnDispatchEventSignaled(base::WaitableEvent*) [inlined] IPC::SyncChannel::SyncContext::DispatchMessages(this=0x00007fe12a45a910) at ipc_sync_channel.cc:435 [opt]
frame #21: 0x000000011013e05f libipc.dylib`IPC::SyncChannel::OnDispatchEventSignaled(this=0x00007fe12a460890, event=0x00007fe12a033460) at ipc_sync_channel.cc:697 [opt]
frame #22: 0x000000010df8870e libbase.dylib`void base::internal::FunctorTraits<base::OnceCallback<void (base::WaitableEvent*)>, void>::Invoke<base::OnceCallback<void (base::WaitableEvent*)>, base::WaitableEvent*>(base::OnceCallback<void (base::WaitableEvent*)>&&, base::WaitableEvent*&&) [inlined] base::OnceCallback<void (base::WaitableEvent*)>::Run(args=0x00007fe12a033460) at callback.h:99 [opt]
frame #23: 0x000000010df886b4 libbase.dylib`void base::internal::FunctorTraits<base::OnceCallback<void (base::WaitableEvent*)>, void>::Invoke<base::OnceCallback<void (callback=<unavailable>, args=<unavailable>)>, base::WaitableEvent*>(base::OnceCallback<void (base::WaitableEvent*)>&&, base::WaitableEvent*&&) at bind_internal.h:577 [opt]
frame #24: 0x000000010df88588 libbase.dylib`base::WaitableEventWatcher::InvokeCallback() [inlined] base::OnceCallback<void ()>::Run(this=<unavailable>) && at callback.h:99 [opt]
frame #25: 0x000000010df8852e libbase.dylib`base::WaitableEventWatcher::InvokeCallback(this=<unavailable>) at waitable_event_watcher_mac.cc:110 [opt]
frame #26: 0x000000010df88877 libbase.dylib`base::internal::Invoker<base::internal::BindState<void (base::WaitableEventWatcher::*)(), base::WeakPtr<base::WaitableEventWatcher> >, void ()>::RunOnce(base::internal::BindStateBase*) [inlined] void base::internal::FunctorTraits<void (base::WaitableEventWatcher::*)(), void>::Invoke<void (method=<unavailable>, receiver_ptr=<unavailable>)(), base::WeakPtr<base::WaitableEventWatcher> >(void (base::WaitableEventWatcher::*)(), base::WeakPtr<base::WaitableEventWatcher>&&) at bind_internal.h:516 [opt]
frame #27: 0x000000010df887fc libbase.dylib`base::internal::Invoker<base::internal::BindState<void (base::WaitableEventWatcher::*)(), base::WeakPtr<base::WaitableEventWatcher> >, void ()>::RunOnce(base::internal::BindStateBase*) [inlined] void base::internal::InvokeHelper<true, void>::MakeItSo<void (functor=<unavailable>, weak_ptr=<unavailable>)(), base::WeakPtr<base::WaitableEventWatcher> >(void (base::WaitableEventWatcher::*&&)(), base::WeakPtr<base::WaitableEventWatcher>&&) at bind_internal.h:636 [opt]
frame #28: 0x000000010df887d9 libbase.dylib`base::internal::Invoker<base::internal::BindState<void (base::WaitableEventWatcher::*)(), base::WeakPtr<base::WaitableEventWatcher> >, void ()>::RunOnce(base::internal::BindStateBase*) [inlined] void base::internal::Invoker<base::internal::BindState<void (base::WaitableEventWatcher::*)(), base::WeakPtr<base::WaitableEventWatcher> >, void ()>::RunImpl<void (functor=<unavailable>, bound=<unavailable>)(), std::__1::tuple<base::WeakPtr<base::WaitableEventWatcher> >, 0ul>(void (base::WaitableEventWatcher::*&&)(), std::__1::tuple<base::WeakPtr<base::WaitableEventWatcher> >&&, std::__1::integer_sequence<unsigned long, 0ul>) at bind_internal.h:689 [opt]
frame #29: 0x000000010df887d9 libbase.dylib`base::internal::Invoker<base::internal::BindState<void (base::WaitableEventWatcher::*)(), base::WeakPtr<base::WaitableEventWatcher> >, void ()>::RunOnce(base=<unavailable>) at bind_internal.h:658 [opt]
frame #30: 0x000000010deef661 libbase.dylib`base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) [inlined] base::OnceCallback<void ()>::Run(this=<unavailable>) && at callback.h:99 [opt]
frame #31: 0x000000010deef607 libbase.dylib`base::debug::TaskAnnotator::RunTask(this=<unavailable>, queue_function=<unavailable>, pending_task=<unavailable>) at task_annotator.cc:101 [opt]
frame #32: 0x000000010dfa2c9a libbase.dylib`base::sequence_manager::internal::ThreadControllerImpl::DoWork(this=0x00007fe12a021080, work_type=<unavailable>) at thread_controller_impl.cc:196 [opt]
frame #33: 0x000000010dfa4c4b libbase.dylib`base::internal::Invoker<base::internal::BindState<void (base::sequence_manager::internal::ThreadControllerImpl::*)(base::sequence_manager::internal::ThreadControllerImpl::WorkType), base::WeakPtr<base::sequence_manager::internal::ThreadControllerImpl>, base::sequence_manager::internal::ThreadControllerImpl::WorkType>, void ()>::Run(base::internal::BindStateBase*) [inlined] void base::internal::FunctorTraits<void (base::sequence_manager::internal::ThreadControllerImpl::*)(base::sequence_manager::internal::ThreadControllerImpl::WorkType), void>::Invoke<void (method=<unavailable>, receiver_ptr=<unavailable>, args=<unavailable>)(base::sequence_manager::internal::ThreadControllerImpl::WorkType), base::WeakPtr<base::sequence_manager::internal::ThreadControllerImpl> const&, base::sequence_manager::internal::ThreadControllerImpl::WorkType const&>(void (base::sequence_manager::internal::ThreadControllerImpl::*)(base::sequence_manager::internal::ThreadControllerImpl::WorkType), base::WeakPtr<base::sequence_manager::internal::ThreadControllerImpl> const&&&, base::sequence_manager::internal::ThreadControllerImpl::WorkType const&&&) at bind_internal.h:516 [opt]
frame #34: 0x000000010dfa4bcc libbase.dylib`base::internal::Invoker<base::internal::BindState<void (base::sequence_manager::internal::ThreadControllerImpl::*)(base::sequence_manager::internal::ThreadControllerImpl::WorkType), base::WeakPtr<base::sequence_manager::internal::ThreadControllerImpl>, base::sequence_manager::internal::ThreadControllerImpl::WorkType>, void ()>::Run(base::internal::BindStateBase*) [inlined] void base::internal::InvokeHelper<true, void>::MakeItSo<void (functor=<unavailable>, weak_ptr=<unavailable>, args=<unavailable>)(base::sequence_manager::internal::ThreadControllerImpl::WorkType), base::WeakPtr<base::sequence_manager::internal::ThreadControllerImpl> const&, base::sequence_manager::internal::ThreadControllerImpl::WorkType const&>(void (base::sequence_manager::internal::ThreadControllerImpl::* const&&&)(base::sequence_manager::internal::ThreadControllerImpl::WorkType), base::WeakPtr<base::sequence_manager::internal::ThreadControllerImpl> const&&&, base::sequence_manager::internal::ThreadControllerImpl::WorkType const&&&) at bind_internal.h:636 [opt]
frame #35: 0x000000010dfa4ba9 libbase.dylib`base::internal::Invoker<base::internal::BindState<void (base::sequence_manager::internal::ThreadControllerImpl::*)(base::sequence_manager::internal::ThreadControllerImpl::WorkType), base::WeakPtr<base::sequence_manager::internal::ThreadControllerImpl>, base::sequence_manager::internal::ThreadControllerImpl::WorkType>, void ()>::Run(base::internal::BindStateBase*) [inlined] void base::internal::Invoker<base::internal::BindState<void (base::sequence_manager::internal::ThreadControllerImpl::*)(base::sequence_manager::internal::ThreadControllerImpl::WorkType), base::WeakPtr<base::sequence_manager::internal::ThreadControllerImpl>, base::sequence_manager::internal::ThreadControllerImpl::WorkType>, void ()>::RunImpl<void (functor=<unavailable>, bound=<unavailable>)(base::sequence_manager::internal::ThreadControllerImpl::WorkType), std::__1::tuple<base::WeakPtr<base::sequence_manager::internal::ThreadControllerImpl>, base::sequence_manager::internal::ThreadControllerImpl::WorkType> const&, 0ul, 1ul>(void (base::sequence_manager::internal::ThreadControllerImpl::* const&&&)(base::sequence_manager::internal::ThreadControllerImpl::WorkType), std::__1::tuple<base::WeakPtr<base::sequence_manager::internal::ThreadControllerImpl>, base::sequence_manager::internal::ThreadControllerImpl::WorkType> const&&&, std::__1::integer_sequence<unsigned long, 0ul, 1ul>) at bind_internal.h:689 [opt]
frame #36: 0x000000010dfa4ba9 libbase.dylib`base::internal::Invoker<base::internal::BindState<void (base::sequence_manager::internal::ThreadControllerImpl::*)(base::sequence_manager::internal::ThreadControllerImpl::WorkType), base::WeakPtr<base::sequence_manager::internal::ThreadControllerImpl>, base::sequence_manager::internal::ThreadControllerImpl::WorkType>, void ()>::Run(base=<unavailable>) at bind_internal.h:671 [opt]
frame #37: 0x000000010deef661 libbase.dylib`base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) [inlined] base::OnceCallback<void ()>::Run(this=<unavailable>) && at callback.h:99 [opt]
frame #38: 0x000000010deef607 libbase.dylib`base::debug::TaskAnnotator::RunTask(this=<unavailable>, queue_function=<unavailable>, pending_task=<unavailable>) at task_annotator.cc:101 [opt]
frame #39: 0x000000010df272be libbase.dylib`base::MessageLoop::RunTask(this=0x00007fe12a020a50, pending_task=0x00007ffee4034878) at message_loop.cc:434 [opt]
frame #40: 0x000000010df276e3 libbase.dylib`base::MessageLoop::DoWork() [inlined] base::MessageLoop::DeferOrRunPendingTask(this=<unavailable>, pending_task=PendingTask @ 0x00007ffee4034878) at message_loop.cc:445 [opt]
frame #41: 0x000000010df276d8 libbase.dylib`base::MessageLoop::DoWork(this=0x00007fe12a020a50) at message_loop.cc:517 [opt]
frame #42: 0x000000010df2cb6a libbase.dylib`base::MessagePumpCFRunLoopBase::RunWork(this=0x00007fe12a020000) at message_pump_mac.mm:455 [opt]
frame #43: 0x000000010df0f32a libbase.dylib`base::mac::CallWithEHFrame(void () block_pointer) at call_with_eh_frame_asm.S:36
frame #44: 0x000000010df2c48f libbase.dylib`base::MessagePumpCFRunLoopBase::RunWorkSource(info=<unavailable>) at message_pump_mac.mm:431 [opt]
frame #45: 0x00007fff28f8cd31 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
frame #46: 0x00007fff2904460c CoreFoundation`__CFRunLoopDoSource0 + 108
frame #47: 0x00007fff28f6fce0 CoreFoundation`__CFRunLoopDoSources0 + 208
frame #48: 0x00007fff28f6f15d CoreFoundation`__CFRunLoopRun + 1293
frame #49: 0x00007fff28f6e9b7 CoreFoundation`CFRunLoopRunSpecific + 487
frame #50: 0x00007fff2b085f26 Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 277
frame #51: 0x000000010df2d3cd libbase.dylib`base::MessagePumpNSRunLoop::DoRun(this=0x00007fe12a020000, delegate=<unavailable>) at message_pump_mac.mm:729 [opt]
frame #52: 0x000000010df2be9e libbase.dylib`base::MessagePumpCFRunLoopBase::Run(this=0x00007fe12a020000, delegate=0x00007fe12a020a50) at message_pump_mac.mm:184 [opt]
frame #53: 0x000000010df26e54 libbase.dylib`base::MessageLoop::Run(this=0x00007fe12a020a50, application_tasks_allowed=<unavailable>) at message_loop.cc:386 [opt]
frame #54: 0x000000010df65099 libbase.dylib`base::RunLoop::Run(this=0x00007ffee4035b80) at run_loop.cc:102 [opt]
frame #55: 0x0000000119242cec libcontent.dylib`content::RendererMain(parameters=<unavailable>) at renderer_main.cc:202 [opt]
frame #56: 0x000000011932ac69 libcontent.dylib`content::ContentMainRunnerImpl::Run(this=0x00007fe12a00b3c0, start_service_manager_only=<unavailable>) at content_main_runner_impl.cc:899 [opt]
frame #57: 0x000000010de8bcec libembedder.dylib`service_manager::Main(params=<unavailable>) at main.cc:472 [opt]
frame #58: 0x0000000119329f24 libcontent.dylib`content::ContentMain(params=0x00007ffee4036510) at content_main.cc:19 [opt]
frame #59: 0x0000000111ea177f libchrome_dll.dylib`::ChromeMain(argc=<unavailable>, argv=0x00007ffee4036670) at chrome_main.cc:102 [opt]
frame #60: 0x000000010bbc9d81 Chromium Helper`main(argc=18, argv=0x00007ffee4036670) at chrome_exe_main_mac.cc:101 [opt]
frame #61: 0x00007fff50e48015 libdyld.dylib`start + 1
,
Sep 18
My reading of the stack trace in #6: The renderer is sitting in a nested message loop waiting for an acknowledgement of some kind. My CL does indeed cause this - I reverted it, and now the call to RenderViewHostDelegateView::ShowContextMenu() shows the Flash context menu. I guess the WebContents considers itself occluded by the Flash content here, but the Flash code requires some kind of synchronous interaction with the context menu code. I have no idea what's going on :( so I'm going to revert 2065e9fca33dd2d9b96e1e22bc73c6fbd404ebb0.
,
Sep 18
Revert: https://chromium-review.googlesource.com/c/chromium/src/+/1230439 Once this lands & soaks I will merge to M70.
,
Sep 20
The NextAction date has arrived: 2018-09-20
,
Sep 20
Requesting merge to M70.
,
Sep 20
This bug requires manual review: M70 has already been promoted to the beta branch, so this requires manual review Please contact the milestone owner if you have questions. Owners: benmason@(Android), kariahda@(iOS), geohsu@(ChromeOS), abdulsyed@(Desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Sep 20
branch:3538
,
Sep 21
https://chromium-review.googlesource.com/c/chromium/src/+/1238793 merged
,
Sep 24
This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible! If all merges have been completed, please remove any remaining Merge-Approved labels from this issue. Thanks for your time! To disable nags, add the Disable-Nags label. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Sep 28
This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible! If all merges have been completed, please remove any remaining Merge-Approved labels from this issue. Thanks for your time! To disable nags, add the Disable-Nags label. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Oct 1
It's already merged, sheriffbot, you big silly :) |
|||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||
Comment 1 by rbasuvula@chromium.org
, Sep 17