Dispatch geolocation IPCs on the UI thread. Aside from simplifying the code to avoid a lot of thread hops, this sets things up for converting the code to work on RenderFrames instead of RenderViews.
In the process I also switched the code to use CallbackList which simplifies the registration.
BUG=304341
[email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]
Review URL: https://codereview.chromium.org/273523007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269795 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
index 0ca0f1a..7db4ec6 100644
--- a/content/browser/web_contents/web_contents_impl.h
+++ b/content/browser/web_contents/web_contents_impl.h
@@ -48,6 +48,7 @@
class BrowserPluginGuestManager;
class DateTimeChooserAndroid;
class DownloadItem;
+class GeolocationDispatcherHost;
class InterstitialPageImpl;
class JavaScriptDialogManager;
class PowerSaveBlocker;
@@ -160,6 +161,10 @@
WebContentsView* GetView() const;
+ GeolocationDispatcherHost* geolocation_dispatcher_host() {
+ return geolocation_dispatcher_host_.get();
+ }
+
// WebContents ------------------------------------------------------
virtual WebContentsDelegate* GetDelegate() OVERRIDE;
virtual void SetDelegate(WebContentsDelegate* delegate) OVERRIDE;
@@ -1092,6 +1097,8 @@
// Whether the last JavaScript dialog shown was suppressed. Used for testing.
bool last_dialog_suppressed_;
+ scoped_ptr<GeolocationDispatcherHost> geolocation_dispatcher_host_;
+
DISALLOW_COPY_AND_ASSIGN(WebContentsImpl);
};