OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2011, 2012 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 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
50 #include "AutofillPopupMenuClient.h" | 50 #include "AutofillPopupMenuClient.h" |
51 #include "BatteryClientImpl.h" | 51 #include "BatteryClientImpl.h" |
52 #include "CSSValueKeywords.h" | 52 #include "CSSValueKeywords.h" |
53 #include "CompositionUnderlineVectorBuilder.h" | 53 #include "CompositionUnderlineVectorBuilder.h" |
54 #include "ContextFeaturesClientImpl.h" | 54 #include "ContextFeaturesClientImpl.h" |
55 #include "DeviceOrientationClientProxy.h" | 55 #include "DeviceOrientationClientProxy.h" |
56 #include "GeolocationClientProxy.h" | 56 #include "GeolocationClientProxy.h" |
57 #include "GraphicsLayerFactoryChromium.h" | 57 #include "GraphicsLayerFactoryChromium.h" |
58 #include "HTMLNames.h" | 58 #include "HTMLNames.h" |
59 #include "LinkHighlight.h" | 59 #include "LinkHighlight.h" |
60 #include "NonCompositedContentHost.h" | |
61 #include "PageWidgetDelegate.h" | 60 #include "PageWidgetDelegate.h" |
62 #include "PopupContainer.h" | 61 #include "PopupContainer.h" |
63 #include "PrerendererClientImpl.h" | 62 #include "PrerendererClientImpl.h" |
64 #include "SpeechInputClientImpl.h" | 63 #include "SpeechInputClientImpl.h" |
65 #include "SpeechRecognitionClientProxy.h" | 64 #include "SpeechRecognitionClientProxy.h" |
66 #include "TextFieldDecoratorImpl.h" | 65 #include "TextFieldDecoratorImpl.h" |
67 #include "ValidationMessageClientImpl.h" | 66 #include "ValidationMessageClientImpl.h" |
68 #include "ViewportAnchor.h" | 67 #include "ViewportAnchor.h" |
69 #include "WebAccessibilityObject.h" | 68 #include "WebAccessibilityObject.h" |
70 #include "WebActiveWheelFlingParameters.h" | 69 #include "WebActiveWheelFlingParameters.h" |
(...skipping 1682 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1753 if (m_continuousPaintingEnabled) { | 1752 if (m_continuousPaintingEnabled) { |
1754 ContinuousPainter::setNeedsDisplayRecursive(m_rootGraphicsLayer, m_pageO
verlays.get()); | 1753 ContinuousPainter::setNeedsDisplayRecursive(m_rootGraphicsLayer, m_pageO
verlays.get()); |
1755 m_client->scheduleAnimation(); | 1754 m_client->scheduleAnimation(); |
1756 } | 1755 } |
1757 } | 1756 } |
1758 | 1757 |
1759 void WebViewImpl::layout() | 1758 void WebViewImpl::layout() |
1760 { | 1759 { |
1761 TRACE_EVENT0("webkit", "WebViewImpl::layout"); | 1760 TRACE_EVENT0("webkit", "WebViewImpl::layout"); |
1762 PageWidgetDelegate::layout(m_page.get()); | 1761 PageWidgetDelegate::layout(m_page.get()); |
| 1762 if (m_layerTreeView) |
| 1763 m_layerTreeView->setBackgroundColor(backgroundColor()); |
1763 | 1764 |
1764 if (m_linkHighlight) | 1765 if (m_linkHighlight) |
1765 m_linkHighlight->updateGeometry(); | 1766 m_linkHighlight->updateGeometry(); |
1766 } | 1767 } |
1767 | 1768 |
1768 void WebViewImpl::enterForceCompositingMode(bool enter) | 1769 void WebViewImpl::enterForceCompositingMode(bool enter) |
1769 { | 1770 { |
1770 if (page()->settings()->forceCompositingMode() == enter) | 1771 if (page()->settings()->forceCompositingMode() == enter) |
1771 return; | 1772 return; |
1772 | 1773 |
(...skipping 1123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2896 { | 2897 { |
2897 if (!page()) | 2898 if (!page()) |
2898 return; | 2899 return; |
2899 | 2900 |
2900 Frame* frame = page()->mainFrame(); | 2901 Frame* frame = page()->mainFrame(); |
2901 if (!frame || !frame->view()) | 2902 if (!frame || !frame->view()) |
2902 return; | 2903 return; |
2903 | 2904 |
2904 frame->view()->setUseFixedLayout(enable); | 2905 frame->view()->setUseFixedLayout(enable); |
2905 | 2906 |
2906 // Also notify the base layer, which RenderLayerCompositor does not see. | 2907 if (m_isAcceleratedCompositingActive) |
2907 if (m_nonCompositedContentHost) | |
2908 updateLayerTreeViewport(); | 2908 updateLayerTreeViewport(); |
2909 } | 2909 } |
2910 | 2910 |
2911 | 2911 |
2912 void WebViewImpl::enableAutoResizeMode(const WebSize& minSize, const WebSize& ma
xSize) | 2912 void WebViewImpl::enableAutoResizeMode(const WebSize& minSize, const WebSize& ma
xSize) |
2913 { | 2913 { |
2914 m_shouldAutoResize = true; | 2914 m_shouldAutoResize = true; |
2915 m_minAutoSize = minSize; | 2915 m_minAutoSize = minSize; |
2916 m_maxAutoSize = maxSize; | 2916 m_maxAutoSize = maxSize; |
2917 configureAutoResizeMode(); | 2917 configureAutoResizeMode(); |
(...skipping 583 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3501 { | 3501 { |
3502 // Set any existing frames to be transparent. | 3502 // Set any existing frames to be transparent. |
3503 Frame* frame = m_page->mainFrame(); | 3503 Frame* frame = m_page->mainFrame(); |
3504 while (frame) { | 3504 while (frame) { |
3505 frame->view()->setTransparent(isTransparent); | 3505 frame->view()->setTransparent(isTransparent); |
3506 frame = frame->tree()->traverseNext(); | 3506 frame = frame->tree()->traverseNext(); |
3507 } | 3507 } |
3508 | 3508 |
3509 // Future frames check this to know whether to be transparent. | 3509 // Future frames check this to know whether to be transparent. |
3510 m_isTransparent = isTransparent; | 3510 m_isTransparent = isTransparent; |
3511 | |
3512 if (m_nonCompositedContentHost) | |
3513 m_nonCompositedContentHost->setOpaque(!isTransparent); | |
3514 } | 3511 } |
3515 | 3512 |
3516 bool WebViewImpl::isTransparent() const | 3513 bool WebViewImpl::isTransparent() const |
3517 { | 3514 { |
3518 return m_isTransparent; | 3515 return m_isTransparent; |
3519 } | 3516 } |
3520 | 3517 |
3521 void WebViewImpl::setIsActive(bool active) | 3518 void WebViewImpl::setIsActive(bool active) |
3522 { | 3519 { |
3523 if (page() && page()->focusController()) | 3520 if (page() && page()->focusController()) |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3598 if (m_layerTreeView) | 3595 if (m_layerTreeView) |
3599 m_layerTreeView->didStopFlinging(); | 3596 m_layerTreeView->didStopFlinging(); |
3600 resetSavedScrollAndScaleState(); | 3597 resetSavedScrollAndScaleState(); |
3601 } | 3598 } |
3602 | 3599 |
3603 void WebViewImpl::layoutUpdated(WebFrameImpl* webframe) | 3600 void WebViewImpl::layoutUpdated(WebFrameImpl* webframe) |
3604 { | 3601 { |
3605 if (!m_client || webframe != mainFrameImpl()) | 3602 if (!m_client || webframe != mainFrameImpl()) |
3606 return; | 3603 return; |
3607 | 3604 |
| 3605 if (m_layerTreeViewCommitsDeferred) { |
| 3606 // If we finished a layout while in deferred commit mode, |
| 3607 // that means it's time to start producing frames again so un-defer. |
| 3608 if (m_layerTreeView) |
| 3609 m_layerTreeView->setDeferCommits(false); |
| 3610 m_layerTreeViewCommitsDeferred = false; |
| 3611 } |
| 3612 |
3608 if (m_shouldAutoResize && mainFrameImpl()->frame() && mainFrameImpl()->frame
()->view()) { | 3613 if (m_shouldAutoResize && mainFrameImpl()->frame() && mainFrameImpl()->frame
()->view()) { |
3609 WebSize frameSize = mainFrameImpl()->frame()->view()->frameRect().size()
; | 3614 WebSize frameSize = mainFrameImpl()->frame()->view()->frameRect().size()
; |
3610 if (frameSize != m_size) { | 3615 if (frameSize != m_size) { |
3611 m_size = frameSize; | 3616 m_size = frameSize; |
3612 m_client->didAutoResize(m_size); | 3617 m_client->didAutoResize(m_size); |
3613 sendResizeEventAndRepaint(); | 3618 sendResizeEventAndRepaint(); |
3614 } | 3619 } |
3615 } | 3620 } |
3616 | 3621 |
3617 if (m_pageScaleConstraintsSet.constraintsDirty()) | 3622 if (m_pageScaleConstraintsSet.constraintsDirty()) |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3790 } | 3795 } |
3791 | 3796 |
3792 void WebViewImpl::setRootGraphicsLayer(GraphicsLayer* layer) | 3797 void WebViewImpl::setRootGraphicsLayer(GraphicsLayer* layer) |
3793 { | 3798 { |
3794 suppressInvalidations(true); | 3799 suppressInvalidations(true); |
3795 | 3800 |
3796 m_rootGraphicsLayer = layer; | 3801 m_rootGraphicsLayer = layer; |
3797 m_rootLayer = layer ? layer->platformLayer() : 0; | 3802 m_rootLayer = layer ? layer->platformLayer() : 0; |
3798 | 3803 |
3799 setIsAcceleratedCompositingActive(layer); | 3804 setIsAcceleratedCompositingActive(layer); |
3800 if (m_nonCompositedContentHost) { | |
3801 GraphicsLayer* scrollLayer = 0; | |
3802 if (layer) { | |
3803 Document* document = page()->mainFrame()->document(); | |
3804 RenderView* renderView = document->renderView(); | |
3805 RenderLayerCompositor* compositor = renderView->compositor(); | |
3806 scrollLayer = compositor->scrollLayer(); | |
3807 } | |
3808 m_nonCompositedContentHost->setScrollLayer(scrollLayer); | |
3809 } | |
3810 | 3805 |
3811 if (m_layerTreeView) { | 3806 if (m_layerTreeView) { |
3812 if (m_rootLayer) | 3807 if (m_rootLayer) |
3813 m_layerTreeView->setRootLayer(*m_rootLayer); | 3808 m_layerTreeView->setRootLayer(*m_rootLayer); |
3814 else | 3809 else |
3815 m_layerTreeView->clearRootLayer(); | 3810 m_layerTreeView->clearRootLayer(); |
3816 } | 3811 } |
3817 | 3812 |
3818 suppressInvalidations(false); | 3813 suppressInvalidations(false); |
3819 } | 3814 } |
3820 | 3815 |
3821 void WebViewImpl::scheduleCompositingLayerSync() | 3816 void WebViewImpl::scheduleCompositingLayerSync() |
3822 { | 3817 { |
3823 m_layerTreeView->setNeedsRedraw(); | 3818 m_layerTreeView->setNeedsRedraw(); |
3824 } | 3819 } |
3825 | 3820 |
3826 void WebViewImpl::scrollRootLayerRect(const IntSize&, const IntRect&) | 3821 void WebViewImpl::scrollRootLayerRect(const IntSize&, const IntRect&) |
3827 { | 3822 { |
3828 updateLayerTreeViewport(); | 3823 updateLayerTreeViewport(); |
3829 } | 3824 } |
3830 | 3825 |
3831 void WebViewImpl::invalidateRect(const IntRect& rect) | 3826 void WebViewImpl::invalidateRect(const IntRect& rect) |
3832 { | 3827 { |
3833 if (m_layerTreeViewCommitsDeferred) { | |
3834 // If we receive an invalidation from WebKit while in deferred commit mo
de, | |
3835 // that means it's time to start producing frames again so un-defer. | |
3836 if (m_layerTreeView) | |
3837 m_layerTreeView->setDeferCommits(false); | |
3838 m_layerTreeViewCommitsDeferred = false; | |
3839 } | |
3840 if (m_isAcceleratedCompositingActive) { | 3828 if (m_isAcceleratedCompositingActive) { |
3841 ASSERT(m_layerTreeView); | 3829 ASSERT(m_layerTreeView); |
3842 | |
3843 if (!page()) | |
3844 return; | |
3845 | |
3846 FrameView* view = page()->mainFrame()->view(); | |
3847 IntRect dirtyRect = view->windowToContents(rect); | |
3848 updateLayerTreeViewport(); | 3830 updateLayerTreeViewport(); |
3849 m_nonCompositedContentHost->invalidateRect(dirtyRect); | |
3850 } else if (m_client) | 3831 } else if (m_client) |
3851 m_client->didInvalidateRect(rect); | 3832 m_client->didInvalidateRect(rect); |
3852 } | 3833 } |
3853 | 3834 |
3854 NonCompositedContentHost* WebViewImpl::nonCompositedContentHost() | |
3855 { | |
3856 return m_nonCompositedContentHost.get(); | |
3857 } | |
3858 | |
3859 void WebViewImpl::setBackgroundColor(const WebCore::Color& color) | |
3860 { | |
3861 WebCore::Color documentBackgroundColor = color.isValid() ? color : WebCore::
Color::white; | |
3862 WebColor webDocumentBackgroundColor = documentBackgroundColor.rgb(); | |
3863 m_nonCompositedContentHost->setBackgroundColor(documentBackgroundColor); | |
3864 m_layerTreeView->setBackgroundColor(webDocumentBackgroundColor); | |
3865 } | |
3866 | |
3867 WebCore::GraphicsLayerFactory* WebViewImpl::graphicsLayerFactory() const | 3835 WebCore::GraphicsLayerFactory* WebViewImpl::graphicsLayerFactory() const |
3868 { | 3836 { |
3869 return m_graphicsLayerFactory.get(); | 3837 return m_graphicsLayerFactory.get(); |
3870 } | 3838 } |
3871 | 3839 |
3872 void WebViewImpl::registerForAnimations(WebLayer* layer) | 3840 void WebViewImpl::registerForAnimations(WebLayer* layer) |
3873 { | 3841 { |
3874 if (m_layerTreeView) | 3842 if (m_layerTreeView) |
3875 m_layerTreeView->registerForAnimations(layer); | 3843 m_layerTreeView->registerForAnimations(layer); |
3876 } | 3844 } |
3877 | 3845 |
3878 WebCore::GraphicsLayer* WebViewImpl::rootGraphicsLayer() | 3846 WebCore::GraphicsLayer* WebViewImpl::rootGraphicsLayer() |
3879 { | 3847 { |
3880 return m_rootGraphicsLayer; | 3848 return m_rootGraphicsLayer; |
3881 } | 3849 } |
3882 | 3850 |
3883 void WebViewImpl::scheduleAnimation() | 3851 void WebViewImpl::scheduleAnimation() |
3884 { | 3852 { |
3885 if (isAcceleratedCompositingActive()) { | 3853 if (isAcceleratedCompositingActive()) { |
3886 if (Platform::current()->isThreadedCompositingEnabled()) { | 3854 if (Platform::current()->isThreadedCompositingEnabled()) { |
3887 ASSERT(m_layerTreeView); | 3855 ASSERT(m_layerTreeView); |
3888 m_layerTreeView->setNeedsAnimate(); | 3856 m_layerTreeView->setNeedsAnimate(); |
3889 } else | 3857 } else |
3890 m_client->scheduleAnimation(); | 3858 m_client->scheduleAnimation(); |
3891 } else | 3859 } else |
3892 m_client->scheduleAnimation(); | 3860 m_client->scheduleAnimation(); |
3893 } | 3861 } |
3894 | 3862 |
3895 void WebViewImpl::paintRootLayer(GraphicsContext& context, const IntRect& conten
tRect) | |
3896 { | |
3897 double paintStart = currentTime(); | |
3898 if (!page()) | |
3899 return; | |
3900 FrameView* view = page()->mainFrame()->view(); | |
3901 context.setUseHighResMarkers(page()->deviceScaleFactor() > 1.5f); | |
3902 view->paintContents(&context, contentRect); | |
3903 double paintEnd = currentTime(); | |
3904 double pixelsPerSec = (contentRect.width() * contentRect.height()) / (paintE
nd - paintStart); | |
3905 WebKit::Platform::current()->histogramCustomCounts("Renderer4.AccelRootPaint
DurationMS", (paintEnd - paintStart) * 1000, 0, 120, 30); | |
3906 WebKit::Platform::current()->histogramCustomCounts("Renderer4.AccelRootPaint
MegapixPerSecond", pixelsPerSec / 1000000, 10, 210, 30); | |
3907 | |
3908 setBackgroundColor(view->documentBackgroundColor()); | |
3909 } | |
3910 | |
3911 void WebViewImpl::setIsAcceleratedCompositingActive(bool active) | 3863 void WebViewImpl::setIsAcceleratedCompositingActive(bool active) |
3912 { | 3864 { |
3913 WebKit::Platform::current()->histogramEnumeration("GPU.setIsAcceleratedCompo
sitingActive", active * 2 + m_isAcceleratedCompositingActive, 4); | 3865 WebKit::Platform::current()->histogramEnumeration("GPU.setIsAcceleratedCompo
sitingActive", active * 2 + m_isAcceleratedCompositingActive, 4); |
3914 | 3866 |
3915 if (m_isAcceleratedCompositingActive == active) | 3867 if (m_isAcceleratedCompositingActive == active) |
3916 return; | 3868 return; |
3917 | 3869 |
3918 if (!active) { | 3870 if (!active) { |
3919 m_isAcceleratedCompositingActive = false; | 3871 m_isAcceleratedCompositingActive = false; |
3920 // We need to finish all GL rendering before sending didDeactivateCompos
itor() to prevent | 3872 // We need to finish all GL rendering before sending didDeactivateCompos
itor() to prevent |
(...skipping 12 matching lines...) Expand all Loading... |
3933 m_layerTreeViewCommitsDeferred = true; | 3885 m_layerTreeViewCommitsDeferred = true; |
3934 } | 3886 } |
3935 } else if (m_layerTreeView) { | 3887 } else if (m_layerTreeView) { |
3936 m_isAcceleratedCompositingActive = true; | 3888 m_isAcceleratedCompositingActive = true; |
3937 updateLayerTreeViewport(); | 3889 updateLayerTreeViewport(); |
3938 | 3890 |
3939 m_client->didActivateCompositor(0); | 3891 m_client->didActivateCompositor(0); |
3940 } else { | 3892 } else { |
3941 TRACE_EVENT0("webkit", "WebViewImpl::setIsAcceleratedCompositingActive(t
rue)"); | 3893 TRACE_EVENT0("webkit", "WebViewImpl::setIsAcceleratedCompositingActive(t
rue)"); |
3942 | 3894 |
3943 m_nonCompositedContentHost = NonCompositedContentHost::create(this, grap
hicsLayerFactory()); | |
3944 m_nonCompositedContentHost->setShowDebugBorders(page()->settings()->show
DebugBorders()); | |
3945 m_nonCompositedContentHost->setOpaque(!isTransparent()); | |
3946 | |
3947 m_client->initializeLayerTreeView(); | 3895 m_client->initializeLayerTreeView(); |
3948 m_layerTreeView = m_client->layerTreeView(); | 3896 m_layerTreeView = m_client->layerTreeView(); |
3949 if (m_layerTreeView) { | 3897 if (m_layerTreeView) { |
3950 m_layerTreeView->setRootLayer(*m_rootLayer); | 3898 m_layerTreeView->setRootLayer(*m_rootLayer); |
3951 | 3899 |
3952 bool visible = page()->visibilityState() == PageVisibilityStateVisib
le; | 3900 bool visible = page()->visibilityState() == PageVisibilityStateVisib
le; |
3953 m_layerTreeView->setVisible(visible); | 3901 m_layerTreeView->setVisible(visible); |
3954 m_layerTreeView->setDeviceScaleFactor(page()->deviceScaleFactor()); | 3902 m_layerTreeView->setDeviceScaleFactor(page()->deviceScaleFactor()); |
3955 m_layerTreeView->setPageScaleFactorAndLimits(pageScaleFactor(), mini
mumPageScaleFactor(), maximumPageScaleFactor()); | 3903 m_layerTreeView->setPageScaleFactorAndLimits(pageScaleFactor(), mini
mumPageScaleFactor(), maximumPageScaleFactor()); |
| 3904 m_layerTreeView->setBackgroundColor(backgroundColor()); |
3956 m_layerTreeView->setHasTransparentBackground(isTransparent()); | 3905 m_layerTreeView->setHasTransparentBackground(isTransparent()); |
3957 updateLayerTreeViewport(); | 3906 updateLayerTreeViewport(); |
3958 m_client->didActivateCompositor(0); | 3907 m_client->didActivateCompositor(0); |
3959 m_isAcceleratedCompositingActive = true; | 3908 m_isAcceleratedCompositingActive = true; |
3960 m_compositorCreationFailed = false; | 3909 m_compositorCreationFailed = false; |
3961 if (m_pageOverlays) | 3910 if (m_pageOverlays) |
3962 m_pageOverlays->update(); | 3911 m_pageOverlays->update(); |
3963 m_layerTreeView->setShowFPSCounter(m_showFPSCounter); | 3912 m_layerTreeView->setShowFPSCounter(m_showFPSCounter); |
3964 m_layerTreeView->setShowPaintRects(m_showPaintRects); | 3913 m_layerTreeView->setShowPaintRects(m_showPaintRects); |
3965 m_layerTreeView->setShowDebugBorders(m_showDebugBorders); | 3914 m_layerTreeView->setShowDebugBorders(m_showDebugBorders); |
3966 m_layerTreeView->setContinuousPaintingEnabled(m_continuousPaintingEn
abled); | 3915 m_layerTreeView->setContinuousPaintingEnabled(m_continuousPaintingEn
abled); |
3967 } else { | 3916 } else { |
3968 m_nonCompositedContentHost.clear(); | |
3969 m_isAcceleratedCompositingActive = false; | 3917 m_isAcceleratedCompositingActive = false; |
3970 m_client->didDeactivateCompositor(); | 3918 m_client->didDeactivateCompositor(); |
3971 m_compositorCreationFailed = true; | 3919 m_compositorCreationFailed = true; |
3972 } | 3920 } |
3973 } | 3921 } |
3974 if (page()) | 3922 if (page()) |
3975 page()->mainFrame()->view()->setClipsRepaints(!m_isAcceleratedCompositin
gActive); | 3923 page()->mainFrame()->view()->setClipsRepaints(!m_isAcceleratedCompositin
gActive); |
3976 } | 3924 } |
3977 | 3925 |
3978 void WebViewImpl::updateMainFrameScrollPosition(const IntPoint& scrollPosition,
bool programmaticScroll) | 3926 void WebViewImpl::updateMainFrameScrollPosition(const IntPoint& scrollPosition,
bool programmaticScroll) |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4022 | 3970 |
4023 // Force a style recalc to remove all the composited layers. | 3971 // Force a style recalc to remove all the composited layers. |
4024 m_page->mainFrame()->document()->scheduleForcedStyleRecalc(); | 3972 m_page->mainFrame()->document()->scheduleForcedStyleRecalc(); |
4025 | 3973 |
4026 if (m_pageOverlays) | 3974 if (m_pageOverlays) |
4027 m_pageOverlays->update(); | 3975 m_pageOverlays->update(); |
4028 } | 3976 } |
4029 | 3977 |
4030 void WebViewImpl::updateLayerTreeViewport() | 3978 void WebViewImpl::updateLayerTreeViewport() |
4031 { | 3979 { |
4032 if (!page() || !m_nonCompositedContentHost || !m_layerTreeView) | 3980 if (!page() || !m_layerTreeView) |
4033 return; | 3981 return; |
4034 | 3982 |
4035 FrameView* view = page()->mainFrame()->view(); | |
4036 m_nonCompositedContentHost->setViewport(m_size, view->contentsSize(), view->
scrollPosition(), view->scrollOrigin()); | |
4037 m_layerTreeView->setPageScaleFactorAndLimits(pageScaleFactor(), minimumPageS
caleFactor(), maximumPageScaleFactor()); | 3983 m_layerTreeView->setPageScaleFactorAndLimits(pageScaleFactor(), minimumPageS
caleFactor(), maximumPageScaleFactor()); |
4038 } | 3984 } |
4039 | 3985 |
4040 void WebViewImpl::selectAutofillSuggestionAtIndex(unsigned listIndex) | 3986 void WebViewImpl::selectAutofillSuggestionAtIndex(unsigned listIndex) |
4041 { | 3987 { |
4042 if (m_autofillPopupClient && listIndex < m_autofillPopupClient->getSuggestio
nsCount()) | 3988 if (m_autofillPopupClient && listIndex < m_autofillPopupClient->getSuggestio
nsCount()) |
4043 m_autofillPopupClient->valueChanged(listIndex); | 3989 m_autofillPopupClient->valueChanged(listIndex); |
4044 } | 3990 } |
4045 | 3991 |
4046 bool WebViewImpl::detectContentOnTouch(const WebPoint& position) | 3992 bool WebViewImpl::detectContentOnTouch(const WebPoint& position) |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4133 } | 4079 } |
4134 | 4080 |
4135 bool WebViewImpl::shouldDisableDesktopWorkarounds() | 4081 bool WebViewImpl::shouldDisableDesktopWorkarounds() |
4136 { | 4082 { |
4137 ViewportArguments arguments = mainFrameImpl()->frame()->document()->viewport
Arguments(); | 4083 ViewportArguments arguments = mainFrameImpl()->frame()->document()->viewport
Arguments(); |
4138 return arguments.width == ViewportArguments::ValueDeviceWidth || !arguments.
userZoom | 4084 return arguments.width == ViewportArguments::ValueDeviceWidth || !arguments.
userZoom |
4139 || (arguments.minZoom == arguments.maxZoom && arguments.minZoom != Viewp
ortArguments::ValueAuto); | 4085 || (arguments.minZoom == arguments.maxZoom && arguments.minZoom != Viewp
ortArguments::ValueAuto); |
4140 } | 4086 } |
4141 | 4087 |
4142 } // namespace WebKit | 4088 } // namespace WebKit |
OLD | NEW |