Changeset 147357 in webkit
- Timestamp:
- Apr 1, 2013 1:48:52 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/platform/chromium/TestExpectations
r147347 r147357 3621 3621 webkit.org/b/106858 [ Mac Debug ] scrollingcoordinator/non-fast-scrollable-region-transformed-iframe.html [ ImageOnlyFailure Crash ] 3622 3622 webkit.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 ]3625 3623 3626 3624 # This is won't fix, as the debug and release versions differ. … … 3680 3678 webkit.org/b/110739 [ Release MountainLion ] fast/regions/shape-inside/shape-inside-on-regions.html [ ImageOnlyFailure ] 3681 3679 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 3681 crbug.com/225184 compositing/geometry/fixed-position-composited-page-scale.html [ ImageOnlyFailure ] 3682 crbug.com/225184 compositing/geometry/fixed-position-iframe-composited-page-scale.html [ ImageOnlyFailure ] 3683 crbug.com/225184 compositing/repaint/page-scale-repaint.html [ ImageOnlyFailure ] 3684 crbug.com/225184 platform/chromium/virtual/gpu/compositedscrolling/overflow/overflow-scaled-descendant-overlapping.html [ ImageOnlyFailure ] 3685 crbug.com/225184 platform/chromium/virtual/softwarecompositing/geometry/fixed-position-composited-page-scale.html [ ImageOnlyFailure ] 3686 crbug.com/225184 platform/chromium/virtual/softwarecompositing/geometry/fixed-position-iframe-composited-page-scale.html [ ImageOnlyFailure ] 3687 crbug.com/225184 platform/chromium/virtual/softwarecompositing/geometry/fixed-position-composited-page-scale-smaller-than-viewport.html [ ImageOnlyFailure ] 3688 crbug.com/225184 platform/chromium/virtual/softwarecompositing/overflow/overflow-scaled-descendant-overlapping.html [ ImageOnlyFailure ] 3689 crbug.com/225184 platform/chromium/virtual/softwarecompositing/repaint/page-scale-repaint.html [ ImageOnlyFailure ] 3690 crbug.com/225184 platform/chromium/virtual/softwarecompositing/layer-creation/fixed-position-out-of-view-scaled-scroll.html [ Failure ] 3691 crbug.com/225184 platform/chromium/virtual/softwarecompositing/layer-creation/fixed-position-out-of-view-scaled.html [ Failure ] 3692 crbug.com/225184 compositing/layer-creation/fixed-position-out-of-view-scaled.html [ Failure ] 3693 crbug.com/225184 compositing/layer-creation/fixed-position-out-of-view-scaled-scroll.html [ Failure ] 3694 crbug.com/225184 fast/events/scale-and-scroll-iframe-body.html [ ImageOnlyFailure ] 3695 crbug.com/225184 fast/events/scale-and-scroll-iframe-window.html [ ImageOnlyFailure ] 3696 crbug.com/225184 fast/frames/frame-set-rotation-hit.html [ ImageOnlyFailure ] 3697 crbug.com/225184 fast/frames/frame-set-scaling-hit.html [ ImageOnlyFailure ] 3698 crbug.com/225184 fast/repaint/background-scaling.html [ ImageOnlyFailure ] 3699 crbug.com/225184 fast/repaint/scale-page-shrink.html [ ImageOnlyFailure ] 3700 crbug.com/225184 platform/chromium/fast/repaint/relayout-fixed-position-after-scale.html [ ImageOnlyFailure ] 3701 crbug.com/225184 fast/events/scale-and-scroll-body.html [ Failure ] 3702 crbug.com/225184 fast/events/scroll-in-scaled-page-with-overflow-hidden.html [ Failure ] 3703 crbug.com/225184 inspector/elements/highlight-node-scaled.html [ Failure ] 3704 crbug.com/225184 scrollingcoordinator/non-fast-scrollable-region-scaled-iframe.html [ Failure ] 3705 crbug.com/225184 svg/as-image/image-respects-pageScaleFactor.html [ ImageOnlyFailure ] 3694 3706 3695 3707 # Pixel tests for RTL iframe scrollbar is erroneous. Cannot observe on actual browser. -
trunk/Source/Platform/chromium/public/WebGestureCurveTarget.h
r144856 r147357 33 33 class WebGestureCurveTarget { 34 34 public: 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; 39 36 40 37 protected: -
trunk/Source/WebCore/page/ChromeClient.h
r146935 r147357 176 176 177 177 virtual void contentsSizeChanged(Frame*, const IntSize&) const = 0; 178 virtual void deviceOrPageScaleFactorChanged() const { } 178 179 virtual void layoutUpdated(Frame*) const { } 179 180 virtual void scrollRectIntoView(const IntRect&) const { }; // Currently only Mac has a non empty implementation. -
trunk/Source/WebCore/page/Frame.cpp
r146961 r147357 1010 1010 if (root && root->compositor()) 1011 1011 root->compositor()->deviceOrPageScaleFactorChanged(); 1012 1013 m_page->chrome()->client()->deviceOrPageScaleFactorChanged(); 1012 1014 } 1013 1015 #endif -
trunk/Source/WebKit/chromium/ChangeLog
r147285 r147357 1 2013-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 1 54 2013-03-30 Adam Barth <abarth@webkit.org> 2 55 -
trunk/Source/WebKit/chromium/src/ChromeClientImpl.cpp
r146935 r147357 574 574 } 575 575 576 void ChromeClientImpl::deviceOrPageScaleFactorChanged() const 577 { 578 m_webView->deviceOrPageScaleFactorChanged(); 579 } 580 576 581 void ChromeClientImpl::layoutUpdated(Frame* frame) const 577 582 { … … 626 631 return; 627 632 628 IntSize viewportSize = m_webView-> dipSize();633 IntSize viewportSize = m_webView->size(); 629 634 float deviceScaleFactor = m_webView->client()->screenInfo().deviceScaleFactor; 630 635 … … 642 647 if (arguments.zoom == ViewportArguments::ValueAuto && !m_webView->settingsImpl()->initializeAtMinimumPageScale()) 643 648 computed.initialScale = 1.0f; 644 if (!m_webView->settingsImpl()->applyDeviceScaleFactorInCompositor())645 computed.initialScale *= deviceScaleFactor;646 649 647 650 m_webView->setInitialPageScaleFactor(computed.initialScale); -
trunk/Source/WebKit/chromium/src/ChromeClientImpl.h
r146935 r147357 128 128 virtual PlatformPageClient platformPageClient() const { return PlatformPageClient(this); } 129 129 virtual void contentsSizeChanged(WebCore::Frame*, const WebCore::IntSize&) const; 130 virtual void deviceOrPageScaleFactorChanged() const; 130 131 virtual void layoutUpdated(WebCore::Frame*) const; 131 132 virtual void scrollRectIntoView( -
trunk/Source/WebKit/chromium/src/PageWidgetDelegate.cpp
r142057 r147357 82 82 } 83 83 84 void PageWidgetDelegate::paint(Page* page, PageOverlayList* overlays, WebCanvas* canvas, const WebRect& rect, CanvasBackground background , bool applyDeviceScale)84 void PageWidgetDelegate::paint(Page* page, PageOverlayList* overlays, WebCanvas* canvas, const WebRect& rect, CanvasBackground background) 85 85 { 86 86 if (rect.isEmpty()) … … 89 89 GraphicsContext& gc = builder.context(); 90 90 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()); 95 93 IntRect dirtyRect(rect); 96 94 gc.save(); -
trunk/Source/WebKit/chromium/src/PageWidgetDelegate.h
r135459 r147357 80 80 static void animate(WebCore::Page*, double monotonicFrameBeginTime); 81 81 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); 83 83 static bool handleInputEvent(WebCore::Page*, PageWidgetEventHandler&, const WebInputEvent&); 84 84 -
trunk/Source/WebKit/chromium/src/WebFrameImpl.cpp
r146961 r147357 1363 1363 IntPoint unscaledBase = base; 1364 1364 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()); 1369 1367 VisiblePosition basePosition = visiblePositionForWindowPoint(unscaledBase); 1370 1368 VisiblePosition extentPosition = visiblePositionForWindowPoint(unscaledExtent); … … 1383 1381 { 1384 1382 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()); 1387 1384 1388 1385 Element* editable = frame()->selection()->rootEditableElement(); -
trunk/Source/WebKit/chromium/src/WebPagePopupImpl.cpp
r147045 r147357 262 262 { 263 263 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); 265 265 } 266 266 -
trunk/Source/WebKit/chromium/src/WebViewImpl.cpp
r146961 r147357 1200 1200 // be allowed to manually pinch zoom in further if they desire. 1201 1201 const float defaultScaleWhenAlreadyLegible = m_minimumPageScaleFactor * doubleTapZoomAlreadyLegibleRatio; 1202 float legibleScale = settingsImpl()->applyDeviceScaleFactorInCompositor() ? 1 : deviceScaleFactor();1202 float legibleScale = 1; 1203 1203 #if ENABLE(TEXT_AUTOSIZING) 1204 1204 if (page() && page()->settings()) … … 1210 1210 float defaultMargin = doubleTapZoomContentDefaultMargin; 1211 1211 float minimumMargin = doubleTapZoomContentMinimumMargin; 1212 if (!settingsImpl()->applyDeviceScaleFactorInCompositor()) {1213 defaultMargin *= deviceScaleFactor();1214 minimumMargin *= deviceScaleFactor();1215 }1216 1212 // We want the margins to have the same physical size, which means we 1217 1213 // need to express them in post-scale size. To do that we'd need to know … … 1224 1220 static_cast<int>(minimumMargin * rect.width / m_size.width)); 1225 1221 // 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; 1230 1223 scale = min(scale, legibleScale); 1231 1224 scale = clampPageScaleFactorToLimits(scale); … … 1250 1243 // though. 1251 1244 1245 float screenWidth = m_size.width / scale; 1252 1246 float screenHeight = m_size.height / scale; 1253 float screenWidth = m_size.width / scale;1254 if (!settingsImpl()->applyPageScaleFactorInCompositor()) {1255 screenHeight *= pageScaleFactor();1256 screenWidth *= pageScaleFactor();1257 }1258 1247 1259 1248 // Scroll to vertically align the block. … … 1279 1268 scale = clampPageScaleFactorToLimits(scale); 1280 1269 scroll = mainFrameImpl()->frameView()->windowToContents(scroll); 1281 if (!settingsImpl()->applyPageScaleFactorInCompositor()) {1282 float scaleDelta = scale / pageScaleFactor();1283 scroll = WebPoint(scroll.x * scaleDelta, scroll.y * scaleDelta);1284 }1285 1270 if (!isAnchor) 1286 1271 scroll = clampOffsetAtScale(scroll, scale); … … 1665 1650 IntSize WebViewImpl::scaledSize(float pageScaleFactor) const 1666 1651 { 1667 FloatSize scaledSize = dipSize();1652 FloatSize scaledSize = IntSize(m_size); 1668 1653 scaledSize.scale(1 / pageScaleFactor); 1669 1654 return expandedIntSize(scaledSize); … … 1724 1709 float fixedLayoutWidthRatio = !oldFixedLayoutWidth ? 1 : fixedLayoutSize().width / (float) oldFixedLayoutWidth; 1725 1710 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())); 1732 1713 } 1733 1714 #endif … … 1859 1840 void WebViewImpl::enterForceCompositingMode(bool enter) 1860 1841 { 1842 if (page()->settings()->forceCompositingMode() == enter) 1843 return; 1844 1861 1845 TRACE_EVENT1("webkit", "WebViewImpl::enterForceCompositingMode", "enter", enter); 1862 1846 settingsImpl()->setForceCompositingMode(enter); … … 1920 1904 1921 1905 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); 1923 1907 double paintEnd = currentTime(); 1924 1908 double pixelsPerSec = (rect.width * rect.height) / (paintEnd - paintStart); … … 2386 2370 IntRect scaledAnchor(frame->view()->contentsToWindow(anchor)); 2387 2371 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()); 2392 2374 anchor = scaledAnchor; 2393 2375 focus = scaledFocus; … … 2793 2775 WebRect caret, unusedEnd; 2794 2776 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; 2800 2780 2801 2781 // Pick a scale which is reasonably readable. This is the scale at which 2802 2782 // the caret height will become minReadableCaretHeight (adjusted for dpi 2803 2783 // and font scale factor). 2804 float targetScale = settingsImpl()->applyDeviceScaleFactorInCompositor() ? 1 : deviceScaleFactor();2784 float targetScale = 1; 2805 2785 #if ENABLE(TEXT_AUTOSIZING) 2806 2786 if (page() && page()->settings()) 2807 2787 targetScale *= page()->settings()->textAutosizingFontScaleFactor(); 2808 2788 #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); 2811 2790 const float deltaScale = newScale / pageScaleFactor(); 2812 2791 … … 2817 2796 caretInDocumentCoordinates.move(mainFrame()->scrollOffset()); 2818 2797 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; 2828 2800 2829 2801 if (textboxRectInDocumentCoordinates.width() <= viewWidth) { … … 2954 2926 { 2955 2927 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(); 2971 2930 2972 2931 return clampedOffset; … … 2978 2937 2979 2938 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 }2984 2939 scrollOffset = clampOffsetAtScale(scrollOffset, scaleFactor); 2985 2940 … … 3013 2968 3014 2969 m_pageScaleFactorIsSet = true; 3015 3016 #if USE(ACCELERATED_COMPOSITING)3017 updateLayerTreeViewport();3018 #endif3019 2970 } 3020 2971 … … 3034 2985 page()->setDeviceScaleFactor(scaleFactor); 3035 2986 3036 if (m_layerTreeView && m_webSettings->applyDeviceScaleFactorInCompositor())2987 if (m_layerTreeView) 3037 2988 m_layerTreeView->setDeviceScaleFactor(scaleFactor); 3038 2989 } … … 3115 3066 IntSize WebViewImpl::contentsSize() const 3116 3067 { 3117 Frame* frame = page()->mainFrame(); 3118 RenderView* root = frame->contentRenderer(); 3068 RenderView* root = page()->mainFrame()->contentRenderer(); 3119 3069 if (!root) 3120 3070 return IntSize(); 3121 3122 // If page scale is not applied by compositor, then the CSS transform will3123 // scale by an arbitrary amount. Return the unscaled contents size in this3124 // case.3125 if (!m_page->settings()->applyPageScaleFactorInCompositor())3126 return root->unscaledDocumentRect().size();3127 3128 3071 return root->documentRect().size(); 3129 3072 } … … 3253 3196 3254 3197 frame->view()->setFixedLayoutSize(layoutSize); 3255 }3256 3257 WebCore::IntSize WebViewImpl::dipSize() const3258 {3259 IntSize dipSize = m_size;3260 if (!m_webSettings->applyDeviceScaleFactorInCompositor())3261 dipSize.scale(1 / m_client->screenInfo().deviceScaleFactor);3262 return dipSize;3263 3198 } 3264 3199 … … 3824 3759 } 3825 3760 3761 void WebViewImpl::deviceOrPageScaleFactorChanged() 3762 { 3763 if (pageScaleFactor() && pageScaleFactor() != 1) 3764 enterForceCompositingMode(true); 3765 #if USE(ACCELERATED_COMPOSITING) 3766 updateLayerTreeViewport(); 3767 #endif 3768 } 3769 3826 3770 bool WebViewImpl::useExternalPopupMenus() 3827 3771 { … … 4143 4087 if (m_layerTreeView) { 4144 4088 m_layerTreeView->setRootLayer(*m_rootLayer); 4145 if (m_webSettings->applyDeviceScaleFactorInCompositor() && page()->deviceScaleFactor() != 1)4146 setDeviceScaleFactor(page()->deviceScaleFactor());4147 4089 4148 4090 bool visible = page()->visibilityState() == PageVisibilityStateVisible; 4149 4091 m_layerTreeView->setVisible(visible); 4092 m_layerTreeView->setDeviceScaleFactor(page()->deviceScaleFactor()); 4150 4093 m_layerTreeView->setPageScaleFactorAndLimits(pageScaleFactor(), m_minimumPageScaleFactor, m_maximumPageScaleFactor); 4151 4094 m_layerTreeView->setHasTransparentBackground(isTransparent()); … … 4213 4156 4214 4157 WebPoint scrollPoint(scrollOffset.width, scrollOffset.height); 4215 if (!m_page->settings()->applyPageScaleFactorInCompositor()) {4216 // The old scroll offset (and passed-in delta) are in the old4217 // coordinate space, so we first need to multiply them by the page4218 // scale delta.4219 scrollPoint.x = scrollPoint.x * pageScaleDelta;4220 scrollPoint.y = scrollPoint.y * pageScaleDelta;4221 }4222 4223 4158 setPageScaleFactor(pageScaleFactor() * pageScaleDelta, scrollPoint); 4224 4159 m_doubleTapZoomPending = false; -
trunk/Source/WebKit/chromium/src/WebViewImpl.h
r146091 r147357 420 420 421 421 void didChangeContentsSize(); 422 void deviceOrPageScaleFactorChanged(); 422 423 423 424 // Returns true if popup menus should be rendered by the browser, false if … … 445 446 } 446 447 447 WebCore::IntSize dipSize() const;448 448 WebCore::IntSize scaledSize(float) const; 449 449 -
trunk/Source/WebKit/chromium/tests/FrameTestHelpers.cpp
r142422 r147357 84 84 webView->settings()->setJavaScriptEnabled(enableJavascript); 85 85 webView->settings()->setDeviceSupportsMouse(false); 86 webView->settings()->setApplyPageScaleFactorInCompositor(true); 87 webView->settings()->setApplyDeviceScaleFactorInCompositor(true); 88 webView->settings()->setForceCompositingMode(true); 86 89 webView->initializeMainFrame(webFrameClient); 87 90 -
trunk/Source/WebKit/chromium/tests/WebFrameTest.cpp
r146091 r147357 265 265 // only becomes available after the load begins. 266 266 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client); 267 m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);268 m_webView->settings()->setApplyPageScaleFactorInCompositor(true);269 267 m_webView->enableFixedLayoutMode(true); 270 268 m_webView->settings()->setViewportEnabled(true); … … 295 293 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client); 296 294 297 m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);298 m_webView->settings()->setApplyPageScaleFactorInCompositor(true);299 295 m_webView->settings()->setViewportEnabled(true); 300 296 m_webView->enableFixedLayoutMode(true); … … 326 322 // only becomes available after the load begins. 327 323 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client); 328 m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);329 m_webView->settings()->setApplyPageScaleFactorInCompositor(true);330 324 m_webView->enableFixedLayoutMode(true); 331 325 m_webView->settings()->setViewportEnabled(true); … … 363 357 364 358 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);367 359 m_webView->enableFixedLayoutMode(true); 368 360 m_webView->settings()->setViewportEnabled(true); … … 384 376 385 377 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);388 378 m_webView->enableFixedLayoutMode(true); 389 379 m_webView->settings()->setViewportEnabled(true); … … 404 394 405 395 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client); 406 m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);407 m_webView->settings()->setApplyPageScaleFactorInCompositor(true);408 396 m_webView->setInitialPageScaleOverride(enforcedPageScalePactor); 409 397 … … 441 429 442 430 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);445 431 m_webView->enableFixedLayoutMode(true); 446 432 m_webView->settings()->setViewportEnabled(true); … … 463 449 464 450 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);467 451 m_webView->enableFixedLayoutMode(true); 468 452 m_webView->settings()->setViewportEnabled(true); … … 499 483 500 484 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);503 485 m_webView->enableFixedLayoutMode(true); 504 486 m_webView->settings()->setViewportEnabled(true); … … 523 505 524 506 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client); 525 m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);526 m_webView->settings()->setApplyPageScaleFactorInCompositor(true);527 507 m_webView->enableFixedLayoutMode(true); 528 508 m_webView->settings()->setViewportEnabled(true); … … 548 528 549 529 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client); 550 m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);551 m_webView->settings()->setApplyPageScaleFactorInCompositor(true);552 530 m_webView->enableFixedLayoutMode(true); 553 531 m_webView->settings()->setViewportEnabled(true); … … 584 562 585 563 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client); 586 m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);587 m_webView->settings()->setApplyPageScaleFactorInCompositor(true);588 564 m_webView->enableFixedLayoutMode(true); 589 565 m_webView->settings()->setViewportEnabled(true); … … 610 586 611 587 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client); 612 m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);613 m_webView->settings()->setApplyPageScaleFactorInCompositor(true);614 588 m_webView->enableFixedLayoutMode(true); 615 589 m_webView->settings()->setViewportEnabled(true); … … 653 627 654 628 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);657 629 m_webView->enableFixedLayoutMode(true); 658 630 m_webView->settings()->setViewportEnabled(true); … … 682 654 int viewportHeight = 1280 / deviceScaleFactor; 683 655 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);686 656 m_webView->setDeviceScaleFactor(deviceScaleFactor); 687 657 m_webView->setPageScaleFactorLimits(0.01f, 4); … … 751 721 float doubleTapZoomAlreadyLegibleRatio = 1.2f; 752 722 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);755 723 m_webView->enableFixedLayoutMode(true); 756 724 m_webView->resize(WebSize(viewportWidth, viewportHeight)); … … 802 770 float doubleTapZoomAlreadyLegibleRatio = 1.2f; 803 771 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);806 772 m_webView->enableFixedLayoutMode(true); 807 773 m_webView->resize(WebSize(viewportWidth, viewportHeight)); … … 868 834 float textAutosizingFontScaleFactor = 1.13f; 869 835 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);872 836 m_webView->enableFixedLayoutMode(true); 873 837 m_webView->resize(WebSize(viewportWidth, viewportHeight)); … … 950 914 float minReadableCaretHeight = 18.0f; 951 915 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);954 916 m_webView->enableFixedLayoutMode(true); 955 917 m_webView->resize(WebSize(viewportWidth, viewportHeight)); … … 2074 2036 // only becomes available after the load begins. 2075 2037 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + htmlFile, true, 0, &client); 2076 m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);2077 m_webView->settings()->setApplyPageScaleFactorInCompositor(true);2078 2038 m_webView->resize(WebSize(1000, 1000)); 2079 2039 m_webView->layout(); … … 2123 2083 // only becomes available after the load begins. 2124 2084 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);2127 2085 m_webView->resize(WebSize(1000, 1000)); 2128 2086 m_webView->layout(); … … 2146 2104 // only becomes available after the load begins. 2147 2105 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + htmlFile, true, 0, &client); 2148 m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);2149 m_webView->settings()->setApplyPageScaleFactorInCompositor(true);2150 2106 m_webView->resize(WebSize(1000, 1000)); 2151 2107 m_webView->layout(); … … 2188 2144 // only becomes available after the load begins. 2189 2145 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + htmlFile, true, 0, &client); 2190 m_webView->settings()->setApplyDeviceScaleFactorInCompositor(true);2191 m_webView->settings()->setApplyPageScaleFactorInCompositor(true);2192 2146 m_webView->resize(WebSize(viewportWidth, viewportHeight)); 2193 2147 m_webView->layout(); … … 2221 2175 // only becomes available after the load begins. 2222 2176 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);2225 2177 m_webView->resize(WebSize(1000, 1000)); 2226 2178 m_webView->layout(); -
trunk/Source/WebKit/chromium/tests/WebInputEventConversionTest.cpp
r143032 r147357 98 98 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(baseURL.c_str()), WebString::fromUTF8("fixed_layout.html")); 99 99 WebViewImpl* webViewImpl = static_cast<WebViewImpl*>(FrameTestHelpers::createWebViewAndLoad(baseURL + fileName, true)); 100 webViewImpl->settings()->setApplyDeviceScaleFactorInCompositor(true);101 webViewImpl->settings()->setApplyPageScaleFactorInCompositor(true);102 100 webViewImpl->enableFixedLayoutMode(true); 103 101 webViewImpl->settings()->setViewportEnabled(true); -
trunk/Tools/DumpRenderTree/chromium/TestRunner/src/WebPreferences.cpp
r146351 r147357 215 215 settings->setPasswordEchoEnabled(false); 216 216 settings->setApplyDeviceScaleFactorInCompositor(true); 217 settings->setApplyPageScaleFactorInCompositor(true); 217 218 settings->setSmartInsertDeleteEnabled(true); 218 219 #ifdef WIN32
Note: See TracChangeset
for help on using the changeset viewer.