<!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>[214680] trunk/Source</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/214680">214680</a></dd>
<dt>Author</dt> <dd>beidson@apple.com</dd>
<dt>Date</dt> <dd>2017-03-31 12:27:52 -0700 (Fri, 31 Mar 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>Clean up the &quot;StorageType&quot; enum.
https://bugs.webkit.org/show_bug.cgi?id=170349

Reviewed by Tim Horton.

Source/WebCore:

- Make this `enum` into an `enum class`
- Add a new type specific for &quot;transient local storage&quot;

No new tests (No behavior change).

* WebCore.xcodeproj/project.pbxproj:

* inspector/InspectorDOMStorageAgent.cpp:
(WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):

* inspector/InspectorInstrumentation.h:

* loader/EmptyClients.cpp:

* storage/Storage.cpp:
(WebCore::Storage::isDisabledByPrivateBrowsing):

* storage/StorageArea.h:
(): Deleted.

* storage/StorageEventDispatcher.cpp:
(WebCore::StorageEventDispatcher::dispatchSessionStorageEventsToFrames):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEventsToFrames):

* storage/StorageType.h:
(WebCore::isLocalStorage):

Source/WebKit:

* Storage/StorageAreaImpl.cpp:
(WebKit::StorageAreaImpl::dispatchStorageEvent):

* Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::createSessionStorageNamespace):
(WebKit::StorageNamespaceImpl::getOrCreateLocalStorageNamespace):
(WebKit::StorageNamespaceImpl::StorageNamespaceImpl):
(WebKit::StorageNamespaceImpl::~StorageNamespaceImpl):
(WebKit::StorageNamespaceImpl::copy):
(WebKit::StorageNamespaceImpl::close):

Source/WebKit2:

* WebProcess/Storage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::StorageAreaMap):
(WebKit::StorageAreaMap::dispatchStorageEvent):
(WebKit::StorageAreaMap::dispatchSessionStorageEvent):
(WebKit::StorageAreaMap::dispatchLocalStorageEvent):

