Changeset 147357 in webkit


Ignore:
Timestamp:
Apr 1, 2013 1:48:52 PM (11 years ago)
Author:
aelias@chromium.org
Message:

[chromium] Delete code behind if (!applyXYZScaleInCompositor)
https://bugs.webkit.org/show_bug.cgi?id=111809

Reviewed by James Robinson.

Chromium is setting the flags applyPageScaleFactorInCompositor and
applyDeviceScaleFactorInCompositor permanently to true, so any code
in platform/chromium with the false setting is dead. Delete all of
it.

I also switched FrameTestHelpers and DumpRenderTree to always turn the
setting to true so that they test the code we're actually running.
This exposed a number of failing tests which I added in the
expectations file.

Note also that I made calls to setPageScaleFactor turn on
force-compositing-mode to make the layout tests work, as
pageScaleFactor is now ignored in non-composited mode.

  • src/ChromeClientImpl.cpp:

(WebKit::ChromeClientImpl::dispatchViewportPropertiesDidChange):

  • src/NonCompositedContentHost.cpp:

(WebKit::NonCompositedContentHost::NonCompositedContentHost):

  • src/PageWidgetDelegate.cpp:

(WebKit::PageWidgetDelegate::paint):

  • src/PageWidgetDelegate.h:
  • src/WebFrameImpl.cpp:

(WebKit::WebFrameImpl::selectRange):
(WebKit::WebFrameImpl::moveCaretSelectionTowardsWindowPoint):

  • src/WebPagePopupImpl.cpp:

(WebKit::WebPagePopupImpl::paint):

  • src/WebViewImpl.cpp:

(WebKit::WebViewImpl::computeScaleAndScrollForHitRect):
(WebKit::WebViewImpl::scaledSize):
(WebKit::WebViewImpl::resize):
(WebKit::WebViewImpl::paint):
(WebKit::WebViewImpl::selectionBounds):
(WebKit::WebViewImpl::computeScaleAndScrollForFocusedNode):
(WebKit::WebViewImpl::clampOffsetAtScale):
(WebKit::WebViewImpl::setPageScaleFactorPreservingScrollOffset):
(WebKit::WebViewImpl::setDeviceScaleFactor):
(WebKit::WebViewImpl::contentsSize):
(WebKit::WebViewImpl::setIsAcceleratedCompositingActive):
(WebKit::WebViewImpl::applyScrollAndScale):

  • src/WebViewImpl.h:
  • tests/FrameTestHelpers.cpp:

(WebKit::FrameTestHelpers::createWebView):

  • tests/WebFrameTest.cpp:
  • tests/WebInputEventConversionTest.cpp:

(WebCore::TEST):

