[Presentation API] DCHECK failure if destroying offscreen tab with devtools open |
||
Issue descriptionChrome 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.
,
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
,
Dec 18 2017
|
||
►
Sign in to add a comment |
||
Comment 1 by mfo...@chromium.org
, Nov 27 2017Owner: btolsch@chromium.org
Status: Assigned (was: Untriaged)