Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(488)

Side by Side Diff: third_party/WebKit/Source/core/frame/FrameView.cpp

Issue 2248433002: Viewport resize anchoring should use the current layout viewport. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@rootScrollerCompositorWork
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org>
3 * 1999 Lars Knoll <knoll@kde.org> 3 * 1999 Lars Knoll <knoll@kde.org>
4 * 1999 Antti Koivisto <koivisto@kde.org> 4 * 1999 Antti Koivisto <koivisto@kde.org>
5 * 2000 Dirk Mueller <mueller@kde.org> 5 * 2000 Dirk Mueller <mueller@kde.org>
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com) 7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com)
8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) 8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com)
9 * Copyright (C) 2009 Google Inc. All rights reserved. 9 * Copyright (C) 2009 Google Inc. All rights reserved.
10 * 10 *
(...skipping 792 matching lines...) Expand 10 before | Expand all | Expand 10 after
803 document->updateStyleAndLayoutTree(); 803 document->updateStyleAndLayoutTree();
804 lifecycle().advanceTo(DocumentLifecycle::StyleClean); 804 lifecycle().advanceTo(DocumentLifecycle::StyleClean);
805 805
806 if (m_frame->isMainFrame() && !m_viewportScrollableArea) { 806 if (m_frame->isMainFrame() && !m_viewportScrollableArea) {
807 ScrollableArea& visualViewport = m_frame->host()->visualViewport(); 807 ScrollableArea& visualViewport = m_frame->host()->visualViewport();
808 ScrollableArea* layoutViewport = layoutViewportScrollableArea(); 808 ScrollableArea* layoutViewport = layoutViewportScrollableArea();
809 DCHECK(layoutViewport); 809 DCHECK(layoutViewport);
810 m_viewportScrollableArea = RootFrameViewport::create(visualViewport, *la youtViewport); 810 m_viewportScrollableArea = RootFrameViewport::create(visualViewport, *la youtViewport);
811 } 811 }
812 812
813 if (!m_scrollAnchor.hasScroller()) 813 if (!m_scrollAnchor.hasScroller()) {
814 m_scrollAnchor.setScroller(m_viewportScrollableArea ? m_viewportScrollab leArea : this); 814 m_scrollAnchor.setScroller(m_viewportScrollableArea
815 ? static_cast<ScrollableArea*>(m_viewportScrollableArea.get())
skobes 2016/08/13 00:16:11 Can you avoid the cast with a ScrollableArea* temp
bokan 2016/08/13 00:38:21 Replaced with a ScrollableArea* temp
816 : this);
817 }
815 818
816 if (shouldPerformScrollAnchoring()) 819 if (shouldPerformScrollAnchoring())
817 m_scrollAnchor.save(); 820 m_scrollAnchor.save();
818 } 821 }
819 822
820 bool FrameView::shouldPerformScrollAnchoring() const 823 bool FrameView::shouldPerformScrollAnchoring() const
821 { 824 {
822 return RuntimeEnabledFeatures::scrollAnchoringEnabled() 825 return RuntimeEnabledFeatures::scrollAnchoringEnabled()
823 && m_frame->settings() && !m_frame->settings()->rootLayerScrolls() 826 && m_frame->settings() && !m_frame->settings()->rootLayerScrolls()
824 && m_scrollAnchor.hasScroller() 827 && m_scrollAnchor.hasScroller()
(...skipping 3250 matching lines...) Expand 10 before | Expand all | Expand 10 after
4075 ScrollableArea* FrameView::layoutViewportScrollableArea() 4078 ScrollableArea* FrameView::layoutViewportScrollableArea()
4076 { 4079 {
4077 Settings* settings = frame().settings(); 4080 Settings* settings = frame().settings();
4078 if (!settings || !settings->rootLayerScrolls()) 4081 if (!settings || !settings->rootLayerScrolls())
4079 return this; 4082 return this;
4080 4083
4081 LayoutViewItem layoutViewItem = this->layoutViewItem(); 4084 LayoutViewItem layoutViewItem = this->layoutViewItem();
4082 return layoutViewItem.isNull() ? nullptr : layoutViewItem.getScrollableArea( ); 4085 return layoutViewItem.isNull() ? nullptr : layoutViewItem.getScrollableArea( );
4083 } 4086 }
4084 4087
4088 RootFrameViewport* FrameView::getRootFrameViewport()
4089 {
4090 return m_viewportScrollableArea.get();
4091 }
4092
4085 LayoutObject* FrameView::viewportLayoutObject() const 4093 LayoutObject* FrameView::viewportLayoutObject() const
4086 { 4094 {
4087 if (Document* document = frame().document()) { 4095 if (Document* document = frame().document()) {
4088 if (Element* element = document->viewportDefiningElement()) 4096 if (Element* element = document->viewportDefiningElement())
4089 return element->layoutObject(); 4097 return element->layoutObject();
4090 } 4098 }
4091 return nullptr; 4099 return nullptr;
4092 } 4100 }
4093 4101
4094 void FrameView::collectAnnotatedRegions(LayoutObject& layoutObject, Vector<Annot atedRegionValue>& regions) const 4102 void FrameView::collectAnnotatedRegions(LayoutObject& layoutObject, Vector<Annot atedRegionValue>& regions) const
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
4259 } 4267 }
4260 4268
4261 bool FrameView::canThrottleRendering() const 4269 bool FrameView::canThrottleRendering() const
4262 { 4270 {
4263 if (!RuntimeEnabledFeatures::renderingPipelineThrottlingEnabled()) 4271 if (!RuntimeEnabledFeatures::renderingPipelineThrottlingEnabled())
4264 return false; 4272 return false;
4265 return m_subtreeThrottled || (m_hiddenForThrottling && m_crossOriginForThrot tling); 4273 return m_subtreeThrottled || (m_hiddenForThrottling && m_crossOriginForThrot tling);
4266 } 4274 }
4267 4275
4268 } // namespace blink 4276 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/frame/FrameView.h ('k') | third_party/WebKit/Source/core/frame/RootFrameViewport.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698