| 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);
|
| }
|
|
|
|
|