| <html> |
| <head> |
| <script src="npapi.js"></script> |
| <script> |
| function setTestObject(object) { |
| window.testObject = object; |
| setTimeout("deleteTestObject()", 0); |
| var statusPanel = document.getElementById("statusPanel"); |
| statusPanel.innerText = "Received test object..."; |
| } |
| |
| function deleteTestObject() { |
| window.testObject = null; |
| var statusPanel = document.getElementById("statusPanel"); |
| statusPanel.innerText = "Deleted test object..."; |
| gc(); |
| } |
| |
| function deletePlugin() { |
| var statusPanel = document.getElementById("statusPanel"); |
| statusPanel.innerText = "Deleting plugin..."; |
| var plugin = document.getElementById("delete_plugin_in_deallocate_test"); |
| if (plugin.parentNode && plugin.parentNode.removeChild) { |
| plugin.parentNode.removeChild(plugin); |
| } |
| } |
| </script> |
| </head> |
| |
| <body> |
| <div id="statusPanel" style="border: 1px solid red; width: 100%"> |
| Test running.... |
| </div> |
| |
| NPObject Delete in Deallocate<p> |
| |
| Tests the case where deallocation of an NPObject belonging to the plugin |
| triggers scripting which causes the whole plugin to be torn down, and verifies |
| that the object being deallocated is not deallocated a second time. |
| |
| |
| <embed type="application/vnd.npapi-test" |
| src="foo" |
| name="delete_plugin_in_deallocate_test" |
| id="signaller" |
| mode="np_embed"> |
| |
| <embed type="application/vnd.npapi-test" |
| src="foo" |
| name="delete_plugin_in_deallocate_test" |
| id="delete_plugin_in_deallocate_test" |
| mode="np_embed"> |
| |
| </body> |
| </html> |