| OLD | NEW |
| 1 <html> | 1 <html> |
| 2 <head> | 2 <head> |
| 3 <script> | 3 <script> |
| 4 function openIframe() | 4 function openIframe() |
| 5 { | 5 { |
| 6 if (document.createElement && (iframe = document.createElement('iframe
'))) { | 6 if (document.createElement && (iframe = document.createElement('iframe
'))) { |
| 7 document.body.appendChild(iframe); | 7 document.body.appendChild(iframe); |
| 8 return iframe; | 8 return iframe; |
| 9 } | 9 } |
| 10 } | 10 } |
| 11 | 11 |
| 12 function runTestReplaceWholeText() | |
| 13 { | |
| 14 t1 = openIframe(); | |
| 15 var a = t1.contentWindow.frames; | |
| 16 var b = t1.contentDocument.defaultView.localStorage; | |
| 17 t1.outerText = ""; | |
| 18 t1.src = undefined; | |
| 19 first_attr = t1.attributes.item(undefined, undefined, undefined, undef
ined); | |
| 20 first_attr.firstChild.data = undefined; | |
| 21 first_attr.firstChild.DOCUMENT_FRAGMENT_NODE = a; | |
| 22 try { | |
| 23 first_attr.firstChild.DOCUMENT_FRAGMENT_NODE.localStorage.fuzz3_vi
sited="test"; | |
| 24 } catch (e) { | |
| 25 console.log("Expected exception caught."); | |
| 26 } | |
| 27 } | |
| 28 | |
| 29 function runTestOuterText() { | 12 function runTestOuterText() { |
| 30 t1 = openIframe(); | 13 t1 = openIframe(); |
| 31 var a = t1.contentWindow.frames; | 14 var a = t1.contentWindow.frames; |
| 32 var b = t1.contentDocument.defaultView.localStorage; | 15 var b = t1.contentDocument.defaultView.localStorage; |
| 33 var a_localStorage = a.localStorage; // The constructor won't be reach
able as window object property after detaching the frame. | 16 var a_localStorage = a.localStorage; // The constructor won't be reach
able as window object property after detaching the frame. |
| 34 | 17 |
| 35 t1.outerText = ""; | 18 t1.outerText = ""; |
| 36 try { | 19 try { |
| 37 a_localStorage.fuzz3_visited="test"; | 20 a_localStorage.fuzz3_visited="test"; |
| 38 } catch (e) { | 21 } catch (e) { |
| 39 console.log("Expected exception caught."); | 22 console.log("Expected exception caught."); |
| 40 } | 23 } |
| 41 } | 24 } |
| 42 | 25 |
| 43 function runTests() { | 26 function runTests() { |
| 44 runTestReplaceWholeText(); | |
| 45 runTestOuterText(); | 27 runTestOuterText(); |
| 46 document.getElementById("result").innerHTML = "passed"; | 28 document.getElementById("result").innerHTML = "passed"; |
| 47 } | 29 } |
| 48 | 30 |
| 49 if (window.testRunner) | 31 if (window.testRunner) |
| 50 testRunner.dumpAsText(); | 32 testRunner.dumpAsText(); |
| 51 | 33 |
| 52 </script> | 34 </script> |
| 53 </head> | 35 </head> |
| 54 <body onload="runTests()"> | 36 <body onload="runTests()"> |
| 55 <p>Bug: https://bugs.webkit.org/show_bug.cgi?id=57140 | 37 <p>Bug: https://bugs.webkit.org/show_bug.cgi?id=57140 |
| 56 <p>Description: Crash from null pointer dereference below WebCore::StorageAr
eaImpl::setItem() | 38 <p>Description: Crash from null pointer dereference below WebCore::StorageAr
eaImpl::setItem() |
| 57 <p>Expect: passed | 39 <p>Expect: passed |
| 58 <p>Result: <span id="result">failed</span> | 40 <p>Result: <span id="result">failed</span> |
| 59 </body> | 41 </body> |
| 60 </html> | 42 </html> |
| OLD | NEW |