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

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

Issue 2575423003: Fix geometry mapping issues for float under inline (Closed)
Patch Set: SVG floating Created 3 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) 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2012 Apple 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 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 const ComputedStyle& style = current->styleRef(); 197 const ComputedStyle& style = current->styleRef();
198 if (style.position() == FixedPosition || style.isFlippedBlocksWritingMode()) 198 if (style.position() == FixedPosition || style.isFlippedBlocksWritingMode())
199 return false; 199 return false;
200 200
201 if (current->style()->canContainFixedPositionObjects() || 201 if (current->style()->canContainFixedPositionObjects() ||
202 current->isLayoutFlowThread() || current->isSVGRoot()) 202 current->isLayoutFlowThread() || current->isSVGRoot())
203 return false; 203 return false;
204 204
205 if (current == ancestor) 205 if (current == ancestor)
206 break; 206 break;
207
208 if (current->isFloating() && current->parent() &&
wkorman 2017/01/04 22:27:08 Some concern re: unexpected ramifications of this,
Xianzhu 2017/01/04 22:49:59 The unit test is here: https://codereview.chromium
209 !current->parent()->isLayoutBlock())
210 return false;
207 } 211 }
208 212
209 return true; 213 return true;
210 } 214 }
211 215
212 void LayoutGeometryMap::pushMappingsToAncestor( 216 void LayoutGeometryMap::pushMappingsToAncestor(
213 const PaintLayer* layer, 217 const PaintLayer* layer,
214 const PaintLayer* ancestorLayer) { 218 const PaintLayer* ancestorLayer) {
215 const LayoutObject* layoutObject = layer->layoutObject(); 219 const LayoutObject* layoutObject = layer->layoutObject();
216 220
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 // If we're not working with multiple LayoutViews, then any view is considered 373 // If we're not working with multiple LayoutViews, then any view is considered
370 // "topmost" (to preserve original behavior). 374 // "topmost" (to preserve original behavior).
371 if (!(m_mapCoordinatesFlags & TraverseDocumentBoundaries)) 375 if (!(m_mapCoordinatesFlags & TraverseDocumentBoundaries))
372 return true; 376 return true;
373 377
374 return layoutObject->frame()->isMainFrame(); 378 return layoutObject->frame()->isMainFrame();
375 } 379 }
376 #endif 380 #endif
377 381
378 } // namespace blink 382 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698