[webcodecs] Deprecate VideoFrame.destroy().

This CL adds VideoFrame.close() as an alias for VideoFrame.destroy(),
adds a deprecation message for VideoFrame.destroy(), and changes all
callsites to use close().

Bug: 1166930
Change-Id: I39b9c68262553a6814f6bb0b6b81c02012c2d026
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2631405
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Reviewed-by: Eugene Zemtsov <eugene@chromium.org>
Reviewed-by: Guido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#844250}
diff --git a/webcodecs/video-decoder.any.js b/webcodecs/video-decoder.any.js
index 33ea2db..44e7375 100644
--- a/webcodecs/video-decoder.any.js
+++ b/webcodecs/video-decoder.any.js
@@ -199,7 +199,7 @@
         assert_equals(frame.cropWidth, 320, "cropWidth");
         assert_equals(frame.cropHeight, 240, "cropHeight");
         assert_equals(frame.timestamp, 0, "timestamp");
-        frame.destroy();
+        frame.close();
       });
     },
     error(e) {
diff --git a/webcodecs/video-encoder.any.js b/webcodecs/video-encoder.any.js
index 77fe184..d86e6b6 100644
--- a/webcodecs/video-encoder.any.js
+++ b/webcodecs/video-encoder.any.js
@@ -222,14 +222,14 @@
 
   encoder.encode(frame);
 
-  // |frame| is not longer valid since it has been destroyed.
+  // |frame| is not longer valid since it has been closed.
   assert_not_equals(frame.timestamp, timestamp);
   assert_throws_dom("InvalidStateError", () => frame.clone());
 
   encoder.close();
 
   return endAfterEventLoopTurn();
-}, 'Test encoder consumes (destroys) frames.');
+}, 'Test encoder consumes (closes) frames.');
 
 promise_test(async t => {
   let encoder = new VideoEncoder(getDefaultCodecInit(t));
@@ -251,12 +251,11 @@
   let encoder = new VideoEncoder(getDefaultCodecInit(t));
 
   let frame = await createVideoFrame(640, 480, 0);
-  frame.destroy();
+  frame.close();
 
   encoder.configure(defaultConfig);
 
-  frame.destroy();
   assert_throws_dom("OperationError", () => {
     encoder.encode(frame)
   });
-}, 'Verify encoding destroyed frames throws.');
+}, 'Verify encoding closed frames throws.');
diff --git a/webcodecs/video-frame-serialization.any.js b/webcodecs/video-frame-serialization.any.js
index 524f943..338f721 100644
--- a/webcodecs/video-frame-serialization.any.js
+++ b/webcodecs/video-frame-serialization.any.js
@@ -25,8 +25,8 @@
   assert_equals(frame.cropWidth, clone.cropWidth);
   assert_equals(frame.cropHeight, clone.cropHeight);
 
