Index: chrome/browser/media/protected_media_identifier_permission_context.h |
diff --git a/chrome/browser/media/protected_media_identifier_permission_context.h b/chrome/browser/media/protected_media_identifier_permission_context.h |
index e456014e9c74e9ce9ef76e5d619057f834c30309..5fd2ca00d117abb25160be9d7a104ab6688473e5 100644 |
--- a/chrome/browser/media/protected_media_identifier_permission_context.h |
+++ b/chrome/browser/media/protected_media_identifier_permission_context.h |
@@ -5,12 +5,7 @@ |
#ifndef CHROME_BROWSER_MEDIA_PROTECTED_MEDIA_IDENTIFIER_PERMISSION_CONTEXT_H_ |
#define CHROME_BROWSER_MEDIA_PROTECTED_MEDIA_IDENTIFIER_PERMISSION_CONTEXT_H_ |
-#include <map> |
-#include <string> |
- |
-#include "base/callback_forward.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "chrome/browser/content_settings/permission_queue_controller.h" |
+#include "chrome/browser/content_settings/permission_context_base.h" |
class PermissionRequestID; |
class Profile; |
@@ -23,19 +18,25 @@ class WebContents; |
// Manages protected media identifier permissions flow, and delegates UI |
// handling via PermissionQueueController. |
class ProtectedMediaIdentifierPermissionContext |
- : public base::RefCountedThreadSafe< |
- ProtectedMediaIdentifierPermissionContext> { |
+ : public PermissionContextBase, |
+ public base::RefCountedThreadSafe< |
+ ProtectedMediaIdentifierPermissionContext> { |
public: |
explicit ProtectedMediaIdentifierPermissionContext(Profile* profile); |
+ ~ProtectedMediaIdentifierPermissionContext() override; |
- void RequestProtectedMediaIdentifierPermission( |
- content::WebContents* web_contents, |
- const GURL& origin, |
- base::Callback<void(bool)> result_callback); |
+ // In addition to the base class flow checks that it is only code from |
+ // valid iframes. It also adds special logic when called through an extension. |
+ void RequestPermission(content::WebContents* web_contents, |
+ const PermissionRequestID& id, |
+ const GURL& requesting_frame_origin, |
+ bool user_gesture, |
+ const BrowserPermissionCallback& callback) override; |
- void CancelProtectedMediaIdentifierPermissionRequests(int render_process_id, |
- int render_view_id, |
- const GURL& origin); |
+ // Withdraw an existing permission request, no op if the permission request |
+ // was already cancelled by some other means. |
+ void CancelPermissionRequest(content::WebContents* web_contents, |
+ const PermissionRequestID& id) override; |
// Called on the UI thread when the profile is about to be destroyed. |
void ShutdownOnUIThread(); |
mlamouri (slow - plz ping)
2014/12/02 22:43:30
Do you still need that? PermissionContextBase requ
timvolodine
2014/12/03 16:44:25
Done.
|
@@ -43,56 +44,13 @@ class ProtectedMediaIdentifierPermissionContext |
private: |
friend class base::RefCountedThreadSafe< |
ProtectedMediaIdentifierPermissionContext>; |
- ~ProtectedMediaIdentifierPermissionContext(); |
- |
- Profile* profile() const { return profile_; } |
- |
- // Return an instance of the infobar queue controller, creating it |
- // if necessary. |
- PermissionQueueController* QueueController(); |
- |
- // Notifies whether or not the corresponding bridge is allowed to use |
- // protected media identifier via |
- // SetProtectedMediaIdentifierPermissionResponse(). Called on the UI thread. |
- void NotifyPermissionSet(const PermissionRequestID& id, |
- const GURL& origin, |
- const base::Callback<void(bool)>& callback, |
- bool allowed); |
- |
- // Decide whether the protected media identifier permission should be granted. |
- // Calls PermissionDecided if permission can be decided non-interactively, |
- // or NotifyPermissionSet if permission decided by presenting an |
- // infobar to the user. Called on the UI thread. |
- void DecidePermission(const PermissionRequestID& id, |
- const GURL& origin, |
- const GURL& embedder, |
- content::RenderViewHost* rvh, |
- const base::Callback<void(bool)>& callback); |
- |
- // Called when permission is granted without interactively asking |
- // the user. Can be overridden to introduce additional UI flow. |
- // Should ultimately ensure that NotifyPermissionSet is called. |
- // Called on the UI thread. |
- void PermissionDecided(const PermissionRequestID& id, |
- const GURL& origin, |
- const GURL& embedder, |
- const base::Callback<void(bool)>& callback, |
- bool allowed); |
- |
- // Create an PermissionQueueController. overridden in derived classes to |
- // provide additional UI flow. Called on the UI thread. |
- PermissionQueueController* CreateQueueController(); |
- // 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); |
+ void UpdateTabContext(const PermissionRequestID& id, |
+ const GURL& requesting_frame, |
+ bool allowed) override; |
- // These must only be accessed from the UI thread. |
- Profile* const profile_; |
+ // This must only be accessed from the UI thread. |
bool shutting_down_; |
mlamouri (slow - plz ping)
2014/12/02 22:43:30
I guess that could go away too.
timvolodine
2014/12/03 16:44:25
Done.
|
- scoped_ptr<PermissionQueueController> permission_queue_controller_; |
DISALLOW_COPY_AND_ASSIGN(ProtectedMediaIdentifierPermissionContext); |
}; |