Index: content/browser/geolocation/geolocation_dispatcher_host.h |
diff --git a/content/browser/geolocation/geolocation_dispatcher_host.h b/content/browser/geolocation/geolocation_dispatcher_host.h |
index 151ed46c74d54296cca1ca16a0f1565dcf353719..e8bda4026d687001276f562ea5b254ef0a6e64d7 100644 |
--- a/content/browser/geolocation/geolocation_dispatcher_host.h |
+++ b/content/browser/geolocation/geolocation_dispatcher_host.h |
@@ -6,7 +6,10 @@ |
#define CONTENT_BROWSER_GEOLOCATION_GEOLOCATION_DISPATCHER_HOST_H_ |
#include <map> |
+#include <vector> |
+#include "base/callback_forward.h" |
+#include "base/memory/weak_ptr.h" |
#include "content/browser/geolocation/geolocation_provider_impl.h" |
#include "content/public/browser/web_contents_observer.h" |
@@ -14,8 +17,6 @@ class GURL; |
namespace content { |
-class GeolocationPermissionContext; |
- |
// GeolocationDispatcherHost is an observer for Geolocation messages. |
// It's the complement of GeolocationDispatcher (owned by RenderView). |
class GeolocationDispatcherHost : public WebContentsObserver { |
@@ -56,15 +57,32 @@ class GeolocationDispatcherHost : public WebContentsObserver { |
void OnLocationUpdate(const Geoposition& position); |
- scoped_refptr<GeolocationPermissionContext> geolocation_permission_context_; |
+ void SendGeolocationPermissionResponse(int render_process_id, |
+ int render_frame_id, |
+ int bridge_id, |
+ bool allowed); |
// A map from the RenderFrameHosts that have requested geolocation updates to |
// the type of accuracy they requested (true = high accuracy). |
std::map<RenderFrameHost*, bool> updating_frames_; |
bool paused_; |
+ struct PendingPermission { |
+ PendingPermission(int render_frame_id, |
+ int render_process_id, |
+ int bridge_id); |
+ ~PendingPermission(); |
+ int render_frame_id; |
+ int render_process_id; |
+ int bridge_id; |
+ base::Closure cancel; |
+ }; |
+ std::vector<PendingPermission> pending_permissions_; |
+ |
scoped_ptr<GeolocationProvider::Subscription> geolocation_subscription_; |
+ base::WeakPtrFactory<GeolocationDispatcherHost> weak_factory_; |
+ |
DISALLOW_COPY_AND_ASSIGN(GeolocationDispatcherHost); |
}; |