haikuwebkit/LayoutTests/plugins/plugin-document-willSendReq...

16 lines
456 B
HTML
Raw Permalink Normal View History

REGRESSION (r66129): Loading full-frame .swf file crashes with flash blocker extension enabled <https://bugs.webkit.org/show_bug.cgi?id=46773> <rdar://problem/8390975> Reviewed by Brady Eidson. WebCore: After r66129, start scripts were run on plugin documents, and cancelling the load of a plugin document could cause Safari to crash. If a plugin load on an initial document is cancelled, we cancel the main resource load (where the main resource is the plugin), and if the load is restarted and allowed, we don't go through the manual loading path like we do on the initial load of a plugin in a plugin document. Tests: plugins/plugin-document-load-prevented-userscript.html plugins/plugin-document-willSendRequest-null.html * html/HTMLEmbedElement.cpp: (WebCore::HTMLEmbedElement::updateWidget): If the plugin load was cancelled, and this is in a plugin document, call a function on PluginDocument that cancels the main resource load, and sets a plugin document flag. * html/PluginDocument.cpp: (WebCore::PluginDocumentParser::appendBytes): Null check the widget's renderer, because it could be null if the load was cancelled. (WebCore::PluginDocument::PluginDocument): Initialize the new variable. (WebCore::PluginDocument::cancelManualPluginLoad): Cancel the main resource load of the plugin document (which is a plugin in the case of a plugin document). * html/PluginDocument.h: (WebCore::PluginDocument::shouldLoadPluginManually): Returns whether or not we should load the plugin manually. (WebCore::PluginDocument::setShouldLoadPluginManually): Set whether or not we should load the plugin manually. (WebCore::toPluginDocument): * loader/SubframeLoader.cpp: (WebCore::SubframeLoader::loadPlugin): Check if we should load the plugin manually according to the plugin document. LayoutTests: Add tests testing how plugin documents behave when the loading of their plugins are cancelled. * plugins/plugin-document-load-prevented-userscript-expected.txt: Added. * plugins/plugin-document-load-prevented-userscript.html: Added. Tests cancelling the load of a plugin in a plugin document using beforeload and preventDefault. * plugins/plugin-document-willSendRequest-null-expected.txt: Added. * plugins/plugin-document-willSendRequest-null.html: Added. Tests cancelling the load of a plugin in a plugin document by having willSendRequest return null. Canonical link: https://commits.webkit.org/59354@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@68702 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2010-09-29 22:59:49 +00:00
<html>
<head>
<script>
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.setWillSendRequestReturnsNull(true);
REGRESSION (r66129): Loading full-frame .swf file crashes with flash blocker extension enabled <https://bugs.webkit.org/show_bug.cgi?id=46773> <rdar://problem/8390975> Reviewed by Brady Eidson. WebCore: After r66129, start scripts were run on plugin documents, and cancelling the load of a plugin document could cause Safari to crash. If a plugin load on an initial document is cancelled, we cancel the main resource load (where the main resource is the plugin), and if the load is restarted and allowed, we don't go through the manual loading path like we do on the initial load of a plugin in a plugin document. Tests: plugins/plugin-document-load-prevented-userscript.html plugins/plugin-document-willSendRequest-null.html * html/HTMLEmbedElement.cpp: (WebCore::HTMLEmbedElement::updateWidget): If the plugin load was cancelled, and this is in a plugin document, call a function on PluginDocument that cancels the main resource load, and sets a plugin document flag. * html/PluginDocument.cpp: (WebCore::PluginDocumentParser::appendBytes): Null check the widget's renderer, because it could be null if the load was cancelled. (WebCore::PluginDocument::PluginDocument): Initialize the new variable. (WebCore::PluginDocument::cancelManualPluginLoad): Cancel the main resource load of the plugin document (which is a plugin in the case of a plugin document). * html/PluginDocument.h: (WebCore::PluginDocument::shouldLoadPluginManually): Returns whether or not we should load the plugin manually. (WebCore::PluginDocument::setShouldLoadPluginManually): Set whether or not we should load the plugin manually. (WebCore::toPluginDocument): * loader/SubframeLoader.cpp: (WebCore::SubframeLoader::loadPlugin): Check if we should load the plugin manually according to the plugin document. LayoutTests: Add tests testing how plugin documents behave when the loading of their plugins are cancelled. * plugins/plugin-document-load-prevented-userscript-expected.txt: Added. * plugins/plugin-document-load-prevented-userscript.html: Added. Tests cancelling the load of a plugin in a plugin document using beforeload and preventDefault. * plugins/plugin-document-willSendRequest-null-expected.txt: Added. * plugins/plugin-document-willSendRequest-null.html: Added. Tests cancelling the load of a plugin in a plugin document by having willSendRequest return null. Canonical link: https://commits.webkit.org/59354@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@68702 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2010-09-29 22:59:49 +00:00
}
</script>
</head>
<body>
This tests https://bugs.webkit.org/show_bug.cgi?id=46773 by having willSendRequest on the
plugin document return null. If there is no crash, the test passed.
<iframe src="resources/simple_blank.swf"></iframe>
</body>
</html>