Title: [110500] trunk/Source/WebCore
Revision
110500
Author
[email protected]
Date
2012-03-12 16:34:24 -0700 (Mon, 12 Mar 2012)

Log Message

https://bugs.webkit.org/show_bug.cgi?id=80903 InspectorDOMStorageAgent creates a Storage object which is a DOMWindowProperty - Should use the StorageArea directly

Reviewed by Tim Hatcher.

No new tests. (No behavior change)

Changed to hold the StorageArea directly and added a Frame* accessor:
* inspector/InspectorDOMStorageResource.h:
(WebCore::InspectorDOMStorageResource::create):
(WebCore::InspectorDOMStorageResource::storageArea):
(WebCore::InspectorDOMStorageResource::frame):
(InspectorDOMStorageResource):

* inspector/InspectorDOMStorageResource.cpp:
(WebCore::InspectorDOMStorageResource::InspectorDOMStorageResource):

* inspector/InspectorDOMStorageAgent.cpp:
(WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):
(WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
(WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
(WebCore::InspectorDOMStorageAgent::didUseDOMStorage):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (110499 => 110500)


--- trunk/Source/WebCore/ChangeLog	2012-03-12 23:23:56 UTC (rev 110499)
+++ trunk/Source/WebCore/ChangeLog	2012-03-12 23:34:24 UTC (rev 110500)
@@ -1,3 +1,28 @@
+2012-03-12  Brady Eidson  <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=80903
+        InspectorDOMStorageAgent creates a Storage object which is a DOMWindowProperty - Should use the StorageArea directly
+
+        Reviewed by Tim Hatcher.
+
+        No new tests. (No behavior change)
+
+        Changed to hold the StorageArea directly and added a Frame* accessor:
+        * inspector/InspectorDOMStorageResource.h:
+        (WebCore::InspectorDOMStorageResource::create):
+        (WebCore::InspectorDOMStorageResource::storageArea):
+        (WebCore::InspectorDOMStorageResource::frame):
+        (InspectorDOMStorageResource):
+
+        * inspector/InspectorDOMStorageResource.cpp:
+        (WebCore::InspectorDOMStorageResource::InspectorDOMStorageResource):
+
+        * inspector/InspectorDOMStorageAgent.cpp:
+        (WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):
+        (WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
+        (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
+        (WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
+
 2012-03-12  Brian Salomon  <[email protected]>
 
         [Skia] Release CGImage used to apply color space conversion to SkBitmap

Modified: trunk/Source/WebCore/inspector/InspectorDOMStorageAgent.cpp (110499 => 110500)


--- trunk/Source/WebCore/inspector/InspectorDOMStorageAgent.cpp	2012-03-12 23:23:56 UTC (rev 110499)
+++ trunk/Source/WebCore/inspector/InspectorDOMStorageAgent.cpp	2012-03-12 23:34:24 UTC (rev 110500)
@@ -111,17 +111,21 @@
 void InspectorDOMStorageAgent::getDOMStorageEntries(ErrorString*, int storageId, RefPtr<InspectorArray>& entries)
 {
     InspectorDOMStorageResource* storageResource = getDOMStorageResourceForId(storageId);
-    if (storageResource) {
-        storageResource->startReportingChangesToFrontend();
-        Storage* domStorage = storageResource->domStorage();
-        for (unsigned i = 0; i < domStorage->length(); ++i) {
-            String name(domStorage->key(i));
-            String value(domStorage->getItem(name));
-            RefPtr<InspectorArray> entry = InspectorArray::create();
-            entry->pushString(name);
-            entry->pushString(value);
-            entries->pushArray(entry);
-        }
+    if (!storageResource)
+        return;
+    Frame* frame = storageResource->frame();
+    if (!frame)
+        return;
+        
+    storageResource->startReportingChangesToFrontend();
+    StorageArea* storageArea = storageResource->storageArea();
+    for (unsigned i = 0; i < storageArea->length(frame); ++i) {
+        String name(storageArea->key(i, frame));
+        String value(storageArea->getItem(name, frame));
+        RefPtr<InspectorArray> entry = InspectorArray::create();
+        entry->pushString(name);
+        entry->pushString(value);
+        entries->pushArray(entry);
     }
 }
 
@@ -130,7 +134,7 @@
     InspectorDOMStorageResource* storageResource = getDOMStorageResourceForId(storageId);
     if (storageResource) {
         ExceptionCode exception = 0;
-        storageResource->domStorage()->setItem(key, value, exception);
+        storageResource->storageArea()->setItem(key, value, exception, storageResource->frame());
         *success = !exception;
     }
 }
@@ -139,7 +143,7 @@
 {
     InspectorDOMStorageResource* storageResource = getDOMStorageResourceForId(storageId);
     if (storageResource) {
-        storageResource->domStorage()->removeItem(key);
+        storageResource->storageArea()->removeItem(key, storageResource->frame());
         *success = true;
     }
 }
@@ -174,8 +178,7 @@
             return;
     }
 
-    RefPtr<Storage> domStorage = Storage::create(frame, storageArea);
-    RefPtr<InspectorDOMStorageResource> resource = InspectorDOMStorageResource::create(domStorage.get(), isLocalStorage, frame);
+    RefPtr<InspectorDOMStorageResource> resource = InspectorDOMStorageResource::create(storageArea, isLocalStorage, frame);
 
     m_resources.set(resource->id(), resource);
 

Modified: trunk/Source/WebCore/inspector/InspectorDOMStorageResource.cpp (110499 => 110500)


--- trunk/Source/WebCore/inspector/InspectorDOMStorageResource.cpp	2012-03-12 23:23:56 UTC (rev 110499)
+++ trunk/Source/WebCore/inspector/InspectorDOMStorageResource.cpp	2012-03-12 23:34:24 UTC (rev 110500)
@@ -42,6 +42,7 @@
 #include "InspectorValues.h"
 #include "SecurityOrigin.h"
 #include "Storage.h"
+#include "StorageArea.h"
 #include "StorageEvent.h"
 
 using namespace JSC;
@@ -50,9 +51,9 @@
 
 int InspectorDOMStorageResource::s_nextUnusedId = 1;
 
-InspectorDOMStorageResource::InspectorDOMStorageResource(Storage* domStorage, bool isLocalStorage, Frame* frame)
+InspectorDOMStorageResource::InspectorDOMStorageResource(StorageArea* storageArea, bool isLocalStorage, Frame* frame)
     :  EventListener(InspectorDOMStorageResourceType)
-    , m_domStorage(domStorage)
+    , m_storageArea(storageArea)
     , m_isLocalStorage(isLocalStorage)
     , m_frame(frame)
     , m_frontend(0)

Modified: trunk/Source/WebCore/inspector/InspectorDOMStorageResource.h (110499 => 110500)


--- trunk/Source/WebCore/inspector/InspectorDOMStorageResource.h	2012-03-12 23:23:56 UTC (rev 110499)
+++ trunk/Source/WebCore/inspector/InspectorDOMStorageResource.h	2012-03-12 23:34:24 UTC (rev 110500)
@@ -40,15 +40,15 @@
 
 namespace WebCore {
 
-    class Storage;
+    class StorageArea;
     class Frame;
     class InspectorFrontend;
 
     class InspectorDOMStorageResource : public EventListener {
     public:
-        static PassRefPtr<InspectorDOMStorageResource> create(Storage* domStorage, bool isLocalStorage, Frame* frame)
+        static PassRefPtr<InspectorDOMStorageResource> create(StorageArea* storageArea, bool isLocalStorage, Frame* frame)
         {
-            return adoptRef(new InspectorDOMStorageResource(domStorage, isLocalStorage, frame));
+            return adoptRef(new InspectorDOMStorageResource(storageArea, isLocalStorage, frame));
         }
 
         static const InspectorDOMStorageResource* cast(const EventListener* listener)
@@ -65,13 +65,14 @@
 
         bool isSameHostAndType(Frame*, bool isLocalStorage) const;
         int id() const { return m_id; }
-        Storage* domStorage() const { return m_domStorage.get(); }
+        StorageArea* storageArea() const { return m_storageArea.get(); }
+        Frame* frame() const { return m_frame.get(); }
 
     private:
 
-        InspectorDOMStorageResource(Storage*, bool isLocalStorage, Frame*);
+        InspectorDOMStorageResource(StorageArea*, bool isLocalStorage, Frame*);
 
-        RefPtr<Storage> m_domStorage;
+        RefPtr<StorageArea> m_storageArea;
         bool m_isLocalStorage;
         RefPtr<Frame> m_frame;
         InspectorFrontend::DOMStorage* m_frontend;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to