<!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>[217859] trunk/Source/WebCore</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/217859">217859</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2017-06-06 15:04:19 -0700 (Tue, 06 Jun 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>Allow FileReader to open files multiple times

If multiple file readers open files they are prevented by default due to
Windows' file locking.

Allow FileReader to open multiple files for reading at the same time on wincairo
https://bugs.webkit.org/show_bug.cgi?id=172632

Patch by Isaac Devine <isaac@devinesystems.co.nz> on 2017-06-06
Reviewed by Darin Adler.

* platform/win/FileSystemWin.cpp:
(WebCore::openFile): Use the appropriate sharing options to allow multiple opens</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreplatformwinFileSystemWincpp">trunk/Source/WebCore/platform/win/FileSystemWin.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (217858 => 217859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog   2017-06-06 21:46:29 UTC (rev 217858)
+++ trunk/Source/WebCore/ChangeLog      2017-06-06 22:04:19 UTC (rev 217859)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2017-06-06  Isaac Devine  <isaac@devinesystems.co.nz>
+
+        Allow FileReader to open files multiple times
+
+        If multiple file readers open files they are prevented by default due to
+        Windows' file locking.
+
+        Allow FileReader to open multiple files for reading at the same time on wincairo
+        https://bugs.webkit.org/show_bug.cgi?id=172632
+
+        Reviewed by Darin Adler.
+
+        * platform/win/FileSystemWin.cpp:
+        (WebCore::openFile): Use the appropriate sharing options to allow multiple opens
+
</ins><span class="cx"> 2017-06-06  Beth Dakin  <bdakin@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Netflix seeking quirk should also apply to Now Playing, and should always use the 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformwinFileSystemWincpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/win/FileSystemWin.cpp (217858 => 217859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/win/FileSystemWin.cpp      2017-06-06 21:46:29 UTC (rev 217858)
+++ trunk/Source/WebCore/platform/win/FileSystemWin.cpp 2017-06-06 22:04:19 UTC (rev 217859)
</span><span class="lines">@@ -339,10 +339,12 @@
</span><span class="cx"> {
</span><span class="cx">     DWORD desiredAccess = 0;
</span><span class="cx">     DWORD creationDisposition = 0;
</span><ins>+    DWORD shareMode = 0;
</ins><span class="cx">     switch (mode) {
</span><span class="cx">     case OpenForRead:
</span><span class="cx">         desiredAccess = GENERIC_READ;
</span><span class="cx">         creationDisposition = OPEN_EXISTING;
</span><ins>+        shareMode = FILE_SHARE_READ;
</ins><span class="cx">         break;
</span><span class="cx">     case OpenForWrite:
</span><span class="cx">         desiredAccess = GENERIC_WRITE;
</span><span class="lines">@@ -353,7 +355,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     String destination = path;
</span><del>-    return CreateFile(destination.charactersWithNullTermination().data(), desiredAccess, 0, 0, creationDisposition, FILE_ATTRIBUTE_NORMAL, 0);
</del><ins>+    return CreateFile(destination.charactersWithNullTermination().data(), desiredAccess, shareMode, 0, creationDisposition, FILE_ATTRIBUTE_NORMAL, 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void closeFile(PlatformFileHandle& handle)
</span></span></pre>
</div>
</div>

</body>
</html>