diff options
author | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-07 01:15:15 +0000 |
---|---|---|
committer | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-07 01:15:15 +0000 |
commit | bfc484746ae3c89634e1a1cd2edf54ab8f31e1f5 (patch) | |
tree | d9c2fe01b681c7cc753d1872f5e5e8d6fd16c82f /webkit/pending | |
parent | 1ddcb86b486cca69ede1dca9bfdada8dfc49f6c2 (diff) | |
download | chromium_src-bfc484746ae3c89634e1a1cd2edf54ab8f31e1f5.zip chromium_src-bfc484746ae3c89634e1a1cd2edf54ab8f31e1f5.tar.gz chromium_src-bfc484746ae3c89634e1a1cd2edf54ab8f31e1f5.tar.bz2 |
Unfork HTMLPlugInElement.*.
TBR=dglazkov
Review URL: http://codereview.chromium.org/6520
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2924 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/pending')
-rw-r--r-- | webkit/pending/HTMLPlugInElement.cpp | 211 | ||||
-rw-r--r-- | webkit/pending/HTMLPlugInElement.h | 84 |
2 files changed, 0 insertions, 295 deletions
diff --git a/webkit/pending/HTMLPlugInElement.cpp b/webkit/pending/HTMLPlugInElement.cpp deleted file mode 100644 index 19d494e..0000000 --- a/webkit/pending/HTMLPlugInElement.cpp +++ /dev/null @@ -1,211 +0,0 @@ -/** - * This file is part of the DOM implementation for KDE. - * - * Copyright (C) 1999 Lars Knoll (knoll@kde.org) - * (C) 1999 Antti Koivisto (koivisto@kde.org) - * (C) 2000 Stefan Schimanski (1Stein@gmx.de) - * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ -#include "config.h" -#include "HTMLPlugInElement.h" - -#include "CSSPropertyNames.h" -#include "Document.h" -#include "Frame.h" -#include "FrameLoader.h" -#include "FrameTree.h" -#include "HTMLNames.h" -#include "Page.h" -#include "RenderWidget.h" -#include "Settings.h" -#include "Widget.h" -#include "ScriptController.h" - -#if USE(JSC) -#include "runtime.h" -#endif - -#if ENABLE(NETSCAPE_PLUGIN_API) && USE(JSC) -#include "JSNode.h" -#include "NP_jsobject.h" -#include "npruntime_impl.h" -#include "runtime_root.h" -#endif - -namespace WebCore { - -using namespace HTMLNames; - -HTMLPlugInElement::HTMLPlugInElement(const QualifiedName& tagName, Document* doc) - : HTMLFrameOwnerElement(tagName, doc) -#if ENABLE(NETSCAPE_PLUGIN_API) - , m_NPObject(0) -#endif -{ -} - -HTMLPlugInElement::~HTMLPlugInElement() -{ -#if USE(JSC) - ASSERT(!m_instance); // cleared in detach() -#endif - -#if ENABLE(NETSCAPE_PLUGIN_API) - if (m_NPObject) { - // NOTE: mbelshe - can the frame be inaccessible here? If so, - // do we leak objects? - if (document() && document()->frame()) - document()->frame()->script()->functions()->releaseObject(m_NPObject); - m_NPObject = 0; - } -#endif -} - -JSInstance HTMLPlugInElement::getInstance() const -{ - Frame* frame = document()->frame(); - if (!frame) - return JSInstanceHolder::EmptyInstance(); - - // If the host dynamically turns off JavaScript (or Java) we will still return - // the cached allocated Bindings::Instance. Not supporting this edge-case is OK. - if (!m_instance.IsEmpty()) - return m_instance.Get(); - - RenderWidget* renderWidget = renderWidgetForJSBindings(); - if (renderWidget && renderWidget->widget()) - m_instance = frame->script()->createScriptInstanceForWidget(renderWidget->widget()); - - return m_instance.Get(); -} - -void HTMLPlugInElement::detach() -{ - m_instance.Clear(); - HTMLFrameOwnerElement::detach(); -} - -String HTMLPlugInElement::align() const -{ - return getAttribute(alignAttr); -} - -void HTMLPlugInElement::setAlign(const String& value) -{ - setAttribute(alignAttr, value); -} - -String HTMLPlugInElement::height() const -{ - return getAttribute(heightAttr); -} - -void HTMLPlugInElement::setHeight(const String& value) -{ - setAttribute(heightAttr, value); -} - -String HTMLPlugInElement::name() const -{ - return getAttribute(nameAttr); -} - -void HTMLPlugInElement::setName(const String& value) -{ - setAttribute(nameAttr, value); -} - -String HTMLPlugInElement::width() const -{ - return getAttribute(widthAttr); -} - -void HTMLPlugInElement::setWidth(const String& value) -{ - setAttribute(widthAttr, value); -} - -bool HTMLPlugInElement::mapToEntry(const QualifiedName& attrName, MappedAttributeEntry& result) const -{ - if (attrName == widthAttr || - attrName == heightAttr || - attrName == vspaceAttr || - attrName == hspaceAttr) { - result = eUniversal; - return false; - } - - if (attrName == alignAttr) { - result = eReplaced; // Share with <img> since the alignment behavior is the same. - return false; - } - - return HTMLFrameOwnerElement::mapToEntry(attrName, result); -} - -void HTMLPlugInElement::parseMappedAttribute(MappedAttribute* attr) -{ - if (attr->name() == widthAttr) - addCSSLength(attr, CSSPropertyWidth, attr->value()); - else if (attr->name() == heightAttr) - addCSSLength(attr, CSSPropertyHeight, attr->value()); - else if (attr->name() == vspaceAttr) { - addCSSLength(attr, CSSPropertyMarginTop, attr->value()); - addCSSLength(attr, CSSPropertyMarginBottom, attr->value()); - } else if (attr->name() == hspaceAttr) { - addCSSLength(attr, CSSPropertyMarginLeft, attr->value()); - addCSSLength(attr, CSSPropertyMarginRight, attr->value()); - } else if (attr->name() == alignAttr) - addHTMLAlignment(attr); - else - HTMLFrameOwnerElement::parseMappedAttribute(attr); -} - -bool HTMLPlugInElement::checkDTD(const Node* newChild) -{ - return newChild->hasTagName(paramTag) || HTMLFrameOwnerElement::checkDTD(newChild); -} - -void HTMLPlugInElement::defaultEventHandler(Event* event) -{ - RenderObject* r = renderer(); - if (!r || !r->isWidget()) - return; - - if (Widget* widget = static_cast<RenderWidget*>(r)->widget()) - widget->handleEvent(event); -} - -#if ENABLE(NETSCAPE_PLUGIN_API) - -NPObject* HTMLPlugInElement::getNPObject() -{ - ASSERT(document()->frame()); - if (!m_NPObject) - m_NPObject = document()->frame()->script()->createScriptObjectForPluginElement(this); - return m_NPObject; -} - -#endif /* ENABLE(NETSCAPE_PLUGIN_API) */ - -void HTMLPlugInElement::updateWidgetCallback(Node* n) -{ - static_cast<HTMLPlugInElement*>(n)->updateWidget(); -} - -} diff --git a/webkit/pending/HTMLPlugInElement.h b/webkit/pending/HTMLPlugInElement.h deleted file mode 100644 index 599c192..0000000 --- a/webkit/pending/HTMLPlugInElement.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (C) 1999 Lars Knoll (knoll@kde.org) - * (C) 1999 Antti Koivisto (koivisto@kde.org) - * Copyright (C) 2004, 2006, 2007, 2008 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 - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ - -#ifndef HTMLPlugInElement_h -#define HTMLPlugInElement_h - -#include "HTMLFrameOwnerElement.h" -#include "ScriptController.h" - -#if ENABLE(NETSCAPE_PLUGIN_API) -struct NPObject; -#endif - -namespace WebCore { - -class RenderWidget; - -class HTMLPlugInElement : public HTMLFrameOwnerElement { -public: - HTMLPlugInElement(const QualifiedName& tagName, Document*); - virtual ~HTMLPlugInElement(); - - virtual bool mapToEntry(const QualifiedName& attrName, MappedAttributeEntry& result) const; - virtual void parseMappedAttribute(MappedAttribute*); - - virtual HTMLTagStatus endTagRequirement() const { return TagStatusRequired; } - virtual bool checkDTD(const Node* newChild); - - virtual void updateWidget() { } - - String align() const; - void setAlign(const String&); - - String height() const; - void setHeight(const String&); - - String name() const; - void setName(const String&); - - String width() const; - void setWidth(const String&); - - virtual void defaultEventHandler(Event*); - - virtual RenderWidget* renderWidgetForJSBindings() const = 0; - virtual void detach(); - JSInstance getInstance() const; - -#if ENABLE(NETSCAPE_PLUGIN_API) - virtual NPObject* getNPObject(); -#endif - -protected: - static void updateWidgetCallback(Node*); - - AtomicString m_name; - mutable JSInstanceHolder m_instance; -#if ENABLE(NETSCAPE_PLUGIN_API) - NPObject* m_NPObject; -#endif -}; - -} // namespace WebCore - -#endif // HTMLPlugInElement_h |