New issue
Advanced search Search tips

Issue 786158 link

Starred by 0 users

Issue metadata

Status: Fixed
Owner:
Closed: Dec 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 3
Type: Bug



Sign in to add a comment

[Presentation API] DCHECK failure if destroying offscreen tab with devtools open

Project Member Reported by btolsch@chromium.org, Nov 16 2017

Issue description

Chrome Version: 64.0.3271.0

What steps will reproduce the problem?
(1) In a build with DCHECK enabled, start an offscreen presentation (e.g. w/ https://googlechrome.github.io/samples/presentation-api/)
(2) Go to chrome://inspect then to "other" then select the page being presented.
(3) Stop the presentation with the devtools window open.
(4) Chrome crashes with the following error:

[145286:145286:1116/142009.560868:FATAL:callback_list.h(166)] Check failed: 0U == callbacks_.size() (0 vs. 1)
#0 0x7ff813fd4ecc base::debug::StackTrace::StackTrace()
#1 0x7ff813ffed7c logging::LogMessage::~LogMessage()
#2 0x7ff812203336 base::internal::CallbackListBase<>::~CallbackListBase()
#3 0x7ff8124c8daf content::HostZoomMapImpl::~HostZoomMapImpl()
#4 0x7ff8124c8dde content::HostZoomMapImpl::~HostZoomMapImpl()
#5 0x7ff8124c5264 content::HostZoomLevelContext::~HostZoomLevelContext()
#6 0x7ff8123fd767 content::StoragePartitionImpl::~StoragePartitionImpl()
#7 0x7ff8123fd9ae content::StoragePartitionImpl::~StoragePartitionImpl()
#8 0x7ff812406f23 std::__1::__tree<>::destroy()
#9 0x7ff812404425 content::StoragePartitionImplMap::~StoragePartitionImplMap()
#10 0x7ff8140591ec std::__1::__tree<>::__erase_unique<>()
#11 0x7ff814058f75 base::SupportsUserData::RemoveUserData()
#12 0x55d69fc535f8 OffTheRecordProfileImpl::~OffTheRecordProfileImpl()
#13 0x55d69fc537ae OffTheRecordProfileImpl::~OffTheRecordProfileImpl()
#14 0x55d6a0838d44 extensions::OffscreenTab::~OffscreenTab()
#15 0x55d6a0838dae extensions::OffscreenTab::~OffscreenTab()
#16 0x55d6a083929e extensions::OffscreenTab::DieIfContentCaptureEnded()
#17 0x7ff81408b478 base::Timer::RunScheduledTask()
#18 0x7ff813fd57ea base::debug::TaskAnnotator::RunTask()
#19 0x7ff814009a16 base::internal::IncomingTaskQueue::RunTask()
#20 0x7ff81400da7b base::MessageLoop::RunTask()
#21 0x7ff81400de3b base::MessageLoop::DeferOrRunPendingTask()
#22 0x7ff81400e414 base::MessageLoop::DoDelayedWork()
#23 0x7ff81400fdf5 base::(anonymous namespace)::WorkSourceDispatch()
#24 0x7ff808d97e04 g_main_context_dispatch
#25 0x7ff808d98048 <unknown>
#26 0x7ff808d980ec g_main_context_iteration
#27 0x7ff81400fb02 base::MessagePumpGlib::Run()
#28 0x7ff81400d31c base::MessageLoop::Run()
#29 0x7ff8140432c5 base::RunLoop::Run()
#30 0x55d69fae94a7 ChromeBrowserMainParts::MainMessageLoopRun()
#31 0x7ff811f4fa47 content::BrowserMainLoop::RunMainMessageLoopParts()
#32 0x7ff811f53723 content::BrowserMainRunnerImpl::Run()
#33 0x7ff811f4b5ea content::BrowserMain()
#34 0x7ff8129c052b content::RunNamedProcessTypeMain()
#35 0x7ff8129c1006 content::ContentMainRunnerImpl::Run()
#36 0x7ff8144f6794 service_manager::Main()
#37 0x7ff8129bf871 content::ContentMain()
#38 0x55d69f5d11cc ChromeMain
#39 0x7ff80727df45 __libc_start_main
#40 0x55d69f5d102a _start

Related to  bug 664351 , I think it is the result of the one-off offscreen tab OTR profile being held by the devtools window.
 

Comment 1 by mfo...@chromium.org, Nov 27 2017

Labels: OS-Linux
Owner: btolsch@chromium.org
Status: Assigned (was: Untriaged)
I believe Brandon is reworking how we manage WebContents for presentations.

Project Member

Comment 2 by bugdroid1@chromium.org, Dec 16 2017

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

commit 7adfa2d52607a71519432fbe05bc1bdb93f7ba75
Author: btolsch <btolsch@chromium.org>
Date: Sat Dec 16 23:35:44 2017

Add PresentationReceiverWindow for wired screen presentations

This change adds a class which shows a Presentation API receiver page in
a popup-style window that is started fullscreen on a specific wired
display.

It also changes the handling of one-off OTR profiles used by
presentations, which affects this class and offscreen tabs.  Previously,
offscreen tabs assumed ownership of their OTR profiles.  However, it was
possible for this to be violated by opening a DevTools window and
Browser would think that it could destroy the profile.  Additionally,
there was no handling of the original profile being destroyed, which
would leave dangling references in the OTR profile.  This has been
addressed by adding an IndependentOTRProfileManager class, which helps
both offscreen tabs and PresentationReceiverWindow manage the lifetime
of these one-off OTR profiles.

Bug:  777654 ,  786158 ,  664351 , 727487
Change-Id: I64d032419d341affbdde4ee80b57d45c99648588
Reviewed-on: https://chromium-review.googlesource.com/742122
Commit-Queue: Brandon Tolsch <btolsch@chromium.org>
Reviewed-by: mark a. foltz <mfoltz@chromium.org>
Reviewed-by: Derek Cheng <imcheng@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Yuri Wiitala <miu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524615}
[modify] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/chromeos/profiles/profile_helper.h
[modify] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/extensions/api/tab_capture/offscreen_tab.cc
[modify] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/extensions/api/tab_capture/offscreen_tab.h
[modify] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/media/router/BUILD.gn
[add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/media/router/independent_otr_profile_manager.cc
[add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/media/router/independent_otr_profile_manager.h
[add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/media/router/independent_otr_profile_manager_browsertest.cc
[add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/media/router/presentation_navigation_policy.cc
[add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/media/router/presentation_navigation_policy.h
[modify] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/media/router/receiver_presentation_service_delegate_impl.cc
[modify] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/BUILD.gn
[modify] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/browser.cc
[add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/media_router/presentation_receiver_window.h
[add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/media_router/presentation_receiver_window_controller.cc
[add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/media_router/presentation_receiver_window_controller.h
[add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/media_router/presentation_receiver_window_controller_browsertest.cc
[add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/media_router/presentation_receiver_window_delegate.h
[modify] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/views/location_bar/location_bar_view.cc
[modify] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/views/location_bar/location_bar_view.h
[add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/views/media_router/presentation_receiver_window_factory.cc
[add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/views/media_router/presentation_receiver_window_frame.cc
[add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/views/media_router/presentation_receiver_window_frame.h
[add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/views/media_router/presentation_receiver_window_view.cc
[add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/views/media_router/presentation_receiver_window_view.h
[modify] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/test/BUILD.gn
[add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/test/data/media/router/presentation_receiver.html

Status: Fixed (was: Assigned)

Sign in to add a comment