<!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>[285912] 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/285912">285912</a></dd>
<dt>Author</dt> <dd>sihui_liu@apple.com</dd>
<dt>Date</dt> <dd>2021-11-16 18:55:32 -0800 (Tue, 16 Nov 2021)</dd>
</dl>

<h3>Log Message</h3>
<pre>Implement FileSystemFileHandle.getFile()
https://bugs.webkit.org/show_bug.cgi?id=232716
<rdar://problem/85022453>

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaselined existing tests as some tests are passed and the others can run further due to the new support.

* web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any.worker-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any.worker-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-BroadcastChannel.https.window-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-Error.https.window-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-frames.https.window-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-windows.https.window-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-workers.https.window-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-frames.https.window-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-windows.https.window-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-workers.https.window-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any.worker-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.worker-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.worker-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any.worker-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.worker-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any.worker-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any.worker-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any.worker-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any.worker-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any-expected.txt:
* web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any.worker-expected.txt:

Source/WebCore:

Spec: https://wicg.github.io/file-system-access/#api-filesystemfilehandle-getfile

Tests: storage/filesystemaccess/file-handle-getfile-worker.html
       storage/filesystemaccess/file-handle-getfile.html

* Modules/filesystemaccess/FileSystemFileHandle.cpp:
(WebCore::FileSystemFileHandle::getFile):
* Modules/filesystemaccess/FileSystemStorageConnection.h:
* Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp:
(WebCore::WorkerFileSystemStorageConnection::scopeClosed):
(WebCore::WorkerFileSystemStorageConnection::didResolve):
(WebCore::WorkerFileSystemStorageConnection::getFile):
(WebCore::WorkerFileSystemStorageConnection::completeStringCallback):
* Modules/filesystemaccess/WorkerFileSystemStorageConnection.h:

Source/WebKit:

Let web process send message to network process for file path.

* NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::getFile):
* NetworkProcess/storage/NetworkStorageManager.h:
* NetworkProcess/storage/NetworkStorageManager.messages.in:
* WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp:
(WebKit::WebFileSystemStorageConnection::getFile):
* WebProcess/WebCoreSupport/WebFileSystemStorageConnection.h:

LayoutTests:

