diff --git a/dom/ranges/tentative/OpaqueRange-basic.html b/dom/ranges/tentative/OpaqueRange-basic.html index ab7fbf26f3cca8..fe734e5c1508aa 100644 --- a/dom/ranges/tentative/OpaqueRange-basic.html +++ b/dom/ranges/tentative/OpaqueRange-basic.html @@ -6,29 +6,29 @@ test(() => { document.body.innerHTML = ''; const textarea = document.body.firstElementChild; - const range = textarea.getValueRange(0, 5); + const range = textarea.createValueRange(0, 5); assert_true(range instanceof OpaqueRange, "|range| should be an instance of OpaqueRange."); assert_true(range instanceof AbstractRange, "|range| should also be an instance of AbstractRange."); assert_false(range instanceof Range, "|range| should not be an instance of Range."); -}, "Tests getValueRange returns OpaqueRange that extends AbstractRange."); +}, "Tests createValueRange returns OpaqueRange that extends AbstractRange."); test(() => { document.body.innerHTML = ''; const textarea = document.body.firstElementChild; - const range = textarea.getValueRange(1, 4); + const range = textarea.createValueRange(1, 4); assert_equals(range.startContainer, null, "startContainer should be null."); assert_equals(range.endContainer, null, "endContainer should be null."); assert_equals(range.startOffset, 1); assert_equals(range.endOffset, 4); assert_false(range.collapsed); -}, "OpaqueRange handles getValueRange correctly."); +}, "OpaqueRange handles createValueRange correctly."); test(() => { document.body.innerHTML = ''; const input = document.body.firstElementChild; - const range = input.getValueRange(0, 0); + const range = input.createValueRange(0, 0); assert_equals(range.startOffset, 0); assert_equals(range.endOffset, 0); diff --git a/dom/ranges/tentative/OpaqueRange-disconnect.html b/dom/ranges/tentative/OpaqueRange-disconnect.html index 733918df321249..c38effffab5f60 100644 --- a/dom/ranges/tentative/OpaqueRange-disconnect.html +++ b/dom/ranges/tentative/OpaqueRange-disconnect.html @@ -6,7 +6,7 @@ test(() => { document.body.innerHTML = ''; const textarea = document.body.firstElementChild; - const range = textarea.getValueRange(1, 4); + const range = textarea.createValueRange(1, 4); range.disconnect(); @@ -23,7 +23,7 @@ test(() => { document.body.innerHTML = ''; const textarea = document.body.firstElementChild; - const range = textarea.getValueRange(1, 4); + const range = textarea.createValueRange(1, 4); range.disconnect(); range.disconnect(); @@ -35,7 +35,7 @@ test(() => { document.body.innerHTML = ''; const textarea = document.body.firstElementChild; - const range = textarea.getValueRange(1, 4); + const range = textarea.createValueRange(1, 4); range.disconnect(); textarea.value = "World!"; @@ -47,8 +47,8 @@ test(() => { document.body.innerHTML = ''; const textarea = document.body.firstElementChild; - const range1 = textarea.getValueRange(0, 3); - const range2 = textarea.getValueRange(2, 5); + const range1 = textarea.createValueRange(0, 3); + const range2 = textarea.createValueRange(2, 5); range1.disconnect(); @@ -63,10 +63,10 @@ test(() => { document.body.innerHTML = ''; const textarea = document.body.firstElementChild; - const range = textarea.getValueRange(1, 4); + const range = textarea.createValueRange(1, 4); range.disconnect(); - const newRange = textarea.getValueRange(0, 5); + const newRange = textarea.createValueRange(0, 5); assert_equals(newRange.startOffset, 0); assert_equals(newRange.endOffset, 5); assert_false(newRange.collapsed); diff --git a/dom/ranges/tentative/OpaqueRange-geometry-basic.html b/dom/ranges/tentative/OpaqueRange-geometry-basic.html index d29d5f035fb3e4..efe0d6590af316 100644 --- a/dom/ranges/tentative/OpaqueRange-geometry-basic.html +++ b/dom/ranges/tentative/OpaqueRange-geometry-basic.html @@ -28,7 +28,7 @@ return element; } function setupOpaqueRange(element, startOffset, endOffset){ - return element.getValueRange(startOffset, endOffset); + return element.createValueRange(startOffset, endOffset); } function assert_rect_inside(inner, outer, msg = '') { @@ -101,11 +101,11 @@ }, `Full selection bounding box inside element (${controlType})`); test(() => { - // Backwards offsets are auto-collapsed by getValueRange; caret geometry applies. + // Backwards offsets are auto-collapsed by createValueRange; caret geometry applies. document.body.innerHTML = controlType === 'input' ? '' : ''; const element = document.body.firstElementChild; - const range = element.getValueRange(3, 1); + const range = element.createValueRange(3, 1); assert_true(range.collapsed, 'collapsed'); const caretRect = range.getBoundingClientRect(); assert_approx_equals(caretRect.width, 0, 0.05, 'caret width should be 0'); diff --git a/dom/ranges/tentative/OpaqueRange-geometry-complexity-and-visibility.html b/dom/ranges/tentative/OpaqueRange-geometry-complexity-and-visibility.html index 34bdf2d9af3e4e..fd74fdb074a0ad 100644 --- a/dom/ranges/tentative/OpaqueRange-geometry-complexity-and-visibility.html +++ b/dom/ranges/tentative/OpaqueRange-geometry-complexity-and-visibility.html @@ -46,7 +46,7 @@ test(() => { const mixed = 'abc \u0645\u0631\u062D\u0628\u0627 def'; // abc مرحبا def. const element = setupControl(controlType, mixed); - const range = element.getValueRange(0, mixed.length); + const range = element.createValueRange(0, mixed.length); const boundingRect = rect(range, element, 'Bidirectional text full selection inside: '); assert_greater_than(boundingRect.width, 0); assert_greater_than(boundingRect.height, 0); @@ -59,13 +59,13 @@ const value = '\ud83c\udf20A\ud83c\udf20'; // 🌠A🌠 in UTF-16. const element = setupControl(controlType, value); - const fullRects = Array.from(element.getValueRange(0, value.length).getClientRects()); + const fullRects = Array.from(element.createValueRange(0, value.length).getClientRects()); assert_greater_than_equal(fullRects.length, 1, 'full selection has rects'); const fullWidth = fullRects[0].width; - const wHalf1 = Array.from(element.getValueRange(0, 1).getClientRects())[0]?.width ?? 0; - const wHalf2 = Array.from(element.getValueRange(1, 2).getClientRects())[0]?.width ?? 0; - const wPair = Array.from(element.getValueRange(0, 2).getClientRects())[0]?.width ?? 0; + const wHalf1 = Array.from(element.createValueRange(0, 1).getClientRects())[0]?.width ?? 0; + const wHalf2 = Array.from(element.createValueRange(1, 2).getClientRects())[0]?.width ?? 0; + const wPair = Array.from(element.createValueRange(0, 2).getClientRects())[0]?.width ?? 0; assert_greater_than(wPair, 0, 'pair width greater than 0'); assert_greater_than_equal(wPair + 0.05, Math.max(wHalf1, wHalf2), 'full pair width greater than or equal to any single code-unit slice'); @@ -79,7 +79,7 @@ : ''; const hidden = document.getElementById('test'); hidden.focus(); - const range = hidden.getValueRange(2, 2); + const range = hidden.createValueRange(2, 2); const caretRect = rect(range, hidden, 'hidden caret inside: '); assert_greater_than(caretRect.height, 0, 'caret height greater than 0'); assert_approx_equals(caretRect.width, 0, 0.05, 'caret width should be 0'); diff --git a/dom/ranges/tentative/OpaqueRange-geometry-multiline-and-mutations.html b/dom/ranges/tentative/OpaqueRange-geometry-multiline-and-mutations.html index 808428575f0f43..c5659a0b47c968 100644 --- a/dom/ranges/tentative/OpaqueRange-geometry-multiline-and-mutations.html +++ b/dom/ranges/tentative/OpaqueRange-geometry-multiline-and-mutations.html @@ -45,7 +45,7 @@ // Partial selection spanning a hard newline produces non-zero geometry and at least one client rect. const textareaElement = setupControl('textarea', 'first line\nSECOND LINE\nthird'); const firstLine = 'first line'; - const range = textareaElement.getValueRange(firstLine.length - 4, firstLine.length + 5); + const range = textareaElement.createValueRange(firstLine.length - 4, firstLine.length + 5); const boundingRect = rect(range, textareaElement, 'Bounding box inside: '); assert_greater_than(boundingRect.width, 0); assert_greater_than(boundingRect.height, 0); @@ -55,7 +55,7 @@ test(() => { // Selection that spans a blank line should still produce non-zero geometry. const textareaElement = setupControl('textarea', 'line1\n\nline3'); - const range = textareaElement.getValueRange(0, textareaElement.value.length); + const range = textareaElement.createValueRange(0, textareaElement.value.length); const boundingRect = rect(range, textareaElement, 'Bounding box inside: '); assert_greater_than(boundingRect.height, 0); assert_greater_than(boundingRect.width, 0); @@ -66,7 +66,7 @@ const textareaElement = setupControl('textarea', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789 abcdefghijklmnopqrstuvwxyz'); textareaElement.style.whiteSpace = 'pre-wrap'; textareaElement.style.width = '160px'; - const range = textareaElement.getValueRange(0, textareaElement.value.length); + const range = textareaElement.createValueRange(0, textareaElement.value.length); const boundingRect = rect(range, textareaElement, 'Bounding box inside: '); assert_greater_than_equal(range.getClientRects().length, 2, 'soft wrap multiple rects'); }, 'Soft-wrapped long single line (textarea)'); @@ -75,8 +75,8 @@ // Caret before newline and start of next line have non-decreasing y and expected x ordering. const value = '123456\n789012'; const textareaElement = setupControl('textarea', value); - const caretBeforeNewlineRect = rect(textareaElement.getValueRange(6, 6), textareaElement, 'caret before newline inside: '); - const caretNextLineRect = rect(textareaElement.getValueRange(7, 7), textareaElement, 'caret next line inside: '); + const caretBeforeNewlineRect = rect(textareaElement.createValueRange(6, 6), textareaElement, 'caret before newline inside: '); + const caretNextLineRect = rect(textareaElement.createValueRange(7, 7), textareaElement, 'caret next line inside: '); // Allow caret before newline to be aligned or slightly (sub-pixel) to the right. assert_greater_than_equal(caretBeforeNewlineRect.x + 0.5, caretNextLineRect.x, 'caret before newline at or to the right (epsilon) of next line start'); assert_less_than_equal(caretBeforeNewlineRect.y, caretNextLineRect.y, 'next line lower or equal y'); @@ -85,7 +85,7 @@ test(() => { // Live insert/delete operations adjust selection left/width as expected (grow/shift/shrink). const inputElement = setupControl('input', 'ABCDE'); - const range = inputElement.getValueRange(1, 3); + const range = inputElement.createValueRange(1, 3); const leftBeforeInsertion = rect(range, inputElement).left; inputElement.setRangeText('ZZ', 0, 0); @@ -111,7 +111,7 @@ test(() => { // Interior deletion shrinks width; insertion before selection shifts selection right in textarea. const textareaElement = setupControl('textarea', 'ABCDE'); - const range = textareaElement.getValueRange(1, 4); + const range = textareaElement.createValueRange(1, 4); const widthBeforeDeletion = rect(range, textareaElement).width; textareaElement.setRangeText('', 2, 3); assert_less_than(rect(range, textareaElement).width, widthBeforeDeletion, 'textarea interior deletion shrinks width'); @@ -124,7 +124,7 @@ test(() => { // Inserting text inside selection increases its width. const element = setupControl(controlType, 'ABCDE'); - const range = element.getValueRange(1, 4); + const range = element.createValueRange(1, 4); const widthBeforeInsertion = rect(range, element).width; element.setRangeText('ZZ', 2, 2); assert_greater_than(rect(range, element).width, widthBeforeInsertion, 'insertion inside expands width'); @@ -133,7 +133,7 @@ test(() => { // Deleting full selection collapses to a caret. const element = setupControl(controlType, 'ABCDE'); - const range = element.getValueRange(1, 4); + const range = element.createValueRange(1, 4); assert_greater_than(rect(range, element).width, 0, 'pre width greater than 0'); element.setRangeText('', 1, 4); assert_true(range.collapsed, 'collapsed after deletion'); @@ -144,7 +144,7 @@ test(() => { // Shrink near end clamps range end; subsequent insertion at end does not auto-extend. const element = setupControl(controlType, 'HelloWorld'); - const range = element.getValueRange(0, element.value.length); + const range = element.createValueRange(0, element.value.length); element.setRangeText('', 7, 10); const endAfterShrink = range.endOffset; assert_equals(endAfterShrink, element.value.length, 'end clamped after shrink'); @@ -155,7 +155,7 @@ test(() => { // Tail deletion clamps end offset while remaining selection geometry stays non-zero. const element = setupControl(controlType, 'HelloWorld'); - const range = element.getValueRange(0, element.value.length); + const range = element.createValueRange(0, element.value.length); element.setRangeText('', 5, 10); assert_equals(element.value, 'Hello', 'value shrunk to Hello'); assert_equals(range.endOffset, element.value.length, 'end offset clamped to new value length'); @@ -167,7 +167,7 @@ test(() => { // Deleting selected text collapses to a caret with zero width. const inputElement = setupControl('input', 'ABCDE'); - const range = inputElement.getValueRange(1, 4); + const range = inputElement.createValueRange(1, 4); inputElement.setRangeText('', 1, 4); assert_true(range.collapsed, 'collapsed after deletion'); assert_approx_equals(rect(range, inputElement).width, 0, 0.05, 'width should be 0'); diff --git a/dom/ranges/tentative/OpaqueRange-interactive-basic.html b/dom/ranges/tentative/OpaqueRange-interactive-basic.html index 8f5761af3c98b9..35d76f715f42a0 100644 --- a/dom/ranges/tentative/OpaqueRange-interactive-basic.html +++ b/dom/ranges/tentative/OpaqueRange-interactive-basic.html @@ -43,7 +43,7 @@ ].forEach(({ name, init, exp }) => { promise_test(async t => { const element = setup(control, init.value); - const range = element.getValueRange(init.s, init.e); + const range = element.createValueRange(init.s, init.e); element.setSelectionRange(init.caret, init.caret); await typeKeys(element, init.ins); assert_equals(range.startOffset, exp.s, 'startOffset'); @@ -59,7 +59,7 @@ ].forEach(({ name, init, exp }) => { promise_test(async t => { const element = setup(control, init.value); - const range = element.getValueRange(init.s, init.e); + const range = element.createValueRange(init.s, init.e); element.setSelectionRange(init.a, init.b); await typeKeys(element, init.text); assert_equals(range.startOffset, exp.s); @@ -83,7 +83,7 @@ ].forEach(({ name, init, exp }) => { promise_test(async t => { const element = setup(control, init.value); - const range = element.getValueRange(init.s, init.e); + const range = element.createValueRange(init.s, init.e); element.setSelectionRange(init.caret, init.caret); await typeKeys(element, init.key); assert_equals(element.value, exp.value); diff --git a/dom/ranges/tentative/OpaqueRange-interactive-overlap-and-selection.html b/dom/ranges/tentative/OpaqueRange-interactive-overlap-and-selection.html index b960e233175699..40ffd5ac18c75b 100644 --- a/dom/ranges/tentative/OpaqueRange-interactive-overlap-and-selection.html +++ b/dom/ranges/tentative/OpaqueRange-interactive-overlap-and-selection.html @@ -36,7 +36,7 @@ ].forEach(tc => { promise_test(async t => { const element = setup(control, tc.init.value); - const range = element.getValueRange(tc.init.rangeStart, tc.init.rangeEnd); + const range = element.createValueRange(tc.init.rangeStart, tc.init.rangeEnd); element.setSelectionRange(tc.init.selA, tc.init.selB); if (tc.init.key) { await typeKeys(element, tc.init.key); @@ -59,7 +59,7 @@ ].forEach(tc => { promise_test(async t => { const element = setup(control, tc.init.value); - const range = element.getValueRange(tc.init.rangeStart, tc.init.rangeEnd); + const range = element.createValueRange(tc.init.rangeStart, tc.init.rangeEnd); element.setSelectionRange(tc.init.selA, tc.init.selB); await typeKeys(element, tc.init.key); assert_equals(element.value, tc.expect.value, 'post-delete value'); @@ -73,7 +73,7 @@ promise_test(async t => { const element = setup(control, 'ABCDE'); - const range = element.getValueRange(2, 4); + const range = element.createValueRange(2, 4); element.setSelectionRange(1, 1); await typeKeys(element, KEY_DELETE); assert_equals(element.value, 'ACDE'); diff --git a/dom/ranges/tentative/OpaqueRange-offset.html b/dom/ranges/tentative/OpaqueRange-offset.html index 7d2fb891972c19..2ebc621cf4dda3 100644 --- a/dom/ranges/tentative/OpaqueRange-offset.html +++ b/dom/ranges/tentative/OpaqueRange-offset.html @@ -18,32 +18,32 @@ const element = setupControl(control, "A"); [[0, 0, true], [0, 1, false], [1, 1, true]].forEach(([start, end, collapsed]) => { - const range = element.getValueRange(start, end); + const range = element.createValueRange(start, end); assert_equals(range.startOffset, start, `[${start}, ${end}] startOffset`); assert_equals(range.endOffset, end, `[${start}, ${end}] endOffset`); assert_equals(range.collapsed, collapsed, `[${start}, ${end}] collapsed`); }); - }, `getValueRange with single character in ${control}.`); + }, `createValueRange with single character in ${control}.`); test(() => { const element = setupControl(control, ""); - const range = element.getValueRange(0, 0); + const range = element.createValueRange(0, 0); assert_equals(range.startOffset, 0); assert_equals(range.endOffset, 0); assert_true(range.collapsed); - }, `getValueRange with empty control in ${control}.`); + }, `createValueRange with empty control in ${control}.`); test(() => { const element = setupControl(control, "Hello World"); [[0, 5, false], [5, 6, false], [6, 11, false], [11, 11, true]].forEach(([start, end, collapsed]) => { - const range = element.getValueRange(start, end); + const range = element.createValueRange(start, end); assert_equals(range.startOffset, start, `[${start}, ${end}] startOffset`); assert_equals(range.endOffset, end, `[${start}, ${end}] endOffset`); assert_equals(range.collapsed, collapsed, `[${start}, ${end}] collapsed`); }); - }, `getValueRange boundary positions in ${control}.`); + }, `createValueRange boundary positions in ${control}.`); test(() => { const testCases = [ @@ -67,13 +67,13 @@ testCases.forEach(testCase => { const element = setupControl(control, testCase.text); testCase.ranges.forEach(([start, end, collapsed]) => { - const range = element.getValueRange(start, end); + const range = element.createValueRange(start, end); assert_equals(range.startOffset, start, `[${start}, ${end}] startOffset`); assert_equals(range.endOffset, end, `[${start}, ${end}] endOffset`); assert_equals(range.collapsed, collapsed, `[${start}, ${end}] collapsed`); }); }); - }, `getValueRange with Unicode characters in ${control}.`); + }, `createValueRange with Unicode characters in ${control}.`); }); @@ -83,11 +83,11 @@ const textarea = document.body.firstElementChild; // Whitespace is preserved in textarea.value. - const range = textarea.getValueRange(0, textarea.value.length); + const range = textarea.createValueRange(0, textarea.value.length); assert_equals(range.startOffset, 0); assert_equals(range.endOffset, textarea.value.length); assert_false(range.collapsed); -}, "getValueRange on textarea with whitespace in light DOM."); +}, "createValueRange on textarea with whitespace in light DOM."); test(() => { document.body.innerHTML = ''; @@ -105,12 +105,12 @@ textarea.append(document.createTextNode("Some rendered content")); textarea.append(document.createTextNode("Some more rendered content")); - // getValueRange uses element.value, which includes text nodes but ignores element children. - const range = textarea.getValueRange(0, textarea.value.length); + // createValueRange uses element.value, which includes text nodes but ignores element children. + const range = textarea.createValueRange(0, textarea.value.length); assert_equals(range.startOffset, 0); assert_equals(range.endOffset, textarea.value.length); assert_false(range.collapsed); -}, "getValueRange works correctly with weirdly formed light DOM structure."); +}, "createValueRange works correctly with weirdly formed light DOM structure."); test(() => { // Test input with child nodes (which shouldn't exist but might) @@ -121,11 +121,11 @@ input.appendChild(document.createTextNode("Ignored")); input.appendChild(document.createElement("span")).textContent = "AlsoIgnored"; - const range = input.getValueRange(0, input.value.length); + const range = input.createValueRange(0, input.value.length); // Input.value is unaffected by child nodes. assert_equals(range.startOffset, 0); assert_equals(range.endOffset, 8); // "Original".length assert_false(range.collapsed); -}, "getValueRange ignores malformed input child nodes."); +}, "createValueRange ignores malformed input child nodes."); diff --git a/dom/ranges/tentative/OpaqueRange-programmatic-updates.html b/dom/ranges/tentative/OpaqueRange-programmatic-updates.html index 718c4380ef35a9..f03c345a047472 100644 --- a/dom/ranges/tentative/OpaqueRange-programmatic-updates.html +++ b/dom/ranges/tentative/OpaqueRange-programmatic-updates.html @@ -51,7 +51,7 @@ // OpaqueRange: full .value replacement (shorter) collapses to [0,0]. let element = setup(control, 'ABCDEFG'); - let range = element.getValueRange(2, 5); + let range = element.createValueRange(2, 5); element.value = 'XY'; assert_equals(range.startOffset, 0, 'OpaqueRange shorter: start collapsed to 0'); assert_equals(range.endOffset, 0, 'OpaqueRange shorter: end collapsed to 0'); @@ -65,7 +65,7 @@ // OpaqueRange: full .value replacement (longer) collapses to [0,0]. element = setup(control, 'ABC'); - range = element.getValueRange(1, 3); + range = element.createValueRange(1, 3); element.value = 'ABCDEFGHIJKLMNOP'; assert_equals(range.startOffset, 0, 'OpaqueRange longer: start collapsed to 0'); assert_equals(range.endOffset, 0, 'OpaqueRange longer: end collapsed to 0'); @@ -81,7 +81,7 @@ // OpaqueRange: same scenario. const element = setup(control, 'ABCDE'); - const range = element.getValueRange(0, 5); + const range = element.createValueRange(0, 5); element.value = 'VWXYZ'; assert_equals(range.startOffset, 0, 'OpaqueRange whole-old: start collapsed to 0'); assert_equals(range.endOffset, 0, 'OpaqueRange whole-old: end collapsed to 0'); @@ -97,7 +97,7 @@ // OpaqueRange: same scenario. const element = setup(control, 'ABCDE'); - const range = element.getValueRange(1, 4); + const range = element.createValueRange(1, 4); element.value = 'VWXYZ'; assert_equals(range.startOffset, 0, 'OpaqueRange equal-length: start collapsed to 0'); assert_equals(range.endOffset, 0, 'OpaqueRange equal-length: end collapsed to 0'); @@ -114,7 +114,7 @@ // OpaqueRange: same replace via setRangeText. const element = setup(control, '0123456789'); - const range = element.getValueRange(2, 8); + const range = element.createValueRange(2, 8); element.setRangeText('XX', 3, 7); assert_equals(element.value, '012XX789', 'OpaqueRange value reflects setRangeText replace'); assert_equals(range.startOffset, 2, 'OpaqueRange start unchanged before replaced segment'); @@ -130,7 +130,7 @@ // OpaqueRange: setting same value (no-op); range unchanged. const element = setup(control, 'HELLO'); - const range = element.getValueRange(1, 4); + const range = element.createValueRange(1, 4); element.value = 'HELLO'; assert_equals(range.startOffset, 1, 'OpaqueRange start unchanged on no-op'); assert_equals(range.endOffset, 4, 'OpaqueRange end unchanged on no-op'); @@ -147,7 +147,7 @@ // OpaqueRange: same insert via setRangeText. const element = setup(control, 'ABCDE'); - const range = element.getValueRange(2, 4); + const range = element.createValueRange(2, 4); element.setRangeText('Q', 1, 1); assert_equals(element.value, 'AQBCDE', 'OpaqueRange value after insertion before range'); assert_equals(range.startOffset, 3, 'OpaqueRange start +1'); @@ -165,7 +165,7 @@ // OpaqueRange: same delete via setRangeText. const element = setup(control, 'ABCDE'); - const range = element.getValueRange(1, 5); + const range = element.createValueRange(1, 5); element.setRangeText('', 2, 3); assert_equals(element.value, 'ABDE', 'OpaqueRange value after interior deletion'); assert_equals(range.startOffset, 1, 'OpaqueRange start unchanged'); @@ -183,7 +183,7 @@ // OpaqueRange: same replacement via setRangeText. const element = setup(control, 'ABCDEFGHIJ'); - const range = element.getValueRange(7, 10); + const range = element.createValueRange(7, 10); element.setRangeText('Z', 2, 5); assert_equals(element.value, 'ABZFGHIJ', 'OpaqueRange value after before-range shrink'); assert_equals(range.startOffset, 5, 'OpaqueRange start -2'); @@ -201,7 +201,7 @@ // OpaqueRange: same replacement via setRangeText. const element = setup(control, 'ABCDEFGHIJ'); - const range = element.getValueRange(2, 5); + const range = element.createValueRange(2, 5); element.setRangeText('WXYZ', 7, 9); assert_equals(element.value, 'ABCDEFGWXYZJ', 'OpaqueRange value after after-range grow'); assert_equals(range.startOffset, 2, 'OpaqueRange start unchanged'); @@ -219,7 +219,7 @@ // OpaqueRange: same replacement via setRangeText. const element = setup(control, 'ABCDEFG'); - const range = element.getValueRange(2, 5); + const range = element.createValueRange(2, 5); element.setRangeText('Q', 1, 6); assert_equals(element.value, 'AQG', 'OpaqueRange value after superset replacement'); assert_equals(range.startOffset, 1, 'OpaqueRange collapsed to change start'); @@ -238,7 +238,7 @@ // OpaqueRange: same insertion via setRangeText. const element = setup(control, 'ABCDE'); - const range = element.getValueRange(2, 4); + const range = element.createValueRange(2, 4); element.setRangeText('QQ', 2, 2); assert_equals(element.value, 'ABQQCDE', 'OpaqueRange value after insert at start boundary'); assert_equals(range.startOffset, 2, 'OpaqueRange start unchanged at boundary'); @@ -256,7 +256,7 @@ // OpaqueRange: same insertion via setRangeText. const element = setup(control, 'ABCDE'); - const range = element.getValueRange(2, 4); + const range = element.createValueRange(2, 4); element.setRangeText('QQ', 4, 4); assert_equals(element.value, 'ABCDQQE', 'OpaqueRange value after insert at end boundary'); assert_equals(range.startOffset, 2, 'OpaqueRange start unchanged'); @@ -273,7 +273,7 @@ // OpaqueRange: same replacement via setRangeText. const element = setup(control, 'A😀BC'); - const range = element.getValueRange(1, 4); + const range = element.createValueRange(1, 4); element.setRangeText('🙂🙂', 1, 3); assert_equals(range.startOffset, 1, 'OpaqueRange start unchanged inside growth'); assert_equals(range.endOffset, 6, 'OpaqueRange end +2 code units'); @@ -291,7 +291,7 @@ // OpaqueRange: same edits via setRangeText. const element = setup(control, '012345'); - const range = element.getValueRange(2, 5); + const range = element.createValueRange(2, 5); element.setRangeText('XX', 3, 4); element.setRangeText('', 3, 5); assert_equals(element.value, '01245', 'OpaqueRange final value after chained edits'); diff --git a/dom/ranges/tentative/OpaqueRange-range-updates.html b/dom/ranges/tentative/OpaqueRange-range-updates.html index f078c2225fbb05..35879f00482e0d 100644 --- a/dom/ranges/tentative/OpaqueRange-range-updates.html +++ b/dom/ranges/tentative/OpaqueRange-range-updates.html @@ -7,14 +7,14 @@ document.body.innerHTML = ''; const textarea = document.body.firstElementChild; - const range1 = textarea.getValueRange(0, 5); + const range1 = textarea.createValueRange(0, 5); assert_equals(range1.startOffset, 0); assert_equals(range1.endOffset, 5); - const range2 = textarea.getValueRange(6, 11); + const range2 = textarea.createValueRange(6, 11); assert_equals(range2.startOffset, 6); assert_equals(range2.endOffset, 11); -}, "getValueRange creates independent ranges on same element."); +}, "createValueRange creates independent ranges on same element."); test(() => { document.body.innerHTML = ''; @@ -22,7 +22,7 @@ const textarea = document.body.children[1]; // Get range on . - const inputRange = input.getValueRange(0, 4); + const inputRange = input.createValueRange(0, 4); // Opaque range: containers are null. assert_equals(inputRange.startContainer, null); assert_equals(inputRange.endContainer, null); @@ -30,12 +30,12 @@ assert_equals(inputRange.endOffset, 4); // Get range on '; const textarea = document.body.firstElementChild; - const range = textarea.getValueRange(1, 5); + const range = textarea.createValueRange(1, 5); assert_equals(range.startOffset, 1); assert_equals(range.endOffset, 5); diff --git a/dom/ranges/tentative/OpaqueRange-supported-elements.html b/dom/ranges/tentative/OpaqueRange-supported-elements.html index 8bbe3bd306e3d5..c16b853154b730 100644 --- a/dom/ranges/tentative/OpaqueRange-supported-elements.html +++ b/dom/ranges/tentative/OpaqueRange-supported-elements.html @@ -16,7 +16,7 @@ const element = document.body.firstElementChild; const value = element.value || element.textContent; - const range = element.getValueRange(0, value.length); + const range = element.createValueRange(0, value.length); // Opaque range: containers are null. assert_equals(range.startContainer, null, 'startContainer should be null'); @@ -24,6 +24,6 @@ assert_equals(range.startOffset, 0); assert_equals(range.endOffset, value.length); assert_false(range.collapsed); - }, `getValueRange should work on ${name}.`); + }, `createValueRange should work on ${name}.`); }); diff --git a/dom/ranges/tentative/OpaqueRange-unsupported-elements.html b/dom/ranges/tentative/OpaqueRange-unsupported-elements.html index 2eee48b67c32da..49c93be44d607c 100644 --- a/dom/ranges/tentative/OpaqueRange-unsupported-elements.html +++ b/dom/ranges/tentative/OpaqueRange-unsupported-elements.html @@ -25,8 +25,8 @@ doc.body.appendChild(input); assert_throws_dom("NotSupportedError", () => { - input.getValueRange(0, 0); - }, `getValueRange should throw NotSupportedError for ${input.outerHTML}`); + input.createValueRange(0, 0); + }, `createValueRange should throw NotSupportedError for ${input.outerHTML}`); }); -}, "getValueRange throws NotSupportedError for unsupported input types."); +}, "createValueRange throws NotSupportedError for unsupported input types."); diff --git a/dom/ranges/tentative/OpaqueRange-update-event-order.html b/dom/ranges/tentative/OpaqueRange-update-event-order.html index a95603ab4efdca..ffd58c58064e97 100644 --- a/dom/ranges/tentative/OpaqueRange-update-event-order.html +++ b/dom/ranges/tentative/OpaqueRange-update-event-order.html @@ -28,7 +28,7 @@ controls.forEach(control => { promise_test(async t => { const element = setup(control, 'ABCDE'); - const range = element.getValueRange(1, 3); + const range = element.createValueRange(1, 3); // Place caret before the range, then insert text. element.setSelectionRange(0, 0); @@ -71,7 +71,7 @@ promise_test(async t => { const element = setup(control, 'ABCDE'); - const range = element.getValueRange(1, 3); + const range = element.createValueRange(1, 3); element.setSelectionRange(0, 0); let beforeSnapshot = null; diff --git a/dom/ranges/tentative/OpaqueRange-validation.html b/dom/ranges/tentative/OpaqueRange-validation.html index 478c0a750e98dc..58096cdb0daabf 100644 --- a/dom/ranges/tentative/OpaqueRange-validation.html +++ b/dom/ranges/tentative/OpaqueRange-validation.html @@ -9,8 +9,8 @@ const textarea = document.querySelector('textarea'); // Out-of-bounds offsets should throw. - assert_throws_dom("IndexSizeError", () => textarea.getValueRange(10, 15)); -}, "getValueRange throws IndexSizeError for out-of-bounds offsets."); + assert_throws_dom("IndexSizeError", () => textarea.createValueRange(10, 15)); +}, "createValueRange throws IndexSizeError for out-of-bounds offsets."); test(() => { const textarea = document.querySelector('textarea'); @@ -35,14 +35,14 @@ [10, 15, true], ].forEach(([start, end, shouldThrow, expectedStart, expectedEnd, expectedCollapsed]) => { if (shouldThrow) { - assert_throws_dom("IndexSizeError", () => textarea.getValueRange(start, end), + assert_throws_dom("IndexSizeError", () => textarea.createValueRange(start, end), `[${start}, ${end}] should throw`); } else { - const range = textarea.getValueRange(start, end); + const range = textarea.createValueRange(start, end); assert_equals(range.startOffset, expectedStart, `[${start}, ${end}] startOffset`); assert_equals(range.endOffset, expectedEnd, `[${start}, ${end}] endOffset`); assert_equals(range.collapsed, expectedCollapsed, `[${start}, ${end}] collapsed`); } }); -}, "getValueRange handles all range types correctly: forward, backwards, and out-of-bounds."); +}, "createValueRange handles all range types correctly: forward, backwards, and out-of-bounds.");