Source/WebCore/ChangeLog

 12013-02-12 Hayato Ito <hayato@chromium.org>
 2
 3 Make {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator type safe.
 4 https://bugs.webkit.org/show_bug.cgi?id=109561
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Use FocusEvent rather than Event in {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator.
 9
 10 No new tests. No change in functionality.
 11
 12 * dom/FocusEvent.cpp:
 13 (WebCore::FocusEventDispatchMediator::create):
 14 (WebCore::FocusEventDispatchMediator::FocusEventDispatchMediator):
 15 (WebCore::BlurEventDispatchMediator::create):
 16 (WebCore::BlurEventDispatchMediator::BlurEventDispatchMediator):
 17 (WebCore::FocusInEventDispatchMediator::create):
 18 (WebCore::FocusInEventDispatchMediator::FocusInEventDispatchMediator):
 19 (WebCore::FocusOutEventDispatchMediator::create):
 20 (WebCore::FocusOutEventDispatchMediator::FocusOutEventDispatchMediator):
 21 * dom/FocusEvent.h:
 22 (FocusEventDispatchMediator):
 23 (WebCore::FocusEventDispatchMediator::event):
 24 (BlurEventDispatchMediator):
 25 (WebCore::BlurEventDispatchMediator::event):
 26 (FocusInEventDispatchMediator):
 27 (WebCore::FocusInEventDispatchMediator::event):
 28 (FocusOutEventDispatchMediator):
 29 (WebCore::FocusOutEventDispatchMediator::event):
 30
1312013-02-12 Kent Tamura <tkent@chromium.org>
232
333 INPUT_MULTIPLE_FIELDS_UI: Mouse click not on sub-fields in multiple fields input should not move focus

Source/WebCore/dom/FocusEvent.cpp

@@FocusEvent::FocusEvent(const AtomicString& type, const FocusEventInit& initializ
6464{
6565}
6666
67 PassRefPtr<FocusEventDispatchMediator> FocusEventDispatchMediator::create(PassRefPtr<Event> event, PassRefPtr<Node> oldFocusedNode)
 67PassRefPtr<FocusEventDispatchMediator> FocusEventDispatchMediator::create(PassRefPtr<FocusEvent> focusEvent, PassRefPtr<Node> oldFocusedNode)
6868{
69  return adoptRef(new FocusEventDispatchMediator(event, oldFocusedNode));
 69 return adoptRef(new FocusEventDispatchMediator(focusEvent, oldFocusedNode));
7070}
7171
72 FocusEventDispatchMediator::FocusEventDispatchMediator(PassRefPtr<Event> event, PassRefPtr<Node> oldFocusedNode)
73  : EventDispatchMediator(event)
 72FocusEventDispatchMediator::FocusEventDispatchMediator(PassRefPtr<FocusEvent> focusEvent, PassRefPtr<Node> oldFocusedNode)
 73 : EventDispatchMediator(focusEvent)
7474 , m_oldFocusedNode(oldFocusedNode)
7575{
7676}

@@bool FocusEventDispatchMediator::dispatchEvent(EventDispatcher* dispatcher) cons
8181 return EventDispatchMediator::dispatchEvent(dispatcher);
8282}
8383
84 PassRefPtr<BlurEventDispatchMediator> BlurEventDispatchMediator::create(PassRefPtr<Event> event, PassRefPtr<Node> newFocusedNode)
 84PassRefPtr<BlurEventDispatchMediator> BlurEventDispatchMediator::create(PassRefPtr<FocusEvent> focusEvent, PassRefPtr<Node> newFocusedNode)
8585{
86  return adoptRef(new BlurEventDispatchMediator(event, newFocusedNode));
 86 return adoptRef(new BlurEventDispatchMediator(focusEvent, newFocusedNode));
8787}
8888
89 BlurEventDispatchMediator::BlurEventDispatchMediator(PassRefPtr<Event> event, PassRefPtr<Node> newFocusedNode)
90  : EventDispatchMediator(event)
 89BlurEventDispatchMediator::BlurEventDispatchMediator(PassRefPtr<FocusEvent> focusEvent, PassRefPtr<Node> newFocusedNode)
 90 : EventDispatchMediator(focusEvent)
9191 , m_newFocusedNode(newFocusedNode)
9292{
9393}

@@bool BlurEventDispatchMediator::dispatchEvent(EventDispatcher* dispatcher) const
9898 return EventDispatchMediator::dispatchEvent(dispatcher);
9999}
100100
101 PassRefPtr<FocusInEventDispatchMediator> FocusInEventDispatchMediator::create(PassRefPtr<Event> event, PassRefPtr<Node> oldFocusedNode)
 101PassRefPtr<FocusInEventDispatchMediator> FocusInEventDispatchMediator::create(PassRefPtr<FocusEvent> focusEvent, PassRefPtr<Node> oldFocusedNode)
102102{
103  return adoptRef(new FocusInEventDispatchMediator(event, oldFocusedNode));
 103 return adoptRef(new FocusInEventDispatchMediator(focusEvent, oldFocusedNode));
104104}
105105
106 FocusInEventDispatchMediator::FocusInEventDispatchMediator(PassRefPtr<Event> event, PassRefPtr<Node> oldFocusedNode)
107  : EventDispatchMediator(event)
 106FocusInEventDispatchMediator::FocusInEventDispatchMediator(PassRefPtr<FocusEvent> focusEvent, PassRefPtr<Node> oldFocusedNode)
 107 : EventDispatchMediator(focusEvent)
108108 , m_oldFocusedNode(oldFocusedNode)
109109{
110110}

@@bool FocusInEventDispatchMediator::dispatchEvent(EventDispatcher* dispatcher) co
115115 return EventDispatchMediator::dispatchEvent(dispatcher);
116116}
117117
118 PassRefPtr<FocusOutEventDispatchMediator> FocusOutEventDispatchMediator::create(PassRefPtr<Event> event, PassRefPtr<Node> newFocusedNode)
 118PassRefPtr<FocusOutEventDispatchMediator> FocusOutEventDispatchMediator::create(PassRefPtr<FocusEvent> focusEvent, PassRefPtr<Node> newFocusedNode)