* storage/filesystemaccess/file-handle-getfile-expected.txt: Added.
* storage/filesystemaccess/file-handle-getfile-worker-expected.txt: Added.
* storage/filesystemaccess/file-handle-getfile-worker.html: Added.
* storage/filesystemaccess/file-handle-getfile.html: Added.
* storage/filesystemaccess/resources/file-handle-getfile.js: Added.
(finishTest):
(async read):
(async test):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3cChangeLog">trunk/LayoutTests/imported/w3c/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandleIndexedDBhttpsanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandleIndexedDBhttpsanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandleisSameEntryhttpsanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandleisSameEntryhttpsanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandlepostMessageBroadcastChannelhttpswindowexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-BroadcastChannel.https.window-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandlepostMessageErrorhttpswindowexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-Error.https.window-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandlepostMessageMessagePortframeshttpswindowexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-frames.https.window-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandlepostMessageMessagePortwindowshttpswindowexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-windows.https.window-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandlepostMessageMessagePortworkershttpswindowexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-workers.https.window-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandlepostMessageframeshttpswindowexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-frames.https.window-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandlepostMessagewindowshttpswindowexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-windows.https.window-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandlepostMessageworkershttpswindowexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-workers.https.window-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandleremovehttpsanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandleremovehttpsanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemDirectoryHandlegetDirectoryHandlehttpsanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemDirectoryHandlegetDirectoryHandlehttpsanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemDirectoryHandlegetFileHandlehttpsanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemDirectoryHandlegetFileHandlehttpsanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemDirectoryHandleiterationhttpsanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemDirectoryHandleiterationhttpsanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemDirectoryHandleremoveEntryhttpsanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemDirectoryHandleremoveEntryhttpsanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemDirectoryHandleresolvehttpsanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemDirectoryHandleresolvehttpsanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemFileHandlegetFilehttpsanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemFileHandlegetFilehttpsanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemWritableFileStreampipedhttpsanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemWritableFileStreampipedhttpsanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemWritableFileStreamwritehttpsanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemWritableFileStreamwritehttpsanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemWritableFileStreamhttpsanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemWritableFileStreamhttpsanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any.worker-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesfilesystemaccessFileSystemFileHandlecpp">trunk/Source/WebCore/Modules/filesystemaccess/FileSystemFileHandle.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesfilesystemaccessFileSystemStorageConnectionh">trunk/Source/WebCore/Modules/filesystemaccess/FileSystemStorageConnection.h</a></li>
<li><a href="#trunkSourceWebCoreModulesfilesystemaccessWorkerFileSystemStorageConnectioncpp">trunk/Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesfilesystemaccessWorkerFileSystemStorageConnectionh">trunk/Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.h</a></li>
<li><a href="#trunkSourceWebKitChangeLog">trunk/Source/WebKit/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitNetworkProcessstorageNetworkStorageManagercpp">trunk/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp</a></li>
<li><a href="#trunkSourceWebKitNetworkProcessstorageNetworkStorageManagerh">trunk/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h</a></li>
<li><a href="#trunkSourceWebKitNetworkProcessstorageNetworkStorageManagermessagesin">trunk/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.messages.in</a></li>
<li><a href="#trunkSourceWebKitWebProcessWebCoreSupportWebFileSystemStorageConnectioncpp">trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp</a></li>
<li><a href="#trunkSourceWebKitWebProcessWebCoreSupportWebFileSystemStorageConnectionh">trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.h</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsstoragefilesystemaccessfilehandlegetfileexpectedtxt">trunk/LayoutTests/storage/filesystemaccess/file-handle-getfile-expected.txt</a></li>
<li><a href="#trunkLayoutTestsstoragefilesystemaccessfilehandlegetfileworkerexpectedtxt">trunk/LayoutTests/storage/filesystemaccess/file-handle-getfile-worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsstoragefilesystemaccessfilehandlegetfileworkerhtml">trunk/LayoutTests/storage/filesystemaccess/file-handle-getfile-worker.html</a></li>
<li><a href="#trunkLayoutTestsstoragefilesystemaccessfilehandlegetfilehtml">trunk/LayoutTests/storage/filesystemaccess/file-handle-getfile.html</a></li>
<li><a href="#trunkLayoutTestsstoragefilesystemaccessresourcesfilehandlegetfilejs">trunk/LayoutTests/storage/filesystemaccess/resources/file-handle-getfile.js</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog      2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/ChangeLog 2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,3 +1,20 @@
</span><ins>+2021-11-16  Sihui Liu  <sihui_liu@apple.com>
+
+        Implement FileSystemFileHandle.getFile()
+        https://bugs.webkit.org/show_bug.cgi?id=232716
+        <rdar://problem/85022453>
+
+        Reviewed by Youenn Fablet.
+
+        * storage/filesystemaccess/file-handle-getfile-expected.txt: Added.
+        * storage/filesystemaccess/file-handle-getfile-worker-expected.txt: Added.
+        * storage/filesystemaccess/file-handle-getfile-worker.html: Added.
+        * storage/filesystemaccess/file-handle-getfile.html: Added.
+        * storage/filesystemaccess/resources/file-handle-getfile.js: Added.
+        (finishTest):
+        (async read):
+        (async test):
+
</ins><span class="cx"> 2021-11-16  Nikita Vasilyev  <nvasilyev@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Web Inspector: Remove unused `dontCreateIfMissing` argument from CSSStyleDeclaration.prototype.propertyForName
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/ChangeLog (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/ChangeLog 2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/ChangeLog    2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,3 +1,46 @@
</span><ins>+2021-11-16  Sihui Liu  <sihui_liu@apple.com>
+
+        Implement FileSystemFileHandle.getFile()
+        https://bugs.webkit.org/show_bug.cgi?id=232716
+        <rdar://problem/85022453>
+
+        Reviewed by Youenn Fablet.
+
+        Rebaselined existing tests as some tests are passed and the others can run further due to the new support.
+
+        * web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any.worker-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any.worker-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-BroadcastChannel.https.window-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-Error.https.window-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-frames.https.window-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-windows.https.window-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-workers.https.window-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-frames.https.window-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-windows.https.window-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-workers.https.window-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any.worker-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.worker-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.worker-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any.worker-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.worker-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any.worker-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any.worker-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any.worker-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any.worker-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any-expected.txt:
+        * web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any.worker-expected.txt:
+
</ins><span class="cx"> 2021-11-16  Rob Buis  <rbuis@igalia.com>
</span><span class="cx"> 
</span><span class="cx">         [css-contain] Support contain:paint
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandleIndexedDBhttpsanyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any-expected.txt     2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any-expected.txt        2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,7 +1,7 @@
</span><span class="cx"> 
</span><del>-FAIL Store handle in IndexedDB and read from pending transaction. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Store handle in IndexedDB and read from new transaction. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Store handles and blobs in IndexedDB. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Store handle in IndexedDB and read using a cursor. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Store handle in IndexedDB using inline keys. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL Store handle in IndexedDB and read from pending transaction. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Store handle in IndexedDB and read from new transaction. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Store handles and blobs in IndexedDB. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Store handle in IndexedDB and read using a cursor. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Store handle in IndexedDB using inline keys. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandleIndexedDBhttpsanyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any.worker-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any.worker-expected.txt      2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any.worker-expected.txt 2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,7 +1,7 @@
</span><span class="cx"> 
</span><del>-FAIL Store handle in IndexedDB and read from pending transaction. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Store handle in IndexedDB and read from new transaction. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Store handles and blobs in IndexedDB. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Store handle in IndexedDB and read using a cursor. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Store handle in IndexedDB using inline keys. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL Store handle in IndexedDB and read from pending transaction. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Store handle in IndexedDB and read from new transaction. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Store handles and blobs in IndexedDB. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Store handle in IndexedDB and read using a cursor. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Store handle in IndexedDB using inline keys. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandleisSameEntryhttpsanyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any-expected.txt   2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any-expected.txt      2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -2,9 +2,9 @@
</span><span class="cx"> PASS isSameEntry for identical directory handles returns true
</span><span class="cx"> PASS isSameEntry for different directories returns false
</span><span class="cx"> PASS isSameEntry for different handles for the same directory
</span><del>-FAIL isSameEntry for identical file handles returns true promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL isSameEntry for different files returns false promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL isSameEntry for different handles for the same file promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL isSameEntry comparing a file to a file in a different directory returns false promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL isSameEntry comparing a file to a directory returns false promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+PASS isSameEntry for identical file handles returns true
+PASS isSameEntry for different files returns false
+PASS isSameEntry for different handles for the same file
+PASS isSameEntry comparing a file to a file in a different directory returns false
+PASS isSameEntry comparing a file to a directory returns false
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandleisSameEntryhttpsanyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any.worker-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any.worker-expected.txt    2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any.worker-expected.txt       2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -2,9 +2,9 @@
</span><span class="cx"> PASS isSameEntry for identical directory handles returns true
</span><span class="cx"> PASS isSameEntry for different directories returns false
</span><span class="cx"> PASS isSameEntry for different handles for the same directory
</span><del>-FAIL isSameEntry for identical file handles returns true promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL isSameEntry for different files returns false promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL isSameEntry for different handles for the same file promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL isSameEntry comparing a file to a file in a different directory returns false promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL isSameEntry comparing a file to a directory returns false promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+PASS isSameEntry for identical file handles returns true
+PASS isSameEntry for different files returns false
+PASS isSameEntry for different handles for the same file
+PASS isSameEntry comparing a file to a file in a different directory returns false
+PASS isSameEntry comparing a file to a directory returns false
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandlepostMessageBroadcastChannelhttpswindowexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-BroadcastChannel.https.window-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-BroadcastChannel.https.window-expected.txt       2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-BroadcastChannel.https.window-expected.txt  2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,3 +1,3 @@
</span><span class="cx"> 
</span><del>-FAIL Send and receive messages using a broadcast channel in an iframe, dedicated worker and service worker. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL Send and receive messages using a broadcast channel in an iframe, dedicated worker and service worker. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandlepostMessageErrorhttpswindowexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-Error.https.window-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-Error.https.window-expected.txt  2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-Error.https.window-expected.txt     2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,12 +1,12 @@
</span><span class="cx"> 
</span><del>-FAIL Fail to send and receive messages using a cross origin iframe. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Fail to send and receive messages using a cross origin message port in an iframe. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Fail to send to a sandboxed iframe. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Fail to send messages using a message port to a sandboxed iframe. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Fail to send messages to a data URI iframe. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Fail to send messages using a message port in a data URI iframe. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Fail to send and receive messages using a cross origin window. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Fail to send and receive messages using a cross origin message port in a window. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Fail to send messages to  a sandboxed window. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Fail to send messages using a message port to a sandboxed window. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL Fail to send and receive messages using a cross origin iframe. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Fail to send and receive messages using a cross origin message port in an iframe. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Fail to send to a sandboxed iframe. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Fail to send messages using a message port to a sandboxed iframe. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Fail to send messages to a data URI iframe. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Fail to send messages using a message port in a data URI iframe. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Fail to send and receive messages using a cross origin window. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Fail to send and receive messages using a cross origin message port in a window. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Fail to send messages to  a sandboxed window. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Fail to send messages using a message port to a sandboxed window. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandlepostMessageMessagePortframeshttpswindowexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-frames.https.window-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-frames.https.window-expected.txt     2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-frames.https.window-expected.txt        2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> 
</span><del>-FAIL Send and receive messages using a message port in a same origin iframe. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Send and receive messages using a message port in a sandboxed same origin iframe. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Send and receive messages using a message port in a blob iframe. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Send and receive messages using a message port in an iframe srcdoc. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL Send and receive messages using a message port in a same origin iframe. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Send and receive messages using a message port in a sandboxed same origin iframe. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Send and receive messages using a message port in a blob iframe. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Send and receive messages using a message port in an iframe srcdoc. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandlepostMessageMessagePortwindowshttpswindowexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-windows.https.window-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-windows.https.window-expected.txt    2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-windows.https.window-expected.txt       2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> 
</span><del>-FAIL Send and receive messages using a message port in a same origin window. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Send and receive messages using a message port in a blob window. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Send and receive messages using a message port in a sandboxed same origin window. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL Send and receive messages using a message port in a same origin window. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Send and receive messages using a message port in a blob window. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Send and receive messages using a message port in a sandboxed same origin window. promise_test: Unhandled rejection with value: object "SyntaxError: The string did not match the expected pattern."
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandlepostMessageMessagePortworkershttpswindowexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-workers.https.window-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-workers.https.window-expected.txt    2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-workers.https.window-expected.txt       2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> 
</span><del>-FAIL Send and receive messages using a message port in a dedicated worker. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Send and receive messages using a message port in a service worker. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL Send and receive messages using a message port in a dedicated worker. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Send and receive messages using a message port in a service worker. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
</ins><span class="cx"> FAIL Send and receive messages using a message port in a shared  worker. promise_test: Unhandled rejection with value: object "TypeError: null is not an object (evaluating 'shared_worker.port.start')"
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandlepostMessageframeshttpswindowexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-frames.https.window-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-frames.https.window-expected.txt 2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-frames.https.window-expected.txt    2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> 
</span><del>-FAIL Send and receive messages using a same origin iframe. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Send and receive messages using a sandboxed same origin iframe. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Send and receive messages using a blob iframe. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Send and receive messages using an iframe srcdoc. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL Send and receive messages using a same origin iframe. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Send and receive messages using a sandboxed same origin iframe. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Send and receive messages using a blob iframe. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Send and receive messages using an iframe srcdoc. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandlepostMessagewindowshttpswindowexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-windows.https.window-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-windows.https.window-expected.txt        2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-windows.https.window-expected.txt   2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> 
</span><del>-FAIL Send and receive messages using a same origin window. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Send and receive messages using a blob window. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Send and receive messages using a sandboxed same origin window. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL Send and receive messages using a same origin window. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Send and receive messages using a blob window. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Send and receive messages using a sandboxed same origin window. promise_test: Unhandled rejection with value: object "SyntaxError: The string did not match the expected pattern."
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandlepostMessageworkershttpswindowexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-workers.https.window-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-workers.https.window-expected.txt        2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-workers.https.window-expected.txt   2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> 
</span><del>-FAIL Send and receive messages using a dedicated worker. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Send and receive messages using a service worker. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL Send and receive messages using a dedicated worker. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL Send and receive messages using a service worker. promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
</ins><span class="cx"> FAIL Send and receive messages using a shared worker. promise_test: Unhandled rejection with value: object "TypeError: null is not an object (evaluating 'shared_worker.port.start')"
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandleremovehttpsanyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any-expected.txt        2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any-expected.txt   2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,9 +1,9 @@
</span><span class="cx"> 
</span><del>-FAIL remove() to remove a file promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL remove() on an already removed file should fail promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL remove() to remove an empty directory promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL remove() to remove a file promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL remove() on an already removed file should fail promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL remove() to remove an empty directory promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
</ins><span class="cx"> FAIL remove() on an already removed directory should fail promise_test: Unhandled rejection with value: object "TypeError: dir.remove is not a function. (In 'dir.remove()', 'dir.remove' is undefined)"
</span><del>-FAIL remove() on a non-empty directory should fail promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL remove() on a directory recursively should delete all sub-items promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL remove() on a file should ignore the recursive option promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL remove() on a non-empty directory should fail promise_test: Unhandled rejection with value: object "TypeError: dir.remove is not a function. (In 'dir.remove()', 'dir.remove' is undefined)"
+FAIL remove() on a directory recursively should delete all sub-items promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL remove() on a file should ignore the recursive option promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemBaseHandleremovehttpsanyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any.worker-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any.worker-expected.txt 2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any.worker-expected.txt    2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,9 +1,9 @@
</span><span class="cx"> 
</span><del>-FAIL remove() to remove a file promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL remove() on an already removed file should fail promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL remove() to remove an empty directory promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL remove() to remove a file promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL remove() on an already removed file should fail promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL remove() to remove an empty directory promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
</ins><span class="cx"> FAIL remove() on an already removed directory should fail promise_test: Unhandled rejection with value: object "TypeError: dir.remove is not a function. (In 'dir.remove()', 'dir.remove' is undefined)"
</span><del>-FAIL remove() on a non-empty directory should fail promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL remove() on a directory recursively should delete all sub-items promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL remove() on a file should ignore the recursive option promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL remove() on a non-empty directory should fail promise_test: Unhandled rejection with value: object "TypeError: dir.remove is not a function. (In 'dir.remove()', 'dir.remove' is undefined)"
+FAIL remove() on a directory recursively should delete all sub-items promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL remove() on a file should ignore the recursive option promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemDirectoryHandlegetDirectoryHandlehttpsanyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any-expected.txt       2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any-expected.txt  2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,9 +1,9 @@
</span><span class="cx"> 
</span><span class="cx"> PASS getDirectoryHandle(create=false) rejects for non-existing directories
</span><span class="cx"> FAIL getDirectoryHandle(create=true) creates an empty directory promise_test: Unhandled rejection with value: object "TypeError: undefined is not a function (near '...entry of handle...')"
</span><del>-FAIL getDirectoryHandle(create=false) returns existing directories promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+PASS getDirectoryHandle(create=false) returns existing directories
</ins><span class="cx"> PASS getDirectoryHandle(create=true) returns existing directories without erasing
</span><del>-FAIL getDirectoryHandle() when a file already exists with the same name promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL getDirectoryHandle() when a file already exists with the same name promise_rejects_dom: function "function () { throw e }" threw object "TypeError: Type error" that is not a DOMException TypeMismatchError: property "code" is equal to undefined, expected 17
</ins><span class="cx"> FAIL getDirectoryHandle() with empty name assert_unreached: Should have rejected: undefined Reached unreachable code
</span><span class="cx"> FAIL getDirectoryHandle() with "." name promise_rejects_js: function "function () { throw e }" threw object "UnknownError: Name is invalid" ("UnknownError") expected instance of function "function TypeError() {
</span><span class="cx">     [native code]
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemDirectoryHandlegetDirectoryHandlehttpsanyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.worker-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.worker-expected.txt        2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.worker-expected.txt   2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,9 +1,9 @@
</span><span class="cx"> 
</span><span class="cx"> PASS getDirectoryHandle(create=false) rejects for non-existing directories
</span><span class="cx"> FAIL getDirectoryHandle(create=true) creates an empty directory promise_test: Unhandled rejection with value: object "TypeError: undefined is not a function (near '...entry of handle...')"
</span><del>-FAIL getDirectoryHandle(create=false) returns existing directories promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+PASS getDirectoryHandle(create=false) returns existing directories
</ins><span class="cx"> PASS getDirectoryHandle(create=true) returns existing directories without erasing
</span><del>-FAIL getDirectoryHandle() when a file already exists with the same name promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL getDirectoryHandle() when a file already exists with the same name promise_rejects_dom: function "function () { throw e }" threw object "TypeError: Type error" that is not a DOMException TypeMismatchError: property "code" is equal to undefined, expected 17
</ins><span class="cx"> FAIL getDirectoryHandle() with empty name assert_unreached: Should have rejected: undefined Reached unreachable code
</span><span class="cx"> FAIL getDirectoryHandle() with "." name promise_rejects_js: function "function () { throw e }" threw object "UnknownError: Name is invalid" ("UnknownError") expected instance of function "function TypeError() {
</span><span class="cx">     [native code]
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemDirectoryHandlegetFileHandlehttpsanyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any-expected.txt    2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any-expected.txt       2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,8 +1,8 @@
</span><span class="cx"> 
</span><span class="cx"> PASS getFileHandle(create=false) rejects for non-existing files
</span><del>-FAIL getFileHandle(create=true) creates an empty file for non-existing files promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL getFileHandle(create=false) returns existing files promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL getFileHandle(create=true) returns existing files without erasing promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+PASS getFileHandle(create=true) creates an empty file for non-existing files
+FAIL getFileHandle(create=false) returns existing files promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL getFileHandle(create=true) returns existing files without erasing promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
</ins><span class="cx"> FAIL getFileHandle(create=false) when a directory already exists with the same name promise_rejects_dom: function "function () { throw e }" threw object "TypeError: Type error" that is not a DOMException TypeMismatchError: property "code" is equal to undefined, expected 17
</span><span class="cx"> FAIL getFileHandle(create=true) when a directory already exists with the same name promise_rejects_dom: function "function () { throw e }" threw object "TypeError: Type error" that is not a DOMException TypeMismatchError: property "code" is equal to undefined, expected 17
</span><span class="cx"> PASS getFileHandle() with empty name
</span><span class="lines">@@ -12,7 +12,9 @@
</span><span class="cx"> FAIL getFileHandle() with ".." name promise_rejects_js: function "function () { throw e }" threw object "UnknownError: Name is invalid" ("UnknownError") expected instance of function "function TypeError() {
</span><span class="cx">     [native code]
</span><span class="cx"> }" ("TypeError")
</span><del>-FAIL getFileHandle(create=false) with a path separator when the file exists. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL getFileHandle(create=false) with a path separator when the file exists. promise_rejects_js: getFileHandle() must reject names containing "/" function "function () { throw e }" threw object "UnknownError: Name is invalid" ("UnknownError") expected instance of function "function TypeError() {
+    [native code]
+}" ("TypeError")
</ins><span class="cx"> FAIL getFileHandle(create=true) with a path separator promise_rejects_js: getFileHandle(create=true) must reject names containing "/" function "function () { throw e }" threw object "UnknownError: Name is invalid" ("UnknownError") expected instance of function "function TypeError() {
</span><span class="cx">     [native code]
</span><span class="cx"> }" ("TypeError")
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemDirectoryHandlegetFileHandlehttpsanyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.worker-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.worker-expected.txt     2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.worker-expected.txt        2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,8 +1,8 @@
</span><span class="cx"> 
</span><span class="cx"> PASS getFileHandle(create=false) rejects for non-existing files
</span><del>-FAIL getFileHandle(create=true) creates an empty file for non-existing files promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL getFileHandle(create=false) returns existing files promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL getFileHandle(create=true) returns existing files without erasing promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+PASS getFileHandle(create=true) creates an empty file for non-existing files
+FAIL getFileHandle(create=false) returns existing files promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL getFileHandle(create=true) returns existing files without erasing promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
</ins><span class="cx"> FAIL getFileHandle(create=false) when a directory already exists with the same name promise_rejects_dom: function "function () { throw e }" threw object "TypeError: Type error" that is not a DOMException TypeMismatchError: property "code" is equal to undefined, expected 17
</span><span class="cx"> FAIL getFileHandle(create=true) when a directory already exists with the same name promise_rejects_dom: function "function () { throw e }" threw object "TypeError: Type error" that is not a DOMException TypeMismatchError: property "code" is equal to undefined, expected 17
</span><span class="cx"> PASS getFileHandle() with empty name
</span><span class="lines">@@ -12,7 +12,9 @@
</span><span class="cx"> FAIL getFileHandle() with ".." name promise_rejects_js: function "function () { throw e }" threw object "UnknownError: Name is invalid" ("UnknownError") expected instance of function "function TypeError() {
</span><span class="cx">     [native code]
</span><span class="cx"> }" ("TypeError")
</span><del>-FAIL getFileHandle(create=false) with a path separator when the file exists. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL getFileHandle(create=false) with a path separator when the file exists. promise_rejects_js: getFileHandle() must reject names containing "/" function "function () { throw e }" threw object "UnknownError: Name is invalid" ("UnknownError") expected instance of function "function TypeError() {
+    [native code]
+}" ("TypeError")
</ins><span class="cx"> FAIL getFileHandle(create=true) with a path separator promise_rejects_js: getFileHandle(create=true) must reject names containing "/" function "function () { throw e }" threw object "UnknownError: Name is invalid" ("UnknownError") expected instance of function "function TypeError() {
</span><span class="cx">     [native code]
</span><span class="cx"> }" ("TypeError")
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemDirectoryHandleiterationhttpsanyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any-expected.txt        2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any-expected.txt   2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,8 +1,8 @@
</span><span class="cx"> 
</span><del>-FAIL returning early from an iteration doesn't crash promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL @@asyncIterator: full iteration works promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL entries: full iteration works promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL values: full iteration works promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL keys: full iteration works promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL iteration while iterator gets garbage collected promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL returning early from an iteration doesn't crash promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL @@asyncIterator: full iteration works promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL entries: full iteration works promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL values: full iteration works promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL keys: full iteration works promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL iteration while iterator gets garbage collected promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemDirectoryHandleiterationhttpsanyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any.worker-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any.worker-expected.txt 2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any.worker-expected.txt    2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,8 +1,8 @@
</span><span class="cx"> 
</span><del>-FAIL returning early from an iteration doesn't crash promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL @@asyncIterator: full iteration works promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL entries: full iteration works promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL values: full iteration works promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL keys: full iteration works promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL iteration while iterator gets garbage collected promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL returning early from an iteration doesn't crash promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL @@asyncIterator: full iteration works promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL entries: full iteration works promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL values: full iteration works promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL keys: full iteration works promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL iteration while iterator gets garbage collected promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemDirectoryHandleremoveEntryhttpsanyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any-expected.txt      2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any-expected.txt 2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,9 +1,9 @@
</span><span class="cx"> 
</span><del>-FAIL removeEntry() to remove a file promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL removeEntry() on an already removed file should fail promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL removeEntry() to remove an empty directory promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL removeEntry() on a non-empty directory should fail promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL removeEntry() on a directory recursively should delete all sub-items promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL removeEntry() to remove a file promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL removeEntry() on an already removed file should fail promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL removeEntry() to remove an empty directory promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL removeEntry() on a non-empty directory should fail promise_rejects_dom: function "function () { throw e }" threw object "UnknownError: The operation failed for an unknown transient reason (e.g. out of memory)." that is not a DOMException InvalidModificationError: property "code" is equal to 0, expected 13
+FAIL removeEntry() on a directory recursively should delete all sub-items promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
</ins><span class="cx"> FAIL removeEntry() with empty name should fail assert_unreached: Should have rejected: undefined Reached unreachable code
</span><span class="cx"> FAIL removeEntry() with "." name should fail promise_rejects_js: function "function () { throw e }" threw object "UnknownError: The operation failed for an unknown transient reason (e.g. out of memory)." ("UnknownError") expected instance of function "function TypeError() {
</span><span class="cx">     [native code]
</span><span class="lines">@@ -11,5 +11,5 @@
</span><span class="cx"> FAIL removeEntry() with ".." name should fail promise_rejects_js: function "function () { throw e }" threw object "UnknownError: The operation failed for an unknown transient reason (e.g. out of memory)." ("UnknownError") expected instance of function "function TypeError() {
</span><span class="cx">     [native code]
</span><span class="cx"> }" ("TypeError")
</span><del>-FAIL removeEntry() with a path separator should fail. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL removeEntry() with a path separator should fail. assert_unreached: Should have rejected: removeEntry() must reject names containing "/" Reached unreachable code
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemDirectoryHandleremoveEntryhttpsanyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.worker-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.worker-expected.txt       2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.worker-expected.txt  2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,9 +1,9 @@
</span><span class="cx"> 
</span><del>-FAIL removeEntry() to remove a file promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL removeEntry() on an already removed file should fail promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL removeEntry() to remove an empty directory promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL removeEntry() on a non-empty directory should fail promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL removeEntry() on a directory recursively should delete all sub-items promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL removeEntry() to remove a file promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL removeEntry() on an already removed file should fail promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL removeEntry() to remove an empty directory promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL removeEntry() on a non-empty directory should fail promise_rejects_dom: function "function () { throw e }" threw object "UnknownError: The operation failed for an unknown transient reason (e.g. out of memory)." that is not a DOMException InvalidModificationError: property "code" is equal to 0, expected 13
+FAIL removeEntry() on a directory recursively should delete all sub-items promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
</ins><span class="cx"> FAIL removeEntry() with empty name should fail assert_unreached: Should have rejected: undefined Reached unreachable code
</span><span class="cx"> FAIL removeEntry() with "." name should fail promise_rejects_js: function "function () { throw e }" threw object "UnknownError: The operation failed for an unknown transient reason (e.g. out of memory)." ("UnknownError") expected instance of function "function TypeError() {
</span><span class="cx">     [native code]
</span><span class="lines">@@ -11,5 +11,5 @@
</span><span class="cx"> FAIL removeEntry() with ".." name should fail promise_rejects_js: function "function () { throw e }" threw object "UnknownError: The operation failed for an unknown transient reason (e.g. out of memory)." ("UnknownError") expected instance of function "function TypeError() {
</span><span class="cx">     [native code]
</span><span class="cx"> }" ("TypeError")
</span><del>-FAIL removeEntry() with a path separator should fail. promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL removeEntry() with a path separator should fail. assert_unreached: Should have rejected: removeEntry() must reject names containing "/" Reached unreachable code
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemDirectoryHandleresolvehttpsanyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any-expected.txt  2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any-expected.txt     2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> 
</span><span class="cx"> PASS Resolve returns empty array for same directory
</span><del>-FAIL Resolve returns correct path promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Resolve returns correct path with non-ascii characters promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Resolve returns null when entry is not a child promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+PASS Resolve returns correct path
+PASS Resolve returns correct path with non-ascii characters
+FAIL Resolve returns null when entry is not a child assert_equals: expected null but got []
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemDirectoryHandleresolvehttpsanyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any.worker-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any.worker-expected.txt   2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any.worker-expected.txt      2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> 
</span><span class="cx"> PASS Resolve returns empty array for same directory
</span><del>-FAIL Resolve returns correct path promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Resolve returns correct path with non-ascii characters promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL Resolve returns null when entry is not a child promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+PASS Resolve returns correct path
+PASS Resolve returns correct path with non-ascii characters
+FAIL Resolve returns null when entry is not a child assert_equals: expected null but got []
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemFileHandlegetFilehttpsanyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any-expected.txt       2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any-expected.txt  2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><span class="cx"> 
</span><del>-FAIL getFile() provides a file that can be sliced promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL getFile() returns last modified time promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL getFile() provides a file that can be sliced promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL getFile() returns last modified time promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable({keepExistingData: false})', 'handle.createWritable' is undefined)"
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemFileHandlegetFilehttpsanyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any.worker-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any.worker-expected.txt        2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any.worker-expected.txt   2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><span class="cx"> 
</span><del>-FAIL getFile() provides a file that can be sliced promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL getFile() returns last modified time promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL getFile() provides a file that can be sliced promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL getFile() returns last modified time promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable({keepExistingData: false})', 'handle.createWritable' is undefined)"
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemWritableFileStreampipedhttpsanyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any-expected.txt 2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any-expected.txt    2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,10 +1,10 @@
</span><span class="cx"> 
</span><del>-FAIL can be piped to with a string promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL can be piped to with an ArrayBuffer promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL can be piped to with a Blob promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL can be piped to with a param object with write command promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL can be piped to with a param object with multiple commands promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL multiple operations can be queued promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL plays well with fetch promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL abort() aborts write promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL can be piped to with a string promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL can be piped to with an ArrayBuffer promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL can be piped to with a Blob promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL can be piped to with a param object with write command promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL can be piped to with a param object with multiple commands promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL multiple operations can be queued promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL plays well with fetch promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL abort() aborts write promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemWritableFileStreampipedhttpsanyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any.worker-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any.worker-expected.txt  2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any.worker-expected.txt     2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,10 +1,10 @@
</span><span class="cx"> 
</span><del>-FAIL can be piped to with a string promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL can be piped to with an ArrayBuffer promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL can be piped to with a Blob promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL can be piped to with a param object with write command promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL can be piped to with a param object with multiple commands promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL multiple operations can be queued promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL plays well with fetch promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL abort() aborts write promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL can be piped to with a string promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL can be piped to with an ArrayBuffer promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL can be piped to with a Blob promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL can be piped to with a param object with write command promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL can be piped to with a param object with multiple commands promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL multiple operations can be queued promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL plays well with fetch promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL abort() aborts write promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemWritableFileStreamwritehttpsanyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any-expected.txt 2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any-expected.txt    2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,31 +1,31 @@
</span><span class="cx"> 
</span><del>-FAIL write() with an empty blob to an empty file promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() a blob to an empty file promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() with WriteParams without position to an empty file promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() a string to an empty file with zero offset promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() a blob to an empty file with zero offset promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() called consecutively appends promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() WriteParams without position and string appends promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() WriteParams without position and blob appends promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() called with a string and a valid offset promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() called with a blob and a valid offset promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() called with an offset beyond the end of the file promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() with an empty string to an empty file promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() with a valid utf-8 string promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() with a string with unix line ending preserved promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() with a string with windows line ending preserved promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() with an empty array buffer to an empty file promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() with a valid typed array buffer promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL atomic writes: close() fails when parent directory is removed promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL atomic writes: writable file streams make atomic changes on close promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL atomic writes: write() after close() fails promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL atomic writes: truncate() after close() fails promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL atomic writes: close() after close() fails promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL atomic writes: only one close() operation may succeed promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL atomic writes: writable file stream persists file on close, even if file is removed promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL getWriter() can be used promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL WriteParams: truncate missing size param promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL WriteParams: write missing data param promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL WriteParams: seek missing position param promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() with an invalid blob to an empty file should reject promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL write() with an empty blob to an empty file promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() a blob to an empty file promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() with WriteParams without position to an empty file promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() a string to an empty file with zero offset promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() a blob to an empty file with zero offset promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() called consecutively appends promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() WriteParams without position and string appends promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() WriteParams without position and blob appends promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() called with a string and a valid offset promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() called with a blob and a valid offset promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() called with an offset beyond the end of the file promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() with an empty string to an empty file promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() with a valid utf-8 string promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() with a string with unix line ending preserved promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() with a string with windows line ending preserved promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() with an empty array buffer to an empty file promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() with a valid typed array buffer promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL atomic writes: close() fails when parent directory is removed promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL atomic writes: writable file streams make atomic changes on close promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL atomic writes: write() after close() fails promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL atomic writes: truncate() after close() fails promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL atomic writes: close() after close() fails promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL atomic writes: only one close() operation may succeed promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL atomic writes: writable file stream persists file on close, even if file is removed promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL getWriter() can be used promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL WriteParams: truncate missing size param promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL WriteParams: write missing data param promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL WriteParams: seek missing position param promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() with an invalid blob to an empty file should reject promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemWritableFileStreamwritehttpsanyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any.worker-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any.worker-expected.txt  2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any.worker-expected.txt     2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,31 +1,31 @@
</span><span class="cx"> 
</span><del>-FAIL write() with an empty blob to an empty file promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() a blob to an empty file promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() with WriteParams without position to an empty file promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() a string to an empty file with zero offset promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() a blob to an empty file with zero offset promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() called consecutively appends promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() WriteParams without position and string appends promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() WriteParams without position and blob appends promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() called with a string and a valid offset promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() called with a blob and a valid offset promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() called with an offset beyond the end of the file promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() with an empty string to an empty file promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() with a valid utf-8 string promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() with a string with unix line ending preserved promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() with a string with windows line ending preserved promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() with an empty array buffer to an empty file promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() with a valid typed array buffer promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL atomic writes: close() fails when parent directory is removed promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL atomic writes: writable file streams make atomic changes on close promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL atomic writes: write() after close() fails promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL atomic writes: truncate() after close() fails promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL atomic writes: close() after close() fails promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL atomic writes: only one close() operation may succeed promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL atomic writes: writable file stream persists file on close, even if file is removed promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL getWriter() can be used promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL WriteParams: truncate missing size param promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL WriteParams: write missing data param promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL WriteParams: seek missing position param promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() with an invalid blob to an empty file should reject promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL write() with an empty blob to an empty file promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() a blob to an empty file promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() with WriteParams without position to an empty file promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() a string to an empty file with zero offset promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() a blob to an empty file with zero offset promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() called consecutively appends promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() WriteParams without position and string appends promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() WriteParams without position and blob appends promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() called with a string and a valid offset promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() called with a blob and a valid offset promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() called with an offset beyond the end of the file promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() with an empty string to an empty file promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() with a valid utf-8 string promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() with a string with unix line ending preserved promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() with a string with windows line ending preserved promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() with an empty array buffer to an empty file promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() with a valid typed array buffer promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL atomic writes: close() fails when parent directory is removed promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL atomic writes: writable file streams make atomic changes on close promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL atomic writes: write() after close() fails promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL atomic writes: truncate() after close() fails promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL atomic writes: close() after close() fails promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL atomic writes: only one close() operation may succeed promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL atomic writes: writable file stream persists file on close, even if file is removed promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL getWriter() can be used promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL WriteParams: truncate missing size param promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL WriteParams: write missing data param promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL WriteParams: seek missing position param promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() with an invalid blob to an empty file should reject promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemWritableFileStreamhttpsanyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any-expected.txt       2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any-expected.txt  2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,12 +1,12 @@
</span><span class="cx"> 
</span><del>-FAIL truncate() to shrink a file promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL truncate() to grow a file promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL createWritable() fails when parent directory is removed promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() fails when parent directory is removed promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL truncate() fails when parent directory is removed promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL createWritable({keepExistingData: true}): atomic writable file stream initialized with source contents promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL createWritable({keepExistingData: false}): atomic writable file stream initialized with empty file promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL cursor position: truncate size > offset promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL cursor position: truncate size < offset promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL commands are queued, stream is unlocked after each operation promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL truncate() to shrink a file promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL truncate() to grow a file promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL createWritable() fails when parent directory is removed promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() fails when parent directory is removed promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL truncate() fails when parent directory is removed promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL createWritable({keepExistingData: true}): atomic writable file stream initialized with source contents promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL createWritable({keepExistingData: false}): atomic writable file stream initialized with empty file promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL cursor position: truncate size > offset promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL cursor position: truncate size < offset promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL commands are queued, stream is unlocked after each operation promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfilesystemaccesssandboxed_FileSystemWritableFileStreamhttpsanyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any.worker-expected.txt (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any.worker-expected.txt        2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any.worker-expected.txt   2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,12 +1,12 @@
</span><span class="cx"> 
</span><del>-FAIL truncate() to shrink a file promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL truncate() to grow a file promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL createWritable() fails when parent directory is removed promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL write() fails when parent directory is removed promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL truncate() fails when parent directory is removed promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL createWritable({keepExistingData: true}): atomic writable file stream initialized with source contents promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL createWritable({keepExistingData: false}): atomic writable file stream initialized with empty file promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL cursor position: truncate size > offset promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL cursor position: truncate size < offset promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
-FAIL commands are queued, stream is unlocked after each operation promise_test: Unhandled rejection with value: object "NotSupportedError: getFile is not implemented"
</del><ins>+FAIL truncate() to shrink a file promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL truncate() to grow a file promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL createWritable() fails when parent directory is removed promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL write() fails when parent directory is removed promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL truncate() fails when parent directory is removed promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL createWritable({keepExistingData: true}): atomic writable file stream initialized with source contents promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL createWritable({keepExistingData: false}): atomic writable file stream initialized with empty file promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL cursor position: truncate size > offset promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL cursor position: truncate size < offset promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
+FAIL commands are queued, stream is unlocked after each operation promise_test: Unhandled rejection with value: object "TypeError: handle.createWritable is not a function. (In 'handle.createWritable()', 'handle.createWritable' is undefined)"
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsstoragefilesystemaccessfilehandlegetfileexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/storage/filesystemaccess/file-handle-getfile-expected.txt (0 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/filesystemaccess/file-handle-getfile-expected.txt                              (rev 0)
+++ trunk/LayoutTests/storage/filesystemaccess/file-handle-getfile-expected.txt 2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+This test checks getFile() of FileSystemFileHandle.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS readText is fileContent
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsstoragefilesystemaccessfilehandlegetfileworkerexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/storage/filesystemaccess/file-handle-getfile-worker-expected.txt (0 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/filesystemaccess/file-handle-getfile-worker-expected.txt                               (rev 0)
+++ trunk/LayoutTests/storage/filesystemaccess/file-handle-getfile-worker-expected.txt  2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+[Worker] This test checks getFile() of FileSystemFileHandle.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Starting worker: resources/file-handle-getfile.js
+PASS [Worker] writeSize is writeBuffer.byteLength
+PASS [Worker] readText is fileContent
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsstoragefilesystemaccessfilehandlegetfileworkerhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/storage/filesystemaccess/file-handle-getfile-worker.html (0 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/filesystemaccess/file-handle-getfile-worker.html                               (rev 0)
+++ trunk/LayoutTests/storage/filesystemaccess/file-handle-getfile-worker.html  2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -0,0 +1,9 @@
</span><ins>+<html>
+<head>
+<script src="../../resources/js-test.js"></script>
+</head>
+<body>
+<script>
+worker = startWorker('resources/file-handle-getfile.js');</script>
+</body>
+</html>
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsstoragefilesystemaccessfilehandlegetfilehtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/storage/filesystemaccess/file-handle-getfile.html (0 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/filesystemaccess/file-handle-getfile.html                              (rev 0)
+++ trunk/LayoutTests/storage/filesystemaccess/file-handle-getfile.html 2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+<!DOCTYPE html>
+<html>
+<head>
+<script src="../../resources/js-test.js"></script>
+</head>
+<body>
+<script>
+var jsTestIsAsync = true;
+
+if (!window.testRunner) {
+    finishTest("window.testRunner is not available");
+}
+</script>
+<script src="resources/file-handle-getfile.js"></script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsstoragefilesystemaccessresourcesfilehandlegetfilejs"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/storage/filesystemaccess/resources/file-handle-getfile.js (0 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/filesystemaccess/resources/file-handle-getfile.js                              (rev 0)
+++ trunk/LayoutTests/storage/filesystemaccess/resources/file-handle-getfile.js 2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -0,0 +1,59 @@
</span><ins>+if (this.importScripts) {
+    importScripts('../../../resources/js-test.js');
+}
+
+description("This test checks getFile() of FileSystemFileHandle.");
+
+var rootHandle, fileHandle, fileObject, writeSize, writeBuffer, fileContent;
+
+function finishTest(error)
+{
+    if (error) {
+        testFailed(error);
+    }
+    finishJSTest();
+}
+
+async function read(file) {
+    return new Promise((resolve, reject) => {
+        var reader = new FileReader();
+        reader.readAsText(file);
+        reader.onload = (event) => {
+            resolve(event.target.result); 
+        }
+        reader.onerror = (event) => {
+            reject(event.target.error);
+        }
+    });
+}
+
+async function test() {
+    try {
+        var rootHandle = await navigator.storage.getDirectory();
+        // Create a new file for this test.
+        await rootHandle.removeEntry("file-handle-getfile.txt").then(() => { }, () => { });
+        fileHandle = await rootHandle.getFileHandle("file-handle-getfile.txt", { "create" : true });
+        fileContent = "";
+    
+        // Write file content in worker.
+        if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) {
+            accessHandle = await fileHandle.createSyncAccessHandle();
+            const encoder = new TextEncoder();
+            fileContent = "This is a test.";
+            writeBuffer = encoder.encode(fileContent);
+            writeSize = accessHandle.write(writeBuffer, { "at" : 0 });
+            shouldBe("writeSize", "writeBuffer.byteLength");
+            accessHandle.close();
+        }
+
+        fileObject = await fileHandle.getFile();
+        readText = await read(fileObject);
+        shouldBe("readText", "fileContent");
+
+        finishTest();
+    } catch (error) {
+        finishTest(error.toString());
+    }
+}
+
+test();
</ins></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog   2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/Source/WebCore/ChangeLog      2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,3 +1,26 @@
</span><ins>+2021-11-16  Sihui Liu  <sihui_liu@apple.com>
+
+        Implement FileSystemFileHandle.getFile()
+        https://bugs.webkit.org/show_bug.cgi?id=232716
+        <rdar://problem/85022453>
+
+        Reviewed by Youenn Fablet.
+
+        Spec: https://wicg.github.io/file-system-access/#api-filesystemfilehandle-getfile
+
+        Tests: storage/filesystemaccess/file-handle-getfile-worker.html
+               storage/filesystemaccess/file-handle-getfile.html
+
+        * Modules/filesystemaccess/FileSystemFileHandle.cpp:
+        (WebCore::FileSystemFileHandle::getFile):
+        * Modules/filesystemaccess/FileSystemStorageConnection.h:
+        * Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp:
+        (WebCore::WorkerFileSystemStorageConnection::scopeClosed):
+        (WebCore::WorkerFileSystemStorageConnection::didResolve):
+        (WebCore::WorkerFileSystemStorageConnection::getFile):
+        (WebCore::WorkerFileSystemStorageConnection::completeStringCallback):
+        * Modules/filesystemaccess/WorkerFileSystemStorageConnection.h:
+
</ins><span class="cx"> 2021-11-16  Nikolaos Mouchtaris  <nmouchtaris@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Rename TextDecoration to TextDecorationLine
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesfilesystemaccessFileSystemFileHandlecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/filesystemaccess/FileSystemFileHandle.cpp (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/filesystemaccess/FileSystemFileHandle.cpp   2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/Source/WebCore/Modules/filesystemaccess/FileSystemFileHandle.cpp      2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -48,7 +48,19 @@
</span><span class="cx"> 
</span><span class="cx"> void FileSystemFileHandle::getFile(DOMPromiseDeferred<IDLInterface<File>>&& promise)
</span><span class="cx"> {
</span><del>-    promise.reject(Exception { NotSupportedError, "getFile is not implemented"_s });
</del><ins>+    if (isClosed())
+        return promise.reject(Exception { InvalidStateError, "Handle is closed" });
+
+    connection().getFile(identifier(), [protectedThis = Ref { *this }, promise = WTFMove(promise)](auto result) mutable {
+        if (result.hasException())
+            return promise.reject(result.releaseException());
+
+        auto* context = protectedThis->scriptExecutionContext();
+        if (!context)
+            return promise.reject(Exception { InvalidStateError, "Context has stopped"_s });
+
+        promise.resolve(File::create(context, result.returnValue(), { }, protectedThis->name()));
+    });
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void FileSystemFileHandle::createSyncAccessHandle(DOMPromiseDeferred<IDLInterface<FileSystemSyncAccessHandle>>&& promise)
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesfilesystemaccessFileSystemStorageConnectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/filesystemaccess/FileSystemStorageConnection.h (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/filesystemaccess/FileSystemStorageConnection.h      2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/Source/WebCore/Modules/filesystemaccess/FileSystemStorageConnection.h 2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -48,6 +48,7 @@
</span><span class="cx">     using VoidCallback = CompletionHandler<void(ExceptionOr<void>&&)>;
</span><span class="cx">     using GetHandleNamesCallback = CompletionHandler<void(ExceptionOr<Vector<String>>&&)>;
</span><span class="cx">     using GetHandleWithTypeCallback = CompletionHandler<void(ExceptionOr<std::pair<FileSystemHandleIdentifier, bool>>&&)>;
</span><ins>+    using StringCallback = CompletionHandler<void(ExceptionOr<String>&&)>;
</ins><span class="cx"> 
</span><span class="cx">     virtual void closeHandle(FileSystemHandleIdentifier) = 0;
</span><span class="cx">     virtual void isSameEntry(FileSystemHandleIdentifier, FileSystemHandleIdentifier, SameEntryCallback&&) = 0;
</span><span class="lines">@@ -56,6 +57,7 @@
</span><span class="cx">     virtual void getDirectoryHandle(FileSystemHandleIdentifier, const String& name, bool createIfNecessary, GetHandleCallback&&) = 0;
</span><span class="cx">     virtual void removeEntry(FileSystemHandleIdentifier, const String& name, bool deleteRecursively, VoidCallback&&) = 0;
</span><span class="cx">     virtual void resolve(FileSystemHandleIdentifier, FileSystemHandleIdentifier, ResolveCallback&&) = 0;
</span><ins>+    virtual void getFile(FileSystemHandleIdentifier, StringCallback&&) = 0;
</ins><span class="cx">     virtual void createSyncAccessHandle(FileSystemHandleIdentifier, GetAccessHandleCallback&&) = 0;
</span><span class="cx">     virtual void close(FileSystemHandleIdentifier, FileSystemSyncAccessHandleIdentifier, VoidCallback&&) = 0;
</span><span class="cx">     virtual void getHandleNames(FileSystemHandleIdentifier, GetHandleNamesCallback&&) = 0;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesfilesystemaccessWorkerFileSystemStorageConnectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp      2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp 2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -73,6 +73,10 @@
</span><span class="cx">     for (auto& callback : resolveCallbacks.values())
</span><span class="cx">         callback(Exception { InvalidStateError });
</span><span class="cx"> 
</span><ins>+    auto stringCallbacks = std::exchange(m_stringCallbacks, { });
+    for (auto& callback : stringCallbacks.values())
+        callback(Exception { InvalidStateError });
+
</ins><span class="cx">     m_scope = nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -202,6 +206,32 @@
</span><span class="cx">         callback(WTFMove(result));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void WorkerFileSystemStorageConnection::getFile(FileSystemHandleIdentifier identifier, StringCallback&& callback)
+{
+    if (!m_scope)
+        return callback(Exception { InvalidStateError });
+
+    auto callbackIdentifier = CallbackIdentifier::generateThreadSafe();
+    m_stringCallbacks.add(callbackIdentifier, WTFMove(callback));
+
+    callOnMainThread([callbackIdentifier, workerThread = Ref { m_scope->thread() }, mainThreadConnection = m_mainThreadConnection, identifier]() mutable {
+        auto mainThreadCallback = [callbackIdentifier, workerThread = WTFMove(workerThread)](auto result) mutable {
+            workerThread->runLoop().postTaskForMode([callbackIdentifier, result = crossThreadCopy(result)] (auto& scope) mutable {
+                if (auto connection = downcast<WorkerGlobalScope>(scope).fileSystemStorageConnection())
+                    connection->completeStringCallback(callbackIdentifier, WTFMove(result));
+            }, WorkerRunLoop::defaultMode());
+        };
+
+        mainThreadConnection->getFile(identifier, WTFMove(mainThreadCallback));
+    });
+}
+
+void WorkerFileSystemStorageConnection::completeStringCallback(CallbackIdentifier callbackIdentifier, ExceptionOr<String>&& result)
+{
+    if (auto callback = m_stringCallbacks.take(callbackIdentifier))
+        callback(WTFMove(result));
+}
+
</ins><span class="cx"> void WorkerFileSystemStorageConnection::didCreateSyncAccessHandle(CallbackIdentifier callbackIdentifier, ExceptionOr<std::pair<FileSystemSyncAccessHandleIdentifier, FileSystem::PlatformFileHandle>>&& result)
</span><span class="cx"> {
</span><span class="cx">     if (auto callback = m_getAccessHandlCallbacks.take(callbackIdentifier))
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesfilesystemaccessWorkerFileSystemStorageConnectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.h (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.h        2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.h   2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -47,6 +47,7 @@
</span><span class="cx">     void didIsSameEntry(CallbackIdentifier, ExceptionOr<bool>&&);
</span><span class="cx">     void didGetHandle(CallbackIdentifier, ExceptionOr<FileSystemHandleIdentifier>&&);
</span><span class="cx">     void didResolve(CallbackIdentifier, ExceptionOr<Vector<String>>&&);
</span><ins>+    void completeStringCallback(CallbackIdentifier, ExceptionOr<String>&&);
</ins><span class="cx">     void didCreateSyncAccessHandle(CallbackIdentifier, ExceptionOr<std::pair<FileSystemSyncAccessHandleIdentifier, FileSystem::PlatformFileHandle>>&&);
</span><span class="cx">     void completeVoidCallback(CallbackIdentifier, ExceptionOr<void>&& result);
</span><span class="cx">     void didGetHandleNames(CallbackIdentifier, ExceptionOr<Vector<String>>&&);
</span><span class="lines">@@ -65,6 +66,7 @@
</span><span class="cx">     void resolve(FileSystemHandleIdentifier, FileSystemHandleIdentifier, FileSystemStorageConnection::ResolveCallback&&) final;
</span><span class="cx">     void getHandleNames(FileSystemHandleIdentifier, GetHandleNamesCallback&&) final;
</span><span class="cx">     void getHandle(FileSystemHandleIdentifier, const String& name, GetHandleWithTypeCallback&&) final;
</span><ins>+    void getFile(FileSystemHandleIdentifier, StringCallback&&) final;
</ins><span class="cx"> 
</span><span class="cx">     void createSyncAccessHandle(FileSystemHandleIdentifier, FileSystemStorageConnection::GetAccessHandleCallback&&) final;
</span><span class="cx">     void close(FileSystemHandleIdentifier, FileSystemSyncAccessHandleIdentifier, FileSystemStorageConnection::VoidCallback&&) final;
</span><span class="lines">@@ -78,6 +80,7 @@
</span><span class="cx">     HashMap<CallbackIdentifier, FileSystemStorageConnection::VoidCallback> m_voidCallbacks;
</span><span class="cx">     HashMap<CallbackIdentifier, FileSystemStorageConnection::GetHandleNamesCallback> m_getHandleNamesCallbacks;
</span><span class="cx">     HashMap<CallbackIdentifier, FileSystemStorageConnection::GetHandleWithTypeCallback> m_getHandleWithTypeCallbacks;
</span><ins>+    HashMap<CallbackIdentifier, FileSystemStorageConnection::StringCallback> m_stringCallbacks;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebKitChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ChangeLog (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ChangeLog    2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/Source/WebKit/ChangeLog       2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -1,3 +1,21 @@
</span><ins>+2021-11-16  Sihui Liu  <sihui_liu@apple.com>
+
+        Implement FileSystemFileHandle.getFile()
+        https://bugs.webkit.org/show_bug.cgi?id=232716
+        <rdar://problem/85022453>
+
+        Reviewed by Youenn Fablet.
+
+        Let web process send message to network process for file path.
+
+        * NetworkProcess/storage/NetworkStorageManager.cpp:
+        (WebKit::NetworkStorageManager::getFile):
+        * NetworkProcess/storage/NetworkStorageManager.h:
+        * NetworkProcess/storage/NetworkStorageManager.messages.in:
+        * WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp:
+        (WebKit::WebFileSystemStorageConnection::getFile):
+        * WebProcess/WebCoreSupport/WebFileSystemStorageConnection.h:
+
</ins><span class="cx"> 2021-11-16  Per Arne Vollan  <pvollan@apple.com>
</span><span class="cx"> 
</span><span class="cx">         [macOS] Add sandbox telemetry for preference access
</span></span></pre></div>
<a id="trunkSourceWebKitNetworkProcessstorageNetworkStorageManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp     2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp        2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -245,6 +245,17 @@
</span><span class="cx">     completionHandler(handle->resolve(targetIdentifier));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void NetworkStorageManager::getFile(WebCore::FileSystemHandleIdentifier identifier, CompletionHandler<void(Expected<String, FileSystemStorageError>)>&& completionHandler)
+{
+    ASSERT(!RunLoop::isMain());
+
+    auto handle = m_fileSystemStorageHandleRegistry->getHandle(identifier);
+    if (!handle)
+        return completionHandler(makeUnexpected(FileSystemStorageError::Unknown));
+
+    completionHandler(handle->path());
+}
+
</ins><span class="cx"> void NetworkStorageManager::createSyncAccessHandle(WebCore::FileSystemHandleIdentifier identifier, CompletionHandler<void(Expected<AccessHandleInfo, FileSystemStorageError>)>&& completionHandler)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(!RunLoop::isMain());
</span></span></pre></div>
<a id="trunkSourceWebKitNetworkProcessstorageNetworkStorageManagerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h       2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h  2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -76,6 +76,7 @@
</span><span class="cx">     void getDirectoryHandle(IPC::Connection&, WebCore::FileSystemHandleIdentifier, String&& name, bool createIfNecessary, CompletionHandler<void(Expected<WebCore::FileSystemHandleIdentifier, FileSystemStorageError>)>&&);
</span><span class="cx">     void removeEntry(WebCore::FileSystemHandleIdentifier, const String& name, bool deleteRecursively, CompletionHandler<void(std::optional<FileSystemStorageError>)>&&);
</span><span class="cx">     void resolve(WebCore::FileSystemHandleIdentifier, WebCore::FileSystemHandleIdentifier, CompletionHandler<void(Expected<Vector<String>, FileSystemStorageError>)>&&);
</span><ins>+    void getFile(WebCore::FileSystemHandleIdentifier, CompletionHandler<void(Expected<String, FileSystemStorageError>)>&&);
</ins><span class="cx"> 
</span><span class="cx">     using AccessHandleInfo = std::pair<WebCore::FileSystemSyncAccessHandleIdentifier, IPC::SharedFileHandle>;
</span><span class="cx">     void createSyncAccessHandle(WebCore::FileSystemHandleIdentifier, CompletionHandler<void(Expected<AccessHandleInfo, FileSystemStorageError>)>&&);
</span></span></pre></div>
<a id="trunkSourceWebKitNetworkProcessstorageNetworkStorageManagermessagesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.messages.in (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.messages.in     2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.messages.in        2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -34,6 +34,7 @@
</span><span class="cx">     RemoveEntry(WebCore::FileSystemHandleIdentifier identifier, String name, bool deleteRecursively) -> (std::optional<WebKit::FileSystemStorageError> result) Async
</span><span class="cx">     Resolve(WebCore::FileSystemHandleIdentifier identifier, WebCore::FileSystemHandleIdentifier targetIdentifier) -> (Expected<Vector<String>, WebKit::FileSystemStorageError> result) Async
</span><span class="cx">     Move(WebCore::FileSystemHandleIdentifier identifier, WebCore::FileSystemHandleIdentifier destinationIdentifier, String newName) -> (std::optional<WebKit::FileSystemStorageError> result) Async
</span><ins>+    GetFile(WebCore::FileSystemHandleIdentifier identifier) -> (Expected<String, WebKit::FileSystemStorageError> result) Async
</ins><span class="cx"> 
</span><span class="cx">     CreateSyncAccessHandle(WebCore::FileSystemHandleIdentifier identifier) -> (Expected<std::pair<WebCore::FileSystemSyncAccessHandleIdentifier, IPC::SharedFileHandle>, WebKit::FileSystemStorageError> result) Async
</span><span class="cx">     CloseAccessHandle(WebCore::FileSystemHandleIdentifier identifier, WebCore::FileSystemSyncAccessHandleIdentifier accessHandleIdentifier) -> (std::optional<WebKit::FileSystemStorageError> result) Async
</span></span></pre></div>
<a id="trunkSourceWebKitWebProcessWebCoreSupportWebFileSystemStorageConnectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp 2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp    2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -120,6 +120,19 @@
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void WebFileSystemStorageConnection::getFile(WebCore::FileSystemHandleIdentifier identifier, StringCallback&& completionHandler)
+{
+    if (!m_connection)
+        return completionHandler(WebCore::Exception { WebCore::UnknownError, "Connection is lost" });
+
+    m_connection->sendWithAsyncReply(Messages::NetworkStorageManager::GetFile(identifier), [completionHandler = WTFMove(completionHandler)](auto result) mutable {
+        if (!result)
+            return completionHandler(convertToException(result.error()));
+
+        completionHandler(WTFMove(result.value()));
+    });
+}
+
</ins><span class="cx"> void WebFileSystemStorageConnection::createSyncAccessHandle(WebCore::FileSystemHandleIdentifier identifier, WebCore::FileSystemStorageConnection::GetAccessHandleCallback&& completionHandler)
</span><span class="cx"> {
</span><span class="cx">     if (!m_connection)
</span></span></pre></div>
<a id="trunkSourceWebKitWebProcessWebCoreSupportWebFileSystemStorageConnectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.h (285911 => 285912)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.h   2021-11-17 02:48:39 UTC (rev 285911)
+++ trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.h      2021-11-17 02:55:32 UTC (rev 285912)
</span><span class="lines">@@ -81,6 +81,7 @@
</span><span class="cx">     void resolve(WebCore::FileSystemHandleIdentifier, WebCore::FileSystemHandleIdentifier, WebCore::FileSystemStorageConnection::ResolveCallback&&) final;
</span><span class="cx">     void getHandleNames(WebCore::FileSystemHandleIdentifier, FileSystemStorageConnection::GetHandleNamesCallback&&) final;
</span><span class="cx">     void getHandle(WebCore::FileSystemHandleIdentifier, const String& name, FileSystemStorageConnection::GetHandleWithTypeCallback&&) final;
</span><ins>+    void getFile(WebCore::FileSystemHandleIdentifier, StringCallback&&) final;
</ins><span class="cx"> 
</span><span class="cx">     void createSyncAccessHandle(WebCore::FileSystemHandleIdentifier, WebCore::FileSystemStorageConnection::GetAccessHandleCallback&&) final;
</span><span class="cx">     void close(WebCore::FileSystemHandleIdentifier, WebCore::FileSystemSyncAccessHandleIdentifier, WebCore::FileSystemStorageConnection::VoidCallback&&) final;
</span></span></pre>
</div>
</div>

</body>
</html>