-  frame.destroy();
-  clone.destroy();
+  frame.close();
+  clone.close();
 }, 'Test we can clone a VideoFrame.');
 
 test(t => {
@@ -35,23 +35,23 @@
   let copy = frame;
   let clone = frame.clone();
 
-  frame.destroy();
+  frame.close();
 
   assert_not_equals(copy.timestamp, defaultInit.timestamp);
   assert_equals(clone.timestamp, defaultInit.timestamp);
 
-  clone.destroy();
-}, 'Verify destroying a frame doesn\'t affect its clones.');
+  clone.close();
+}, 'Verify closing a frame doesn\'t affect its clones.');
 
 test(t => {
   let frame = createDefaultVideoFrame();
 
-  frame.destroy();
+  frame.close();
 
   assert_throws_dom("InvalidStateError", () => {
     let clone = frame.clone();
   });
-}, 'Verify cloning a destroyed frame throws.');
+}, 'Verify cloning a closed frame throws.');
 
 async_test(t => {
   let localFrame = createDefaultVideoFrame();
@@ -62,7 +62,7 @@
 
   externalPort.onmessage = t.step_func((e) => {
     let externalFrame = e.data;
-    externalFrame.destroy();
+    externalFrame.close();
     externalPort.postMessage("Done");
   })
 
@@ -72,7 +72,7 @@
 
   localPort.postMessage(localFrame);
 
-}, 'Verify destroying frames propagates accross contexts.');
+}, 'Verify closing frames propagates accross contexts.');
 
 async_test(t => {
   let localFrame = createDefaultVideoFrame();
@@ -83,18 +83,18 @@
 
   externalPort.onmessage = t.step_func((e) => {
     let externalFrame = e.data;
-    externalFrame.destroy();
+    externalFrame.close();
     externalPort.postMessage("Done");
   })
 
   localPort.onmessage = t.step_func_done((e) => {
     assert_equals(localFrame.timestamp, defaultInit.timestamp);
-    localFrame.destroy();
+    localFrame.close();
   })
 
   localPort.postMessage(localFrame.clone());
 
-}, 'Verify destroying cloned frames doesn\'t propagate accross contexts.');
+}, 'Verify closing cloned frames doesn\'t propagate accross contexts.');
 
 async_test(t => {
   let localFrame = createDefaultVideoFrame();
@@ -104,11 +104,11 @@
 
   localPort.onmessage = t.unreached_func();
 
-  localFrame.destroy();
+  localFrame.close();
 
   assert_throws_dom("DataCloneError", () => {
     localPort.postMessage(localFrame);
   });
 
   t.done();
-}, 'Verify posting destroyed frames throws.');
+}, 'Verify posting closed frames throws.');
diff --git a/webcodecs/video-frame.any.js b/webcodecs/video-frame.any.js
index 9eb6699..14cce43 100644
--- a/webcodecs/video-frame.any.js
+++ b/webcodecs/video-frame.any.js
@@ -12,7 +12,7 @@
   assert_equals(frame.cropWidth, 32, "displayWidth");
   assert_equals(frame.cropHeight, 16, "displayHeight");
 
-  frame.destroy();
+  frame.close();
 }, 'Test we can construct a VideoFrame.');
 
 test(t => {
@@ -24,7 +24,7 @@
   assert_equals(frame.cropWidth, 1, "displayWidth");
   assert_equals(frame.cropHeight, 1, "displayHeight");
 
-  frame.destroy();
+  frame.close();
 }, 'Test we can construct an odd-sized VideoFrame.');
 
 test(t => {
@@ -63,7 +63,7 @@
   // guarantees about the color space.
   assert_equals(view[0], 94, "Y value at (0, 0)");
 
-  frame.destroy();
+  frame.close();
 }, 'Test we can read planar data from a VideoFrame.');
 
 test(t => {
@@ -78,15 +78,15 @@
 
   assert_equals(frame.planes.length, 3, "number of planes");
 
-  // Attempt to read Y plane data, but destroy the frame first.
+  // Attempt to read Y plane data, but close the frame first.
   let yPlane = frame.planes[0];
   let yLength = yPlane.length;
-  frame.destroy();
+  frame.close();
 
   let buffer = new ArrayBuffer(yLength);
   let view = new Uint8Array(buffer);
   assert_throws_dom("InvalidStateError", () => yPlane.readInto(view));
-}, 'Test we cannot read planar data from a destroyed VideoFrame.');
+}, 'Test we cannot read planar data from a closed VideoFrame.');
 
 test(t => {
   let image = makeImageBitmap(32, 16);
diff --git a/webcodecs/video-track-reader.html b/webcodecs/video-track-reader.html
index b5d610e..925e837 100644
--- a/webcodecs/video-track-reader.html
+++ b/webcodecs/video-track-reader.html
@@ -38,7 +38,7 @@
       assert_equals(frame.codedWidth, testVideo.width);
       assert_equals(frame.codedHeight, testVideo.height);
       assert_not_equals(frame.timestamp, null);
-      frame.destroy();
+      frame.close();
 
       if (++numberFrames == 5) {
         vtr.stop();