summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornasko@chromium.org <nasko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-16 20:31:34 +0000
committernasko@chromium.org <nasko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-16 20:31:34 +0000
commitafe9aba2de06c38e2d6418baeb567a3c04d46903 (patch)
treeeecea725d08be42990cf539392d3a1ea8822ad89
parent4e9497fac87f9827a1a8981354ae0e3f0180f1e6 (diff)
downloadchromium_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
-rw-r--r--chrome/browser/extensions/active_tab_permission_granter.cc2
-rw-r--r--chrome/browser/extensions/api/debugger/debugger_api.cc2
-rw-r--r--chrome/browser/extensions/api/extension_action/extension_action_api.cc2
-rw-r--r--chrome/browser/extensions/api/tabs/tabs_api.cc2
-rw-r--r--chrome/browser/extensions/browser_event_router.cc2
-rw-r--r--chrome/browser/extensions/extension_override_apitest.cc8
-rw-r--r--chrome/browser/extensions/extension_tab_util.cc2
-rw-r--r--chrome/browser/extensions/extension_url_rewrite_browsertest.cc2
-rw-r--r--chrome/browser/extensions/navigation_observer.cc2
-rw-r--r--chrome/browser/extensions/script_badge_controller.cc2
-rw-r--r--chrome/browser/extensions/script_badge_controller_unittest.cc4
-rw-r--r--chrome/browser/extensions/script_bubble_controller_unittest.cc12
-rw-r--r--chrome/browser/extensions/webstore_installer.cc4
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());