Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(266)

Unified Diff: third_party/WebKit/LayoutTests/fast/dom/custom/leaks.html

Issue 1964403002: Retire leak-check.js. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/fast/dom/custom/leaks.html
diff --git a/third_party/WebKit/LayoutTests/fast/dom/custom/leaks.html b/third_party/WebKit/LayoutTests/fast/dom/custom/leaks.html
deleted file mode 100644
index 3a4b895f653126775c2063b4a7ca52110e2dc0c2..0000000000000000000000000000000000000000
--- a/third_party/WebKit/LayoutTests/fast/dom/custom/leaks.html
+++ /dev/null
@@ -1,151 +0,0 @@
-<!DOCTYPE html>
-<script src="../../../resources/js-test.js"></script>
-<script src="testutils.js"></script>
-<body>
-<script>
-description('Tests that Custom Elements does not induce leaks');
-var jsTestIsAsync = true;
-
-if (!window.internals)
- testFailed('this test requires window.internals');
-
-function step1() {
- debug('Test a custom element with minimal capturing');
-
- withFrame(function (frame) {
- // Create some upgrade candidates
- frame.contentDocument.body.innerHTML = '<x-x><x-x></x-x></x-x>';
-
- // Register a custom element
-
- var proto = Object.create(frame.contentWindow.HTMLElement.prototype);
- proto.createdCallback = function () {};
- proto.attachedCallback = function () {};
- proto.detachedCallback = function () {};
- proto.attributeChangedCallback = function () {};
-
- var ctor = frame.contentDocument.registerElement('x-x', {prototype: proto});
-
- // Create some instances
-
- frame.contentDocument.createElement('x-x');
- frame.contentDocument.body.appendChild(new ctor());
- frame.contentDocument.body.firstElementChild.innerHTML = '<x-x></x-x>';
-
- // Watch to see that some objects die
-
- observations = {
- 'frame': internals.observeGC(frame),
- 'window': internals.observeGC(frame.contentWindow),
- 'document': internals.observeGC(frame.contentDocument),
- 'proto': internals.observeGC(proto),
- 'ctor': internals.observeGC(ctor),
- 'callback': internals.observeGC(proto.attributeChangedCallback)
- };
-
- // Throw everything away
- frame.remove();
-
- // We check leaks in a separate closure.
- checkLeaks(step2);
- });
-}
-
-function step2() {
- debug('Test callbacks which close over a bunch of objects');
-
- withFrame(function (frame) {
- // Register a custom element with a callback which closes over
- // the prototype, constructor, document, window and frame.
-
- var contentWindow = frame.contentWindow;
- var contentDocument = frame.contentDocument;
-
- var proto = Object.create(contentWindow.HTMLElement.prototype);
- proto.attributeChangedCallback = function () {
- var goodies = [proto, ctor, contentDocument, contentWindow, frame];
- goodies.forEach(function (loot) { console.log(loot); });
- };
- var ctor = contentDocument.registerElement('x-x', {prototype: proto});
-
- // Create an instance; put it in the document
- var elem = new ctor();
- contentDocument.body.appendChild(elem);
-
- // Watch to see that some objects die
-
- observations = {
- 'frame': internals.observeGC(frame),
- 'window': internals.observeGC(contentWindow),
- 'document': internals.observeGC(contentDocument),
- 'proto': internals.observeGC(proto),
- 'ctor': internals.observeGC(ctor),
- 'callback': internals.observeGC(proto.attributeChangedCallback)
- };
-
- // Throw everything away
- frame.remove();
- checkLeaks(step3);
- });
-}
-
-function step3() {
- debug('Test that navigating a frame with custom elements does not leak');
-
- withFrame(function (frame) {
- // Register a custom element with a callback which closes over
- // the prototype, constructor, document, window and frame.
-
- var contentWindow = frame.contentWindow;
- var contentDocument = frame.contentDocument;
-
- var proto = Object.create(contentWindow.HTMLElement.prototype);
- proto.attributeChangedCallback = function () {
- var goodies = [proto, ctor, contentDocument, contentWindow, frame];
- goodies.forEach(function (loot) { console.log(loot); });
- };
- var ctor = contentDocument.registerElement('x-x', {prototype: proto});
-
- // Create an instance; put it in the document *and* point to
- // it from the window.
- var elem = new ctor();
- contentDocument.body.appendChild(elem);
- contentWindow.thePrecious = elem;
-
- // Watch to see that some objects die; we don't watch the
- // window because Blink recycles the window
-
- observations = {
- 'document': internals.observeGC(contentDocument),
- 'proto': internals.observeGC(proto),
- 'ctor': internals.observeGC(ctor),
- 'callback': internals.observeGC(proto.attributeChangedCallback)
- };
-
- // Throw everything away
- frame.onload = checkLeaksAndFinishTest;
- frame.src = 'about:blank';
- });
-}
-
-function checkLeaksAndFinishTest() {
- checkLeaks(finishJSTest);
-}
-
-function checkLeaks(nextStep) {
- setTimeout(function () {
- gc();
-
- // Check that everything that should have died, did die
- for (var prop in observations)
- shouldBeTrue('observations.' + prop + '.wasCollected');
-
- observations = null;
-
- nextStep();
- }, 0);
-}
-
-step1();
-var successfullyParsed = true;
-</script>

Powered by Google App Engine
This is Rietveld 408576698