| 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..0a3ec846dc0b2369ecb8da47a71252dcf92e8460 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,76 +18,24 @@ class WebContents;
|
| // Manages protected media identifier permissions flow, and delegates UI
|
| // handling via PermissionQueueController.
|
| class ProtectedMediaIdentifierPermissionContext
|
| - : public base::RefCountedThreadSafe<
|
| - ProtectedMediaIdentifierPermissionContext> {
|
| + : public PermissionContextBase {
|
| public:
|
| explicit ProtectedMediaIdentifierPermissionContext(Profile* profile);
|
|
|
| - void RequestProtectedMediaIdentifierPermission(
|
| - content::WebContents* web_contents,
|
| - const GURL& origin,
|
| - base::Callback<void(bool)> result_callback);
|
| -
|
| - void CancelProtectedMediaIdentifierPermissionRequests(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();
|
| + // 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;
|
|
|
| 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);
|
| + ~ProtectedMediaIdentifierPermissionContext() override;
|
|
|
| - // These must only be accessed from the UI thread.
|
| - Profile* const profile_;
|
| - bool shutting_down_;
|
| - scoped_ptr<PermissionQueueController> permission_queue_controller_;
|
| + void UpdateTabContext(const PermissionRequestID& id,
|
| + const GURL& requesting_frame,
|
| + bool allowed) override;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ProtectedMediaIdentifierPermissionContext);
|
| };
|
|
|