New issue
Advanced search Search tips

Issue 828626 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2018
Cc:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

Record desktop extension causes chrome crash

Project Member Reported by warx@chromium.org, Apr 3 2018

Issue description

Repro steps:
Using `Screencastify - Screen Video Recorder extension` to record desktop and then it will hit a crash:

[70933:70933:0403/152632.053440:FATAL:window_parenting_client.cc(44)] Check failed: context.                                                                                                                                                   
#0 0x7f0f3686bd7c base::debug::StackTrace::StackTrace()                                                                                                                                                                                        
#1 0x7f0f36892acb logging::LogMessage::~LogMessage()                                                                                                                                                                                           
#2 0x7f0f321b1680 aura::client::ParentWindowWithContext()                                                                                                                                                                                      
#3 0x7f0f31168dd2 views::NativeWidgetAura::InitNativeWidget()                                                                                                                                                                                  
#4 0x7f0f31149588 views::Widget::Init()                                                                                                                                                                                                        
#5 0x7f0f311533f4 views::DialogDelegate::CreateDialogWidget()                                                                                                                                                                                  
#6 0x560aff9ac59e DesktopMediaPickerDialogView::DesktopMediaPickerDialogView()                                                                                                                                                                 
#7 0x560aff9addca DesktopMediaPickerViews::Show()                                                                                                                                                                                              
#8 0x560b002327f8 extensions::DesktopCaptureChooseDesktopMediaFunctionBase::Execute()                                                                                                                                                          
#9 0x560b00231c19 extensions::DesktopCaptureChooseDesktopMediaFunction::RunAsync()                                                                                                                                                             
#10 0x560afef6bb5f ChromeAsyncExtensionFunction::Run()                                                                                                                                                                                         
#11 0x560afdc4fba2 ExtensionFunction::RunWithValidation()                                                                                                                                                                                      
#12 0x560afdc522bb extensions::ExtensionFunctionDispatcher::DispatchWithCallbackInternal()                                                                                                                                                     
#13 0x560afdc51e5f extensions::ExtensionFunctionDispatcher::Dispatch()                                                                                                                                                                         
#14 0x560afdc7699a extensions::ExtensionWebContentsObserver::OnRequest()                                                                                                                                                                       
#15 0x560afdc76819 _ZN3IPC8MessageTI29ExtensionHostMsg_Request_MetaNSt3__15tupleIJ31ExtensionHostMsg_Request_ParamsEEEvE8DispatchIN10extensions28ExtensionWebContentsObserverES9_N7content15RenderFrameHostEMS9_FvPSB_RKS4_EEEbPKNS_7MessageEP$
_PT0_PT1_T2_                                                                                                                                                                                                                                   
#16 0x560afdc76762 extensions::ExtensionWebContentsObserver::OnMessageReceived()                                                                                                                                                               
#17 0x560afef6c551 extensions::ChromeExtensionWebContentsObserver::OnMessageReceived()                                                                                                                                                         
#18 0x7f0f33f20492 content::WebContentsImpl::OnMessageReceived()                                                                                                                                                                               
#19 0x7f0f33bee7a4 content::RenderFrameHostImpl::OnMessageReceived()                                                                                                                                                                           
#20 0x7f0f33dea12b content::RenderProcessHostImpl::OnMessageReceived()                                                                                                                                                                         
#21 0x7f0f35a22641 IPC::ChannelProxy::Context::OnDispatchMessage()                                                                                                                                                                             
#22 0x7f0f35a2516b _ZN4base8internal7InvokerINS0_9BindStateIMN3IPC12ChannelProxy7ContextEFvRKNS3_7MessageEEJ13scoped_refptrIS5_ES6_EEEFvvEE3RunEPNS0_13BindStateBaseE                                                                          
#23 0x7f0f3686c654 base::debug::TaskAnnotator::RunTask()                                                                                                                                                                                       
#24 0x7f0f3689ecb9 base::internal::IncomingTaskQueue::RunTask()                                                                                                                                                                                
#25 0x7f0f368a280b base::MessageLoop::RunTask()
#26 0x7f0f368a2baa base::MessageLoop::DeferOrRunPendingTask()
#27 0x7f0f368a2e0c base::MessageLoop::DoWork()
#28 0x7f0f368a5239 base::MessagePumpLibevent::Run()
#29 0x7f0f368a2139 base::MessageLoop::Run()
#30 0x7f0f368d8e59 base::RunLoop::Run()
#31 0x560afe652aea ChromeBrowserMainParts::MainMessageLoopRun()
#32 0x7f0f33a91a37 content::BrowserMainLoop::RunMainMessageLoopParts()
#33 0x7f0f33a94b36 content::BrowserMainRunnerImpl::Run()
#34 0x7f0f33a8dcc9 content::BrowserMain()
#35 0x7f0f3446cd3d content::ContentMainRunnerImpl::Run()
#36 0x7f0f36dac322 service_manager::Main()
#37 0x7f0f3446b3b4 content::ContentMain()
#38 0x560afdadc1e3 ChromeMain
#39 0x7f0f296932b1 __libc_start_main
#40 0x560afdadc05a _start

Marking this as P1 since it prevents developers to record video demos...

 

Comment 1 by warx@chromium.org, Apr 3 2018

Chrome version is 67.0.3388.0
Cc: msw@chromium.org jamescook@chromium.org xiy...@chromium.org

Comment 3 by msw@chromium.org, Apr 3 2018

James, related to recent context changes?
Owner: jamescook@chromium.org
Status: Started (was: Untriaged)
Yes, this is almost certainly due to my changes for  issue 826569 

Project Member

Comment 6 by bugdroid1@chromium.org, Apr 4 2018

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

commit e8e14cfcf77917f8ff21553421c01f0a85831af2
Author: James Cook <jamescook@chromium.org>
Date: Wed Apr 04 04:13:58 2018

cros: Fix crash when using screen casting extension

In crrev.com/547515 I removed this block of code from
ChromeViewsDelegate::CreateNativeWidget:

  if (params->context)
    params->context = params->context->GetRootWindow();

The Screencastify extension uses DesktopMediaPickerDialogView, which
apparently supplies a context window with no parent. We were relying
on the code above to make params->context null so it would trigger a
fallback code path.

It's not clear why that code was added in the first place. It
appeared in https://crrev.com/230793 as part of a revert of some
RLZ refactoring. However, we depend on the code now, and I cannot
guarantee that all browser code supplies a context with a valid
root window, so put it back.

TBR=oshima@chromium.org

Bug:  828626 ,  311339 
Test: none
Change-Id: I70b9a884fdf471d34d626237b72b92325cba5df8
Reviewed-on: https://chromium-review.googlesource.com/994461
Reviewed-by: James Cook <jamescook@chromium.org>
Commit-Queue: James Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/master@{#547978}
[modify] https://crrev.com/e8e14cfcf77917f8ff21553421c01f0a85831af2/chrome/browser/ui/views/chrome_views_delegate_chromeos.cc

Status: Fixed (was: Started)
Fixed. I filed issue 828919 with what I know about the screen capture UI's use of Widget context, which might be wrong.

Sign in to add a comment