Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(439)

Unified Diff: sky/engine/core/html/HTMLLinkElement.cpp

Issue 696413002: Remove HTMLLinkElement (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sky/engine/core/html/HTMLLinkElement.h ('k') | sky/engine/core/html/HTMLLinkElement.idl » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sky/engine/core/html/HTMLLinkElement.cpp
diff --git a/sky/engine/core/html/HTMLLinkElement.cpp b/sky/engine/core/html/HTMLLinkElement.cpp
deleted file mode 100644
index 0ecfa86a8cc2c96d88b87c55cdcc8d2eb25eefb1..0000000000000000000000000000000000000000
--- a/sky/engine/core/html/HTMLLinkElement.cpp
+++ /dev/null
@@ -1,334 +0,0 @@
-/*
- * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
- * (C) 1999 Antti Koivisto (koivisto@kde.org)
- * (C) 2001 Dirk Mueller (mueller@kde.org)
- * Copyright (C) 2003, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
- * Copyright (C) 2009 Rob Buis (rwlbuis@gmail.com)
- * Copyright (C) 2011 Google 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.
- */
-
-#include "config.h"
-#include "core/html/HTMLLinkElement.h"
-
-#include "core/HTMLNames.h"
-#include "core/css/MediaList.h"
-#include "core/css/MediaQueryEvaluator.h"
-#include "core/css/StyleSheetContents.h"
-#include "core/css/resolver/StyleResolver.h"
-#include "core/dom/Attribute.h"
-#include "core/dom/Document.h"
-#include "core/dom/StyleEngine.h"
-#include "core/events/Event.h"
-#include "core/events/EventSender.h"
-#include "core/fetch/FetchRequest.h"
-#include "core/fetch/ResourceFetcher.h"
-#include "core/frame/FrameView.h"
-#include "core/frame/LocalFrame.h"
-#include "core/html/imports/LinkImport.h"
-#include "core/html/parser/HTMLParserIdioms.h"
-#include "core/loader/FrameLoaderClient.h"
-#include "core/rendering/style/RenderStyle.h"
-#include "core/rendering/style/StyleInheritedData.h"
-#include "platform/RuntimeEnabledFeatures.h"
-#include "wtf/StdLibExtras.h"
-
-namespace blink {
-
-template <typename CharacterType>
-static void parseSizes(const CharacterType* value, unsigned length, Vector<IntSize>& iconSizes)
-{
- enum State {
- ParseStart,
- ParseWidth,
- ParseHeight
- };
- int width = 0;
- unsigned start = 0;
- unsigned i = 0;
- State state = ParseStart;
- bool invalid = false;
- for (; i < length; ++i) {
- if (state == ParseWidth) {
- if (value[i] == 'x' || value[i] == 'X') {
- if (i == start) {
- invalid = true;
- break;
- }
- width = charactersToInt(value + start, i - start);
- start = i + 1;
- state = ParseHeight;
- } else if (value[i] < '0' || value[i] > '9') {
- invalid = true;
- break;
- }
- } else if (state == ParseHeight) {
- if (value[i] == ' ') {
- if (i == start) {
- invalid = true;
- break;
- }
- int height = charactersToInt(value + start, i - start);
- iconSizes.append(IntSize(width, height));
- start = i + 1;
- state = ParseStart;
- } else if (value[i] < '0' || value[i] > '9') {
- invalid = true;
- break;
- }
- } else if (state == ParseStart) {
- if (value[i] >= '0' && value[i] <= '9') {
- start = i;
- state = ParseWidth;
- } else if (value[i] != ' ') {
- invalid = true;
- break;
- }
- }
- }
- if (invalid || state == ParseWidth || (state == ParseHeight && start == i)) {
- iconSizes.clear();
- return;
- }
- if (state == ParseHeight && i > start) {
- int height = charactersToInt(value + start, i - start);
- iconSizes.append(IntSize(width, height));
- }
-}
-
-static LinkEventSender& linkLoadEventSender()
-{
- DEFINE_STATIC_LOCAL(LinkEventSender, sharedLoadEventSender, (EventTypeNames::load));
- return sharedLoadEventSender;
-}
-
-void HTMLLinkElement::parseSizesAttribute(const AtomicString& value, Vector<IntSize>& iconSizes)
-{
- ASSERT(iconSizes.isEmpty());
- if (value.isEmpty())
- return;
- if (value.is8Bit())
- parseSizes(value.characters8(), value.length(), iconSizes);
- else
- parseSizes(value.characters16(), value.length(), iconSizes);
-}
-
-inline HTMLLinkElement::HTMLLinkElement(Document& document, bool createdByParser)
- : HTMLElement(HTMLNames::linkTag, document)
- , m_sizes(DOMSettableTokenList::create())
- , m_createdByParser(createdByParser)
- , m_isInShadowTree(false)
-{
- ScriptWrappable::init(this);
-}
-
-PassRefPtr<HTMLLinkElement> HTMLLinkElement::create(Document& document, bool createdByParser)
-{
- return adoptRef(new HTMLLinkElement(document, createdByParser));
-}
-
-HTMLLinkElement::~HTMLLinkElement()
-{
-#if !ENABLE(OILPAN)
- m_link.clear();
-
- if (inDocument())
- document().styleEngine()->removeStyleSheetCandidateNode(this);
-#endif
-
- linkLoadEventSender().cancelEvent(this);
-}
-
-void HTMLLinkElement::parseAttribute(const QualifiedName& name, const AtomicString& value)
-{
- if (name == HTMLNames::relAttr) {
- m_relAttribute = LinkRelAttribute(value);
- process();
- } else if (name == HTMLNames::hrefAttr) {
- process();
- } else if (name == HTMLNames::typeAttr) {
- m_type = value;
- process();
- } else if (name == HTMLNames::sizesAttr) {
- m_sizes->setValue(value);
- parseSizesAttribute(value, m_iconSizes);
- process();
- } else if (name == HTMLNames::mediaAttr) {
- m_media = value.string().lower();
- process();
- } else {
- HTMLElement::parseAttribute(name, value);
- }
-}
-
-LinkResource* HTMLLinkElement::linkResourceToProcess()
-{
- bool visible = inDocument() && !m_isInShadowTree;
- if (!visible)
- return 0;
-
- if (!m_link && m_relAttribute.isImport())
- m_link = LinkImport::create(this);
-
- return m_link.get();
-}
-
-LinkImport* HTMLLinkElement::linkImport() const
-{
- if (!m_link || m_link->type() != LinkResource::Import)
- return 0;
- return static_cast<LinkImport*>(m_link.get());
-}
-
-Document* HTMLLinkElement::import() const
-{
- if (LinkImport* link = linkImport())
- return link->importedDocument();
- return 0;
-}
-
-void HTMLLinkElement::process()
-{
- if (LinkResource* link = linkResourceToProcess())
- link->process();
-}
-
-Node::InsertionNotificationRequest HTMLLinkElement::insertedInto(ContainerNode* insertionPoint)
-{
- HTMLElement::insertedInto(insertionPoint);
- if (!insertionPoint->inDocument())
- return InsertionDone;
-
- m_isInShadowTree = isInShadowTree();
- if (m_isInShadowTree)
- return InsertionDone;
-
- document().styleEngine()->addStyleSheetCandidateNode(this, m_createdByParser);
-
- process();
-
- if (m_link)
- m_link->ownerInserted();
-
- return InsertionDone;
-}
-
-void HTMLLinkElement::removedFrom(ContainerNode* insertionPoint)
-{
- HTMLElement::removedFrom(insertionPoint);
- if (!insertionPoint->inDocument())
- return;
-
- if (m_isInShadowTree)
- return;
- document().styleEngine()->removeStyleSheetCandidateNode(this);
-
- RefPtr<StyleSheet> removedSheet = sheet();
-
- if (m_link)
- m_link->ownerRemoved();
-
- document().removedStyleSheet(removedSheet.get());
-}
-
-void HTMLLinkElement::finishParsingChildren()
-{
- m_createdByParser = false;
- HTMLElement::finishParsingChildren();
-}
-
-void HTMLLinkElement::dispatchPendingLoadEvents()
-{
- linkLoadEventSender().dispatchPendingEvents();
-}
-
-void HTMLLinkElement::dispatchPendingEvent(LinkEventSender* eventSender)
-{
- ASSERT_UNUSED(eventSender, eventSender == &linkLoadEventSender());
- ASSERT(m_link);
- // FIXME(sky): Remove
-}
-
-void HTMLLinkElement::scheduleEvent()
-{
- linkLoadEventSender().dispatchEventSoon(this);
-}
-
-bool HTMLLinkElement::isURLAttribute(const Attribute& attribute) const
-{
- return attribute.name().localName() == HTMLNames::hrefAttr || HTMLElement::isURLAttribute(attribute);
-}
-
-bool HTMLLinkElement::hasLegalLinkAttribute(const QualifiedName& name) const
-{
- return name == HTMLNames::hrefAttr || HTMLElement::hasLegalLinkAttribute(name);
-}
-
-const QualifiedName& HTMLLinkElement::subResourceAttributeName() const
-{
- // If the link element is not css, ignore it.
- if (equalIgnoringCase(getAttribute(HTMLNames::typeAttr), "text/css")) {
- // FIXME: Add support for extracting links of sub-resources which
- // are inside style-sheet such as @import, @font-face, url(), etc.
- return HTMLNames::hrefAttr;
- }
- return HTMLElement::subResourceAttributeName();
-}
-
-KURL HTMLLinkElement::href() const
-{
- return document().completeURL(getAttribute(HTMLNames::hrefAttr));
-}
-
-const AtomicString& HTMLLinkElement::rel() const
-{
- return getAttribute(HTMLNames::relAttr);
-}
-
-const AtomicString& HTMLLinkElement::type() const
-{
- return getAttribute(HTMLNames::typeAttr);
-}
-
-bool HTMLLinkElement::async() const
-{
- return hasAttribute(HTMLNames::asyncAttr);
-}
-
-String HTMLLinkElement::as() const
-{
- return stripLeadingAndTrailingHTMLSpaces(getAttribute(HTMLNames::asAttr));
-}
-
-const Vector<IntSize>& HTMLLinkElement::iconSizes() const
-{
- return m_iconSizes;
-}
-
-DOMSettableTokenList* HTMLLinkElement::sizes() const
-{
- return m_sizes.get();
-}
-
-void HTMLLinkElement::trace(Visitor* visitor)
-{
- visitor->trace(m_link);
- visitor->trace(m_sizes);
- HTMLElement::trace(visitor);
-}
-
-} // namespace blink
« no previous file with comments | « sky/engine/core/html/HTMLLinkElement.h ('k') | sky/engine/core/html/HTMLLinkElement.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698