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

Unified Diff: Source/core/inspector/InspectorPageAgent.cpp

Issue 45363004: DevTools: explicitly control support for viewport meta tag so that desktop emulation was possible (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Review comments addressed. Created 7 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/inspector/InspectorPageAgent.h ('k') | Source/devtools/front_end/OverridesSupport.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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)
« 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