Index: Source/core/inspector/InspectorPageAgent.cpp |
diff --git a/Source/core/inspector/InspectorPageAgent.cpp b/Source/core/inspector/InspectorPageAgent.cpp |
index 466def4eaa09861f4c88e7b615c1f5dbe6103edf..91b3a84e3452ca479a887e7f5b8f0860c957828e 100644 |
--- a/Source/core/inspector/InspectorPageAgent.cpp |
+++ b/Source/core/inspector/InspectorPageAgent.cpp |
@@ -87,6 +87,7 @@ static const char pageAgentScriptsToEvaluateOnLoad[] = "pageAgentScriptsToEvalua |
static const char pageAgentScreenWidthOverride[] = "pageAgentScreenWidthOverride"; |
static const char pageAgentScreenHeightOverride[] = "pageAgentScreenHeightOverride"; |
static const char pageAgentDeviceScaleFactorOverride[] = "pageAgentDeviceScaleFactorOverride"; |
+static const char pageAgentEmulateViewport[] = "pageAgentEmulateViewport"; |
static const char pageAgentFitWindow[] = "pageAgentFitWindow"; |
static const char textAutosizingFontScaleFactorOverride[] = "textAutosizingFontScaleFactorOverride"; |
static const char pageAgentShowFPSCounter[] = "pageAgentShowFPSCounter"; |
@@ -365,8 +366,9 @@ void InspectorPageAgent::restore() |
int currentWidth = static_cast<int>(m_state->getLong(PageAgentState::pageAgentScreenWidthOverride)); |
int currentHeight = static_cast<int>(m_state->getLong(PageAgentState::pageAgentScreenHeightOverride)); |
double currentDeviceScaleFactor = m_state->getDouble(PageAgentState::pageAgentDeviceScaleFactorOverride); |
+ bool currentEmulateViewport = m_state->getBoolean(PageAgentState::pageAgentEmulateViewport); |
bool currentFitWindow = m_state->getBoolean(PageAgentState::pageAgentFitWindow); |
- updateViewMetrics(currentWidth, currentHeight, currentDeviceScaleFactor, currentFitWindow); |
+ updateViewMetrics(currentWidth, currentHeight, currentDeviceScaleFactor, currentEmulateViewport, currentFitWindow); |
updateTouchEventEmulationInPage(m_state->getBoolean(PageAgentState::touchEventEmulationEnabled)); |
} |
} |
@@ -403,14 +405,15 @@ void InspectorPageAgent::disable(ErrorString*) |
if (m_didForceCompositingMode) |
setForceCompositingMode(0, false); |
- if (!deviceMetricsChanged(0, 0, 1, false, 1, false)) |
+ if (!deviceMetricsChanged(0, 0, 1, false, false, 1, false)) |
return; |
// When disabling the agent, reset the override values if necessary. |
- updateViewMetrics(0, 0, 1, false); |
+ updateViewMetrics(0, 0, 1, false, false); |
m_state->setLong(PageAgentState::pageAgentScreenWidthOverride, 0); |
m_state->setLong(PageAgentState::pageAgentScreenHeightOverride, 0); |
m_state->setDouble(PageAgentState::pageAgentDeviceScaleFactorOverride, 1); |
+ m_state->setBoolean(PageAgentState::pageAgentEmulateViewport, false); |
m_state->setBoolean(PageAgentState::pageAgentFitWindow, false); |
m_state->setDouble(PageAgentState::textAutosizingFontScaleFactorOverride, 1); |
m_state->setBoolean(PageAgentState::pageAgentTextAutosizingOverride, false); |
@@ -633,7 +636,7 @@ void InspectorPageAgent::setDocumentContent(ErrorString* errorString, const Stri |
DOMPatchSupport::patchDocument(*document, html); |
} |
-void InspectorPageAgent::setDeviceMetricsOverride(ErrorString* errorString, int width, int height, double deviceScaleFactor, bool fitWindow, const bool* optionalTextAutosizing, const double* optionalFontScaleFactor) |
+void InspectorPageAgent::setDeviceMetricsOverride(ErrorString* errorString, int width, int height, double deviceScaleFactor, bool emulateViewport, bool fitWindow, const bool* optionalTextAutosizing, const double* optionalFontScaleFactor) |
{ |
const static long maxDimension = 10000000; |
@@ -660,7 +663,7 @@ void InspectorPageAgent::setDeviceMetricsOverride(ErrorString* errorString, int |
return; |
} |
- if (!deviceMetricsChanged(width, height, deviceScaleFactor, fitWindow, fontScaleFactor, textAutosizing)) |
+ if (!deviceMetricsChanged(width, height, deviceScaleFactor, emulateViewport, fitWindow, fontScaleFactor, textAutosizing)) |
return; |
Settings& settings = m_page->settings(); |
@@ -673,24 +676,26 @@ void InspectorPageAgent::setDeviceMetricsOverride(ErrorString* errorString, int |
m_state->setLong(PageAgentState::pageAgentScreenWidthOverride, width); |
m_state->setLong(PageAgentState::pageAgentScreenHeightOverride, height); |
m_state->setDouble(PageAgentState::pageAgentDeviceScaleFactorOverride, deviceScaleFactor); |
+ m_state->setBoolean(PageAgentState::pageAgentEmulateViewport, emulateViewport); |
m_state->setBoolean(PageAgentState::pageAgentFitWindow, fitWindow); |
m_state->setDouble(PageAgentState::textAutosizingFontScaleFactorOverride, fontScaleFactor); |
m_state->setBoolean(PageAgentState::pageAgentTextAutosizingOverride, textAutosizing); |
- updateViewMetrics(width, height, deviceScaleFactor, fitWindow); |
+ updateViewMetrics(width, height, deviceScaleFactor, emulateViewport, fitWindow); |
} |
-bool InspectorPageAgent::deviceMetricsChanged(int width, int height, double deviceScaleFactor, bool fitWindow, double fontScaleFactor, bool textAutosizing) |
+bool InspectorPageAgent::deviceMetricsChanged(int width, int height, double deviceScaleFactor, bool emulateViewport, bool fitWindow, double fontScaleFactor, bool textAutosizing) |
{ |
// These two always fit an int. |
int currentWidth = static_cast<int>(m_state->getLong(PageAgentState::pageAgentScreenWidthOverride)); |
int currentHeight = static_cast<int>(m_state->getLong(PageAgentState::pageAgentScreenHeightOverride)); |
double currentDeviceScaleFactor = m_state->getDouble(PageAgentState::pageAgentDeviceScaleFactorOverride, 1); |
+ bool currentEmulateViewport = m_state->getBoolean(PageAgentState::pageAgentEmulateViewport); |
bool currentFitWindow = m_state->getBoolean(PageAgentState::pageAgentFitWindow); |
double currentFontScaleFactor = m_state->getDouble(PageAgentState::textAutosizingFontScaleFactorOverride, 1); |
bool currentTextAutosizing = m_state->getBoolean(PageAgentState::pageAgentTextAutosizingOverride); |
- return width != currentWidth || height != currentHeight || deviceScaleFactor != currentDeviceScaleFactor || fitWindow != currentFitWindow || fontScaleFactor != currentFontScaleFactor || textAutosizing != currentTextAutosizing; |
+ return width != currentWidth || height != currentHeight || deviceScaleFactor != currentDeviceScaleFactor || emulateViewport != currentEmulateViewport || fitWindow != currentFitWindow || fontScaleFactor != currentFontScaleFactor || textAutosizing != currentTextAutosizing; |
} |
void InspectorPageAgent::setShowPaintRects(ErrorString*, bool show) |
@@ -711,16 +716,14 @@ void InspectorPageAgent::setShowDebugBorders(ErrorString*, bool show) |
void InspectorPageAgent::setShowFPSCounter(ErrorString*, bool show) |
{ |
// FIXME: allow metrics override, fps counter and continuous painting at the same time: crbug.com/299837. |
- bool viewMetricsOverride = m_state->getLong(PageAgentState::pageAgentScreenWidthOverride); |
m_state->setBoolean(PageAgentState::pageAgentShowFPSCounter, show); |
- m_client->setShowFPSCounter(show && !viewMetricsOverride); |
+ m_client->setShowFPSCounter(show && !m_deviceMetricsOverridden); |
} |
void InspectorPageAgent::setContinuousPaintingEnabled(ErrorString*, bool enabled) |
{ |
- bool viewMetricsOverride = m_state->getLong(PageAgentState::pageAgentScreenWidthOverride); |
m_state->setBoolean(PageAgentState::pageAgentContinuousPaintingEnabled, enabled); |
- m_client->setContinuousPaintingEnabled(enabled && !viewMetricsOverride); |
+ m_client->setContinuousPaintingEnabled(enabled && !m_deviceMetricsOverridden); |
} |
void InspectorPageAgent::setShowScrollBottleneckRects(ErrorString*, bool show) |
@@ -917,7 +920,7 @@ String InspectorPageAgent::resourceSourceMapURL(const String& url) |
bool InspectorPageAgent::deviceMetricsOverrideEnabled() |
{ |
- return m_enabled && m_state->getLong(PageAgentState::pageAgentScreenWidthOverride); |
+ return m_enabled && m_deviceMetricsOverridden; |
} |
// static |
@@ -1070,9 +1073,9 @@ PassRefPtr<TypeBuilder::Page::FrameResourceTree> InspectorPageAgent::buildObject |
return result; |
} |
-void InspectorPageAgent::updateViewMetrics(int width, int height, double deviceScaleFactor, bool fitWindow) |
+void InspectorPageAgent::updateViewMetrics(int width, int height, double deviceScaleFactor, bool emulateViewport, bool fitWindow) |
{ |
- m_client->overrideDeviceMetrics(width, height, static_cast<float>(deviceScaleFactor), fitWindow); |
+ m_client->overrideDeviceMetrics(width, height, static_cast<float>(deviceScaleFactor), emulateViewport, fitWindow); |
Document* document = mainFrame()->document(); |
if (document) |