WebCore:
authorweinig@apple.com <weinig@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 1 Jun 2009 00:20:47 +0000 (00:20 +0000)
committerweinig@apple.com <weinig@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 1 Jun 2009 00:20:47 +0000 (00:20 +0000)
2009-05-31  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Part of https://bugs.webkit.org/show_bug.cgi?id=26100
        Add missing event handler properties to the DOMWindow

        Add missing onstorage event handler to the DOMWindow.

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::onstorage):
        (WebCore::DOMWindow::setOnstorage):
        * page/DOMWindow.h:
        * page/DOMWindow.idl:

LayoutTests:

2009-05-31  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Part of https://bugs.webkit.org/show_bug.cgi?id=26100
        Add missing event handler properties to the DOMWindow

        Add missing onstorage event handler to the DOMWindow.

        * fast/dom/Window/window-properties-expected.txt:
        * storage/domstorage/window-attributes-exist-expected.txt:
        * storage/domstorage/window-attributes-exist.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@44301 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/fast/dom/Window/window-properties-expected.txt
LayoutTests/storage/domstorage/window-attributes-exist-expected.txt
LayoutTests/storage/domstorage/window-attributes-exist.html
WebCore/ChangeLog
WebCore/page/DOMWindow.cpp
WebCore/page/DOMWindow.h
WebCore/page/DOMWindow.idl

index 23dfd14..bb0aaf5 100644 (file)
@@ -1,5 +1,18 @@
 2009-05-31  Sam Weinig  <sam@webkit.org>
 
+        Reviewed by Anders Carlsson.
+
+        Part of https://bugs.webkit.org/show_bug.cgi?id=26100
+        Add missing event handler properties to the DOMWindow
+
+        Add missing onstorage event handler to the DOMWindow.
+
+        * fast/dom/Window/window-properties-expected.txt:
+        * storage/domstorage/window-attributes-exist-expected.txt:
+        * storage/domstorage/window-attributes-exist.html:
+
+2009-05-31  Sam Weinig  <sam@webkit.org>
+
         Rubber-stamped by Mark Rowe.
 
         Remove duplicate file. The version of window-properties-expected.txt in the
index 4d324e2..3cd4de5 100644 (file)
@@ -1709,6 +1709,7 @@ window.onresize [null]
 window.onscroll [null]
 window.onsearch [null]
 window.onselect [null]
+window.onstorage [null]
 window.onsubmit [null]
 window.onunload [null]
 window.onwebkitanimationend [null]
index 4542a96..a8b3b7f 100644 (file)
@@ -1,4 +1,4 @@
-This test checks to see if window.localStorage and window.sessionStorage exist.
+This test checks to see if window.localStorage, window.sessionStorage and window.onstorage exist.
 window.sessionStorage exists
 Storage object sessionStorage has length
 Storage object sessionStorage has key
@@ -11,4 +11,6 @@ Storage object localStorage has key
 Storage object localStorage has getItem
 Storage object localStorage has setItem
 Storage object localStorage has removeItem
+window.onstorage exists
+The onstorage property works when a storage event is fired.
 
index 1f7624c..2d6b493 100644 (file)
@@ -24,25 +24,41 @@ function testStorage(name, storage)
         log("Storage object " + name + " has removeItem");
 }
 
+function testOnstorage()
+{
+    window.onstorage = function(event)
+    {
+        log("The onstorage property works when a storage event is fired.");
+    }
+    
+    window.localStorage["test"] = "test";
+}
+
 function runTest()
 {
-    if (window.sessionStorage) {
+    if ("sessionStorage" in window) {
         log("window.sessionStorage exists");
         testStorage("sessionStorage", window.sessionStorage);
     } else
         log("window.sessionStorage DOES NOT exist");
 
-    if (window.localStorage) {
+    if ("localStorage" in window) {
         log("window.localStorage exists");
         testStorage("localStorage", window.localStorage);
     } else
         log("window.localStorage DOES NOT exist");
+
+    if ("onstorage" in window) {
+        log("window.onstorage exists");
+        testOnstorage();
+    } else
+        log("window.onstorage DOES NOT exist");
 }
 
 </script>
 </head>
 <body onload="runTest();">
-This test checks to see if window.localStorage and window.sessionStorage exist.<br>
+This test checks to see if window.localStorage, window.sessionStorage and window.onstorage exist.<br>
 <div id="logger"></div>
 </body>
 </html>
index e8d08a3..02fa641 100644 (file)
@@ -1,3 +1,18 @@
+2009-05-31  Sam Weinig  <sam@webkit.org>
+
+        Reviewed by Anders Carlsson.
+
+        Part of https://bugs.webkit.org/show_bug.cgi?id=26100
+        Add missing event handler properties to the DOMWindow
+
+        Add missing onstorage event handler to the DOMWindow.
+
+        * page/DOMWindow.cpp:
+        (WebCore::DOMWindow::onstorage):
+        (WebCore::DOMWindow::setOnstorage):
+        * page/DOMWindow.h:
+        * page/DOMWindow.idl:
+
 2009-05-30  Sam Weinig  <sam@webkit.org>
 
         Reviewed by Mark Rowe.
index e13e994..d59543b 100644 (file)
@@ -1607,6 +1607,16 @@ void DOMWindow::setOnselect(PassRefPtr<EventListener> eventListener)
     setAttributeEventListener(eventNames().selectEvent, eventListener);
 }
 
+EventListener* DOMWindow::onstorage() const
+{
+    return getAttributeEventListener(eventNames().storageEvent);
+}
+
+void DOMWindow::setOnstorage(PassRefPtr<EventListener> eventListener)
+{
+    setAttributeEventListener(eventNames().storageEvent, eventListener);
+}
+
 EventListener* DOMWindow::onsubmit() const
 {
     return getAttributeEventListener(eventNames().submitEvent);
index fe499d5..60d9369 100644 (file)
@@ -289,6 +289,8 @@ namespace WebCore {
         void setOnsearch(PassRefPtr<EventListener>);
         EventListener* onselect() const;
         void setOnselect(PassRefPtr<EventListener>);
+        EventListener* onstorage() const;
+        void setOnstorage(PassRefPtr<EventListener>);
         EventListener* onsubmit() const;
         void setOnsubmit(PassRefPtr<EventListener>);
         EventListener* onunload() const;
index 646beb8..2d55cee 100644 (file)
@@ -212,6 +212,7 @@ module window {
         attribute EventListener onscroll;
         attribute EventListener onsearch;
         attribute EventListener onselect;
+        attribute EventListener onstorage;
         attribute EventListener onsubmit;
         attribute EventListener onunload;
         attribute EventListener onwebkitanimationend;