Location:
trunk
Files:
17 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/platform/chromium/TestExpectations

    r147347 r147357  
    36213621webkit.org/b/106858 [ Mac Debug ] scrollingcoordinator/non-fast-scrollable-region-transformed-iframe.html [ ImageOnlyFailure Crash ]
    36223622webkit.org/b/106858 [ Linux Win Debug ] scrollingcoordinator/non-fast-scrollable-region-transformed-iframe.html [ ImageOnlyFailure Pass ]
    3623 webkit.org/b/106858 [ Mac Debug ] scrollingcoordinator/non-fast-scrollable-region-scaled-iframe.html [ ImageOnlyFailure ]
    3624 webkit.org/b/106858 [ Linux Win Debug ] scrollingcoordinator/non-fast-scrollable-region-scaled-iframe.html [ ImageOnlyFailure Pass ]
    36253623
    36263624# This is won't fix, as the debug and release versions differ.
     
    36803678webkit.org/b/110739 [ Release MountainLion ] fast/regions/shape-inside/shape-inside-on-regions.html [ ImageOnlyFailure ]
    36813679
    3682 # The following tests are are failing since chromium r184584
    3683 webkit.org/b/110851 compositing/geometry/fixed-position-composited-page-scale-smaller-than-viewport.html [ ImageOnlyFailure ]
    3684 webkit.org/b/110851 compositing/geometry/fixed-position-composited-page-scale.html [ ImageOnlyFailure ]
    3685 webkit.org/b/110851 compositing/geometry/fixed-position-iframe-composited-page-scale.html [ ImageOnlyFailure ]
    3686 webkit.org/b/110851 compositing/overflow/overflow-scaled-descendant-overlapping.html [ ImageOnlyFailure ]
    3687 webkit.org/b/110851 compositing/repaint/page-scale-repaint.html [ ImageOnlyFailure ]
    3688 webkit.org/b/110851 platform/chromium/virtual/gpu/compositedscrolling/overflow/overflow-scaled-descendant-overlapping.html [ ImageOnlyFailure ]
    3689 webkit.org/b/110851 platform/chromium/virtual/softwarecompositing/geometry/fixed-position-composited-page-scale.html [ ImageOnlyFailure ]
    3690 webkit.org/b/110851 platform/chromium/virtual/softwarecompositing/geometry/fixed-position-iframe-composited-page-scale.html [ ImageOnlyFailure ]
    3691 webkit.org/b/110851 platform/chromium/virtual/softwarecompositing/geometry/fixed-position-composited-page-scale-smaller-than-viewport.html [ ImageOnlyFailure ]
    3692 webkit.org/b/110851 platform/chromium/virtual/softwarecompositing/overflow/overflow-scaled-descendant-overlapping.html [ ImageOnlyFailure ]
    3693 webkit.org/b/110851 platform/chromium/virtual/softwarecompositing/repaint/page-scale-repaint.html [ ImageOnlyFailure ]
     3680# Tests failing since applyPageScaleFactorInCompositor enabled
     3681crbug.com/225184 compositing/geometry/fixed-position-composited-page-scale.html [ ImageOnlyFailure ]
     3682crbug.com/225184 compositing/geometry/fixed-position-iframe-composited-page-scale.html [ ImageOnlyFailure ]
     3683crbug.com/225184 compositing/repaint/page-scale-repaint.html [ ImageOnlyFailure ]
     3684crbug.com/225184 platform/chromium/virtual/gpu/compositedscrolling/overflow/overflow-scaled-descendant-overlapping.html [ ImageOnlyFailure ]
     3685crbug.com/225184 platform/chromium/virtual/softwarecompositing/geometry/fixed-position-composited-page-scale.html [ ImageOnlyFailure ]
     3686crbug.com/225184 platform/chromium/virtual/softwarecompositing/geometry/fixed-position-iframe-composited-page-scale.html [ ImageOnlyFailure ]
     3687crbug.com/225184 platform/chromium/virtual/softwarecompositing/geometry/fixed-position-composited-page-scale-smaller-than-viewport.html [ ImageOnlyFailure ]
     3688crbug.com/225184 platform/chromium/virtual/softwarecompositing/overflow/overflow-scaled-descendant-overlapping.html [ ImageOnlyFailure ]
     3689crbug.com/225184 platform/chromium/virtual/softwarecompositing/repaint/page-scale-repaint.html [ ImageOnlyFailure ]
     3690crbug.com/225184 platform/chromium/virtual/softwarecompositing/layer-creation/fixed-position-out-of-view-scaled-scroll.html [ Failure ]
     3691crbug.com/225184 platform/chromium/virtual/softwarecompositing/layer-creation/fixed-position-out-of-view-scaled.html [ Failure ]
     3692crbug.com/225184 compositing/layer-creation/fixed-position-out-of-view-scaled.html [ Failure ]
     3693crbug.com/225184 compositing/layer-creation/fixed-position-out-of-view-scaled-scroll.html [ Failure ]
     3694crbug.com/225184 fast/events/scale-and-scroll-iframe-body.html [ ImageOnlyFailure ]
     3695crbug.com/225184 fast/events/scale-and-scroll-iframe-window.html [ ImageOnlyFailure ]
     3696crbug.com/225184 fast/frames/frame-set-rotation-hit.html [ ImageOnlyFailure ]
     3697crbug.com/225184 fast/frames/frame-set-scaling-hit.html [ ImageOnlyFailure ]
     3698crbug.com/225184 fast/repaint/background-scaling.html [ ImageOnlyFailure ]
     3699crbug.com/225184 fast/repaint/scale-page-shrink.html [ ImageOnlyFailure ]
     3700crbug.com/225184 platform/chromium/fast/repaint/relayout-fixed-position-after-scale.html [ ImageOnlyFailure ]
     3701crbug.com/225184 fast/events/scale-and-scroll-body.html [ Failure ]
     3702crbug.com/225184 fast/events/scroll-in-scaled-page-with-overflow-hidden.html [ Failure ]
     3703crbug.com/225184 inspector/elements/highlight-node-scaled.html [ Failure ]
     3704crbug.com/225184 scrollingcoordinator/non-fast-scrollable-region-scaled-iframe.html [ Failure ]
     3705crbug.com/225184 svg/as-image/image-respects-pageScaleFactor.html [ ImageOnlyFailure ]
    36943706
    36953707# Pixel tests for RTL iframe scrollbar is erroneous. Cannot observe on actual browser.
  • trunk/Source/Platform/chromium/public/WebGestureCurveTarget.h

    r144856 r147357  
    3333class WebGestureCurveTarget {
    3434public:
    35     virtual void scrollBy(const WebFloatSize& delta) { scrollBy(WebPoint(delta.width, delta.height)); }
    36 
    37     // TODO(aelias): Delete this after WebKit roll.
    38     virtual void scrollBy(const WebPoint& delta) { scrollBy(WebFloatSize(delta.x, delta.y)); }
     35    virtual void scrollBy(const WebFloatSize& delta) = 0;
    3936
    4037protected:
  • trunk/Source/WebCore/page/ChromeClient.h

    r146935 r147357  
    176176
    177177    virtual void contentsSizeChanged(Frame*, const IntSize&) const = 0;
     178    virtual void deviceOrPageScaleFactorChanged() const { }
    178179    virtual void layoutUpdated(Frame*) const { }
    179180    virtual void scrollRectIntoView(const IntRect&) const { }; // Currently only Mac has a non empty implementation.
  • trunk/Source/WebCore/page/Frame.cpp

    r146961 r147357  
    10101010    if (root && root->compositor())
    10111011        root->compositor()->deviceOrPageScaleFactorChanged();
     1012
     1013    m_page->chrome()->client()->deviceOrPageScaleFactorChanged();
    10121014}
    10131015#endif
  • trunk/Source/WebKit/chromium/ChangeLog

    r147285 r147357  
     12013-04-01  Alexandre Elias  <aelias@chromium.org>
     2
     3        [chromium] Delete code behind if (!applyXYZScaleInCompositor)
     4        https://bugs.webkit.org/show_bug.cgi?id=111809
     5
     6        Reviewed by James Robinson.
     7
     8        Chromium is setting the flags applyPageScaleFactorInCompositor and
     9        applyDeviceScaleFactorInCompositor permanently to true, so any code
     10        in platform/chromium with the false setting is dead. Delete all of
     11        it.
     12
     13        I also switched FrameTestHelpers and DumpRenderTree to always turn the
     14        setting to true so that they test the code we're actually running.
     15        This exposed a number of failing tests which I added in the
     16        expectations file.
     17
     18        Note also that I made calls to setPageScaleFactor turn on
     19        force-compositing-mode to make the layout tests work, as
     20        pageScaleFactor is now ignored in non-composited mode.
     21
     22        * src/ChromeClientImpl.cpp:
     23        (WebKit::ChromeClientImpl::dispatchViewportPropertiesDidChange):
     24        * src/NonCompositedContentHost.cpp:
     25        (WebKit::NonCompositedContentHost::NonCompositedContentHost):
     26        * src/PageWidgetDelegate.cpp:
     27        (WebKit::PageWidgetDelegate::paint):
     28        * src/PageWidgetDelegate.h:
     29        * src/WebFrameImpl.cpp:
     30        (WebKit::WebFrameImpl::selectRange):
     31        (WebKit::WebFrameImpl::moveCaretSelectionTowardsWindowPoint):
     32        * src/WebPagePopupImpl.cpp:
     33        (WebKit::WebPagePopupImpl::paint):
     34        * src/WebViewImpl.cpp:
     35        (WebKit::WebViewImpl::computeScaleAndScrollForHitRect):
     36        (WebKit::WebViewImpl::scaledSize):
     37        (WebKit::WebViewImpl::resize):
     38        (WebKit::WebViewImpl::paint):
     39        (WebKit::WebViewImpl::selectionBounds):
     40        (WebKit::WebViewImpl::computeScaleAndScrollForFocusedNode):
     41        (WebKit::WebViewImpl::clampOffsetAtScale):
     42        (WebKit::WebViewImpl::setPageScaleFactorPreservingScrollOffset):
     43        (WebKit::WebViewImpl::setDeviceScaleFactor):
     44        (WebKit::WebViewImpl::contentsSize):
     45        (WebKit::WebViewImpl::setIsAcceleratedCompositingActive):
     46        (WebKit::WebViewImpl::applyScrollAndScale):
     47        * src/WebViewImpl.h:
     48        * tests/FrameTestHelpers.cpp:
     49        (WebKit::FrameTestHelpers::createWebView):
     50        * tests/WebFrameTest.cpp:
     51        * tests/WebInputEventConversionTest.cpp:
     52        (WebCore::TEST):
     53
    1542013-03-30  Adam Barth  <abarth@webkit.org>
    255
  • trunk/Source/WebKit/chromium/src/ChromeClientImpl.cpp

    r146935 r147357  
    574574}
    575575
     576void ChromeClientImpl::deviceOrPageScaleFactorChanged() const
     577{
     578    m_webView->deviceOrPageScaleFactorChanged();
     579}
     580
    576581void ChromeClientImpl::layoutUpdated(Frame* frame) const
    577582{
     
    626631        return;
    627632
    628     IntSize viewportSize = m_webView->dipSize();
     633    IntSize viewportSize = m_webView->size();
    629634    float deviceScaleFactor = m_webView->client()->screenInfo().deviceScaleFactor;
    630635
     
    642647    if (arguments.zoom == ViewportArguments::ValueAuto && !m_webView->settingsImpl()->initializeAtMinimumPageScale())
    643648        computed.initialScale = 1.0f;
    644     if (!m_webView->settingsImpl()->applyDeviceScaleFactorInCompositor())
    645         computed.initialScale *= deviceScaleFactor;
    646649
    647650    m_webView->setInitialPageScaleFactor(computed.initialScale);
  • trunk/Source/WebKit/chromium/src/ChromeClientImpl.h

    r146935 r147357  
    128128    virtual PlatformPageClient platformPageClient() const { return PlatformPageClient(this); }
    129129    virtual void contentsSizeChanged(WebCore::Frame*, const WebCore::IntSize&) const;
     130    virtual void deviceOrPageScaleFactorChanged() const;
    130131    virtual void layoutUpdated(WebCore::Frame*) const;
    131132    virtual void scrollRectIntoView(
  • trunk/Source/WebKit/chromium/src/PageWidgetDelegate.cpp

    r142057 r147357  
    8282}
    8383
    84 void PageWidgetDelegate::paint(Page* page, PageOverlayList* overlays, WebCanvas* canvas, const WebRect& rect, CanvasBackground background, bool applyDeviceScale)
     84void PageWidgetDelegate::paint(Page* page, PageOverlayList* overlays, WebCanvas* canvas, const WebRect& rect, CanvasBackground background)
    8585{
    8686    if (rect.isEmpty())
     
    8989    GraphicsContext& gc = builder.context();
    9090    gc.setShouldSmoothFonts(background == Opaque);
    91     if (applyDeviceScale) {
    92         gc.applyDeviceScaleFactor(page->deviceScaleFactor());
    93         gc.platformContext()->setDeviceScaleFactor(page->deviceScaleFactor());
    94     }
     91    gc.applyDeviceScaleFactor(page->deviceScaleFactor());
     92    gc.platformContext()->setDeviceScaleFactor(page->deviceScaleFactor());
    9593    IntRect dirtyRect(rect);
    9694    gc.save();
  • trunk/Source/WebKit/chromium/src/PageWidgetDelegate.h

    r135459 r147357  
    8080    static void animate(WebCore::Page*, double monotonicFrameBeginTime);
    8181    static void layout(WebCore::Page*);
    82     static void paint(WebCore::Page*, PageOverlayList*, WebCanvas*, const WebRect&, CanvasBackground, bool applyDeviceScale);
     82    static void paint(WebCore::Page*, PageOverlayList*, WebCanvas*, const WebRect&, CanvasBackground);
    8383    static bool handleInputEvent(WebCore::Page*, PageWidgetEventHandler&, const WebInputEvent&);
    8484
  • trunk/Source/WebKit/chromium/src/WebFrameImpl.cpp

    r146961 r147357  
    13631363    IntPoint unscaledBase = base;
    13641364    IntPoint unscaledExtent = extent;
    1365     if (frame()->page()->settings()->applyPageScaleFactorInCompositor()) {
    1366         unscaledExtent.scale(1 / view()->pageScaleFactor(), 1 / view()->pageScaleFactor());
    1367         unscaledBase.scale(1 / view()->pageScaleFactor(), 1 / view()->pageScaleFactor());
    1368     }
     1365    unscaledExtent.scale(1 / view()->pageScaleFactor(), 1 / view()->pageScaleFactor());
     1366    unscaledBase.scale(1 / view()->pageScaleFactor(), 1 / view()->pageScaleFactor());
    13691367    VisiblePosition basePosition = visiblePositionForWindowPoint(unscaledBase);
    13701368    VisiblePosition extentPosition = visiblePositionForWindowPoint(unscaledExtent);
     
    13831381{
    13841382    IntPoint unscaledPoint(point);
    1385     if (frame()->page()->settings()->applyPageScaleFactorInCompositor())
    1386         unscaledPoint.scale(1 / view()->pageScaleFactor(), 1 / view()->pageScaleFactor());
     1383    unscaledPoint.scale(1 / view()->pageScaleFactor(), 1 / view()->pageScaleFactor());
    13871384
    13881385    Element* editable = frame()->selection()->rootEditableElement();
  • trunk/Source/WebKit/chromium/src/WebPagePopupImpl.cpp

    r147045 r147357  
    262262{
    263263    if (!m_closing)
    264         PageWidgetDelegate::paint(m_page.get(), 0, canvas, rect, PageWidgetDelegate::Opaque, m_webView->settingsImpl()->applyDeviceScaleFactorInCompositor());
     264        PageWidgetDelegate::paint(m_page.get(), 0, canvas, rect, PageWidgetDelegate::Opaque);
    265265}
    266266
  • trunk/Source/WebKit/chromium/src/WebViewImpl.cpp

    r146961 r147357  
    12001200        // be allowed to manually pinch zoom in further if they desire.
    12011201        const float defaultScaleWhenAlreadyLegible = m_minimumPageScaleFactor * doubleTapZoomAlreadyLegibleRatio;
    1202         float legibleScale = settingsImpl()->applyDeviceScaleFactorInCompositor() ? 1 : deviceScaleFactor();
     1202        float legibleScale = 1;
    12031203#if ENABLE(TEXT_AUTOSIZING)
    12041204        if (page() && page()->settings())
     
    12101210        float defaultMargin = doubleTapZoomContentDefaultMargin;
    12111211        float minimumMargin = doubleTapZoomContentMinimumMargin;
    1212         if (!settingsImpl()->applyDeviceScaleFactorInCompositor()) {
    1213             defaultMargin *= deviceScaleFactor();
    1214             minimumMargin *= deviceScaleFactor();
    1215         }
    12161212        // We want the margins to have the same physical size, which means we
    12171213        // need to express them in post-scale size. To do that we'd need to know
     
    12241220                static_cast<int>(minimumMargin * rect.width / m_size.width));
    12251221        // Fit block to screen, respecting limits.
    1226         if (settingsImpl()->applyPageScaleFactorInCompositor())
    1227             scale = static_cast<float>(m_size.width) / rect.width;
    1228         else
    1229             scale *= static_cast<float>(m_size.width) / rect.width;
     1222        scale = static_cast<float>(m_size.width) / rect.width;
    12301223        scale = min(scale, legibleScale);
    12311224        scale = clampPageScaleFactorToLimits(scale);
     
    12501243        // though.
    12511244
     1245        float screenWidth = m_size.width / scale;
    12521246        float screenHeight = m_size.height / scale;
    1253         float screenWidth = m_size.width / scale;
    1254         if (!settingsImpl()->applyPageScaleFactorInCompositor()) {
    1255             screenHeight *= pageScaleFactor();
    1256             screenWidth *= pageScaleFactor();
    1257         }
    12581247
    12591248        // Scroll to vertically align the block.
     
    12791268    scale = clampPageScaleFactorToLimits(scale);
    12801269    scroll = mainFrameImpl()->frameView()->windowToContents(scroll);
    1281     if (!settingsImpl()->applyPageScaleFactorInCompositor()) {
    1282         float scaleDelta = scale / pageScaleFactor();
    1283         scroll = WebPoint(scroll.x * scaleDelta, scroll.y * scaleDelta);
    1284     }
    12851270    if (!isAnchor)
    12861271        scroll = clampOffsetAtScale(scroll, scale);
     
    16651650IntSize WebViewImpl::scaledSize(float pageScaleFactor) const
    16661651{
    1667     FloatSize scaledSize = dipSize();
     1652    FloatSize scaledSize = IntSize(m_size);
    16681653    scaledSize.scale(1 / pageScaleFactor);
    16691654    return expandedIntSize(scaledSize);
     
    17241709        float fixedLayoutWidthRatio = !oldFixedLayoutWidth ? 1 : fixedLayoutSize().width / (float) oldFixedLayoutWidth;
    17251710        float scaleMultiplier = viewportWidthRatio / fixedLayoutWidthRatio;
    1726         if (scaleMultiplier != 1) {
    1727             IntSize scrollOffsetAtNewScale = oldScrollOffset;
    1728             if (!settingsImpl()->applyPageScaleFactorInCompositor())
    1729                 scrollOffsetAtNewScale.scale(scaleMultiplier);
    1730             setPageScaleFactor(oldPageScaleFactor * scaleMultiplier, IntPoint(scrollOffsetAtNewScale));
    1731         }
     1711        if (scaleMultiplier != 1)
     1712            setPageScaleFactor(oldPageScaleFactor * scaleMultiplier, WebPoint(oldScrollOffset.width(), oldScrollOffset.height()));
    17321713    }
    17331714#endif
     
    18591840void WebViewImpl::enterForceCompositingMode(bool enter)
    18601841{
     1842    if (page()->settings()->forceCompositingMode() == enter)
     1843        return;
     1844
    18611845    TRACE_EVENT1("webkit", "WebViewImpl::enterForceCompositingMode", "enter", enter);
    18621846    settingsImpl()->setForceCompositingMode(enter);
     
    19201904
    19211905        double paintStart = currentTime();
    1922         PageWidgetDelegate::paint(m_page.get(), pageOverlays(), canvas, rect, isTransparent() ? PageWidgetDelegate::Translucent : PageWidgetDelegate::Opaque, m_webSettings->applyDeviceScaleFactorInCompositor());
     1906        PageWidgetDelegate::paint(m_page.get(), pageOverlays(), canvas, rect, isTransparent() ? PageWidgetDelegate::Translucent : PageWidgetDelegate::Opaque);
    19231907        double paintEnd = currentTime();
    19241908        double pixelsPerSec = (rect.width * rect.height) / (paintEnd - paintStart);
     
    23862370    IntRect scaledAnchor(frame->view()->contentsToWindow(anchor));
    23872371    IntRect scaledFocus(frame->view()->contentsToWindow(focus));
    2388     if (m_webSettings->applyPageScaleFactorInCompositor()) {
    2389         scaledAnchor.scale(pageScaleFactor());
    2390         scaledFocus.scale(pageScaleFactor());
    2391     }
     2372    scaledAnchor.scale(pageScaleFactor());
     2373    scaledFocus.scale(pageScaleFactor());
    23922374    anchor = scaledAnchor;
    23932375    focus = scaledFocus;
     
    27932775    WebRect caret, unusedEnd;
    27942776    selectionBounds(caret, unusedEnd);
    2795     if (settingsImpl()->applyPageScaleFactorInCompositor()) {
    2796         IntRect unscaledCaret = caret;
    2797         unscaledCaret.scale(1 / pageScaleFactor());
    2798         caret = unscaledCaret;
    2799     }
     2777    IntRect unscaledCaret = caret;
     2778    unscaledCaret.scale(1 / pageScaleFactor());
     2779    caret = unscaledCaret;
    28002780
    28012781    // Pick a scale which is reasonably readable. This is the scale at which
    28022782    // the caret height will become minReadableCaretHeight (adjusted for dpi
    28032783    // and font scale factor).
    2804     float targetScale = settingsImpl()->applyDeviceScaleFactorInCompositor() ? 1 : deviceScaleFactor();
     2784    float targetScale = 1;
    28052785#if ENABLE(TEXT_AUTOSIZING)
    28062786    if (page() && page()->settings())
    28072787        targetScale *= page()->settings()->textAutosizingFontScaleFactor();
    28082788#endif
    2809     const float caretHeight = settingsImpl()->applyPageScaleFactorInCompositor() ? caret.height : caret.height / pageScaleFactor();
    2810     newScale = clampPageScaleFactorToLimits(minReadableCaretHeight * targetScale / caretHeight);
     2789    newScale = clampPageScaleFactorToLimits(minReadableCaretHeight * targetScale / caret.height);
    28112790    const float deltaScale = newScale / pageScaleFactor();
    28122791
     
    28172796    caretInDocumentCoordinates.move(mainFrame()->scrollOffset());
    28182797
    2819     int viewWidth = m_size.width;
    2820     int viewHeight = m_size.height;
    2821     if (settingsImpl()->applyPageScaleFactorInCompositor()) {
    2822         viewWidth /= newScale;
    2823         viewHeight /= newScale;
    2824     } else {
    2825         textboxRectInDocumentCoordinates.scale(deltaScale);
    2826         caretInDocumentCoordinates.scale(deltaScale);
    2827     }
     2798    int viewWidth = m_size.width / newScale;
     2799    int viewHeight = m_size.height / newScale;
    28282800
    28292801    if (textboxRectInDocumentCoordinates.width() <= viewWidth) {
     
    29542926{
    29552927    IntPoint clampedOffset = offset;
    2956     if (!m_page->settings()->applyPageScaleFactorInCompositor()) {
    2957         // This is the scaled content size. We need to convert it to the new scale factor.
    2958         WebSize contentSize = contentsSize();
    2959         int docWidthAtNewScale = contentSize.width * scale;
    2960         int docHeightAtNewScale = contentSize.height * scale;
    2961         int viewWidth = m_size.width;
    2962         int viewHeight = m_size.height;
    2963 
    2964         // Enforce the maximum and minimum scroll positions at the new scale.
    2965         clampedOffset = clampedOffset.shrunkTo(IntPoint(docWidthAtNewScale - viewWidth, docHeightAtNewScale - viewHeight));
    2966         clampedOffset.clampNegativeToZero();
    2967     } else {
    2968         clampedOffset = clampedOffset.shrunkTo(IntPoint(contentsSize() - scaledSize(scale)));
    2969         clampedOffset.clampNegativeToZero();
    2970     }
     2928    clampedOffset = clampedOffset.shrunkTo(IntPoint(contentsSize() - scaledSize(scale)));
     2929    clampedOffset.clampNegativeToZero();
    29712930
    29722931    return clampedOffset;
     
    29782937
    29792938    IntPoint scrollOffset(mainFrame()->scrollOffset().width, mainFrame()->scrollOffset().height);
    2980     if (!m_page->settings()->applyPageScaleFactorInCompositor()) {
    2981         float deltaScale = scaleFactor / pageScaleFactor();
    2982         scrollOffset.scale(deltaScale, deltaScale);
    2983     }
    29842939    scrollOffset = clampOffsetAtScale(scrollOffset, scaleFactor);
    29852940
     
    30132968
    30142969    m_pageScaleFactorIsSet = true;
    3015 
    3016 #if USE(ACCELERATED_COMPOSITING)
    3017     updateLayerTreeViewport();
    3018 #endif
    30192970}
    30202971
     
    30342985    page()->setDeviceScaleFactor(scaleFactor);
    30352986
    3036     if (m_layerTreeView && m_webSettings->applyDeviceScaleFactorInCompositor())
     2987    if (m_layerTreeView)
    30372988        m_layerTreeView->setDeviceScaleFactor(scaleFactor);
    30382989}
     
    31153066IntSize WebViewImpl::contentsSize() const
    31163067{
    3117     Frame* frame = page()->mainFrame();
    3118     RenderView* root = frame->contentRenderer();
     3068    RenderView* root = page()->mainFrame()->contentRenderer();
    31193069    if (!root)
    31203070        return IntSize();
    3121 
    3122     // If page scale is not applied by compositor, then the CSS transform will
    3123     // scale by an arbitrary amount. Return the unscaled contents size in this
    3124     // case.
    3125     if (!m_page->settings()->applyPageScaleFactorInCompositor())
    3126         return root->unscaledDocumentRect().size();
    3127 
    31283071    return root->documentRect().size();
    31293072}
     
    32533196
    32543197    frame->view()->setFixedLayoutSize(layoutSize);
    3255 }
    3256 
    3257 WebCore::IntSize WebViewImpl::dipSize() const
    3258 {
    3259     IntSize dipSize = m_size;
    3260     if (!m_webSettings->applyDeviceScaleFactorInCompositor())
    3261         dipSize.scale(1 / m_client->screenInfo().deviceScaleFactor);
    3262     return dipSize;
    32633198}
    32643199
     
    38243759}
    38253760
     3761void WebViewImpl::deviceOrPageScaleFactorChanged()
     3762{
     3763    if (pageScaleFactor() && pageScaleFactor() != 1)
     3764        enterForceCompositingMode(true);
     3765#if USE(ACCELERATED_COMPOSITING)
     3766    updateLayerTreeViewport();
     3767#endif
     3768}
     3769
    38263770bool WebViewImpl::useExternalPopupMenus()
    38273771{
     
    41434087        if (m_layerTreeView) {
    41444088            m_layerTreeView->setRootLayer(*m_rootLayer);
    4145             if (m_webSettings->applyDeviceScaleFactorInCompositor() && page()->deviceScaleFactor() != 1)
    4146                 setDeviceScaleFactor(page()->deviceScaleFactor());
    41474089
    41484090            bool visible = page()->visibilityState() == PageVisibilityStateVisible;
    41494091            m_layerTreeView->setVisible(visible);
     4092            m_layerTreeView->setDeviceScaleFactor(page()->deviceScaleFactor());
    41504093            m_layerTreeView->setPageScaleFactorAndLimits(pageScaleFactor(), m_minimumPageScaleFactor, m_maximumPageScaleFactor);
    41514094            m_layerTreeView->setHasTransparentBackground(isTransparent());
     
    42134156
    42144157        WebPoint scrollPoint(scrollOffset.width, scrollOffset.height);
    4215         if (!m_page->settings()->applyPageScaleFactorInCompositor()) {
    4216             // The old scroll offset (and passed-in delta) are in the old
    4217             // coordinate space, so we first need to multiply them by the page
    4218             // scale delta.
    4219             scrollPoint.x = scrollPoint.x * pageScaleDelta;
    4220             scrollPoint.y = scrollPoint.y * pageScaleDelta;
    4221         }
    4222 
    42234158        setPageScaleFactor(pageScaleFactor() * pageScaleDelta, scrollPoint);
    42244159        m_doubleTapZoomPending = false;
  • trunk/Source/WebKit/chromium/src/WebViewImpl.h

    r146091 r147357  
    420420
    421421    void didChangeContentsSize();
     422    void deviceOrPageScaleFactorChanged();
    422423
    423424    // Returns true if popup menus should be rendered by the browser, false if
     
    445446    }
    446447
    447     WebCore::IntSize dipSize() const;
    448448    WebCore::IntSize scaledSize(float) const;
    449449
  • trunk/Source/WebKit/chromium/tests/FrameTestHelpers.cpp

    r142422 r147357  
    8484    webView->settings()->setJavaScriptEnabled(enableJavascript);
    8585    webView->settings()->setDeviceSupportsMouse(false);
     86    webView->settings()->setApplyPageScaleFactorInCompositor(true);
     87    webView->settings()->setApplyDeviceScaleFactorInCompositor(true);
     88    webView->settings()->setForceCompositingMode(true);
    8689    webView->initializeMainFrame(webFrameClient);
    8790
  • trunk/Source/WebKit/chromium/tests/WebFrameTest.cpp

    r146091 r147357  
    265265    // only becomes available after the load begins.
    266266    m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client);
    267     m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);
    268     m_webView->settings()->setApplyPageScaleFactorInCompositor(true);
    269267    m_webView->enableFixedLayoutMode(true);
    270268    m_webView->settings()->setViewportEnabled(true);
     
    295293    m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client);
    296294
    297     m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);
    298     m_webView->settings()->setApplyPageScaleFactorInCompositor(true);
    299295    m_webView->settings()->setViewportEnabled(true);
    300296    m_webView->enableFixedLayoutMode(true);
     
    326322    // only becomes available after the load begins.
    327323    m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client);
    328     m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);
    329     m_webView->settings()->setApplyPageScaleFactorInCompositor(true);
    330324    m_webView->enableFixedLayoutMode(true);
    331325    m_webView->settings()->setViewportEnabled(true);
     
    363357
    364358    m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "viewport-auto-initial-scale.html", true, 0, &client);
    365     m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);
    366     m_webView->settings()->setApplyPageScaleFactorInCompositor(true);
    367359    m_webView->enableFixedLayoutMode(true);
    368360    m_webView->settings()->setViewportEnabled(true);
     
    384376
    385377    m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "viewport-2x-initial-scale.html", true, 0, &client);
    386     m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);
    387     m_webView->settings()->setApplyPageScaleFactorInCompositor(true);
    388378    m_webView->enableFixedLayoutMode(true);
    389379    m_webView->settings()->setViewportEnabled(true);
     
    404394
    405395    m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client);
    406     m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);
    407     m_webView->settings()->setApplyPageScaleFactorInCompositor(true);
    408396    m_webView->setInitialPageScaleOverride(enforcedPageScalePactor);
    409397
     
    441429
    442430    m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "viewport-auto-initial-scale.html", true, 0, &client);
    443     m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);
    444     m_webView->settings()->setApplyPageScaleFactorInCompositor(true);
    445431    m_webView->enableFixedLayoutMode(true);
    446432    m_webView->settings()->setViewportEnabled(true);
     
    463449
    464450    m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "viewport-2x-initial-scale.html", true, 0, &client);
    465     m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);
    466     m_webView->settings()->setApplyPageScaleFactorInCompositor(true);
    467451    m_webView->enableFixedLayoutMode(true);
    468452    m_webView->settings()->setViewportEnabled(true);
     
    499483
    500484    m_webView = static_cast<WebViewImpl*>(FrameTestHelpers::createWebViewAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client));
    501     m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);
    502     m_webView->settings()->setApplyPageScaleFactorInCompositor(true);
    503485    m_webView->enableFixedLayoutMode(true);
    504486    m_webView->settings()->setViewportEnabled(true);
     
    523505
    524506    m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client);
    525     m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);
    526     m_webView->settings()->setApplyPageScaleFactorInCompositor(true);
    527507    m_webView->enableFixedLayoutMode(true);
    528508    m_webView->settings()->setViewportEnabled(true);
     
    548528
    549529    m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client);
    550     m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);
    551     m_webView->settings()->setApplyPageScaleFactorInCompositor(true);
    552530    m_webView->enableFixedLayoutMode(true);
    553531    m_webView->settings()->setViewportEnabled(true);
     
    584562
    585563    m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client);
    586     m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);
    587     m_webView->settings()->setApplyPageScaleFactorInCompositor(true);
    588564    m_webView->enableFixedLayoutMode(true);
    589565    m_webView->settings()->setViewportEnabled(true);
     
    610586
    611587    m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client);
    612     m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);
    613     m_webView->settings()->setApplyPageScaleFactorInCompositor(true);
    614588    m_webView->enableFixedLayoutMode(true);
    615589    m_webView->settings()->setViewportEnabled(true);
     
    653627
    654628    m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "no_scale_for_you.html", true, 0, &client);
    655     m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);
    656     m_webView->settings()->setApplyPageScaleFactorInCompositor(true);
    657629    m_webView->enableFixedLayoutMode(true);
    658630    m_webView->settings()->setViewportEnabled(true);
     
    682654    int viewportHeight = 1280 / deviceScaleFactor;
    683655    m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "get_scale_for_auto_zoom_into_div_test.html"); //
    684     m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);
    685     m_webView->settings()->setApplyPageScaleFactorInCompositor(true);
    686656    m_webView->setDeviceScaleFactor(deviceScaleFactor);
    687657    m_webView->setPageScaleFactorLimits(0.01f, 4);
     
    751721    float doubleTapZoomAlreadyLegibleRatio = 1.2f;
    752722    m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "get_multiple_divs_for_auto_zoom_test.html");
    753     m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);
    754     m_webView->settings()->setApplyPageScaleFactorInCompositor(true);
    755723    m_webView->enableFixedLayoutMode(true);
    756724    m_webView->resize(WebSize(viewportWidth, viewportHeight));
     
    802770    float doubleTapZoomAlreadyLegibleRatio = 1.2f;
    803771    m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "get_scale_bounds_check_for_auto_zoom_test.html");
    804     m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);
    805     m_webView->settings()->setApplyPageScaleFactorInCompositor(true);
    806772    m_webView->enableFixedLayoutMode(true);
    807773    m_webView->resize(WebSize(viewportWidth, viewportHeight));
     
    868834    float textAutosizingFontScaleFactor = 1.13f;
    869835    m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "get_scale_bounds_check_for_auto_zoom_test.html");
    870     m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);
    871     m_webView->settings()->setApplyPageScaleFactorInCompositor(true);
    872836    m_webView->enableFixedLayoutMode(true);
    873837    m_webView->resize(WebSize(viewportWidth, viewportHeight));
     
    950914    float minReadableCaretHeight = 18.0f;
    951915    m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "get_scale_for_zoom_into_editable_test.html");
    952     m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);
    953     m_webView->settings()->setApplyPageScaleFactorInCompositor(true);
    954916    m_webView->enableFixedLayoutMode(true);
    955917    m_webView->resize(WebSize(viewportWidth, viewportHeight));
     
    20742036    // only becomes available after the load begins.
    20752037    m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + htmlFile, true, 0, &client);
    2076     m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);
    2077     m_webView->settings()->setApplyPageScaleFactorInCompositor(true);
    20782038    m_webView->resize(WebSize(1000, 1000));
    20792039    m_webView->layout();
     
    21232083    // only becomes available after the load begins.
    21242084    m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "disambiguation_popup_no_container.html", true, 0, &client);
    2125     m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);
    2126     m_webView->settings()->setApplyPageScaleFactorInCompositor(true);
    21272085    m_webView->resize(WebSize(1000, 1000));
    21282086    m_webView->layout();
     
    21462104    // only becomes available after the load begins.
    21472105    m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + htmlFile, true, 0, &client);
    2148     m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);
    2149     m_webView->settings()->setApplyPageScaleFactorInCompositor(true);
    21502106    m_webView->resize(WebSize(1000, 1000));
    21512107    m_webView->layout();
     
    21882144    // only becomes available after the load begins.
    21892145    m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + htmlFile, true, 0, &client);
    2190     m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);
    2191     m_webView->settings()->setApplyPageScaleFactorInCompositor(true);
    21922146    m_webView->resize(WebSize(viewportWidth, viewportHeight));
    21932147    m_webView->layout();
     
    22212175    // only becomes available after the load begins.
    22222176    m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "disambiguation_popup_page_scale.html", true, 0, &client);
    2223     m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);
    2224     m_webView->settings()->setApplyPageScaleFactorInCompositor(true);
    22252177    m_webView->resize(WebSize(1000, 1000));
    22262178    m_webView->layout();
  • trunk/Source/WebKit/chromium/tests/WebInputEventConversionTest.cpp

    r143032 r147357  
    9898    URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(baseURL.c_str()), WebString::fromUTF8("fixed_layout.html"));
    9999    WebViewImpl* webViewImpl = static_cast<WebViewImpl*>(FrameTestHelpers::createWebViewAndLoad(baseURL + fileName, true));
    100     webViewImpl->settings()->setApplyDeviceScaleFactorInCompositor(true);
    101     webViewImpl->settings()->setApplyPageScaleFactorInCompositor(true);
    102100    webViewImpl->enableFixedLayoutMode(true);
    103101    webViewImpl->settings()->setViewportEnabled(true);
  • trunk/Tools/DumpRenderTree/chromium/TestRunner/src/WebPreferences.cpp

    r146351 r147357  
    215215    settings->setPasswordEchoEnabled(false);
    216216    settings->setApplyDeviceScaleFactorInCompositor(true);
     217    settings->setApplyPageScaleFactorInCompositor(true);
    217218    settings->setSmartInsertDeleteEnabled(true);
    218219#ifdef WIN32
Note: See TracChangeset for help on using the changeset viewer.