<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[199985] trunk</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/199985">199985</a></dd>
<dt>Author</dt> <dd>youenn.fablet@crf.canon.fr</dd>
<dt>Date</dt> <dd>2016-04-25 03:23:41 -0700 (Mon, 25 Apr 2016)</dd>
</dl>
<h3>Log Message</h3>
<pre>Drop [UsePointersEvenForNonNullableObjectArguments] from File API interfaces
https://bugs.webkit.org/show_bug.cgi?id=156898
Reviewed by Chris Dumez.
Source/WebCore:
Making FileReaderSync API API throwing a TypeError in case of null parameters, in lieu of a NOT_FOUND_ERR.
Making FileReader API taking nullable parameters as a temporary fix.
Test: fast/files/workers/worker-file-reader-sync-bad-parameter.html
* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::processOutgoingFrameQueue): Updated to cope with FileReaderLoader::start taking a Blob&.
* fileapi/FileReader.cpp:
(WebCore::FileReader::readAsArrayBuffer): Updated to cope with readInternal taking a Blob&.
(WebCore::FileReader::readAsBinaryString): Ditto.
(WebCore::FileReader::readAsText): Ditto.
(WebCore::FileReader::readAsDataURL): Ditto.
(WebCore::FileReader::readInternal): Updated to cope with FileReaderLoader::start taking a Blob&.
* fileapi/FileReader.h:
* fileapi/FileReader.idl: Marking the readXX methods as taking a nullable blob parameter to keep compatibility, at least temporarily.
* fileapi/FileReaderLoader.cpp:
(WebCore::FileReaderLoader::start): It now takes a Blob& as input.
* fileapi/FileReaderLoader.h:
* fileapi/FileReaderSync.cpp:
(WebCore::FileReaderSync::readAsArrayBuffer): Taking a Blob& as input.
(WebCore::FileReaderSync::readAsBinaryString): Ditto.
(WebCore::FileReaderSync::readAsText): Ditto.
(WebCore::FileReaderSync::readAsDataURL): Ditto.
(WebCore::FileReaderSync::startLoading) Ditto.
* fileapi/FileReaderSync.h:
(WebCore::FileReaderSync::readAsText): Ditto.
* fileapi/FileReaderSync.idl:
LayoutTests:
Checking FileReaderSync send method in case of null or undefined blob parameter.
worker-read-blob-sync.html and worker-read-file-sync check the case of badly typed parameters.
In all cases, TypeError is thrown.
* fast/files/workers/resources/worker-file-reader-sync-bad-parameter.js: Added.
(test):
* fast/files/workers/worker-file-reader-sync-bad-parameter-expected.txt: Added.
* fast/files/workers/worker-file-reader-sync-bad-parameter.html: Added.
* fast/files/workers/worker-read-blob-sync-expected.txt: Rebasing expectation.
* fast/files/workers/worker-read-file-sync-expected.txt: Ditto.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfastfilesworkersworkerreadblobsyncexpectedtxt">trunk/LayoutTests/fast/files/workers/worker-read-blob-sync-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastfilesworkersworkerreadfilesyncexpectedtxt">trunk/LayoutTests/fast/files/workers/worker-read-file-sync-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModuleswebsocketsWebSocketChannelcpp">trunk/Source/WebCore/Modules/websockets/WebSocketChannel.cpp</a></li>
<li><a href="#trunkSourceWebCorefileapiFileReadercpp">trunk/Source/WebCore/fileapi/FileReader.cpp</a></li>
<li><a href="#trunkSourceWebCorefileapiFileReaderh">trunk/Source/WebCore/fileapi/FileReader.h</a></li>
<li><a href="#trunkSourceWebCorefileapiFileReaderidl">trunk/Source/WebCore/fileapi/FileReader.idl</a></li>
<li><a href="#trunkSourceWebCorefileapiFileReaderLoadercpp">trunk/Source/WebCore/fileapi/FileReaderLoader.cpp</a></li>
<li><a href="#trunkSourceWebCorefileapiFileReaderLoaderh">trunk/Source/WebCore/fileapi/FileReaderLoader.h</a></li>
<li><a href="#trunkSourceWebCorefileapiFileReaderSynccpp">trunk/Source/WebCore/fileapi/FileReaderSync.cpp</a></li>
<li><a href="#trunkSourceWebCorefileapiFileReaderSynch">trunk/Source/WebCore/fileapi/FileReaderSync.h</a></li>
<li><a href="#trunkSourceWebCorefileapiFileReaderSyncidl">trunk/Source/WebCore/fileapi/FileReaderSync.idl</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfastfilesworkersresourcesworkerfilereadersyncbadparameterjs">trunk/LayoutTests/fast/files/workers/resources/worker-file-reader-sync-bad-parameter.js</a></li>
<li><a href="#trunkLayoutTestsfastfilesworkersworkerfilereadersyncbadparameterexpectedtxt">trunk/LayoutTests/fast/files/workers/worker-file-reader-sync-bad-parameter-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastfilesworkersworkerfilereadersyncbadparameterhtml">trunk/LayoutTests/fast/files/workers/worker-file-reader-sync-bad-parameter.html</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (199984 => 199985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-04-25 10:08:13 UTC (rev 199984)
+++ trunk/LayoutTests/ChangeLog        2016-04-25 10:23:41 UTC (rev 199985)
</span><span class="lines">@@ -1,3 +1,21 @@
</span><ins>+2016-04-25 Youenn Fablet <youenn.fablet@crf.canon.fr>
+
+ Drop [UsePointersEvenForNonNullableObjectArguments] from File API interfaces
+ https://bugs.webkit.org/show_bug.cgi?id=156898
+
+ Reviewed by Chris Dumez.
+
+ Checking FileReaderSync send method in case of null or undefined blob parameter.
+ worker-read-blob-sync.html and worker-read-file-sync check the case of badly typed parameters.
+ In all cases, TypeError is thrown.
+
+ * fast/files/workers/resources/worker-file-reader-sync-bad-parameter.js: Added.
+ (test):
+ * fast/files/workers/worker-file-reader-sync-bad-parameter-expected.txt: Added.
+ * fast/files/workers/worker-file-reader-sync-bad-parameter.html: Added.
+ * fast/files/workers/worker-read-blob-sync-expected.txt: Rebasing expectation.
+ * fast/files/workers/worker-read-file-sync-expected.txt: Ditto.
+
</ins><span class="cx"> 2016-04-25 Manuel Rego Casasnovas <rego@igalia.com>
</span><span class="cx">
</span><span class="cx"> [css-grid] Fix grid-template-columns|rows computed style with content alignment
</span></span></pre></div>
<a id="trunkLayoutTestsfastfilesworkersresourcesworkerfilereadersyncbadparameterjs"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/files/workers/resources/worker-file-reader-sync-bad-parameter.js (0 => 199985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/files/workers/resources/worker-file-reader-sync-bad-parameter.js         (rev 0)
+++ trunk/LayoutTests/fast/files/workers/resources/worker-file-reader-sync-bad-parameter.js        2016-04-25 10:23:41 UTC (rev 199985)
</span><span class="lines">@@ -0,0 +1,19 @@
</span><ins>+if (self.importScripts)
+ self.importScripts('../../../../resources/testharness.js');
+
+test(function() {
+ assert_throws(new TypeError(), function() { new FileReaderSync().readAsBinaryString(null); });
+ assert_throws(new TypeError(), function() { new FileReaderSync().readAsArrayBuffer(null); });
+ assert_throws(new TypeError(), function() { new FileReaderSync().readAsText(null); });
+ assert_throws(new TypeError(), function() { new FileReaderSync().readAsDataURL(null); });
+}, "Trying to read a null parameter");
+
+
+test(function() {
+ assert_throws(new TypeError(), function() { new FileReaderSync().readAsBinaryString(undefined); });
+ assert_throws(new TypeError(), function() { new FileReaderSync().readAsArrayBuffer(undefined); });
+ assert_throws(new TypeError(), function() { new FileReaderSync().readAsText(undefined); });
+ assert_throws(new TypeError(), function() { new FileReaderSync().readAsDataURL(undefined); });
+}, "Trying to read an undefined parameter");
+
+done();
</ins></span></pre></div>
<a id="trunkLayoutTestsfastfilesworkersworkerfilereadersyncbadparameterexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/files/workers/worker-file-reader-sync-bad-parameter-expected.txt (0 => 199985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/files/workers/worker-file-reader-sync-bad-parameter-expected.txt         (rev 0)
+++ trunk/LayoutTests/fast/files/workers/worker-file-reader-sync-bad-parameter-expected.txt        2016-04-25 10:23:41 UTC (rev 199985)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+
+PASS Trying to read a null parameter
+PASS Trying to read an undefined parameter
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastfilesworkersworkerfilereadersyncbadparameterhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/files/workers/worker-file-reader-sync-bad-parameter.html (0 => 199985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/files/workers/worker-file-reader-sync-bad-parameter.html         (rev 0)
+++ trunk/LayoutTests/fast/files/workers/worker-file-reader-sync-bad-parameter.html        2016-04-25 10:23:41 UTC (rev 199985)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+<!doctype html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Checking FileReaderSync API in case of null and undefined blob parameter</title>
+ <meta name="help" href="https://fetch.spec.whatwg.org/#fetching">
+ <meta name="author" title="Canon Research France" href="https://www.crf.canon.fr">
+ <script src="../../../resources/testharness.js"></script>
+ <script src="../../../resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <script>
+ fetch_tests_from_worker(new Worker("resources/worker-file-reader-sync-bad-parameter.js"));
+ </script>
+ </body>
+</html>
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastfilesworkersworkerreadblobsyncexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/files/workers/worker-read-blob-sync-expected.txt (199984 => 199985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/files/workers/worker-read-blob-sync-expected.txt        2016-04-25 10:08:13 UTC (rev 199984)
+++ trunk/LayoutTests/fast/files/workers/worker-read-blob-sync-expected.txt        2016-04-25 10:23:41 UTC (rev 199985)
</span><span class="lines">@@ -2,77 +2,77 @@
</span><span class="cx"> Received files in worker
</span><span class="cx"> Test reading a blob containing non-existent file
</span><span class="cx"> Received exception 1: NOT_FOUND_ERR
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a blob containing existent and non-existent file
</span><span class="cx"> Received exception 1: NOT_FOUND_ERR
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a blob containing empty file
</span><span class="cx"> result size: 0
</span><span class="cx"> result:
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a blob containing empty text
</span><span class="cx"> result size: 0
</span><span class="cx"> result:
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a blob containing empty files and empty texts
</span><span class="cx"> result size: 0
</span><span class="cx"> result:
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a blob containing single file
</span><span class="cx"> result size: 5
</span><span class="cx"> result: Hello
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a blob containing single text
</span><span class="cx"> result size: 5
</span><span class="cx"> result: First
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a blob containing single text as data URL
</span><span class="cx"> result size: 21
</span><span class="cx"> result: data:;base64,Rmlyc3Q=
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a blob containing single text as data URL (optional content type provided)
</span><span class="cx"> result size: 29
</span><span class="cx"> result: data:type/foo;base64,Rmlyc3Q=
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a blob containing single ArrayBuffer
</span><span class="cx"> result size: 9
</span><span class="cx"> result: 0x0 0x1 0x2 0x80 0x81 0x82 0xfd 0xfe 0xff
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a blob containing sliced file
</span><span class="cx"> result size: 5
</span><span class="cx"> result: onder
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a blob containing sliced text
</span><span class="cx"> result size: 4
</span><span class="cx"> result: irst
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a blob containing sliced ArrayBuffer
</span><span class="cx"> result size: 8
</span><span class="cx"> result: 0x1 0x2 0x80 0x81 0x82 0xfd 0xfe 0xff
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a blob containing multiple files
</span><span class="cx"> result size: 19
</span><span class="cx"> result: HelloWonderfulWorld
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a blob containing multiple texts
</span><span class="cx"> result size: 16
</span><span class="cx"> result: FirstSecondThird
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a blob containing multiple ArrayBuffer
</span><span class="cx"> result size: 9
</span><span class="cx"> result: 0x0 0x1 0x2 0x80 0x81 0x82 0xfd 0xfe 0xff
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a hybrid blob
</span><span class="cx"> result size: 38
</span><span class="cx"> result: FirstHelloSecondWonderfulWorldThird012
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a sliced hybrid blob
</span><span class="cx"> result size: 12
</span><span class="cx"> result: lloSecondWon
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a triple-sliced hybrid blob
</span><span class="cx"> result size: 30
</span><span class="cx"> result: ondWonderfulWorldThird012Foolo
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> DONE
</span><span class="cx">
</span></span></pre></div>
<a id="trunkLayoutTestsfastfilesworkersworkerreadfilesyncexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/files/workers/worker-read-file-sync-expected.txt (199984 => 199985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/files/workers/worker-read-file-sync-expected.txt        2016-04-25 10:08:13 UTC (rev 199984)
+++ trunk/LayoutTests/fast/files/workers/worker-read-file-sync-expected.txt        2016-04-25 10:23:41 UTC (rev 199985)
</span><span class="lines">@@ -2,80 +2,80 @@
</span><span class="cx"> Received files in worker
</span><span class="cx"> Test reading a non-existent file as array buffer
</span><span class="cx"> Received exception 1: NOT_FOUND_ERR
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a non-existent file as binary string
</span><span class="cx"> Received exception 1: NOT_FOUND_ERR
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a non-existent file as text
</span><span class="cx"> Received exception 1: NOT_FOUND_ERR
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a non-existent file as data URL
</span><span class="cx"> Received exception 1: NOT_FOUND_ERR
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading an empty file as array buffer
</span><span class="cx"> result size: 0
</span><span class="cx"> result:
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading an empty file as binary string
</span><span class="cx"> result size: 0
</span><span class="cx"> result:
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading an empty file as text
</span><span class="cx"> result size: 0
</span><span class="cx"> result:
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading an empty file as data URL
</span><span class="cx"> result size: 5
</span><span class="cx"> result: data:
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a UTF-8 file as array buffer
</span><span class="cx"> result size: 5
</span><span class="cx"> result: Hello
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a UTF-8 file as binary string
</span><span class="cx"> result size: 5
</span><span class="cx"> result: Hello
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a binary file as array buffer
</span><span class="cx"> result size: 9
</span><span class="cx"> result: 0x0 0x1 0x2 0x80 0x81 0x82 0xfd 0xfe 0xff
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a binary file as binary string
</span><span class="cx"> result size: 9
</span><span class="cx"> result: 0x0 0x1 0x2 0x80 0x81 0x82 0xfd 0xfe 0xff
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a UTF-8 file as text
</span><span class="cx"> result size: 5
</span><span class="cx"> result: Hello
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a UTF-16BE BOM file as text
</span><span class="cx"> result size: 5
</span><span class="cx"> result: Hello
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a UTF-16LE BOM file as text
</span><span class="cx"> result size: 5
</span><span class="cx"> result: Hello
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a UTF-8 BOM file as text
</span><span class="cx"> result size: 5
</span><span class="cx"> result: Hello
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a UTF-16BE file as text with UTF-16BE encoding
</span><span class="cx"> result size: 5
</span><span class="cx"> result: Hello
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a UTF-16BE BOM file as text with UTF8 encoding
</span><span class="cx"> result size: 5
</span><span class="cx"> result: Hello
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a UTF-16BE BOM file as text with invalid encoding
</span><span class="cx"> result size: 5
</span><span class="cx"> result: Hello
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test reading a UTF-8 file as data URL
</span><span class="cx"> result size: 31
</span><span class="cx"> result: data:text/plain;base64,SGVsbG8=
</span><del>-Received exception 8: NotFoundError
</del><ins>+Received exception undefined: TypeError
</ins><span class="cx"> Test calling multiple read methods in a row
</span><span class="cx"> result size: 5
</span><span class="cx"> result: Hello
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (199984 => 199985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-04-25 10:08:13 UTC (rev 199984)
+++ trunk/Source/WebCore/ChangeLog        2016-04-25 10:23:41 UTC (rev 199985)
</span><span class="lines">@@ -1,3 +1,38 @@
</span><ins>+2016-04-25 Youenn Fablet <youenn.fablet@crf.canon.fr>
+
+ Drop [UsePointersEvenForNonNullableObjectArguments] from File API interfaces
+ https://bugs.webkit.org/show_bug.cgi?id=156898
+
+ Reviewed by Chris Dumez.
+
+ Making FileReaderSync API API throwing a TypeError in case of null parameters, in lieu of a NOT_FOUND_ERR.
+ Making FileReader API taking nullable parameters as a temporary fix.
+
+ Test: fast/files/workers/worker-file-reader-sync-bad-parameter.html
+
+ * Modules/websockets/WebSocketChannel.cpp:
+ (WebCore::WebSocketChannel::processOutgoingFrameQueue): Updated to cope with FileReaderLoader::start taking a Blob&.
+ * fileapi/FileReader.cpp:
+ (WebCore::FileReader::readAsArrayBuffer): Updated to cope with readInternal taking a Blob&.
+ (WebCore::FileReader::readAsBinaryString): Ditto.
+ (WebCore::FileReader::readAsText): Ditto.
+ (WebCore::FileReader::readAsDataURL): Ditto.
+ (WebCore::FileReader::readInternal): Updated to cope with FileReaderLoader::start taking a Blob&.
+ * fileapi/FileReader.h:
+ * fileapi/FileReader.idl: Marking the readXX methods as taking a nullable blob parameter to keep compatibility, at least temporarily.
+ * fileapi/FileReaderLoader.cpp:
+ (WebCore::FileReaderLoader::start): It now takes a Blob& as input.
+ * fileapi/FileReaderLoader.h:
+ * fileapi/FileReaderSync.cpp:
+ (WebCore::FileReaderSync::readAsArrayBuffer): Taking a Blob& as input.
+ (WebCore::FileReaderSync::readAsBinaryString): Ditto.
+ (WebCore::FileReaderSync::readAsText): Ditto.
+ (WebCore::FileReaderSync::readAsDataURL): Ditto.
+ (WebCore::FileReaderSync::startLoading) Ditto.
+ * fileapi/FileReaderSync.h:
+ (WebCore::FileReaderSync::readAsText): Ditto.
+ * fileapi/FileReaderSync.idl:
+
</ins><span class="cx"> 2016-04-25 Manuel Rego Casasnovas <rego@igalia.com>
</span><span class="cx">
</span><span class="cx"> [css-grid] Fix grid-template-columns|rows computed style with content alignment
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebsocketsWebSocketChannelcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/websockets/WebSocketChannel.cpp (199984 => 199985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/websockets/WebSocketChannel.cpp        2016-04-25 10:08:13 UTC (rev 199984)
+++ trunk/Source/WebCore/Modules/websockets/WebSocketChannel.cpp        2016-04-25 10:23:41 UTC (rev 199985)
</span><span class="lines">@@ -750,9 +750,10 @@
</span><span class="cx"> case BlobLoaderNotStarted:
</span><span class="cx"> ref(); // Will be derefed after didFinishLoading() or didFail().
</span><span class="cx"> ASSERT(!m_blobLoader);
</span><ins>+ ASSERT(frame->blobData);
</ins><span class="cx"> m_blobLoader = std::make_unique<FileReaderLoader>(FileReaderLoader::ReadAsArrayBuffer, this);
</span><span class="cx"> m_blobLoaderStatus = BlobLoaderStarted;
</span><del>- m_blobLoader->start(m_document, frame->blobData.get());
</del><ins>+ m_blobLoader->start(m_document, *frame->blobData);
</ins><span class="cx"> m_outgoingFrameQueue.prepend(frame.release());
</span><span class="cx"> return;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorefileapiFileReadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/fileapi/FileReader.cpp (199984 => 199985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/fileapi/FileReader.cpp        2016-04-25 10:08:13 UTC (rev 199984)
+++ trunk/Source/WebCore/fileapi/FileReader.cpp        2016-04-25 10:23:41 UTC (rev 199985)
</span><span class="lines">@@ -88,7 +88,7 @@
</span><span class="cx">
</span><span class="cx"> LOG(FileAPI, "FileReader: reading as array buffer: %s %s\n", blob->url().string().utf8().data(), is<File>(*blob) ? downcast<File>(*blob).path().utf8().data() : "");
</span><span class="cx">
</span><del>- readInternal(blob, FileReaderLoader::ReadAsArrayBuffer, ec);
</del><ins>+ readInternal(*blob, FileReaderLoader::ReadAsArrayBuffer, ec);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void FileReader::readAsBinaryString(Blob* blob, ExceptionCode& ec)
</span><span class="lines">@@ -98,7 +98,7 @@
</span><span class="cx">
</span><span class="cx"> LOG(FileAPI, "FileReader: reading as binary: %s %s\n", blob->url().string().utf8().data(), is<File>(*blob) ? downcast<File>(*blob).path().utf8().data() : "");
</span><span class="cx">
</span><del>- readInternal(blob, FileReaderLoader::ReadAsBinaryString, ec);
</del><ins>+ readInternal(*blob, FileReaderLoader::ReadAsBinaryString, ec);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void FileReader::readAsText(Blob* blob, const String& encoding, ExceptionCode& ec)
</span><span class="lines">@@ -109,7 +109,7 @@
</span><span class="cx"> LOG(FileAPI, "FileReader: reading as text: %s %s\n", blob->url().string().utf8().data(), is<File>(*blob) ? downcast<File>(*blob).path().utf8().data() : "");
</span><span class="cx">
</span><span class="cx"> m_encoding = encoding;
</span><del>- readInternal(blob, FileReaderLoader::ReadAsText, ec);
</del><ins>+ readInternal(*blob, FileReaderLoader::ReadAsText, ec);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void FileReader::readAsText(Blob* blob, ExceptionCode& ec)
</span><span class="lines">@@ -124,10 +124,10 @@
</span><span class="cx">
</span><span class="cx"> LOG(FileAPI, "FileReader: reading as data URL: %s %s\n", blob->url().string().utf8().data(), is<File>(*blob) ? downcast<File>(*blob).path().utf8().data() : "");
</span><span class="cx">
</span><del>- readInternal(blob, FileReaderLoader::ReadAsDataURL, ec);
</del><ins>+ readInternal(*blob, FileReaderLoader::ReadAsDataURL, ec);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void FileReader::readInternal(Blob* blob, FileReaderLoader::ReadType type, ExceptionCode& ec)
</del><ins>+void FileReader::readInternal(Blob& blob, FileReaderLoader::ReadType type, ExceptionCode& ec)
</ins><span class="cx"> {
</span><span class="cx"> // If multiple concurrent read methods are called on the same FileReader, INVALID_STATE_ERR should be thrown when the state is LOADING.
</span><span class="cx"> if (m_state == LOADING) {
</span><span class="lines">@@ -137,7 +137,7 @@
</span><span class="cx">
</span><span class="cx"> setPendingActivity(this);
</span><span class="cx">
</span><del>- m_blob = blob;
</del><ins>+ m_blob = &blob;
</ins><span class="cx"> m_readType = type;
</span><span class="cx"> m_state = LOADING;
</span><span class="cx"> m_error = nullptr;
</span><span class="lines">@@ -145,7 +145,7 @@
</span><span class="cx"> m_loader = std::make_unique<FileReaderLoader>(m_readType, this);
</span><span class="cx"> m_loader->setEncoding(m_encoding);
</span><span class="cx"> m_loader->setDataType(m_blob->type());
</span><del>- m_loader->start(scriptExecutionContext(), m_blob.get());
</del><ins>+ m_loader->start(scriptExecutionContext(), blob);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void FileReader::abort()
</span></span></pre></div>
<a id="trunkSourceWebCorefileapiFileReaderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/fileapi/FileReader.h (199984 => 199985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/fileapi/FileReader.h        2016-04-25 10:08:13 UTC (rev 199984)
+++ trunk/Source/WebCore/fileapi/FileReader.h        2016-04-25 10:23:41 UTC (rev 199985)
</span><span class="lines">@@ -105,7 +105,7 @@
</span><span class="cx"> void derefEventTarget() override { deref(); }
</span><span class="cx">
</span><span class="cx"> void terminate();
</span><del>- void readInternal(Blob*, FileReaderLoader::ReadType, ExceptionCode&);
</del><ins>+ void readInternal(Blob&, FileReaderLoader::ReadType, ExceptionCode&);
</ins><span class="cx"> void fireErrorEvent(int httpStatusCode);
</span><span class="cx"> void fireEvent(const AtomicString& type);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorefileapiFileReaderidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/fileapi/FileReader.idl (199984 => 199985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/fileapi/FileReader.idl        2016-04-25 10:08:13 UTC (rev 199984)
+++ trunk/Source/WebCore/fileapi/FileReader.idl        2016-04-25 10:23:41 UTC (rev 199985)
</span><span class="lines">@@ -34,7 +34,6 @@
</span><span class="cx"> ActiveDOMObject,
</span><span class="cx"> Constructor,
</span><span class="cx"> ConstructorCallWith=ScriptExecutionContext,
</span><del>- UsePointersEvenForNonNullableObjectArguments,
</del><span class="cx"> ] interface FileReader : EventTarget {
</span><span class="cx"> // ready states
</span><span class="cx"> const unsigned short EMPTY = 0;
</span><span class="lines">@@ -42,11 +41,12 @@
</span><span class="cx"> const unsigned short DONE = 2;
</span><span class="cx"> readonly attribute unsigned short readyState;
</span><span class="cx">
</span><ins>+ // FIXME: In all four methods found below, the blob parameter should not be nullable.
</ins><span class="cx"> // async read methods
</span><del>- [RaisesException] void readAsArrayBuffer(Blob blob);
- [RaisesException] void readAsBinaryString(Blob blob);
- [RaisesException] void readAsText(Blob blob, optional DOMString encoding);
- [RaisesException] void readAsDataURL(Blob blob);
</del><ins>+ [RaisesException] void readAsArrayBuffer(Blob? blob);
+ [RaisesException] void readAsBinaryString(Blob? blob);
+ [RaisesException] void readAsText(Blob? blob, optional DOMString encoding);
+ [RaisesException] void readAsDataURL(Blob? blob);
</ins><span class="cx">
</span><span class="cx"> void abort();
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorefileapiFileReaderLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/fileapi/FileReaderLoader.cpp (199984 => 199985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/fileapi/FileReaderLoader.cpp        2016-04-25 10:08:13 UTC (rev 199984)
+++ trunk/Source/WebCore/fileapi/FileReaderLoader.cpp        2016-04-25 10:23:41 UTC (rev 199985)
</span><span class="lines">@@ -71,7 +71,7 @@
</span><span class="cx"> ThreadableBlobRegistry::unregisterBlobURL(m_urlForReading);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void FileReaderLoader::start(ScriptExecutionContext* scriptExecutionContext, Blob* blob)
</del><ins>+void FileReaderLoader::start(ScriptExecutionContext* scriptExecutionContext, Blob& blob)
</ins><span class="cx"> {
</span><span class="cx"> // The blob is read by routing through the request handling layer given a temporary public url.
</span><span class="cx"> m_urlForReading = BlobURL::createPublicURL(scriptExecutionContext->securityOrigin());
</span><span class="lines">@@ -79,7 +79,7 @@
</span><span class="cx"> failed(FileError::SECURITY_ERR);
</span><span class="cx"> return;
</span><span class="cx"> }
</span><del>- ThreadableBlobRegistry::registerBlobURL(scriptExecutionContext->securityOrigin(), m_urlForReading, blob->url());
</del><ins>+ ThreadableBlobRegistry::registerBlobURL(scriptExecutionContext->securityOrigin(), m_urlForReading, blob.url());
</ins><span class="cx">
</span><span class="cx"> // Construct and load the request.
</span><span class="cx"> ResourceRequest request(m_urlForReading);
</span></span></pre></div>
<a id="trunkSourceWebCorefileapiFileReaderLoaderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/fileapi/FileReaderLoader.h (199984 => 199985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/fileapi/FileReaderLoader.h        2016-04-25 10:08:13 UTC (rev 199984)
+++ trunk/Source/WebCore/fileapi/FileReaderLoader.h        2016-04-25 10:23:41 UTC (rev 199985)
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx"> FileReaderLoader(ReadType, FileReaderLoaderClient*);
</span><span class="cx"> ~FileReaderLoader();
</span><span class="cx">
</span><del>- void start(ScriptExecutionContext*, Blob*);
</del><ins>+ void start(ScriptExecutionContext*, Blob&);
</ins><span class="cx"> void cancel();
</span><span class="cx">
</span><span class="cx"> // ThreadableLoaderClient
</span></span></pre></div>
<a id="trunkSourceWebCorefileapiFileReaderSynccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/fileapi/FileReaderSync.cpp (199984 => 199985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/fileapi/FileReaderSync.cpp        2016-04-25 10:08:13 UTC (rev 199984)
+++ trunk/Source/WebCore/fileapi/FileReaderSync.cpp        2016-04-25 10:23:41 UTC (rev 199985)
</span><span class="lines">@@ -44,58 +44,38 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>-RefPtr<ArrayBuffer> FileReaderSync::readAsArrayBuffer(ScriptExecutionContext& scriptExecutionContext, Blob* blob, ExceptionCode& ec)
</del><ins>+RefPtr<ArrayBuffer> FileReaderSync::readAsArrayBuffer(ScriptExecutionContext& scriptExecutionContext, Blob& blob, ExceptionCode& ec)
</ins><span class="cx"> {
</span><del>- if (!blob) {
- ec = NOT_FOUND_ERR;
- return nullptr;
- }
-
</del><span class="cx"> FileReaderLoader loader(FileReaderLoader::ReadAsArrayBuffer, 0);
</span><span class="cx"> startLoading(scriptExecutionContext, loader, blob, ec);
</span><span class="cx">
</span><span class="cx"> return loader.arrayBufferResult();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-String FileReaderSync::readAsBinaryString(ScriptExecutionContext& scriptExecutionContext, Blob* blob, ExceptionCode& ec)
</del><ins>+String FileReaderSync::readAsBinaryString(ScriptExecutionContext& scriptExecutionContext, Blob& blob, ExceptionCode& ec)
</ins><span class="cx"> {
</span><del>- if (!blob) {
- ec = NOT_FOUND_ERR;
- return String();
- }
-
</del><span class="cx"> FileReaderLoader loader(FileReaderLoader::ReadAsBinaryString, 0);
</span><span class="cx"> startLoading(scriptExecutionContext, loader, blob, ec);
</span><span class="cx"> return loader.stringResult();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-String FileReaderSync::readAsText(ScriptExecutionContext& scriptExecutionContext, Blob* blob, const String& encoding, ExceptionCode& ec)
</del><ins>+String FileReaderSync::readAsText(ScriptExecutionContext& scriptExecutionContext, Blob& blob, const String& encoding, ExceptionCode& ec)
</ins><span class="cx"> {
</span><del>- if (!blob) {
- ec = NOT_FOUND_ERR;
- return String();
- }
-
</del><span class="cx"> FileReaderLoader loader(FileReaderLoader::ReadAsText, 0);
</span><span class="cx"> loader.setEncoding(encoding);
</span><span class="cx"> startLoading(scriptExecutionContext, loader, blob, ec);
</span><span class="cx"> return loader.stringResult();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-String FileReaderSync::readAsDataURL(ScriptExecutionContext& scriptExecutionContext, Blob* blob, ExceptionCode& ec)
</del><ins>+String FileReaderSync::readAsDataURL(ScriptExecutionContext& scriptExecutionContext, Blob& blob, ExceptionCode& ec)
</ins><span class="cx"> {
</span><del>- if (!blob) {
- ec = NOT_FOUND_ERR;
- return String();
- }
-
</del><span class="cx"> FileReaderLoader loader(FileReaderLoader::ReadAsDataURL, 0);
</span><del>- loader.setDataType(blob->type());
</del><ins>+ loader.setDataType(blob.type());
</ins><span class="cx"> startLoading(scriptExecutionContext, loader, blob, ec);
</span><span class="cx"> return loader.stringResult();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void FileReaderSync::startLoading(ScriptExecutionContext& scriptExecutionContext, FileReaderLoader& loader, Blob* blob, ExceptionCode& ec)
</del><ins>+void FileReaderSync::startLoading(ScriptExecutionContext& scriptExecutionContext, FileReaderLoader& loader, Blob& blob, ExceptionCode& ec)
</ins><span class="cx"> {
</span><span class="cx"> loader.start(&scriptExecutionContext, blob);
</span><span class="cx"> ec = FileException::ErrorCodeToExceptionCode(loader.errorCode());
</span></span></pre></div>
<a id="trunkSourceWebCorefileapiFileReaderSynch"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/fileapi/FileReaderSync.h (199984 => 199985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/fileapi/FileReaderSync.h        2016-04-25 10:08:13 UTC (rev 199984)
+++ trunk/Source/WebCore/fileapi/FileReaderSync.h        2016-04-25 10:23:41 UTC (rev 199985)
</span><span class="lines">@@ -56,19 +56,19 @@
</span><span class="cx">
</span><span class="cx"> virtual ~FileReaderSync() { }
</span><span class="cx">
</span><del>- RefPtr<JSC::ArrayBuffer> readAsArrayBuffer(ScriptExecutionContext&, Blob*, ExceptionCode&);
- String readAsBinaryString(ScriptExecutionContext&, Blob*, ExceptionCode&);
- String readAsText(ScriptExecutionContext& scriptExecutionContext, Blob* blob, ExceptionCode& ec)
</del><ins>+ RefPtr<JSC::ArrayBuffer> readAsArrayBuffer(ScriptExecutionContext&, Blob&, ExceptionCode&);
+ String readAsBinaryString(ScriptExecutionContext&, Blob&, ExceptionCode&);
+ String readAsText(ScriptExecutionContext& scriptExecutionContext, Blob& blob, ExceptionCode& ec)
</ins><span class="cx"> {
</span><span class="cx"> return readAsText(scriptExecutionContext, blob, emptyString(), ec);
</span><span class="cx"> }
</span><del>- String readAsText(ScriptExecutionContext&, Blob*, const String& encoding, ExceptionCode&);
- String readAsDataURL(ScriptExecutionContext&, Blob*, ExceptionCode&);
</del><ins>+ String readAsText(ScriptExecutionContext&, Blob&, const String& encoding, ExceptionCode&);
+ String readAsDataURL(ScriptExecutionContext&, Blob&, ExceptionCode&);
</ins><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> FileReaderSync();
</span><span class="cx">
</span><del>- void startLoading(ScriptExecutionContext&, FileReaderLoader&, Blob*, ExceptionCode&);
</del><ins>+ void startLoading(ScriptExecutionContext&, FileReaderLoader&, Blob&, ExceptionCode&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorefileapiFileReaderSyncidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/fileapi/FileReaderSync.idl (199984 => 199985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/fileapi/FileReaderSync.idl        2016-04-25 10:08:13 UTC (rev 199984)
+++ trunk/Source/WebCore/fileapi/FileReaderSync.idl        2016-04-25 10:23:41 UTC (rev 199985)
</span><span class="lines">@@ -30,7 +30,6 @@
</span><span class="cx">
</span><span class="cx"> [
</span><span class="cx"> Constructor,
</span><del>- UsePointersEvenForNonNullableObjectArguments,
</del><span class="cx"> Exposed=Worker,
</span><span class="cx"> ] interface FileReaderSync {
</span><span class="cx"> [CallWith=ScriptExecutionContext, RaisesException] ArrayBuffer readAsArrayBuffer(Blob blob);
</span></span></pre>
</div>
</div>
</body>
</html>