Index: Source/core/inspector/InspectorPageAgent.cpp |
diff --git a/Source/core/inspector/InspectorPageAgent.cpp b/Source/core/inspector/InspectorPageAgent.cpp |
index e01e26537b1821f181ab687d64dc7f8311da7fb1..dca6a0a50e187454abaf751379c4779161e9a673 100644 |
--- a/Source/core/inspector/InspectorPageAgent.cpp |
+++ b/Source/core/inspector/InspectorPageAgent.cpp |
@@ -342,6 +342,7 @@ InspectorPageAgent::InspectorPageAgent(Page* page, InjectedScriptManager* inject |
, m_ignoreScriptsEnabledNotification(false) |
, m_deviceMetricsOverridden(false) |
, m_emulateViewportEnabled(false) |
+ , m_embedderDeviceSupportsTouch(false) |
, m_embedderTextAutosizingEnabled(m_page->settings().textAutosizingEnabled()) |
, m_embedderFontScaleFactor(m_page->settings().deviceScaleAdjustment()) |
{ |
@@ -1161,13 +1162,28 @@ void InspectorPageAgent::updateViewMetrics(int width, int height, double deviceS |
void InspectorPageAgent::updateTouchEventEmulationInPage(bool enabled) |
{ |
m_state->setBoolean(PageAgentState::touchEventEmulationEnabled, enabled); |
+ if (enabled) |
+ m_embedderDeviceSupportsTouch = m_page->settings().deviceSupportsTouch(); |
m_client->setTouchEventEmulationEnabled(enabled); |
} |
-void InspectorPageAgent::setTouchEmulationEnabled(ErrorString*, bool enabled) |
+void InspectorPageAgent::hasTouchInputs(ErrorString*, bool* result) |
+{ |
+ if (m_state->getBoolean(PageAgentState::touchEventEmulationEnabled)) |
+ *result = m_embedderDeviceSupportsTouch; |
+ else |
+ *result = m_page->settings().deviceSupportsTouch(); |
+} |
+ |
+void InspectorPageAgent::setTouchEmulationEnabled(ErrorString* error, bool enabled) |
{ |
if (m_state->getBoolean(PageAgentState::touchEventEmulationEnabled) == enabled) |
return; |
+ if (enabled && m_page->settings().deviceSupportsTouch()) { |
+ if (error) |
+ *error = "Device already supports touch input"; |
+ return; |
+ } |
updateTouchEventEmulationInPage(enabled); |
} |