From 3de7a5ddcea8b3948d8f28d87c07666390ff02d7 Mon Sep 17 00:00:00 2001 From: "zmo@google.com" <zmo@google.com@0039d316-1c4b-4281-b951-d872f2087c98> Date: Tue, 14 May 2013 22:13:21 +0000 Subject: Refactor GpuDataManagerImpl to make it thread-safe. Try to reland r199530 after fixing an issue that causes Mac Debug to crash when switching GPUs. The original review can be found here: https://codereview.chromium.org/14794006/ BUG=232556 TBR=joi@chromium.org, kbr@chromium.org, piman@chromium.org Review URL: https://codereview.chromium.org/14981007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@200086 0039d316-1c4b-4281-b951-d872f2087c98 --- content/browser/gpu/gpu_internals_ui.cc | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) (limited to 'content/browser/gpu/gpu_internals_ui.cc') diff --git a/content/browser/gpu/gpu_internals_ui.cc b/content/browser/gpu/gpu_internals_ui.cc index eb7646c..6419ba8 100644 --- a/content/browser/gpu/gpu_internals_ui.cc +++ b/content/browser/gpu/gpu_internals_ui.cc @@ -479,9 +479,7 @@ class GpuMessageHandler // GpuDataManagerObserver implementation. virtual void OnGpuInfoUpdate() OVERRIDE; - - // Gpu switch handler. - void OnGpuSwitch(); + virtual void OnGpuSwitching() OVERRIDE; // Messages void OnBrowserBridgeInitialized(const base::ListValue* list); @@ -496,8 +494,6 @@ class GpuMessageHandler // DCHECK). bool observing_; - GpuDataManagerImpl::GpuSwitchCallback gpu_switch_callback_; - DISALLOW_COPY_AND_ASSIGN(GpuMessageHandler); }; @@ -508,15 +504,11 @@ class GpuMessageHandler //////////////////////////////////////////////////////////////////////////////// GpuMessageHandler::GpuMessageHandler() - : observing_(false), - gpu_switch_callback_(base::Bind(&GpuMessageHandler::OnGpuSwitch, - base::Unretained(this))) { + : observing_(false) { } GpuMessageHandler::~GpuMessageHandler() { GpuDataManagerImpl::GetInstance()->RemoveObserver(this); - GpuDataManagerImpl::GetInstance()->RemoveGpuSwitchCallback( - gpu_switch_callback_); } /* BrowserBridge.callAsync prepends a requestID to these messages. */ @@ -583,11 +575,8 @@ void GpuMessageHandler::OnBrowserBridgeInitialized( DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); // Watch for changes in GPUInfo - if (!observing_) { + if (!observing_) GpuDataManagerImpl::GetInstance()->AddObserver(this); - GpuDataManagerImpl::GetInstance()->AddGpuSwitchCallback( - gpu_switch_callback_); - } observing_ = true; // Tell GpuDataManager it should have full GpuInfo. If the @@ -639,7 +628,7 @@ void GpuMessageHandler::OnGpuInfoUpdate() { *(gpu_info_val.get())); } -void GpuMessageHandler::OnGpuSwitch() { +void GpuMessageHandler::OnGpuSwitching() { GpuDataManagerImpl::GetInstance()->RequestCompleteGpuInfoIfNeeded(); } -- cgit v1.1