119119{
120  return adoptRef(new FocusOutEventDispatchMediator(event, newFocusedNode));
 120 return adoptRef(new FocusOutEventDispatchMediator(focusEvent, newFocusedNode));
121121}
122122
123 FocusOutEventDispatchMediator::FocusOutEventDispatchMediator(PassRefPtr<Event> event, PassRefPtr<Node> newFocusedNode)
124  : EventDispatchMediator(event)
 123FocusOutEventDispatchMediator::FocusOutEventDispatchMediator(PassRefPtr<FocusEvent> focusEvent, PassRefPtr<Node> newFocusedNode)
 124 : EventDispatchMediator(focusEvent)
125125 , m_newFocusedNode(newFocusedNode)
126126{
127127}

Source/WebCore/dom/FocusEvent.h

@@inline FocusEvent* toFocusEvent(Event* event)
7878
7979class FocusEventDispatchMediator : public EventDispatchMediator {
8080public:
81  static PassRefPtr<FocusEventDispatchMediator> create(PassRefPtr<Event>, PassRefPtr<Node> oldFocusedNode);
 81 static PassRefPtr<FocusEventDispatchMediator> create(PassRefPtr<FocusEvent>, PassRefPtr<Node> oldFocusedNode);
8282private:
83  FocusEventDispatchMediator(PassRefPtr<Event>, PassRefPtr<Node> oldFocusedNode);
 83 FocusEventDispatchMediator(PassRefPtr<FocusEvent>, PassRefPtr<Node> oldFocusedNode);
 84 FocusEvent* event() const { return static_cast<FocusEvent*>(EventDispatchMediator::event()); }
8485 virtual bool dispatchEvent(EventDispatcher*) const OVERRIDE;
8586 RefPtr<Node> m_oldFocusedNode;
8687};
8788
8889class BlurEventDispatchMediator : public EventDispatchMediator {
8990public:
90  static PassRefPtr<BlurEventDispatchMediator> create(PassRefPtr<Event>, PassRefPtr<Node> newFocusedNode);
 91 static PassRefPtr<BlurEventDispatchMediator> create(PassRefPtr<FocusEvent>, PassRefPtr<Node> newFocusedNode);
9192private:
92  BlurEventDispatchMediator(PassRefPtr<Event>, PassRefPtr<Node> newFocusedNode);
 93 BlurEventDispatchMediator(PassRefPtr<FocusEvent>, PassRefPtr<Node> newFocusedNode);
 94 FocusEvent* event() const { return static_cast<FocusEvent*>(EventDispatchMediator::event()); }
9395 virtual bool dispatchEvent(EventDispatcher*) const OVERRIDE;
9496 RefPtr<Node> m_newFocusedNode;
9597};
9698
9799class FocusInEventDispatchMediator : public EventDispatchMediator {
98100public:
99  static PassRefPtr<FocusInEventDispatchMediator> create(PassRefPtr<Event>, PassRefPtr<Node> oldFocusedNode);
 101 static PassRefPtr<FocusInEventDispatchMediator> create(PassRefPtr<FocusEvent>, PassRefPtr<Node> oldFocusedNode);
100102private:
101  explicit FocusInEventDispatchMediator(PassRefPtr<Event>, PassRefPtr<Node> oldFocusedNode);
 103 FocusInEventDispatchMediator(PassRefPtr<FocusEvent>, PassRefPtr<Node> oldFocusedNode);
 104 FocusEvent* event() const { return static_cast<FocusEvent*>(EventDispatchMediator::event()); }
102105 virtual bool dispatchEvent(EventDispatcher*) const OVERRIDE;
103106 RefPtr<Node> m_oldFocusedNode;
104107};
105108
106109class FocusOutEventDispatchMediator : public EventDispatchMediator {
107110public:
108  static PassRefPtr<FocusOutEventDispatchMediator> create(PassRefPtr<Event>, PassRefPtr<Node> newFocusedNode);
 111 static PassRefPtr<FocusOutEventDispatchMediator> create(PassRefPtr<FocusEvent>, PassRefPtr<Node> newFocusedNode);
109112private:
110  explicit FocusOutEventDispatchMediator(PassRefPtr<Event>, PassRefPtr<Node> newFocusedNode);
 113 FocusOutEventDispatchMediator(PassRefPtr<FocusEvent>, PassRefPtr<Node> newFocusedNode);
 114 FocusEvent* event() const { return static_cast<FocusEvent*>(EventDispatchMediator::event()); }
111115 virtual bool dispatchEvent(EventDispatcher*) const OVERRIDE;
112116 RefPtr<Node> m_newFocusedNode;
113117};