OLD | NEW |
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 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 static const char pageAgentScriptsToEvaluateOnLoad[] = "pageAgentScriptsToEvalua
teOnLoad"; | 89 static const char pageAgentScriptsToEvaluateOnLoad[] = "pageAgentScriptsToEvalua
teOnLoad"; |
90 static const char deviceMetricsOverrideEnabled[] = "deviceMetricsOverrideEnabled
"; | 90 static const char deviceMetricsOverrideEnabled[] = "deviceMetricsOverrideEnabled
"; |
91 static const char pageAgentScreenWidthOverride[] = "pageAgentScreenWidthOverride
"; | 91 static const char pageAgentScreenWidthOverride[] = "pageAgentScreenWidthOverride
"; |
92 static const char pageAgentScreenHeightOverride[] = "pageAgentScreenHeightOverri
de"; | 92 static const char pageAgentScreenHeightOverride[] = "pageAgentScreenHeightOverri
de"; |
93 static const char pageAgentDeviceScaleFactorOverride[] = "pageAgentDeviceScaleFa
ctorOverride"; | 93 static const char pageAgentDeviceScaleFactorOverride[] = "pageAgentDeviceScaleFa
ctorOverride"; |
94 static const char pageAgentEmulateViewport[] = "pageAgentEmulateViewport"; | 94 static const char pageAgentEmulateViewport[] = "pageAgentEmulateViewport"; |
95 static const char pageAgentFitWindow[] = "pageAgentFitWindow"; | 95 static const char pageAgentFitWindow[] = "pageAgentFitWindow"; |
96 static const char deviceScale[] = "deviceScale"; | 96 static const char deviceScale[] = "deviceScale"; |
97 static const char deviceOffsetX[] = "deviceOffsetX"; | 97 static const char deviceOffsetX[] = "deviceOffsetX"; |
98 static const char deviceOffsetY[] = "deviceOffsetY"; | 98 static const char deviceOffsetY[] = "deviceOffsetY"; |
99 static const char fontScaleFactor[] = "fontScaleFactor"; | |
100 static const char pageAgentShowFPSCounter[] = "pageAgentShowFPSCounter"; | 99 static const char pageAgentShowFPSCounter[] = "pageAgentShowFPSCounter"; |
101 static const char pageAgentTextAutosizingOverride[] = "pageAgentTextAutosizingOv
erride"; | |
102 static const char pageAgentContinuousPaintingEnabled[] = "pageAgentContinuousPai
ntingEnabled"; | 100 static const char pageAgentContinuousPaintingEnabled[] = "pageAgentContinuousPai
ntingEnabled"; |
103 static const char pageAgentShowPaintRects[] = "pageAgentShowPaintRects"; | 101 static const char pageAgentShowPaintRects[] = "pageAgentShowPaintRects"; |
104 static const char pageAgentShowDebugBorders[] = "pageAgentShowDebugBorders"; | 102 static const char pageAgentShowDebugBorders[] = "pageAgentShowDebugBorders"; |
105 static const char pageAgentShowScrollBottleneckRects[] = "pageAgentShowScrollBot
tleneckRects"; | 103 static const char pageAgentShowScrollBottleneckRects[] = "pageAgentShowScrollBot
tleneckRects"; |
106 static const char touchEventEmulationEnabled[] = "touchEventEmulationEnabled"; | 104 static const char touchEventEmulationEnabled[] = "touchEventEmulationEnabled"; |
107 static const char pageAgentEmulatedMedia[] = "pageAgentEmulatedMedia"; | 105 static const char pageAgentEmulatedMedia[] = "pageAgentEmulatedMedia"; |
108 static const char showSizeOnResize[] = "showSizeOnResize"; | 106 static const char showSizeOnResize[] = "showSizeOnResize"; |
109 static const char showGridOnResize[] = "showGridOnResize"; | 107 static const char showGridOnResize[] = "showGridOnResize"; |
110 } | 108 } |
111 | 109 |
112 namespace { | 110 namespace { |
113 | 111 |
114 KURL urlWithoutFragment(const KURL& url) | 112 KURL urlWithoutFragment(const KURL& url) |
115 { | 113 { |
116 KURL result = url; | 114 KURL result = url; |
117 result.removeFragmentIdentifier(); | 115 result.removeFragmentIdentifier(); |
118 return result; | 116 return result; |
119 } | 117 } |
120 | 118 |
| 119 static float calculateFontScaleFactor(int width, int height, float deviceScaleFa
ctor) |
| 120 { |
| 121 // Chromium on Android uses a device scale adjustment for fonts used in text
autosizing for |
| 122 // improved legibility. This function computes this adjusted value for text
autosizing. |
| 123 // For a description of the Android device scale adjustment algorithm, see: |
| 124 // chrome/browser/chrome_content_browser_client.cc, GetDeviceScaleAdjustment
(...) |
| 125 if (!width || !height || !deviceScaleFactor) |
| 126 return 1; |
| 127 |
| 128 static const float kMinFSM = 1.05f; |
| 129 static const int kWidthForMinFSM = 320; |
| 130 static const float kMaxFSM = 1.3f; |
| 131 static const int kWidthForMaxFSM = 800; |
| 132 |
| 133 float minWidth = std::min(width, height) / deviceScaleFactor; |
| 134 if (minWidth <= kWidthForMinFSM) |
| 135 return kMinFSM; |
| 136 if (minWidth >= kWidthForMaxFSM) |
| 137 return kMaxFSM; |
| 138 |
| 139 // The font scale multiplier varies linearly between kMinFSM and kMaxFSM. |
| 140 float ratio = static_cast<float>(minWidth - kWidthForMinFSM) / (kWidthForMax
FSM - kWidthForMinFSM); |
| 141 return ratio * (kMaxFSM - kMinFSM) + kMinFSM; |
| 142 } |
| 143 |
121 } | 144 } |
122 | 145 |
123 class InspectorPageAgent::GetResourceContentLoadListener FINAL : public VoidCall
back { | 146 class InspectorPageAgent::GetResourceContentLoadListener FINAL : public VoidCall
back { |
124 public: | 147 public: |
125 GetResourceContentLoadListener(InspectorPageAgent*, const String& frameId, c
onst String& url, PassRefPtr<GetResourceContentCallback>); | 148 GetResourceContentLoadListener(InspectorPageAgent*, const String& frameId, c
onst String& url, PassRefPtr<GetResourceContentCallback>); |
126 virtual void handleEvent() OVERRIDE; | 149 virtual void handleEvent() OVERRIDE; |
127 private: | 150 private: |
128 InspectorPageAgent* m_pageAgent; | 151 InspectorPageAgent* m_pageAgent; |
129 String m_frameId; | 152 String m_frameId; |
130 String m_url; | 153 String m_url; |
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
384 , m_originalDeviceSupportsMouse(false) | 407 , m_originalDeviceSupportsMouse(false) |
385 , m_originalDeviceSupportsTouch(false) | 408 , m_originalDeviceSupportsTouch(false) |
386 , m_embedderTextAutosizingEnabled(m_page->settings().textAutosizingEnabled()
) | 409 , m_embedderTextAutosizingEnabled(m_page->settings().textAutosizingEnabled()
) |
387 , m_embedderFontScaleFactor(m_page->settings().deviceScaleAdjustment()) | 410 , m_embedderFontScaleFactor(m_page->settings().deviceScaleAdjustment()) |
388 { | 411 { |
389 } | 412 } |
390 | 413 |
391 void InspectorPageAgent::setTextAutosizingEnabled(bool enabled) | 414 void InspectorPageAgent::setTextAutosizingEnabled(bool enabled) |
392 { | 415 { |
393 m_embedderTextAutosizingEnabled = enabled; | 416 m_embedderTextAutosizingEnabled = enabled; |
394 if (!m_deviceMetricsOverridden) | 417 bool emulateViewportEnabled = m_enabled && m_deviceMetricsOverridden && m_em
ulateViewportEnabled; |
| 418 if (!emulateViewportEnabled) |
395 m_page->settings().setTextAutosizingEnabled(enabled); | 419 m_page->settings().setTextAutosizingEnabled(enabled); |
396 } | 420 } |
397 | 421 |
398 void InspectorPageAgent::setDeviceScaleAdjustment(float deviceScaleAdjustment) | 422 void InspectorPageAgent::setDeviceScaleAdjustment(float deviceScaleAdjustment) |
399 { | 423 { |
400 m_embedderFontScaleFactor = deviceScaleAdjustment; | 424 m_embedderFontScaleFactor = deviceScaleAdjustment; |
401 if (!m_deviceMetricsOverridden) | 425 bool emulateViewportEnabled = m_enabled && m_deviceMetricsOverridden && m_em
ulateViewportEnabled; |
| 426 if (!emulateViewportEnabled) |
402 m_page->settings().setDeviceScaleAdjustment(deviceScaleAdjustment); | 427 m_page->settings().setDeviceScaleAdjustment(deviceScaleAdjustment); |
403 } | 428 } |
404 | 429 |
405 void InspectorPageAgent::setFrontend(InspectorFrontend* frontend) | 430 void InspectorPageAgent::setFrontend(InspectorFrontend* frontend) |
406 { | 431 { |
407 m_frontend = frontend->page(); | 432 m_frontend = frontend->page(); |
408 } | 433 } |
409 | 434 |
410 void InspectorPageAgent::clearFrontend() | 435 void InspectorPageAgent::clearFrontend() |
411 { | 436 { |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
464 if (m_state->getBoolean(PageAgentState::pageAgentContinuousPaintingEnabled)) | 489 if (m_state->getBoolean(PageAgentState::pageAgentContinuousPaintingEnabled)) |
465 setContinuousPaintingEnabled(0, false); | 490 setContinuousPaintingEnabled(0, false); |
466 setShowScrollBottleneckRects(0, false); | 491 setShowScrollBottleneckRects(0, false); |
467 setShowViewportSizeOnResize(0, false, 0); | 492 setShowViewportSizeOnResize(0, false, 0); |
468 | 493 |
469 if (m_state->getBoolean(PageAgentState::touchEventEmulationEnabled)) { | 494 if (m_state->getBoolean(PageAgentState::touchEventEmulationEnabled)) { |
470 updateTouchEventEmulationInPage(false); | 495 updateTouchEventEmulationInPage(false); |
471 m_state->setBoolean(PageAgentState::touchEventEmulationEnabled, false); | 496 m_state->setBoolean(PageAgentState::touchEventEmulationEnabled, false); |
472 } | 497 } |
473 | 498 |
474 if (!deviceMetricsChanged(false, 0, 0, 0, false, false, 1, 0, 0, 1, false)) | 499 if (!deviceMetricsChanged(false, 0, 0, 0, false, false, 1, 0, 0)) |
475 return; | 500 return; |
476 | 501 |
477 // When disabling the agent, reset the override values if necessary. | 502 // When disabling the agent, reset the override values if necessary. |
478 updateViewMetrics(false, 0, 0, 0, false, false, 1, 0, 0, m_embedderFontScale
Factor, m_embedderTextAutosizingEnabled); | 503 updateViewMetrics(false, 0, 0, 0, false, false, 1, 0, 0); |
479 m_state->setLong(PageAgentState::pageAgentScreenWidthOverride, 0); | 504 m_state->setLong(PageAgentState::pageAgentScreenWidthOverride, 0); |
480 m_state->setLong(PageAgentState::pageAgentScreenHeightOverride, 0); | 505 m_state->setLong(PageAgentState::pageAgentScreenHeightOverride, 0); |
481 m_state->setDouble(PageAgentState::pageAgentDeviceScaleFactorOverride, 0); | 506 m_state->setDouble(PageAgentState::pageAgentDeviceScaleFactorOverride, 0); |
482 m_state->setBoolean(PageAgentState::pageAgentEmulateViewport, false); | 507 m_state->setBoolean(PageAgentState::pageAgentEmulateViewport, false); |
483 m_state->setBoolean(PageAgentState::pageAgentFitWindow, false); | 508 m_state->setBoolean(PageAgentState::pageAgentFitWindow, false); |
484 m_state->setDouble(PageAgentState::deviceScale, 1); | 509 m_state->setDouble(PageAgentState::deviceScale, 1); |
485 m_state->setDouble(PageAgentState::deviceOffsetX, 0); | 510 m_state->setDouble(PageAgentState::deviceOffsetX, 0); |
486 m_state->setDouble(PageAgentState::deviceOffsetY, 0); | 511 m_state->setDouble(PageAgentState::deviceOffsetY, 0); |
487 m_state->setDouble(PageAgentState::fontScaleFactor, 1); | |
488 m_state->setBoolean(PageAgentState::pageAgentTextAutosizingOverride, false); | |
489 } | 512 } |
490 | 513 |
491 void InspectorPageAgent::addScriptToEvaluateOnLoad(ErrorString*, const String& s
ource, String* identifier) | 514 void InspectorPageAgent::addScriptToEvaluateOnLoad(ErrorString*, const String& s
ource, String* identifier) |
492 { | 515 { |
493 RefPtr<JSONObject> scripts = m_state->getObject(PageAgentState::pageAgentScr
iptsToEvaluateOnLoad); | 516 RefPtr<JSONObject> scripts = m_state->getObject(PageAgentState::pageAgentScr
iptsToEvaluateOnLoad); |
494 if (!scripts) { | 517 if (!scripts) { |
495 scripts = JSONObject::create(); | 518 scripts = JSONObject::create(); |
496 m_state->setObject(PageAgentState::pageAgentScriptsToEvaluateOnLoad, scr
ipts); | 519 m_state->setObject(PageAgentState::pageAgentScriptsToEvaluateOnLoad, scr
ipts); |
497 } | 520 } |
498 // Assure we don't override existing ids -- m_lastScriptIdentifier could get
out of sync WRT actual | 521 // Assure we don't override existing ids -- m_lastScriptIdentifier could get
out of sync WRT actual |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
743 return; | 766 return; |
744 | 767 |
745 Document* document = frame->document(); | 768 Document* document = frame->document(); |
746 if (!document) { | 769 if (!document) { |
747 *errorString = "No Document instance to set HTML for"; | 770 *errorString = "No Document instance to set HTML for"; |
748 return; | 771 return; |
749 } | 772 } |
750 DOMPatchSupport::patchDocument(*document, html); | 773 DOMPatchSupport::patchDocument(*document, html); |
751 } | 774 } |
752 | 775 |
753 void InspectorPageAgent::setDeviceMetricsOverride(ErrorString* errorString, int
width, int height, double deviceScaleFactor, bool emulateViewport, bool fitWindo
w, const double* optionalScale, const double* optionalOffsetX, const double* opt
ionalOffsetY, const bool* optionalTextAutosizing, const double* optionalFontScal
eFactor) | 776 void InspectorPageAgent::setDeviceMetricsOverride(ErrorString* errorString, int
width, int height, double deviceScaleFactor, bool emulateViewport, bool fitWindo
w, const double* optionalScale, const double* optionalOffsetX, const double* opt
ionalOffsetY) |
754 { | 777 { |
755 const static long maxDimension = 10000000; | 778 const static long maxDimension = 10000000; |
756 const static double maxScale = 10; | 779 const static double maxScale = 10; |
757 | 780 |
758 double scale = optionalScale ? *optionalScale : 1; | 781 double scale = optionalScale ? *optionalScale : 1; |
759 double offsetX = optionalOffsetX ? *optionalOffsetX : 0; | 782 double offsetX = optionalOffsetX ? *optionalOffsetX : 0; |
760 double offsetY = optionalOffsetY ? *optionalOffsetY : 0; | 783 double offsetY = optionalOffsetY ? *optionalOffsetY : 0; |
761 bool textAutosizing = optionalTextAutosizing ? *optionalTextAutosizing : fal
se; | |
762 double fontScaleFactor = optionalFontScaleFactor ? *optionalFontScaleFactor
: 1; | |
763 | 784 |
764 if (width < 0 || height < 0 || width > maxDimension || height > maxDimension
) { | 785 if (width < 0 || height < 0 || width > maxDimension || height > maxDimension
) { |
765 *errorString = "Width and height values must be positive, not greater th
an " + String::number(maxDimension); | 786 *errorString = "Width and height values must be positive, not greater th
an " + String::number(maxDimension); |
766 return; | 787 return; |
767 } | 788 } |
768 | 789 |
769 if (deviceScaleFactor < 0) { | 790 if (deviceScaleFactor < 0) { |
770 *errorString = "deviceScaleFactor must be non-negative"; | 791 *errorString = "deviceScaleFactor must be non-negative"; |
771 return; | 792 return; |
772 } | 793 } |
773 | 794 |
774 if (scale <= 0 || scale > maxScale) { | 795 if (scale <= 0 || scale > maxScale) { |
775 *errorString = "scale must be positive, not greater than " + String::num
ber(maxScale); | 796 *errorString = "scale must be positive, not greater than " + String::num
ber(maxScale); |
776 return; | 797 return; |
777 } | 798 } |
778 | 799 |
779 if (fontScaleFactor <= 0) { | |
780 *errorString = "fontScaleFactor must be positive"; | |
781 return; | |
782 } | |
783 | |
784 Settings& settings = m_page->settings(); | 800 Settings& settings = m_page->settings(); |
785 if (!settings.acceleratedCompositingEnabled()) { | 801 if (!settings.acceleratedCompositingEnabled()) { |
786 if (errorString) | 802 if (errorString) |
787 *errorString = "Compositing mode is not supported"; | 803 *errorString = "Compositing mode is not supported"; |
788 return; | 804 return; |
789 } | 805 } |
790 | 806 |
791 if (!deviceMetricsChanged(true, width, height, deviceScaleFactor, emulateVie
wport, fitWindow, scale, offsetX, offsetY, fontScaleFactor, textAutosizing)) | 807 if (!deviceMetricsChanged(true, width, height, deviceScaleFactor, emulateVie
wport, fitWindow, scale, offsetX, offsetY)) |
792 return; | 808 return; |
793 | 809 |
794 m_state->setBoolean(PageAgentState::deviceMetricsOverrideEnabled, true); | 810 m_state->setBoolean(PageAgentState::deviceMetricsOverrideEnabled, true); |
795 m_state->setLong(PageAgentState::pageAgentScreenWidthOverride, width); | 811 m_state->setLong(PageAgentState::pageAgentScreenWidthOverride, width); |
796 m_state->setLong(PageAgentState::pageAgentScreenHeightOverride, height); | 812 m_state->setLong(PageAgentState::pageAgentScreenHeightOverride, height); |
797 m_state->setDouble(PageAgentState::pageAgentDeviceScaleFactorOverride, devic
eScaleFactor); | 813 m_state->setDouble(PageAgentState::pageAgentDeviceScaleFactorOverride, devic
eScaleFactor); |
798 m_state->setBoolean(PageAgentState::pageAgentEmulateViewport, emulateViewpor
t); | 814 m_state->setBoolean(PageAgentState::pageAgentEmulateViewport, emulateViewpor
t); |
799 m_state->setBoolean(PageAgentState::pageAgentFitWindow, fitWindow); | 815 m_state->setBoolean(PageAgentState::pageAgentFitWindow, fitWindow); |
800 m_state->setDouble(PageAgentState::deviceScale, scale); | 816 m_state->setDouble(PageAgentState::deviceScale, scale); |
801 m_state->setDouble(PageAgentState::deviceOffsetX, offsetX); | 817 m_state->setDouble(PageAgentState::deviceOffsetX, offsetX); |
802 m_state->setDouble(PageAgentState::deviceOffsetY, offsetY); | 818 m_state->setDouble(PageAgentState::deviceOffsetY, offsetY); |
803 m_state->setDouble(PageAgentState::fontScaleFactor, fontScaleFactor); | |
804 m_state->setBoolean(PageAgentState::pageAgentTextAutosizingOverride, textAut
osizing); | |
805 updateViewMetricsFromState(); | 819 updateViewMetricsFromState(); |
806 } | 820 } |
807 | 821 |
808 void InspectorPageAgent::clearDeviceMetricsOverride(ErrorString*) | 822 void InspectorPageAgent::clearDeviceMetricsOverride(ErrorString*) |
809 { | 823 { |
810 if (m_state->getBoolean(PageAgentState::deviceMetricsOverrideEnabled)) { | 824 if (m_state->getBoolean(PageAgentState::deviceMetricsOverrideEnabled)) { |
811 m_state->setBoolean(PageAgentState::deviceMetricsOverrideEnabled, false)
; | 825 m_state->setBoolean(PageAgentState::deviceMetricsOverrideEnabled, false)
; |
812 updateViewMetricsFromState(); | 826 updateViewMetricsFromState(); |
813 } | 827 } |
814 } | 828 } |
815 | 829 |
816 bool InspectorPageAgent::deviceMetricsChanged(bool enabled, int width, int heigh
t, double deviceScaleFactor, bool emulateViewport, bool fitWindow, double scale,
double offsetX, double offsetY, double fontScaleFactor, bool textAutosizing) | 830 bool InspectorPageAgent::deviceMetricsChanged(bool enabled, int width, int heigh
t, double deviceScaleFactor, bool emulateViewport, bool fitWindow, double scale,
double offsetX, double offsetY) |
817 { | 831 { |
818 bool currentEnabled = m_state->getBoolean(PageAgentState::deviceMetricsOverr
ideEnabled); | 832 bool currentEnabled = m_state->getBoolean(PageAgentState::deviceMetricsOverr
ideEnabled); |
819 // These two always fit an int. | 833 // These two always fit an int. |
820 int currentWidth = static_cast<int>(m_state->getLong(PageAgentState::pageAge
ntScreenWidthOverride)); | 834 int currentWidth = static_cast<int>(m_state->getLong(PageAgentState::pageAge
ntScreenWidthOverride)); |
821 int currentHeight = static_cast<int>(m_state->getLong(PageAgentState::pageAg
entScreenHeightOverride)); | 835 int currentHeight = static_cast<int>(m_state->getLong(PageAgentState::pageAg
entScreenHeightOverride)); |
822 double currentDeviceScaleFactor = m_state->getDouble(PageAgentState::pageAge
ntDeviceScaleFactorOverride, 0); | 836 double currentDeviceScaleFactor = m_state->getDouble(PageAgentState::pageAge
ntDeviceScaleFactorOverride, 0); |
823 bool currentEmulateViewport = m_state->getBoolean(PageAgentState::pageAgentE
mulateViewport); | 837 bool currentEmulateViewport = m_state->getBoolean(PageAgentState::pageAgentE
mulateViewport); |
824 bool currentFitWindow = m_state->getBoolean(PageAgentState::pageAgentFitWind
ow); | 838 bool currentFitWindow = m_state->getBoolean(PageAgentState::pageAgentFitWind
ow); |
825 double currentScale = m_state->getDouble(PageAgentState::deviceScale, 1); | 839 double currentScale = m_state->getDouble(PageAgentState::deviceScale, 1); |
826 double currentOffsetX = m_state->getDouble(PageAgentState::deviceOffsetX, 0)
; | 840 double currentOffsetX = m_state->getDouble(PageAgentState::deviceOffsetX, 0)
; |
827 double currentOffsetY = m_state->getDouble(PageAgentState::deviceOffsetY, 0)
; | 841 double currentOffsetY = m_state->getDouble(PageAgentState::deviceOffsetY, 0)
; |
828 double currentFontScaleFactor = m_state->getDouble(PageAgentState::fontScale
Factor, 1); | |
829 bool currentTextAutosizing = m_state->getBoolean(PageAgentState::pageAgentTe
xtAutosizingOverride); | |
830 | 842 |
831 return enabled != currentEnabled | 843 return enabled != currentEnabled |
832 || width != currentWidth | 844 || width != currentWidth |
833 || height != currentHeight | 845 || height != currentHeight |
834 || deviceScaleFactor != currentDeviceScaleFactor | 846 || deviceScaleFactor != currentDeviceScaleFactor |
835 || emulateViewport != currentEmulateViewport | 847 || emulateViewport != currentEmulateViewport |
836 || fitWindow != currentFitWindow | 848 || fitWindow != currentFitWindow |
837 || scale != currentScale | 849 || scale != currentScale |
838 || offsetX != currentOffsetX | 850 || offsetX != currentOffsetX |
839 || offsetY != currentOffsetY | 851 || offsetY != currentOffsetY; |
840 || fontScaleFactor != currentFontScaleFactor | |
841 || textAutosizing != currentTextAutosizing; | |
842 } | 852 } |
843 | 853 |
844 void InspectorPageAgent::setShowPaintRects(ErrorString*, bool show) | 854 void InspectorPageAgent::setShowPaintRects(ErrorString*, bool show) |
845 { | 855 { |
846 m_state->setBoolean(PageAgentState::pageAgentShowPaintRects, show); | 856 m_state->setBoolean(PageAgentState::pageAgentShowPaintRects, show); |
847 m_client->setShowPaintRects(show); | 857 m_client->setShowPaintRects(show); |
848 | 858 |
849 if (!show && mainFrame() && mainFrame()->view()) | 859 if (!show && mainFrame() && mainFrame()->view()) |
850 mainFrame()->view()->invalidate(); | 860 mainFrame()->view()->invalidate(); |
851 } | 861 } |
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1243 { | 1253 { |
1244 bool enabled = m_state->getBoolean(PageAgentState::deviceMetricsOverrideEnab
led); | 1254 bool enabled = m_state->getBoolean(PageAgentState::deviceMetricsOverrideEnab
led); |
1245 int width = static_cast<int>(m_state->getLong(PageAgentState::pageAgentScree
nWidthOverride)); | 1255 int width = static_cast<int>(m_state->getLong(PageAgentState::pageAgentScree
nWidthOverride)); |
1246 int height = static_cast<int>(m_state->getLong(PageAgentState::pageAgentScre
enHeightOverride)); | 1256 int height = static_cast<int>(m_state->getLong(PageAgentState::pageAgentScre
enHeightOverride)); |
1247 bool emulateViewport = m_state->getBoolean(PageAgentState::pageAgentEmulateV
iewport); | 1257 bool emulateViewport = m_state->getBoolean(PageAgentState::pageAgentEmulateV
iewport); |
1248 double deviceScaleFactor = m_state->getDouble(PageAgentState::pageAgentDevic
eScaleFactorOverride); | 1258 double deviceScaleFactor = m_state->getDouble(PageAgentState::pageAgentDevic
eScaleFactorOverride); |
1249 bool fitWindow = m_state->getBoolean(PageAgentState::pageAgentFitWindow); | 1259 bool fitWindow = m_state->getBoolean(PageAgentState::pageAgentFitWindow); |
1250 double scale = m_state->getDouble(PageAgentState::deviceScale, 1); | 1260 double scale = m_state->getDouble(PageAgentState::deviceScale, 1); |
1251 double offsetX = m_state->getDouble(PageAgentState::deviceOffsetX, 0); | 1261 double offsetX = m_state->getDouble(PageAgentState::deviceOffsetX, 0); |
1252 double offsetY = m_state->getDouble(PageAgentState::deviceOffsetY, 0); | 1262 double offsetY = m_state->getDouble(PageAgentState::deviceOffsetY, 0); |
1253 double fontScaleFactor = m_state->getDouble(PageAgentState::fontScaleFactor)
; | 1263 updateViewMetrics(enabled, width, height, deviceScaleFactor, emulateViewport
, fitWindow, scale, offsetX, offsetY); |
1254 bool textAutosizingEnabled = m_state->getBoolean(PageAgentState::pageAgentTe
xtAutosizingOverride); | |
1255 updateViewMetrics(enabled, width, height, deviceScaleFactor, emulateViewport
, fitWindow, scale, offsetX, offsetY, fontScaleFactor, textAutosizingEnabled); | |
1256 } | 1264 } |
1257 | 1265 |
1258 void InspectorPageAgent::updateViewMetrics(bool enabled, int width, int height,
double deviceScaleFactor, bool emulateViewport, bool fitWindow, double scale, do
uble offsetX, double offsetY, double fontScaleFactor, bool textAutosizingEnabled
) | 1266 void InspectorPageAgent::updateViewMetrics(bool enabled, int width, int height,
double deviceScaleFactor, bool emulateViewport, bool fitWindow, double scale, do
uble offsetX, double offsetY) |
1259 { | 1267 { |
1260 if (enabled && !m_page->settings().acceleratedCompositingEnabled()) | 1268 if (enabled && !m_page->settings().acceleratedCompositingEnabled()) |
1261 return; | 1269 return; |
1262 | 1270 |
1263 m_deviceMetricsOverridden = enabled; | 1271 m_deviceMetricsOverridden = enabled; |
1264 m_emulateViewportEnabled = emulateViewport; | 1272 m_emulateViewportEnabled = emulateViewport; |
1265 if (enabled) | 1273 if (enabled) |
1266 m_client->setDeviceMetricsOverride(width, height, static_cast<float>(dev
iceScaleFactor), emulateViewport, fitWindow, static_cast<float>(scale), static_c
ast<float>(offsetX), static_cast<float>(offsetY)); | 1274 m_client->setDeviceMetricsOverride(width, height, static_cast<float>(dev
iceScaleFactor), emulateViewport, fitWindow, static_cast<float>(scale), static_c
ast<float>(offsetX), static_cast<float>(offsetY)); |
1267 else | 1275 else |
1268 m_client->clearDeviceMetricsOverride(); | 1276 m_client->clearDeviceMetricsOverride(); |
1269 | 1277 |
1270 Document* document = mainFrame()->document(); | 1278 Document* document = mainFrame()->document(); |
1271 if (document) { | 1279 if (document) { |
1272 document->styleResolverChanged(); | 1280 document->styleResolverChanged(); |
1273 document->mediaQueryAffectingValueChanged(); | 1281 document->mediaQueryAffectingValueChanged(); |
1274 } | 1282 } |
1275 InspectorInstrumentation::mediaQueryResultChanged(document); | 1283 InspectorInstrumentation::mediaQueryResultChanged(document); |
1276 | 1284 |
1277 if (m_deviceMetricsOverridden) { | 1285 if (m_deviceMetricsOverridden) { |
1278 m_page->settings().setTextAutosizingEnabled(textAutosizingEnabled); | 1286 m_page->settings().setTextAutosizingEnabled(emulateViewport); |
1279 m_page->settings().setDeviceScaleAdjustment(fontScaleFactor); | 1287 m_page->settings().setDeviceScaleAdjustment(calculateFontScaleFactor(wid
th, height, static_cast<float>(deviceScaleFactor))); |
1280 } else { | 1288 } else { |
1281 m_page->settings().setTextAutosizingEnabled(m_embedderTextAutosizingEnab
led); | 1289 m_page->settings().setTextAutosizingEnabled(m_embedderTextAutosizingEnab
led); |
1282 m_page->settings().setDeviceScaleAdjustment(m_embedderFontScaleFactor); | 1290 m_page->settings().setDeviceScaleAdjustment(m_embedderFontScaleFactor); |
1283 } | 1291 } |
1284 | 1292 |
1285 // FIXME: allow metrics override, fps counter and continuous painting at the
same time: crbug.com/299837. | 1293 // FIXME: allow metrics override, fps counter and continuous painting at the
same time: crbug.com/299837. |
1286 m_client->setShowFPSCounter(m_state->getBoolean(PageAgentState::pageAgentSho
wFPSCounter) && !m_deviceMetricsOverridden); | 1294 m_client->setShowFPSCounter(m_state->getBoolean(PageAgentState::pageAgentSho
wFPSCounter) && !m_deviceMetricsOverridden); |
1287 m_client->setContinuousPaintingEnabled(m_state->getBoolean(PageAgentState::p
ageAgentContinuousPaintingEnabled) && !m_deviceMetricsOverridden); | 1295 m_client->setContinuousPaintingEnabled(m_state->getBoolean(PageAgentState::p
ageAgentContinuousPaintingEnabled) && !m_deviceMetricsOverridden); |
1288 } | 1296 } |
1289 | 1297 |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1390 bool InspectorPageAgent::getEditedResourceContent(const String& url, String* con
tent) | 1398 bool InspectorPageAgent::getEditedResourceContent(const String& url, String* con
tent) |
1391 { | 1399 { |
1392 if (!m_editedResourceContent.contains(url)) | 1400 if (!m_editedResourceContent.contains(url)) |
1393 return false; | 1401 return false; |
1394 *content = m_editedResourceContent.get(url); | 1402 *content = m_editedResourceContent.get(url); |
1395 return true; | 1403 return true; |
1396 } | 1404 } |
1397 | 1405 |
1398 } // namespace WebCore | 1406 } // namespace WebCore |
1399 | 1407 |
OLD | NEW |