summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjustinlin@chromium.org <justinlin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-25 11:04:33 +0000
committerjustinlin@chromium.org <justinlin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-25 11:04:33 +0000
commit464868d285924f5030ea1a1e0c6b33814007bf9a (patch)
treefa2c9bf4a3b44dd1506df56f2b42103004537f2a
parent04810d8b4f93924ed0aa3427a611384e55c58d32 (diff)
downloadchromium_src-464868d285924f5030ea1a1e0c6b33814007bf9a.zip
chromium_src-464868d285924f5030ea1a1e0c6b33814007bf9a.tar.gz
chromium_src-464868d285924f5030ea1a1e0c6b33814007bf9a.tar.bz2
Fix crash when attempting to grant a page when there have been no navigation entries.
This occurs if you click on the browser action for an extension that supports grants really quickly before the tab loads. BUG=311375 Review URL: https://codereview.chromium.org/42043002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@231000 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/extensions/active_tab_permission_granter.cc17
-rw-r--r--chrome/browser/extensions/active_tab_permission_granter.h3
2 files changed, 9 insertions, 11 deletions
diff --git a/chrome/browser/extensions/active_tab_permission_granter.cc b/chrome/browser/extensions/active_tab_permission_granter.cc
index 8e8c1dc..95b2a45 100644
--- a/chrome/browser/extensions/active_tab_permission_granter.cc
+++ b/chrome/browser/extensions/active_tab_permission_granter.cc
@@ -63,10 +63,15 @@ void ActiveTabPermissionGranter::GrantIfRequested(const Extension* extension) {
PermissionsData::UpdateTabSpecificPermissions(extension,
tab_id_,
new_permissions);
- Send(new ExtensionMsg_UpdateTabSpecificPermissions(GetPageID(),
- tab_id_,
- extension->id(),
- new_hosts));
+ const content::NavigationEntry* navigation_entry =
+ web_contents()->GetController().GetVisibleEntry();
+ if (navigation_entry) {
+ Send(new ExtensionMsg_UpdateTabSpecificPermissions(
+ navigation_entry->GetPageID(),
+ tab_id_,
+ extension->id(),
+ new_hosts));
+ }
}
}
@@ -112,8 +117,4 @@ void ActiveTabPermissionGranter::ClearActiveExtensionsAndNotify() {
granted_extensions_.Clear();
}
-int32 ActiveTabPermissionGranter::GetPageID() {
- return web_contents()->GetController().GetVisibleEntry()->GetPageID();
-}
-
} // namespace extensions
diff --git a/chrome/browser/extensions/active_tab_permission_granter.h b/chrome/browser/extensions/active_tab_permission_granter.h
index 0ef0336..fe43fb8 100644
--- a/chrome/browser/extensions/active_tab_permission_granter.h
+++ b/chrome/browser/extensions/active_tab_permission_granter.h
@@ -55,9 +55,6 @@ class ActiveTabPermissionGranter : public content::WebContentsObserver,
// notifies renderers.
void ClearActiveExtensionsAndNotify();
- // Gets the current page id.
- int32 GetPageID();
-
// The tab ID for this tab.
int tab_id_;