| Index: android_webview/native/permission/permission_request_handler.h
|
| diff --git a/android_webview/native/permission/permission_request_handler.h b/android_webview/native/permission/permission_request_handler.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d4d91b64bfc6738f2aa4c095b343831fbcd03946
|
| --- /dev/null
|
| +++ b/android_webview/native/permission/permission_request_handler.h
|
| @@ -0,0 +1,60 @@
|
| +// Copyright 2014 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef ANDROID_WEBVIEW_NATIVE_PERMISSION_PERMISSION_REQUEST_HANDLER_H
|
| +#define ANDROID_WEBVIEW_NATIVE_PERMISSION_PERMISSION_REQUEST_HANDLER_H
|
| +
|
| +#include <vector>
|
| +
|
| +#include "base/memory/scoped_ptr.h"
|
| +#include "base/memory/weak_ptr.h"
|
| +#include "url/gurl.h"
|
| +
|
| +namespace android_webview {
|
| +
|
| +class AwPermissionRequest;
|
| +class AwPermissionRequestDelegate;
|
| +class PermissionRequestHandlerClient;
|
| +
|
| +// This class is used to send the permission requests, or cancel ongoing
|
| +// requests.
|
| +// It is owned by AwContents and has 1x1 mapping to AwContents. All methods
|
| +// are running on UI thread.
|
| +class PermissionRequestHandler {
|
| + public:
|
| + PermissionRequestHandler(PermissionRequestHandlerClient* aw_contents);
|
| + virtual ~PermissionRequestHandler();
|
| +
|
| + // Send the given |request| to PermissionRequestHandlerClient.
|
| + void SendRequest(scoped_ptr<AwPermissionRequestDelegate> request);
|
| +
|
| + // Cancel the ongoing request initiated by |origin| for accessing |resources|.
|
| + void CancelRequest(const GURL& origin, int64 resources);
|
| +
|
| + private:
|
| + friend class TestPermissionRequestHandler;
|
| +
|
| + typedef std::vector<base::WeakPtr<AwPermissionRequest> >::iterator
|
| + RequestIterator;
|
| +
|
| + // Return the request initiated by |origin| for accessing |resources|.
|
| + RequestIterator FindRequest(const GURL& origin, int64 resources);
|
| +
|
| + // Cancel the given request.
|
| + void CancelRequest(RequestIterator i);
|
| +
|
| + // Remove the invalid requests from requests_.
|
| + void PruneRequests();
|
| +
|
| + PermissionRequestHandlerClient* client_;
|
| +
|
| + // A list of ongoing requests.
|
| + std::vector<base::WeakPtr<AwPermissionRequest> > requests_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(PermissionRequestHandler);
|
| +};
|
| +
|
| +} // namespace android_webivew
|
| +
|
| +#endif // ANDROID_WEBVIEW_NATIVE_PERMISSION_PERMISSION_REQUEST_HANDLER_H
|
|
|