OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
335 , m_page(page) | 335 , m_page(page) |
336 , m_injectedScriptManager(injectedScriptManager) | 336 , m_injectedScriptManager(injectedScriptManager) |
337 , m_client(client) | 337 , m_client(client) |
338 , m_frontend(0) | 338 , m_frontend(0) |
339 , m_overlay(overlay) | 339 , m_overlay(overlay) |
340 , m_lastScriptIdentifier(0) | 340 , m_lastScriptIdentifier(0) |
341 , m_enabled(false) | 341 , m_enabled(false) |
342 , m_ignoreScriptsEnabledNotification(false) | 342 , m_ignoreScriptsEnabledNotification(false) |
343 , m_deviceMetricsOverridden(false) | 343 , m_deviceMetricsOverridden(false) |
344 , m_emulateViewportEnabled(false) | 344 , m_emulateViewportEnabled(false) |
| 345 , m_touchEmulationEnabled(false) |
| 346 , m_originalTouchEnabled(false) |
| 347 , m_originalDeviceSupportsMouse(false) |
| 348 , m_originalDeviceSupportsTouch(false) |
345 , m_embedderTextAutosizingEnabled(m_page->settings().textAutosizingEnabled()
) | 349 , m_embedderTextAutosizingEnabled(m_page->settings().textAutosizingEnabled()
) |
346 , m_embedderFontScaleFactor(m_page->settings().deviceScaleAdjustment()) | 350 , m_embedderFontScaleFactor(m_page->settings().deviceScaleAdjustment()) |
347 { | 351 { |
348 } | 352 } |
349 | 353 |
350 void InspectorPageAgent::setTextAutosizingEnabled(bool enabled) | 354 void InspectorPageAgent::setTextAutosizingEnabled(bool enabled) |
351 { | 355 { |
352 m_embedderTextAutosizingEnabled = enabled; | 356 m_embedderTextAutosizingEnabled = enabled; |
353 if (!m_deviceMetricsOverridden) | 357 if (!m_deviceMetricsOverridden) |
354 m_page->settings().setTextAutosizingEnabled(enabled); | 358 m_page->settings().setTextAutosizingEnabled(enabled); |
355 } | 359 } |
356 | 360 |
357 void InspectorPageAgent::setDeviceScaleAdjustment(float deviceScaleAdjustment) | 361 void InspectorPageAgent::setDeviceScaleAdjustment(float deviceScaleAdjustment) |
358 { | 362 { |
359 m_embedderFontScaleFactor = deviceScaleAdjustment; | 363 m_embedderFontScaleFactor = deviceScaleAdjustment; |
360 if (!m_deviceMetricsOverridden) | 364 if (!m_deviceMetricsOverridden) |
361 m_page->settings().setDeviceScaleAdjustment(deviceScaleAdjustment); | 365 m_page->settings().setDeviceScaleAdjustment(deviceScaleAdjustment); |
362 } | 366 } |
363 | 367 |
364 void InspectorPageAgent::setFrontend(InspectorFrontend* frontend) | 368 void InspectorPageAgent::setFrontend(InspectorFrontend* frontend) |
365 { | 369 { |
366 m_frontend = frontend->page(); | 370 m_frontend = frontend->page(); |
367 } | 371 } |
368 | 372 |
369 void InspectorPageAgent::clearFrontend() | 373 void InspectorPageAgent::clearFrontend() |
370 { | 374 { |
371 ErrorString error; | 375 ErrorString error; |
372 disable(&error); | 376 disable(&error); |
373 updateTouchEventEmulationInPage(false); | |
374 m_frontend = 0; | 377 m_frontend = 0; |
375 } | 378 } |
376 | 379 |
377 void InspectorPageAgent::restore() | 380 void InspectorPageAgent::restore() |
378 { | 381 { |
379 if (m_state->getBoolean(PageAgentState::pageAgentEnabled)) { | 382 if (m_state->getBoolean(PageAgentState::pageAgentEnabled)) { |
380 ErrorString error; | 383 ErrorString error; |
381 enable(&error); | 384 enable(&error); |
382 bool scriptExecutionDisabled = m_state->getBoolean(PageAgentState::pageA
gentScriptExecutionDisabled); | 385 bool scriptExecutionDisabled = m_state->getBoolean(PageAgentState::pageA
gentScriptExecutionDisabled); |
383 setScriptExecutionDisabled(0, scriptExecutionDisabled); | 386 setScriptExecutionDisabled(0, scriptExecutionDisabled); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
429 m_deviceMetricsOverridden = false; | 432 m_deviceMetricsOverridden = false; |
430 | 433 |
431 setShowPaintRects(0, false); | 434 setShowPaintRects(0, false); |
432 setShowDebugBorders(0, false); | 435 setShowDebugBorders(0, false); |
433 setShowFPSCounter(0, false); | 436 setShowFPSCounter(0, false); |
434 setEmulatedMedia(0, String()); | 437 setEmulatedMedia(0, String()); |
435 setContinuousPaintingEnabled(0, false); | 438 setContinuousPaintingEnabled(0, false); |
436 setShowScrollBottleneckRects(0, false); | 439 setShowScrollBottleneckRects(0, false); |
437 setShowViewportSizeOnResize(0, false, 0); | 440 setShowViewportSizeOnResize(0, false, 0); |
438 | 441 |
| 442 if (m_state->getBoolean(PageAgentState::touchEventEmulationEnabled)) { |
| 443 updateTouchEventEmulationInPage(false); |
| 444 m_state->setBoolean(PageAgentState::touchEventEmulationEnabled, false); |
| 445 } |
| 446 |
439 if (!deviceMetricsChanged(0, 0, 0, false, false, 1, false)) | 447 if (!deviceMetricsChanged(0, 0, 0, false, false, 1, false)) |
440 return; | 448 return; |
441 | 449 |
442 // When disabling the agent, reset the override values if necessary. | 450 // When disabling the agent, reset the override values if necessary. |
443 updateViewMetrics(0, 0, 0, false, false, m_embedderFontScaleFactor, m_embedd
erTextAutosizingEnabled); | 451 updateViewMetrics(0, 0, 0, false, false, m_embedderFontScaleFactor, m_embedd
erTextAutosizingEnabled); |
444 m_state->setLong(PageAgentState::pageAgentScreenWidthOverride, 0); | 452 m_state->setLong(PageAgentState::pageAgentScreenWidthOverride, 0); |
445 m_state->setLong(PageAgentState::pageAgentScreenHeightOverride, 0); | 453 m_state->setLong(PageAgentState::pageAgentScreenHeightOverride, 0); |
446 m_state->setDouble(PageAgentState::pageAgentDeviceScaleFactorOverride, 0); | 454 m_state->setDouble(PageAgentState::pageAgentDeviceScaleFactorOverride, 0); |
447 m_state->setBoolean(PageAgentState::pageAgentEmulateViewport, false); | 455 m_state->setBoolean(PageAgentState::pageAgentEmulateViewport, false); |
448 m_state->setBoolean(PageAgentState::pageAgentFitWindow, false); | 456 m_state->setBoolean(PageAgentState::pageAgentFitWindow, false); |
(...skipping 704 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1153 m_page->settings().setDeviceScaleAdjustment(fontScaleFactor); | 1161 m_page->settings().setDeviceScaleAdjustment(fontScaleFactor); |
1154 } | 1162 } |
1155 | 1163 |
1156 // FIXME: allow metrics override, fps counter and continuous painting at the
same time: crbug.com/299837. | 1164 // FIXME: allow metrics override, fps counter and continuous painting at the
same time: crbug.com/299837. |
1157 m_client->setShowFPSCounter(m_state->getBoolean(PageAgentState::pageAgentSho
wFPSCounter) && !m_deviceMetricsOverridden); | 1165 m_client->setShowFPSCounter(m_state->getBoolean(PageAgentState::pageAgentSho
wFPSCounter) && !m_deviceMetricsOverridden); |
1158 m_client->setContinuousPaintingEnabled(m_state->getBoolean(PageAgentState::p
ageAgentContinuousPaintingEnabled) && !m_deviceMetricsOverridden); | 1166 m_client->setContinuousPaintingEnabled(m_state->getBoolean(PageAgentState::p
ageAgentContinuousPaintingEnabled) && !m_deviceMetricsOverridden); |
1159 } | 1167 } |
1160 | 1168 |
1161 void InspectorPageAgent::updateTouchEventEmulationInPage(bool enabled) | 1169 void InspectorPageAgent::updateTouchEventEmulationInPage(bool enabled) |
1162 { | 1170 { |
1163 m_state->setBoolean(PageAgentState::touchEventEmulationEnabled, enabled); | 1171 if (!m_touchEmulationEnabled) { |
| 1172 m_originalTouchEnabled = RuntimeEnabledFeatures::touchEnabled(); |
| 1173 m_originalDeviceSupportsMouse = m_page->settings().deviceSupportsMouse()
; |
| 1174 m_originalDeviceSupportsTouch = m_page->settings().deviceSupportsTouch()
; |
| 1175 } |
| 1176 RuntimeEnabledFeatures::setTouchEnabled(enabled ? true : m_originalTouchEnab
led); |
| 1177 m_page->settings().setDeviceSupportsMouse(enabled ? false : m_originalDevice
SupportsMouse); |
| 1178 m_page->settings().setDeviceSupportsTouch(enabled ? true : m_originalDeviceS
upportsTouch); |
| 1179 m_touchEmulationEnabled = enabled; |
1164 m_client->setTouchEventEmulationEnabled(enabled); | 1180 m_client->setTouchEventEmulationEnabled(enabled); |
| 1181 m_page->mainFrame()->view()->layout(); |
1165 } | 1182 } |
1166 | 1183 |
1167 void InspectorPageAgent::setTouchEmulationEnabled(ErrorString*, bool enabled) | 1184 void InspectorPageAgent::hasTouchInputs(ErrorString*, bool* result) |
| 1185 { |
| 1186 *result = m_touchEmulationEnabled ? m_originalDeviceSupportsTouch : m_page->
settings().deviceSupportsTouch(); |
| 1187 } |
| 1188 |
| 1189 void InspectorPageAgent::setTouchEmulationEnabled(ErrorString* error, bool enabl
ed) |
1168 { | 1190 { |
1169 if (m_state->getBoolean(PageAgentState::touchEventEmulationEnabled) == enabl
ed) | 1191 if (m_state->getBoolean(PageAgentState::touchEventEmulationEnabled) == enabl
ed) |
1170 return; | 1192 return; |
| 1193 |
| 1194 bool hasTouch = false; |
| 1195 hasTouchInputs(error, &hasTouch); |
| 1196 if (enabled && hasTouch) { |
| 1197 if (error) |
| 1198 *error = "Device already supports touch input"; |
| 1199 return; |
| 1200 } |
| 1201 |
| 1202 m_state->setBoolean(PageAgentState::touchEventEmulationEnabled, enabled); |
1171 updateTouchEventEmulationInPage(enabled); | 1203 updateTouchEventEmulationInPage(enabled); |
1172 } | 1204 } |
1173 | 1205 |
1174 void InspectorPageAgent::setEmulatedMedia(ErrorString*, const String& media) | 1206 void InspectorPageAgent::setEmulatedMedia(ErrorString*, const String& media) |
1175 { | 1207 { |
1176 String currentMedia = m_state->getString(PageAgentState::pageAgentEmulatedMe
dia); | 1208 String currentMedia = m_state->getString(PageAgentState::pageAgentEmulatedMe
dia); |
1177 if (media == currentMedia) | 1209 if (media == currentMedia) |
1178 return; | 1210 return; |
1179 | 1211 |
1180 m_state->setString(PageAgentState::pageAgentEmulatedMedia, media); | 1212 m_state->setString(PageAgentState::pageAgentEmulatedMedia, media); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1226 } | 1258 } |
1227 | 1259 |
1228 void InspectorPageAgent::setShowViewportSizeOnResize(ErrorString*, bool show, co
nst bool* showGrid) | 1260 void InspectorPageAgent::setShowViewportSizeOnResize(ErrorString*, bool show, co
nst bool* showGrid) |
1229 { | 1261 { |
1230 m_state->setBoolean(PageAgentState::showSizeOnResize, show); | 1262 m_state->setBoolean(PageAgentState::showSizeOnResize, show); |
1231 m_state->setBoolean(PageAgentState::showGridOnResize, showGrid && *showGrid)
; | 1263 m_state->setBoolean(PageAgentState::showGridOnResize, showGrid && *showGrid)
; |
1232 } | 1264 } |
1233 | 1265 |
1234 } // namespace WebCore | 1266 } // namespace WebCore |
1235 | 1267 |
OLD | NEW |