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

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

Issue 1053123007: Invalidate paint of tickmarks on document change (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 8 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 | Annotate | Revision Log
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 1060 matching lines...) Expand 10 before | Expand all | Expand 10 after
1071 1071
1072 // FIXME: It should be not possible to remove the FrameView from the frame/p age during layout 1072 // FIXME: It should be not possible to remove the FrameView from the frame/p age during layout
1073 // however m_inPerformLayout is not set for most of this function, so none o f our RELEASE_ASSERTS 1073 // however m_inPerformLayout is not set for most of this function, so none o f our RELEASE_ASSERTS
1074 // in LocalFrame/Page will fire. One of the post-layout tasks is disconnecti ng the LocalFrame from 1074 // in LocalFrame/Page will fire. One of the post-layout tasks is disconnecti ng the LocalFrame from
1075 // the page in fast/frames/crash-remove-iframe-during-object-beforeload-2.ht ml 1075 // the page in fast/frames/crash-remove-iframe-during-object-beforeload-2.ht ml
1076 // necessitating this check here. 1076 // necessitating this check here.
1077 // ASSERT(frame()->page()); 1077 // ASSERT(frame()->page());
1078 if (frame().page()) 1078 if (frame().page())
1079 frame().page()->chrome().client().layoutUpdated(m_frame.get()); 1079 frame().page()->chrome().client().layoutUpdated(m_frame.get());
1080 1080
1081 frame().document()->markers().updateRenderedRectsForMarkers(); 1081 DocumentMarkerController& markers = frame().document()->markers();
1082 markers.updateRenderedRectsForMarkers();
1083 if (markers.textMatchMarkersRemovedOrChanged()) {
1084 invalidatePaintOfTickmarks();
1085 markers.resetTextMatchMarkersRemovedOrChanged();
1086 }
1082 } 1087 }
1083 1088
1084 // The plan is to move to compositor-queried paint invalidation, in which case t his 1089 // The plan is to move to compositor-queried paint invalidation, in which case t his
1085 // method would setNeedsRedraw on the GraphicsLayers with invalidations and 1090 // method would setNeedsRedraw on the GraphicsLayers with invalidations and
1086 // let the compositor pick which to actually draw. 1091 // let the compositor pick which to actually draw.
1087 // See http://crbug.com/306706 1092 // See http://crbug.com/306706
1088 void FrameView::invalidateTreeIfNeeded(Vector<LayoutObject*>& pendingDelayedPain tInvalidations) 1093 void FrameView::invalidateTreeIfNeeded(Vector<LayoutObject*>& pendingDelayedPain tInvalidations)
1089 { 1094 {
1090 ASSERT(layoutView()); 1095 ASSERT(layoutView());
1091 LayoutView& rootForPaintInvalidation = *layoutView(); 1096 LayoutView& rootForPaintInvalidation = *layoutView();
(...skipping 1134 matching lines...) Expand 10 before | Expand all | Expand 10 after
2226 m_scrollPosition = newPosition; 2231 m_scrollPosition = newPosition;
2227 2232
2228 if (!scrollbarsSuppressed()) 2233 if (!scrollbarsSuppressed())
2229 m_pendingScrollDelta += scrollDelta; 2234 m_pendingScrollDelta += scrollDelta;
2230 2235
2231 updateLayersAndCompositingAfterScrollIfNeeded(); 2236 updateLayersAndCompositingAfterScrollIfNeeded();
2232 scrollPositionChanged(); 2237 scrollPositionChanged();
2233 frame().loader().client()->didChangeScrollOffset(); 2238 frame().loader().client()->didChangeScrollOffset();
2234 } 2239 }
2235 2240
2241 void FrameView::invalidatePaintOfTickmarks() const
2242 {
2243 if (Scrollbar* scrollbar = verticalScrollbar())
2244 scrollbar->invalidate();
2245 }
2246
2236 void FrameView::invalidateScrollbarRect(Scrollbar* scrollbar, const IntRect& rec t) 2247 void FrameView::invalidateScrollbarRect(Scrollbar* scrollbar, const IntRect& rec t)
2237 { 2248 {
2238 // Add in our offset within the FrameView. 2249 // Add in our offset within the FrameView.
2239 IntRect dirtyRect = rect; 2250 IntRect dirtyRect = rect;
2240 dirtyRect.moveBy(scrollbar->location()); 2251 dirtyRect.moveBy(scrollbar->location());
2241 2252
2242 layoutView()->invalidateDisplayItemClient(*scrollbar); 2253 layoutView()->invalidateDisplayItemClient(*scrollbar);
2243 2254
2244 if (isInPerformLayout()) 2255 if (isInPerformLayout())
2245 addScrollbarDamage(scrollbar, rect); 2256 addScrollbarDamage(scrollbar, rect);
(...skipping 1817 matching lines...) Expand 10 before | Expand all | Expand 10 after
4063 { 4074 {
4064 Settings* settings = frame().settings(); 4075 Settings* settings = frame().settings();
4065 if (!settings || !settings->rootLayerScrolls()) 4076 if (!settings || !settings->rootLayerScrolls())
4066 return this; 4077 return this;
4067 4078
4068 LayoutView* layoutView = this->layoutView(); 4079 LayoutView* layoutView = this->layoutView();
4069 return layoutView ? layoutView->scrollableArea() : nullptr; 4080 return layoutView ? layoutView->scrollableArea() : nullptr;
4070 } 4081 }
4071 4082
4072 } // namespace blink 4083 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698