Changeset 69710 in webkit
- Timestamp:
- Oct 13, 2010 4:10:56 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r69709 r69710 1 2010-10-13 James Simonsen <simonjam@chromium.org> 2 3 Reviewed by Darin Adler. 4 5 Implement onreadystatechange event handler for Documents 6 https://bugs.webkit.org/show_bug.cgi?id=26140 7 8 * fast/dom/Document/readystate-expected.txt: 9 * fast/dom/Document/readystate.html: 10 1 11 2010-10-13 Chris Fleizach <cfleizach@apple.com> 2 12 -
trunk/LayoutTests/fast/dom/Document/readystate-expected.txt
r67163 r69710 1 1 Tests that the document's readyState is set properly at various phases during load. 2 2 PASS document.readyState is "loading" 3 PASS document.onreadystatechange is null 3 4 PASS document.readyState is "loading" 5 PASS subdocument.readyState is "loading" 6 PASS subdocument.readyState is "complete" 7 PASS htmlDocument.readyState is "loading" 8 PASS dynamicIframe.contentDocument.readyState is "complete" 9 PASS dynamicIframe.contentDocument.onreadystatechange is null 10 PASS dynamicIframe.contentDocument.readyState is "loading" 11 PASS dynamicIframe.contentDocument.readyState is expectedDynamicStates[nextExpectedDynamicState] 12 PASS dynamicIframe.contentDocument.readyState is expectedDynamicStates[nextExpectedDynamicState] 13 PASS dynamicIframe.contentDocument.readyState is "complete" 14 PASS event.target.readyState is expectedStates[nextExpectedState] 15 PASS document.readyState is "interactive" 16 PASS readyStateChangeFired is true 4 17 PASS document.readyState is "interactive" 5 18 PASS document.readyState is "interactive" 6 PASS document.readyState is "interactive" 19 PASS event.target.readyState is expectedStates[nextExpectedState] 20 PASS nextExpectedState is expectedStates.length 21 PASS nextExpectedDynamicState is expectedDynamicStates.length 7 22 PASS document.readyState is "complete" 8 23 PASS successfullyParsed is true -
trunk/LayoutTests/fast/dom/Document/readystate.html
r67163 r69710 5 5 <script src="../../js/resources/js-test-pre.js"></script> 6 6 </head> 7 <body onload=" shouldBeEqualToString('document.readyState', 'complete');finishJSTest();">7 <body onload="allDone()"> 8 8 Tests that the document's readyState is set properly at various phases during load. 9 9 <div id="console"></div> 10 <script defer src="data:text/javascript,shouldBeEqualToString('document.readyState', 'interactive'); "></script>10 <script defer src="data:text/javascript,shouldBeEqualToString('document.readyState', 'interactive');shouldBeTrue('readyStateChangeFired');"></script> 11 11 <script src="data:text/javascript,shouldBeEqualToString('document.readyState', 'loading');"></script> 12 <iframe src="does-not-exist.html"></iframe> 12 13 <script> 13 14 var jsTestIsAsync = true; 14 15 16 shouldBe("document.onreadystatechange", "null"); 15 17 shouldBeEqualToString("document.readyState", "loading"); 16 18 … … 23 25 }, false); 24 26 27 var expectedStates = ["interactive", "complete"]; 28 var nextExpectedState = 0; 29 var readyStateChangeFired = false; 30 document.onreadystatechange = function(event) { 31 shouldBe("event.target.readyState", "expectedStates[nextExpectedState]"); 32 ++nextExpectedState; 33 readyStateChangeFired = true; 34 } 35 36 function readyStateShouldNotChange(event) { 37 testFailed("should not have been notified of subdocument state change to " + event.target.readyState); 38 } 39 40 var subdocument = document.getElementsByTagName('iframe')[0].contentDocument; 41 subdocument.onreadystatechange = readyStateShouldNotChange; 42 subdocument.open(); 43 shouldBeEqualToString("subdocument.readyState", "loading"); 44 subdocument.close(); 45 shouldBeEqualToString("subdocument.readyState", "complete"); 46 47 var htmlDocument = document.implementation.createHTMLDocument(); 48 shouldBeEqualToString("htmlDocument.readyState", "loading"); 49 50 var expectedDynamicStates = ["interactive", "complete"]; 51 var nextExpectedDynamicState = 0; 52 var dynamicIframe = document.createElement('iframe'); 53 dynamicIframe.setAttribute("src", "about:blank"); 54 dynamicIframe.setAttribute("onload", "parent.dynamicIframeLoaded()"); 55 subdocument.body.appendChild(dynamicIframe); 56 function dynamicIframeLoaded() { 57 shouldBeEqualToString("dynamicIframe.contentDocument.readyState", "complete"); 58 dynamicIframe.contentDocument.onreadystatechange = readyStateShouldNotChange; 59 dynamicIframe.contentDocument.open(); 60 shouldBe("dynamicIframe.contentDocument.onreadystatechange", "null"); 61 shouldBeEqualToString("dynamicIframe.contentDocument.readyState", "loading"); 62 dynamicIframe.contentDocument.onreadystatechange = function() { 63 shouldBe("dynamicIframe.contentDocument.readyState", "expectedDynamicStates[nextExpectedDynamicState]"); 64 ++nextExpectedDynamicState; 65 } 66 dynamicIframe.contentDocument.close(); 67 shouldBeEqualToString("dynamicIframe.contentDocument.readyState", "complete"); 68 69 dynamicIframe.contentDocument.onreadystatechange = readyStateShouldNotChange; 70 subdocument.open(); 71 subdocument.close(); 72 } 73 74 function allDone() { 75 shouldBe("nextExpectedState", "expectedStates.length"); 76 shouldBe("nextExpectedDynamicState", "expectedDynamicStates.length"); 77 shouldBeEqualToString("document.readyState", "complete"); 78 finishJSTest(); 79 } 80 25 81 var successfullyParsed = true; 26 82 </script> -
trunk/WebCore/ChangeLog
r69707 r69710 1 2010-10-13 James Simonsen <simonjam@chromium.org> 2 3 Reviewed by Darin Adler. 4 5 Implement onreadystatechange event handler for Documents 6 https://bugs.webkit.org/show_bug.cgi?id=26140 7 8 Test: fast/dom/Document/readystate.html 9 10 * dom/Document.cpp: 11 (WebCore::Document::setReadyState): Fire readystatechangeevent. 12 (WebCore::Document::open): Clear event listeners. 13 * dom/Document.h: Add readystatechange event. 14 * dom/Document.idl: Ditto. 15 1 16 2010-10-13 Chris Fleizach <cfleizach@apple.com> 2 17 -
trunk/WebCore/dom/Document.cpp
r69432 r69710 985 985 void Document::setReadyState(ReadyState readyState) 986 986 { 987 // FIXME: Fire the readystatechange event on this Document. 987 if (readyState == m_readyState) 988 return; 988 989 m_readyState = readyState; 990 dispatchEvent(Event::create(eventNames().readystatechangeEvent, false, false)); 989 991 } 990 992 … … 1862 1864 } 1863 1865 1866 removeAllEventListeners(); 1864 1867 implicitOpen(); 1865 1868 -
trunk/WebCore/dom/Document.h
r69286 r69710 257 257 DEFINE_ATTRIBUTE_EVENT_LISTENER(focus); 258 258 DEFINE_ATTRIBUTE_EVENT_LISTENER(load); 259 DEFINE_ATTRIBUTE_EVENT_LISTENER(readystatechange); 259 260 260 261 // WebKit extensions -
trunk/WebCore/dom/Document.idl
r68345 r69710 279 279 attribute [DontEnum] EventListener onmouseup; 280 280 attribute [DontEnum] EventListener onmousewheel; 281 attribute [DontEnum] EventListener onreadystatechange; 281 282 attribute [DontEnum] EventListener onscroll; 282 283 attribute [DontEnum] EventListener onselect; … … 298 299 // attribute [DontEnum] EventListener onprogress; 299 300 // attribute [DontEnum] EventListener onratechange; 300 // attribute [DontEnum] EventListener onreadystatechange;301 301 // attribute [DontEnum] EventListener onseeked; 302 302 // attribute [DontEnum] EventListener onseeking;
Note: See TracChangeset
for help on using the changeset viewer.