<!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>[45864] trunk/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/45864">45864</a></dd>
<dt>Author</dt> <dd>bfulgham@webkit.org</dd>
<dt>Date</dt> <dd>2009-07-14 12:36:50 -0700 (Tue, 14 Jul 2009)</dd>
</dl>

<h3>Log Message</h3>
<pre>2009-07-11  Jeremy Orlow  &lt;jorlow@chromium.org&gt;

        Reviewed by Darin Adler.

        Cleanup DOM Storage dependencies.
        https://bugs.webkit.org/show_bug.cgi?id=27180

        DOM Storage had several unnecessary (and probably unintended)
        dependencies.  This patch replaces many includes of header files with
        forward declaration of classes, making some destructors explicit, and
        taking some factories out of the header files.

        This will allow things like StorageAreaSync to take a StorageAreaImpl*
        (as it should) rather than a StorageArea* which previously weren't
        possible because the dependencies were such a tangled mess.

        * storage/LocalStorageTask.cpp:
        (WebCore::LocalStorageTask::~LocalStorageTask):
        * storage/LocalStorageTask.h:
        * storage/Storage.cpp:
        (WebCore::Storage::~Storage):
        * storage/Storage.h:
        * storage/StorageArea.cpp:
        * storage/StorageArea.h:
        * storage/StorageAreaImpl.cpp:
        * storage/StorageAreaImpl.h:
        * storage/StorageAreaSync.cpp:
        (WebCore::StorageAreaSync::~StorageAreaSync):
        * storage/StorageAreaSync.h:
        * storage/StorageEvent.cpp:
        (WebCore::StorageEvent::create):
        (WebCore::StorageEvent::StorageEvent):
        * storage/StorageEvent.h:
        * storage/StorageNamespace.h:
        * storage/StorageNamespaceImpl.cpp:
        * storage/StorageNamespaceImpl.h:
        * storage/StorageSyncManager.cpp:
        (WebCore::StorageSyncManager::~StorageSyncManager):
        * storage/StorageSyncManager.h:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkWebCoreChangeLog">trunk/WebCore/ChangeLog</a></li>
