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

Side by Side Diff: content/browser/devtools/protocol/emulation_handler.cc

Issue 1723663005: Revert of [DevTools] Move screen orientation override to RenderWidgetScreenMetricsEmulator. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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
« no previous file with comments | « content/browser/devtools/protocol/emulation_handler.h ('k') | content/common/view_messages.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/devtools/protocol/emulation_handler.h" 5 #include "content/browser/devtools/protocol/emulation_handler.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/strings/string_number_conversions.h" 9 #include "base/strings/string_number_conversions.h"
10 #include "build/build_config.h" 10 #include "build/build_config.h"
11 #include "content/browser/frame_host/render_frame_host_impl.h" 11 #include "content/browser/frame_host/render_frame_host_impl.h"
12 #include "content/browser/geolocation/geolocation_service_context.h" 12 #include "content/browser/geolocation/geolocation_service_context.h"
13 #include "content/browser/renderer_host/render_widget_host_impl.h" 13 #include "content/browser/renderer_host/render_widget_host_impl.h"
14 #include "content/browser/web_contents/web_contents_impl.h" 14 #include "content/browser/web_contents/web_contents_impl.h"
15 #include "content/common/view_messages.h" 15 #include "content/common/view_messages.h"
16 #include "content/public/common/url_constants.h" 16 #include "content/public/common/url_constants.h"
17 17
18 namespace content { 18 namespace content {
19 namespace devtools { 19 namespace devtools {
20 namespace emulation { 20 namespace emulation {
21 21
22 using Response = DevToolsProtocolClient::Response; 22 using Response = DevToolsProtocolClient::Response;
23 23
24 namespace { 24 namespace {
25 25
26 blink::WebScreenOrientationType WebScreenOrientationTypeFromString(
27 const std::string& type) {
28 if (type == screen_orientation::kTypePortraitPrimary)
29 return blink::WebScreenOrientationPortraitPrimary;
30 if (type == screen_orientation::kTypePortraitSecondary)
31 return blink::WebScreenOrientationPortraitSecondary;
32 if (type == screen_orientation::kTypeLandscapePrimary)
33 return blink::WebScreenOrientationLandscapePrimary;
34 if (type == screen_orientation::kTypeLandscapeSecondary)
35 return blink::WebScreenOrientationLandscapeSecondary;
36 return blink::WebScreenOrientationUndefined;
37 }
38
39 ui::GestureProviderConfigType TouchEmulationConfigurationToType( 26 ui::GestureProviderConfigType TouchEmulationConfigurationToType(
40 const std::string& protocol_value) { 27 const std::string& protocol_value) {
41 ui::GestureProviderConfigType result = 28 ui::GestureProviderConfigType result =
42 ui::GestureProviderConfigType::CURRENT_PLATFORM; 29 ui::GestureProviderConfigType::CURRENT_PLATFORM;
43 if (protocol_value == 30 if (protocol_value ==
44 set_touch_emulation_enabled::kConfigurationMobile) { 31 set_touch_emulation_enabled::kConfigurationMobile) {
45 result = ui::GestureProviderConfigType::GENERIC_MOBILE; 32 result = ui::GestureProviderConfigType::GENERIC_MOBILE;
46 } 33 }
47 if (protocol_value == 34 if (protocol_value ==
48 set_touch_emulation_enabled::kConfigurationDesktop) { 35 set_touch_emulation_enabled::kConfigurationDesktop) {
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 int height, 125 int height,
139 double device_scale_factor, 126 double device_scale_factor,
140 bool mobile, 127 bool mobile,
141 bool fit_window, 128 bool fit_window,
142 const double* optional_scale, 129 const double* optional_scale,
143 const double* optional_offset_x, 130 const double* optional_offset_x,
144 const double* optional_offset_y, 131 const double* optional_offset_y,
145 const int* screen_width, 132 const int* screen_width,
146 const int* screen_height, 133 const int* screen_height,
147 const int* position_x, 134 const int* position_x,
148 const int* position_y, 135 const int* position_y) {
149 const scoped_ptr<base::DictionaryValue>& screen_orientation) {
150 const static int max_size = 10000000; 136 const static int max_size = 10000000;
151 const static double max_scale = 10; 137 const static double max_scale = 10;
152 const static int max_orientation_angle = 360;
153 138
154 if (!host_) 139 if (!host_)
155 return Response::InternalError("Could not connect to view"); 140 return Response::InternalError("Could not connect to view");
156 141
157 if (screen_width && screen_height && 142 if (screen_width && screen_height &&
158 (*screen_width < 0 || *screen_height < 0 || 143 (*screen_width < 0 || *screen_height < 0 ||
159 *screen_width > max_size || *screen_height > max_size)) { 144 *screen_width > max_size || *screen_height > max_size)) {
160 return Response::InvalidParams( 145 return Response::InvalidParams(
161 "Screen width and height values must be positive, not greater than " + 146 "Screen width and height values must be positive, not greater than " +
162 base::IntToString(max_size)); 147 base::IntToString(max_size));
(...skipping 13 matching lines...) Expand all
176 161
177 if (device_scale_factor < 0) 162 if (device_scale_factor < 0)
178 return Response::InvalidParams("deviceScaleFactor must be non-negative"); 163 return Response::InvalidParams("deviceScaleFactor must be non-negative");
179 164
180 if (optional_scale && (*optional_scale <= 0 || *optional_scale > max_scale)) { 165 if (optional_scale && (*optional_scale <= 0 || *optional_scale > max_scale)) {
181 return Response::InvalidParams( 166 return Response::InvalidParams(
182 "scale must be positive, not greater than " + 167 "scale must be positive, not greater than " +
183 base::DoubleToString(max_scale)); 168 base::DoubleToString(max_scale));
184 } 169 }
185 170
186 blink::WebScreenOrientationType orientationType =
187 blink::WebScreenOrientationUndefined;
188 int orientationAngle = 0;
189 if (screen_orientation) {
190 std::string orientationTypeString;
191 if (!screen_orientation->GetString("type", &orientationTypeString)) {
192 return Response::InvalidParams(
193 "Screen orientation type must be a string");
194 }
195 orientationType = WebScreenOrientationTypeFromString(orientationTypeString);
196 if (orientationType == blink::WebScreenOrientationUndefined)
197 return Response::InvalidParams("Invalid screen orientation type value");
198
199 if (!screen_orientation->GetInteger("angle", &orientationAngle)) {
200 return Response::InvalidParams(
201 "Screen orientation angle must be a number");
202 }
203 if (orientationAngle < 0 || orientationAngle >= max_orientation_angle) {
204 return Response::InvalidParams(
205 "Screen orientation angle must be non-negative, less than " +
206 base::IntToString(max_orientation_angle));
207 }
208 }
209
210 blink::WebDeviceEmulationParams params; 171 blink::WebDeviceEmulationParams params;
211 params.screenPosition = mobile ? blink::WebDeviceEmulationParams::Mobile : 172 params.screenPosition = mobile ? blink::WebDeviceEmulationParams::Mobile :
212 blink::WebDeviceEmulationParams::Desktop; 173 blink::WebDeviceEmulationParams::Desktop;
213 if (screen_width && screen_height) 174 if (screen_width && screen_height)
214 params.screenSize = blink::WebSize(*screen_width, *screen_height); 175 params.screenSize = blink::WebSize(*screen_width, *screen_height);
215 if (position_x && position_y) 176 if (position_x && position_y)
216 params.viewPosition = blink::WebPoint(*position_x, *position_y); 177 params.viewPosition = blink::WebPoint(*position_x, *position_y);
217 params.deviceScaleFactor = device_scale_factor; 178 params.deviceScaleFactor = device_scale_factor;
218 params.viewSize = blink::WebSize(width, height); 179 params.viewSize = blink::WebSize(width, height);
219 params.fitToView = fit_window; 180 params.fitToView = fit_window;
220 params.scale = optional_scale ? *optional_scale : 1; 181 params.scale = optional_scale ? *optional_scale : 1;
221 params.offset = blink::WebFloatPoint( 182 params.offset = blink::WebFloatPoint(
222 optional_offset_x ? *optional_offset_x : 0.f, 183 optional_offset_x ? *optional_offset_x : 0.f,
223 optional_offset_y ? *optional_offset_y : 0.f); 184 optional_offset_y ? *optional_offset_y : 0.f);
224 params.screenOrientationType = orientationType;
225 params.screenOrientationAngle = orientationAngle;
226 185
227 if (device_emulation_enabled_ && params == device_emulation_params_) 186 if (device_emulation_enabled_ && params == device_emulation_params_)
228 return Response::OK(); 187 return Response::OK();
229 188
230 device_emulation_enabled_ = true; 189 device_emulation_enabled_ = true;
231 device_emulation_params_ = params; 190 device_emulation_params_ = params;
232 UpdateDeviceEmulationState(); 191 UpdateDeviceEmulationState();
233 return Response::OK(); 192 return Response::OK();
234 } 193 }
235 194
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 widget_host->GetRoutingID(), device_emulation_params_)); 230 widget_host->GetRoutingID(), device_emulation_params_));
272 } else { 231 } else {
273 widget_host->Send(new ViewMsg_DisableDeviceEmulation( 232 widget_host->Send(new ViewMsg_DisableDeviceEmulation(
274 widget_host->GetRoutingID())); 233 widget_host->GetRoutingID()));
275 } 234 }
276 } 235 }
277 236
278 } // namespace emulation 237 } // namespace emulation
279 } // namespace devtools 238 } // namespace devtools
280 } // namespace content 239 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/devtools/protocol/emulation_handler.h ('k') | content/common/view_messages.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698