Index: third_party/WebKit/LayoutTests/http/tests/inspector/console-test.js |
diff --git a/third_party/WebKit/LayoutTests/http/tests/inspector/console-test.js b/third_party/WebKit/LayoutTests/http/tests/inspector/console-test.js |
index 40efec26cdd6e5fdf240880e60f52a7b7fbd6f36..7a53880040d50e1d0977bbc6e7a627148bb6c42f 100644 |
--- a/third_party/WebKit/LayoutTests/http/tests/inspector/console-test.js |
+++ b/third_party/WebKit/LayoutTests/http/tests/inspector/console-test.js |
@@ -425,4 +425,29 @@ InspectorTest.waitForConsoleMessages = function(expectedCount, callback) |
} |
} |
+InspectorTest.selectConsoleMessages = function(fromMessage, fromTextOffset, toMessage, toTextOffset) |
+{ |
+ var consoleView = Console.ConsoleView.instance(); |
+ var from = selectionContainerAndOffset(consoleView.itemElement(fromMessage).element(), fromTextOffset); |
+ var to = selectionContainerAndOffset(consoleView.itemElement(toMessage).element(), toTextOffset); |
+ window.getSelection().setBaseAndExtent(from.container, from.offset, to.container, to.offset); |
+ |
+ function selectionContainerAndOffset(container, offset) |
+ { |
+ var charCount = 0; |
+ var node = container; |
+ while (node = node.traverseNextTextNode(true)) { |
+ var length = node.textContent.length; |
+ if (charCount + length >= offset) { |
+ return { |
+ container: node, |
+ offset: offset - charCount |
+ }; |
+ } |
+ charCount += length; |
+ } |
+ return null; |
+ } |
+} |
+ |
} |