Chromium Code Reviews| 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 |