Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed. | 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed. |
| 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 1319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1330 absoluteBlockPoint -= FloatSize(containingBlock.scrolledContentOffset()) ; | 1330 absoluteBlockPoint -= FloatSize(containingBlock.scrolledContentOffset()) ; |
| 1331 | 1331 |
| 1332 if (root->block().isHorizontalWritingMode()) | 1332 if (root->block().isHorizontalWritingMode()) |
| 1333 return LayoutPoint(LayoutUnit(lineDirectionPoint - absoluteBlockPoint.x( )), root->blockDirectionPointInLine()); | 1333 return LayoutPoint(LayoutUnit(lineDirectionPoint - absoluteBlockPoint.x( )), root->blockDirectionPointInLine()); |
| 1334 | 1334 |
| 1335 return LayoutPoint(root->blockDirectionPointInLine(), LayoutUnit(lineDirecti onPoint - absoluteBlockPoint.y())); | 1335 return LayoutPoint(root->blockDirectionPointInLine(), LayoutUnit(lineDirecti onPoint - absoluteBlockPoint.y())); |
| 1336 } | 1336 } |
| 1337 | 1337 |
| 1338 VisiblePosition previousLinePosition(const VisiblePosition& visiblePosition, Lay outUnit lineDirectionPoint, EditableType editableType) | 1338 VisiblePosition previousLinePosition(const VisiblePosition& visiblePosition, Lay outUnit lineDirectionPoint, EditableType editableType) |
| 1339 { | 1339 { |
| 1340 DCHECK(visiblePosition.isValid()); | |
|
yosin_UTC9
2016/09/20 13:55:51
We should add |DCHECK(vp.isValid())| all functions
Xiaocheng
2016/09/21 06:31:49
Unfortunately we are not having such a gigantic pa
| |
| 1341 | |
| 1340 Position p = visiblePosition.deepEquivalent(); | 1342 Position p = visiblePosition.deepEquivalent(); |
| 1341 Node* node = p.anchorNode(); | 1343 Node* node = p.anchorNode(); |
| 1342 | 1344 |
| 1343 if (!node) | 1345 if (!node) |
| 1344 return VisiblePosition(); | 1346 return VisiblePosition(); |
| 1345 | 1347 |
| 1346 DCHECK(!node->document().needsLayoutTreeUpdate()); | |
| 1347 | |
| 1348 LayoutObject* layoutObject = node->layoutObject(); | 1348 LayoutObject* layoutObject = node->layoutObject(); |
| 1349 if (!layoutObject) | 1349 if (!layoutObject) |
| 1350 return VisiblePosition(); | 1350 return VisiblePosition(); |
| 1351 | 1351 |
| 1352 RootInlineBox* root = 0; | 1352 RootInlineBox* root = 0; |
| 1353 InlineBox* box = computeInlineBoxPosition(visiblePosition).inlineBox; | 1353 InlineBox* box = computeInlineBoxPosition(visiblePosition).inlineBox; |
| 1354 if (box) { | 1354 if (box) { |
| 1355 root = box->root().prevRootBox(); | 1355 root = box->root().prevRootBox(); |
| 1356 // We want to skip zero height boxes. | 1356 // We want to skip zero height boxes. |
| 1357 // This could happen in case it is a TrailingFloatsRootInlineBox. | 1357 // This could happen in case it is a TrailingFloatsRootInlineBox. |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 1383 // Move to the start of the content in this block, which effectively moves u s | 1383 // Move to the start of the content in this block, which effectively moves u s |
| 1384 // to the start of the line we're on. | 1384 // to the start of the line we're on. |
| 1385 Element* rootElement = hasEditableStyle(*node, editableType) ? rootEditableE lement(*node, editableType) : node->document().documentElement(); | 1385 Element* rootElement = hasEditableStyle(*node, editableType) ? rootEditableE lement(*node, editableType) : node->document().documentElement(); |
| 1386 if (!rootElement) | 1386 if (!rootElement) |
| 1387 return VisiblePosition(); | 1387 return VisiblePosition(); |
| 1388 return VisiblePosition::firstPositionInNode(rootElement); | 1388 return VisiblePosition::firstPositionInNode(rootElement); |
| 1389 } | 1389 } |
| 1390 | 1390 |
| 1391 VisiblePosition nextLinePosition(const VisiblePosition& visiblePosition, LayoutU nit lineDirectionPoint, EditableType editableType) | 1391 VisiblePosition nextLinePosition(const VisiblePosition& visiblePosition, LayoutU nit lineDirectionPoint, EditableType editableType) |
| 1392 { | 1392 { |
| 1393 DCHECK(visiblePosition.isValid()); | |
| 1394 | |
| 1393 Position p = visiblePosition.deepEquivalent(); | 1395 Position p = visiblePosition.deepEquivalent(); |
| 1394 Node* node = p.anchorNode(); | 1396 Node* node = p.anchorNode(); |
| 1395 | 1397 |
| 1396 if (!node) | 1398 if (!node) |
| 1397 return VisiblePosition(); | 1399 return VisiblePosition(); |
| 1398 | 1400 |
| 1399 DCHECK(!node->document().needsLayoutTreeUpdate()); | |
| 1400 | |
| 1401 LayoutObject* layoutObject = node->layoutObject(); | 1401 LayoutObject* layoutObject = node->layoutObject(); |
| 1402 if (!layoutObject) | 1402 if (!layoutObject) |
| 1403 return VisiblePosition(); | 1403 return VisiblePosition(); |
| 1404 | 1404 |
| 1405 RootInlineBox* root = 0; | 1405 RootInlineBox* root = 0; |
| 1406 InlineBox* box = computeInlineBoxPosition(visiblePosition).inlineBox; | 1406 InlineBox* box = computeInlineBoxPosition(visiblePosition).inlineBox; |
| 1407 if (box) { | 1407 if (box) { |
| 1408 root = box->root().nextRootBox(); | 1408 root = box->root().nextRootBox(); |
| 1409 // We want to skip zero height boxes. | 1409 // We want to skip zero height boxes. |
| 1410 // This could happen in case it is a TrailingFloatsRootInlineBox. | 1410 // This could happen in case it is a TrailingFloatsRootInlineBox. |
| (...skipping 1908 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3319 { | 3319 { |
| 3320 return previousPositionOfAlgorithm<EditingStrategy>(visiblePosition, rule); | 3320 return previousPositionOfAlgorithm<EditingStrategy>(visiblePosition, rule); |
| 3321 } | 3321 } |
| 3322 | 3322 |
| 3323 VisiblePositionInFlatTree previousPositionOf(const VisiblePositionInFlatTree& vi siblePosition, EditingBoundaryCrossingRule rule) | 3323 VisiblePositionInFlatTree previousPositionOf(const VisiblePositionInFlatTree& vi siblePosition, EditingBoundaryCrossingRule rule) |
| 3324 { | 3324 { |
| 3325 return previousPositionOfAlgorithm<EditingInFlatTreeStrategy>(visiblePositio n, rule); | 3325 return previousPositionOfAlgorithm<EditingInFlatTreeStrategy>(visiblePositio n, rule); |
| 3326 } | 3326 } |
| 3327 | 3327 |
| 3328 } // namespace blink | 3328 } // namespace blink |
| OLD | NEW |