Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1416)

Side by Side Diff: chrome/renderer/geolocation_dispatcher_old.cc

Issue 5938002: Remove legacy non-client-based geolocation code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove non-client-based geolocation code. Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #if !defined(ENABLE_CLIENT_BASED_GEOLOCATION)
6 #include "chrome/renderer/geolocation_dispatcher_old.h"
7 #include "base/command_line.h"
8 #include "chrome/common/chrome_switches.h"
9 #include "chrome/renderer/render_view.h"
10 #include "third_party/WebKit/WebKit/chromium/public/WebCString.h"
11 #include "third_party/WebKit/WebKit/chromium/public/WebFrame.h"
12 #include "third_party/WebKit/WebKit/chromium/public/WebGeolocationServiceBridge. h"
13
14 using WebKit::WebFrame;
15
16 GeolocationDispatcherOld::GeolocationDispatcherOld(RenderView* render_view)
17 : render_view_(render_view) {
18 render_view_->Send(new ViewHostMsg_Geolocation_RegisterDispatcher(
19 render_view_->routing_id()));
20 }
21
22 GeolocationDispatcherOld::~GeolocationDispatcherOld() {
23 for (IDMap<WebKit::WebGeolocationServiceBridge>::iterator it(&bridges_map_);
24 !it.IsAtEnd(); it.Advance()) {
25 it.GetCurrentValue()->onWebGeolocationServiceDestroyed();
26 }
27 render_view_->Send(new ViewHostMsg_Geolocation_UnregisterDispatcher(
28 render_view_->routing_id()));
29 }
30
31 bool GeolocationDispatcherOld::OnMessageReceived(const IPC::Message& message) {
32 bool handled = true;
33 IPC_BEGIN_MESSAGE_MAP(GeolocationDispatcherOld, message)
34 IPC_MESSAGE_HANDLER(ViewMsg_Geolocation_PermissionSet,
35 OnGeolocationPermissionSet)
36 IPC_MESSAGE_HANDLER(ViewMsg_Geolocation_PositionUpdated,
37 OnGeolocationPositionUpdated)
38 IPC_MESSAGE_UNHANDLED(handled = false)
39 IPC_END_MESSAGE_MAP()
40 return handled;
41 }
42
43 void GeolocationDispatcherOld::requestPermissionForFrame(
44 int bridge_id, const WebKit::WebURL& url) {
45 render_view_->Send(new ViewHostMsg_Geolocation_RequestPermission(
46 render_view_->routing_id(), bridge_id, GURL(url)));
47 }
48
49 void GeolocationDispatcherOld::cancelPermissionRequestForFrame(
50 int bridge_id, const WebKit::WebURL& url) {
51 render_view_->Send(new ViewHostMsg_Geolocation_CancelPermissionRequest(
52 render_view_->routing_id(), bridge_id, GURL(url)));
53 }
54
55 void GeolocationDispatcherOld::startUpdating(
56 int bridge_id, const WebKit::WebURL& url, bool enableHighAccuracy) {
57 render_view_->Send(new ViewHostMsg_Geolocation_StartUpdating(
58 render_view_->routing_id(), bridge_id, GURL(url),
59 enableHighAccuracy));
60 }
61
62 void GeolocationDispatcherOld::stopUpdating(int bridge_id) {
63 render_view_->Send(new ViewHostMsg_Geolocation_StopUpdating(
64 render_view_->routing_id(), bridge_id));
65 }
66
67 void GeolocationDispatcherOld::suspend(int bridge_id) {
68 render_view_->Send(new ViewHostMsg_Geolocation_Suspend(
69 render_view_->routing_id(), bridge_id));
70 }
71
72 void GeolocationDispatcherOld::resume(int bridge_id) {
73 render_view_->Send(new ViewHostMsg_Geolocation_Resume(
74 render_view_->routing_id(), bridge_id));
75 }
76
77 int GeolocationDispatcherOld::attachBridge(
78 WebKit::WebGeolocationServiceBridge* bridge) {
79 return bridges_map_.Add(bridge);
80 }
81
82 void GeolocationDispatcherOld::detachBridge(int bridge_id) {
83 bridges_map_.Remove(bridge_id);
84 }
85
86 void GeolocationDispatcherOld::OnGeolocationPermissionSet(int bridge_id,
87 bool allowed) {
88 WebKit::WebGeolocationServiceBridge* bridge = bridges_map_.Lookup(bridge_id);
89 if (bridge) {
90 bridge->setIsAllowed(allowed);
91 }
92 }
93
94 void GeolocationDispatcherOld::OnGeolocationPositionUpdated(
95 const Geoposition& geoposition) {
96 DCHECK(geoposition.IsInitialized());
97 for (IDMap<WebKit::WebGeolocationServiceBridge>::iterator it(&bridges_map_);
98 !it.IsAtEnd(); it.Advance()) {
99 if (geoposition.IsValidFix()) {
100 it.GetCurrentValue()->setLastPosition(
101 geoposition.latitude, geoposition.longitude,
102 geoposition.is_valid_altitude(), geoposition.altitude,
103 geoposition.accuracy,
104 geoposition.is_valid_altitude_accuracy(),
105 geoposition.altitude_accuracy,
106 geoposition.is_valid_heading(), geoposition.heading,
107 geoposition.is_valid_speed(), geoposition.speed,
108 static_cast<int64>(geoposition.timestamp.ToDoubleT() * 1000));
109 } else {
110 it.GetCurrentValue()->setLastError(
111 geoposition.error_code,
112 WebKit::WebString::fromUTF8(geoposition.error_message));
113 }
114 }
115 }
116 #endif // !ENABLE_CLIENT_BASED_GEOLOCATION
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698