Index: third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp |
diff --git a/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp b/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp |
index b7211a656dbd2545f88cd1e0e822a0074767636e..2cc2a91a1ff69da3194748de02baca4085ea4580 100644 |
--- a/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp |
+++ b/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp |
@@ -99,6 +99,11 @@ void DocumentMarkerController::clear() |
void DocumentMarkerController::addMarker(const Position& start, const Position& end, DocumentMarker::MarkerType type, const String& description, uint32_t hash) |
{ |
+ |
+ // TODO(dglazkov): The use of updateLayoutIgnorePendingStylesheets needs to be audited. |
+ // see http://crbug.com/590369 for more details. |
+ start.document()->updateLayoutIgnorePendingStylesheets(); |
+ |
// Use a TextIterator to visit the potentially multiple nodes the range covers. |
for (TextIterator markedText(start, end); !markedText.atEnd(); markedText.advance()) { |
addMarker(markedText.currentContainer(), DocumentMarker(type, markedText.startOffsetInCurrentContainer(), markedText.endOffsetInCurrentContainer(), description, hash)); |
@@ -107,6 +112,10 @@ void DocumentMarkerController::addMarker(const Position& start, const Position& |
void DocumentMarkerController::addTextMatchMarker(const Range* range, bool activeMatch) |
{ |
+ // TODO(dglazkov): The use of updateLayoutIgnorePendingStylesheets needs to be audited. |
+ // see http://crbug.com/590369 for more details. |
+ range->startPosition().document()->updateLayoutIgnorePendingStylesheets(); |
+ |
// Use a TextIterator to visit the potentially multiple nodes the range covers. |
for (TextIterator markedText(range->startPosition(), range->endPosition()); !markedText.atEnd(); markedText.advance()) |
addMarker(markedText.currentContainer(), DocumentMarker(markedText.startOffsetInCurrentContainer(), markedText.endOffsetInCurrentContainer(), activeMatch)); |
@@ -115,6 +124,10 @@ void DocumentMarkerController::addTextMatchMarker(const Range* range, bool activ |
void DocumentMarkerController::addCompositionMarker(const Position& start, const Position& end, Color underlineColor, bool thick, Color backgroundColor) |
{ |
+ // TODO(dglazkov): The use of updateLayoutIgnorePendingStylesheets needs to be audited. |
+ // see http://crbug.com/590369 for more details. |
+ start.document()->updateLayoutIgnorePendingStylesheets(); |
+ |
for (TextIterator markedText(start, end); !markedText.atEnd(); markedText.advance()) |
addMarker(markedText.currentContainer(), DocumentMarker(markedText.startOffsetInCurrentContainer(), markedText.endOffsetInCurrentContainer(), underlineColor, thick, backgroundColor)); |
} |
@@ -139,6 +152,10 @@ void DocumentMarkerController::removeMarkers(TextIterator& markedText, DocumentM |
void DocumentMarkerController::removeMarkers(const EphemeralRange& range, DocumentMarker::MarkerTypes markerTypes, RemovePartiallyOverlappingMarkerOrNot shouldRemovePartiallyOverlappingMarker) |
{ |
+ // TODO(dglazkov): The use of updateLayoutIgnorePendingStylesheets needs to be audited. |
+ // see http://crbug.com/590369 for more details. |
+ range.startPosition().document()->updateLayoutIgnorePendingStylesheets(); |
+ |
TextIterator markedText(range.startPosition(), range.endPosition()); |
DocumentMarkerController::removeMarkers(markedText, markerTypes, shouldRemovePartiallyOverlappingMarker); |
} |