diff options
Diffstat (limited to 'WebCore/html/HTMLAppletElement.cpp')
| -rw-r--r-- | WebCore/html/HTMLAppletElement.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/WebCore/html/HTMLAppletElement.cpp b/WebCore/html/HTMLAppletElement.cpp index 46045d6..f67e9dc 100644 --- a/WebCore/html/HTMLAppletElement.cpp +++ b/WebCore/html/HTMLAppletElement.cpp @@ -28,6 +28,7 @@ #include "HTMLNames.h" #include "MappedAttribute.h" #include "RenderApplet.h" +#include "SecurityOrigin.h" #include "Settings.h" namespace WebCore { @@ -108,9 +109,7 @@ bool HTMLAppletElement::rendererIsNeeded(RenderStyle* style) RenderObject* HTMLAppletElement::createRenderer(RenderArena*, RenderStyle* style) { - Settings* settings = document()->settings(); - - if (settings && settings->isJavaEnabled()) { + if (canEmbedJava()) { HashMap<String, String> args; args.set("code", getAttribute(codeAttr)); @@ -142,8 +141,7 @@ RenderObject* HTMLAppletElement::createRenderer(RenderArena*, RenderStyle* style RenderWidget* HTMLAppletElement::renderWidgetForJSBindings() const { - Settings* settings = document()->settings(); - if (!settings || !settings->isJavaEnabled()) + if (!canEmbedJava()) return 0; RenderApplet* applet = toRenderApplet(renderer()); @@ -153,6 +151,15 @@ RenderWidget* HTMLAppletElement::renderWidgetForJSBindings() const return applet; } +bool HTMLAppletElement::canEmbedJava() const +{ + if (document()->securityOrigin()->isSandboxed(SandboxPlugins)) + return false; + + Settings* settings = document()->settings(); + return settings && settings->isJavaEnabled(); +} + void HTMLAppletElement::finishParsingChildren() { // The parser just reached </applet>, so all the params are available now. |
