diff options
Diffstat (limited to 'content/browser/renderer_host')
-rw-r--r-- | content/browser/renderer_host/render_widget_host_view_mac.h | 4 | ||||
-rw-r--r-- | content/browser/renderer_host/render_widget_host_view_mac.mm | 18 |
2 files changed, 11 insertions, 11 deletions
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.h b/content/browser/renderer_host/render_widget_host_view_mac.h index f2c01fd..e2e5963 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.h +++ b/content/browser/renderer_host/render_widget_host_view_mac.h @@ -12,7 +12,7 @@ #include "base/memory/scoped_nsobject.h" #include "base/memory/scoped_ptr.h" -#include "base/task.h" +#include "base/memory/weak_ptr.h" #include "base/time.h" #include "content/browser/accessibility/browser_accessibility_delegate_mac.h" #include "content/browser/accessibility/browser_accessibility_manager.h" @@ -398,7 +398,7 @@ class RenderWidgetHostViewMac : public RenderWidgetHostView { string16 tooltip_text_; // Factory used to safely scope delayed calls to ShutdownHost(). - ScopedRunnableMethodFactory<RenderWidgetHostViewMac> shutdown_factory_; + base::WeakPtrFactory<RenderWidgetHostViewMac> weak_factory_; // selected text on the renderer. std::string selected_text_; diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm index f559281..6cf2cf6 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm @@ -6,6 +6,7 @@ #include <QuartzCore/QuartzCore.h> +#include "base/bind.h" #include "base/debug/trace_event.h" #include "base/logging.h" #include "base/mac/mac_util.h" @@ -229,7 +230,7 @@ RenderWidgetHostViewMac::RenderWidgetHostViewMac(RenderWidgetHost* widget) is_loading_(false), is_hidden_(false), is_showing_context_menu_(false), - shutdown_factory_(this), + weak_factory_(this), accelerated_compositing_active_(false), needs_gpu_visibility_update_after_repaint_(false), compositing_surface_(gfx::kNullPluginWindow) { @@ -724,11 +725,11 @@ void RenderWidgetHostViewMac::SetTakesFocusOnlyOnMouseDown(bool flag) { } void RenderWidgetHostViewMac::KillSelf() { - if (shutdown_factory_.empty()) { + if (!weak_factory_.HasWeakPtrs()) { [cocoa_view_ setHidden:YES]; MessageLoop::current()->PostTask(FROM_HERE, - shutdown_factory_.NewRunnableMethod( - &RenderWidgetHostViewMac::ShutdownHost)); + base::Bind(&RenderWidgetHostViewMac::ShutdownHost, + weak_factory_.GetWeakPtr())); } } @@ -944,10 +945,9 @@ void RenderWidgetHostViewMac::AcknowledgeSwapBuffers( BrowserThread::PostTask( BrowserThread::UI, FROM_HERE, - NewRunnableFunction(&GpuProcessHostUIShim::SendToGpuHost, - gpu_host_id, - new AcceleratedSurfaceMsg_BuffersSwappedACK( - route_id))); + base::Bind(&GpuProcessHostUIShim::SendToGpuHost, + gpu_host_id, + new AcceleratedSurfaceMsg_BuffersSwappedACK(route_id))); } else { GpuProcessHost::SendOnIO( gpu_host_id, @@ -1069,7 +1069,7 @@ void RenderWidgetHostViewMac::UnlockMouse() { } void RenderWidgetHostViewMac::ShutdownHost() { - shutdown_factory_.RevokeAll(); + weak_factory_.InvalidateWeakPtrs(); render_widget_host_->Shutdown(); // Do not touch any members at this point, |this| has been deleted. } |