<!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&amp;.
* fileapi/FileReader.cpp:
(WebCore::FileReader::readAsArrayBuffer): Updated to cope with readInternal taking a Blob&amp;.
(WebCore::FileReader::readAsBinaryString): Ditto.
(WebCore::FileReader::readAsText): Ditto.
(WebCore::FileReader::readAsDataURL): Ditto.
(WebCore::FileReader::readInternal):  Updated to cope with FileReaderLoader::start taking a Blob&amp;.
* 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&amp; as input.
* fileapi/FileReaderLoader.h:
* fileapi/FileReaderSync.cpp:
(WebCore::FileReaderSync::readAsArrayBuffer): Taking a Blob&amp; 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  &lt;youenn.fablet@crf.canon.fr&gt;
+
+        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  &lt;rego@igalia.com&gt;
</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); });
+}, &quot;Trying to read a null parameter&quot;);
+
+
+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); });
+}, &quot;Trying to read an undefined parameter&quot;);
+
+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>+&lt;!doctype html&gt;
+&lt;html&gt;
+    &lt;head&gt;
+        &lt;meta charset=&quot;utf-8&quot;&gt;
+        &lt;title&gt;Checking FileReaderSync API in case of null and undefined blob parameter&lt;/title&gt;
+        &lt;meta name=&quot;help&quot; href=&quot;https://fetch.spec.whatwg.org/#fetching&quot;&gt;
+        &lt;meta name=&quot;author&quot; title=&quot;Canon Research France&quot; href=&quot;https://www.crf.canon.fr&quot;&gt;
+        &lt;script src=&quot;../../../resources/testharness.js&quot;&gt;&lt;/script&gt;
+        &lt;script src=&quot;../../../resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+    &lt;/head&gt;
+    &lt;body&gt;
+        &lt;script&gt;
+            fetch_tests_from_worker(new Worker(&quot;resources/worker-file-reader-sync-bad-parameter.js&quot;));
+        &lt;/script&gt;
+    &lt;/body&gt;
+&lt;/html&gt;
+
</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  &lt;youenn.fablet@crf.canon.fr&gt;
+
+        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&amp;.
+        * fileapi/FileReader.cpp:
+        (WebCore::FileReader::readAsArrayBuffer): Updated to cope with readInternal taking a Blob&amp;.
+        (WebCore::FileReader::readAsBinaryString): Ditto.
+        (WebCore::FileReader::readAsText): Ditto.
+        (WebCore::FileReader::readAsDataURL): Ditto.
+        (WebCore::FileReader::readInternal):  Updated to cope with FileReaderLoader::start taking a Blob&amp;.
+        * 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&amp; as input.
+        * fileapi/FileReaderLoader.h:
+        * fileapi/FileReaderSync.cpp:
+        (WebCore::FileReaderSync::readAsArrayBuffer): Taking a Blob&amp; 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  &lt;rego@igalia.com&gt;
</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-&gt;blobData);
</ins><span class="cx">                 m_blobLoader = std::make_unique&lt;FileReaderLoader&gt;(FileReaderLoader::ReadAsArrayBuffer, this);
</span><span class="cx">                 m_blobLoaderStatus = BlobLoaderStarted;
</span><del>-                m_blobLoader-&gt;start(m_document, frame-&gt;blobData.get());
</del><ins>+                m_blobLoader-&gt;start(m_document, *frame-&gt;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, &quot;FileReader: reading as array buffer: %s %s\n&quot;, blob-&gt;url().string().utf8().data(), is&lt;File&gt;(*blob) ? downcast&lt;File&gt;(*blob).path().utf8().data() : &quot;&quot;);
</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&amp; ec)
</span><span class="lines">@@ -98,7 +98,7 @@
</span><span class="cx"> 
</span><span class="cx">     LOG(FileAPI, &quot;FileReader: reading as binary: %s %s\n&quot;, blob-&gt;url().string().utf8().data(), is&lt;File&gt;(*blob) ? downcast&lt;File&gt;(*blob).path().utf8().data() : &quot;&quot;);
</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&amp; encoding, ExceptionCode&amp; ec)
</span><span class="lines">@@ -109,7 +109,7 @@
</span><span class="cx">     LOG(FileAPI, &quot;FileReader: reading as text: %s %s\n&quot;, blob-&gt;url().string().utf8().data(), is&lt;File&gt;(*blob) ? downcast&lt;File&gt;(*blob).path().utf8().data() : &quot;&quot;);
</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&amp; ec)
</span><span class="lines">@@ -124,10 +124,10 @@
</span><span class="cx"> 
</span><span class="cx">     LOG(FileAPI, &quot;FileReader: reading as data URL: %s %s\n&quot;, blob-&gt;url().string().utf8().data(), is&lt;File&gt;(*blob) ? downcast&lt;File&gt;(*blob).path().utf8().data() : &quot;&quot;);
</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&amp; ec)
</del><ins>+void FileReader::readInternal(Blob&amp; blob, FileReaderLoader::ReadType type, ExceptionCode&amp; 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 = &amp;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&lt;FileReaderLoader&gt;(m_readType, this);
</span><span class="cx">     m_loader-&gt;setEncoding(m_encoding);
</span><span class="cx">     m_loader-&gt;setDataType(m_blob-&gt;type());
</span><del>-    m_loader-&gt;start(scriptExecutionContext(), m_blob.get());
</del><ins>+    m_loader-&gt;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&amp;);
</del><ins>+    void readInternal(Blob&amp;, FileReaderLoader::ReadType, ExceptionCode&amp;);
</ins><span class="cx">     void fireErrorEvent(int httpStatusCode);
</span><span class="cx">     void fireEvent(const AtomicString&amp; 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&amp; 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-&gt;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-&gt;securityOrigin(), m_urlForReading, blob-&gt;url());
</del><ins>+    ThreadableBlobRegistry::registerBlobURL(scriptExecutionContext-&gt;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&amp;);
</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&lt;ArrayBuffer&gt; FileReaderSync::readAsArrayBuffer(ScriptExecutionContext&amp; scriptExecutionContext, Blob* blob, ExceptionCode&amp; ec)
</del><ins>+RefPtr&lt;ArrayBuffer&gt; FileReaderSync::readAsArrayBuffer(ScriptExecutionContext&amp; scriptExecutionContext, Blob&amp; blob, ExceptionCode&amp; 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&amp; scriptExecutionContext, Blob* blob, ExceptionCode&amp; ec)
</del><ins>+String FileReaderSync::readAsBinaryString(ScriptExecutionContext&amp; scriptExecutionContext, Blob&amp; blob, ExceptionCode&amp; 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&amp; scriptExecutionContext, Blob* blob, const String&amp; encoding, ExceptionCode&amp; ec)
</del><ins>+String FileReaderSync::readAsText(ScriptExecutionContext&amp; scriptExecutionContext, Blob&amp; blob, const String&amp; encoding, ExceptionCode&amp; 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&amp; scriptExecutionContext, Blob* blob, ExceptionCode&amp; ec)
</del><ins>+String FileReaderSync::readAsDataURL(ScriptExecutionContext&amp; scriptExecutionContext, Blob&amp; blob, ExceptionCode&amp; 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-&gt;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&amp; scriptExecutionContext, FileReaderLoader&amp; loader, Blob* blob, ExceptionCode&amp; ec)
</del><ins>+void FileReaderSync::startLoading(ScriptExecutionContext&amp; scriptExecutionContext, FileReaderLoader&amp; loader, Blob&amp; blob, ExceptionCode&amp; ec)
</ins><span class="cx"> {
</span><span class="cx">     loader.start(&amp;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&lt;JSC::ArrayBuffer&gt; readAsArrayBuffer(ScriptExecutionContext&amp;, Blob*, ExceptionCode&amp;);
-    String readAsBinaryString(ScriptExecutionContext&amp;, Blob*, ExceptionCode&amp;);
-    String readAsText(ScriptExecutionContext&amp; scriptExecutionContext, Blob* blob, ExceptionCode&amp; ec)
</del><ins>+    RefPtr&lt;JSC::ArrayBuffer&gt; readAsArrayBuffer(ScriptExecutionContext&amp;, Blob&amp;, ExceptionCode&amp;);
+    String readAsBinaryString(ScriptExecutionContext&amp;, Blob&amp;, ExceptionCode&amp;);
+    String readAsText(ScriptExecutionContext&amp; scriptExecutionContext, Blob&amp; blob, ExceptionCode&amp; ec)
</ins><span class="cx">     {
</span><span class="cx">         return readAsText(scriptExecutionContext, blob, emptyString(), ec);
</span><span class="cx">     }
</span><del>-    String readAsText(ScriptExecutionContext&amp;, Blob*, const String&amp; encoding, ExceptionCode&amp;);
-    String readAsDataURL(ScriptExecutionContext&amp;, Blob*, ExceptionCode&amp;);
</del><ins>+    String readAsText(ScriptExecutionContext&amp;, Blob&amp;, const String&amp; encoding, ExceptionCode&amp;);
+    String readAsDataURL(ScriptExecutionContext&amp;, Blob&amp;, ExceptionCode&amp;);
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     FileReaderSync();
</span><span class="cx"> 
</span><del>-    void startLoading(ScriptExecutionContext&amp;, FileReaderLoader&amp;, Blob*, ExceptionCode&amp;);
</del><ins>+    void startLoading(ScriptExecutionContext&amp;, FileReaderLoader&amp;, Blob&amp;, ExceptionCode&amp;);
</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>