haikuwebkit/LayoutTests/plugins/netscape-dom-access-and-rel...

56 lines
2.0 KiB
HTML
Raw Permalink Normal View History

Relanding(r111754): HTMLPluginElement is not destroyed on reload or navigation if getNPObject is called https://bugs.webkit.org/show_bug.cgi?id=80428 .: Patch by Dave Michael <dmichael@chromium.org> on 2012-03-23 Source/WebCore: Patch by Dave Michael <dmichael@chromium.org> on 2012-03-23 Reviewed by Eric Seidel and Ryosuke Niwa. Make HTMLPluginElement release its m_NPObject in detach() to break a reference-counting cycle that happens on reload or navigation. With this change, HTMLPlugInElement::removedFromDocument is unnecessary, so it was removed. Note that Releasing m_NPObject does not result in a call to the plugin; it simply releases a reference count on the wrapper object for this HTMLPlugInElement. (The plugin's NPP_Deallocate is invoked when the render tree is destroyed, when PluginView calls PluginPackage::unload.) Thus, it is safe to release m_NPObject in detach, because it can not result in layout or style changes. Also added numberOfLiveNodes() and numberOfLiveDocuments() to window.internals to enable testing. Test: plugins/netscape-dom-access-and-reload.html * WebCore.exp.in: * html/HTMLPlugInElement.cpp: (WebCore::HTMLPlugInElement::detach): * html/HTMLPlugInElement.h: (HTMLPlugInElement): * testing/Internals.cpp: (WebCore): (WebCore::Internals::numberOfLiveNodes): (WebCore::Internals::numberOfLiveDocuments): * testing/Internals.h: (Internals): * testing/Internals.idl: Source/WebKit2: Patch by Dave Michael <dmichael@chromium.org> on 2012-03-23 Reviewed by Eric Seidel and Ryosuke Niwa. * win/WebKit2.def: Export a symbol for InspectorCounters::counterValue * win/WebKit2CFLite.def: Export a symbol for InspectorCounters::counterValue LayoutTests: Patch by Dave Michael <dmichael@chromium.org> on 2012-03-23 Reviewed by Eric Seidel and Ryosuke Niwa. Due to unfortunate copy/paste laziness, the new test was using the same window.sessionStorage as plugins/reloadplugins-and-pages.html, so that if the tests were run in the same session, reloadplugins-and-pages.html would *not* reload as it was supposed to, causing a text mismatch. This patch uses a more appropriate and unique name so that these two tests won't affect each other. * plugins/netscape-dom-access-and-reload-expected.txt: Added. * plugins/netscape-dom-access-and-reload.html: Added. Canonical link: https://commits.webkit.org/99375@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@111890 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-03-23 20:00:10 +00:00
<!DOCTYPE html>
<html>
<head>
<script>
function runTest()
{
// Make the plugin retrieve a DOM element to itself. This exercises
// https://bugs.webkit.org/show_bug.cgi?id=80428
document.getElementById("testPlugin").testDOMAccess();
var callReload = true;
if (window.sessionStorage) {
if (window.sessionStorage.netscapeDomAccessAndReloadHasReloaded)
callReload = false;
else
window.sessionStorage.netscapeDomAccessAndReloadHasReloaded = 1;
}
Use testRunner instead of layoutTestController in networkinformation, perf, plugins, pointer-lock, printing, scrollbars, and security tests https://bugs.webkit.org/show_bug.cgi?id=89181 Reviewed by Kent Tamura. * perf/clone-with-focus.html: * perf/nested-combined-selectors.html: * perf/table-rows-length-caching.html: * platform/chromium/plugins/call-as-function.html: * platform/chromium/plugins/get-url-with-blank-target2.html: * platform/chromium/plugins/get-url-with-iframe-target-no-crash.html: * platform/chromium/printing/custom-page-size-style-expected.txt: * platform/chromium/printing/custom-page-size-style.html: * platform/gtk/plugins/invalidate-rect-with-null-npp-argument.html: * platform/gtk/scrollbars/overflow-scrollbar-horizontal-wheel-scroll.html: * platform/mac-wk2/plugins/contents-scale-factor.html: * platform/mac-wk2/plugins/mouse-events-scaled.html: * platform/mac/plugins/bindings-array-apply-crash.html: * platform/mac/plugins/bindings-objc-long-method-name.html: * platform/mac/plugins/bindings-objc-method-name-conversion.html: * platform/mac/plugins/bindings-test-objc.html: * platform/mac/plugins/call-as-function-test.html: * platform/mac/plugins/convert-point.html: * platform/mac/plugins/disable-plugins.html: * platform/mac/plugins/jsobjc-dom-wrappers.html: * platform/mac/plugins/jsobjc-simple.html: * platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html-disabled: * platform/mac/plugins/root-object-premature-delete-crash.html: * platform/mac/plugins/supports-carbon-event-model.html: * platform/mac/plugins/testplugin-onnew-onpaint.html: * platform/mac/plugins/throw-on-dealloc.html: * platform/mac/plugins/undefined-property-crash.html: * platform/mac/plugins/update-widget-from-style-recalc.html: * platform/mac/plugins/webScriptObject-exception-deadlock.html: * platform/mac/scrollbars/key-window-not-first-responder.html: * platform/qt/plugins/application-plugin-plugins-disabled.html: * platform/win/plugins/call-javascript-that-destroys-plugin.html: * platform/win/plugins/get-value-netscape-window.html: * platform/win/plugins/iframe-inside-overflow.html: * platform/win/plugins/npn-invalidate-rect-invalidates-window.html: * platform/win/plugins/visibility-hidden.html: * platform/win/plugins/window-geometry-initialized-before-set-window.html: * platform/win/plugins/window-region-is-set-to-clip-rect.html: * platform/win/plugins/windowless-paint-rect-coordinates.html: * plugins/: * pointer-lock/lock-fail-responses-expected.txt: * pointer-lock/lock-fail-responses.html: * pointer-lock/pointer-lock-api.html: * pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt: * pointer-lock/pointerlockchange-pointerlockerror-events.html: * pointer-lock/pointerlocklost-event-expected.txt: * pointer-lock/pointerlocklost-event.html: * printing/compositing-layer-printing.html: * printing/css2.1/README.txt: * printing/css2.1/page-break-after-000.html: * printing/css2.1/page-break-after-001.html: * printing/css2.1/page-break-after-002.html: * printing/css2.1/page-break-after-003.html: * printing/css2.1/page-break-after-004.html: * printing/css2.1/page-break-before-000.html: * printing/css2.1/page-break-before-001.html: * printing/css2.1/page-break-before-002.html: * printing/css2.1/page-break-inside-000.html: * printing/iframe-print.html: * printing/media-queries-print.html: * printing/numberOfPages-expected.txt: * printing/page-count-layout-overflow.html: * printing/page-count-relayout-shrink.html: * printing/page-count-with-one-word.html: * printing/page-format-data-display-none.html: * printing/page-format-data-expected.txt: * printing/page-format-data.html: * printing/page-rule-css-text.html: * printing/page-rule-in-media-query.html: * printing/page-rule-selection-expected.txt: * printing/page-rule-selection.html: * printing/pageNumerForElementById-expected.txt: * printing/print-close-crash.html: * printing/pseudo-class-outside-page.html: * printing/resources/paged-media-test-utils.js: (pageNumberForElementShouldBe): (numberOfPagesShouldBe): (runPrintingTest): * printing/return-from-printing-mode.html: * printing/script-tests/numberOfPages.js: * printing/script-tests/pageNumerForElementById.js: * printing/setPrinting.html: * printing/simultaneous-position-float-change.html: * printing/single-line-must-not-be-split-into-two-pages.html: * printing/width-overflow.html: * printing/zoomed-document.html: * scrollbars/hidden-iframe-scrollbar-crash.html: * scrollbars/hidden-iframe-scrollbar-crash2.html: * scrollbars/hidden-scrollbar-prevents-layout.html: * scrollbars/overflow-custom-scrollbar-crash.html: * scrollbars/resources/hidden-iframe-scrollbar-crash2.html: * scrollbars/scroll-rtl-or-bt-layer.html: * scrollbars/scrollable-iframe-remove-crash.html: * scrollbars/scrollbar-click-does-not-blur-content.html: * scrollbars/scrollbar-crash-on-refresh.html: * scrollbars/scrollbar-drag-thumb-with-large-content.html: * scrollbars/scrollbar-gradient-crash.html: * scrollbars/scrollbar-iframe-click-does-not-blur-content.html: * scrollbars/scrollbar-initial-position.html: * scrollbars/scrollbar-middleclick-nopaste.html: * scrollbars/scrollbar-miss-mousemove-disabled.html: * scrollbars/scrollbar-miss-mousemove.html: * scrollbars/scrollbar-owning-renderer-crash.html: * scrollbars/scrollbar-part-created-with-no-parent-crash.html: * scrollbars/scrollbar-percent-padding-crash.html: * scrollbars/scrollbar-scrollbarparts-repaint-crash.html: * scrollbars/scrollevent-iframe-no-scrolling-wheel.html: * scrollbars/scrollevent-iframe-no-scrolling.html: * security/autocomplete-cleared-on-back.html: * security/block-test-no-port.html: * security/block-test.html: * security/set-form-autocomplete-attribute.html: Canonical link: https://commits.webkit.org/107031@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@120417 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-06-15 07:38:37 +00:00
if (window.testRunner)
testRunner.dumpAsText();
Relanding(r111754): HTMLPluginElement is not destroyed on reload or navigation if getNPObject is called https://bugs.webkit.org/show_bug.cgi?id=80428 .: Patch by Dave Michael <dmichael@chromium.org> on 2012-03-23 Source/WebCore: Patch by Dave Michael <dmichael@chromium.org> on 2012-03-23 Reviewed by Eric Seidel and Ryosuke Niwa. Make HTMLPluginElement release its m_NPObject in detach() to break a reference-counting cycle that happens on reload or navigation. With this change, HTMLPlugInElement::removedFromDocument is unnecessary, so it was removed. Note that Releasing m_NPObject does not result in a call to the plugin; it simply releases a reference count on the wrapper object for this HTMLPlugInElement. (The plugin's NPP_Deallocate is invoked when the render tree is destroyed, when PluginView calls PluginPackage::unload.) Thus, it is safe to release m_NPObject in detach, because it can not result in layout or style changes. Also added numberOfLiveNodes() and numberOfLiveDocuments() to window.internals to enable testing. Test: plugins/netscape-dom-access-and-reload.html * WebCore.exp.in: * html/HTMLPlugInElement.cpp: (WebCore::HTMLPlugInElement::detach): * html/HTMLPlugInElement.h: (HTMLPlugInElement): * testing/Internals.cpp: (WebCore): (WebCore::Internals::numberOfLiveNodes): (WebCore::Internals::numberOfLiveDocuments): * testing/Internals.h: (Internals): * testing/Internals.idl: Source/WebKit2: Patch by Dave Michael <dmichael@chromium.org> on 2012-03-23 Reviewed by Eric Seidel and Ryosuke Niwa. * win/WebKit2.def: Export a symbol for InspectorCounters::counterValue * win/WebKit2CFLite.def: Export a symbol for InspectorCounters::counterValue LayoutTests: Patch by Dave Michael <dmichael@chromium.org> on 2012-03-23 Reviewed by Eric Seidel and Ryosuke Niwa. Due to unfortunate copy/paste laziness, the new test was using the same window.sessionStorage as plugins/reloadplugins-and-pages.html, so that if the tests were run in the same session, reloadplugins-and-pages.html would *not* reload as it was supposed to, causing a text mismatch. This patch uses a more appropriate and unique name so that these two tests won't affect each other. * plugins/netscape-dom-access-and-reload-expected.txt: Added. * plugins/netscape-dom-access-and-reload.html: Added. Canonical link: https://commits.webkit.org/99375@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@111890 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-03-23 20:00:10 +00:00
if (callReload) {
Use testRunner instead of layoutTestController in networkinformation, perf, plugins, pointer-lock, printing, scrollbars, and security tests https://bugs.webkit.org/show_bug.cgi?id=89181 Reviewed by Kent Tamura. * perf/clone-with-focus.html: * perf/nested-combined-selectors.html: * perf/table-rows-length-caching.html: * platform/chromium/plugins/call-as-function.html: * platform/chromium/plugins/get-url-with-blank-target2.html: * platform/chromium/plugins/get-url-with-iframe-target-no-crash.html: * platform/chromium/printing/custom-page-size-style-expected.txt: * platform/chromium/printing/custom-page-size-style.html: * platform/gtk/plugins/invalidate-rect-with-null-npp-argument.html: * platform/gtk/scrollbars/overflow-scrollbar-horizontal-wheel-scroll.html: * platform/mac-wk2/plugins/contents-scale-factor.html: * platform/mac-wk2/plugins/mouse-events-scaled.html: * platform/mac/plugins/bindings-array-apply-crash.html: * platform/mac/plugins/bindings-objc-long-method-name.html: * platform/mac/plugins/bindings-objc-method-name-conversion.html: * platform/mac/plugins/bindings-test-objc.html: * platform/mac/plugins/call-as-function-test.html: * platform/mac/plugins/convert-point.html: * platform/mac/plugins/disable-plugins.html: * platform/mac/plugins/jsobjc-dom-wrappers.html: * platform/mac/plugins/jsobjc-simple.html: * platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html-disabled: * platform/mac/plugins/root-object-premature-delete-crash.html: * platform/mac/plugins/supports-carbon-event-model.html: * platform/mac/plugins/testplugin-onnew-onpaint.html: * platform/mac/plugins/throw-on-dealloc.html: * platform/mac/plugins/undefined-property-crash.html: * platform/mac/plugins/update-widget-from-style-recalc.html: * platform/mac/plugins/webScriptObject-exception-deadlock.html: * platform/mac/scrollbars/key-window-not-first-responder.html: * platform/qt/plugins/application-plugin-plugins-disabled.html: * platform/win/plugins/call-javascript-that-destroys-plugin.html: * platform/win/plugins/get-value-netscape-window.html: * platform/win/plugins/iframe-inside-overflow.html: * platform/win/plugins/npn-invalidate-rect-invalidates-window.html: * platform/win/plugins/visibility-hidden.html: * platform/win/plugins/window-geometry-initialized-before-set-window.html: * platform/win/plugins/window-region-is-set-to-clip-rect.html: * platform/win/plugins/windowless-paint-rect-coordinates.html: * plugins/: * pointer-lock/lock-fail-responses-expected.txt: * pointer-lock/lock-fail-responses.html: * pointer-lock/pointer-lock-api.html: * pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt: * pointer-lock/pointerlockchange-pointerlockerror-events.html: * pointer-lock/pointerlocklost-event-expected.txt: * pointer-lock/pointerlocklost-event.html: * printing/compositing-layer-printing.html: * printing/css2.1/README.txt: * printing/css2.1/page-break-after-000.html: * printing/css2.1/page-break-after-001.html: * printing/css2.1/page-break-after-002.html: * printing/css2.1/page-break-after-003.html: * printing/css2.1/page-break-after-004.html: * printing/css2.1/page-break-before-000.html: * printing/css2.1/page-break-before-001.html: * printing/css2.1/page-break-before-002.html: * printing/css2.1/page-break-inside-000.html: * printing/iframe-print.html: * printing/media-queries-print.html: * printing/numberOfPages-expected.txt: * printing/page-count-layout-overflow.html: * printing/page-count-relayout-shrink.html: * printing/page-count-with-one-word.html: * printing/page-format-data-display-none.html: * printing/page-format-data-expected.txt: * printing/page-format-data.html: * printing/page-rule-css-text.html: * printing/page-rule-in-media-query.html: * printing/page-rule-selection-expected.txt: * printing/page-rule-selection.html: * printing/pageNumerForElementById-expected.txt: * printing/print-close-crash.html: * printing/pseudo-class-outside-page.html: * printing/resources/paged-media-test-utils.js: (pageNumberForElementShouldBe): (numberOfPagesShouldBe): (runPrintingTest): * printing/return-from-printing-mode.html: * printing/script-tests/numberOfPages.js: * printing/script-tests/pageNumerForElementById.js: * printing/setPrinting.html: * printing/simultaneous-position-float-change.html: * printing/single-line-must-not-be-split-into-two-pages.html: * printing/width-overflow.html: * printing/zoomed-document.html: * scrollbars/hidden-iframe-scrollbar-crash.html: * scrollbars/hidden-iframe-scrollbar-crash2.html: * scrollbars/hidden-scrollbar-prevents-layout.html: * scrollbars/overflow-custom-scrollbar-crash.html: * scrollbars/resources/hidden-iframe-scrollbar-crash2.html: * scrollbars/scroll-rtl-or-bt-layer.html: * scrollbars/scrollable-iframe-remove-crash.html: * scrollbars/scrollbar-click-does-not-blur-content.html: * scrollbars/scrollbar-crash-on-refresh.html: * scrollbars/scrollbar-drag-thumb-with-large-content.html: * scrollbars/scrollbar-gradient-crash.html: * scrollbars/scrollbar-iframe-click-does-not-blur-content.html: * scrollbars/scrollbar-initial-position.html: * scrollbars/scrollbar-middleclick-nopaste.html: * scrollbars/scrollbar-miss-mousemove-disabled.html: * scrollbars/scrollbar-miss-mousemove.html: * scrollbars/scrollbar-owning-renderer-crash.html: * scrollbars/scrollbar-part-created-with-no-parent-crash.html: * scrollbars/scrollbar-percent-padding-crash.html: * scrollbars/scrollbar-scrollbarparts-repaint-crash.html: * scrollbars/scrollevent-iframe-no-scrolling-wheel.html: * scrollbars/scrollevent-iframe-no-scrolling.html: * security/autocomplete-cleared-on-back.html: * security/block-test-no-port.html: * security/block-test.html: * security/set-form-autocomplete-attribute.html: Canonical link: https://commits.webkit.org/107031@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@120417 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-06-15 07:38:37 +00:00
if (window.testRunner)
testRunner.waitUntilDone();
Relanding(r111754): HTMLPluginElement is not destroyed on reload or navigation if getNPObject is called https://bugs.webkit.org/show_bug.cgi?id=80428 .: Patch by Dave Michael <dmichael@chromium.org> on 2012-03-23 Source/WebCore: Patch by Dave Michael <dmichael@chromium.org> on 2012-03-23 Reviewed by Eric Seidel and Ryosuke Niwa. Make HTMLPluginElement release its m_NPObject in detach() to break a reference-counting cycle that happens on reload or navigation. With this change, HTMLPlugInElement::removedFromDocument is unnecessary, so it was removed. Note that Releasing m_NPObject does not result in a call to the plugin; it simply releases a reference count on the wrapper object for this HTMLPlugInElement. (The plugin's NPP_Deallocate is invoked when the render tree is destroyed, when PluginView calls PluginPackage::unload.) Thus, it is safe to release m_NPObject in detach, because it can not result in layout or style changes. Also added numberOfLiveNodes() and numberOfLiveDocuments() to window.internals to enable testing. Test: plugins/netscape-dom-access-and-reload.html * WebCore.exp.in: * html/HTMLPlugInElement.cpp: (WebCore::HTMLPlugInElement::detach): * html/HTMLPlugInElement.h: (HTMLPlugInElement): * testing/Internals.cpp: (WebCore): (WebCore::Internals::numberOfLiveNodes): (WebCore::Internals::numberOfLiveDocuments): * testing/Internals.h: (Internals): * testing/Internals.idl: Source/WebKit2: Patch by Dave Michael <dmichael@chromium.org> on 2012-03-23 Reviewed by Eric Seidel and Ryosuke Niwa. * win/WebKit2.def: Export a symbol for InspectorCounters::counterValue * win/WebKit2CFLite.def: Export a symbol for InspectorCounters::counterValue LayoutTests: Patch by Dave Michael <dmichael@chromium.org> on 2012-03-23 Reviewed by Eric Seidel and Ryosuke Niwa. Due to unfortunate copy/paste laziness, the new test was using the same window.sessionStorage as plugins/reloadplugins-and-pages.html, so that if the tests were run in the same session, reloadplugins-and-pages.html would *not* reload as it was supposed to, causing a text mismatch. This patch uses a more appropriate and unique name so that these two tests won't affect each other. * plugins/netscape-dom-access-and-reload-expected.txt: Added. * plugins/netscape-dom-access-and-reload.html: Added. Canonical link: https://commits.webkit.org/99375@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@111890 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-03-23 20:00:10 +00:00
location.reload();
} else {
window.GCController.collect();
// Note we could also collect the number of live nodes, but that seems
// more likely to give spurious failures. When an HTMLPluginElement is
// improperly retained, its owning Document also survives, so we'll
// detect an excess Document.
if (internals && internals.numberOfLiveDocuments) {
var numberOfLiveDocuments = internals.numberOfLiveDocuments();
if (numberOfLiveDocuments == 1) {
document.getElementById("result").innerHTML = "SUCCESS";
}
} else {
document.getElementById("result").innerHTML = "FAILED; This test is only valid in DumpRenderTree, and only when the Inspector is enabled.";
}
Use testRunner instead of layoutTestController in networkinformation, perf, plugins, pointer-lock, printing, scrollbars, and security tests https://bugs.webkit.org/show_bug.cgi?id=89181 Reviewed by Kent Tamura. * perf/clone-with-focus.html: * perf/nested-combined-selectors.html: * perf/table-rows-length-caching.html: * platform/chromium/plugins/call-as-function.html: * platform/chromium/plugins/get-url-with-blank-target2.html: * platform/chromium/plugins/get-url-with-iframe-target-no-crash.html: * platform/chromium/printing/custom-page-size-style-expected.txt: * platform/chromium/printing/custom-page-size-style.html: * platform/gtk/plugins/invalidate-rect-with-null-npp-argument.html: * platform/gtk/scrollbars/overflow-scrollbar-horizontal-wheel-scroll.html: * platform/mac-wk2/plugins/contents-scale-factor.html: * platform/mac-wk2/plugins/mouse-events-scaled.html: * platform/mac/plugins/bindings-array-apply-crash.html: * platform/mac/plugins/bindings-objc-long-method-name.html: * platform/mac/plugins/bindings-objc-method-name-conversion.html: * platform/mac/plugins/bindings-test-objc.html: * platform/mac/plugins/call-as-function-test.html: * platform/mac/plugins/convert-point.html: * platform/mac/plugins/disable-plugins.html: * platform/mac/plugins/jsobjc-dom-wrappers.html: * platform/mac/plugins/jsobjc-simple.html: * platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html-disabled: * platform/mac/plugins/root-object-premature-delete-crash.html: * platform/mac/plugins/supports-carbon-event-model.html: * platform/mac/plugins/testplugin-onnew-onpaint.html: * platform/mac/plugins/throw-on-dealloc.html: * platform/mac/plugins/undefined-property-crash.html: * platform/mac/plugins/update-widget-from-style-recalc.html: * platform/mac/plugins/webScriptObject-exception-deadlock.html: * platform/mac/scrollbars/key-window-not-first-responder.html: * platform/qt/plugins/application-plugin-plugins-disabled.html: * platform/win/plugins/call-javascript-that-destroys-plugin.html: * platform/win/plugins/get-value-netscape-window.html: * platform/win/plugins/iframe-inside-overflow.html: * platform/win/plugins/npn-invalidate-rect-invalidates-window.html: * platform/win/plugins/visibility-hidden.html: * platform/win/plugins/window-geometry-initialized-before-set-window.html: * platform/win/plugins/window-region-is-set-to-clip-rect.html: * platform/win/plugins/windowless-paint-rect-coordinates.html: * plugins/: * pointer-lock/lock-fail-responses-expected.txt: * pointer-lock/lock-fail-responses.html: * pointer-lock/pointer-lock-api.html: * pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt: * pointer-lock/pointerlockchange-pointerlockerror-events.html: * pointer-lock/pointerlocklost-event-expected.txt: * pointer-lock/pointerlocklost-event.html: * printing/compositing-layer-printing.html: * printing/css2.1/README.txt: * printing/css2.1/page-break-after-000.html: * printing/css2.1/page-break-after-001.html: * printing/css2.1/page-break-after-002.html: * printing/css2.1/page-break-after-003.html: * printing/css2.1/page-break-after-004.html: * printing/css2.1/page-break-before-000.html: * printing/css2.1/page-break-before-001.html: * printing/css2.1/page-break-before-002.html: * printing/css2.1/page-break-inside-000.html: * printing/iframe-print.html: * printing/media-queries-print.html: * printing/numberOfPages-expected.txt: * printing/page-count-layout-overflow.html: * printing/page-count-relayout-shrink.html: * printing/page-count-with-one-word.html: * printing/page-format-data-display-none.html: * printing/page-format-data-expected.txt: * printing/page-format-data.html: * printing/page-rule-css-text.html: * printing/page-rule-in-media-query.html: * printing/page-rule-selection-expected.txt: * printing/page-rule-selection.html: * printing/pageNumerForElementById-expected.txt: * printing/print-close-crash.html: * printing/pseudo-class-outside-page.html: * printing/resources/paged-media-test-utils.js: (pageNumberForElementShouldBe): (numberOfPagesShouldBe): (runPrintingTest): * printing/return-from-printing-mode.html: * printing/script-tests/numberOfPages.js: * printing/script-tests/pageNumerForElementById.js: * printing/setPrinting.html: * printing/simultaneous-position-float-change.html: * printing/single-line-must-not-be-split-into-two-pages.html: * printing/width-overflow.html: * printing/zoomed-document.html: * scrollbars/hidden-iframe-scrollbar-crash.html: * scrollbars/hidden-iframe-scrollbar-crash2.html: * scrollbars/hidden-scrollbar-prevents-layout.html: * scrollbars/overflow-custom-scrollbar-crash.html: * scrollbars/resources/hidden-iframe-scrollbar-crash2.html: * scrollbars/scroll-rtl-or-bt-layer.html: * scrollbars/scrollable-iframe-remove-crash.html: * scrollbars/scrollbar-click-does-not-blur-content.html: * scrollbars/scrollbar-crash-on-refresh.html: * scrollbars/scrollbar-drag-thumb-with-large-content.html: * scrollbars/scrollbar-gradient-crash.html: * scrollbars/scrollbar-iframe-click-does-not-blur-content.html: * scrollbars/scrollbar-initial-position.html: * scrollbars/scrollbar-middleclick-nopaste.html: * scrollbars/scrollbar-miss-mousemove-disabled.html: * scrollbars/scrollbar-miss-mousemove.html: * scrollbars/scrollbar-owning-renderer-crash.html: * scrollbars/scrollbar-part-created-with-no-parent-crash.html: * scrollbars/scrollbar-percent-padding-crash.html: * scrollbars/scrollbar-scrollbarparts-repaint-crash.html: * scrollbars/scrollevent-iframe-no-scrolling-wheel.html: * scrollbars/scrollevent-iframe-no-scrolling.html: * security/autocomplete-cleared-on-back.html: * security/block-test-no-port.html: * security/block-test.html: * security/set-form-autocomplete-attribute.html: Canonical link: https://commits.webkit.org/107031@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@120417 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-06-15 07:38:37 +00:00
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.notifyDone();
Relanding(r111754): HTMLPluginElement is not destroyed on reload or navigation if getNPObject is called https://bugs.webkit.org/show_bug.cgi?id=80428 .: Patch by Dave Michael <dmichael@chromium.org> on 2012-03-23 Source/WebCore: Patch by Dave Michael <dmichael@chromium.org> on 2012-03-23 Reviewed by Eric Seidel and Ryosuke Niwa. Make HTMLPluginElement release its m_NPObject in detach() to break a reference-counting cycle that happens on reload or navigation. With this change, HTMLPlugInElement::removedFromDocument is unnecessary, so it was removed. Note that Releasing m_NPObject does not result in a call to the plugin; it simply releases a reference count on the wrapper object for this HTMLPlugInElement. (The plugin's NPP_Deallocate is invoked when the render tree is destroyed, when PluginView calls PluginPackage::unload.) Thus, it is safe to release m_NPObject in detach, because it can not result in layout or style changes. Also added numberOfLiveNodes() and numberOfLiveDocuments() to window.internals to enable testing. Test: plugins/netscape-dom-access-and-reload.html * WebCore.exp.in: * html/HTMLPlugInElement.cpp: (WebCore::HTMLPlugInElement::detach): * html/HTMLPlugInElement.h: (HTMLPlugInElement): * testing/Internals.cpp: (WebCore): (WebCore::Internals::numberOfLiveNodes): (WebCore::Internals::numberOfLiveDocuments): * testing/Internals.h: (Internals): * testing/Internals.idl: Source/WebKit2: Patch by Dave Michael <dmichael@chromium.org> on 2012-03-23 Reviewed by Eric Seidel and Ryosuke Niwa. * win/WebKit2.def: Export a symbol for InspectorCounters::counterValue * win/WebKit2CFLite.def: Export a symbol for InspectorCounters::counterValue LayoutTests: Patch by Dave Michael <dmichael@chromium.org> on 2012-03-23 Reviewed by Eric Seidel and Ryosuke Niwa. Due to unfortunate copy/paste laziness, the new test was using the same window.sessionStorage as plugins/reloadplugins-and-pages.html, so that if the tests were run in the same session, reloadplugins-and-pages.html would *not* reload as it was supposed to, causing a text mismatch. This patch uses a more appropriate and unique name so that these two tests won't affect each other. * plugins/netscape-dom-access-and-reload-expected.txt: Added. * plugins/netscape-dom-access-and-reload.html: Added. Canonical link: https://commits.webkit.org/99375@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@111890 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-03-23 20:00:10 +00:00
}
}
}
</script>
</head>
<body onload="runTest();">
<p>This page tests reloading a Netscape plug-in that accesses its own DOM element. See https://bugs.webkit.org/show_bug.cgi?id=80428, "HTMLPluginElement is not destroyed on reload or navigation if getNPObject is called".
If it succeeds, you should see SUCCESS below.
<embed id="testPlugin" type="application/x-webkit-test-netscape" width="200" height="200"></embed>
<div id="result">FAILURE</div>
</body>
</html>