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

Side by Side Diff: Source/core/html/HTMLInputElement.cpp

Issue 14280004: Revert removal of events (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/html/HTMLInputElement.h ('k') | Source/core/html/InputType.h » ('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 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) 6 * (C) 2006 Alexey Proskuryakov (ap@nypop.com)
7 * Copyright (C) 2007 Samuel Weinig (sam@webkit.org) 7 * Copyright (C) 2007 Samuel Weinig (sam@webkit.org)
8 * Copyright (C) 2010 Google Inc. All rights reserved. 8 * Copyright (C) 2010 Google Inc. All rights reserved.
9 * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 9 * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
10 * Copyright (C) 2012 Samsung Electronics. All rights reserved. 10 * Copyright (C) 2012 Samsung Electronics. All rights reserved.
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 #include "PlatformLocale.h" 63 #include "PlatformLocale.h"
64 #include "PlatformMouseEvent.h" 64 #include "PlatformMouseEvent.h"
65 #include "RenderTextControlSingleLine.h" 65 #include "RenderTextControlSingleLine.h"
66 #include "RenderTheme.h" 66 #include "RenderTheme.h"
67 #include "RuntimeEnabledFeatures.h" 67 #include "RuntimeEnabledFeatures.h"
68 #include "ScopedEventQueue.h" 68 #include "ScopedEventQueue.h"
69 #include "SearchInputType.h" 69 #include "SearchInputType.h"
70 #include "ShadowRoot.h" 70 #include "ShadowRoot.h"
71 #include "ScriptEventListener.h" 71 #include "ScriptEventListener.h"
72 #include "StyleResolver.h" 72 #include "StyleResolver.h"
73 #include "TouchEvent.h"
74 #include <wtf/MathExtras.h> 73 #include <wtf/MathExtras.h>
75 #include <wtf/StdLibExtras.h> 74 #include <wtf/StdLibExtras.h>
76 75
77 #if ENABLE(INPUT_TYPE_COLOR) 76 #if ENABLE(INPUT_TYPE_COLOR)
78 #include "ColorInputType.h" 77 #include "ColorInputType.h"
79 #endif 78 #endif
80 79
81 #if ENABLE(INPUT_SPEECH) 80 #if ENABLE(INPUT_SPEECH)
82 #include "RuntimeEnabledFeatures.h" 81 #include "RuntimeEnabledFeatures.h"
83 #endif 82 #endif
84 83
84 #if ENABLE(TOUCH_EVENTS)
85 #include "TouchEvent.h"
86 #endif
87
85 using namespace std; 88 using namespace std;
86 89
87 namespace WebCore { 90 namespace WebCore {
88 91
89 using namespace HTMLNames; 92 using namespace HTMLNames;
90 93
91 #if ENABLE(DATALIST_ELEMENT) 94 #if ENABLE(DATALIST_ELEMENT)
92 class ListAttributeTargetObserver : IdTargetObserver { 95 class ListAttributeTargetObserver : IdTargetObserver {
93 WTF_MAKE_FAST_ALLOCATED; 96 WTF_MAKE_FAST_ALLOCATED;
94 public: 97 public:
(...skipping 28 matching lines...) Expand all
123 , m_autocomplete(Uninitialized) 126 , m_autocomplete(Uninitialized)
124 , m_isAutofilled(false) 127 , m_isAutofilled(false)
125 #if ENABLE(DATALIST_ELEMENT) 128 #if ENABLE(DATALIST_ELEMENT)
126 , m_hasNonEmptyList(false) 129 , m_hasNonEmptyList(false)
127 #endif 130 #endif
128 , m_stateRestored(false) 131 , m_stateRestored(false)
129 , m_parsingInProgress(createdByParser) 132 , m_parsingInProgress(createdByParser)
130 , m_valueAttributeWasUpdatedAfterParsing(false) 133 , m_valueAttributeWasUpdatedAfterParsing(false)
131 , m_wasModifiedByUser(false) 134 , m_wasModifiedByUser(false)
132 , m_canReceiveDroppedFiles(false) 135 , m_canReceiveDroppedFiles(false)
136 #if ENABLE(TOUCH_EVENTS)
133 , m_hasTouchEventHandler(false) 137 , m_hasTouchEventHandler(false)
138 #endif
134 , m_inputType(InputType::createText(this)) 139 , m_inputType(InputType::createText(this))
135 { 140 {
136 ASSERT(hasTagName(inputTag) || hasTagName(isindexTag)); 141 ASSERT(hasTagName(inputTag) || hasTagName(isindexTag));
137 #if ENABLE(INPUT_MULTIPLE_FIELDS_UI) 142 #if ENABLE(INPUT_MULTIPLE_FIELDS_UI)
138 setHasCustomStyleCallbacks(); 143 setHasCustomStyleCallbacks();
139 #endif 144 #endif
140 ScriptWrappable::init(this); 145 ScriptWrappable::init(this);
141 } 146 }
142 147
143 PassRefPtr<HTMLInputElement> HTMLInputElement::create(const QualifiedName& tagNa me, Document* document, HTMLFormElement* form, bool createdByParser) 148 PassRefPtr<HTMLInputElement> HTMLInputElement::create(const QualifiedName& tagNa me, Document* document, HTMLFormElement* form, bool createdByParser)
(...skipping 20 matching lines...) Expand all
164 if (needsSuspensionCallback()) 169 if (needsSuspensionCallback())
165 document()->unregisterForPageCacheSuspensionCallbacks(this); 170 document()->unregisterForPageCacheSuspensionCallbacks(this);
166 171
167 // Need to remove form association while this is still an HTMLInputElement 172 // Need to remove form association while this is still an HTMLInputElement
168 // so that virtual functions are called correctly. 173 // so that virtual functions are called correctly.
169 setForm(0); 174 setForm(0);
170 // setForm(0) may register this to a document-level radio button group. 175 // setForm(0) may register this to a document-level radio button group.
171 // We should unregister it to avoid accessing a deleted object. 176 // We should unregister it to avoid accessing a deleted object.
172 if (isRadioButton()) 177 if (isRadioButton())
173 document()->formController()->checkedRadioButtons().removeButton(this); 178 document()->formController()->checkedRadioButtons().removeButton(this);
179 #if ENABLE(TOUCH_EVENTS)
174 if (m_hasTouchEventHandler) 180 if (m_hasTouchEventHandler)
175 document()->didRemoveEventTargetNode(this); 181 document()->didRemoveEventTargetNode(this);
182 #endif
176 } 183 }
177 184
178 const AtomicString& HTMLInputElement::name() const 185 const AtomicString& HTMLInputElement::name() const
179 { 186 {
180 return m_name.isNull() ? emptyAtom : m_name; 187 return m_name.isNull() ? emptyAtom : m_name;
181 } 188 }
182 189
183 Vector<FileChooserFileInfo> HTMLInputElement::filesFromFileInputFormControlState (const FormControlState& state) 190 Vector<FileChooserFileInfo> HTMLInputElement::filesFromFileInputFormControlState (const FormControlState& state)
184 { 191 {
185 return FileInputType::filesFromFormControlState(state); 192 return FileInputType::filesFromFormControlState(state);
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 479
473 m_inputType->destroyShadowSubtree(); 480 m_inputType->destroyShadowSubtree();
474 481
475 bool wasAttached = attached(); 482 bool wasAttached = attached();
476 if (wasAttached) 483 if (wasAttached)
477 detach(); 484 detach();
478 485
479 m_inputType = newType.release(); 486 m_inputType = newType.release();
480 m_inputType->createShadowSubtree(); 487 m_inputType->createShadowSubtree();
481 488
489 #if ENABLE(TOUCH_EVENTS)
482 bool hasTouchEventHandler = m_inputType->hasTouchEventHandler(); 490 bool hasTouchEventHandler = m_inputType->hasTouchEventHandler();
483 if (hasTouchEventHandler != m_hasTouchEventHandler) { 491 if (hasTouchEventHandler != m_hasTouchEventHandler) {
484 if (hasTouchEventHandler) 492 if (hasTouchEventHandler)
485 document()->didAddTouchEventHandler(this); 493 document()->didAddTouchEventHandler(this);
486 else 494 else
487 document()->didRemoveTouchEventHandler(this); 495 document()->didRemoveTouchEventHandler(this);
488 m_hasTouchEventHandler = hasTouchEventHandler; 496 m_hasTouchEventHandler = hasTouchEventHandler;
489 } 497 }
498 #endif
490 499
491 setNeedsWillValidateCheck(); 500 setNeedsWillValidateCheck();
492 501
493 bool willStoreValue = m_inputType->storesValueSeparateFromAttribute(); 502 bool willStoreValue = m_inputType->storesValueSeparateFromAttribute();
494 503
495 if (didStoreValue && !willStoreValue && hasDirtyValue()) { 504 if (didStoreValue && !willStoreValue && hasDirtyValue()) {
496 setAttribute(valueAttr, m_valueIfDirty); 505 setAttribute(valueAttr, m_valueIfDirty);
497 m_valueIfDirty = String(); 506 m_valueIfDirty = String();
498 } 507 }
499 if (!didStoreValue && willStoreValue) { 508 if (!didStoreValue && willStoreValue) {
(...skipping 619 matching lines...) Expand 10 before | Expand all | Expand 10 after
1119 } 1128 }
1120 1129
1121 void HTMLInputElement::defaultEventHandler(Event* evt) 1130 void HTMLInputElement::defaultEventHandler(Event* evt)
1122 { 1131 {
1123 if (evt->isMouseEvent() && evt->type() == eventNames().clickEvent && static_ cast<MouseEvent*>(evt)->button() == LeftButton) { 1132 if (evt->isMouseEvent() && evt->type() == eventNames().clickEvent && static_ cast<MouseEvent*>(evt)->button() == LeftButton) {
1124 m_inputType->handleClickEvent(static_cast<MouseEvent*>(evt)); 1133 m_inputType->handleClickEvent(static_cast<MouseEvent*>(evt));
1125 if (evt->defaultHandled()) 1134 if (evt->defaultHandled())
1126 return; 1135 return;
1127 } 1136 }
1128 1137
1138 #if ENABLE(TOUCH_EVENTS)
1129 if (evt->isTouchEvent()) { 1139 if (evt->isTouchEvent()) {
1130 m_inputType->handleTouchEvent(static_cast<TouchEvent*>(evt)); 1140 m_inputType->handleTouchEvent(static_cast<TouchEvent*>(evt));
1131 if (evt->defaultHandled()) 1141 if (evt->defaultHandled())
1132 return; 1142 return;
1133 } 1143 }
1144 #endif
1134 1145
1135 if (evt->isKeyboardEvent() && evt->type() == eventNames().keydownEvent) { 1146 if (evt->isKeyboardEvent() && evt->type() == eventNames().keydownEvent) {
1136 m_inputType->handleKeydownEvent(static_cast<KeyboardEvent*>(evt)); 1147 m_inputType->handleKeydownEvent(static_cast<KeyboardEvent*>(evt));
1137 if (evt->defaultHandled()) 1148 if (evt->defaultHandled())
1138 return; 1149 return;
1139 } 1150 }
1140 1151
1141 // Call the base event handler before any of our own event handling for almo st all events in text fields. 1152 // Call the base event handler before any of our own event handling for almo st all events in text fields.
1142 // Makes editing keyboard handling take precedence over the keydown and keyp ress handling in this function. 1153 // Makes editing keyboard handling take precedence over the keydown and keyp ress handling in this function.
1143 bool callBaseClassEarly = isTextField() && (evt->type() == eventNames().keyd ownEvent || evt->type() == eventNames().keypressEvent); 1154 bool callBaseClassEarly = isTextField() && (evt->type() == eventNames().keyd ownEvent || evt->type() == eventNames().keypressEvent);
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after
1511 if (hasImageLoader()) 1522 if (hasImageLoader())
1512 imageLoader()->elementDidMoveToNewDocument(); 1523 imageLoader()->elementDidMoveToNewDocument();
1513 1524
1514 bool needsSuspensionCallback = this->needsSuspensionCallback(); 1525 bool needsSuspensionCallback = this->needsSuspensionCallback();
1515 if (oldDocument) { 1526 if (oldDocument) {
1516 // Always unregister for cache callbacks when leaving a document, even i f we would otherwise like to be registered 1527 // Always unregister for cache callbacks when leaving a document, even i f we would otherwise like to be registered
1517 if (needsSuspensionCallback) 1528 if (needsSuspensionCallback)
1518 oldDocument->unregisterForPageCacheSuspensionCallbacks(this); 1529 oldDocument->unregisterForPageCacheSuspensionCallbacks(this);
1519 if (isRadioButton()) 1530 if (isRadioButton())
1520 oldDocument->formController()->checkedRadioButtons().removeButton(th is); 1531 oldDocument->formController()->checkedRadioButtons().removeButton(th is);
1532 #if ENABLE(TOUCH_EVENTS)
1521 if (m_hasTouchEventHandler) 1533 if (m_hasTouchEventHandler)
1522 oldDocument->didRemoveEventTargetNode(this); 1534 oldDocument->didRemoveEventTargetNode(this);
1535 #endif
1523 } 1536 }
1524 1537
1525 if (needsSuspensionCallback) 1538 if (needsSuspensionCallback)
1526 document()->registerForPageCacheSuspensionCallbacks(this); 1539 document()->registerForPageCacheSuspensionCallbacks(this);
1527 1540
1541 #if ENABLE(TOUCH_EVENTS)
1528 if (m_hasTouchEventHandler) 1542 if (m_hasTouchEventHandler)
1529 document()->didAddTouchEventHandler(this); 1543 document()->didAddTouchEventHandler(this);
1544 #endif
1530 1545
1531 HTMLTextFormControlElement::didMoveToNewDocument(oldDocument); 1546 HTMLTextFormControlElement::didMoveToNewDocument(oldDocument);
1532 } 1547 }
1533 1548
1534 void HTMLInputElement::addSubresourceAttributeURLs(ListHashSet<KURL>& urls) cons t 1549 void HTMLInputElement::addSubresourceAttributeURLs(ListHashSet<KURL>& urls) cons t
1535 { 1550 {
1536 HTMLTextFormControlElement::addSubresourceAttributeURLs(urls); 1551 HTMLTextFormControlElement::addSubresourceAttributeURLs(urls);
1537 1552
1538 addSubresourceURL(urls, src()); 1553 addSubresourceURL(urls, src());
1539 } 1554 }
(...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after
1958 } 1973 }
1959 1974
1960 #if ENABLE(INPUT_MULTIPLE_FIELDS_UI) 1975 #if ENABLE(INPUT_MULTIPLE_FIELDS_UI)
1961 PassRefPtr<RenderStyle> HTMLInputElement::customStyleForRenderer() 1976 PassRefPtr<RenderStyle> HTMLInputElement::customStyleForRenderer()
1962 { 1977 {
1963 return m_inputType->customStyleForRenderer(document()->styleResolver()->styl eForElement(this)); 1978 return m_inputType->customStyleForRenderer(document()->styleResolver()->styl eForElement(this));
1964 } 1979 }
1965 #endif 1980 #endif
1966 1981
1967 } // namespace 1982 } // namespace
OLDNEW
« no previous file with comments | « Source/core/html/HTMLInputElement.h ('k') | Source/core/html/InputType.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698