<!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 "StorageType" 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 "transient local storage"
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 <beidson@apple.com>
+
+ Clean up the "StorageType" 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 "transient local storage"
+
+ 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 <cdumez@apple.com>
</span><span class="cx">
</span><span class="cx"> Unreviewed, Mark "HTML interactive form validation" 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 = "<group>"; };
</span><span class="cx">                 51645B531B9F889B00F789CE /* IDBVersionChangeEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBVersionChangeEvent.h; sourceTree = "<group>"; };
</span><span class="cx">                 51645B541B9F88E800F789CE /* IDBCursor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBCursor.cpp; sourceTree = "<group>"; };
</span><ins>+                5166D3CC1E8ED41100AD62E3 /* StorageType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StorageType.h; sourceTree = "<group>"; };
</ins><span class="cx">                 516953951329A3C800B92D04 /* IconDatabaseBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IconDatabaseBase.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 516953961329A3C800B92D04 /* IconDatabaseBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IconDatabaseBase.h; sourceTree = "<group>"; };
</span><span class="cx">                 516BB7920CE91E6800512F79 /* JSTreeWalkerCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSTreeWalkerCustom.cpp; sourceTree = "<group>"; };
</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 "Storage.h"
</span><span class="cx"> #include "StorageNamespace.h"
</span><span class="cx"> #include "StorageNamespaceProvider.h"
</span><ins>+#include "StorageType.h"
</ins><span class="cx"> #include "VoidCallback.h"
</span><span class="cx"> #include <inspector/InspectorFrontendDispatchers.h>
</span><span class="cx"> #include <inspector/InspectorValues.h>
</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<Inspector::Protocol::DOMStorage::StorageId> id = storageId(securityOrigin, storageType == LocalStorage);
</del><ins>+ RefPtr<Inspector::Protocol::DOMStorage::StorageId> id = storageId(securityOrigin, storageType == StorageType::Local);
</ins><span class="cx">
</span><span class="cx"> if (key.isNull())
</span><span class="cx"> m_frontendDispatcher->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 "StorageArea.h"
</span><span class="cx"> #include "StorageNamespace.h"
</span><span class="cx"> #include "StorageNamespaceProvider.h"
</span><ins>+#include "StorageType.h"
</ins><span class="cx"> #include "TextCheckerClient.h"
</span><span class="cx"> #include "ThreadableWebSocketChannel.h"
</span><span class="cx"> #include "UserContentProvider.h"
</span><span class="lines">@@ -549,7 +550,7 @@
</span><span class="cx"> void clear(Frame*) final { }
</span><span class="cx"> bool contains(const String&) 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 "SchemeRegistry.h"
</span><span class="cx"> #include "SecurityOrigin.h"
</span><span class="cx"> #include "StorageArea.h"
</span><ins>+#include "StorageType.h"
</ins><span class="cx"> #include <wtf/text/WTFString.h>
</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->page()->usesEphemeralSession())
</span><span class="cx"> return false;
</span><span class="cx">
</span><del>- if (m_storageArea->storageType() == LocalStorage) {
</del><ins>+ if (isLocalStorage(m_storageArea->storageType())) {
</ins><span class="cx"> if (SchemeRegistry::allowsLocalStorageAccessInPrivateBrowsing(m_frame->document()->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<StorageArea> {
</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 "SecurityOrigin.h"
</span><span class="cx"> #include "SecurityOriginData.h"
</span><span class="cx"> #include "StorageEvent.h"
</span><ins>+#include "StorageType.h"
</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& page, const Vector<RefPtr<Frame>>& frames, const String& key, const String& oldValue, const String& newValue, const String& url, const SecurityOriginData& 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& frame : frames) {
</span><span class="cx"> auto result = frame->document()->domWindow()->sessionStorage();
</span><span class="lines">@@ -89,7 +90,7 @@
</span><span class="cx"> void StorageEventDispatcher::dispatchLocalStorageEventsToFrames(PageGroup& pageGroup, const Vector<RefPtr<Frame>>& frames, const String& key, const String& oldValue, const String& newValue, const String& url, const SecurityOriginData& securityOrigin)
</span><span class="cx"> {
</span><span class="cx"> for (auto& 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& frame : frames) {
</span><span class="cx"> auto result = frame->document()->domWindow()->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 <beidson@apple.com>
+
+ Clean up the "StorageType" 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 <jfbastien@apple.com>
</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 <WebCore/SecurityOriginData.h>
</span><span class="cx"> #include <WebCore/StorageEventDispatcher.h>
</span><span class="cx"> #include <WebCore/StorageMap.h>
</span><ins>+#include <WebCore/StorageType.h>
</ins><span class="cx"> #include <wtf/MainThread.h>
</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& key, const String& oldValue, const String& 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 "StorageSyncManager.h"
</span><span class="cx"> #include "StorageTracker.h"
</span><span class="cx"> #include <WebCore/StorageMap.h>
</span><ins>+#include <WebCore/StorageType.h>
</ins><span class="cx"> #include <wtf/MainThread.h>
</span><span class="cx"> #include <wtf/NeverDestroyed.h>
</span><span class="cx"> #include <wtf/text/StringHash.h>
</span><span class="lines">@@ -46,7 +47,7 @@
</span><span class="cx">
</span><span class="cx"> Ref<StorageNamespaceImpl> 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<StorageNamespaceImpl> StorageNamespaceImpl::getOrCreateLocalStorageNamespace(const String& 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<StorageNamespaceImpl> storageNamespace = adoptRef(*new StorageNamespaceImpl(LocalStorage, databasePath, quota));
</del><ins>+ Ref<StorageNamespaceImpl> 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 && !m_path.isEmpty())
</del><ins>+ if (isLocalStorage(m_storageType) && !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<StorageNamespaceImpl> 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 <beidson@apple.com>
+
+ Clean up the "StorageType" 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 <timothy_horton@apple.com>
</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 <WebCore/Storage.h>
</span><span class="cx"> #include <WebCore/StorageEventDispatcher.h>
</span><span class="cx"> #include <WebCore/StorageMap.h>
</span><ins>+#include <WebCore/StorageType.h>
</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->topLevelOrigin())
</span><span class="cx"> WebProcess::singleton().parentProcessConnection()->send(Messages::StorageManager::CreateTransientLocalStorageMap(m_storageMapID, storageNamespace->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()->send(Messages::StorageManager::CreateSessionStorageMap(m_storageMapID, storageNamespace->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& key, const String& oldValue, const String& newValue, const String& 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& key, const String& oldValue, const String& newValue, const String& urlString)
</span><span class="cx"> {
</span><del>- ASSERT(storageType() == LocalStorage);
</del><ins>+ ASSERT(isLocalStorage(storageType()));
</ins><span class="cx">
</span><span class="cx"> Vector<RefPtr<Frame>> 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 <WebCore/PageGroup.h>
</span><span class="cx"> #include <WebCore/SecurityOrigin.h>
</span><span class="cx"> #include <WebCore/Settings.h>
</span><ins>+#include <WebCore/StorageType.h>
</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<StorageNamespaceImpl> 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<StorageNamespaceImpl> 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<StorageNamespaceImpl> StorageNamespaceImpl::createTransientLocalStorageNamespace(uint64_t identifier, WebCore::SecurityOrigin& topLevelOrigin, uint64_t quotaInBytes)
</span><span class="cx"> {
</span><del>- return adoptRef(new StorageNamespaceImpl(LocalStorage, identifier, &topLevelOrigin, quotaInBytes));
</del><ins>+ return adoptRef(new StorageNamespaceImpl(StorageType::TransientLocal, identifier, &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>