Index: chrome/browser/geolocation/geolocation_dispatcher_host.h |
diff --git a/chrome/browser/geolocation/geolocation_dispatcher_host.h b/chrome/browser/geolocation/geolocation_dispatcher_host.h |
index 31da3a6ae0aacb248ed9dfabf2d9c46d527a1d14..234dde1c5be73d267bfe48cfef9e399dd9a62e31 100644 |
--- a/chrome/browser/geolocation/geolocation_dispatcher_host.h |
+++ b/chrome/browser/geolocation/geolocation_dispatcher_host.h |
@@ -5,79 +5,29 @@ |
#ifndef CHROME_BROWSER_GEOLOCATION_GEOLOCATION_DISPATCHER_HOST_H_ |
#define CHROME_BROWSER_GEOLOCATION_GEOLOCATION_DISPATCHER_HOST_H_ |
-#include <map> |
-#include <set> |
-#include <utility> |
- |
-#include "base/basictypes.h" |
#include "base/ref_counted.h" |
-#include "chrome/browser/geolocation/location_arbitrator.h" |
class GeolocationPermissionContext; |
-class GURL; |
-class ResourceMessageFilter; |
-class URLRequestContextGetter; |
-struct Geoposition; |
namespace IPC { class Message; } |
// GeolocationDispatcherHost is a delegate for Geolocation messages used by |
// ResourceMessageFilter. |
// It's the complement of GeolocationDispatcher (owned by RenderView). |
class GeolocationDispatcherHost |
- : public base::RefCountedThreadSafe<GeolocationDispatcherHost>, |
- public GeolocationArbitrator::Delegate { |
+ : public base::RefCountedThreadSafe<GeolocationDispatcherHost> { |
public: |
- GeolocationDispatcherHost( |
+ static GeolocationDispatcherHost* New( |
int resource_message_filter_process_id, |
GeolocationPermissionContext* geolocation_permission_context); |
// Called to possibly handle the incoming IPC message. Returns true if |
// handled. Called in the browser process. |
- bool OnMessageReceived(const IPC::Message& msg, bool* msg_was_ok); |
- |
- // GeolocationArbitrator::Delegate |
- virtual void OnLocationUpdate(const Geoposition& position); |
+ virtual bool OnMessageReceived(const IPC::Message& msg, bool* msg_was_ok) = 0; |
- private: |
+ protected: |
friend class base::RefCountedThreadSafe<GeolocationDispatcherHost>; |
- virtual ~GeolocationDispatcherHost(); |
- |
- void OnRegisterDispatcher(int render_view_id); |
- void OnUnregisterDispatcher(int render_view_id); |
- void OnRequestPermission( |
- int render_view_id, int bridge_id, const GURL& requesting_frame); |
- void OnCancelPermissionRequest( |
- int render_view_id, int bridge_id, const GURL& requesting_frame); |
- void OnStartUpdating( |
- int render_view_id, int bridge_id, const GURL& requesting_frame, |
- bool enable_high_accuracy); |
- void OnStopUpdating(int render_view_id, int bridge_id); |
- void OnSuspend(int render_view_id, int bridge_id); |
- void OnResume(int render_view_id, int bridge_id); |
- |
- // Registers the bridge created in the renderer side. They'll delegate to the |
- // UI thread if not already in there. |
- void RegisterDispatcher(int process_id, int render_view_id); |
- void UnregisterDispatcher(int process_id, int render_view_id); |
- // Updates the |location_arbitrator_| with the currently required update |
- // options, based on |bridge_update_options_|. |
- void RefreshUpdateOptions(); |
- |
- int resource_message_filter_process_id_; |
- scoped_refptr<GeolocationPermissionContext> geolocation_permission_context_; |
- |
- // Iterated when sending location updates to renderer processes. The fan out |
- // to individual bridge IDs happens renderer side, in order to minimize |
- // context switches. |
- // Only used on the IO thread. |
- std::set<int> geolocation_renderer_ids_; |
- // Maps <renderer_id, bridge_id> to the location arbitrator update options |
- // that correspond to this particular bridge. |
- typedef std::map<std::pair<int, int>, GeolocationArbitrator::UpdateOptions> |
- BridgeUpdateOptionsMap; |
- BridgeUpdateOptionsMap bridge_update_options_; |
- // Only set whilst we are registered with the arbitrator. |
- scoped_refptr<GeolocationArbitrator> location_arbitrator_; |
+ GeolocationDispatcherHost() {} |
+ virtual ~GeolocationDispatcherHost() {} |
DISALLOW_COPY_AND_ASSIGN(GeolocationDispatcherHost); |
}; |