summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--android_webview/browser/aw_browser_context.cc8
-rw-r--r--android_webview/browser/aw_browser_context.h10
-rw-r--r--chrome/browser/content_settings/permission_queue_controller.cc30
-rw-r--r--chrome/browser/content_settings/permission_queue_controller.h3
-rw-r--r--chrome/browser/content_settings/permission_queue_controller_unittest.cc2
-rw-r--r--chrome/browser/content_settings/permission_request_id.cc11
-rw-r--r--chrome/browser/content_settings/permission_request_id.h16
-rw-r--r--chrome/browser/geolocation/chrome_geolocation_permission_context.cc5
-rw-r--r--chrome/browser/geolocation/chrome_geolocation_permission_context_android.cc2
-rw-r--r--chrome/browser/geolocation/chrome_geolocation_permission_context_unittest.cc4
-rw-r--r--chrome/browser/media/chrome_midi_permission_context.cc6
-rw-r--r--chrome/browser/media/protected_media_identifier_permission_context.cc58
-rw-r--r--chrome/browser/media/protected_media_identifier_permission_context.h21
-rw-r--r--chrome/browser/profiles/off_the_record_profile_impl.cc15
-rw-r--r--chrome/browser/profiles/off_the_record_profile_impl.h8
-rw-r--r--chrome/browser/profiles/profile_impl.cc15
-rw-r--r--chrome/browser/profiles/profile_impl.h8
-rw-r--r--chrome/browser/ui/app_list/test/fake_profile.cc8
-rw-r--r--chrome/browser/ui/app_list/test/fake_profile.h8
-rw-r--r--chrome/test/base/testing_profile.cc8
-rw-r--r--chrome/test/base/testing_profile.h8
-rw-r--r--content/browser/download/download_manager_impl_unittest.cc12
-rw-r--r--content/browser/media/android/browser_media_player_manager.cc11
-rw-r--r--content/public/browser/browser_context.h8
-rw-r--r--content/public/test/test_browser_context.cc8
-rw-r--r--content/public/test/test_browser_context.h8
-rw-r--r--content/shell/browser/shell_browser_context.cc8
-rw-r--r--content/shell/browser/shell_browser_context.h8
28 files changed, 150 insertions, 167 deletions
diff --git a/android_webview/browser/aw_browser_context.cc b/android_webview/browser/aw_browser_context.cc
index 4efdd6c..c6c020c 100644
--- a/android_webview/browser/aw_browser_context.cc
+++ b/android_webview/browser/aw_browser_context.cc
@@ -237,16 +237,16 @@ void AwBrowserContext::CancelMidiSysExPermissionRequest(
void AwBrowserContext::RequestProtectedMediaIdentifierPermission(
int render_process_id,
int render_view_id,
- int bridge_id,
- int group_id,
- const GURL& requesting_frame,
+ const GURL& origin,
const ProtectedMediaIdentifierPermissionCallback& callback) {
NOTIMPLEMENTED();
callback.Run(false);
}
void AwBrowserContext::CancelProtectedMediaIdentifierPermissionRequests(
- int group_id) {
+ int render_process_id,
+ int render_view_id,
+ const GURL& origin) {
NOTIMPLEMENTED();
}
diff --git a/android_webview/browser/aw_browser_context.h b/android_webview/browser/aw_browser_context.h
index de1c545..8b0c068 100644
--- a/android_webview/browser/aw_browser_context.h
+++ b/android_webview/browser/aw_browser_context.h
@@ -114,12 +114,12 @@ class AwBrowserContext : public content::BrowserContext,
virtual void RequestProtectedMediaIdentifierPermission(
int render_process_id,
int render_view_id,
- int bridge_id,
- int group_id,
- const GURL& requesting_frame,
+ const GURL& origin,
const ProtectedMediaIdentifierPermissionCallback& callback) OVERRIDE;
- virtual void CancelProtectedMediaIdentifierPermissionRequests(int group_id)
- OVERRIDE;
+ virtual void CancelProtectedMediaIdentifierPermissionRequests(
+ int render_process_id,
+ int render_view_id,
+ const GURL& origin) OVERRIDE;
virtual content::ResourceContext* GetResourceContext() OVERRIDE;
virtual content::DownloadManagerDelegate*
GetDownloadManagerDelegate() OVERRIDE;
diff --git a/chrome/browser/content_settings/permission_queue_controller.cc b/chrome/browser/content_settings/permission_queue_controller.cc
index 2a7e075..d084210 100644
--- a/chrome/browser/content_settings/permission_queue_controller.cc
+++ b/chrome/browser/content_settings/permission_queue_controller.cc
@@ -182,36 +182,6 @@ void PermissionQueueController::CancelInfoBarRequest(
}
}
-void PermissionQueueController::CancelInfoBarRequests(int group_id) {
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
-
- // If we remove an infobar in the following loop, the next pending infobar
- // will be shown. Therefore, we erase all the pending infobars first and
- // remove an infobar later.
- PendingInfobarRequests infobar_requests_to_cancel;
- for (PendingInfobarRequests::iterator i = pending_infobar_requests_.begin();
- i != pending_infobar_requests_.end();) {
- if (i->id().group_id() == group_id) {
- if (i->has_infobar()) {
- // |i| will be erased from |pending_infobar_requests_|
- // in |PermissionQueueController::Observe| when the infobar is removed.
- infobar_requests_to_cancel.push_back(*i);
- ++i;
- } else {
- i = pending_infobar_requests_.erase(i);
- }
- } else {
- ++i;
- }
- }
-
- for (PendingInfobarRequests::iterator i = infobar_requests_to_cancel.begin();
- i != infobar_requests_to_cancel.end();
- ++i) {
- GetInfoBarService(i->id())->RemoveInfoBar(i->infobar());
- }
-}
-
void PermissionQueueController::OnPermissionSet(
const PermissionRequestID& id,
const GURL& requesting_frame,
diff --git a/chrome/browser/content_settings/permission_queue_controller.h b/chrome/browser/content_settings/permission_queue_controller.h
index bf57bc0..24b1780 100644
--- a/chrome/browser/content_settings/permission_queue_controller.h
+++ b/chrome/browser/content_settings/permission_queue_controller.h
@@ -41,9 +41,6 @@ class PermissionQueueController : public content::NotificationObserver {
// Cancels a specific infobar request.
void CancelInfoBarRequest(const PermissionRequestID& id);
- // Cancels all infobar requests that match |group_id|.
- void CancelInfoBarRequests(int group_id);
-
// Called by the InfoBarDelegate to notify permission has been set.
// It'll notify and dismiss any other pending InfoBar request for the same
// |requesting_frame| and embedder.
diff --git a/chrome/browser/content_settings/permission_queue_controller_unittest.cc b/chrome/browser/content_settings/permission_queue_controller_unittest.cc
index 1b70408..57292a1 100644
--- a/chrome/browser/content_settings/permission_queue_controller_unittest.cc
+++ b/chrome/browser/content_settings/permission_queue_controller_unittest.cc
@@ -28,7 +28,7 @@ class PermissionQueueControllerTests : public ChromeRenderViewHostTestHarness {
web_contents()->GetRenderProcessHost()->GetID(),
web_contents()->GetRenderViewHost()->GetRoutingID(),
bridge_id,
- 0);
+ GURL());
}
private:
diff --git a/chrome/browser/content_settings/permission_request_id.cc b/chrome/browser/content_settings/permission_request_id.cc
index 23c98d7..cc66761 100644
--- a/chrome/browser/content_settings/permission_request_id.cc
+++ b/chrome/browser/content_settings/permission_request_id.cc
@@ -10,18 +10,19 @@
PermissionRequestID::PermissionRequestID(int render_process_id,
int render_view_id,
int bridge_id,
- int group_id)
+ const GURL& origin)
: render_process_id_(render_process_id),
render_view_id_(render_view_id),
bridge_id_(bridge_id),
- group_id_(group_id) {
+ origin_(origin) {
}
PermissionRequestID::~PermissionRequestID() {
}
bool PermissionRequestID::Equals(const PermissionRequestID& other) const {
- return IsForSameTabAs(other) && (bridge_id_ == other.bridge_id_);
+ return IsForSameTabAs(other) && (bridge_id_ == other.bridge_id_) &&
+ (origin_ == other.origin());
}
bool PermissionRequestID::IsForSameTabAs(
@@ -31,9 +32,9 @@ bool PermissionRequestID::IsForSameTabAs(
}
std::string PermissionRequestID::ToString() const {
- return base::StringPrintf("%d,%d,%d,%d",
+ return base::StringPrintf("%d,%d,%d,%s",
render_process_id_,
render_view_id_,
bridge_id_,
- group_id_);
+ origin_.spec().c_str());
}
diff --git a/chrome/browser/content_settings/permission_request_id.h b/chrome/browser/content_settings/permission_request_id.h
index 13d92e3..a10ce07 100644
--- a/chrome/browser/content_settings/permission_request_id.h
+++ b/chrome/browser/content_settings/permission_request_id.h
@@ -7,19 +7,21 @@
#include <string>
+#include "url/gurl.h"
+
// Uniquely identifies a particular permission request.
class PermissionRequestID {
public:
PermissionRequestID(int render_process_id,
int render_view_id,
int bridge_id,
- int group_id);
+ const GURL& origin);
~PermissionRequestID();
int render_process_id() const { return render_process_id_; }
int render_view_id() const { return render_view_id_; }
int bridge_id() const { return bridge_id_; }
- int group_id() const { return group_id_; }
+ GURL origin() const { return origin_; }
bool Equals(const PermissionRequestID& other) const;
bool IsForSameTabAs(const PermissionRequestID& other) const;
@@ -30,13 +32,9 @@ class PermissionRequestID {
int render_view_id_;
// Id unique to this instance.
int bridge_id_;
- // Id possibly shared by multiple instance. This is used in
- // PermissionQueueController::CancelInfoBarRequests(int group_id) to cancel
- // multiple permission requests by a group id.
- // For example, ProtectedMediaIdentifierPermissionContext class uses this.
- // If you don't use that function, this doesn't matter and setting this to 0
- // is recommended.
- int group_id_;
+ // Needed for permission checks that are based on origin.
+ // If you don't use origin to check permission request, pass an empty GURL.
+ GURL origin_;
// Purposefully do not disable copying, as this is stored in STL containers.
};
diff --git a/chrome/browser/geolocation/chrome_geolocation_permission_context.cc b/chrome/browser/geolocation/chrome_geolocation_permission_context.cc
index 6b56989..f65d364 100644
--- a/chrome/browser/geolocation/chrome_geolocation_permission_context.cc
+++ b/chrome/browser/geolocation/chrome_geolocation_permission_context.cc
@@ -156,7 +156,8 @@ void ChromeGeolocationPermissionContext::RequestGeolocationPermission(
int render_process_id = web_contents->GetRenderProcessHost()->GetID();
int render_view_id = web_contents->GetRenderViewHost()->GetRoutingID();
- const PermissionRequestID id(render_process_id, render_view_id, bridge_id, 0);
+ const PermissionRequestID id(
+ render_process_id, render_view_id, bridge_id, GURL());
ExtensionRegistry* extension_registry = ExtensionRegistry::Get(profile_);
if (extension_registry) {
const extensions::Extension* extension =
@@ -213,7 +214,7 @@ void ChromeGeolocationPermissionContext::CancelGeolocationPermissionRequest(
int render_process_id = web_contents->GetRenderProcessHost()->GetID();
int render_view_id = web_contents->GetRenderViewHost()->GetRoutingID();
CancelPendingInfobarRequest(PermissionRequestID(
- render_process_id, render_view_id, bridge_id, 0));
+ render_process_id, render_view_id, bridge_id, GURL()));
}
void ChromeGeolocationPermissionContext::DecidePermission(
diff --git a/chrome/browser/geolocation/chrome_geolocation_permission_context_android.cc b/chrome/browser/geolocation/chrome_geolocation_permission_context_android.cc
index b8f3d01..39654e6 100644
--- a/chrome/browser/geolocation/chrome_geolocation_permission_context_android.cc
+++ b/chrome/browser/geolocation/chrome_geolocation_permission_context_android.cc
@@ -13,7 +13,7 @@
ChromeGeolocationPermissionContextAndroid::
PermissionRequestInfo::PermissionRequestInfo()
- : id(0, 0, 0, 0),
+ : id(0, 0, 0, GURL()),
user_gesture(false) {}
ChromeGeolocationPermissionContextAndroid::
diff --git a/chrome/browser/geolocation/chrome_geolocation_permission_context_unittest.cc b/chrome/browser/geolocation/chrome_geolocation_permission_context_unittest.cc
index af6f706..4ca5415 100644
--- a/chrome/browser/geolocation/chrome_geolocation_permission_context_unittest.cc
+++ b/chrome/browser/geolocation/chrome_geolocation_permission_context_unittest.cc
@@ -145,7 +145,7 @@ PermissionRequestID GeolocationPermissionContextTests::RequestID(
web_contents()->GetRenderProcessHost()->GetID(),
web_contents()->GetRenderViewHost()->GetRoutingID(),
bridge_id,
- 0);
+ GURL());
}
PermissionRequestID GeolocationPermissionContextTests::RequestIDForTab(
@@ -155,7 +155,7 @@ PermissionRequestID GeolocationPermissionContextTests::RequestIDForTab(
extra_tabs_[tab]->GetRenderProcessHost()->GetID(),
extra_tabs_[tab]->GetRenderViewHost()->GetRoutingID(),
bridge_id,
- 0);
+ GURL());
}
void GeolocationPermissionContextTests::RequestGeolocationPermission(
diff --git a/chrome/browser/media/chrome_midi_permission_context.cc b/chrome/browser/media/chrome_midi_permission_context.cc
index 927c82a9..25f25b9 100644
--- a/chrome/browser/media/chrome_midi_permission_context.cc
+++ b/chrome/browser/media/chrome_midi_permission_context.cc
@@ -151,7 +151,8 @@ void ChromeMidiPermissionContext::RequestMidiSysExPermission(
if (!web_contents)
return;
- const PermissionRequestID id(render_process_id, render_view_id, bridge_id, 0);
+ const PermissionRequestID id(
+ render_process_id, render_view_id, bridge_id, GURL());
GURL embedder = web_contents->GetURL();
// |requesting_frame| can be empty and invalid when the frame is a local
@@ -176,7 +177,8 @@ void ChromeMidiPermissionContext::CancelMidiSysExPermissionRequest(
int bridge_id,
const GURL& requesting_frame) {
CancelPendingInfobarRequest(
- PermissionRequestID(render_process_id, render_view_id, bridge_id, 0));
+ PermissionRequestID(
+ render_process_id, render_view_id, bridge_id, GURL()));
}
void ChromeMidiPermissionContext::DecidePermission(
diff --git a/chrome/browser/media/protected_media_identifier_permission_context.cc b/chrome/browser/media/protected_media_identifier_permission_context.cc
index fc37e05..edecf5d 100644
--- a/chrome/browser/media/protected_media_identifier_permission_context.cc
+++ b/chrome/browser/media/protected_media_identifier_permission_context.cc
@@ -44,9 +44,7 @@ void ProtectedMediaIdentifierPermissionContext::
RequestProtectedMediaIdentifierPermission(
int render_process_id,
int render_view_id,
- int bridge_id,
- int group_id,
- const GURL& requesting_frame,
+ const GURL& origin,
const base::Callback<void(bool)>& callback) {
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
if (shutting_down_)
@@ -55,7 +53,7 @@ void ProtectedMediaIdentifierPermissionContext::
content::WebContents* web_contents =
tab_util::GetWebContentsByID(render_process_id, render_view_id);
const PermissionRequestID id(
- render_process_id, render_view_id, bridge_id, group_id);
+ render_process_id, render_view_id, 0, origin);
if (extensions::GetViewType(web_contents) !=
extensions::VIEW_TYPE_TAB_CONTENTS) {
@@ -64,32 +62,36 @@ void ProtectedMediaIdentifierPermissionContext::
<< "Attempt to use protected media identifier in tabless renderer: "
<< id.ToString()
<< " (can't prompt user without a visible tab)";
- NotifyPermissionSet(id, requesting_frame, callback, false);
+ NotifyPermissionSet(id, origin, callback, false);
return;
}
GURL embedder = web_contents->GetLastCommittedURL();
- if (!requesting_frame.is_valid() || !embedder.is_valid()) {
+ if (!origin.is_valid() || !embedder.is_valid()) {
LOG(WARNING)
<< "Attempt to use protected media identifier from an invalid URL: "
- << requesting_frame << "," << embedder
+ << origin << "," << embedder
<< " (proteced media identifier is not supported in popups)";
- NotifyPermissionSet(id, requesting_frame, callback, false);
+ NotifyPermissionSet(id, origin, callback, false);
return;
}
content::RenderViewHost* rvh = web_contents->GetRenderViewHost();
- DecidePermission(id, requesting_frame, embedder, rvh, callback);
+ DecidePermission(id, origin, embedder, rvh, callback);
}
void ProtectedMediaIdentifierPermissionContext::
- CancelProtectedMediaIdentifierPermissionRequests(int group_id) {
- CancelPendingInfobarRequests(group_id);
+ CancelProtectedMediaIdentifierPermissionRequests(
+ int render_process_id,
+ int render_view_id,
+ const GURL& origin) {
+ CancelPendingInfobarRequests(
+ render_process_id, render_view_id, origin);
}
void ProtectedMediaIdentifierPermissionContext::DecidePermission(
const PermissionRequestID& id,
- const GURL& requesting_frame,
+ const GURL& origin,
const GURL& embedder,
content::RenderViewHost* rvh,
const base::Callback<void(bool)>& callback) {
@@ -99,35 +101,35 @@ void ProtectedMediaIdentifierPermissionContext::DecidePermission(
// Check if the protected media identifier master switch is disabled.
if (!profile()->GetPrefs()->GetBoolean(
prefs::kProtectedMediaIdentifierEnabled)) {
- PermissionDecided(id, requesting_frame, embedder, callback, false);
+ PermissionDecided(id, origin, embedder, callback, false);
return;
}
#endif
ContentSetting content_setting =
profile_->GetHostContentSettingsMap()->GetContentSetting(
- requesting_frame,
+ origin,
embedder,
CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER,
std::string());
switch (content_setting) {
case CONTENT_SETTING_BLOCK:
- PermissionDecided(id, requesting_frame, embedder, callback, false);
+ PermissionDecided(id, origin, embedder, callback, false);
break;
case CONTENT_SETTING_ALLOW:
- PermissionDecided(id, requesting_frame, embedder, callback, true);
+ PermissionDecided(id, origin, embedder, callback, true);
break;
case CONTENT_SETTING_ASK:
QueueController()->CreateInfoBarRequest(
id,
- requesting_frame,
+ origin,
embedder,
std::string(),
base::Bind(&ProtectedMediaIdentifierPermissionContext::
NotifyPermissionSet,
base::Unretained(this),
id,
- requesting_frame,
+ origin,
callback));
break;
default:
@@ -143,16 +145,16 @@ void ProtectedMediaIdentifierPermissionContext::ShutdownOnUIThread() {
void ProtectedMediaIdentifierPermissionContext::PermissionDecided(
const PermissionRequestID& id,
- const GURL& requesting_frame,
+ const GURL& origin,
const GURL& embedder,
const base::Callback<void(bool)>& callback,
bool allowed) {
- NotifyPermissionSet(id, requesting_frame, callback, allowed);
+ NotifyPermissionSet(id, origin, callback, allowed);
}
void ProtectedMediaIdentifierPermissionContext::NotifyPermissionSet(
const PermissionRequestID& id,
- const GURL& requesting_frame,
+ const GURL& origin,
const base::Callback<void(bool)>& callback,
bool allowed) {
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
@@ -163,7 +165,7 @@ void ProtectedMediaIdentifierPermissionContext::NotifyPermissionSet(
id.render_view_id());
if (content_settings) {
content_settings->OnProtectedMediaIdentifierPermissionSet(
- requesting_frame.GetOrigin(), allowed);
+ origin.GetOrigin(), allowed);
}
callback.Run(allowed);
@@ -187,7 +189,9 @@ PermissionQueueController*
void
ProtectedMediaIdentifierPermissionContext::CancelPendingInfobarRequests(
- int group_id) {
+ int render_process_id,
+ int render_view_id,
+ const GURL& origin) {
if (!content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)) {
content::BrowserThread::PostTask(
content::BrowserThread::UI,
@@ -195,11 +199,15 @@ ProtectedMediaIdentifierPermissionContext::CancelPendingInfobarRequests(
base::Bind(&ProtectedMediaIdentifierPermissionContext::
CancelPendingInfobarRequests,
this,
- group_id));
+ render_process_id,
+ render_view_id,
+ origin));
return;
}
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
if (shutting_down_)
return;
- QueueController()->CancelInfoBarRequests(group_id);
+ QueueController()->CancelInfoBarRequest(
+ PermissionRequestID(render_process_id, render_view_id, 0,
+ origin));
}
diff --git a/chrome/browser/media/protected_media_identifier_permission_context.h b/chrome/browser/media/protected_media_identifier_permission_context.h
index eaa5331..afedc08 100644
--- a/chrome/browser/media/protected_media_identifier_permission_context.h
+++ b/chrome/browser/media/protected_media_identifier_permission_context.h
@@ -29,12 +29,12 @@ class ProtectedMediaIdentifierPermissionContext
void RequestProtectedMediaIdentifierPermission(
int render_process_id,
int render_view_id,
- int bridge_id,
- int group_id,
- const GURL& requesting_frame,
+ const GURL& origin,
const base::Callback<void(bool)>& callback);
void CancelProtectedMediaIdentifierPermissionRequests(
- int group_id);
+ int render_process_id,
+ int render_view_id,
+ const GURL& origin);
// Called on the UI thread when the profile is about to be destroyed.
void ShutdownOnUIThread();
@@ -54,7 +54,7 @@ class ProtectedMediaIdentifierPermissionContext
// protected media identifier via
// SetProtectedMediaIdentifierPermissionResponse(). Called on the UI thread.
void NotifyPermissionSet(const PermissionRequestID& id,
- const GURL& requesting_frame,
+ const GURL& origin,
const base::Callback<void(bool)>& callback,
bool allowed);
@@ -63,7 +63,7 @@ class ProtectedMediaIdentifierPermissionContext
// or NotifyPermissionSet if permission decided by presenting an
// infobar to the user. Called on the UI thread.
void DecidePermission(const PermissionRequestID& id,
- const GURL& requesting_frame,
+ const GURL& origin,
const GURL& embedder,
content::RenderViewHost* rvh,
const base::Callback<void(bool)>& callback);
@@ -73,7 +73,7 @@ class ProtectedMediaIdentifierPermissionContext
// Should ultimately ensure that NotifyPermissionSet is called.
// Called on the UI thread.
void PermissionDecided(const PermissionRequestID& id,
- const GURL& requesting_frame,
+ const GURL& origin,
const GURL& embedder,
const base::Callback<void(bool)>& callback,
bool allowed);
@@ -82,8 +82,11 @@ class ProtectedMediaIdentifierPermissionContext
// provide additional UI flow. Called on the UI thread.
PermissionQueueController* CreateQueueController();
- // Removes pending InfoBar requests that match |group_id|.
- void CancelPendingInfobarRequests(int group_id);
+ // Removes pending InfoBar requests that match |bridge_id| from the tab
+ // given by |render_process_id| and |render_view_id|.
+ void CancelPendingInfobarRequests(int render_process_id,
+ int render_view_id,
+ const GURL& origin);
// These must only be accessed from the UI thread.
Profile* const profile_;
diff --git a/chrome/browser/profiles/off_the_record_profile_impl.cc b/chrome/browser/profiles/off_the_record_profile_impl.cc
index dc8c3ee..d35a424 100644
--- a/chrome/browser/profiles/off_the_record_profile_impl.cc
+++ b/chrome/browser/profiles/off_the_record_profile_impl.cc
@@ -348,18 +348,14 @@ void OffTheRecordProfileImpl::CancelMidiSysExPermissionRequest(
void OffTheRecordProfileImpl::RequestProtectedMediaIdentifierPermission(
int render_process_id,
int render_view_id,
- int bridge_id,
- int group_id,
- const GURL& requesting_frame,
+ const GURL& origin,
const ProtectedMediaIdentifierPermissionCallback& callback) {
#if defined(OS_ANDROID)
ProtectedMediaIdentifierPermissionContext* context =
ProtectedMediaIdentifierPermissionContextFactory::GetForProfile(this);
context->RequestProtectedMediaIdentifierPermission(render_process_id,
render_view_id,
- bridge_id,
- group_id,
- requesting_frame,
+ origin,
callback);
#else
NOTIMPLEMENTED();
@@ -368,11 +364,14 @@ void OffTheRecordProfileImpl::RequestProtectedMediaIdentifierPermission(
}
void OffTheRecordProfileImpl::CancelProtectedMediaIdentifierPermissionRequests(
- int group_id) {
+ int render_process_id,
+ int render_view_id,
+ const GURL& origin) {
#if defined(OS_ANDROID)
ProtectedMediaIdentifierPermissionContext* context =
ProtectedMediaIdentifierPermissionContextFactory::GetForProfile(this);
- context->CancelProtectedMediaIdentifierPermissionRequests(group_id);
+ context->CancelProtectedMediaIdentifierPermissionRequests(
+ render_process_id, render_view_id, origin);
#else
NOTIMPLEMENTED();
#endif // defined(OS_ANDROID)
diff --git a/chrome/browser/profiles/off_the_record_profile_impl.h b/chrome/browser/profiles/off_the_record_profile_impl.h
index d61e39d..a8a88d1 100644
--- a/chrome/browser/profiles/off_the_record_profile_impl.h
+++ b/chrome/browser/profiles/off_the_record_profile_impl.h
@@ -119,12 +119,12 @@ class OffTheRecordProfileImpl : public Profile {
virtual void RequestProtectedMediaIdentifierPermission(
int render_process_id,
int render_view_id,
- int bridge_id,
- int group_id,
- const GURL& requesting_frame,
+ const GURL& origin,
const ProtectedMediaIdentifierPermissionCallback& callback) OVERRIDE;
virtual void CancelProtectedMediaIdentifierPermissionRequests(
- int group_id) OVERRIDE;
+ int render_process_id,
+ int render_view_id,
+ const GURL& origin) OVERRIDE;
virtual content::ResourceContext* GetResourceContext() OVERRIDE;
virtual content::GeolocationPermissionContext*
GetGeolocationPermissionContext() OVERRIDE;
diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc
index cef0f5c..c6185fd 100644
--- a/chrome/browser/profiles/profile_impl.cc
+++ b/chrome/browser/profiles/profile_impl.cc
@@ -996,18 +996,14 @@ void ProfileImpl::CancelMidiSysExPermissionRequest(
void ProfileImpl::RequestProtectedMediaIdentifierPermission(
int render_process_id,
int render_view_id,
- int bridge_id,
- int group_id,
- const GURL& requesting_frame,
+ const GURL& origin,
const ProtectedMediaIdentifierPermissionCallback& callback) {
#if defined(OS_ANDROID)
ProtectedMediaIdentifierPermissionContext* context =
ProtectedMediaIdentifierPermissionContextFactory::GetForProfile(this);
context->RequestProtectedMediaIdentifierPermission(render_process_id,
render_view_id,
- bridge_id,
- group_id,
- requesting_frame,
+ origin,
callback);
#else
NOTIMPLEMENTED();
@@ -1016,11 +1012,14 @@ void ProfileImpl::RequestProtectedMediaIdentifierPermission(
}
void ProfileImpl::CancelProtectedMediaIdentifierPermissionRequests(
- int group_id) {
+ int render_process_id,
+ int render_view_id,
+ const GURL& origin) {
#if defined(OS_ANDROID)
ProtectedMediaIdentifierPermissionContext* context =
ProtectedMediaIdentifierPermissionContextFactory::GetForProfile(this);
- context->CancelProtectedMediaIdentifierPermissionRequests(group_id);
+ context->CancelProtectedMediaIdentifierPermissionRequests(
+ render_process_id, render_view_id, origin);
#else
NOTIMPLEMENTED();
#endif // defined(OS_ANDROID)
diff --git a/chrome/browser/profiles/profile_impl.h b/chrome/browser/profiles/profile_impl.h
index 5a79369..256f8d1 100644
--- a/chrome/browser/profiles/profile_impl.h
+++ b/chrome/browser/profiles/profile_impl.h
@@ -94,12 +94,12 @@ class ProfileImpl : public Profile {
virtual void RequestProtectedMediaIdentifierPermission(
int render_process_id,
int render_view_id,
- int bridge_id,
- int group_id,
- const GURL& requesting_frame,
+ const GURL& origin,
const ProtectedMediaIdentifierPermissionCallback& callback) OVERRIDE;
virtual void CancelProtectedMediaIdentifierPermissionRequests(
- int group_id) OVERRIDE;
+ int render_process_id,
+ int render_view_id,
+ const GURL& origin) OVERRIDE;
virtual content::ResourceContext* GetResourceContext() OVERRIDE;
virtual content::GeolocationPermissionContext*
GetGeolocationPermissionContext() OVERRIDE;
diff --git a/chrome/browser/ui/app_list/test/fake_profile.cc b/chrome/browser/ui/app_list/test/fake_profile.cc
index bfa83d3..ca471c1 100644
--- a/chrome/browser/ui/app_list/test/fake_profile.cc
+++ b/chrome/browser/ui/app_list/test/fake_profile.cc
@@ -75,14 +75,14 @@ void FakeProfile::CancelMidiSysExPermissionRequest(
void FakeProfile::RequestProtectedMediaIdentifierPermission(
int render_process_id,
int render_view_id,
- int bridge_id,
- int group_id,
- const GURL& requesting_frame,
+ const GURL& origin,
const ProtectedMediaIdentifierPermissionCallback& callback) {
}
void FakeProfile::CancelProtectedMediaIdentifierPermissionRequests(
- int group_id) {
+ int render_process_id,
+ int render_view_id,
+ const GURL& origin) {
}
content::ResourceContext* FakeProfile::GetResourceContext() {
diff --git a/chrome/browser/ui/app_list/test/fake_profile.h b/chrome/browser/ui/app_list/test/fake_profile.h
index 213646d..9486eab 100644
--- a/chrome/browser/ui/app_list/test/fake_profile.h
+++ b/chrome/browser/ui/app_list/test/fake_profile.h
@@ -60,12 +60,12 @@ class FakeProfile : public Profile {
virtual void RequestProtectedMediaIdentifierPermission(
int render_process_id,
int render_view_id,
- int bridge_id,
- int group_id,
- const GURL& requesting_frame,
+ const GURL& origin,
const ProtectedMediaIdentifierPermissionCallback& callback) OVERRIDE;
virtual void CancelProtectedMediaIdentifierPermissionRequests(
- int group_id) OVERRIDE;
+ int render_process_id,
+ int render_view_id,
+ const GURL& origin) OVERRIDE;
virtual content::ResourceContext* GetResourceContext() OVERRIDE;
virtual content::GeolocationPermissionContext*
GetGeolocationPermissionContext() OVERRIDE;
diff --git a/chrome/test/base/testing_profile.cc b/chrome/test/base/testing_profile.cc
index dff94cb..166fcc1 100644
--- a/chrome/test/base/testing_profile.cc
+++ b/chrome/test/base/testing_profile.cc
@@ -769,16 +769,16 @@ void TestingProfile::CancelMidiSysExPermissionRequest(
void TestingProfile::RequestProtectedMediaIdentifierPermission(
int render_process_id,
int render_view_id,
- int bridge_id,
- int group_id,
- const GURL& requesting_frame,
+ const GURL& origin,
const ProtectedMediaIdentifierPermissionCallback& callback) {
// Always reject requests for testing.
callback.Run(false);
}
void TestingProfile::CancelProtectedMediaIdentifierPermissionRequests(
- int group_id) {
+ int render_process_id,
+ int render_view_id,
+ const GURL& origin) {
}
net::URLRequestContextGetter* TestingProfile::GetRequestContextForExtensions() {
diff --git a/chrome/test/base/testing_profile.h b/chrome/test/base/testing_profile.h
index 4fbd0fe..936a9ce 100644
--- a/chrome/test/base/testing_profile.h
+++ b/chrome/test/base/testing_profile.h
@@ -290,12 +290,12 @@ class TestingProfile : public Profile {
virtual void RequestProtectedMediaIdentifierPermission(
int render_process_id,
int render_view_id,
- int bridge_id,
- int group_id,
- const GURL& requesting_frame,
+ const GURL& origin,
const ProtectedMediaIdentifierPermissionCallback& callback) OVERRIDE;
virtual void CancelProtectedMediaIdentifierPermissionRequests(
- int group_id) OVERRIDE;
+ int render_process_id,
+ int render_view_id,
+ const GURL& origin) OVERRIDE;
virtual net::URLRequestContextGetter* CreateRequestContextForStoragePartition(
const base::FilePath& partition_path,
bool in_memory,
diff --git a/content/browser/download/download_manager_impl_unittest.cc b/content/browser/download/download_manager_impl_unittest.cc
index f1d4e7d..091a7f8 100644
--- a/content/browser/download/download_manager_impl_unittest.cc
+++ b/content/browser/download/download_manager_impl_unittest.cc
@@ -418,16 +418,16 @@ class MockBrowserContext : public BrowserContext {
int render_view_id,
int bridge_id,
const GURL& requesting_frame));
- MOCK_METHOD6(RequestProtectedMediaIdentifierPermission,
+ MOCK_METHOD4(RequestProtectedMediaIdentifierPermission,
void(int render_process_id,
int render_view_id,
- int bridge_id,
- int group_id,
- const GURL& requesting_frame,
+ const GURL& origin,
const ProtectedMediaIdentifierPermissionCallback&
callback));
- MOCK_METHOD1(CancelProtectedMediaIdentifierPermissionRequests,
- void(int group_id));
+ MOCK_METHOD3(CancelProtectedMediaIdentifierPermissionRequests,
+ void(int render_process_id,
+ int render_view_id,
+ const GURL& origin));
MOCK_METHOD0(GetResourceContext, ResourceContext*());
MOCK_METHOD0(GetDownloadManagerDelegate, DownloadManagerDelegate*());
MOCK_METHOD0(GetGeolocationPermissionContext,
diff --git a/content/browser/media/android/browser_media_player_manager.cc b/content/browser/media/android/browser_media_player_manager.cc
index ceace36..ec8cc40 100644
--- a/content/browser/media/android/browser_media_player_manager.cc
+++ b/content/browser/media/android/browser_media_player_manager.cc
@@ -633,8 +633,6 @@ void BrowserMediaPlayerManager::OnCreateSession(
context->RequestProtectedMediaIdentifierPermission(
web_contents()->GetRenderProcessHost()->GetID(),
web_contents()->GetRenderViewHost()->GetRoutingID(),
- static_cast<int>(session_id),
- cdm_id,
iter->second,
base::Bind(&BrowserMediaPlayerManager::CreateSessionIfPermitted,
weak_ptr_factory_.GetWeakPtr(),
@@ -698,7 +696,14 @@ void BrowserMediaPlayerManager::OnDestroyCdm(int cdm_id) {
void BrowserMediaPlayerManager::CancelAllPendingSessionCreations(int cdm_id) {
BrowserContext* context =
web_contents()->GetRenderProcessHost()->GetBrowserContext();
- context->CancelProtectedMediaIdentifierPermissionRequests(cdm_id);
+ std::map<int, GURL>::const_iterator iter =
+ cdm_security_origin_map_.find(cdm_id);
+ if (iter == cdm_security_origin_map_.end())
+ return;
+ context->CancelProtectedMediaIdentifierPermissionRequests(
+ web_contents()->GetRenderProcessHost()->GetID(),
+ web_contents()->GetRenderViewHost()->GetRoutingID(),
+ iter->second);
}
void BrowserMediaPlayerManager::AddPlayer(MediaPlayerAndroid* player) {
diff --git a/content/public/browser/browser_context.h b/content/public/browser/browser_context.h
index f20b40f..27a5569 100644
--- a/content/public/browser/browser_context.h
+++ b/content/public/browser/browser_context.h
@@ -157,14 +157,14 @@ class CONTENT_EXPORT BrowserContext : public base::SupportsUserData {
virtual void RequestProtectedMediaIdentifierPermission(
int render_process_id,
int render_view_id,
- int bridge_id,
- int group_id,
- const GURL& requesting_frame,
+ const GURL& origin,
const ProtectedMediaIdentifierPermissionCallback& callback) = 0;
// Cancels pending protected media identifier permission requests.
virtual void CancelProtectedMediaIdentifierPermissionRequests(
- int group_id) = 0;
+ int render_process_id,
+ int render_view_id,
+ const GURL& origin) = 0;
// Returns the resource context.
virtual ResourceContext* GetResourceContext() = 0;
diff --git a/content/public/test/test_browser_context.cc b/content/public/test/test_browser_context.cc
index 9599fc7..7d184c8 100644
--- a/content/public/test/test_browser_context.cc
+++ b/content/public/test/test_browser_context.cc
@@ -119,16 +119,16 @@ void TestBrowserContext::CancelMidiSysExPermissionRequest(
void TestBrowserContext::RequestProtectedMediaIdentifierPermission(
int render_process_id,
int render_view_id,
- int bridge_id,
- int group_id,
- const GURL& requesting_frame,
+ const GURL& origin,
const ProtectedMediaIdentifierPermissionCallback& callback) {
// Always reject requests for testing.
callback.Run(false);
}
void TestBrowserContext::CancelProtectedMediaIdentifierPermissionRequests(
- int group_id) {
+ int render_process_id,
+ int render_view_id,
+ const GURL& origin) {
}
ResourceContext* TestBrowserContext::GetResourceContext() {
diff --git a/content/public/test/test_browser_context.h b/content/public/test/test_browser_context.h
index c18fd22..0179d42 100644
--- a/content/public/test/test_browser_context.h
+++ b/content/public/test/test_browser_context.h
@@ -55,12 +55,12 @@ class TestBrowserContext : public BrowserContext {
virtual void RequestProtectedMediaIdentifierPermission(
int render_process_id,
int render_view_id,
- int bridge_id,
- int group_id,
- const GURL& requesting_frame,
+ const GURL& origin,
const ProtectedMediaIdentifierPermissionCallback& callback) OVERRIDE;
virtual void CancelProtectedMediaIdentifierPermissionRequests(
- int group_id) OVERRIDE;
+ int render_process_id,
+ int render_view_id,
+ const GURL& origin) OVERRIDE;
virtual ResourceContext* GetResourceContext() OVERRIDE;
virtual GeolocationPermissionContext*
GetGeolocationPermissionContext() OVERRIDE;
diff --git a/content/shell/browser/shell_browser_context.cc b/content/shell/browser/shell_browser_context.cc
index 868a2f2..91806ba 100644
--- a/content/shell/browser/shell_browser_context.cc
+++ b/content/shell/browser/shell_browser_context.cc
@@ -206,15 +206,15 @@ void ShellBrowserContext::CancelMidiSysExPermissionRequest(
void ShellBrowserContext::RequestProtectedMediaIdentifierPermission(
int render_process_id,
int render_view_id,
- int bridge_id,
- int group_id,
- const GURL& requesting_frame,
+ const GURL& origin,
const ProtectedMediaIdentifierPermissionCallback& callback) {
callback.Run(true);
}
void ShellBrowserContext::CancelProtectedMediaIdentifierPermissionRequests(
- int group_id) {
+ int render_process_id,
+ int render_view_id,
+ const GURL& origin) {
}
net::URLRequestContextGetter*
diff --git a/content/shell/browser/shell_browser_context.h b/content/shell/browser/shell_browser_context.h
index e56205e..f5e153c 100644
--- a/content/shell/browser/shell_browser_context.h
+++ b/content/shell/browser/shell_browser_context.h
@@ -63,12 +63,12 @@ class ShellBrowserContext : public BrowserContext {
virtual void RequestProtectedMediaIdentifierPermission(
int render_process_id,
int render_view_id,
- int bridge_id,
- int group_id,
- const GURL& requesting_frame,
+ const GURL& origin,
const ProtectedMediaIdentifierPermissionCallback& callback) OVERRIDE;
virtual void CancelProtectedMediaIdentifierPermissionRequests(
- int group_id) OVERRIDE;
+ int render_process_id,
+ int render_view_id,
+ const GURL& origin) OVERRIDE;
virtual ResourceContext* GetResourceContext() OVERRIDE;
virtual GeolocationPermissionContext*
GetGeolocationPermissionContext() OVERRIDE;