Index: third_party/WebKit/LayoutTests/editing/assert_selection.js |
diff --git a/third_party/WebKit/LayoutTests/editing/assert_selection.js b/third_party/WebKit/LayoutTests/editing/assert_selection.js |
index a92d65e31d0bfbfbec4c43f0a8d59590ea5a4b72..e05b848d7d35c6485fd6ebec8fdde9154079acad 100644 |
--- a/third_party/WebKit/LayoutTests/editing/assert_selection.js |
+++ b/third_party/WebKit/LayoutTests/editing/assert_selection.js |
@@ -60,6 +60,10 @@ const DumpAs = { |
FLAT_TREE: 'flattree', |
}; |
+// Offset adjustment for mouse clicking used in |compute{Left,Top}()|. |
yoichio
2017/06/30 01:45:59
Why do you need this adjustment?
yosin_UTC9
2017/06/30 08:21:50
This value should be 2. It is border-size comes fr
|
+const kOffsetLeftAdjustment = 4; |
+const kOffsetTopAdjustment = 4; |
+ |
/** @const @type {string} */ |
const kTextArea = 'TEXTAREA'; |
@@ -664,6 +668,28 @@ class Serializer { |
} |
/** |
+ * @param {!HTMLElement} element |
+ * @return {number} |
+ */ |
+function computeLeft(element) { |
+ let left = kOffsetLeftAdjustment + element.ownerDocument.offsetLeft; |
+ for (let runner = element; runner; runner = runner.offsetParent) |
+ left += runner.offsetLeft; |
+ return left; |
+} |
+ |
+/** |
+ * @param {!HTMLElement} element |
+ * @return {number} |
+ */ |
+function computeTop(element) { |
+ let top = kOffsetTopAdjustment + element.ownerDocument.offsetTop; |
+ for (let runner = element; runner; runner = runner.offsetParent) |
+ top += runner.offsetTop; |
+ return top; |
+} |
+ |
+/** |
* @this {!DOMSelection} |
* @param {string} html |
* @param {string=} opt_text |
@@ -712,6 +738,8 @@ class Sample { |
this.selection_.document.offsetLeft = this.iframe_.offsetLeft; |
this.selection_.document.offsetTop = this.iframe_.offsetTop; |
this.selection_.setClipboardData = setClipboardData; |
+ this.selection_.computeLeft = computeLeft; |
+ this.selection_.computeTop = computeTop; |
this.load(sampleText); |
} |