summaryrefslogtreecommitdiffstats
path: root/WebCore/html/HTMLAppletElement.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/html/HTMLAppletElement.cpp')
-rw-r--r--WebCore/html/HTMLAppletElement.cpp17
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.