summaryrefslogtreecommitdiffstats
path: root/chrome/renderer
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/renderer')
-rw-r--r--chrome/renderer/render_view.cc7
-rw-r--r--chrome/renderer/render_view.h2
2 files changed, 4 insertions, 5 deletions
diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc
index af11413..8d91e58 100644
--- a/chrome/renderer/render_view.cc
+++ b/chrome/renderer/render_view.cc
@@ -140,7 +140,6 @@ RenderView::RenderView()
last_page_id_sent_to_browser_(-1),
last_indexed_page_id_(-1),
method_factory_(this),
- nav_state_sync_timer_(kDelayForNavigationSync),
opened_by_user_gesture_(true),
enable_dom_automation_(false),
enable_dom_ui_bindings_(false),
@@ -153,8 +152,6 @@ RenderView::RenderView()
disable_popup_blocking_(false),
has_unload_listener_(false) {
resource_dispatcher_ = new ResourceDispatcher(this);
- nav_state_sync_timer_.set_task(
- method_factory_.NewRunnableMethod(&RenderView::SyncNavigationState));
#ifdef CHROME_PERSONALIZATION
personalization_ = Personalization::CreateRendererPersonalization();
#endif
@@ -2190,7 +2187,9 @@ int RenderView::GetHistoryForwardListCount() {
}
void RenderView::OnNavStateChanged(WebView* webview) {
- nav_state_sync_timer_.Start();
+ if (!nav_state_sync_timer_.IsRunning())
+ nav_state_sync_timer_.Start(kDelayForNavigationSync, this,
+ &RenderView::SyncNavigationState);
}
void RenderView::SetTooltipText(WebView* webview,
diff --git a/chrome/renderer/render_view.h b/chrome/renderer/render_view.h
index 6ac8f0c..f4afb8f 100644
--- a/chrome/renderer/render_view.h
+++ b/chrome/renderer/render_view.h
@@ -574,7 +574,7 @@ class RenderView : public RenderWidget, public WebViewDelegate,
ScopedRunnableMethodFactory<RenderView> method_factory_;
// Timer used to delay the updating of nav state (see SyncNavigationState).
- OneShotTimer nav_state_sync_timer_;
+ base::OneShotTimer<RenderView> nav_state_sync_timer_;
typedef std::vector<WebPluginDelegateProxy*> PluginDelegateList;
PluginDelegateList plugin_delegates_;