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

Side by Side Diff: third_party/WebKit/Source/core/dom/VisitedLinkState.cpp

Issue 1854423002: ASSERT -> {DCHECK|DCHECK_XX}, ENABLE(ASSERT) -> DCHECK_IS_ON() in dom (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: mark svg/as-image/svg-nested.html crash on win Created 4 years, 8 months 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) 3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com)
4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) 4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com)
5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> 6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org>
7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> 7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org>
8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/)
9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. 9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved.
10 * Copyright (C) Research In Motion Limited 2011. All rights reserved. 10 * Copyright (C) Research In Motion Limited 2011. All rights reserved.
(...skipping 20 matching lines...) Expand all
31 #include "core/HTMLNames.h" 31 #include "core/HTMLNames.h"
32 #include "core/dom/ElementTraversal.h" 32 #include "core/dom/ElementTraversal.h"
33 #include "core/html/HTMLAnchorElement.h" 33 #include "core/html/HTMLAnchorElement.h"
34 #include "core/svg/SVGURIReference.h" 34 #include "core/svg/SVGURIReference.h"
35 #include "public/platform/Platform.h" 35 #include "public/platform/Platform.h"
36 36
37 namespace blink { 37 namespace blink {
38 38
39 static inline const AtomicString& linkAttribute(const Element& element) 39 static inline const AtomicString& linkAttribute(const Element& element)
40 { 40 {
41 ASSERT(element.isLink()); 41 DCHECK(element.isLink());
42 if (element.isHTMLElement()) 42 if (element.isHTMLElement())
43 return element.fastGetAttribute(HTMLNames::hrefAttr); 43 return element.fastGetAttribute(HTMLNames::hrefAttr);
44 ASSERT(element.isSVGElement()); 44 DCHECK(element.isSVGElement());
45 return SVGURIReference::legacyHrefString(toSVGElement(element)); 45 return SVGURIReference::legacyHrefString(toSVGElement(element));
46 } 46 }
47 47
48 static inline LinkHash linkHashForElement(const Element& element, const AtomicSt ring& attribute = AtomicString()) 48 static inline LinkHash linkHashForElement(const Element& element, const AtomicSt ring& attribute = AtomicString())
49 { 49 {
50 ASSERT(attribute.isNull() || linkAttribute(element) == attribute); 50 DCHECK(attribute.isNull() || linkAttribute(element) == attribute);
51 if (isHTMLAnchorElement(element)) 51 if (isHTMLAnchorElement(element))
52 return toHTMLAnchorElement(element).visitedLinkHash(); 52 return toHTMLAnchorElement(element).visitedLinkHash();
53 return visitedLinkHash(element.document().baseURL(), attribute.isNull() ? li nkAttribute(element) : attribute); 53 return visitedLinkHash(element.document().baseURL(), attribute.isNull() ? li nkAttribute(element) : attribute);
54 } 54 }
55 55
56 VisitedLinkState::VisitedLinkState(const Document& document) 56 VisitedLinkState::VisitedLinkState(const Document& document)
57 : m_document(document) 57 : m_document(document)
58 { 58 {
59 } 59 }
60 60
(...skipping 20 matching lines...) Expand all
81 if (node.isLink() && linkHashForElement(toElement(node)) == linkHash) { 81 if (node.isLink() && linkHashForElement(toElement(node)) == linkHash) {
82 toElement(node).pseudoStateChanged(CSSSelector::PseudoLink); 82 toElement(node).pseudoStateChanged(CSSSelector::PseudoLink);
83 toElement(node).pseudoStateChanged(CSSSelector::PseudoVisited); 83 toElement(node).pseudoStateChanged(CSSSelector::PseudoVisited);
84 toElement(node).pseudoStateChanged(CSSSelector::PseudoAnyLink); 84 toElement(node).pseudoStateChanged(CSSSelector::PseudoAnyLink);
85 } 85 }
86 } 86 }
87 } 87 }
88 88
89 EInsideLink VisitedLinkState::determineLinkStateSlowCase(const Element& element) 89 EInsideLink VisitedLinkState::determineLinkStateSlowCase(const Element& element)
90 { 90 {
91 ASSERT(element.isLink()); 91 DCHECK(element.isLink());
92 ASSERT(document().isActive()); 92 DCHECK(document().isActive());
93 ASSERT(document() == element.document()); 93 DCHECK(document() == element.document());
94 94
95 const AtomicString& attribute = linkAttribute(element); 95 const AtomicString& attribute = linkAttribute(element);
96 96
97 if (attribute.isNull()) 97 if (attribute.isNull())
98 return NotInsideLink; // This can happen for <img usemap> 98 return NotInsideLink; // This can happen for <img usemap>
99 99
100 // An empty attribute refers to the document itself which is always 100 // An empty attribute refers to the document itself which is always
101 // visited. It is useful to check this explicitly so that visited 101 // visited. It is useful to check this explicitly so that visited
102 // links can be tested in platform independent manner, without 102 // links can be tested in platform independent manner, without
103 // explicit support in the test harness. 103 // explicit support in the test harness.
104 if (attribute.isEmpty()) 104 if (attribute.isEmpty())
105 return InsideVisitedLink; 105 return InsideVisitedLink;
106 106
107 if (LinkHash hash = linkHashForElement(element, attribute)) { 107 if (LinkHash hash = linkHashForElement(element, attribute)) {
108 m_linksCheckedForVisitedState.add(hash); 108 m_linksCheckedForVisitedState.add(hash);
109 if (Platform::current()->isLinkVisited(hash)) 109 if (Platform::current()->isLinkVisited(hash))
110 return InsideVisitedLink; 110 return InsideVisitedLink;
111 } 111 }
112 112
113 return InsideUnvisitedLink; 113 return InsideUnvisitedLink;
114 } 114 }
115 115
116 DEFINE_TRACE(VisitedLinkState) 116 DEFINE_TRACE(VisitedLinkState)
117 { 117 {
118 visitor->trace(m_document); 118 visitor->trace(m_document);
119 } 119 }
120 120
121 } // namespace blink 121 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/dom/UserActionElementSet.cpp ('k') | third_party/WebKit/Source/core/dom/WeakIdentifierMap.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698