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 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
90 static const char pageAgentScreenWidthOverride[] = "pageAgentScreenWidthOverride "; | 90 static const char pageAgentScreenWidthOverride[] = "pageAgentScreenWidthOverride "; |
91 static const char pageAgentScreenHeightOverride[] = "pageAgentScreenHeightOverri de"; | 91 static const char pageAgentScreenHeightOverride[] = "pageAgentScreenHeightOverri de"; |
92 static const char pageAgentDeviceScaleFactorOverride[] = "pageAgentDeviceScaleFa ctorOverride"; | 92 static const char pageAgentDeviceScaleFactorOverride[] = "pageAgentDeviceScaleFa ctorOverride"; |
93 static const char pageAgentEmulateViewport[] = "pageAgentEmulateViewport"; | 93 static const char pageAgentEmulateViewport[] = "pageAgentEmulateViewport"; |
94 static const char pageAgentFitWindow[] = "pageAgentFitWindow"; | 94 static const char pageAgentFitWindow[] = "pageAgentFitWindow"; |
95 static const char deviceScale[] = "deviceScale"; | 95 static const char deviceScale[] = "deviceScale"; |
96 static const char deviceOffsetX[] = "deviceOffsetX"; | 96 static const char deviceOffsetX[] = "deviceOffsetX"; |
97 static const char deviceOffsetY[] = "deviceOffsetY"; | 97 static const char deviceOffsetY[] = "deviceOffsetY"; |
98 static const char fontScaleFactor[] = "fontScaleFactor"; | 98 static const char fontScaleFactor[] = "fontScaleFactor"; |
99 static const char pageAgentShowFPSCounter[] = "pageAgentShowFPSCounter"; | 99 static const char pageAgentShowFPSCounter[] = "pageAgentShowFPSCounter"; |
100 static const char pageAgentTextAutosizingOverride[] = "pageAgentTextAutosizingOv erride"; | |
101 static const char pageAgentContinuousPaintingEnabled[] = "pageAgentContinuousPai ntingEnabled"; | 100 static const char pageAgentContinuousPaintingEnabled[] = "pageAgentContinuousPai ntingEnabled"; |
102 static const char pageAgentShowPaintRects[] = "pageAgentShowPaintRects"; | 101 static const char pageAgentShowPaintRects[] = "pageAgentShowPaintRects"; |
103 static const char pageAgentShowDebugBorders[] = "pageAgentShowDebugBorders"; | 102 static const char pageAgentShowDebugBorders[] = "pageAgentShowDebugBorders"; |
104 static const char pageAgentShowScrollBottleneckRects[] = "pageAgentShowScrollBot tleneckRects"; | 103 static const char pageAgentShowScrollBottleneckRects[] = "pageAgentShowScrollBot tleneckRects"; |
105 static const char touchEventEmulationEnabled[] = "touchEventEmulationEnabled"; | 104 static const char touchEventEmulationEnabled[] = "touchEventEmulationEnabled"; |
106 static const char pageAgentEmulatedMedia[] = "pageAgentEmulatedMedia"; | 105 static const char pageAgentEmulatedMedia[] = "pageAgentEmulatedMedia"; |
107 static const char showSizeOnResize[] = "showSizeOnResize"; | 106 static const char showSizeOnResize[] = "showSizeOnResize"; |
108 static const char showGridOnResize[] = "showGridOnResize"; | 107 static const char showGridOnResize[] = "showGridOnResize"; |
109 } | 108 } |
110 | 109 |
111 namespace { | 110 namespace { |
112 | 111 |
113 KURL urlWithoutFragment(const KURL& url) | 112 KURL urlWithoutFragment(const KURL& url) |
114 { | 113 { |
115 KURL result = url; | 114 KURL result = url; |
116 result.removeFragmentIdentifier(); | 115 result.removeFragmentIdentifier(); |
117 return result; | 116 return result; |
118 } | 117 } |
119 | 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, GetFontScaleMultiplier(. ..) | |
pfeldman
2014/06/23 13:23:56
There is no such file.
dgozman
2014/06/27 11:40:03
There is, but function was renamed to GetDeviceSca
| |
125 if (!width || !height || !deviceScaleFactor) | |
126 return 1; | |
127 | |
128 const float kMinFSM = 1.05f; | |
129 const int kWidthForMinFSM = 320; | |
130 const float kMaxFSM = 1.3f; | |
131 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 = 1.f * (minWidth - kWidthForMinFSM) / (kWidthForMaxFSM - kWidth ForMinFSM); | |
141 return ratio * (kMaxFSM - kMinFSM) + kMinFSM; | |
142 } | |
143 | |
120 } | 144 } |
121 | 145 |
122 static bool decodeBuffer(const char* buffer, unsigned size, const String& textEn codingName, String* result) | 146 static bool decodeBuffer(const char* buffer, unsigned size, const String& textEn codingName, String* result) |
123 { | 147 { |
124 if (buffer) { | 148 if (buffer) { |
125 WTF::TextEncoding encoding(textEncodingName); | 149 WTF::TextEncoding encoding(textEncodingName); |
126 if (!encoding.isValid()) | 150 if (!encoding.isValid()) |
127 encoding = WindowsLatin1Encoding(); | 151 encoding = WindowsLatin1Encoding(); |
128 *result = encoding.decode(buffer, size); | 152 *result = encoding.decode(buffer, size); |
129 return true; | 153 return true; |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
347 , m_originalDeviceSupportsMouse(false) | 371 , m_originalDeviceSupportsMouse(false) |
348 , m_originalDeviceSupportsTouch(false) | 372 , m_originalDeviceSupportsTouch(false) |
349 , m_embedderTextAutosizingEnabled(m_page->settings().textAutosizingEnabled() ) | 373 , m_embedderTextAutosizingEnabled(m_page->settings().textAutosizingEnabled() ) |
350 , m_embedderFontScaleFactor(m_page->settings().deviceScaleAdjustment()) | 374 , m_embedderFontScaleFactor(m_page->settings().deviceScaleAdjustment()) |
351 { | 375 { |
352 } | 376 } |
353 | 377 |
354 void InspectorPageAgent::setTextAutosizingEnabled(bool enabled) | 378 void InspectorPageAgent::setTextAutosizingEnabled(bool enabled) |
355 { | 379 { |
356 m_embedderTextAutosizingEnabled = enabled; | 380 m_embedderTextAutosizingEnabled = enabled; |
357 if (!m_deviceMetricsOverridden) | 381 bool emulateViewportEnabled = m_enabled && m_deviceMetricsOverridden && m_em ulateViewportEnabled; |
382 if (!emulateViewportEnabled) | |
358 m_page->settings().setTextAutosizingEnabled(enabled); | 383 m_page->settings().setTextAutosizingEnabled(enabled); |
359 } | 384 } |
360 | 385 |
361 void InspectorPageAgent::setDeviceScaleAdjustment(float deviceScaleAdjustment) | 386 void InspectorPageAgent::setDeviceScaleAdjustment(float deviceScaleAdjustment) |
362 { | 387 { |
363 m_embedderFontScaleFactor = deviceScaleAdjustment; | 388 m_embedderFontScaleFactor = deviceScaleAdjustment; |
364 if (!m_deviceMetricsOverridden) | 389 bool emulateViewportEnabled = m_enabled && m_deviceMetricsOverridden && m_em ulateViewportEnabled; |
390 if (!emulateViewportEnabled) | |
365 m_page->settings().setDeviceScaleAdjustment(deviceScaleAdjustment); | 391 m_page->settings().setDeviceScaleAdjustment(deviceScaleAdjustment); |
366 } | 392 } |
367 | 393 |
368 void InspectorPageAgent::setFrontend(InspectorFrontend* frontend) | 394 void InspectorPageAgent::setFrontend(InspectorFrontend* frontend) |
369 { | 395 { |
370 m_frontend = frontend->page(); | 396 m_frontend = frontend->page(); |
371 } | 397 } |
372 | 398 |
373 void InspectorPageAgent::clearFrontend() | 399 void InspectorPageAgent::clearFrontend() |
374 { | 400 { |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
427 if (m_state->getBoolean(PageAgentState::pageAgentContinuousPaintingEnabled)) | 453 if (m_state->getBoolean(PageAgentState::pageAgentContinuousPaintingEnabled)) |
428 setContinuousPaintingEnabled(0, false); | 454 setContinuousPaintingEnabled(0, false); |
429 setShowScrollBottleneckRects(0, false); | 455 setShowScrollBottleneckRects(0, false); |
430 setShowViewportSizeOnResize(0, false, 0); | 456 setShowViewportSizeOnResize(0, false, 0); |
431 | 457 |
432 if (m_state->getBoolean(PageAgentState::touchEventEmulationEnabled)) { | 458 if (m_state->getBoolean(PageAgentState::touchEventEmulationEnabled)) { |
433 updateTouchEventEmulationInPage(false); | 459 updateTouchEventEmulationInPage(false); |
434 m_state->setBoolean(PageAgentState::touchEventEmulationEnabled, false); | 460 m_state->setBoolean(PageAgentState::touchEventEmulationEnabled, false); |
435 } | 461 } |
436 | 462 |
437 if (!deviceMetricsChanged(false, 0, 0, 0, false, false, 1, 0, 0, 1, false)) | 463 if (!deviceMetricsChanged(false, 0, 0, 0, false, false, 1, 0, 0)) |
438 return; | 464 return; |
439 | 465 |
440 // When disabling the agent, reset the override values if necessary. | 466 // When disabling the agent, reset the override values if necessary. |
441 updateViewMetrics(false, 0, 0, 0, false, false, 1, 0, 0, m_embedderFontScale Factor, m_embedderTextAutosizingEnabled); | 467 updateViewMetrics(false, 0, 0, 0, false, false, 1, 0, 0); |
442 m_state->setLong(PageAgentState::pageAgentScreenWidthOverride, 0); | 468 m_state->setLong(PageAgentState::pageAgentScreenWidthOverride, 0); |
443 m_state->setLong(PageAgentState::pageAgentScreenHeightOverride, 0); | 469 m_state->setLong(PageAgentState::pageAgentScreenHeightOverride, 0); |
444 m_state->setDouble(PageAgentState::pageAgentDeviceScaleFactorOverride, 0); | 470 m_state->setDouble(PageAgentState::pageAgentDeviceScaleFactorOverride, 0); |
445 m_state->setBoolean(PageAgentState::pageAgentEmulateViewport, false); | 471 m_state->setBoolean(PageAgentState::pageAgentEmulateViewport, false); |
446 m_state->setBoolean(PageAgentState::pageAgentFitWindow, false); | 472 m_state->setBoolean(PageAgentState::pageAgentFitWindow, false); |
447 m_state->setDouble(PageAgentState::deviceScale, 1); | 473 m_state->setDouble(PageAgentState::deviceScale, 1); |
448 m_state->setDouble(PageAgentState::deviceOffsetX, 0); | 474 m_state->setDouble(PageAgentState::deviceOffsetX, 0); |
449 m_state->setDouble(PageAgentState::deviceOffsetY, 0); | 475 m_state->setDouble(PageAgentState::deviceOffsetY, 0); |
450 m_state->setDouble(PageAgentState::fontScaleFactor, 1); | |
451 m_state->setBoolean(PageAgentState::pageAgentTextAutosizingOverride, false); | |
452 } | 476 } |
453 | 477 |
454 void InspectorPageAgent::addScriptToEvaluateOnLoad(ErrorString*, const String& s ource, String* identifier) | 478 void InspectorPageAgent::addScriptToEvaluateOnLoad(ErrorString*, const String& s ource, String* identifier) |
455 { | 479 { |
456 RefPtr<JSONObject> scripts = m_state->getObject(PageAgentState::pageAgentScr iptsToEvaluateOnLoad); | 480 RefPtr<JSONObject> scripts = m_state->getObject(PageAgentState::pageAgentScr iptsToEvaluateOnLoad); |
457 if (!scripts) { | 481 if (!scripts) { |
458 scripts = JSONObject::create(); | 482 scripts = JSONObject::create(); |
459 m_state->setObject(PageAgentState::pageAgentScriptsToEvaluateOnLoad, scr ipts); | 483 m_state->setObject(PageAgentState::pageAgentScriptsToEvaluateOnLoad, scr ipts); |
460 } | 484 } |
461 // Assure we don't override existing ids -- m_lastScriptIdentifier could get out of sync WRT actual | 485 // Assure we don't override existing ids -- m_lastScriptIdentifier could get out of sync WRT actual |
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
682 return; | 706 return; |
683 | 707 |
684 Document* document = frame->document(); | 708 Document* document = frame->document(); |
685 if (!document) { | 709 if (!document) { |
686 *errorString = "No Document instance to set HTML for"; | 710 *errorString = "No Document instance to set HTML for"; |
687 return; | 711 return; |
688 } | 712 } |
689 DOMPatchSupport::patchDocument(*document, html); | 713 DOMPatchSupport::patchDocument(*document, html); |
690 } | 714 } |
691 | 715 |
692 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) | 716 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) |
693 { | 717 { |
694 const static long maxDimension = 10000000; | 718 const static long maxDimension = 10000000; |
695 const static double maxScale = 10; | 719 const static double maxScale = 10; |
696 | 720 |
697 double scale = optionalScale ? *optionalScale : 1; | 721 double scale = optionalScale ? *optionalScale : 1; |
698 double offsetX = optionalOffsetX ? *optionalOffsetX : 0; | 722 double offsetX = optionalOffsetX ? *optionalOffsetX : 0; |
699 double offsetY = optionalOffsetY ? *optionalOffsetY : 0; | 723 double offsetY = optionalOffsetY ? *optionalOffsetY : 0; |
700 bool textAutosizing = optionalTextAutosizing ? *optionalTextAutosizing : fal se; | |
701 double fontScaleFactor = optionalFontScaleFactor ? *optionalFontScaleFactor : 1; | |
702 | 724 |
703 if (width < 0 || height < 0 || width > maxDimension || height > maxDimension ) { | 725 if (width < 0 || height < 0 || width > maxDimension || height > maxDimension ) { |
704 *errorString = "Width and height values must be positive, not greater th an " + String::number(maxDimension); | 726 *errorString = "Width and height values must be positive, not greater th an " + String::number(maxDimension); |
705 return; | 727 return; |
706 } | 728 } |
707 | 729 |
708 if (deviceScaleFactor < 0) { | 730 if (deviceScaleFactor < 0) { |
709 *errorString = "deviceScaleFactor must be non-negative"; | 731 *errorString = "deviceScaleFactor must be non-negative"; |
710 return; | 732 return; |
711 } | 733 } |
712 | 734 |
713 if (scale <= 0 || scale > maxScale) { | 735 if (scale <= 0 || scale > maxScale) { |
714 *errorString = "scale must be positive, not greater than " + String::num ber(maxScale); | 736 *errorString = "scale must be positive, not greater than " + String::num ber(maxScale); |
715 return; | 737 return; |
716 } | 738 } |
717 | 739 |
718 if (fontScaleFactor <= 0) { | |
719 *errorString = "fontScaleFactor must be positive"; | |
720 return; | |
721 } | |
722 | |
723 Settings& settings = m_page->settings(); | 740 Settings& settings = m_page->settings(); |
724 if (!settings.acceleratedCompositingEnabled()) { | 741 if (!settings.acceleratedCompositingEnabled()) { |
725 if (errorString) | 742 if (errorString) |
726 *errorString = "Compositing mode is not supported"; | 743 *errorString = "Compositing mode is not supported"; |
727 return; | 744 return; |
728 } | 745 } |
729 | 746 |
730 if (!deviceMetricsChanged(true, width, height, deviceScaleFactor, emulateVie wport, fitWindow, scale, offsetX, offsetY, fontScaleFactor, textAutosizing)) | 747 if (!deviceMetricsChanged(true, width, height, deviceScaleFactor, emulateVie wport, fitWindow, scale, offsetX, offsetY)) |
731 return; | 748 return; |
732 | 749 |
733 m_state->setBoolean(PageAgentState::deviceMetricsOverrideEnabled, true); | 750 m_state->setBoolean(PageAgentState::deviceMetricsOverrideEnabled, true); |
734 m_state->setLong(PageAgentState::pageAgentScreenWidthOverride, width); | 751 m_state->setLong(PageAgentState::pageAgentScreenWidthOverride, width); |
735 m_state->setLong(PageAgentState::pageAgentScreenHeightOverride, height); | 752 m_state->setLong(PageAgentState::pageAgentScreenHeightOverride, height); |
736 m_state->setDouble(PageAgentState::pageAgentDeviceScaleFactorOverride, devic eScaleFactor); | 753 m_state->setDouble(PageAgentState::pageAgentDeviceScaleFactorOverride, devic eScaleFactor); |
737 m_state->setBoolean(PageAgentState::pageAgentEmulateViewport, emulateViewpor t); | 754 m_state->setBoolean(PageAgentState::pageAgentEmulateViewport, emulateViewpor t); |
738 m_state->setBoolean(PageAgentState::pageAgentFitWindow, fitWindow); | 755 m_state->setBoolean(PageAgentState::pageAgentFitWindow, fitWindow); |
739 m_state->setDouble(PageAgentState::deviceScale, scale); | 756 m_state->setDouble(PageAgentState::deviceScale, scale); |
740 m_state->setDouble(PageAgentState::deviceOffsetX, offsetX); | 757 m_state->setDouble(PageAgentState::deviceOffsetX, offsetX); |
741 m_state->setDouble(PageAgentState::deviceOffsetY, offsetY); | 758 m_state->setDouble(PageAgentState::deviceOffsetY, offsetY); |
742 m_state->setDouble(PageAgentState::fontScaleFactor, fontScaleFactor); | |
743 m_state->setBoolean(PageAgentState::pageAgentTextAutosizingOverride, textAut osizing); | |
744 updateViewMetricsFromState(); | 759 updateViewMetricsFromState(); |
745 } | 760 } |
746 | 761 |
747 void InspectorPageAgent::clearDeviceMetricsOverride(ErrorString*) | 762 void InspectorPageAgent::clearDeviceMetricsOverride(ErrorString*) |
748 { | 763 { |
749 if (m_state->getBoolean(PageAgentState::deviceMetricsOverrideEnabled)) { | 764 if (m_state->getBoolean(PageAgentState::deviceMetricsOverrideEnabled)) { |
750 m_state->setBoolean(PageAgentState::deviceMetricsOverrideEnabled, false) ; | 765 m_state->setBoolean(PageAgentState::deviceMetricsOverrideEnabled, false) ; |
751 updateViewMetricsFromState(); | 766 updateViewMetricsFromState(); |
752 } | 767 } |
753 } | 768 } |
754 | 769 |
755 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) | 770 bool InspectorPageAgent::deviceMetricsChanged(bool enabled, int width, int heigh t, double deviceScaleFactor, bool emulateViewport, bool fitWindow, double scale, double offsetX, double offsetY) |
756 { | 771 { |
757 bool currentEnabled = m_state->getBoolean(PageAgentState::deviceMetricsOverr ideEnabled); | 772 bool currentEnabled = m_state->getBoolean(PageAgentState::deviceMetricsOverr ideEnabled); |
758 // These two always fit an int. | 773 // These two always fit an int. |
759 int currentWidth = static_cast<int>(m_state->getLong(PageAgentState::pageAge ntScreenWidthOverride)); | 774 int currentWidth = static_cast<int>(m_state->getLong(PageAgentState::pageAge ntScreenWidthOverride)); |
760 int currentHeight = static_cast<int>(m_state->getLong(PageAgentState::pageAg entScreenHeightOverride)); | 775 int currentHeight = static_cast<int>(m_state->getLong(PageAgentState::pageAg entScreenHeightOverride)); |
761 double currentDeviceScaleFactor = m_state->getDouble(PageAgentState::pageAge ntDeviceScaleFactorOverride, 0); | 776 double currentDeviceScaleFactor = m_state->getDouble(PageAgentState::pageAge ntDeviceScaleFactorOverride, 0); |
762 bool currentEmulateViewport = m_state->getBoolean(PageAgentState::pageAgentE mulateViewport); | 777 bool currentEmulateViewport = m_state->getBoolean(PageAgentState::pageAgentE mulateViewport); |
763 bool currentFitWindow = m_state->getBoolean(PageAgentState::pageAgentFitWind ow); | 778 bool currentFitWindow = m_state->getBoolean(PageAgentState::pageAgentFitWind ow); |
764 double currentScale = m_state->getDouble(PageAgentState::deviceScale, 1); | 779 double currentScale = m_state->getDouble(PageAgentState::deviceScale, 1); |
765 double currentOffsetX = m_state->getDouble(PageAgentState::deviceOffsetX, 0) ; | 780 double currentOffsetX = m_state->getDouble(PageAgentState::deviceOffsetX, 0) ; |
766 double currentOffsetY = m_state->getDouble(PageAgentState::deviceOffsetY, 0) ; | 781 double currentOffsetY = m_state->getDouble(PageAgentState::deviceOffsetY, 0) ; |
767 double currentFontScaleFactor = m_state->getDouble(PageAgentState::fontScale Factor, 1); | |
768 bool currentTextAutosizing = m_state->getBoolean(PageAgentState::pageAgentTe xtAutosizingOverride); | |
769 | 782 |
770 return enabled != currentEnabled | 783 return enabled != currentEnabled |
771 || width != currentWidth | 784 || width != currentWidth |
772 || height != currentHeight | 785 || height != currentHeight |
773 || deviceScaleFactor != currentDeviceScaleFactor | 786 || deviceScaleFactor != currentDeviceScaleFactor |
774 || emulateViewport != currentEmulateViewport | 787 || emulateViewport != currentEmulateViewport |
775 || fitWindow != currentFitWindow | 788 || fitWindow != currentFitWindow |
776 || scale != currentScale | 789 || scale != currentScale |
777 || offsetX != currentOffsetX | 790 || offsetX != currentOffsetX |
778 || offsetY != currentOffsetY | 791 || offsetY != currentOffsetY; |
779 || fontScaleFactor != currentFontScaleFactor | |
780 || textAutosizing != currentTextAutosizing; | |
781 } | 792 } |
782 | 793 |
783 void InspectorPageAgent::setShowPaintRects(ErrorString*, bool show) | 794 void InspectorPageAgent::setShowPaintRects(ErrorString*, bool show) |
784 { | 795 { |
785 m_state->setBoolean(PageAgentState::pageAgentShowPaintRects, show); | 796 m_state->setBoolean(PageAgentState::pageAgentShowPaintRects, show); |
786 m_client->setShowPaintRects(show); | 797 m_client->setShowPaintRects(show); |
787 | 798 |
788 if (!show && mainFrame() && mainFrame()->view()) | 799 if (!show && mainFrame() && mainFrame()->view()) |
789 mainFrame()->view()->invalidate(); | 800 mainFrame()->view()->invalidate(); |
790 } | 801 } |
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1182 { | 1193 { |
1183 bool enabled = m_state->getBoolean(PageAgentState::deviceMetricsOverrideEnab led); | 1194 bool enabled = m_state->getBoolean(PageAgentState::deviceMetricsOverrideEnab led); |
1184 int width = static_cast<int>(m_state->getLong(PageAgentState::pageAgentScree nWidthOverride)); | 1195 int width = static_cast<int>(m_state->getLong(PageAgentState::pageAgentScree nWidthOverride)); |
1185 int height = static_cast<int>(m_state->getLong(PageAgentState::pageAgentScre enHeightOverride)); | 1196 int height = static_cast<int>(m_state->getLong(PageAgentState::pageAgentScre enHeightOverride)); |
1186 bool emulateViewport = m_state->getBoolean(PageAgentState::pageAgentEmulateV iewport); | 1197 bool emulateViewport = m_state->getBoolean(PageAgentState::pageAgentEmulateV iewport); |
1187 double deviceScaleFactor = m_state->getDouble(PageAgentState::pageAgentDevic eScaleFactorOverride); | 1198 double deviceScaleFactor = m_state->getDouble(PageAgentState::pageAgentDevic eScaleFactorOverride); |
1188 bool fitWindow = m_state->getBoolean(PageAgentState::pageAgentFitWindow); | 1199 bool fitWindow = m_state->getBoolean(PageAgentState::pageAgentFitWindow); |
1189 double scale = m_state->getDouble(PageAgentState::deviceScale, 1); | 1200 double scale = m_state->getDouble(PageAgentState::deviceScale, 1); |
1190 double offsetX = m_state->getDouble(PageAgentState::deviceOffsetX, 0); | 1201 double offsetX = m_state->getDouble(PageAgentState::deviceOffsetX, 0); |
1191 double offsetY = m_state->getDouble(PageAgentState::deviceOffsetY, 0); | 1202 double offsetY = m_state->getDouble(PageAgentState::deviceOffsetY, 0); |
1192 double fontScaleFactor = m_state->getDouble(PageAgentState::fontScaleFactor) ; | 1203 updateViewMetrics(enabled, width, height, deviceScaleFactor, emulateViewport , fitWindow, scale, offsetX, offsetY); |
1193 bool textAutosizingEnabled = m_state->getBoolean(PageAgentState::pageAgentTe xtAutosizingOverride); | |
1194 updateViewMetrics(enabled, width, height, deviceScaleFactor, emulateViewport , fitWindow, scale, offsetX, offsetY, fontScaleFactor, textAutosizingEnabled); | |
1195 } | 1204 } |
1196 | 1205 |
1197 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 ) | 1206 void InspectorPageAgent::updateViewMetrics(bool enabled, int width, int height, double deviceScaleFactor, bool emulateViewport, bool fitWindow, double scale, do uble offsetX, double offsetY) |
1198 { | 1207 { |
1199 if (enabled && !m_page->settings().acceleratedCompositingEnabled()) | 1208 if (enabled && !m_page->settings().acceleratedCompositingEnabled()) |
1200 return; | 1209 return; |
1201 | 1210 |
1202 m_deviceMetricsOverridden = enabled; | 1211 m_deviceMetricsOverridden = enabled; |
1203 m_emulateViewportEnabled = emulateViewport; | 1212 m_emulateViewportEnabled = emulateViewport; |
1204 if (enabled) | 1213 if (enabled) |
1205 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)); | 1214 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)); |
1206 else | 1215 else |
1207 m_client->clearDeviceMetricsOverride(); | 1216 m_client->clearDeviceMetricsOverride(); |
1208 | 1217 |
1209 Document* document = mainFrame()->document(); | 1218 Document* document = mainFrame()->document(); |
1210 if (document) { | 1219 if (document) { |
1211 document->styleResolverChanged(); | 1220 document->styleResolverChanged(); |
1212 document->mediaQueryAffectingValueChanged(); | 1221 document->mediaQueryAffectingValueChanged(); |
1213 } | 1222 } |
1214 InspectorInstrumentation::mediaQueryResultChanged(document); | 1223 InspectorInstrumentation::mediaQueryResultChanged(document); |
1215 | 1224 |
1216 if (m_deviceMetricsOverridden) { | 1225 if (m_deviceMetricsOverridden) { |
1217 m_page->settings().setTextAutosizingEnabled(textAutosizingEnabled); | 1226 m_page->settings().setTextAutosizingEnabled(emulateViewport); |
1218 m_page->settings().setDeviceScaleAdjustment(fontScaleFactor); | 1227 m_page->settings().setDeviceScaleAdjustment(calculateFontScaleFactor(wid th, height, static_cast<float>(deviceScaleFactor))); |
1219 } else { | 1228 } else { |
1220 m_page->settings().setTextAutosizingEnabled(m_embedderTextAutosizingEnab led); | 1229 m_page->settings().setTextAutosizingEnabled(m_embedderTextAutosizingEnab led); |
1221 m_page->settings().setDeviceScaleAdjustment(m_embedderFontScaleFactor); | 1230 m_page->settings().setDeviceScaleAdjustment(m_embedderFontScaleFactor); |
1222 } | 1231 } |
1223 | 1232 |
1224 // FIXME: allow metrics override, fps counter and continuous painting at the same time: crbug.com/299837. | 1233 // FIXME: allow metrics override, fps counter and continuous painting at the same time: crbug.com/299837. |
1225 m_client->setShowFPSCounter(m_state->getBoolean(PageAgentState::pageAgentSho wFPSCounter) && !m_deviceMetricsOverridden); | 1234 m_client->setShowFPSCounter(m_state->getBoolean(PageAgentState::pageAgentSho wFPSCounter) && !m_deviceMetricsOverridden); |
1226 m_client->setContinuousPaintingEnabled(m_state->getBoolean(PageAgentState::p ageAgentContinuousPaintingEnabled) && !m_deviceMetricsOverridden); | 1235 m_client->setContinuousPaintingEnabled(m_state->getBoolean(PageAgentState::p ageAgentContinuousPaintingEnabled) && !m_deviceMetricsOverridden); |
1227 } | 1236 } |
1228 | 1237 |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1329 bool InspectorPageAgent::getEditedResourceContent(const String& url, String* con tent) | 1338 bool InspectorPageAgent::getEditedResourceContent(const String& url, String* con tent) |
1330 { | 1339 { |
1331 if (!m_editedResourceContent.contains(url)) | 1340 if (!m_editedResourceContent.contains(url)) |
1332 return false; | 1341 return false; |
1333 *content = m_editedResourceContent.get(url); | 1342 *content = m_editedResourceContent.get(url); |
1334 return true; | 1343 return true; |
1335 } | 1344 } |
1336 | 1345 |
1337 } // namespace WebCore | 1346 } // namespace WebCore |
1338 | 1347 |
OLD | NEW |