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

Side by Side Diff: Source/core/dom/Node.cpp

Issue 23717008: Remove useless null checks from Node::document() call sites (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/dom/Node.h ('k') | Source/core/dom/NodeIterator.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2001 Dirk Mueller (mueller@kde.org) 4 * (C) 2001 Dirk Mueller (mueller@kde.org)
5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r ights reserved. 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r ights reserved.
6 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) 6 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
7 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 7 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 670 matching lines...) Expand 10 before | Expand all | Expand 10 after
681 return true; 681 return true;
682 682
683 // FIXME: Respect editableLevel for ARIA editable elements. 683 // FIXME: Respect editableLevel for ARIA editable elements.
684 if (editableLevel == RichlyEditable) 684 if (editableLevel == RichlyEditable)
685 return false; 685 return false;
686 686
687 ASSERT(document()); 687 ASSERT(document());
688 ASSERT(AXObjectCache::accessibilityEnabled()); 688 ASSERT(AXObjectCache::accessibilityEnabled());
689 ASSERT(document()->existingAXObjectCache()); 689 ASSERT(document()->existingAXObjectCache());
690 690
691 if (document()) { 691 if (AXObjectCache* cache = document()->existingAXObjectCache())
692 if (AXObjectCache* cache = document()->existingAXObjectCache()) 692 return cache->rootAXEditableElement(this);
693 return cache->rootAXEditableElement(this);
694 }
695 693
696 return false; 694 return false;
697 } 695 }
698 696
699 bool Node::shouldUseInputMethod() 697 bool Node::shouldUseInputMethod()
700 { 698 {
701 return isContentEditable(UserSelectAllIsAlwaysNonEditable); 699 return isContentEditable(UserSelectAllIsAlwaysNonEditable);
702 } 700 }
703 701
704 RenderBox* Node::renderBox() const 702 RenderBox* Node::renderBox() const
(...skipping 698 matching lines...) Expand 10 before | Expand all | Expand 10 after
1403 es.throwDOMException(SyntaxError); 1401 es.throwDOMException(SyntaxError);
1404 return 0; 1402 return 0;
1405 } 1403 }
1406 1404
1407 SelectorQuery* selectorQuery = document()->selectorQueryCache()->add(selecto rs, document(), es); 1405 SelectorQuery* selectorQuery = document()->selectorQueryCache()->add(selecto rs, document(), es);
1408 if (!selectorQuery) 1406 if (!selectorQuery)
1409 return 0; 1407 return 0;
1410 return selectorQuery->queryAll(this); 1408 return selectorQuery->queryAll(this);
1411 } 1409 }
1412 1410
1413 Document *Node::ownerDocument() const 1411 Document* Node::ownerDocument() const
1414 { 1412 {
1415 Document *doc = document(); 1413 Document* doc = document();
1416 return doc == this ? 0 : doc; 1414 return doc == this ? 0 : doc;
1417 } 1415 }
1418 1416
1419 KURL Node::baseURI() const 1417 KURL Node::baseURI() const
1420 { 1418 {
1421 return parentNode() ? parentNode()->baseURI() : KURL(); 1419 return parentNode() ? parentNode()->baseURI() : KURL();
1422 } 1420 }
1423 1421
1424 bool Node::isEqualNode(Node* other) const 1422 bool Node::isEqualNode(Node* other) const
1425 { 1423 {
(...skipping 629 matching lines...) Expand 10 before | Expand all | Expand 10 after
2055 result = "<none>"; 2053 result = "<none>";
2056 else 2054 else
2057 result = s; 2055 result = s;
2058 2056
2059 strncpy(buffer, result.utf8().data(), length - 1); 2057 strncpy(buffer, result.utf8().data(), length - 1);
2060 } 2058 }
2061 2059
2062 static ContainerNode* parentOrShadowHostOrFrameOwner(const Node* node) 2060 static ContainerNode* parentOrShadowHostOrFrameOwner(const Node* node)
2063 { 2061 {
2064 ContainerNode* parent = node->parentOrShadowHostNode(); 2062 ContainerNode* parent = node->parentOrShadowHostNode();
2065 if (!parent && node->document() && node->document()->frame()) 2063 if (!parent && node->document()->frame())
2066 parent = node->document()->frame()->ownerElement(); 2064 parent = node->document()->frame()->ownerElement();
2067 return parent; 2065 return parent;
2068 } 2066 }
2069 2067
2070 static void showSubTreeAcrossFrame(const Node* node, const Node* markedNode, con st String& indent) 2068 static void showSubTreeAcrossFrame(const Node* node, const Node* markedNode, con st String& indent)
2071 { 2069 {
2072 if (node == markedNode) 2070 if (node == markedNode)
2073 fputs("*", stderr); 2071 fputs("*", stderr);
2074 fputs(indent.utf8().data(), stderr); 2072 fputs(indent.utf8().data(), stderr);
2075 node->showNode(); 2073 node->showNode();
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
2186 document()->addMutationObserverTypes((*iter)->mutationTypes()); 2184 document()->addMutationObserverTypes((*iter)->mutationTypes());
2187 } 2185 }
2188 } 2186 }
2189 } 2187 }
2190 2188
2191 static inline bool tryAddEventListener(Node* targetNode, const AtomicString& eve ntType, PassRefPtr<EventListener> listener, bool useCapture) 2189 static inline bool tryAddEventListener(Node* targetNode, const AtomicString& eve ntType, PassRefPtr<EventListener> listener, bool useCapture)
2192 { 2190 {
2193 if (!targetNode->EventTarget::addEventListener(eventType, listener, useCaptu re)) 2191 if (!targetNode->EventTarget::addEventListener(eventType, listener, useCaptu re))
2194 return false; 2192 return false;
2195 2193
2196 if (Document* document = targetNode->document()) { 2194 Document* document = targetNode->document();
2197 document->addListenerTypeIfNeeded(eventType); 2195 document->addListenerTypeIfNeeded(eventType);
2198 if (eventType == eventNames().wheelEvent || eventType == eventNames().mo usewheelEvent) 2196 if (eventType == eventNames().wheelEvent || eventType == eventNames().mousew heelEvent)
2199 document->didAddWheelEventHandler(); 2197 document->didAddWheelEventHandler();
2200 else if (eventNames().isTouchEventType(eventType)) 2198 else if (eventNames().isTouchEventType(eventType))
2201 document->didAddTouchEventHandler(targetNode); 2199 document->didAddTouchEventHandler(targetNode);
2202 }
2203 2200
2204 return true; 2201 return true;
2205 } 2202 }
2206 2203
2207 bool Node::addEventListener(const AtomicString& eventType, PassRefPtr<EventListe ner> listener, bool useCapture) 2204 bool Node::addEventListener(const AtomicString& eventType, PassRefPtr<EventListe ner> listener, bool useCapture)
2208 { 2205 {
2209 return tryAddEventListener(this, eventType, listener, useCapture); 2206 return tryAddEventListener(this, eventType, listener, useCapture);
2210 } 2207 }
2211 2208
2212 static inline bool tryRemoveEventListener(Node* targetNode, const AtomicString& eventType, EventListener* listener, bool useCapture) 2209 static inline bool tryRemoveEventListener(Node* targetNode, const AtomicString& eventType, EventListener* listener, bool useCapture)
2213 { 2210 {
2214 if (!targetNode->EventTarget::removeEventListener(eventType, listener, useCa pture)) 2211 if (!targetNode->EventTarget::removeEventListener(eventType, listener, useCa pture))
2215 return false; 2212 return false;
2216 2213
2217 // FIXME: Notify Document that the listener has vanished. We need to keep tr ack of a number of 2214 // FIXME: Notify Document that the listener has vanished. We need to keep tr ack of a number of
2218 // listeners for each type, not just a bool - see https://bugs.webkit.org/sh ow_bug.cgi?id=33861 2215 // listeners for each type, not just a bool - see https://bugs.webkit.org/sh ow_bug.cgi?id=33861
2219 if (Document* document = targetNode->document()) { 2216 Document* document = targetNode->document();
2220 if (eventType == eventNames().wheelEvent || eventType == eventNames().mo usewheelEvent) 2217 if (eventType == eventNames().wheelEvent || eventType == eventNames().mousew heelEvent)
2221 document->didRemoveWheelEventHandler(); 2218 document->didRemoveWheelEventHandler();
2222 else if (eventNames().isTouchEventType(eventType)) 2219 else if (eventNames().isTouchEventType(eventType))
2223 document->didRemoveTouchEventHandler(targetNode); 2220 document->didRemoveTouchEventHandler(targetNode);
2224 }
2225 2221
2226 return true; 2222 return true;
2227 } 2223 }
2228 2224
2229 bool Node::removeEventListener(const AtomicString& eventType, EventListener* lis tener, bool useCapture) 2225 bool Node::removeEventListener(const AtomicString& eventType, EventListener* lis tener, bool useCapture)
2230 { 2226 {
2231 return tryRemoveEventListener(this, eventType, listener, useCapture); 2227 return tryRemoveEventListener(this, eventType, listener, useCapture);
2232 } 2228 }
2233 2229
2234 typedef HashMap<Node*, OwnPtr<EventTargetData> > EventTargetDataMap; 2230 typedef HashMap<Node*, OwnPtr<EventTargetData> > EventTargetDataMap;
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after
2686 for (Node* child = firstChild(); child; child = child->nextSibling()) { 2682 for (Node* child = firstChild(); child; child = child->nextSibling()) {
2687 if (child->hasTagName(HTMLNames::styleTag) && toHTMLStyleElement(child)- >isRegisteredAsScoped()) 2683 if (child->hasTagName(HTMLNames::styleTag) && toHTMLStyleElement(child)- >isRegisteredAsScoped())
2688 count++; 2684 count++;
2689 } 2685 }
2690 2686
2691 return count; 2687 return count;
2692 } 2688 }
2693 2689
2694 void Node::setFocus(bool flag) 2690 void Node::setFocus(bool flag)
2695 { 2691 {
2696 if (Document* document = this->document()) 2692 document()->userActionElements().setFocused(this, flag);
2697 document->userActionElements().setFocused(this, flag);
2698 } 2693 }
2699 2694
2700 void Node::setActive(bool flag, bool) 2695 void Node::setActive(bool flag, bool)
2701 { 2696 {
2702 if (Document* document = this->document()) 2697 document()->userActionElements().setActive(this, flag);
2703 document->userActionElements().setActive(this, flag);
2704 } 2698 }
2705 2699
2706 void Node::setHovered(bool flag) 2700 void Node::setHovered(bool flag)
2707 { 2701 {
2708 if (Document* document = this->document()) 2702 document()->userActionElements().setHovered(this, flag);
2709 document->userActionElements().setHovered(this, flag);
2710 } 2703 }
2711 2704
2712 bool Node::isUserActionElementActive() const 2705 bool Node::isUserActionElementActive() const
2713 { 2706 {
2714 ASSERT(isUserActionElement()); 2707 ASSERT(isUserActionElement());
2715 return document()->userActionElements().isActive(this); 2708 return document()->userActionElements().isActive(this);
2716 } 2709 }
2717 2710
2718 bool Node::isUserActionElementInActiveChain() const 2711 bool Node::isUserActionElementInActiveChain() const
2719 { 2712 {
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
2773 node->showTreeForThis(); 2766 node->showTreeForThis();
2774 } 2767 }
2775 2768
2776 void showNodePath(const WebCore::Node* node) 2769 void showNodePath(const WebCore::Node* node)
2777 { 2770 {
2778 if (node) 2771 if (node)
2779 node->showNodePathForThis(); 2772 node->showNodePathForThis();
2780 } 2773 }
2781 2774
2782 #endif 2775 #endif
OLDNEW
« no previous file with comments | « Source/core/dom/Node.h ('k') | Source/core/dom/NodeIterator.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698