* WebProcess/Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::createSessionStorageNamespace):
(WebKit::StorageNamespaceImpl::createLocalStorageNamespace):
(WebKit::StorageNamespaceImpl::createTransientLocalStorageNamespace):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorDOMStorageAgentcpp">trunk/Source/WebCore/inspector/InspectorDOMStorageAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorInstrumentationh">trunk/Source/WebCore/inspector/InspectorInstrumentation.h</a></li>
<li><a href="#trunkSourceWebCoreloaderEmptyClientscpp">trunk/Source/WebCore/loader/EmptyClients.cpp</a></li>
<li><a href="#trunkSourceWebCorestorageStoragecpp">trunk/Source/WebCore/storage/Storage.cpp</a></li>
<li><a href="#trunkSourceWebCorestorageStorageAreah">trunk/Source/WebCore/storage/StorageArea.h</a></li>
<li><a href="#trunkSourceWebCorestorageStorageEventDispatchercpp">trunk/Source/WebCore/storage/StorageEventDispatcher.cpp</a></li>
<li><a href="#trunkSourceWebKitChangeLog">trunk/Source/WebKit/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitStorageStorageAreaImplcpp">trunk/Source/WebKit/Storage/StorageAreaImpl.cpp</a></li>
<li><a href="#trunkSourceWebKitStorageStorageNamespaceImplcpp">trunk/Source/WebKit/Storage/StorageNamespaceImpl.cpp</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2WebProcessStorageStorageAreaMapcpp">trunk/Source/WebKit2/WebProcess/Storage/StorageAreaMap.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessStorageStorageNamespaceImplcpp">trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.cpp</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebCorestorageStorageTypeh">trunk/Source/WebCore/storage/StorageType.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (214679 => 214680)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2017-03-31 19:27:14 UTC (rev 214679)
+++ trunk/Source/WebCore/ChangeLog        2017-03-31 19:27:52 UTC (rev 214680)
</span><span class="lines">@@ -1,3 +1,37 @@
</span><ins>+2017-03-31  Brady Eidson  &lt;beidson@apple.com&gt;
+
+        Clean up the &quot;StorageType&quot; enum.
+        https://bugs.webkit.org/show_bug.cgi?id=170349
+
+        Reviewed by Tim Horton.
+
+        - Make this `enum` into an `enum class`
+        - Add a new type specific for &quot;transient local storage&quot;
+
+        No new tests (No behavior change).
+
+        * WebCore.xcodeproj/project.pbxproj:
+        
+        * inspector/InspectorDOMStorageAgent.cpp:
+        (WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
+        
+        * inspector/InspectorInstrumentation.h:
+        
+        * loader/EmptyClients.cpp:
+        
+        * storage/Storage.cpp:
+        (WebCore::Storage::isDisabledByPrivateBrowsing):
+        
+        * storage/StorageArea.h:
+        (): Deleted.
+        
+        * storage/StorageEventDispatcher.cpp:
+        (WebCore::StorageEventDispatcher::dispatchSessionStorageEventsToFrames):
+        (WebCore::StorageEventDispatcher::dispatchLocalStorageEventsToFrames):
+        
+        * storage/StorageType.h:
+        (WebCore::isLocalStorage):
+
</ins><span class="cx"> 2017-03-31  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed, Mark &quot;HTML interactive form validation&quot; as done.
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (214679 => 214680)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2017-03-31 19:27:14 UTC (rev 214679)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2017-03-31 19:27:52 UTC (rev 214680)
</span><span class="lines">@@ -2258,6 +2258,7 @@
</span><span class="cx">                 516103B01CADBA7A0016B4C7 /* IDBValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 516103AD1CADB9A30016B4C7 /* IDBValue.cpp */; };
</span><span class="cx">                 5162C7F411F77EFB00612EFE /* SchemeRegistry.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5162C7F211F77EFA00612EFE /* SchemeRegistry.cpp */; };
</span><span class="cx">                 5162C7F511F77EFB00612EFE /* SchemeRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = 5162C7F311F77EFB00612EFE /* SchemeRegistry.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><ins>+                5166D3CD1E8ED48F00AD62E3 /* StorageType.h in Headers */ = {isa = PBXBuildFile; fileRef = 5166D3CC1E8ED41100AD62E3 /* StorageType.h */; settings = {ATTRIBUTES = (Private, ); }; };
</ins><span class="cx">                 516953971329A3C800B92D04 /* IconDatabaseBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 516953951329A3C800B92D04 /* IconDatabaseBase.cpp */; };
</span><span class="cx">                 516953981329A3C800B92D04 /* IconDatabaseBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 516953961329A3C800B92D04 /* IconDatabaseBase.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 516BB7940CE91E6800512F79 /* JSTreeWalkerCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 516BB7920CE91E6800512F79 /* JSTreeWalkerCustom.cpp */; };
</span><span class="lines">@@ -9927,6 +9928,7 @@
</span><span class="cx">                 51645B521B9F889B00F789CE /* IDBVersionChangeEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBVersionChangeEvent.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51645B531B9F889B00F789CE /* IDBVersionChangeEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBVersionChangeEvent.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51645B541B9F88E800F789CE /* IDBCursor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBCursor.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                5166D3CC1E8ED41100AD62E3 /* StorageType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StorageType.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 516953951329A3C800B92D04 /* IconDatabaseBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IconDatabaseBase.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 516953961329A3C800B92D04 /* IconDatabaseBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IconDatabaseBase.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 516BB7920CE91E6800512F79 /* JSTreeWalkerCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSTreeWalkerCustom.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -16840,6 +16842,7 @@
</span><span class="cx">                                 C50D0E810FF4272900AC2644 /* StorageNamespace.h */,
</span><span class="cx">                                 1A3763691A2E68BB009A7EE2 /* StorageNamespaceProvider.cpp */,
</span><span class="cx">                                 1A37636A1A2E68BB009A7EE2 /* StorageNamespaceProvider.h */,
</span><ins>+                                5166D3CC1E8ED41100AD62E3 /* StorageType.h */,
</ins><span class="cx">                         );
</span><span class="cx">                         indentWidth = 4;
</span><span class="cx">                         path = storage;
</span><span class="lines">@@ -28498,6 +28501,7 @@
</span><span class="cx">                                 CDE7FC45181904B1002BBB77 /* OrderIterator.h in Headers */,
</span><span class="cx">                                 0014628B103CD1DE000B20DB /* OriginAccessEntry.h in Headers */,
</span><span class="cx">                                 FE9E89FC16E2DC0500A908F8 /* OriginLock.h in Headers */,
</span><ins>+                                5166D3CD1E8ED48F00AD62E3 /* StorageType.h in Headers */,
</ins><span class="cx">                                 FD581FAF1520F91F003A7A75 /* OscillatorNode.h in Headers */,
</span><span class="cx">                                 BC5EB5DD0E81B8DD00B25965 /* OutlineValue.h in Headers */,
</span><span class="cx">                                 7A29F57218C69514004D0F81 /* OutOfBandTextTrackPrivateAVF.h in Headers */,
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorDOMStorageAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorDOMStorageAgent.cpp (214679 => 214680)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorDOMStorageAgent.cpp        2017-03-31 19:27:14 UTC (rev 214679)
+++ trunk/Source/WebCore/inspector/InspectorDOMStorageAgent.cpp        2017-03-31 19:27:52 UTC (rev 214680)
</span><span class="lines">@@ -45,6 +45,7 @@
</span><span class="cx"> #include &quot;Storage.h&quot;
</span><span class="cx"> #include &quot;StorageNamespace.h&quot;
</span><span class="cx"> #include &quot;StorageNamespaceProvider.h&quot;
</span><ins>+#include &quot;StorageType.h&quot;
</ins><span class="cx"> #include &quot;VoidCallback.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorFrontendDispatchers.h&gt;
</span><span class="cx"> #include &lt;inspector/InspectorValues.h&gt;
</span><span class="lines">@@ -163,7 +164,7 @@
</span><span class="cx">     if (!m_enabled)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    RefPtr&lt;Inspector::Protocol::DOMStorage::StorageId&gt; id = storageId(securityOrigin, storageType == LocalStorage);
</del><ins>+    RefPtr&lt;Inspector::Protocol::DOMStorage::StorageId&gt; id = storageId(securityOrigin, storageType == StorageType::Local);
</ins><span class="cx"> 
</span><span class="cx">     if (key.isNull())
</span><span class="cx">         m_frontendDispatcher-&gt;domStorageItemsCleared(id);
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorInstrumentationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorInstrumentation.h (214679 => 214680)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorInstrumentation.h        2017-03-31 19:27:14 UTC (rev 214679)
+++ trunk/Source/WebCore/inspector/InspectorInstrumentation.h        2017-03-31 19:27:52 UTC (rev 214680)
</span><span class="lines">@@ -84,6 +84,8 @@
</span><span class="cx"> class WebKitNamedFlow;
</span><span class="cx"> class WorkerInspectorProxy;
</span><span class="cx"> 
</span><ins>+enum class StorageType;
+
</ins><span class="cx"> struct ReplayPosition;
</span><span class="cx"> struct WebSocketFrame;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderEmptyClientscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/EmptyClients.cpp (214679 => 214680)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/EmptyClients.cpp        2017-03-31 19:27:14 UTC (rev 214679)
+++ trunk/Source/WebCore/loader/EmptyClients.cpp        2017-03-31 19:27:52 UTC (rev 214680)
</span><span class="lines">@@ -56,6 +56,7 @@
</span><span class="cx"> #include &quot;StorageArea.h&quot;
</span><span class="cx"> #include &quot;StorageNamespace.h&quot;
</span><span class="cx"> #include &quot;StorageNamespaceProvider.h&quot;
</span><ins>+#include &quot;StorageType.h&quot;
</ins><span class="cx"> #include &quot;TextCheckerClient.h&quot;
</span><span class="cx"> #include &quot;ThreadableWebSocketChannel.h&quot;
</span><span class="cx"> #include &quot;UserContentProvider.h&quot;
</span><span class="lines">@@ -549,7 +550,7 @@
</span><span class="cx">         void clear(Frame*) final { }
</span><span class="cx">         bool contains(const String&amp;) final { return false; }
</span><span class="cx">         bool canAccessStorage(Frame*) final { return false; }
</span><del>-        StorageType storageType() const final { return LocalStorage; }
</del><ins>+        StorageType storageType() const final { return StorageType::Local; }
</ins><span class="cx">         size_t memoryBytesUsedByCache() final { return 0; }
</span><span class="cx">         SecurityOriginData securityOrigin() const final { return { }; }
</span><span class="cx">     };
</span></span></pre></div>
<a id="trunkSourceWebCorestorageStoragecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/storage/Storage.cpp (214679 => 214680)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/storage/Storage.cpp        2017-03-31 19:27:14 UTC (rev 214679)
+++ trunk/Source/WebCore/storage/Storage.cpp        2017-03-31 19:27:52 UTC (rev 214680)
</span><span class="lines">@@ -33,6 +33,7 @@
</span><span class="cx"> #include &quot;SchemeRegistry.h&quot;
</span><span class="cx"> #include &quot;SecurityOrigin.h&quot;
</span><span class="cx"> #include &quot;StorageArea.h&quot;
</span><ins>+#include &quot;StorageType.h&quot;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -145,7 +146,7 @@
</span><span class="cx">     if (!m_frame-&gt;page()-&gt;usesEphemeralSession())
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (m_storageArea-&gt;storageType() == LocalStorage) {
</del><ins>+    if (isLocalStorage(m_storageArea-&gt;storageType())) {
</ins><span class="cx">         if (SchemeRegistry::allowsLocalStorageAccessInPrivateBrowsing(m_frame-&gt;document()-&gt;securityOrigin().protocol()))
</span><span class="cx">             return false;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorestorageStorageAreah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/storage/StorageArea.h (214679 => 214680)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/storage/StorageArea.h        2017-03-31 19:27:14 UTC (rev 214679)
+++ trunk/Source/WebCore/storage/StorageArea.h        2017-03-31 19:27:52 UTC (rev 214680)
</span><span class="lines">@@ -35,7 +35,8 @@
</span><span class="cx"> class SecurityOrigin;
</span><span class="cx"> class StorageSyncManager;
</span><span class="cx"> 
</span><del>-enum StorageType { LocalStorage, SessionStorage };
</del><ins>+enum class StorageType;
+
</ins><span class="cx"> struct SecurityOriginData;
</span><span class="cx"> 
</span><span class="cx"> class StorageArea : public RefCounted&lt;StorageArea&gt; {
</span></span></pre></div>
<a id="trunkSourceWebCorestorageStorageEventDispatchercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/storage/StorageEventDispatcher.cpp (214679 => 214680)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/storage/StorageEventDispatcher.cpp        2017-03-31 19:27:14 UTC (rev 214679)
+++ trunk/Source/WebCore/storage/StorageEventDispatcher.cpp        2017-03-31 19:27:52 UTC (rev 214680)
</span><span class="lines">@@ -36,6 +36,7 @@
</span><span class="cx"> #include &quot;SecurityOrigin.h&quot;
</span><span class="cx"> #include &quot;SecurityOriginData.h&quot;
</span><span class="cx"> #include &quot;StorageEvent.h&quot;
</span><ins>+#include &quot;StorageType.h&quot;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="lines">@@ -77,7 +78,7 @@
</span><span class="cx"> 
</span><span class="cx"> void StorageEventDispatcher::dispatchSessionStorageEventsToFrames(Page&amp; page, const Vector&lt;RefPtr&lt;Frame&gt;&gt;&amp; frames, const String&amp; key, const String&amp; oldValue, const String&amp; newValue, const String&amp; url, const SecurityOriginData&amp; securityOrigin)
</span><span class="cx"> {
</span><del>-    InspectorInstrumentation::didDispatchDOMStorageEvent(page, key, oldValue, newValue, SessionStorage, securityOrigin.securityOrigin().ptr());
</del><ins>+    InspectorInstrumentation::didDispatchDOMStorageEvent(page, key, oldValue, newValue, StorageType::Session, securityOrigin.securityOrigin().ptr());
</ins><span class="cx"> 
</span><span class="cx">     for (auto&amp; frame : frames) {
</span><span class="cx">         auto result = frame-&gt;document()-&gt;domWindow()-&gt;sessionStorage();
</span><span class="lines">@@ -89,7 +90,7 @@
</span><span class="cx"> void StorageEventDispatcher::dispatchLocalStorageEventsToFrames(PageGroup&amp; pageGroup, const Vector&lt;RefPtr&lt;Frame&gt;&gt;&amp; frames, const String&amp; key, const String&amp; oldValue, const String&amp; newValue, const String&amp; url, const SecurityOriginData&amp; securityOrigin)
</span><span class="cx"> {
</span><span class="cx">     for (auto&amp; page : pageGroup.pages())
</span><del>-        InspectorInstrumentation::didDispatchDOMStorageEvent(*page, key, oldValue, newValue, LocalStorage, securityOrigin.securityOrigin().ptr());
</del><ins>+        InspectorInstrumentation::didDispatchDOMStorageEvent(*page, key, oldValue, newValue, StorageType::Local, securityOrigin.securityOrigin().ptr());
</ins><span class="cx"> 
</span><span class="cx">     for (auto&amp; frame : frames) {
</span><span class="cx">         auto result = frame-&gt;document()-&gt;domWindow()-&gt;localStorage();
</span></span></pre></div>
<a id="trunkSourceWebCorestorageStorageTypehfromrev214679trunkSourceWebCorestorageStorageAreah"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/storage/StorageType.h (from rev 214679, trunk/Source/WebCore/storage/StorageArea.h) (0 => 214680)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/storage/StorageType.h                                (rev 0)
+++ trunk/Source/WebCore/storage/StorageType.h        2017-03-31 19:27:52 UTC (rev 214680)
</span><span class="lines">@@ -0,0 +1,41 @@
</span><ins>+/*
+ * Copyright (C) 2017 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+namespace WebCore {
+
+enum class StorageType {
+    Session,
+    Local,
+    TransientLocal,
+};
+
+inline bool isLocalStorage(StorageType storageType)
+{
+    return storageType == StorageType::Local || storageType == StorageType::TransientLocal;
+}
+
+} // namespace WebCore
</ins></span></pre></div>
<a id="trunkSourceWebKitChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ChangeLog (214679 => 214680)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ChangeLog        2017-03-31 19:27:14 UTC (rev 214679)
+++ trunk/Source/WebKit/ChangeLog        2017-03-31 19:27:52 UTC (rev 214680)
</span><span class="lines">@@ -1,3 +1,21 @@
</span><ins>+2017-03-31  Brady Eidson  &lt;beidson@apple.com&gt;
+
+        Clean up the &quot;StorageType&quot; enum.
+        https://bugs.webkit.org/show_bug.cgi?id=170349
+
+        Reviewed by Tim Horton.
+
+        * Storage/StorageAreaImpl.cpp:
+        (WebKit::StorageAreaImpl::dispatchStorageEvent):
+        
+        * Storage/StorageNamespaceImpl.cpp:
+        (WebKit::StorageNamespaceImpl::createSessionStorageNamespace):
+        (WebKit::StorageNamespaceImpl::getOrCreateLocalStorageNamespace):
+        (WebKit::StorageNamespaceImpl::StorageNamespaceImpl):
+        (WebKit::StorageNamespaceImpl::~StorageNamespaceImpl):
+        (WebKit::StorageNamespaceImpl::copy):
+        (WebKit::StorageNamespaceImpl::close):
+
</ins><span class="cx"> 2017-03-27  JF Bastien  &lt;jfbastien@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         make build fix for WebDefaultUIDelegate.m
</span></span></pre></div>
<a id="trunkSourceWebKitStorageStorageAreaImplcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/Storage/StorageAreaImpl.cpp (214679 => 214680)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/Storage/StorageAreaImpl.cpp        2017-03-31 19:27:14 UTC (rev 214679)
+++ trunk/Source/WebKit/Storage/StorageAreaImpl.cpp        2017-03-31 19:27:52 UTC (rev 214680)
</span><span class="lines">@@ -33,6 +33,7 @@
</span><span class="cx"> #include &lt;WebCore/SecurityOriginData.h&gt;
</span><span class="cx"> #include &lt;WebCore/StorageEventDispatcher.h&gt;
</span><span class="cx"> #include &lt;WebCore/StorageMap.h&gt;
</span><ins>+#include &lt;WebCore/StorageType.h&gt;
</ins><span class="cx"> #include &lt;wtf/MainThread.h&gt;
</span><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="lines">@@ -290,7 +291,7 @@
</span><span class="cx"> 
</span><span class="cx"> void StorageAreaImpl::dispatchStorageEvent(const String&amp; key, const String&amp; oldValue, const String&amp; newValue, Frame* sourceFrame)
</span><span class="cx"> {
</span><del>-    if (m_storageType == LocalStorage)
</del><ins>+    if (isLocalStorage(m_storageType))
</ins><span class="cx">         StorageEventDispatcher::dispatchLocalStorageEvents(key, oldValue, newValue, m_securityOrigin, sourceFrame);
</span><span class="cx">     else
</span><span class="cx">         StorageEventDispatcher::dispatchSessionStorageEvents(key, oldValue, newValue, m_securityOrigin, sourceFrame);
</span></span></pre></div>
<a id="trunkSourceWebKitStorageStorageNamespaceImplcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/Storage/StorageNamespaceImpl.cpp (214679 => 214680)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/Storage/StorageNamespaceImpl.cpp        2017-03-31 19:27:14 UTC (rev 214679)
+++ trunk/Source/WebKit/Storage/StorageNamespaceImpl.cpp        2017-03-31 19:27:52 UTC (rev 214680)
</span><span class="lines">@@ -29,6 +29,7 @@
</span><span class="cx"> #include &quot;StorageSyncManager.h&quot;
</span><span class="cx"> #include &quot;StorageTracker.h&quot;
</span><span class="cx"> #include &lt;WebCore/StorageMap.h&gt;
</span><ins>+#include &lt;WebCore/StorageType.h&gt;
</ins><span class="cx"> #include &lt;wtf/MainThread.h&gt;
</span><span class="cx"> #include &lt;wtf/NeverDestroyed.h&gt;
</span><span class="cx"> #include &lt;wtf/text/StringHash.h&gt;
</span><span class="lines">@@ -46,7 +47,7 @@
</span><span class="cx"> 
</span><span class="cx"> Ref&lt;StorageNamespaceImpl&gt; StorageNamespaceImpl::createSessionStorageNamespace(unsigned quota)
</span><span class="cx"> {
</span><del>-    return adoptRef(*new StorageNamespaceImpl(SessionStorage, String(), quota));
</del><ins>+    return adoptRef(*new StorageNamespaceImpl(StorageType::Session, String(), quota));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Ref&lt;StorageNamespaceImpl&gt; StorageNamespaceImpl::getOrCreateLocalStorageNamespace(const String&amp; databasePath, unsigned quota)
</span><span class="lines">@@ -57,7 +58,7 @@
</span><span class="cx">     if (slot)
</span><span class="cx">         return *slot;
</span><span class="cx"> 
</span><del>-    Ref&lt;StorageNamespaceImpl&gt; storageNamespace = adoptRef(*new StorageNamespaceImpl(LocalStorage, databasePath, quota));
</del><ins>+    Ref&lt;StorageNamespaceImpl&gt; storageNamespace = adoptRef(*new StorageNamespaceImpl(StorageType::Local, databasePath, quota));
</ins><span class="cx">     slot = storageNamespace.ptr();
</span><span class="cx"> 
</span><span class="cx">     return storageNamespace;
</span><span class="lines">@@ -70,7 +71,7 @@
</span><span class="cx">     , m_quota(quota)
</span><span class="cx">     , m_isShutdown(false)
</span><span class="cx"> {
</span><del>-    if (m_storageType == LocalStorage &amp;&amp; !m_path.isEmpty())
</del><ins>+    if (isLocalStorage(m_storageType) &amp;&amp; !m_path.isEmpty())
</ins><span class="cx">         m_syncManager = StorageSyncManager::create(m_path);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -78,7 +79,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx"> 
</span><del>-    if (m_storageType == LocalStorage) {
</del><ins>+    if (isLocalStorage(m_storageType)) {
</ins><span class="cx">         ASSERT(localStorageNamespaceMap().get(m_path) == this);
</span><span class="cx">         localStorageNamespaceMap().remove(m_path);
</span><span class="cx">     }
</span><span class="lines">@@ -91,7 +92,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx">     ASSERT(!m_isShutdown);
</span><del>-    ASSERT(m_storageType == SessionStorage);
</del><ins>+    ASSERT(m_storageType == StorageType::Session);
</ins><span class="cx"> 
</span><span class="cx">     RefPtr&lt;StorageNamespaceImpl&gt; newNamespace = adoptRef(new StorageNamespaceImpl(m_storageType, m_path, m_quota));
</span><span class="cx"> 
</span><span class="lines">@@ -123,7 +124,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // If we're session storage, we shouldn't need to do any work here.
</span><del>-    if (m_storageType == SessionStorage) {
</del><ins>+    if (m_storageType == StorageType::Session) {
</ins><span class="cx">         ASSERT(!m_syncManager);
</span><span class="cx">         return;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (214679 => 214680)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2017-03-31 19:27:14 UTC (rev 214679)
+++ trunk/Source/WebKit2/ChangeLog        2017-03-31 19:27:52 UTC (rev 214680)
</span><span class="lines">@@ -1,3 +1,21 @@
</span><ins>+2017-03-31  Brady Eidson  &lt;beidson@apple.com&gt;
+
+        Clean up the &quot;StorageType&quot; enum.
+        https://bugs.webkit.org/show_bug.cgi?id=170349
+
+        Reviewed by Tim Horton.
+
+        * WebProcess/Storage/StorageAreaMap.cpp:
+        (WebKit::StorageAreaMap::StorageAreaMap):
+        (WebKit::StorageAreaMap::dispatchStorageEvent):
+        (WebKit::StorageAreaMap::dispatchSessionStorageEvent):
+        (WebKit::StorageAreaMap::dispatchLocalStorageEvent):
+        
+        * WebProcess/Storage/StorageNamespaceImpl.cpp:
+        (WebKit::StorageNamespaceImpl::createSessionStorageNamespace):
+        (WebKit::StorageNamespaceImpl::createLocalStorageNamespace):
+        (WebKit::StorageNamespaceImpl::createTransientLocalStorageNamespace):
+
</ins><span class="cx"> 2017-03-31  Tim Horton  &lt;timothy_horton@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Remove bundle checks for attachmentElementEnabled
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessStorageStorageAreaMapcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Storage/StorageAreaMap.cpp (214679 => 214680)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Storage/StorageAreaMap.cpp        2017-03-31 19:27:14 UTC (rev 214679)
+++ trunk/Source/WebKit2/WebProcess/Storage/StorageAreaMap.cpp        2017-03-31 19:27:52 UTC (rev 214680)
</span><span class="lines">@@ -42,6 +42,7 @@
</span><span class="cx"> #include &lt;WebCore/Storage.h&gt;
</span><span class="cx"> #include &lt;WebCore/StorageEventDispatcher.h&gt;
</span><span class="cx"> #include &lt;WebCore/StorageMap.h&gt;
</span><ins>+#include &lt;WebCore/StorageType.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span><span class="lines">@@ -70,7 +71,8 @@
</span><span class="cx">     , m_hasPendingGetValues(false)
</span><span class="cx"> {
</span><span class="cx">     switch (m_storageType) {
</span><del>-    case WebCore::LocalStorage:
</del><ins>+    case StorageType::Local:
+    case StorageType::TransientLocal:
</ins><span class="cx">         if (SecurityOrigin* topLevelOrigin = storageNamespace-&gt;topLevelOrigin())
</span><span class="cx">             WebProcess::singleton().parentProcessConnection()-&gt;send(Messages::StorageManager::CreateTransientLocalStorageMap(m_storageMapID, storageNamespace-&gt;storageNamespaceID(), SecurityOriginData::fromSecurityOrigin(*topLevelOrigin), SecurityOriginData::fromSecurityOrigin(m_securityOrigin)), 0);
</span><span class="cx">         else
</span><span class="lines">@@ -78,7 +80,7 @@
</span><span class="cx"> 
</span><span class="cx">         break;
</span><span class="cx"> 
</span><del>-    case WebCore::SessionStorage:
</del><ins>+    case StorageType::Session:
</ins><span class="cx">         WebProcess::singleton().parentProcessConnection()-&gt;send(Messages::StorageManager::CreateSessionStorageMap(m_storageMapID, storageNamespace-&gt;storageNamespaceID(), SecurityOriginData::fromSecurityOrigin(m_securityOrigin)), 0);
</span><span class="cx">         break;
</span><span class="cx">     }
</span><span class="lines">@@ -302,7 +304,7 @@
</span><span class="cx">         applyChange(key, newValue);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (storageType() == SessionStorage)
</del><ins>+    if (storageType() == StorageType::Session)
</ins><span class="cx">         dispatchSessionStorageEvent(sourceStorageAreaID, key, oldValue, newValue, urlString);
</span><span class="cx">     else
</span><span class="cx">         dispatchLocalStorageEvent(sourceStorageAreaID, key, oldValue, newValue, urlString);
</span><span class="lines">@@ -315,7 +317,7 @@
</span><span class="cx"> 
</span><span class="cx"> void StorageAreaMap::dispatchSessionStorageEvent(uint64_t sourceStorageAreaID, const String&amp; key, const String&amp; oldValue, const String&amp; newValue, const String&amp; urlString)
</span><span class="cx"> {
</span><del>-    ASSERT(storageType() == SessionStorage);
</del><ins>+    ASSERT(storageType() == StorageType::Session);
</ins><span class="cx"> 
</span><span class="cx">     // Namespace IDs for session storage namespaces are equivalent to web page IDs
</span><span class="cx">     // so we can get the right page here.
</span><span class="lines">@@ -349,7 +351,7 @@
</span><span class="cx"> 
</span><span class="cx"> void StorageAreaMap::dispatchLocalStorageEvent(uint64_t sourceStorageAreaID, const String&amp; key, const String&amp; oldValue, const String&amp; newValue, const String&amp; urlString)
</span><span class="cx"> {
</span><del>-    ASSERT(storageType() == LocalStorage);
</del><ins>+    ASSERT(isLocalStorage(storageType()));
</ins><span class="cx"> 
</span><span class="cx">     Vector&lt;RefPtr&lt;Frame&gt;&gt; frames;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessStorageStorageNamespaceImplcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.cpp (214679 => 214680)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.cpp        2017-03-31 19:27:14 UTC (rev 214679)
+++ trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.cpp        2017-03-31 19:27:52 UTC (rev 214680)
</span><span class="lines">@@ -34,6 +34,7 @@
</span><span class="cx"> #include &lt;WebCore/PageGroup.h&gt;
</span><span class="cx"> #include &lt;WebCore/SecurityOrigin.h&gt;
</span><span class="cx"> #include &lt;WebCore/Settings.h&gt;
</span><ins>+#include &lt;WebCore/StorageType.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span><span class="lines">@@ -41,17 +42,17 @@
</span><span class="cx"> 
</span><span class="cx"> RefPtr&lt;StorageNamespaceImpl&gt; StorageNamespaceImpl::createSessionStorageNamespace(uint64_t identifier, unsigned quotaInBytes)
</span><span class="cx"> {
</span><del>-    return adoptRef(new StorageNamespaceImpl(SessionStorage, identifier, nullptr, quotaInBytes));
</del><ins>+    return adoptRef(new StorageNamespaceImpl(StorageType::Session, identifier, nullptr, quotaInBytes));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> RefPtr&lt;StorageNamespaceImpl&gt; StorageNamespaceImpl::createLocalStorageNamespace(uint64_t identifier, unsigned quotaInBytes)
</span><span class="cx"> {
</span><del>-    return adoptRef(new StorageNamespaceImpl(LocalStorage, identifier, nullptr, quotaInBytes));
</del><ins>+    return adoptRef(new StorageNamespaceImpl(StorageType::Local, identifier, nullptr, quotaInBytes));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> RefPtr&lt;StorageNamespaceImpl&gt; StorageNamespaceImpl::createTransientLocalStorageNamespace(uint64_t identifier, WebCore::SecurityOrigin&amp; topLevelOrigin, uint64_t quotaInBytes)
</span><span class="cx"> {
</span><del>-    return adoptRef(new StorageNamespaceImpl(LocalStorage, identifier, &amp;topLevelOrigin, quotaInBytes));
</del><ins>+    return adoptRef(new StorageNamespaceImpl(StorageType::TransientLocal, identifier, &amp;topLevelOrigin, quotaInBytes));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> StorageNamespaceImpl::StorageNamespaceImpl(WebCore::StorageType storageType, uint64_t storageNamespaceID, WebCore::SecurityOrigin* topLevelOrigin, unsigned quotaInBytes)
</span></span></pre>
</div>
</div>

</body>
</html>