diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-13 16:49:01 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-13 16:49:01 +0000 |
commit | 487974a82e46f4b716f4f893f3f47a9b0884611b (patch) | |
tree | 3cb49c41576cd8fea67ef4e1564bdf3830167f85 /chrome/browser/geolocation/geolocation_permission_context_extensions.h | |
parent | ac592955fdf45e9bb3a8b8b8b462091faf0d631b (diff) | |
download | chromium_src-487974a82e46f4b716f4f893f3f47a9b0884611b.zip chromium_src-487974a82e46f4b716f4f893f3f47a9b0884611b.tar.gz chromium_src-487974a82e46f4b716f4f893f3f47a9b0884611b.tar.bz2 |
Simplify geolocation permission request in the Content API.
This is the model I used for notifications and will use for other features as they move from RenderView to RenderFrame.
BUG=304341
R=avi@chromium.org, mkosiba@chromium.org
Review URL: https://codereview.chromium.org/330143002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277038 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/geolocation/geolocation_permission_context_extensions.h')
-rw-r--r-- | chrome/browser/geolocation/geolocation_permission_context_extensions.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/chrome/browser/geolocation/geolocation_permission_context_extensions.h b/chrome/browser/geolocation/geolocation_permission_context_extensions.h new file mode 100644 index 0000000..e073b14 --- /dev/null +++ b/chrome/browser/geolocation/geolocation_permission_context_extensions.h @@ -0,0 +1,47 @@ +// 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 CHROME_BROWSER_GEOLOCATION_GEOLOCATION_PERMISSION_CONTEXT_EXTENSIONS_H_ +#define CHROME_BROWSER_GEOLOCATION_GEOLOCATION_PERMISSION_CONTEXT_EXTENSIONS_H_ + +#include "base/callback_forward.h" +#include "base/macros.h" + +namespace content { +class WebContents; +} + +class GURL; +class PermissionRequestID; +class Profile; + +// Chrome extensions specific portions of GeolocationPermissionContext. +class GeolocationPermissionContextExtensions { + public: + explicit GeolocationPermissionContextExtensions(Profile* profile); + ~GeolocationPermissionContextExtensions(); + + // Returns true if the permission request was handled. In which case, + // |permission_set| will be set to true if the permission changed, and the + // permission has been set to |new_permission|. + bool RequestPermission(content::WebContents* web_contents, + const PermissionRequestID& request_id, + int bridge_id, + const GURL& requesting_frame, + bool user_gesture, + base::Callback<void(bool)> callback, + bool* permission_set, + bool* new_permission); + + // Returns true if the cancellation request was handled. + bool CancelPermissionRequest(content::WebContents* web_contents, + int bridge_id); + + private: + Profile* profile_; + + DISALLOW_COPY_AND_ASSIGN(GeolocationPermissionContextExtensions); +}; + +#endif // CHROME_BROWSER_GEOLOCATION_GEOLOCATION_PERMISSION_CONTEXT_EXTENSIONS_H_ |