OLD | NEW |
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 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
189 ASSERT(m_mapping.isEmpty() || | 189 ASSERT(m_mapping.isEmpty() || |
190 isTopmostLayoutView(m_mapping[0].m_layoutObject)); | 190 isTopmostLayoutView(m_mapping[0].m_layoutObject)); |
191 } | 191 } |
192 | 192 |
193 static bool canMapBetweenLayoutObjects(const LayoutObject& layoutObject, | 193 static bool canMapBetweenLayoutObjects(const LayoutObject& layoutObject, |
194 const LayoutObject& ancestor) { | 194 const LayoutObject& ancestor) { |
195 for (const LayoutObject* current = &layoutObject;; | 195 for (const LayoutObject* current = &layoutObject;; |
196 current = current->parent()) { | 196 current = current->parent()) { |
197 const ComputedStyle& style = current->styleRef(); | 197 const ComputedStyle& style = current->styleRef(); |
198 if (style.position() == EPosition::kFixed || | 198 if (style.position() == EPosition::kFixed || |
199 style.isFlippedBlocksWritingMode()) | 199 style.isFlippedBlocksWritingMode() || |
| 200 style.hasTransformRelatedProperty()) |
200 return false; | 201 return false; |
201 | 202 |
202 if (current->style()->canContainFixedPositionObjects() || | 203 if (current->canContainFixedPositionObjects() || |
203 current->isLayoutFlowThread() || current->isSVGRoot()) | 204 current->isLayoutFlowThread() || current->isSVGRoot()) |
204 return false; | 205 return false; |
205 | 206 |
206 if (current == &ancestor) | 207 if (current == &ancestor) |
207 break; | 208 break; |
208 | 209 |
209 if (current->isFloatingWithNonContainingBlockParent()) | 210 if (current->isFloatingWithNonContainingBlockParent()) |
210 return false; | 211 return false; |
211 } | 212 } |
212 | 213 |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
373 // If we're not working with multiple LayoutViews, then any view is considered | 374 // If we're not working with multiple LayoutViews, then any view is considered |
374 // "topmost" (to preserve original behavior). | 375 // "topmost" (to preserve original behavior). |
375 if (!(m_mapCoordinatesFlags & TraverseDocumentBoundaries)) | 376 if (!(m_mapCoordinatesFlags & TraverseDocumentBoundaries)) |
376 return true; | 377 return true; |
377 | 378 |
378 return layoutObject->frame()->isMainFrame(); | 379 return layoutObject->frame()->isMainFrame(); |
379 } | 380 } |
380 #endif | 381 #endif |
381 | 382 |
382 } // namespace blink | 383 } // namespace blink |
OLD | NEW |