diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-07-30 11:37:48 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-07-30 11:38:52 +0200 |
commit | 89e2486a48b739f8d771d69ede5a6a1b244a10fc (patch) | |
tree | 503b1a7812cf97d93704c32437eb5f62dc1a1ff9 /Source/WebCore/rendering/RenderApplet.cpp | |
parent | 625f028249cb37c55bbbd153f3902afd0b0756d9 (diff) | |
download | qtwebkit-89e2486a48b739f8d771d69ede5a6a1b244a10fc.tar.gz |
Imported WebKit commit 0282df8ca7c11d8c8a66ea18543695c69f545a27 (http://svn.webkit.org/repository/webkit/trunk@124002)
New snapshot with prospective Mountain Lion build fix
Diffstat (limited to 'Source/WebCore/rendering/RenderApplet.cpp')
-rw-r--r-- | Source/WebCore/rendering/RenderApplet.cpp | 77 |
1 files changed, 3 insertions, 74 deletions
diff --git a/Source/WebCore/rendering/RenderApplet.cpp b/Source/WebCore/rendering/RenderApplet.cpp index 1b8b75e17..120808420 100644 --- a/Source/WebCore/rendering/RenderApplet.cpp +++ b/Source/WebCore/rendering/RenderApplet.cpp @@ -1,6 +1,6 @@ /* * Copyright (C) 1999 Lars Knoll (knoll@kde.org) - * Copyright (C) 2003, 2006, 2009 Apple Inc. All rights reserved. + * Copyright (C) 2003, 2006, 2009, 2012 Apple Inc. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -22,20 +22,12 @@ #include "config.h" #include "RenderApplet.h" -#include "Frame.h" #include "HTMLAppletElement.h" -#include "HTMLNames.h" -#include "HTMLParamElement.h" -#include "PluginViewBase.h" -#include "Widget.h" namespace WebCore { -using namespace HTMLNames; - -RenderApplet::RenderApplet(HTMLAppletElement* applet, const HashMap<String, String>& args) - : RenderWidget(applet) - , m_args(args) +RenderApplet::RenderApplet(HTMLAppletElement* applet) + : RenderEmbeddedObject(applet) { setInline(true); } @@ -44,67 +36,4 @@ RenderApplet::~RenderApplet() { } -IntSize RenderApplet::intrinsicSize() const -{ - // FIXME: This doesn't make sense. We can't just start returning - // a different size once we've created the widget and expect - // layout and sizing to be correct. We should remove this and - // pass the appropriate intrinsic size in the constructor. - return widget() ? IntSize(50, 50) : IntSize(150, 150); -} - -void RenderApplet::createWidgetIfNecessary() -{ - HTMLAppletElement* element = static_cast<HTMLAppletElement*>(node()); - if (widget() || !element->isFinishedParsingChildren()) - return; - - // FIXME: Java applets can't be resized (this is a bug in Apple's Java implementation). - // In order to work around this problem and have a correct size from the start, we will - // use fixed widths/heights from the style system when we can, since the widget might - // not have an accurate m_width/m_height. - LayoutUnit contentWidth = style()->width().isFixed() ? LayoutUnit(style()->width().value()) : - width() - borderAndPaddingWidth(); - LayoutUnit contentHeight = style()->height().isFixed() ? LayoutUnit(style()->height().value()) : - height() - borderAndPaddingHeight(); - for (Node* child = element->firstChild(); child; child = child->nextSibling()) { - if (child->hasTagName(paramTag)) { - HTMLParamElement* p = static_cast<HTMLParamElement*>(child); - if (!p->name().isEmpty()) - m_args.set(p->name(), p->value()); - } - } - - Frame* frame = this->frame(); - ASSERT(frame); - setWidget(frame->loader()->subframeLoader()->createJavaAppletWidget(LayoutSize(contentWidth, contentHeight), element, m_args)); -} - -void RenderApplet::layout() -{ - ASSERT(needsLayout()); - - computeLogicalWidth(); - computeLogicalHeight(); - - // The applet's widget gets created lazily upon first layout. - createWidgetIfNecessary(); - setNeedsLayout(false); -} - -#if USE(ACCELERATED_COMPOSITING) -bool RenderApplet::requiresLayer() const -{ - if (RenderWidget::requiresLayer()) - return true; - - return allowsAcceleratedCompositing(); -} - -bool RenderApplet::allowsAcceleratedCompositing() const -{ - return widget() && widget()->isPluginViewBase() && static_cast<PluginViewBase*>(widget())->platformLayer(); -} -#endif - } // namespace WebCore |