Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 42 #include "core/dom/shadow/InsertionPoint.h" | 42 #include "core/dom/shadow/InsertionPoint.h" |
| 43 #include "core/dom/shadow/ShadowRoot.h" | 43 #include "core/dom/shadow/ShadowRoot.h" |
| 44 #include "core/editing/FrameSelection.h" | 44 #include "core/editing/FrameSelection.h" |
| 45 #include "core/editing/SpellChecker.h" | 45 #include "core/editing/SpellChecker.h" |
| 46 #include "core/events/BeforeTextInsertedEvent.h" | 46 #include "core/events/BeforeTextInsertedEvent.h" |
| 47 #include "core/events/KeyboardEvent.h" | 47 #include "core/events/KeyboardEvent.h" |
| 48 #include "core/events/MouseEvent.h" | 48 #include "core/events/MouseEvent.h" |
| 49 #include "core/events/ScopedEventQueue.h" | 49 #include "core/events/ScopedEventQueue.h" |
| 50 #include "core/events/TouchEvent.h" | 50 #include "core/events/TouchEvent.h" |
| 51 #include "core/fileapi/FileList.h" | 51 #include "core/fileapi/FileList.h" |
| 52 #include "core/frame/EventHandlerRegistry.h" | |
| 52 #include "core/frame/FrameHost.h" | 53 #include "core/frame/FrameHost.h" |
| 53 #include "core/frame/FrameView.h" | 54 #include "core/frame/FrameView.h" |
| 54 #include "core/frame/LocalFrame.h" | 55 #include "core/frame/LocalFrame.h" |
| 55 #include "core/frame/UseCounter.h" | 56 #include "core/frame/UseCounter.h" |
| 56 #include "core/html/HTMLCollection.h" | 57 #include "core/html/HTMLCollection.h" |
| 57 #include "core/html/HTMLDataListElement.h" | 58 #include "core/html/HTMLDataListElement.h" |
| 58 #include "core/html/HTMLFormElement.h" | 59 #include "core/html/HTMLFormElement.h" |
| 59 #include "core/html/HTMLImageLoader.h" | 60 #include "core/html/HTMLImageLoader.h" |
| 60 #include "core/html/HTMLOptionElement.h" | 61 #include "core/html/HTMLOptionElement.h" |
| 61 #include "core/html/forms/ColorInputType.h" | 62 #include "core/html/forms/ColorInputType.h" |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 167 HTMLInputElement::~HTMLInputElement() | 168 HTMLInputElement::~HTMLInputElement() |
| 168 { | 169 { |
| 169 #if !ENABLE(OILPAN) | 170 #if !ENABLE(OILPAN) |
| 170 // Need to remove form association while this is still an HTMLInputElement | 171 // Need to remove form association while this is still an HTMLInputElement |
| 171 // so that virtual functions are called correctly. | 172 // so that virtual functions are called correctly. |
| 172 setForm(0); | 173 setForm(0); |
| 173 // setForm(0) may register this to a document-level radio button group. | 174 // setForm(0) may register this to a document-level radio button group. |
| 174 // We should unregister it to avoid accessing a deleted object. | 175 // We should unregister it to avoid accessing a deleted object. |
| 175 if (isRadioButton()) | 176 if (isRadioButton()) |
| 176 document().formController().radioButtonGroupScope().removeButton(this); | 177 document().formController().radioButtonGroupScope().removeButton(this); |
| 177 if (m_hasTouchEventHandler) | 178 if (m_hasTouchEventHandler && document().frameHost()) |
| 178 document().didRemoveTouchEventHandler(this); | 179 document().frameHost()->eventHandlerRegistry().didRemoveEventHandler(*th is, EventHandlerRegistry::TouchEvent); |
| 179 #endif | 180 #endif |
| 180 } | 181 } |
| 181 | 182 |
| 182 const AtomicString& HTMLInputElement::name() const | 183 const AtomicString& HTMLInputElement::name() const |
| 183 { | 184 { |
| 184 return m_name.isNull() ? emptyAtom : m_name; | 185 return m_name.isNull() ? emptyAtom : m_name; |
| 185 } | 186 } |
| 186 | 187 |
| 187 Vector<FileChooserFileInfo> HTMLInputElement::filesFromFileInputFormControlState (const FormControlState& state) | 188 Vector<FileChooserFileInfo> HTMLInputElement::filesFromFileInputFormControlState (const FormControlState& state) |
| 188 { | 189 { |
| (...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 419 | 420 |
| 420 m_inputType = newType.release(); | 421 m_inputType = newType.release(); |
| 421 if (hasAuthorShadowRoot()) | 422 if (hasAuthorShadowRoot()) |
| 422 m_inputTypeView = InputTypeView::create(*this); | 423 m_inputTypeView = InputTypeView::create(*this); |
| 423 else | 424 else |
| 424 m_inputTypeView = m_inputType; | 425 m_inputTypeView = m_inputType; |
| 425 m_inputTypeView->createShadowSubtree(); | 426 m_inputTypeView->createShadowSubtree(); |
| 426 | 427 |
| 427 bool hasTouchEventHandler = m_inputTypeView->hasTouchEventHandler(); | 428 bool hasTouchEventHandler = m_inputTypeView->hasTouchEventHandler(); |
| 428 if (hasTouchEventHandler != m_hasTouchEventHandler) { | 429 if (hasTouchEventHandler != m_hasTouchEventHandler) { |
| 429 if (hasTouchEventHandler) | 430 if (document().frameHost() && document().isActive()) { |
|
Rick Byers
2014/07/01 18:21:33
Looks like this change will also skip updating the
| |
| 430 document().didAddTouchEventHandler(this); | 431 EventHandlerRegistry& registry = document().frameHost()->eventHandle rRegistry(); |
| 431 else | 432 if (hasTouchEventHandler) |
| 432 document().didRemoveTouchEventHandler(this); | 433 registry.didAddEventHandler(*this, EventHandlerRegistry::TouchEv ent); |
| 434 else | |
| 435 registry.didRemoveEventHandler(*this, EventHandlerRegistry::Touc hEvent); | |
| 436 } | |
| 433 m_hasTouchEventHandler = hasTouchEventHandler; | 437 m_hasTouchEventHandler = hasTouchEventHandler; |
| 434 } | 438 } |
| 435 | 439 |
| 436 setNeedsWillValidateCheck(); | 440 setNeedsWillValidateCheck(); |
| 437 | 441 |
| 438 bool willStoreValue = m_inputType->storesValueSeparateFromAttribute(); | 442 bool willStoreValue = m_inputType->storesValueSeparateFromAttribute(); |
| 439 | 443 |
| 440 if (didStoreValue && !willStoreValue && hasDirtyValue()) { | 444 if (didStoreValue && !willStoreValue && hasDirtyValue()) { |
| 441 setAttribute(valueAttr, AtomicString(m_valueIfDirty)); | 445 setAttribute(valueAttr, AtomicString(m_valueIfDirty)); |
| 442 m_valueIfDirty = String(); | 446 m_valueIfDirty = String(); |
| (...skipping 985 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1428 resetListAttributeTargetObserver(); | 1432 resetListAttributeTargetObserver(); |
| 1429 } | 1433 } |
| 1430 | 1434 |
| 1431 void HTMLInputElement::didMoveToNewDocument(Document& oldDocument) | 1435 void HTMLInputElement::didMoveToNewDocument(Document& oldDocument) |
| 1432 { | 1436 { |
| 1433 if (hasImageLoader()) | 1437 if (hasImageLoader()) |
| 1434 imageLoader()->elementDidMoveToNewDocument(); | 1438 imageLoader()->elementDidMoveToNewDocument(); |
| 1435 | 1439 |
| 1436 if (isRadioButton()) | 1440 if (isRadioButton()) |
| 1437 oldDocument.formController().radioButtonGroupScope().removeButton(this); | 1441 oldDocument.formController().radioButtonGroupScope().removeButton(this); |
| 1438 if (m_hasTouchEventHandler) | |
| 1439 oldDocument.didRemoveTouchEventHandler(this); | |
| 1440 | |
| 1441 if (m_hasTouchEventHandler) | |
| 1442 document().didAddTouchEventHandler(this); | |
| 1443 | 1442 |
| 1444 HTMLTextFormControlElement::didMoveToNewDocument(oldDocument); | 1443 HTMLTextFormControlElement::didMoveToNewDocument(oldDocument); |
| 1445 } | 1444 } |
| 1446 | 1445 |
| 1447 void HTMLInputElement::removeAllEventListeners() | 1446 void HTMLInputElement::removeAllEventListeners() |
| 1448 { | 1447 { |
| 1449 HTMLTextFormControlElement::removeAllEventListeners(); | 1448 HTMLTextFormControlElement::removeAllEventListeners(); |
| 1450 m_hasTouchEventHandler = false; | 1449 m_hasTouchEventHandler = false; |
| 1451 } | 1450 } |
| 1452 | 1451 |
| (...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1858 return m_inputTypeView->customStyleForRenderer(originalStyleForRenderer()); | 1857 return m_inputTypeView->customStyleForRenderer(originalStyleForRenderer()); |
| 1859 } | 1858 } |
| 1860 #endif | 1859 #endif |
| 1861 | 1860 |
| 1862 bool HTMLInputElement::shouldDispatchFormControlChangeEvent(String& oldValue, St ring& newValue) | 1861 bool HTMLInputElement::shouldDispatchFormControlChangeEvent(String& oldValue, St ring& newValue) |
| 1863 { | 1862 { |
| 1864 return m_inputType->shouldDispatchFormControlChangeEvent(oldValue, newValue) ; | 1863 return m_inputType->shouldDispatchFormControlChangeEvent(oldValue, newValue) ; |
| 1865 } | 1864 } |
| 1866 | 1865 |
| 1867 } // namespace | 1866 } // namespace |
| OLD | NEW |