Index: chrome/browser/ui/fast_unload_controller.cc |
diff --git a/chrome/browser/ui/unload_controller.cc b/chrome/browser/ui/fast_unload_controller.cc |
similarity index 83% |
copy from chrome/browser/ui/unload_controller.cc |
copy to chrome/browser/ui/fast_unload_controller.cc |
index 5101ab823bbd4f70267caba6644abf8161aa5d91..ab66e7a9e024c9e8127d845436be1250c8cc7f27 100644 |
--- a/chrome/browser/ui/unload_controller.cc |
+++ b/chrome/browser/ui/fast_unload_controller.cc |
@@ -2,7 +2,7 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "chrome/browser/ui/unload_controller.h" |
+#include "chrome/browser/ui/fast_unload_controller.h" |
#include "base/logging.h" |
#include "base/message_loop.h" |
@@ -24,7 +24,7 @@ namespace chrome { |
//////////////////////////////////////////////////////////////////////////////// |
// DetachedWebContentsDelegate will delete web contents when they close. |
-class UnloadController::DetachedWebContentsDelegate |
+class FastUnloadController::DetachedWebContentsDelegate |
: public content::WebContentsDelegate { |
public: |
DetachedWebContentsDelegate() { } |
@@ -38,7 +38,7 @@ class UnloadController::DetachedWebContentsDelegate |
virtual void CloseContents(content::WebContents* source) OVERRIDE { |
// Finished detached close. |
- // UnloadController will observe |
+ // FastUnloadController will observe |
// |NOTIFICATION_WEB_CONTENTS_DISCONNECTED|. |
delete source; |
} |
@@ -47,9 +47,9 @@ class UnloadController::DetachedWebContentsDelegate |
}; |
//////////////////////////////////////////////////////////////////////////////// |
-// UnloadController, public: |
+// FastUnloadController, public: |
-UnloadController::UnloadController(Browser* browser) |
+FastUnloadController::FastUnloadController(Browser* browser) |
: browser_(browser), |
tab_needing_before_unload_ack_(NULL), |
is_attempting_to_close_browser_(false), |
@@ -58,18 +58,18 @@ UnloadController::UnloadController(Browser* browser) |
browser_->tab_strip_model()->AddObserver(this); |
} |
-UnloadController::~UnloadController() { |
+FastUnloadController::~FastUnloadController() { |
browser_->tab_strip_model()->RemoveObserver(this); |
} |
-bool UnloadController::CanCloseContents(content::WebContents* contents) { |
+bool FastUnloadController::CanCloseContents(content::WebContents* contents) { |
// Don't try to close the tab when the whole browser is being closed, since |
// that avoids the fast shutdown path where we just kill all the renderers. |
return !is_attempting_to_close_browser_; |
} |
-bool UnloadController::BeforeUnloadFired(content::WebContents* contents, |
- bool proceed) { |
+bool FastUnloadController::BeforeUnloadFired(content::WebContents* contents, |
+ bool proceed) { |
if (!is_attempting_to_close_browser_) { |
if (!proceed) { |
contents->SetClosedByUserGesture(false); |
@@ -102,7 +102,7 @@ bool UnloadController::BeforeUnloadFired(content::WebContents* contents, |
return true; |
} |
-bool UnloadController::ShouldCloseWindow() { |
+bool FastUnloadController::ShouldCloseWindow() { |
if (HasCompletedUnloadProcessing()) |
return true; |
@@ -115,7 +115,7 @@ bool UnloadController::ShouldCloseWindow() { |
return false; |
} |
-bool UnloadController::TabsNeedBeforeUnloadFired() { |
+bool FastUnloadController::TabsNeedBeforeUnloadFired() { |
if (!tabs_needing_before_unload_.empty() || |
tab_needing_before_unload_ack_ != NULL) |
return true; |
@@ -133,11 +133,12 @@ bool UnloadController::TabsNeedBeforeUnloadFired() { |
} |
//////////////////////////////////////////////////////////////////////////////// |
-// UnloadController, content::NotificationObserver implementation: |
+// FastUnloadController, content::NotificationObserver implementation: |
-void UnloadController::Observe(int type, |
- const content::NotificationSource& source, |
- const content::NotificationDetails& details) { |
+void FastUnloadController::Observe( |
+ int type, |
+ const content::NotificationSource& source, |
+ const content::NotificationDetails& details) { |
switch (type) { |
case content::NOTIFICATION_WEB_CONTENTS_DISCONNECTED: { |
registrar_.Remove(this, |
@@ -154,37 +155,37 @@ void UnloadController::Observe(int type, |
} |
//////////////////////////////////////////////////////////////////////////////// |
-// UnloadController, TabStripModelObserver implementation: |
+// FastUnloadController, TabStripModelObserver implementation: |
-void UnloadController::TabInsertedAt(content::WebContents* contents, |
- int index, |
- bool foreground) { |
+void FastUnloadController::TabInsertedAt(content::WebContents* contents, |
+ int index, |
+ bool foreground) { |
TabAttachedImpl(contents); |
} |
-void UnloadController::TabDetachedAt(content::WebContents* contents, |
- int index) { |
+void FastUnloadController::TabDetachedAt(content::WebContents* contents, |
+ int index) { |
TabDetachedImpl(contents); |
} |
-void UnloadController::TabReplacedAt(TabStripModel* tab_strip_model, |
- content::WebContents* old_contents, |
- content::WebContents* new_contents, |
- int index) { |
+void FastUnloadController::TabReplacedAt(TabStripModel* tab_strip_model, |
+ content::WebContents* old_contents, |
+ content::WebContents* new_contents, |
+ int index) { |
TabDetachedImpl(old_contents); |
TabAttachedImpl(new_contents); |
} |
-void UnloadController::TabStripEmpty() { |
+void FastUnloadController::TabStripEmpty() { |
// Set is_attempting_to_close_browser_ here, so that extensions, etc, do not |
// attempt to add tabs to the browser before it closes. |
is_attempting_to_close_browser_ = true; |
} |
//////////////////////////////////////////////////////////////////////////////// |
-// UnloadController, private: |
+// FastUnloadController, private: |
-void UnloadController::TabAttachedImpl(content::WebContents* contents) { |
+void FastUnloadController::TabAttachedImpl(content::WebContents* contents) { |
// If the tab crashes in the beforeunload or unload handler, it won't be |
// able to ack. But we know we can close it. |
registrar_.Add( |
@@ -193,7 +194,7 @@ void UnloadController::TabAttachedImpl(content::WebContents* contents) { |
content::Source<content::WebContents>(contents)); |
} |
-void UnloadController::TabDetachedImpl(content::WebContents* contents) { |
+void FastUnloadController::TabDetachedImpl(content::WebContents* contents) { |
if (tabs_needing_unload_ack_.find(contents) != |
tabs_needing_unload_ack_.end()) { |
// Tab needs unload to complete. |
@@ -217,7 +218,7 @@ void UnloadController::TabDetachedImpl(content::WebContents* contents) { |
ClearUnloadState(contents); |
} |
-bool UnloadController::DetachWebContents(content::WebContents* contents) { |
+bool FastUnloadController::DetachWebContents(content::WebContents* contents) { |
int index = browser_->tab_strip_model()->GetIndexOfWebContents(contents); |
if (index != TabStripModel::kNoTab && |
contents->NeedToFireBeforeUnload()) { |
@@ -231,7 +232,7 @@ bool UnloadController::DetachWebContents(content::WebContents* contents) { |
return false; |
} |
-void UnloadController::ProcessPendingTabs() { |
+void FastUnloadController::ProcessPendingTabs() { |
if (!is_attempting_to_close_browser_) { |
// Because we might invoke this after a delay it's possible for the value of |
// is_attempting_to_close_browser_ to have changed since we scheduled the |
@@ -308,7 +309,7 @@ void UnloadController::ProcessPendingTabs() { |
} |
} |
-bool UnloadController::HasCompletedUnloadProcessing() const { |
+bool FastUnloadController::HasCompletedUnloadProcessing() const { |
return is_attempting_to_close_browser_ && |
tabs_needing_before_unload_.empty() && |
tab_needing_before_unload_ack_ == NULL && |
@@ -316,7 +317,7 @@ bool UnloadController::HasCompletedUnloadProcessing() const { |
tabs_needing_unload_ack_.empty(); |
} |
-void UnloadController::CancelWindowClose() { |
+void FastUnloadController::CancelWindowClose() { |
// Closing of window can be canceled from a beforeunload handler. |
DCHECK(is_attempting_to_close_browser_); |
tabs_needing_before_unload_.clear(); |
@@ -346,7 +347,7 @@ void UnloadController::CancelWindowClose() { |
content::NotificationService::NoDetails()); |
} |
-void UnloadController::ClearUnloadState(content::WebContents* contents) { |
+void FastUnloadController::ClearUnloadState(content::WebContents* contents) { |
if (tabs_needing_unload_ack_.erase(contents) > 0) { |
if (HasCompletedUnloadProcessing()) |
PostTaskForProcessPendingTabs(); |
@@ -369,10 +370,10 @@ void UnloadController::ClearUnloadState(content::WebContents* contents) { |
} |
} |
-void UnloadController::PostTaskForProcessPendingTabs() { |
+void FastUnloadController::PostTaskForProcessPendingTabs() { |
base::MessageLoop::current()->PostTask( |
FROM_HERE, |
- base::Bind(&UnloadController::ProcessPendingTabs, |
+ base::Bind(&FastUnloadController::ProcessPendingTabs, |
weak_factory_.GetWeakPtr())); |
} |