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

Side by Side Diff: Source/core/page/Page.cpp

Issue 815363003: FrameView now notifies ScrollCoorinator of changes in its scrollable area set (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Improve test Created 5 years, 11 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) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All R ights Reserved. 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All R ights Reserved.
3 * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 3 * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 #include "core/page/FrameTree.h" 50 #include "core/page/FrameTree.h"
51 #include "core/page/PageLifecycleNotifier.h" 51 #include "core/page/PageLifecycleNotifier.h"
52 #include "core/page/PointerLockController.h" 52 #include "core/page/PointerLockController.h"
53 #include "core/page/StorageClient.h" 53 #include "core/page/StorageClient.h"
54 #include "core/page/ValidationMessageClient.h" 54 #include "core/page/ValidationMessageClient.h"
55 #include "core/page/scrolling/ScrollingCoordinator.h" 55 #include "core/page/scrolling/ScrollingCoordinator.h"
56 #include "core/rendering/RenderLayer.h" 56 #include "core/rendering/RenderLayer.h"
57 #include "core/rendering/RenderView.h" 57 #include "core/rendering/RenderView.h"
58 #include "core/rendering/TextAutosizer.h" 58 #include "core/rendering/TextAutosizer.h"
59 #include "core/storage/StorageNamespace.h" 59 #include "core/storage/StorageNamespace.h"
60 #include "platform/graphics/GraphicsLayer.h"
60 #include "platform/plugins/PluginData.h" 61 #include "platform/plugins/PluginData.h"
61 #include "wtf/HashMap.h" 62 #include "wtf/HashMap.h"
62 #include "wtf/RefCountedLeakCounter.h" 63 #include "wtf/RefCountedLeakCounter.h"
63 #include "wtf/StdLibExtras.h" 64 #include "wtf/StdLibExtras.h"
64 #include "wtf/text/Base64.h" 65 #include "wtf/text/Base64.h"
65 66
66 namespace blink { 67 namespace blink {
67 68
68 DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, pageCounter, ("Page")); 69 DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, pageCounter, ("Page"));
69 70
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 String Page::mainThreadScrollingReasonsAsText() 178 String Page::mainThreadScrollingReasonsAsText()
178 { 179 {
179 if (ScrollingCoordinator* scrollingCoordinator = this->scrollingCoordinator( )) 180 if (ScrollingCoordinator* scrollingCoordinator = this->scrollingCoordinator( ))
180 return scrollingCoordinator->mainThreadScrollingReasonsAsText(); 181 return scrollingCoordinator->mainThreadScrollingReasonsAsText();
181 182
182 return String(); 183 return String();
183 } 184 }
184 185
185 PassRefPtrWillBeRawPtr<ClientRectList> Page::nonFastScrollableRects(const LocalF rame* frame) 186 PassRefPtrWillBeRawPtr<ClientRectList> Page::nonFastScrollableRects(const LocalF rame* frame)
186 { 187 {
187 if (m_mainFrame->isLocalFrame() && deprecatedLocalMainFrame()->document())
188 deprecatedLocalMainFrame()->document()->updateLayout();
189
190 Vector<IntRect> rects;
191 if (ScrollingCoordinator* scrollingCoordinator = this->scrollingCoordinator( )) { 188 if (ScrollingCoordinator* scrollingCoordinator = this->scrollingCoordinator( )) {
192 // Hits in compositing/iframes/iframe-composited-scrolling.html 189 // Hits in compositing/iframes/iframe-composited-scrolling.html
193 DisableCompositingQueryAsserts disabler; 190 DisableCompositingQueryAsserts disabler;
194 rects = scrollingCoordinator->computeShouldHandleScrollGestureOnMainThre adRegion(frame, IntPoint()).rects(); 191 scrollingCoordinator->updateAfterCompositingChangeIfNeeded();
195 } 192 }
196 193
194 // Now retain non-fast scrollable regions
195 WebVector<WebRect> rects = frame->view()->layerForScrolling()->platformLayer ()->nonFastScrollableRegion();
197 Vector<FloatQuad> quads(rects.size()); 196 Vector<FloatQuad> quads(rects.size());
198 for (size_t i = 0; i < rects.size(); ++i) 197 for (size_t i = 0; i < rects.size(); ++i)
199 quads[i] = FloatRect(rects[i]); 198 quads[i] = FloatRect(rects[i]);
200 return ClientRectList::create(quads); 199 return ClientRectList::create(quads);
201 } 200 }
202 201
203 void Page::setMainFrame(Frame* mainFrame) 202 void Page::setMainFrame(Frame* mainFrame)
204 { 203 {
205 // Should only be called during initialization or swaps between local and 204 // Should only be called during initialization or swaps between local and
206 // remote frames. 205 // remote frames.
(...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after
637 , spellCheckerClient(nullptr) 636 , spellCheckerClient(nullptr)
638 , storageClient(nullptr) 637 , storageClient(nullptr)
639 { 638 {
640 } 639 }
641 640
642 Page::PageClients::~PageClients() 641 Page::PageClients::~PageClients()
643 { 642 {
644 } 643 }
645 644
646 } // namespace blink 645 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698