diff --git a/brightray/browser/browser_main_parts.cc b/brightray/browser/browser_main_parts.cc index 588fae1408..a866caed68 100644 --- a/brightray/browser/browser_main_parts.cc +++ b/brightray/browser/browser_main_parts.cc @@ -50,9 +50,7 @@ void BrowserMainParts::ToolkitInitialized() { #endif #if defined(TOOLKIT_VIEWS) - if (!views::ViewsDelegate::views_delegate) - views::ViewsDelegate::views_delegate = new ViewsDelegate; - + views_delegate_.reset(new ViewsDelegate); wm_state_.reset(new wm::WMState); #endif } diff --git a/brightray/browser/browser_main_parts.h b/brightray/browser/browser_main_parts.h index 2d100cdc25..f170ab589c 100644 --- a/brightray/browser/browser_main_parts.h +++ b/brightray/browser/browser_main_parts.h @@ -10,6 +10,10 @@ #include "content/public/browser/browser_main_parts.h" #if defined(TOOLKIT_VIEWS) +namespace brightray { +class ViewsDelegate; +} + namespace wm { class WMState; } @@ -53,6 +57,7 @@ class BrowserMainParts : public content::BrowserMainParts { scoped_ptr web_ui_controller_factory_; #if defined(TOOLKIT_VIEWS) + scoped_ptr views_delegate_; scoped_ptr wm_state_; #endif diff --git a/brightray/browser/views/views_delegate.cc b/brightray/browser/views/views_delegate.cc index a33939faba..6ade87e338 100644 --- a/brightray/browser/views/views_delegate.cc +++ b/brightray/browser/views/views_delegate.cc @@ -9,9 +9,13 @@ namespace brightray { ViewsDelegate::ViewsDelegate() { + DCHECK(!views::ViewsDelegate::views_delegate); + views::ViewsDelegate::views_delegate = this; } ViewsDelegate::~ViewsDelegate() { + DCHECK_EQ(views::ViewsDelegate::views_delegate, this); + views::ViewsDelegate::views_delegate = NULL; } void ViewsDelegate::SaveWindowPlacement(const views::Widget* window,