Bug 44023

Summary: HTML applet elements should fire a 'beforeload' event
Product: WebKit Reporter: Marc Hoyois <marc.hoyois>
Component: DOMAssignee: Nobody <webkit-unassigned>
Status: RESOLVED INVALID    
Severity: Enhancement CC: achristensen, aestes, ahmad.saleem792, ap, aroben, bfulgham, emacemac7, hyatt, joachim, rniwa
Priority: P4 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
URL: http://java.sun.com/applets/jdk/1.4/demo/applets/ArcTest/example1.html
Attachments:
Description Flags
Safari extension that preventDefault()s any beforeload event none

Description Marc Hoyois 2010-08-14 23:22:48 PDT
Created attachment 64439 [details]
Safari extension that preventDefault()s any beforeload event

Overview:
HTML <applet> elements do not fire a 'beforeload' event before the Java resource is fetched and executed.

Steps to reproduce:
1. Install the attached extension. It only has the following injected script:

document.addEventListener('beforeload', function(event) {event.preventDefault();}, true);

2. Navigate to any page with an <applet> tag, such as

http://java.sun.com/applets/jdk/1.4/demo/applets/ArcTest/example1.html

Actual result:
The Java applet loads and runs normally.

Desirable result:
The Java plugin should not run at all.

Additional information:
This would allow a Safari extension to conditionally prevent
the Java plugin from running, as is already possible with all other plugins.
Comment 1 Adam Roben (:aroben) 2010-08-16 07:29:41 PDT
<rdar://problem/8313471>
Comment 2 Ahmad Saleem 2022-09-16 23:39:09 PDT
rniwa & ap - I don't think HTMLAppletElement is supported by Safari and only reference is this in GTK:

https://github.com/WebKit/WebKit/blob/8afe31a018b11741abdf9b4d5bb973d7c1d9ff05/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElement.cpp

Is this bug still valid? Thanks!
Comment 3 Alexey Proskuryakov 2022-09-18 16:46:51 PDT
We still have a lot more code for the applet element, not just the Gtk file that you point out.

Some of it is required per HTML5, as the spec requires processing it as a special case to prevent breaking legacy documents. But some looks like cruft that just hasn't been cleaned up.

Anyway, it certainly won't be loading any resources any more.