15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* 25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * (C) 1999 Antti Koivisto (koivisto@kde.org) 45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * (C) 2000 Simon Hausmann <hausmann@kde.org> 55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2004, 2006, 2008, 2009 Apple Inc. All rights reserved. 65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * This library is free software; you can redistribute it and/or 85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * modify it under the terms of the GNU Library General Public 95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * License as published by the Free Software Foundation; either 105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * version 2 of the License, or (at your option) any later version. 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * This library is distributed in the hope that it will be useful, 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * but WITHOUT ANY WARRANTY; without even the implied warranty of 145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Library General Public License for more details. 165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * You should have received a copy of the GNU Library General Public License 185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * along with this library; see the file COPYING.LIB. If not, write to 195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Boston, MA 02110-1301, USA. 215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#ifndef HTMLFrameElementBase_h 255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define HTMLFrameElementBase_h 265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2753e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/html/HTMLFrameOwnerElement.h" 281e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "platform/scroll/ScrollTypes.h" 295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 30c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink { 315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class HTMLFrameElementBase : public HTMLFrameOwnerElement { 335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)public: 3409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual ScrollbarMode scrollingMode() const OVERRIDE FINAL { return m_scrolling; } 3502772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch 36c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) int marginWidth() const { return m_marginWidth; } 37c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) int marginHeight() const { return m_marginHeight; } 385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool canContainRangeEndPoint() const OVERRIDE FINAL { return false; } 405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)protected: 428abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) HTMLFrameElementBase(const QualifiedName&, Document&); 435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool isURLAllowed() const; 455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 46926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERRIDE; 475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) virtual InsertionNotificationRequest insertedInto(ContainerNode*) OVERRIDE; 4809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void didNotifySubtreeInsertionsToDocument() OVERRIDE FINAL; 49521d96ec04ace82590870fb04353ec4f82bb150fTorne (Richard Coles) virtual void attach(const AttachContext& = AttachContext()) OVERRIDE; 505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 51a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch // FIXME: Remove this method once we have input routing in the browser 52a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch // process. See http://crbug.com/339659. 53a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch virtual void defaultEventHandler(Event*) OVERRIDE; 54a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch 555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)private: 5609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool supportsFocus() const OVERRIDE FINAL; 5709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void setFocus(bool) OVERRIDE FINAL; 5802772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch 5909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool isURLAttribute(const Attribute&) const OVERRIDE FINAL; 6043e7502580f146aa5b3db8267ba6dbb5c733a489Torne (Richard Coles) virtual bool hasLegalLinkAttribute(const QualifiedName&) const OVERRIDE FINAL; 6109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool isHTMLContentAttribute(const Attribute&) const OVERRIDE FINAL; 6253e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) 6309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool areAuthorShadowsAllowed() const OVERRIDE FINAL { return false; } 64926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 65aafa69cb17c9d6606c07663ade5f81388a2c5986Ben Murdoch void setLocation(const String&); 665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void setNameAndOpenURL(); 6781a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) void openURL(bool lockBackForwardList = true); 685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) AtomicString m_URL; 705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) AtomicString m_frameName; 715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ScrollbarMode m_scrolling; 735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) int m_marginWidth; 755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) int m_marginHeight; 765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}; 775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 7843e7502580f146aa5b3db8267ba6dbb5c733a489Torne (Richard Coles)inline bool isHTMLFrameElementBase(const HTMLElement& element) 79e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles){ 8043e7502580f146aa5b3db8267ba6dbb5c733a489Torne (Richard Coles) return isHTMLFrameElement(element) || isHTMLIFrameElement(element); 81e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles)} 82e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) 8343e7502580f146aa5b3db8267ba6dbb5c733a489Torne (Richard Coles)DEFINE_HTMLELEMENT_TYPE_CASTS_WITH_FUNCTION(HTMLFrameElementBase); 84f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles) 85c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink 865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#endif // HTMLFrameElementBase_h 88