OLD | NEW |
1 <html> | 1 <html> |
2 <head> | 2 <head> |
3 <script type="text/javascript" src="../../http/tests/inspector-protocol/inspecto
r-protocol-test.js"></script> | 3 <script type="text/javascript" src="../../http/tests/inspector-protocol/inspecto
r-protocol-test.js"></script> |
4 <script> | 4 <script> |
5 | 5 |
6 function createFrame() | 6 function createFrame() |
7 { | 7 { |
8 var frame = document.createElement("iframe"); | 8 var frame = document.createElement("iframe"); |
9 frame.src = "../resources/blank.html"; | 9 frame.src = "../resources/blank.html"; |
10 frame.id = "iframe"; | 10 frame.id = "iframe"; |
11 document.body.appendChild(frame); | 11 document.body.appendChild(frame); |
12 } | 12 } |
13 | 13 |
14 function createCraftedFrame() | |
15 { | |
16 var frame = document.createElement("iframe"); | |
17 frame.src = "../resources/blank.html"; | |
18 frame.id = "crafted-iframe"; | |
19 document.body.appendChild(frame); | |
20 frame.contentDocument.write("<div>crafted</div>"); | |
21 } | |
22 | |
23 function test() | 14 function test() |
24 { | 15 { |
25 InspectorTest.evaluate = function(expression) | 16 InspectorTest.evaluate = function(expression) |
26 { | 17 { |
27 InspectorTest.sendCommandOrDie("Runtime.evaluate", {expression: expressi
on}); | 18 InspectorTest.sendCommandOrDie("Runtime.evaluate", {expression: expressi
on}); |
28 } | 19 } |
29 | 20 |
30 InspectorTest.fail = function(message) | 21 InspectorTest.fail = function(message) |
31 { | 22 { |
32 InspectorTest.log(message); | 23 InspectorTest.log(message); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 InspectorTest.evaluate("document.querySelector(\"#iframe\").remove()"); | 61 InspectorTest.evaluate("document.querySelector(\"#iframe\").remove()"); |
71 } | 62 } |
72 | 63 |
73 function frameContextDestroyedAfterFrameRemoved(executionContextId) | 64 function frameContextDestroyedAfterFrameRemoved(executionContextId) |
74 { | 65 { |
75 if (frameExecutionContextId !== executionContextId) { | 66 if (frameExecutionContextId !== executionContextId) { |
76 InspectorTest.fail("Deleted frame had execution context with id = "
+ frameExecutionContextId + " , but executionContext with id = " + executionCont
extId + " was removed"); | 67 InspectorTest.fail("Deleted frame had execution context with id = "
+ frameExecutionContextId + " , but executionContext with id = " + executionCont
extId + " was removed"); |
77 return; | 68 return; |
78 } | 69 } |
79 InspectorTest.log("Frame's context was destroyed"); | 70 InspectorTest.log("Frame's context was destroyed"); |
80 InspectorTest.log("Create new crafted frame"); | |
81 InspectorTest.evaluate("createCraftedFrame()"); | |
82 } | |
83 | |
84 function craftedFrameContextCreated(executionContextId) | |
85 { | |
86 InspectorTest.log("Crafted frame context was created"); | |
87 frameExecutionContextId = executionContextId; | |
88 InspectorTest.log("Remove crafted frame"); | |
89 InspectorTest.evaluate("document.querySelector(\"#crafted-iframe\").remo
ve()"); | |
90 } | |
91 | |
92 function craftedFrameContextDestroyedAfterFrameRemoved(executionContextId) | |
93 { | |
94 if (frameExecutionContextId !== executionContextId) { | |
95 InspectorTest.fail("Deleted frame had execution context with id = "
+ frameExecutionContextId + " , but executionContext with id = " + executionCont
extId + " was removed"); | |
96 return; | |
97 } | |
98 InspectorTest.log("Crafted frame's context was destroyed"); | |
99 InspectorTest.completeTest(); | 71 InspectorTest.completeTest(); |
100 } | 72 } |
101 | 73 |
102 var contextCreationCounter = 0; | 74 var contextCreationCounter = 0; |
103 | 75 |
104 InspectorTest.eventHandler["Runtime.executionContextCreated"] = function(mes
sageObject) | 76 InspectorTest.eventHandler["Runtime.executionContextCreated"] = function(mes
sageObject) |
105 { | 77 { |
106 contextCreationCounter++; | 78 contextCreationCounter++; |
107 var executionContextId = messageObject.params.context.id; | 79 var executionContextId = messageObject.params.context.id; |
108 switch (contextCreationCounter) { | 80 switch (contextCreationCounter) { |
109 case 1: | 81 case 1: |
110 pageContextCreated(); | 82 pageContextCreated(); |
111 break; | 83 break; |
112 case 2: | 84 case 2: |
113 frameContextCreated(executionContextId); | 85 frameContextCreated(executionContextId); |
114 break; | 86 break; |
115 case 3: | 87 case 3: |
116 frameContextCreatedAfterNavigation(executionContextId); | 88 frameContextCreatedAfterNavigation(executionContextId); |
117 break; | 89 break; |
118 case 4: | |
119 craftedFrameContextCreated(executionContextId); | |
120 break; | |
121 } | 90 } |
122 } | 91 } |
123 | 92 |
124 var contextDestructionCounter = 0; | 93 var contextDestructionCounter = 0; |
125 InspectorTest.eventHandler["Runtime.executionContextDestroyed"] = function(m
essageObject) | 94 InspectorTest.eventHandler["Runtime.executionContextDestroyed"] = function(m
essageObject) |
126 { | 95 { |
127 contextDestructionCounter++; | 96 contextDestructionCounter++; |
128 var executionContextId = messageObject.params.executionContextId; | 97 var executionContextId = messageObject.params.executionContextId; |
129 switch (contextDestructionCounter) { | 98 switch (contextDestructionCounter) { |
130 case 1: | 99 case 1: |
131 frameContextDestroyedBeforeNavigation(executionContextId); | 100 frameContextDestroyedBeforeNavigation(executionContextId); |
132 break; | 101 break; |
133 case 2: | 102 case 2: |
134 frameContextDestroyedAfterFrameRemoved(executionContextId); | 103 frameContextDestroyedAfterFrameRemoved(executionContextId); |
135 break; | 104 break; |
136 case 3: | |
137 craftedFrameContextDestroyedAfterFrameRemoved(executionContextId); | |
138 break; | |
139 } | 105 } |
140 } | 106 } |
141 | 107 |
142 } | 108 } |
143 </script> | 109 </script> |
144 </head> | 110 </head> |
145 <body onload="runTest()"> | 111 <body onload="runTest()"> |
146 </body> | 112 </body> |
147 </html> | 113 </html> |
OLD | NEW |