| Index: chrome/browser/extensions/extension_tabs_module.cc
|
| ===================================================================
|
| --- chrome/browser/extensions/extension_tabs_module.cc (revision 88158)
|
| +++ chrome/browser/extensions/extension_tabs_module.cc (working copy)
|
| @@ -123,19 +123,6 @@
|
| return keys::kWindowTypeValueNormal;
|
| }
|
|
|
| -bool IsCrashURL(const GURL& url) {
|
| - // GURL does not parse about: URL hosts, so compare against these entire URLs.
|
| - if (url == GURL(chrome::kAboutBrowserCrash) ||
|
| - url == GURL(chrome::kAboutCrashURL))
|
| - return true;
|
| -
|
| - // Catch any crash-like URL here.
|
| - return ((url.SchemeIs(chrome::kAboutScheme) ||
|
| - url.SchemeIs(chrome::kChromeUIScheme)) &&
|
| - (url.host() == chrome::kChromeUIBrowserCrashHost ||
|
| - url.host() == chrome::kChromeUICrashHost));
|
| -}
|
| -
|
| } // namespace
|
|
|
| int ExtensionTabUtil::GetWindowId(const Browser* browser) {
|
| @@ -415,16 +402,20 @@
|
| keys::kInvalidUrlError, *i);
|
| return false;
|
| }
|
| - // Don't let the extension crash the browser or renderers.
|
| - if (IsCrashURL(url)) {
|
| - error_ = keys::kNoCrashBrowserError;
|
| - return false;
|
| - }
|
| urls.push_back(url);
|
| }
|
| }
|
| }
|
|
|
| + // Don't let the extension crash the browser or renderers.
|
| + GURL browser_crash(chrome::kAboutBrowserCrash);
|
| + GURL renderer_crash(chrome::kAboutCrashURL);
|
| + if (std::find(urls.begin(), urls.end(), browser_crash) != urls.end() ||
|
| + std::find(urls.begin(), urls.end(), renderer_crash) != urls.end()) {
|
| + error_ = keys::kNoCrashBrowserError;
|
| + return false;
|
| + }
|
| +
|
| // Look for optional tab id.
|
| if (args) {
|
| int tab_id;
|
| @@ -755,7 +746,8 @@
|
| }
|
|
|
| // Don't let extensions crash the browser or renderers.
|
| - if (IsCrashURL(url)) {
|
| + if (url == GURL(chrome::kAboutBrowserCrash) ||
|
| + url == GURL(chrome::kAboutCrashURL)) {
|
| error_ = keys::kNoCrashBrowserError;
|
| return false;
|
| }
|
| @@ -871,7 +863,7 @@
|
| // -title
|
| // -favIconUrl
|
|
|
| - // Navigate the tab to a new location if the url is different.
|
| + // Navigate the tab to a new location if the url different.
|
| std::string url_string;
|
| if (update_props->HasKey(keys::kUrlKey)) {
|
| EXTENSION_FUNCTION_VALIDATE(update_props->GetString(
|
| @@ -885,7 +877,8 @@
|
| }
|
|
|
| // Don't let the extension crash the browser or renderers.
|
| - if (IsCrashURL(url)) {
|
| + if (url == GURL(chrome::kAboutBrowserCrash) ||
|
| + url == GURL(chrome::kAboutCrashURL)) {
|
| error_ = keys::kNoCrashBrowserError;
|
| return false;
|
| }
|
|
|