| Index: content/child/permissions/permission_dispatcher.h
|
| diff --git a/content/child/permissions/permission_dispatcher.h b/content/child/permissions/permission_dispatcher.h
|
| index 274886a40d573caf7590e56da5bcbea4f451a82d..39ba080e15a66d0ae90d442aa369b4b1c741b305 100644
|
| --- a/content/child/permissions/permission_dispatcher.h
|
| +++ b/content/child/permissions/permission_dispatcher.h
|
| @@ -43,6 +43,10 @@ class PermissionDispatcher : public blink::WebPermissionClient,
|
| virtual void requestPermission(blink::WebPermissionType,
|
| const blink::WebURL& origin,
|
| blink::WebPermissionCallback* callback);
|
| + virtual void requestPermissions(
|
| + const blink::WebVector<blink::WebPermissionType>& types,
|
| + const blink::WebURL& origin,
|
| + blink::WebPermissionsCallback* callback);
|
| virtual void revokePermission(blink::WebPermissionType,
|
| const blink::WebURL& origin,
|
| blink::WebPermissionCallback* callback);
|
| @@ -60,6 +64,11 @@ class PermissionDispatcher : public blink::WebPermissionClient,
|
| const std::string& origin,
|
| blink::WebPermissionCallback* callback,
|
| int worker_thread_id);
|
| + void RequestPermissionsForWorker(
|
| + const blink::WebVector<blink::WebPermissionType>& types,
|
| + const std::string& origin,
|
| + blink::WebPermissionsCallback* callback,
|
| + int worker_thread_id);
|
| void RevokePermissionForWorker(blink::WebPermissionType type,
|
| const std::string& origin,
|
| blink::WebPermissionCallback* callback,
|
| @@ -77,14 +86,19 @@ class PermissionDispatcher : public blink::WebPermissionClient,
|
| const base::Callback<void(blink::WebPermissionStatus)>& callback);
|
|
|
| private:
|
| - using PendingCallbackMap = base::ScopedPtrHashMap<uintptr_t,
|
| + using PermissionCallbackMap = base::ScopedPtrHashMap<uintptr_t,
|
| scoped_ptr<blink::WebPermissionCallback>>;
|
| + using PermissionsCallbackMap = base::ScopedPtrHashMap<uintptr_t,
|
| + scoped_ptr<blink::WebPermissionsCallback>>;
|
|
|
| // Runs the given |callback| with |status| as a parameter. It has to be run
|
| // on a worker thread.
|
| - static void RunCallbackOnWorkerThread(
|
| + static void RunPermissionCallbackOnWorkerThread(
|
| scoped_ptr<blink::WebPermissionCallback> callback,
|
| blink::WebPermissionStatus status);
|
| + static void RunPermissionsCallbackOnWorkerThread(
|
| + scoped_ptr<blink::WebPermissionsCallback> callback,
|
| + scoped_ptr<blink::WebVector<blink::WebPermissionStatus>> statuses);
|
|
|
| // Helper method that returns an initialized PermissionServicePtr.
|
| PermissionServicePtr& GetPermissionServicePtr();
|
| @@ -97,6 +111,11 @@ class PermissionDispatcher : public blink::WebPermissionClient,
|
| const std::string& origin,
|
| blink::WebPermissionCallback* callback,
|
| int worker_thread_id);
|
| + void RequestPermissionsInternal(
|
| + const blink::WebVector<blink::WebPermissionType>& types,
|
| + const std::string& origin,
|
| + blink::WebPermissionsCallback* callback,
|
| + int worker_thread_id);
|
| void RevokePermissionInternal(blink::WebPermissionType type,
|
| const std::string& origin,
|
| blink::WebPermissionCallback* callback,
|
| @@ -106,6 +125,10 @@ class PermissionDispatcher : public blink::WebPermissionClient,
|
| void OnPermissionResponse(int worker_thread_id,
|
| uintptr_t callback_key,
|
| PermissionStatus status);
|
| + void OnRequestPermissionsResponse(
|
| + int worker_thread_id,
|
| + uintptr_t callback_key,
|
| + const mojo::Array<PermissionStatus>& status);
|
| void OnPermissionChanged(blink::WebPermissionType type,
|
| const std::string& origin,
|
| blink::WebPermissionObserver* observer,
|
| @@ -120,7 +143,11 @@ class PermissionDispatcher : public blink::WebPermissionClient,
|
| blink::WebPermissionObserver* observer,
|
| PermissionStatus current_status);
|
|
|
| - PendingCallbackMap pending_callbacks_;
|
| + // Pending callbacks for query(), revoke() and request() single permission.
|
| + PermissionCallbackMap permission_callbacks_;
|
| +
|
| + // Pending callbacks for request() multiple permissions.
|
| + PermissionsCallbackMap permissions_callbacks_;
|
|
|
| ServiceRegistry* service_registry_;
|
| PermissionServicePtr permission_service_;
|
|
|