diff options
author | nasko@chromium.org <nasko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-16 20:31:34 +0000 |
---|---|---|
committer | nasko@chromium.org <nasko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-16 20:31:34 +0000 |
commit | afe9aba2de06c38e2d6418baeb567a3c04d46903 (patch) | |
tree | eecea725d08be42990cf539392d3a1ea8822ad89 | |
parent | 4e9497fac87f9827a1a8981354ae0e3f0180f1e6 (diff) | |
download | chromium_src-afe9aba2de06c38e2d6418baeb567a3c04d46903.zip chromium_src-afe9aba2de06c38e2d6418baeb567a3c04d46903.tar.gz chromium_src-afe9aba2de06c38e2d6418baeb567a3c04d46903.tar.bz2 |
Remove GetActiveEntry usage from chrome/browser/extensions.
Using GetActiveEntry can lead to subtle bugs, including security ones. See the bug entry for more details.
BUG=273710
Review URL: https://chromiumcodereview.appspot.com/23222004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@218076 0039d316-1c4b-4281-b951-d872f2087c98
13 files changed, 23 insertions, 23 deletions
diff --git a/chrome/browser/extensions/active_tab_permission_granter.cc b/chrome/browser/extensions/active_tab_permission_granter.cc index 312a6c3..a62b181 100644 --- a/chrome/browser/extensions/active_tab_permission_granter.cc +++ b/chrome/browser/extensions/active_tab_permission_granter.cc @@ -116,7 +116,7 @@ void ActiveTabPermissionGranter::ClearActiveExtensionsAndNotify() { } int32 ActiveTabPermissionGranter::GetPageID() { - return web_contents()->GetController().GetActiveEntry()->GetPageID(); + return web_contents()->GetController().GetVisibleEntry()->GetPageID(); } } // namespace extensions diff --git a/chrome/browser/extensions/api/debugger/debugger_api.cc b/chrome/browser/extensions/api/debugger/debugger_api.cc index f29ea9a..fd06dda 100644 --- a/chrome/browser/extensions/api/debugger/debugger_api.cc +++ b/chrome/browser/extensions/api/debugger/debugger_api.cc @@ -717,7 +717,7 @@ base::Value* SerializePageInfo(RenderViewHost* rvh) { dictionary->SetString(kTargetTitleField, web_contents->GetTitle()); content::NavigationController& controller = web_contents->GetController(); - content::NavigationEntry* entry = controller.GetActiveEntry(); + content::NavigationEntry* entry = controller.GetVisibleEntry(); if (entry != NULL && entry->GetURL().is_valid()) { dictionary->SetString(kTargetFaviconUrlField, entry->GetFavicon().url.spec()); diff --git a/chrome/browser/extensions/api/extension_action/extension_action_api.cc b/chrome/browser/extensions/api/extension_action/extension_action_api.cc index e528f9b..4fda0e8b 100644 --- a/chrome/browser/extensions/api/extension_action/extension_action_api.cc +++ b/chrome/browser/extensions/api/extension_action/extension_action_api.cc @@ -746,7 +746,7 @@ bool PageActionsFunction::SetPageActionEnabled(bool enable) { } // Make sure the URL hasn't changed. - content::NavigationEntry* entry = contents->GetController().GetActiveEntry(); + content::NavigationEntry* entry = contents->GetController().GetVisibleEntry(); if (!entry || url != entry->GetURL().spec()) { error_ = extensions::ErrorUtils::FormatErrorMessage( extensions::kUrlNotActiveError, url); diff --git a/chrome/browser/extensions/api/tabs/tabs_api.cc b/chrome/browser/extensions/api/tabs/tabs_api.cc index 09f86ab..a321999 100644 --- a/chrome/browser/extensions/api/tabs/tabs_api.cc +++ b/chrome/browser/extensions/api/tabs/tabs_api.cc @@ -1631,7 +1631,7 @@ bool TabsReloadFunction::RunImpl() { if (web_contents->ShowingInterstitialPage()) { // This does as same as Browser::ReloadInternal. - NavigationEntry* entry = web_contents->GetController().GetActiveEntry(); + NavigationEntry* entry = web_contents->GetController().GetVisibleEntry(); OpenURLParams params(entry->GetURL(), Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_RELOAD, false); GetCurrentBrowser()->OpenURL(params); diff --git a/chrome/browser/extensions/browser_event_router.cc b/chrome/browser/extensions/browser_event_router.cc index db82d6b..635781a 100644 --- a/chrome/browser/extensions/browser_event_router.cc +++ b/chrome/browser/extensions/browser_event_router.cc @@ -369,7 +369,7 @@ void BrowserEventRouter::FaviconUrlUpdated(WebContents* contents, if (!icon_url_changed || !*icon_url_changed) return; content::NavigationEntry* entry = - contents->GetController().GetActiveEntry(); + contents->GetController().GetVisibleEntry(); if (!entry || !entry->GetFavicon().valid) return; scoped_ptr<DictionaryValue> changed_properties(new DictionaryValue()); diff --git a/chrome/browser/extensions/extension_override_apitest.cc b/chrome/browser/extensions/extension_override_apitest.cc index 79a0119..e25602d 100644 --- a/chrome/browser/extensions/extension_override_apitest.cc +++ b/chrome/browser/extensions/extension_override_apitest.cc @@ -55,8 +55,8 @@ IN_PROC_BROWSER_TEST_F(ExtensionOverrideTest, OverrideNewtab) { // will call chrome.test.notifyPass() . ui_test_utils::NavigateToURL(browser(), GURL("chrome://newtab/")); WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents(); - ASSERT_TRUE(tab->GetController().GetActiveEntry()); - EXPECT_TRUE(tab->GetController().GetActiveEntry()->GetURL(). + ASSERT_TRUE(tab->GetController().GetVisibleEntry()); + EXPECT_TRUE(tab->GetController().GetVisibleEntry()->GetURL(). SchemeIs(extensions::kExtensionScheme)); ASSERT_TRUE(catcher.GetNextResult()); @@ -80,8 +80,8 @@ IN_PROC_BROWSER_TEST_F(ExtensionOverrideTest, MAYBE_OverrideNewtabIncognito) { Browser* otr_browser = ui_test_utils::OpenURLOffTheRecord( browser()->profile(), GURL("chrome://newtab/")); WebContents* tab = otr_browser->tab_strip_model()->GetActiveWebContents(); - ASSERT_TRUE(tab->GetController().GetActiveEntry()); - EXPECT_FALSE(tab->GetController().GetActiveEntry()->GetURL(). + ASSERT_TRUE(tab->GetController().GetVisibleEntry()); + EXPECT_FALSE(tab->GetController().GetVisibleEntry()->GetURL(). SchemeIs(extensions::kExtensionScheme)); } diff --git a/chrome/browser/extensions/extension_tab_util.cc b/chrome/browser/extensions/extension_tab_util.cc index 9a0c9f7..e1cdda0 100644 --- a/chrome/browser/extensions/extension_tab_util.cc +++ b/chrome/browser/extensions/extension_tab_util.cc @@ -155,7 +155,7 @@ DictionaryValue* ExtensionTabUtil::CreateTabValue( result->SetString(keys::kUrlKey, contents->GetURL().spec()); result->SetString(keys::kTitleKey, contents->GetTitle()); if (!is_loading) { - NavigationEntry* entry = contents->GetController().GetActiveEntry(); + NavigationEntry* entry = contents->GetController().GetVisibleEntry(); if (entry && entry->GetFavicon().valid) result->SetString(keys::kFaviconUrlKey, entry->GetFavicon().url.spec()); } diff --git a/chrome/browser/extensions/extension_url_rewrite_browsertest.cc b/chrome/browser/extensions/extension_url_rewrite_browsertest.cc index 0eb343f..0db2dcb 100644 --- a/chrome/browser/extensions/extension_url_rewrite_browsertest.cc +++ b/chrome/browser/extensions/extension_url_rewrite_browsertest.cc @@ -46,7 +46,7 @@ class ExtensionURLRewriteBrowserTest : public ExtensionBrowserTest { } NavigationEntry* GetNavigationEntry() const { - return GetNavigationController()->GetActiveEntry(); + return GetNavigationController()->GetVisibleEntry(); } base::FilePath GetTestExtensionPath(const char* extension_name) const { diff --git a/chrome/browser/extensions/navigation_observer.cc b/chrome/browser/extensions/navigation_observer.cc index 3e3bde3..a4ef5c7 100644 --- a/chrome/browser/extensions/navigation_observer.cc +++ b/chrome/browser/extensions/navigation_observer.cc @@ -52,7 +52,7 @@ void NavigationObserver::PromptToEnableExtensionIfNecessary( if (!in_progress_prompt_extension_id_.empty()) return; - NavigationEntry* nav_entry = nav_controller->GetActiveEntry(); + NavigationEntry* nav_entry = nav_controller->GetVisibleEntry(); if (!nav_entry) return; diff --git a/chrome/browser/extensions/script_badge_controller.cc b/chrome/browser/extensions/script_badge_controller.cc index 43aebb1..17cfd13 100644 --- a/chrome/browser/extensions/script_badge_controller.cc +++ b/chrome/browser/extensions/script_badge_controller.cc @@ -176,7 +176,7 @@ ExtensionService* ScriptBadgeController::GetExtensionService() const { int32 ScriptBadgeController::GetPageID() { content::NavigationEntry* nav_entry = - web_contents()->GetController().GetActiveEntry(); + web_contents()->GetController().GetVisibleEntry(); return nav_entry ? nav_entry->GetPageID() : -1; } diff --git a/chrome/browser/extensions/script_badge_controller_unittest.cc b/chrome/browser/extensions/script_badge_controller_unittest.cc index 01bfd60..585fe2a 100644 --- a/chrome/browser/extensions/script_badge_controller_unittest.cc +++ b/chrome/browser/extensions/script_badge_controller_unittest.cc @@ -154,7 +154,7 @@ TEST_F(ScriptBadgeControllerTest, ExecutionMakesBadgeVisible) { script_badge_controller_->OnScriptsExecuted( web_contents(), id_map, - web_contents()->GetController().GetActiveEntry()->GetPageID(), + web_contents()->GetController().GetVisibleEntry()->GetPageID(), GURL(std::string())); EXPECT_THAT(script_badge_controller_->GetCurrentActions(), testing::ElementsAre(GetScriptBadge(*extension.get()))); @@ -183,7 +183,7 @@ TEST_F(ScriptBadgeControllerTest, FragmentNavigation) { script_badge_controller_->OnScriptsExecuted( web_contents(), id_map, - web_contents()->GetController().GetActiveEntry()->GetPageID(), + web_contents()->GetController().GetVisibleEntry()->GetPageID(), GURL(std::string())); EXPECT_THAT(script_badge_controller_->GetCurrentActions(), diff --git a/chrome/browser/extensions/script_bubble_controller_unittest.cc b/chrome/browser/extensions/script_bubble_controller_unittest.cc index cce310c..c53dac5 100644 --- a/chrome/browser/extensions/script_bubble_controller_unittest.cc +++ b/chrome/browser/extensions/script_bubble_controller_unittest.cc @@ -136,8 +136,8 @@ TEST_F(ScriptBubbleControllerTest, Basics) { script_bubble_controller_->OnScriptsExecuted( web_contents(), executing_scripts, - web_contents()->GetController().GetActiveEntry()->GetPageID(), - web_contents()->GetController().GetActiveEntry()->GetURL()); + web_contents()->GetController().GetVisibleEntry()->GetPageID(), + web_contents()->GetController().GetVisibleEntry()->GetURL()); EXPECT_EQ(1u, script_bubble_controller_->extensions_running_scripts().size()); std::set<std::string> extension_ids; extension_ids.insert(extension1->id()); @@ -151,8 +151,8 @@ TEST_F(ScriptBubbleControllerTest, Basics) { script_bubble_controller_->OnScriptsExecuted( web_contents(), executing_scripts, - web_contents()->GetController().GetActiveEntry()->GetPageID(), - web_contents()->GetController().GetActiveEntry()->GetURL()); + web_contents()->GetController().GetVisibleEntry()->GetPageID(), + web_contents()->GetController().GetVisibleEntry()->GetURL()); EXPECT_EQ(2u, script_bubble_controller_->extensions_running_scripts().size()); extension_ids.insert(extension2->id()); EXPECT_TRUE(extension_ids == @@ -165,8 +165,8 @@ TEST_F(ScriptBubbleControllerTest, Basics) { script_bubble_controller_->OnScriptsExecuted( web_contents(), executing_scripts, - web_contents()->GetController().GetActiveEntry()->GetPageID(), - web_contents()->GetController().GetActiveEntry()->GetURL()); + web_contents()->GetController().GetVisibleEntry()->GetPageID(), + web_contents()->GetController().GetVisibleEntry()->GetURL()); EXPECT_EQ(2u, script_bubble_controller_->extensions_running_scripts().size()); // Running tabs.executeScript from an already-seen extension does not affect diff --git a/chrome/browser/extensions/webstore_installer.cc b/chrome/browser/extensions/webstore_installer.cc index 651a28d..6bfd993 100644 --- a/chrome/browser/extensions/webstore_installer.cc +++ b/chrome/browser/extensions/webstore_installer.cc @@ -434,9 +434,9 @@ void WebstoreInstaller::StartDownload(const base::FilePath& file) { render_view_host_routing_id , resource_context)); params->set_file_path(file); - if (controller_->GetActiveEntry()) + if (controller_->GetVisibleEntry()) params->set_referrer( - content::Referrer(controller_->GetActiveEntry()->GetURL(), + content::Referrer(controller_->GetVisibleEntry()->GetURL(), WebKit::WebReferrerPolicyDefault)); params->set_callback(base::Bind(&WebstoreInstaller::OnDownloadStarted, this)); download_manager->DownloadUrl(params.Pass()); |