<li><a href="#trunkWebCorestorageLocalStorageTaskcpp">trunk/WebCore/storage/LocalStorageTask.cpp</a></li>
<li><a href="#trunkWebCorestorageLocalStorageTaskh">trunk/WebCore/storage/LocalStorageTask.h</a></li>
<li><a href="#trunkWebCorestorageStoragecpp">trunk/WebCore/storage/Storage.cpp</a></li>
<li><a href="#trunkWebCorestorageStorageh">trunk/WebCore/storage/Storage.h</a></li>
<li><a href="#trunkWebCorestorageStorageAreacpp">trunk/WebCore/storage/StorageArea.cpp</a></li>
<li><a href="#trunkWebCorestorageStorageAreah">trunk/WebCore/storage/StorageArea.h</a></li>
<li><a href="#trunkWebCorestorageStorageAreaImplcpp">trunk/WebCore/storage/StorageAreaImpl.cpp</a></li>
<li><a href="#trunkWebCorestorageStorageAreaImplh">trunk/WebCore/storage/StorageAreaImpl.h</a></li>
<li><a href="#trunkWebCorestorageStorageAreaSynccpp">trunk/WebCore/storage/StorageAreaSync.cpp</a></li>
<li><a href="#trunkWebCorestorageStorageAreaSynch">trunk/WebCore/storage/StorageAreaSync.h</a></li>
<li><a href="#trunkWebCorestorageStorageEventcpp">trunk/WebCore/storage/StorageEvent.cpp</a></li>
<li><a href="#trunkWebCorestorageStorageEventh">trunk/WebCore/storage/StorageEvent.h</a></li>
<li><a href="#trunkWebCorestorageStorageNamespaceh">trunk/WebCore/storage/StorageNamespace.h</a></li>
<li><a href="#trunkWebCorestorageStorageNamespaceImplcpp">trunk/WebCore/storage/StorageNamespaceImpl.cpp</a></li>
<li><a href="#trunkWebCorestorageStorageNamespaceImplh">trunk/WebCore/storage/StorageNamespaceImpl.h</a></li>
<li><a href="#trunkWebCorestorageStorageSyncManagercpp">trunk/WebCore/storage/StorageSyncManager.cpp</a></li>
<li><a href="#trunkWebCorestorageStorageSyncManagerh">trunk/WebCore/storage/StorageSyncManager.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/ChangeLog (45863 => 45864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/ChangeLog        2009-07-14 17:54:23 UTC (rev 45863)
+++ trunk/WebCore/ChangeLog        2009-07-14 19:36:50 UTC (rev 45864)
</span><span class="lines">@@ -1,3 +1,44 @@
</span><ins>+2009-07-11  Jeremy Orlow  &lt;jorlow@chromium.org&gt;
+
+        Reviewed by Darin Adler.
+
+        Cleanup DOM Storage dependencies.
+        https://bugs.webkit.org/show_bug.cgi?id=27180
+
+        DOM Storage had several unnecessary (and probably unintended)
+        dependencies.  This patch replaces many includes of header files with
+        forward declaration of classes, making some destructors explicit, and
+        taking some factories out of the header files.
+
+        This will allow things like StorageAreaSync to take a StorageAreaImpl*
+        (as it should) rather than a StorageArea* which previously weren't
+        possible because the dependencies were such a tangled mess.
+
+        * storage/LocalStorageTask.cpp:
+        (WebCore::LocalStorageTask::~LocalStorageTask):
+        * storage/LocalStorageTask.h:
+        * storage/Storage.cpp:
+        (WebCore::Storage::~Storage):
+        * storage/Storage.h:
+        * storage/StorageArea.cpp:
+        * storage/StorageArea.h:
+        * storage/StorageAreaImpl.cpp:
+        * storage/StorageAreaImpl.h:
+        * storage/StorageAreaSync.cpp:
+        (WebCore::StorageAreaSync::~StorageAreaSync):
+        * storage/StorageAreaSync.h:
+        * storage/StorageEvent.cpp:
+        (WebCore::StorageEvent::create):
+        (WebCore::StorageEvent::StorageEvent):
+        * storage/StorageEvent.h:
+        * storage/StorageNamespace.h:
+        * storage/StorageNamespaceImpl.cpp:
+        * storage/StorageNamespaceImpl.h:
+        * storage/StorageSyncManager.cpp:
+        (WebCore::StorageSyncManager::~StorageSyncManager):
+        * storage/StorageSyncManager.h:
+
+
</ins><span class="cx"> 2009-07-14  Adam Treat  &lt;adam.treat@torchmobile.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Reviewed by David Hyatt.
</span></span></pre></div>
<a id="trunkWebCorestorageLocalStorageTaskcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/storage/LocalStorageTask.cpp (45863 => 45864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/storage/LocalStorageTask.cpp        2009-07-14 17:54:23 UTC (rev 45863)
+++ trunk/WebCore/storage/LocalStorageTask.cpp        2009-07-14 19:36:50 UTC (rev 45864)
</span><span class="lines">@@ -49,6 +49,10 @@
</span><span class="cx">     ASSERT(m_type == TerminateThread);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+LocalStorageTask::~LocalStorageTask()
+{
+}
+
</ins><span class="cx"> void LocalStorageTask::performTask()
</span><span class="cx"> {
</span><span class="cx">     switch (m_type) {
</span></span></pre></div>
<a id="trunkWebCorestorageLocalStorageTaskh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/storage/LocalStorageTask.h (45863 => 45864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/storage/LocalStorageTask.h        2009-07-14 17:54:23 UTC (rev 45863)
+++ trunk/WebCore/storage/LocalStorageTask.h        2009-07-14 19:36:50 UTC (rev 45864)
</span><span class="lines">@@ -49,6 +49,9 @@
</span><span class="cx">         void performTask();
</span><span class="cx"> 
</span><span class="cx">     private:
</span><ins>+        friend class ThreadSafeShared&lt;LocalStorageTask&gt;;
+        ~LocalStorageTask();
+
</ins><span class="cx">         LocalStorageTask(Type, PassRefPtr&lt;StorageAreaSync&gt;);
</span><span class="cx">         LocalStorageTask(Type, PassRefPtr&lt;LocalStorageThread&gt;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCorestorageStoragecpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/storage/Storage.cpp (45863 => 45864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/storage/Storage.cpp        2009-07-14 17:54:23 UTC (rev 45863)
+++ trunk/WebCore/storage/Storage.cpp        2009-07-14 19:36:50 UTC (rev 45864)
</span><span class="lines">@@ -47,6 +47,10 @@
</span><span class="cx">     ASSERT(m_storageArea);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+Storage::~Storage()
+{
+}
+
</ins><span class="cx"> unsigned Storage::length() const
</span><span class="cx"> {
</span><span class="cx">     if (!m_frame)
</span></span></pre></div>
<a id="trunkWebCorestorageStorageh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/storage/Storage.h (45863 => 45864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/storage/Storage.h        2009-07-14 17:54:23 UTC (rev 45863)
+++ trunk/WebCore/storage/Storage.h        2009-07-14 19:36:50 UTC (rev 45864)
</span><span class="lines">@@ -28,8 +28,6 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DOM_STORAGE)
</span><span class="cx"> 
</span><del>-#include &quot;StorageArea.h&quot;
-
</del><span class="cx"> #include &lt;wtf/Forward.h&gt;
</span><span class="cx"> #include &lt;wtf/RefCounted.h&gt;
</span><span class="cx"> #include &lt;wtf/RefPtr.h&gt;
</span><span class="lines">@@ -37,6 +35,7 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx">     class Frame;
</span><ins>+    class StorageArea;
</ins><span class="cx">     class String;
</span><span class="cx">     typedef int ExceptionCode;
</span><span class="cx"> 
</span><span class="lines">@@ -56,6 +55,9 @@
</span><span class="cx">         void disconnectFrame() { m_frame = 0; }
</span><span class="cx"> 
</span><span class="cx">     private:
</span><ins>+        friend class RefCounted&lt;Storage&gt;;
+        ~Storage();
+
</ins><span class="cx">         Storage(Frame*, PassRefPtr&lt;StorageArea&gt;);
</span><span class="cx">             
</span><span class="cx">         Frame* m_frame;
</span></span></pre></div>
<a id="trunkWebCorestorageStorageAreacpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/storage/StorageArea.cpp (45863 => 45864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/storage/StorageArea.cpp        2009-07-14 17:54:23 UTC (rev 45863)
+++ trunk/WebCore/storage/StorageArea.cpp        2009-07-14 19:36:50 UTC (rev 45864)
</span><span class="lines">@@ -33,6 +33,7 @@
</span><span class="cx"> #if ENABLE(DOM_STORAGE)
</span><span class="cx"> 
</span><span class="cx"> #include &quot;StorageAreaImpl.h&quot;
</span><ins>+#include &quot;StorageSyncManager.h&quot;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCorestorageStorageAreah"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/storage/StorageArea.h (45863 => 45864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/storage/StorageArea.h        2009-07-14 17:54:23 UTC (rev 45863)
+++ trunk/WebCore/storage/StorageArea.h        2009-07-14 19:36:50 UTC (rev 45864)
</span><span class="lines">@@ -29,23 +29,14 @@
</span><span class="cx"> #if ENABLE(DOM_STORAGE)
</span><span class="cx"> 
</span><span class="cx"> #include &quot;PlatformString.h&quot;
</span><del>-#include &quot;SecurityOrigin.h&quot;
-#include &quot;StorageAreaSync.h&quot;
-#include &quot;StorageMap.h&quot;
-#include &quot;StorageSyncManager.h&quot;
</del><span class="cx"> 
</span><del>-#include &lt;wtf/Forward.h&gt;
</del><span class="cx"> #include &lt;wtf/PassRefPtr.h&gt;
</span><del>-#include &lt;wtf/RefCounted.h&gt;
-#include &lt;wtf/RefPtr.h&gt;
</del><ins>+#include &lt;wtf/Threading.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx">     class Frame;
</span><del>-    class Page;
</del><span class="cx">     class SecurityOrigin;
</span><del>-    class StorageAreaSync;
-    class StorageMap;
</del><span class="cx">     class StorageSyncManager;
</span><span class="cx">     typedef int ExceptionCode;
</span><span class="cx">     enum StorageType { LocalStorage, SessionStorage };
</span></span></pre></div>
<a id="trunkWebCorestorageStorageAreaImplcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/storage/StorageAreaImpl.cpp (45863 => 45864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/storage/StorageAreaImpl.cpp        2009-07-14 17:54:23 UTC (rev 45863)
+++ trunk/WebCore/storage/StorageAreaImpl.cpp        2009-07-14 19:36:50 UTC (rev 45864)
</span><span class="lines">@@ -28,7 +28,6 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DOM_STORAGE)
</span><span class="cx"> 
</span><del>-#include &quot;DOMWindow.h&quot;
</del><span class="cx"> #include &quot;EventNames.h&quot;
</span><span class="cx"> #include &quot;ExceptionCode.h&quot;
</span><span class="cx"> #include &quot;Frame.h&quot;
</span></span></pre></div>
<a id="trunkWebCorestorageStorageAreaImplh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/storage/StorageAreaImpl.h (45863 => 45864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/storage/StorageAreaImpl.h        2009-07-14 17:54:23 UTC (rev 45863)
+++ trunk/WebCore/storage/StorageAreaImpl.h        2009-07-14 19:36:50 UTC (rev 45864)
</span><span class="lines">@@ -30,8 +30,14 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;StorageArea.h&quot;
</span><span class="cx"> 
</span><ins>+#include &lt;wtf/RefPtr.h&gt;
+
</ins><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><ins>+    class SecurityOrigin;
+    class StorageMap;
+    class StorageAreaSync;
+
</ins><span class="cx">     class StorageAreaImpl : public StorageArea {
</span><span class="cx">     public:
</span><span class="cx">         static PassRefPtr&lt;StorageArea&gt; create(StorageType, SecurityOrigin*, PassRefPtr&lt;StorageSyncManager&gt;);
</span></span></pre></div>
<a id="trunkWebCorestorageStorageAreaSynccpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/storage/StorageAreaSync.cpp (45863 => 45864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/storage/StorageAreaSync.cpp        2009-07-14 17:54:23 UTC (rev 45863)
+++ trunk/WebCore/storage/StorageAreaSync.cpp        2009-07-14 19:36:50 UTC (rev 45864)
</span><span class="lines">@@ -33,6 +33,7 @@
</span><span class="cx"> #include &quot;HTMLElement.h&quot;
</span><span class="cx"> #include &quot;SQLiteStatement.h&quot;
</span><span class="cx"> #include &quot;StorageArea.h&quot;
</span><ins>+#include &quot;StorageSyncManager.h&quot;
</ins><span class="cx"> #include &quot;SuddenTermination.h&quot;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -65,12 +66,10 @@
</span><span class="cx">         m_importComplete = true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-#ifndef NDEBUG
</del><span class="cx"> StorageAreaSync::~StorageAreaSync()
</span><span class="cx"> {
</span><span class="cx">     ASSERT(!m_syncTimer.isActive());
</span><span class="cx"> }
</span><del>-#endif
</del><span class="cx"> 
</span><span class="cx"> void StorageAreaSync::scheduleFinalSync()
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkWebCorestorageStorageAreaSynch"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/storage/StorageAreaSync.h (45863 => 45864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/storage/StorageAreaSync.h        2009-07-14 17:54:23 UTC (rev 45863)
+++ trunk/WebCore/storage/StorageAreaSync.h        2009-07-14 19:36:50 UTC (rev 45864)
</span><span class="lines">@@ -28,9 +28,9 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DOM_STORAGE)
</span><span class="cx"> 
</span><ins>+#include &quot;PlatformString.h&quot;
</ins><span class="cx"> #include &quot;SQLiteDatabase.h&quot;
</span><span class="cx"> #include &quot;StringHash.h&quot;
</span><del>-#include &quot;StorageSyncManager.h&quot;
</del><span class="cx"> #include &quot;Timer.h&quot;
</span><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -42,10 +42,6 @@
</span><span class="cx">     
</span><span class="cx">     class StorageAreaSync : public RefCounted&lt;StorageAreaSync&gt; {
</span><span class="cx">     public:
</span><del>-#ifndef NDEBUG
-        ~StorageAreaSync();
-#endif
-
</del><span class="cx">         static PassRefPtr&lt;StorageAreaSync&gt; create(PassRefPtr&lt;StorageSyncManager&gt; storageSyncManager, PassRefPtr&lt;StorageArea&gt; storageArea);
</span><span class="cx">         
</span><span class="cx">         void scheduleFinalSync();
</span><span class="lines">@@ -55,6 +51,9 @@
</span><span class="cx">         void scheduleClear();
</span><span class="cx">         
</span><span class="cx">     private:
</span><ins>+        friend class RefCounted&lt;StorageAreaSync&gt;;
+        ~StorageAreaSync();
+
</ins><span class="cx">         StorageAreaSync(PassRefPtr&lt;StorageSyncManager&gt; storageSyncManager, PassRefPtr&lt;StorageArea&gt; storageArea);
</span><span class="cx"> 
</span><span class="cx">         void dispatchStorageEvent(const String&amp; key, const String&amp; oldValue, const String&amp; newValue, Frame* sourceFrame);
</span></span></pre></div>
<a id="trunkWebCorestorageStorageEventcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/storage/StorageEvent.cpp (45863 => 45864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/storage/StorageEvent.cpp        2009-07-14 17:54:23 UTC (rev 45863)
+++ trunk/WebCore/storage/StorageEvent.cpp        2009-07-14 19:36:50 UTC (rev 45864)
</span><span class="lines">@@ -33,6 +33,20 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><ins>+PassRefPtr&lt;StorageEvent&gt; StorageEvent::create()
+{
+    return adoptRef(new StorageEvent);
+}
+
+StorageEvent::StorageEvent()
+{
+}
+
+PassRefPtr&lt;StorageEvent&gt; StorageEvent::create(const AtomicString&amp; type, const String&amp; key, const String&amp; oldValue, const String&amp; newValue, const String&amp; uri, PassRefPtr&lt;DOMWindow&gt; source, Storage* storageArea)
+{
+    return adoptRef(new StorageEvent(type, key, oldValue, newValue, uri, source, storageArea));
+}
+
</ins><span class="cx"> StorageEvent::StorageEvent(const AtomicString&amp; type, const String&amp; key, const String&amp; oldValue, const String&amp; newValue, const String&amp; uri, PassRefPtr&lt;DOMWindow&gt; source, Storage* storageArea)
</span><span class="cx">     : Event(type, false, true)
</span><span class="cx">     , m_key(key)
</span></span></pre></div>
<a id="trunkWebCorestorageStorageEventh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/storage/StorageEvent.h (45863 => 45864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/storage/StorageEvent.h        2009-07-14 17:54:23 UTC (rev 45863)
+++ trunk/WebCore/storage/StorageEvent.h        2009-07-14 19:36:50 UTC (rev 45864)
</span><span class="lines">@@ -29,22 +29,17 @@
</span><span class="cx"> #if ENABLE(DOM_STORAGE)
</span><span class="cx"> 
</span><span class="cx"> #include &quot;Event.h&quot;
</span><del>-#include &quot;Storage.h&quot;
</del><ins>+#include &quot;PlatformString.h&quot;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx">     class DOMWindow;
</span><ins>+    class Storage;
</ins><span class="cx"> 
</span><span class="cx">     class StorageEvent : public Event {
</span><span class="cx">     public:
</span><del>-        static PassRefPtr&lt;StorageEvent&gt; create()
-        {
-            return adoptRef(new StorageEvent);
-        }
-        static PassRefPtr&lt;StorageEvent&gt; create(const AtomicString&amp; type, const String&amp; key, const String&amp; oldValue, const String&amp; newValue, const String&amp; uri, PassRefPtr&lt;DOMWindow&gt; source, Storage* storageArea)
-        {
-            return adoptRef(new StorageEvent(type, key, oldValue, newValue, uri, source, storageArea));
-        }
</del><ins>+        static PassRefPtr&lt;StorageEvent&gt; create();
+        static PassRefPtr&lt;StorageEvent&gt; create(const AtomicString&amp; type, const String&amp; key, const String&amp; oldValue, const String&amp; newValue, const String&amp; uri, PassRefPtr&lt;DOMWindow&gt; source, Storage* storageArea);
</ins><span class="cx"> 
</span><span class="cx">         const String&amp; key() const { return m_key; }
</span><span class="cx">         const String&amp; oldValue() const { return m_oldValue; }
</span><span class="lines">@@ -61,7 +56,7 @@
</span><span class="cx">         virtual bool isStorageEvent() const { return true; }
</span><span class="cx"> 
</span><span class="cx">     private:    
</span><del>-        StorageEvent() { }
</del><ins>+        StorageEvent();
</ins><span class="cx">         StorageEvent(const AtomicString&amp; type, const String&amp; key, const String&amp; oldValue, const String&amp; newValue, const String&amp; uri, PassRefPtr&lt;DOMWindow&gt; source, Storage* storageArea);
</span><span class="cx">         
</span><span class="cx">         String m_key;
</span></span></pre></div>
<a id="trunkWebCorestorageStorageNamespaceh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/storage/StorageNamespace.h (45863 => 45864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/storage/StorageNamespace.h        2009-07-14 17:54:23 UTC (rev 45863)
+++ trunk/WebCore/storage/StorageNamespace.h        2009-07-14 19:36:50 UTC (rev 45864)
</span><span class="lines">@@ -28,16 +28,15 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DOM_STORAGE)
</span><span class="cx"> 
</span><del>-#include &quot;SecurityOriginHash.h&quot;
-#include &quot;StorageArea.h&quot;
</del><ins>+#include &quot;PlatformString.h&quot;
</ins><span class="cx"> 
</span><del>-#include &lt;wtf/HashMap.h&gt;
</del><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/RefCounted.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><ins>+    class SecurityOrigin;
</ins><span class="cx">     class StorageArea;
</span><del>-    class StorageSyncManager;
</del><span class="cx"> 
</span><span class="cx">     // This interface is required for Chromium since these actions need to be proxied between processes.
</span><span class="cx">     class StorageNamespace : public RefCounted&lt;StorageNamespace&gt; {
</span></span></pre></div>
<a id="trunkWebCorestorageStorageNamespaceImplcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/storage/StorageNamespaceImpl.cpp (45863 => 45864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/storage/StorageNamespaceImpl.cpp        2009-07-14 17:54:23 UTC (rev 45863)
+++ trunk/WebCore/storage/StorageNamespaceImpl.cpp        2009-07-14 19:36:50 UTC (rev 45864)
</span><span class="lines">@@ -28,6 +28,10 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DOM_STORAGE)
</span><span class="cx"> 
</span><ins>+#include &quot;SecurityOriginHash.h&quot;
+#include &quot;StringHash.h&quot;
+#include &quot;StorageArea.h&quot;
+#include &quot;StorageSyncManager.h&quot;
</ins><span class="cx"> #include &lt;wtf/StdLibExtras.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span></span></pre></div>
<a id="trunkWebCorestorageStorageNamespaceImplh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/storage/StorageNamespaceImpl.h (45863 => 45864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/storage/StorageNamespaceImpl.h        2009-07-14 17:54:23 UTC (rev 45863)
+++ trunk/WebCore/storage/StorageNamespaceImpl.h        2009-07-14 19:36:50 UTC (rev 45864)
</span><span class="lines">@@ -28,8 +28,14 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DOM_STORAGE)
</span><span class="cx"> 
</span><ins>+#include &quot;PlatformString.h&quot;
+#include &quot;SecurityOriginHash.h&quot;
+#include &quot;StorageArea.h&quot;
</ins><span class="cx"> #include &quot;StorageNamespace.h&quot;
</span><span class="cx"> 
</span><ins>+#include &lt;wtf/HashMap.h&gt;
+#include &lt;wtf/RefPtr.h&gt;
+
</ins><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx">     class StorageNamespaceImpl : public StorageNamespace {
</span></span></pre></div>
<a id="trunkWebCorestorageStorageSyncManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/storage/StorageSyncManager.cpp (45863 => 45864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/storage/StorageSyncManager.cpp        2009-07-14 17:54:23 UTC (rev 45863)
+++ trunk/WebCore/storage/StorageSyncManager.cpp        2009-07-14 19:36:50 UTC (rev 45864)
</span><span class="lines">@@ -33,6 +33,8 @@
</span><span class="cx"> #include &quot;FileSystem.h&quot;
</span><span class="cx"> #include &quot;Frame.h&quot;
</span><span class="cx"> #include &quot;FrameTree.h&quot;
</span><ins>+#include &quot;LocalStorageTask.h&quot;
+#include &quot;LocalStorageThread.h&quot;
</ins><span class="cx"> #include &quot;Page.h&quot;
</span><span class="cx"> #include &quot;PageGroup.h&quot;
</span><span class="cx"> #include &quot;StorageAreaSync.h&quot;
</span><span class="lines">@@ -53,6 +55,10 @@
</span><span class="cx">     m_thread-&gt;start();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+StorageSyncManager::~StorageSyncManager()
+{
+}
+
</ins><span class="cx"> String StorageSyncManager::fullDatabaseFilename(SecurityOrigin* origin)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(origin);
</span></span></pre></div>
<a id="trunkWebCorestorageStorageSyncManagerh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/storage/StorageSyncManager.h (45863 => 45864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/storage/StorageSyncManager.h        2009-07-14 17:54:23 UTC (rev 45863)
+++ trunk/WebCore/storage/StorageSyncManager.h        2009-07-14 19:36:50 UTC (rev 45864)
</span><span class="lines">@@ -28,15 +28,18 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DOM_STORAGE)
</span><span class="cx"> 
</span><del>-#include &quot;LocalStorageTask.h&quot;
-#include &quot;LocalStorageThread.h&quot;
-#include &quot;StorageArea.h&quot;
-#include &quot;StorageAreaSync.h&quot;
</del><ins>+#include &quot;PlatformString.h&quot;
</ins><span class="cx"> 
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
+#include &lt;wtf/RefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/Threading.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><ins>+    class LocalStorageThread;
+    class SecurityOrigin;
+    class StorageAreaSync;
+
</ins><span class="cx">     class StorageSyncManager : public ThreadSafeShared&lt;StorageSyncManager&gt; {
</span><span class="cx">     public:
</span><span class="cx">         static PassRefPtr&lt;StorageSyncManager&gt; create(const String&amp; path);
</span><span class="lines">@@ -47,6 +50,9 @@
</span><span class="cx">         void close();
</span><span class="cx"> 
</span><span class="cx">     private:
</span><ins>+        friend class ThreadSafeShared&lt;StorageSyncManager&gt;;
+        ~StorageSyncManager();
+
</ins><span class="cx">         StorageSyncManager(const String&amp; path);
</span><span class="cx"> 
</span><span class="cx">         RefPtr&lt;LocalStorageThread&gt; m_thread;
</span></span></pre>
</div>
</div>

</body>
</html>