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

Side by Side Diff: third_party/WebKit/WebCore/dom/Node.h

Issue 21165: Revert the merge. Mac build is mysteriously broken. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 10 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 | « third_party/WebKit/WebCore/dom/MouseEvent.cpp ('k') | third_party/WebKit/WebCore/dom/Node.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 Apple Inc. All rights reserv ed. 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
11 * 11 *
12 * This library is distributed in the hope that it will be useful, 12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Library General Public License for more details. 15 * Library General Public License for more details.
16 * 16 *
17 * You should have received a copy of the GNU Library General Public License 17 * You should have received a copy of the GNU Library General Public License
18 * along with this library; see the file COPYING.LIB. If not, write to 18 * along with this library; see the file COPYING.LIB. If not, write to
19 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 19 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 * Boston, MA 02110-1301, USA. 20 * Boston, MA 02110-1301, USA.
21 * 21 *
22 */ 22 */
23 23
24 #ifndef Node_h 24 #ifndef Node_h
25 #define Node_h 25 #define Node_h
26 26
27 #include "DocPtr.h" 27 #include "DocPtr.h"
28 #include "EventTarget.h"
29 #include "KURLHash.h" 28 #include "KURLHash.h"
30 #include "PlatformString.h" 29 #include "PlatformString.h"
31 #include "TreeShared.h" 30 #include "TreeShared.h"
32 #include <wtf/Assertions.h> 31 #include <wtf/Assertions.h>
33 #include <wtf/ListHashSet.h> 32 #include <wtf/ListHashSet.h>
34 #include <wtf/OwnPtr.h> 33 #include <wtf/OwnPtr.h>
35 #include <wtf/PassRefPtr.h> 34 #include <wtf/PassRefPtr.h>
36 35
37 namespace WebCore { 36 namespace WebCore {
38 37
39 class AtomicString; 38 class AtomicString;
40 class Attribute;
41 class ContainerNode; 39 class ContainerNode;
42 class Document; 40 class Document;
43 class DynamicNodeList; 41 class DynamicNodeList;
44 class Element; 42 class Element;
45 class Event; 43 class Event;
46 class EventListener; 44 class EventListener;
47 class Frame;
48 class IntRect; 45 class IntRect;
49 class KeyboardEvent; 46 class KeyboardEvent;
50 class NSResolver; 47 class NSResolver;
51 class NamedAttrMap; 48 class NamedAttrMap;
52 class NodeList; 49 class NodeList;
53 class NodeRareData; 50 class NodeRareData;
54 class PlatformKeyboardEvent; 51 class PlatformKeyboardEvent;
55 class PlatformMouseEvent; 52 class PlatformMouseEvent;
56 class PlatformWheelEvent; 53 class PlatformWheelEvent;
57 class QualifiedName; 54 class QualifiedName;
58 class RegisteredEventListener;
59 class RenderArena; 55 class RenderArena;
60 class RenderBox; 56 class RenderBox;
61 class RenderObject; 57 class RenderObject;
62 class RenderStyle; 58 class RenderStyle;
63 class StringBuilder; 59 class StringBuilder;
64 60
65 typedef int ExceptionCode; 61 typedef int ExceptionCode;
66 62
67 typedef Vector<RefPtr<RegisteredEventListener> > RegisteredEventListenerVector;
68
69 enum StyleChangeType { NoStyleChange, InlineStyleChange, FullStyleChange, Animat ionStyleChange }; 63 enum StyleChangeType { NoStyleChange, InlineStyleChange, FullStyleChange, Animat ionStyleChange };
70 64
71 const unsigned short DOCUMENT_POSITION_EQUIVALENT = 0x00; 65 const unsigned short DOCUMENT_POSITION_EQUIVALENT = 0x00;
72 const unsigned short DOCUMENT_POSITION_DISCONNECTED = 0x01; 66 const unsigned short DOCUMENT_POSITION_DISCONNECTED = 0x01;
73 const unsigned short DOCUMENT_POSITION_PRECEDING = 0x02; 67 const unsigned short DOCUMENT_POSITION_PRECEDING = 0x02;
74 const unsigned short DOCUMENT_POSITION_FOLLOWING = 0x04; 68 const unsigned short DOCUMENT_POSITION_FOLLOWING = 0x04;
75 const unsigned short DOCUMENT_POSITION_CONTAINS = 0x08; 69 const unsigned short DOCUMENT_POSITION_CONTAINS = 0x08;
76 const unsigned short DOCUMENT_POSITION_CONTAINED_BY = 0x10; 70 const unsigned short DOCUMENT_POSITION_CONTAINED_BY = 0x10;
77 const unsigned short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20; 71 const unsigned short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20;
78 72
79 // this class implements nodes, which can have a parent but no children: 73 // this class implements nodes, which can have a parent but no children:
80 class Node : public EventTarget, public TreeShared<Node> { 74 class Node : public TreeShared<Node> {
81 friend class Document; 75 friend class Document;
82 public: 76 public:
83 enum NodeType { 77 enum NodeType {
84 ELEMENT_NODE = 1, 78 ELEMENT_NODE = 1,
85 ATTRIBUTE_NODE = 2, 79 ATTRIBUTE_NODE = 2,
86 TEXT_NODE = 3, 80 TEXT_NODE = 3,
87 CDATA_SECTION_NODE = 4, 81 CDATA_SECTION_NODE = 4,
88 ENTITY_REFERENCE_NODE = 5, 82 ENTITY_REFERENCE_NODE = 5,
89 ENTITY_NODE = 6, 83 ENTITY_NODE = 6,
90 PROCESSING_INSTRUCTION_NODE = 7, 84 PROCESSING_INSTRUCTION_NODE = 7,
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 #else 173 #else
180 static bool isWMLElement() { return false; } 174 static bool isWMLElement() { return false; }
181 #endif 175 #endif
182 176
183 virtual bool isStyledElement() const { return false; } 177 virtual bool isStyledElement() const { return false; }
184 virtual bool isFrameOwnerElement() const { return false; } 178 virtual bool isFrameOwnerElement() const { return false; }
185 virtual bool isAttributeNode() const { return false; } 179 virtual bool isAttributeNode() const { return false; }
186 virtual bool isCommentNode() const { return false; } 180 virtual bool isCommentNode() const { return false; }
187 virtual bool isCharacterDataNode() const { return false; } 181 virtual bool isCharacterDataNode() const { return false; }
188 bool isDocumentNode() const; 182 bool isDocumentNode() const;
183 virtual bool isEventTargetNode() const { return false; }
189 virtual bool isShadowNode() const { return false; } 184 virtual bool isShadowNode() const { return false; }
190 virtual Node* shadowParentNode() { return 0; } 185 virtual Node* shadowParentNode() { return 0; }
191 Node* shadowAncestorNode(); 186 Node* shadowAncestorNode();
192 Node* shadowTreeRootNode(); 187 Node* shadowTreeRootNode();
193 bool isInShadowTree(); 188 bool isInShadowTree();
194 189
195 // The node's parent for the purpose of event capture and bubbling. 190 // The node's parent for the purpose of event capture and bubbling.
196 virtual ContainerNode* eventParentNode(); 191 virtual ContainerNode* eventParentNode();
197 192
198 bool isBlockFlow() const; 193 bool isBlockFlow() const;
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
487 PassRefPtr<NodeList> getElementsByTagNameNS(const AtomicString& namespaceURI , const String& localName); 482 PassRefPtr<NodeList> getElementsByTagNameNS(const AtomicString& namespaceURI , const String& localName);
488 PassRefPtr<NodeList> getElementsByName(const String& elementName); 483 PassRefPtr<NodeList> getElementsByName(const String& elementName);
489 PassRefPtr<NodeList> getElementsByClassName(const String& classNames); 484 PassRefPtr<NodeList> getElementsByClassName(const String& classNames);
490 485
491 PassRefPtr<Element> querySelector(const String& selectors, ExceptionCode&); 486 PassRefPtr<Element> querySelector(const String& selectors, ExceptionCode&);
492 PassRefPtr<NodeList> querySelectorAll(const String& selectors, ExceptionCode &); 487 PassRefPtr<NodeList> querySelectorAll(const String& selectors, ExceptionCode &);
493 488
494 unsigned short compareDocumentPosition(Node*); 489 unsigned short compareDocumentPosition(Node*);
495 490
496 protected: 491 protected:
497 virtual void willMoveToNewOwnerDocument(); 492 virtual void willMoveToNewOwnerDocument() { }
498 virtual void didMoveToNewOwnerDocument(); 493 virtual void didMoveToNewOwnerDocument() { }
499 494
500 virtual void addSubresourceAttributeURLs(ListHashSet<KURL>&) const { } 495 virtual void addSubresourceAttributeURLs(ListHashSet<KURL>&) const { }
501 void setTabIndexExplicitly(short); 496 void setTabIndexExplicitly(short);
502 497
503 bool hasRareData() const { return m_hasRareData; } 498 bool hasRareData() const { return m_hasRareData; }
504 499
505 NodeRareData* rareData() const; 500 NodeRareData* rareData() const;
506 NodeRareData* ensureRareData(); 501 NodeRareData* ensureRareData();
507 502
508 public:
509 virtual Node* toNode() { return this; }
510
511 virtual ScriptExecutionContext* scriptExecutionContext() const;
512
513 virtual void addEventListener(const AtomicString& eventType, PassRefPtr<Even tListener>, bool useCapture);
514 virtual void removeEventListener(const AtomicString& eventType, EventListene r*, bool useCapture);
515 virtual bool dispatchEvent(PassRefPtr<Event>, ExceptionCode&);
516 void removeAllEventListeners() { if (hasRareData()) removeAllEventListenersS lowCase(); }
517
518 void setInlineEventListenerForType(const AtomicString& eventType, PassRefPtr <EventListener>);
519 void setInlineEventListenerForTypeAndAttribute(const AtomicString& eventType , Attribute*);
520 void removeInlineEventListenerForType(const AtomicString& eventType);
521 bool dispatchEventForType(const AtomicString& eventType, bool canBubble, boo l cancelable);
522 EventListener* inlineEventListenerForType(const AtomicString& eventType) con st;
523
524 bool dispatchSubtreeModifiedEvent();
525 void dispatchWindowEvent(PassRefPtr<Event>);
526 void dispatchWindowEvent(const AtomicString& eventType, bool canBubble, bool cancelable);
527 bool dispatchUIEvent(const AtomicString& eventType, int detail = 0, PassRefP tr<Event> underlyingEvent = 0);
528 bool dispatchKeyEvent(const PlatformKeyboardEvent&);
529 void dispatchWheelEvent(PlatformWheelEvent&);
530 bool dispatchMouseEvent(const PlatformMouseEvent&, const AtomicString& event Type,
531 int clickCount = 0, Node* relatedTarget = 0);
532 bool dispatchMouseEvent(const AtomicString& eventType, int button, int click Count,
533 int pageX, int pageY, int screenX, int screenY,
534 bool ctrlKey, bool altKey, bool shiftKey, bool metaKey,
535 bool isSimulated = false, Node* relatedTarget = 0, PassRefPtr<Event> und erlyingEvent = 0);
536 void dispatchSimulatedMouseEvent(const AtomicString& eventType, PassRefPtr<E vent> underlyingEvent = 0);
537 void dispatchSimulatedClick(PassRefPtr<Event> underlyingEvent, bool sendMous eEvents = false, bool showPressedLook = true);
538 bool dispatchProgressEvent(const AtomicString &eventType, bool lengthComputa bleArg, unsigned loadedArg, unsigned totalArg);
539 void dispatchStorageEvent(const AtomicString &eventType, const String& key, const String& oldValue, const String& newValue, Frame* source);
540 bool dispatchWebKitAnimationEvent(const AtomicString& eventType, const Strin g& animationName, double elapsedTime);
541 bool dispatchWebKitTransitionEvent(const AtomicString& eventType, const Stri ng& propertyName, double elapsedTime);
542 bool dispatchGenericEvent(PassRefPtr<Event>);
543
544 virtual void handleLocalEvents(Event*, bool useCapture);
545
546 virtual void dispatchFocusEvent();
547 virtual void dispatchBlurEvent();
548
549 /**
550 * Perform the default action for an event e.g. submitting a form
551 */
552 virtual void defaultEventHandler(Event*);
553
554 /**
555 * Used for disabled form elements; if true, prevents mouse events from bein g dispatched
556 * to event listeners, and prevents DOMActivate events from being sent at al l.
557 */
558 virtual bool disabled() const;
559
560 const RegisteredEventListenerVector& eventListeners() const;
561
562 EventListener* onabort() const;
563 void setOnabort(PassRefPtr<EventListener>);
564 EventListener* onblur() const;
565 void setOnblur(PassRefPtr<EventListener>);
566 EventListener* onchange() const;
567 void setOnchange(PassRefPtr<EventListener>);
568 EventListener* onclick() const;
569 void setOnclick(PassRefPtr<EventListener>);
570 EventListener* oncontextmenu() const;
571 void setOncontextmenu(PassRefPtr<EventListener>);
572 EventListener* ondblclick() const;
573 void setOndblclick(PassRefPtr<EventListener>);
574 EventListener* onerror() const;
575 void setOnerror(PassRefPtr<EventListener>);
576 EventListener* onfocus() const;
577 void setOnfocus(PassRefPtr<EventListener>);
578 EventListener* oninput() const;
579 void setOninput(PassRefPtr<EventListener>);
580 EventListener* onkeydown() const;
581 void setOnkeydown(PassRefPtr<EventListener>);
582 EventListener* onkeypress() const;
583 void setOnkeypress(PassRefPtr<EventListener>);
584 EventListener* onkeyup() const;
585 void setOnkeyup(PassRefPtr<EventListener>);
586 EventListener* onload() const;
587 void setOnload(PassRefPtr<EventListener>);
588 EventListener* onmousedown() const;
589 void setOnmousedown(PassRefPtr<EventListener>);
590 EventListener* onmousemove() const;
591 void setOnmousemove(PassRefPtr<EventListener>);
592 EventListener* onmouseout() const;
593 void setOnmouseout(PassRefPtr<EventListener>);
594 EventListener* onmouseover() const;
595 void setOnmouseover(PassRefPtr<EventListener>);
596 EventListener* onmouseup() const;
597 void setOnmouseup(PassRefPtr<EventListener>);
598 EventListener* onmousewheel() const;
599 void setOnmousewheel(PassRefPtr<EventListener>);
600 EventListener* onbeforecut() const;
601 void setOnbeforecut(PassRefPtr<EventListener>);
602 EventListener* oncut() const;
603 void setOncut(PassRefPtr<EventListener>);
604 EventListener* onbeforecopy() const;
605 void setOnbeforecopy(PassRefPtr<EventListener>);
606 EventListener* oncopy() const;
607 void setOncopy(PassRefPtr<EventListener>);
608 EventListener* onbeforepaste() const;
609 void setOnbeforepaste(PassRefPtr<EventListener>);
610 EventListener* onpaste() const;
611 void setOnpaste(PassRefPtr<EventListener>);
612 EventListener* ondragenter() const;
613 void setOndragenter(PassRefPtr<EventListener>);
614 EventListener* ondragover() const;
615 void setOndragover(PassRefPtr<EventListener>);
616 EventListener* ondragleave() const;
617 void setOndragleave(PassRefPtr<EventListener>);
618 EventListener* ondrop() const;
619 void setOndrop(PassRefPtr<EventListener>);
620 EventListener* ondragstart() const;
621 void setOndragstart(PassRefPtr<EventListener>);
622 EventListener* ondrag() const;
623 void setOndrag(PassRefPtr<EventListener>);
624 EventListener* ondragend() const;
625 void setOndragend(PassRefPtr<EventListener>);
626 EventListener* onreset() const;
627 void setOnreset(PassRefPtr<EventListener>);
628 EventListener* onresize() const;
629 void setOnresize(PassRefPtr<EventListener>);
630 EventListener* onscroll() const;
631 void setOnscroll(PassRefPtr<EventListener>);
632 EventListener* onsearch() const;
633 void setOnsearch(PassRefPtr<EventListener>);
634 EventListener* onselect() const;
635 void setOnselect(PassRefPtr<EventListener>);
636 EventListener* onselectstart() const;
637 void setOnselectstart(PassRefPtr<EventListener>);
638 EventListener* onsubmit() const;
639 void setOnsubmit(PassRefPtr<EventListener>);
640 EventListener* onunload() const;
641 void setOnunload(PassRefPtr<EventListener>);
642
643 using TreeShared<Node>::ref;
644 using TreeShared<Node>::deref;
645
646 private:
647 virtual void refEventTarget() { ref(); }
648 virtual void derefEventTarget() { deref(); }
649
650 void removeAllEventListenersSlowCase();
651
652 private: 503 private:
653 virtual NodeRareData* createRareData(); 504 virtual NodeRareData* createRareData();
654 Node* containerChildNode(unsigned index) const; 505 Node* containerChildNode(unsigned index) const;
655 unsigned containerChildNodeCount() const; 506 unsigned containerChildNodeCount() const;
656 Node* containerFirstChild() const; 507 Node* containerFirstChild() const;
657 Node* containerLastChild() const; 508 Node* containerLastChild() const;
658 bool rareDataFocused() const; 509 bool rareDataFocused() const;
659 510
660 virtual RenderStyle* nonRendererRenderStyle() const; 511 virtual RenderStyle* nonRendererRenderStyle() const;
661 512
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
720 571
721 } //namespace 572 } //namespace
722 573
723 #ifndef NDEBUG 574 #ifndef NDEBUG
724 // Outside the WebCore namespace for ease of invocation from gdb. 575 // Outside the WebCore namespace for ease of invocation from gdb.
725 void showTree(const WebCore::Node*); 576 void showTree(const WebCore::Node*);
726 #endif 577 #endif
727 578
728 #endif 579 #endif
729 580
OLDNEW
« no previous file with comments | « third_party/WebKit/WebCore/dom/MouseEvent.cpp ('k') | third_party/WebKit/WebCore/dom/Node.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698