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

Side by Side Diff: Source/core/inspector/InspectorPageAgent.cpp

Issue 243233002: [DevTools] Disable touch emulation on devices with touch input. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Even more inside core Created 6 years, 8 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
OLDNEW
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
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
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
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
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
OLDNEW
« no previous file with comments | « Source/core/inspector/InspectorPageAgent.h ('k') | Source/devtools/front_end/OverridesSupport.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698