| Index: third_party/WebKit/LayoutTests/editing/input/text-input-controller-leak-document.html
|
| diff --git a/third_party/WebKit/LayoutTests/editing/input/text-input-controller-leak-document.html b/third_party/WebKit/LayoutTests/editing/input/text-input-controller-leak-document.html
|
| index cc74c3d30184c09eba48f2dfcb50b61a9ce1ce82..9ddfcdb3e15534522734973a3ac69f40f500ca65 100644
|
| --- a/third_party/WebKit/LayoutTests/editing/input/text-input-controller-leak-document.html
|
| +++ b/third_party/WebKit/LayoutTests/editing/input/text-input-controller-leak-document.html
|
| @@ -4,22 +4,23 @@
|
|
|
| <script src="../../resources/js-test.js"></script>
|
| <script>
|
| - var input = document.getElementById('text');
|
| - input.focus();
|
| - textInputController.setMarkedText("hello", 0, 5);
|
| - // Do not pass the object directly to observeGC function. This may
|
| - // remain live on this function's stack preventing GC from collecting
|
| - // it. Accessing the object inside an inner function will prevent any
|
| - // unneeded references on this function's stack.
|
| - var markedRangeResultGC = internals.observeGC((() => {
|
| - return textInputController.markedRange();
|
| - })());
|
| - var selectedRangeResultGC = internals.observeGC((() => {
|
| - return textInputController.selectedRange();
|
| - })());
|
| - var firstRectForCharacterRangeGC = internals.observeGC((() => {
|
| - return textInputController.firstRectForCharacterRange(0, 0);
|
| - })());
|
| + // Do initialization work in an inner function to avoid references to
|
| + // objects remaining live on this function's stack frame.
|
| + // (http://crbug.com/595672/).
|
| + var markedRangeResultGC, selectedRangeResultGC,
|
| + firstRectForCharacterRangeGC;
|
| + (function() {
|
| + var input = document.getElementById('text');
|
| + input.focus();
|
| + textInputController.setMarkedText("hello", 0, 5);
|
| + markedRangeResultGC = internals.observeGC(
|
| + textInputController.markedRange());
|
| + selectedRangeResultGC = internals.observeGC(
|
| + textInputController.selectedRange());
|
| + firstRectForCharacterRangeGC = internals.observeGC(
|
| + textInputController.firstRectForCharacterRange(0, 0));
|
| + })();
|
| +
|
| gc();
|
| shouldBeTrue('markedRangeResultGC.wasCollected');
|
| shouldBeTrue('selectedRangeResultGC.wasCollected');
|
|
|