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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutObject.cpp

Issue 2086613004: When invalidating InlineBox ensure its painting layer is setNeedsRepaint (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: - Created 4 years, 6 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
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/layout/api/LineLayoutItem.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed.
7 * Copyright (C) 2009 Google Inc. All rights reserved. 7 * Copyright (C) 2009 Google Inc. All rights reserved.
8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 1218 matching lines...) Expand 10 before | Expand all | Expand 10 after
1229 1229
1230 if (paintInvalidationContainer.view()->usesCompositing() && paintInvalidatio nContainer.isPaintInvalidationContainer()) 1230 if (paintInvalidationContainer.view()->usesCompositing() && paintInvalidatio nContainer.isPaintInvalidationContainer())
1231 paintInvalidationContainer.setBackingNeedsPaintInvalidationInRect(dirtyR ect, invalidationReason, *this); 1231 paintInvalidationContainer.setBackingNeedsPaintInvalidationInRect(dirtyR ect, invalidationReason, *this);
1232 } 1232 }
1233 1233
1234 void LayoutObject::invalidateDisplayItemClient(const DisplayItemClient& client, PaintInvalidationReason reason) const 1234 void LayoutObject::invalidateDisplayItemClient(const DisplayItemClient& client, PaintInvalidationReason reason) const
1235 { 1235 {
1236 // It's caller's responsibility to ensure enclosingSelfPaintingLayer's needs Repaint is set. 1236 // It's caller's responsibility to ensure enclosingSelfPaintingLayer's needs Repaint is set.
1237 // Don't set the flag here because getting enclosingSelfPaintLayer has cost and the caller can use 1237 // Don't set the flag here because getting enclosingSelfPaintLayer has cost and the caller can use
1238 // various ways (e.g. PaintInvalidatinState::enclosingSelfPaintingLayer()) t o reduce the cost. 1238 // various ways (e.g. PaintInvalidatinState::enclosingSelfPaintingLayer()) t o reduce the cost.
1239 DCHECK(!paintingLayer() || paintingLayer()->needsRepaint());
1240
1239 client.setDisplayItemsUncached(); 1241 client.setDisplayItemsUncached();
1240 1242
1241 if (FrameView* frameView = this->frameView()) 1243 if (FrameView* frameView = this->frameView())
1242 frameView->trackObjectPaintInvalidation(client, reason); 1244 frameView->trackObjectPaintInvalidation(client, reason);
1243 } 1245 }
1244 1246
1245 void LayoutObject::setPaintingLayerNeedsRepaintAndInvalidateDisplayItemClient(co nst PaintInvalidationState& paintInvalidationState, const DisplayItemClient& cli ent, PaintInvalidationReason reason) const 1247 void LayoutObject::setPaintingLayerNeedsRepaintAndInvalidateDisplayItemClient(co nst PaintInvalidationState& paintInvalidationState, const DisplayItemClient& cli ent, PaintInvalidationReason reason) const
1246 { 1248 {
1247 paintInvalidationState.paintingLayer().setNeedsRepaint(); 1249 paintInvalidationState.paintingLayer().setNeedsRepaint();
1248 invalidateDisplayItemClient(client, reason); 1250 invalidateDisplayItemClient(client, reason);
(...skipping 2441 matching lines...) Expand 10 before | Expand all | Expand 10 after
3690 const blink::LayoutObject* root = object1; 3692 const blink::LayoutObject* root = object1;
3691 while (root->parent()) 3693 while (root->parent())
3692 root = root->parent(); 3694 root = root->parent();
3693 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0); 3695 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0);
3694 } else { 3696 } else {
3695 fprintf(stderr, "Cannot showLayoutTree. Root is (nil)\n"); 3697 fprintf(stderr, "Cannot showLayoutTree. Root is (nil)\n");
3696 } 3698 }
3697 } 3699 }
3698 3700
3699 #endif 3701 #endif
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/layout/api/LineLayoutItem.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698