diff options
author | justinlin@chromium.org <justinlin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-25 11:04:33 +0000 |
---|---|---|
committer | justinlin@chromium.org <justinlin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-25 11:04:33 +0000 |
commit | 464868d285924f5030ea1a1e0c6b33814007bf9a (patch) | |
tree | fa2c9bf4a3b44dd1506df56f2b42103004537f2a | |
parent | 04810d8b4f93924ed0aa3427a611384e55c58d32 (diff) | |
download | chromium_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.cc | 17 | ||||
-rw-r--r-- | chrome/browser/extensions/active_tab_permission_granter.h | 3 |
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_; |