Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5505)

Unified Diff: chrome/browser/permissions/permission_context_base.cc

Issue 1726323002: Have Permission{Manager,Service} use Origin. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/permissions/permission_context_base.cc
diff --git a/chrome/browser/permissions/permission_context_base.cc b/chrome/browser/permissions/permission_context_base.cc
index f7626a66fbef3927ff42dcd115eb880c0fa3b8c3..63f1b3340adf001fbf1c1e107459525df30fb570 100644
--- a/chrome/browser/permissions/permission_context_base.cc
+++ b/chrome/browser/permissions/permission_context_base.cc
@@ -60,7 +60,7 @@ PermissionContextBase::~PermissionContextBase() {
void PermissionContextBase::RequestPermission(
content::WebContents* web_contents,
const PermissionRequestID& id,
- const GURL& requesting_frame,
+ const url::Origin& requesting_origin,
const BrowserPermissionCallback& callback) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
@@ -77,17 +77,18 @@ void PermissionContextBase::RequestPermission(
return;
}
- GURL requesting_origin = requesting_frame.GetOrigin();
- GURL embedding_origin = web_contents->GetLastCommittedURL().GetOrigin();
+ const GURL& embedding_url = web_contents->GetLastCommittedURL();
+ const url::Origin embedding_origin(embedding_url);
+ const GURL requesting_url(requesting_origin.Serialize());
- if (!requesting_origin.is_valid() || !embedding_origin.is_valid()) {
+ if (!requesting_origin.empty() || !embedding_origin.empty()) {
std::string type_name =
content_settings::WebsiteSettingsRegistry::GetInstance()
->Get(content_settings_type_)
->name();
DVLOG(1) << "Attempt to use " << type_name
- << " from an invalid URL: " << requesting_origin << ","
+ << " from an invalid origin: " << requesting_origin << ","
<< embedding_origin << " (" << type_name
<< " is not supported in popups)";
NotifyPermissionSet(id, requesting_origin, embedding_origin, callback,
@@ -99,7 +100,7 @@ void PermissionContextBase::RequestPermission(
GetPermissionStatus(requesting_origin, embedding_origin);
if (content_setting == CONTENT_SETTING_ALLOW) {
HostContentSettingsMapFactory::GetForProfile(profile_)->UpdateLastUsage(
- requesting_origin, embedding_origin, content_settings_type_);
+ requesting_url, embedding_url, content_settings_type_);
}
if (content_setting == CONTENT_SETTING_ALLOW ||
content_setting == CONTENT_SETTING_BLOCK) {
@@ -108,36 +109,38 @@ void PermissionContextBase::RequestPermission(
return;
}
- PermissionUmaUtil::PermissionRequested(permission_type_, requesting_origin,
- embedding_origin, profile_);
+ PermissionUmaUtil::PermissionRequested(permission_type_, requesting_url,
+ embedding_url, profile_);
DecidePermission(web_contents, id, requesting_origin, embedding_origin,
callback);
}
ContentSetting PermissionContextBase::GetPermissionStatus(
- const GURL& requesting_origin,
- const GURL& embedding_origin) const {
-
+ const url::Origin& requesting_origin,
+ const url::Origin& embedding_origin) const {
// If the permission has been disabled through Finch, block all requests.
if (IsPermissionKillSwitchOn())
return CONTENT_SETTING_BLOCK;
+ const GURL requesting_url(requesting_origin.Serialize());
+
if (IsRestrictedToSecureOrigins() &&
- !content::IsOriginSecure(requesting_origin)) {
+ !content::IsOriginSecure(requesting_url)) {
return CONTENT_SETTING_BLOCK;
}
return HostContentSettingsMapFactory::GetForProfile(profile_)
- ->GetContentSetting(requesting_origin, embedding_origin,
+ ->GetContentSetting(requesting_url, GURL(embedding_origin.Serialize()),
content_settings_type_, std::string());
}
void PermissionContextBase::ResetPermission(
- const GURL& requesting_origin,
- const GURL& embedding_origin) {
+ const url::Origin& requesting_origin,
+ const url::Origin& embedding_origin) {
HostContentSettingsMapFactory::GetForProfile(profile_)
- ->SetContentSettingDefaultScope(requesting_origin, embedding_origin,
+ ->SetContentSettingDefaultScope(GURL(requesting_origin.Serialize()),
+ GURL(embedding_origin.Serialize()),
content_settings_type_, std::string(),
CONTENT_SETTING_DEFAULT);
}
@@ -162,11 +165,14 @@ void PermissionContextBase::CancelPermissionRequest(
void PermissionContextBase::DecidePermission(
content::WebContents* web_contents,
const PermissionRequestID& id,
- const GURL& requesting_origin,
- const GURL& embedding_origin,
+ const url::Origin& requesting_origin,
+ const url::Origin& embedding_origin,
const BrowserPermissionCallback& callback) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+ const GURL requesting_url(requesting_origin.Serialize());
+ const GURL embedding_url(embedding_origin.Serialize());
+
#if !defined(OS_ANDROID)
PermissionBubbleManager* bubble_manager =
PermissionBubbleManager::FromWebContents(web_contents);
@@ -174,9 +180,10 @@ void PermissionContextBase::DecidePermission(
// prevent crashes. See crbug.com/457091.
if (!bubble_manager)
return;
+
scoped_ptr<PermissionBubbleRequest> request_ptr(
new PermissionBubbleRequestImpl(
- requesting_origin, permission_type_,
+ requesting_url, permission_type_,
profile_->GetPrefs()->GetString(prefs::kAcceptLanguages),
base::Bind(&PermissionContextBase::PermissionDecided,
weak_factory_.GetWeakPtr(), id, requesting_origin,
@@ -191,7 +198,7 @@ void PermissionContextBase::DecidePermission(
bubble_manager->AddRequest(request);
#else
GetQueueController()->CreateInfoBarRequest(
- id, requesting_origin, embedding_origin,
+ id, requesting_url, embedding_url,
base::Bind(&PermissionContextBase::PermissionDecided,
weak_factory_.GetWeakPtr(), id, requesting_origin,
embedding_origin, callback,
@@ -203,24 +210,25 @@ void PermissionContextBase::DecidePermission(
void PermissionContextBase::PermissionDecided(
const PermissionRequestID& id,
- const GURL& requesting_origin,
- const GURL& embedding_origin,
+ const url::Origin& requesting_origin,
+ const url::Origin& embedding_origin,
const BrowserPermissionCallback& callback,
bool persist,
ContentSetting content_setting) {
#if !defined(OS_ANDROID)
// Infobar persistence and its related UMA is tracked on the infobar
// controller directly.
+ const GURL requesting_url(requesting_origin.Serialize());
if (persist) {
DCHECK(content_setting == CONTENT_SETTING_ALLOW ||
content_setting == CONTENT_SETTING_BLOCK);
if (content_setting == CONTENT_SETTING_ALLOW)
- PermissionUmaUtil::PermissionGranted(permission_type_, requesting_origin);
+ PermissionUmaUtil::PermissionGranted(permission_type_, requesting_url);
else
- PermissionUmaUtil::PermissionDenied(permission_type_, requesting_origin);
+ PermissionUmaUtil::PermissionDenied(permission_type_, requesting_url);
} else {
DCHECK_EQ(content_setting, CONTENT_SETTING_DEFAULT);
- PermissionUmaUtil::PermissionDismissed(permission_type_, requesting_origin);
+ PermissionUmaUtil::PermissionDismissed(permission_type_, requesting_url);
}
#endif
@@ -240,8 +248,8 @@ Profile* PermissionContextBase::profile() const {
void PermissionContextBase::NotifyPermissionSet(
const PermissionRequestID& id,
- const GURL& requesting_origin,
- const GURL& embedding_origin,
+ const url::Origin& requesting_origin,
+ const url::Origin& embedding_origin,
const BrowserPermissionCallback& callback,
bool persist,
ContentSetting content_setting) {
@@ -269,16 +277,18 @@ void PermissionContextBase::CleanUpBubble(const PermissionRequestID& id) {
}
void PermissionContextBase::UpdateContentSetting(
- const GURL& requesting_origin,
- const GURL& embedding_origin,
+ const url::Origin& requesting_origin,
+ const url::Origin& embedding_origin,
ContentSetting content_setting) {
- DCHECK_EQ(requesting_origin, requesting_origin.GetOrigin());
- DCHECK_EQ(embedding_origin, embedding_origin.GetOrigin());
+ const GURL requesting_url(requesting_origin.Serialize());
+ const GURL embedding_url(embedding_origin.Serialize());
+ DCHECK_EQ(requesting_origin, url::Origin(requesting_url));
+ DCHECK_EQ(embedding_origin, url::Origin(embedding_url));
DCHECK(content_setting == CONTENT_SETTING_ALLOW ||
content_setting == CONTENT_SETTING_BLOCK);
HostContentSettingsMapFactory::GetForProfile(profile_)
- ->SetContentSettingDefaultScope(requesting_origin, embedding_origin,
+ ->SetContentSettingDefaultScope(requesting_url, embedding_url,
content_settings_type_, std::string(),
content_setting);
}
« no previous file with comments | « chrome/browser/permissions/permission_context_base.h ('k') | chrome/browser/permissions/permission_context_base_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698