summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryoz@chromium.org <yoz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-20 23:12:31 +0000
committeryoz@chromium.org <yoz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-20 23:12:31 +0000
commit3d6ac9ed2af3b053a654f40d0325039808d1952c (patch)
tree1e465c429ef8ba0c4eddf36300f59f61ef961382
parentd3ac5632bf3c69051bd3d58a890aed3ebc1028c6 (diff)
downloadchromium_src-3d6ac9ed2af3b053a654f40d0325039808d1952c.zip
chromium_src-3d6ac9ed2af3b053a654f40d0325039808d1952c.tar.gz
chromium_src-3d6ac9ed2af3b053a654f40d0325039808d1952c.tar.bz2
Don't crash in GetCurrentBrowser if the dispatcher is gone before the function.
BUG=134194 Review URL: https://chromiumcodereview.appspot.com/10803049 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147739 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/extensions/extension_function.cc24
1 files changed, 14 insertions, 10 deletions
diff --git a/chrome/browser/extensions/extension_function.cc b/chrome/browser/extensions/extension_function.cc
index 92c4f86..4e53d1b 100644
--- a/chrome/browser/extensions/extension_function.cc
+++ b/chrome/browser/extensions/extension_function.cc
@@ -188,12 +188,14 @@ void UIThreadExtensionFunction::SetRenderViewHost(
// TODO(stevenjb): Replace this with GetExtensionWindowController().
Browser* UIThreadExtensionFunction::GetCurrentBrowser() {
// If the delegate has an associated browser, return it.
- extensions::WindowController* window_controller =
- dispatcher()->delegate()->GetExtensionWindowController();
- if (window_controller) {
- Browser* browser = window_controller->GetBrowser();
- if (browser)
- return browser;
+ if (dispatcher()) {
+ extensions::WindowController* window_controller =
+ dispatcher()->delegate()->GetExtensionWindowController();
+ if (window_controller) {
+ Browser* browser = window_controller->GetBrowser();
+ if (browser)
+ return browser;
+ }
}
// Otherwise, try to default to a reasonable browser. If |include_incognito_|
@@ -217,10 +219,12 @@ Browser* UIThreadExtensionFunction::GetCurrentBrowser() {
extensions::WindowController*
UIThreadExtensionFunction::GetExtensionWindowController() {
// If the delegate has an associated window controller, return it.
- extensions::WindowController* window_controller =
- dispatcher()->delegate()->GetExtensionWindowController();
- if (window_controller)
- return window_controller;
+ if (dispatcher()) {
+ extensions::WindowController* window_controller =
+ dispatcher()->delegate()->GetExtensionWindowController();
+ if (window_controller)
+ return window_controller;
+ }
return extensions::WindowControllerList::GetInstance()->
CurrentWindowForFunction(this);