| Index: chrome/browser/ui/webui/tracing_ui.cc
|
| ===================================================================
|
| --- chrome/browser/ui/webui/tracing_ui.cc (revision 107010)
|
| +++ chrome/browser/ui/webui/tracing_ui.cc (working copy)
|
| @@ -8,7 +8,6 @@
|
|
|
| #include "base/bind.h"
|
| #include "base/bind_helpers.h"
|
| -#include "base/callback_old.h"
|
| #include "base/command_line.h"
|
| #include "base/file_util.h"
|
| #include "base/memory/scoped_ptr.h"
|
| @@ -48,7 +47,8 @@
|
| : public WebUIMessageHandler,
|
| public SelectFileDialog::Listener,
|
| public base::SupportsWeakPtr<TracingMessageHandler>,
|
| - public TraceSubscriber {
|
| + public TraceSubscriber,
|
| + public GpuDataManager::Observer {
|
| public:
|
| TracingMessageHandler();
|
| virtual ~TracingMessageHandler();
|
| @@ -66,6 +66,9 @@
|
| virtual void OnTraceDataCollected(const std::string& trace_fragment);
|
| virtual void OnTraceBufferPercentFullReply(float percent_full);
|
|
|
| + // GpuDataManager::Observer implementation.
|
| + virtual void OnGpuInfoUpdate() OVERRIDE;
|
| +
|
| // Messages.
|
| void OnTracingControllerInitialized(const ListValue* list);
|
| void OnBeginTracing(const ListValue* list);
|
| @@ -75,9 +78,6 @@
|
| void OnSaveTraceFile(const ListValue* list);
|
|
|
| // Callbacks.
|
| - void OnGpuInfoUpdate();
|
| -
|
| - // Callbacks.
|
| void LoadTraceFileComplete(std::string* file_contents);
|
| void SaveTraceFileComplete();
|
|
|
| @@ -98,9 +98,6 @@
|
| // Cache the Singleton for efficiency.
|
| GpuDataManager* gpu_data_manager_;
|
|
|
| - // Callback called when the GPU info is updated.
|
| - Callback0::Type* gpu_info_update_callback_;
|
| -
|
| DISALLOW_COPY_AND_ASSIGN(TracingMessageHandler);
|
| };
|
|
|
| @@ -138,17 +135,13 @@
|
|
|
| TracingMessageHandler::TracingMessageHandler()
|
| : select_trace_file_dialog_type_(SelectFileDialog::SELECT_NONE),
|
| - trace_enabled_(false),
|
| - gpu_info_update_callback_(NULL) {
|
| + trace_enabled_(false) {
|
| gpu_data_manager_ = GpuDataManager::GetInstance();
|
| DCHECK(gpu_data_manager_);
|
| }
|
|
|
| TracingMessageHandler::~TracingMessageHandler() {
|
| - if (gpu_info_update_callback_) {
|
| - gpu_data_manager_->RemoveGpuInfoUpdateCallback(gpu_info_update_callback_);
|
| - delete gpu_info_update_callback_;
|
| - }
|
| + gpu_data_manager_->RemoveObserver(this);
|
|
|
| if (select_trace_file_dialog_)
|
| select_trace_file_dialog_->ListenerDestroyed();
|
| @@ -190,12 +183,8 @@
|
| const ListValue* args) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
|
|
| - DCHECK(!gpu_info_update_callback_);
|
| -
|
| // Watch for changes in GPUInfo
|
| - gpu_info_update_callback_ =
|
| - NewCallback(this, &TracingMessageHandler::OnGpuInfoUpdate);
|
| - gpu_data_manager_->AddGpuInfoUpdateCallback(gpu_info_update_callback_);
|
| + gpu_data_manager_->AddObserver(this);
|
|
|
| // Tell GpuDataManager it should have full GpuInfo. If the
|
| // Gpu process has not run yet, this will trigger its launch.
|
|
|