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

Side by Side Diff: Source/core/html/shadow/TextControlInnerElements.cpp

Issue 23886003: Have HTMLElements / SVGElements constructors take a Document reference in argument (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Another Android build fix 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2008, 2010 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2008, 2010 Apple Inc. All rights reserved.
3 * Copyright (C) 2010 Google Inc. All rights reserved. 3 * Copyright (C) 2010 Google Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 30 matching lines...) Expand all
41 #include "core/page/Frame.h" 41 #include "core/page/Frame.h"
42 #include "core/page/SpeechInput.h" 42 #include "core/page/SpeechInput.h"
43 #include "core/page/SpeechInputEvent.h" 43 #include "core/page/SpeechInputEvent.h"
44 #include "core/rendering/RenderTextControlSingleLine.h" 44 #include "core/rendering/RenderTextControlSingleLine.h"
45 #include "core/rendering/RenderView.h" 45 #include "core/rendering/RenderView.h"
46 46
47 namespace WebCore { 47 namespace WebCore {
48 48
49 using namespace HTMLNames; 49 using namespace HTMLNames;
50 50
51 TextControlInnerContainer::TextControlInnerContainer(Document* document) 51 TextControlInnerContainer::TextControlInnerContainer(Document& document)
52 : HTMLDivElement(divTag, document) 52 : HTMLDivElement(divTag, document)
53 { 53 {
54 } 54 }
55 55
56 PassRefPtr<TextControlInnerContainer> TextControlInnerContainer::create(Document * document) 56 PassRefPtr<TextControlInnerContainer> TextControlInnerContainer::create(Document & document)
57 { 57 {
58 return adoptRef(new TextControlInnerContainer(document)); 58 return adoptRef(new TextControlInnerContainer(document));
59 } 59 }
60 60
61 RenderObject* TextControlInnerContainer::createRenderer(RenderStyle*) 61 RenderObject* TextControlInnerContainer::createRenderer(RenderStyle*)
62 { 62 {
63 return new RenderTextControlInnerContainer(this); 63 return new RenderTextControlInnerContainer(this);
64 } 64 }
65 65
66 TextControlInnerElement::TextControlInnerElement(Document* document) 66 TextControlInnerElement::TextControlInnerElement(Document& document)
67 : HTMLDivElement(divTag, document) 67 : HTMLDivElement(divTag, document)
68 { 68 {
69 setHasCustomStyleCallbacks(); 69 setHasCustomStyleCallbacks();
70 } 70 }
71 71
72 PassRefPtr<TextControlInnerElement> TextControlInnerElement::create(Document* do cument) 72 PassRefPtr<TextControlInnerElement> TextControlInnerElement::create(Document& do cument)
73 { 73 {
74 return adoptRef(new TextControlInnerElement(document)); 74 return adoptRef(new TextControlInnerElement(document));
75 } 75 }
76 76
77 PassRefPtr<RenderStyle> TextControlInnerElement::customStyleForRenderer() 77 PassRefPtr<RenderStyle> TextControlInnerElement::customStyleForRenderer()
78 { 78 {
79 // FXIME: Move these styles to html.css. 79 // FXIME: Move these styles to html.css.
80 80
81 RefPtr<RenderStyle> innerBlockStyle = RenderStyle::create(); 81 RefPtr<RenderStyle> innerBlockStyle = RenderStyle::create();
82 innerBlockStyle->inheritFrom(shadowHost()->renderStyle()); 82 innerBlockStyle->inheritFrom(shadowHost()->renderStyle());
83 83
84 innerBlockStyle->setFlexGrow(1); 84 innerBlockStyle->setFlexGrow(1);
85 // min-width: 0; is needed for correct shrinking. 85 // min-width: 0; is needed for correct shrinking.
86 // FIXME: Remove this line when https://bugs.webkit.org/show_bug.cgi?id=1117 90 is fixed. 86 // FIXME: Remove this line when https://bugs.webkit.org/show_bug.cgi?id=1117 90 is fixed.
87 innerBlockStyle->setMinWidth(Length(0, Fixed)); 87 innerBlockStyle->setMinWidth(Length(0, Fixed));
88 innerBlockStyle->setDisplay(BLOCK); 88 innerBlockStyle->setDisplay(BLOCK);
89 innerBlockStyle->setDirection(LTR); 89 innerBlockStyle->setDirection(LTR);
90 90
91 // We don't want the shadow dom to be editable, so we set this block to 91 // We don't want the shadow dom to be editable, so we set this block to
92 // read-only in case the input itself is editable. 92 // read-only in case the input itself is editable.
93 innerBlockStyle->setUserModify(READ_ONLY); 93 innerBlockStyle->setUserModify(READ_ONLY);
94 94
95 return innerBlockStyle.release(); 95 return innerBlockStyle.release();
96 } 96 }
97 97
98 // --------------------------- 98 // ---------------------------
99 99
100 inline TextControlInnerTextElement::TextControlInnerTextElement(Document* docume nt) 100 inline TextControlInnerTextElement::TextControlInnerTextElement(Document& docume nt)
101 : HTMLDivElement(divTag, document) 101 : HTMLDivElement(divTag, document)
102 { 102 {
103 setHasCustomStyleCallbacks(); 103 setHasCustomStyleCallbacks();
104 } 104 }
105 105
106 PassRefPtr<TextControlInnerTextElement> TextControlInnerTextElement::create(Docu ment* document) 106 PassRefPtr<TextControlInnerTextElement> TextControlInnerTextElement::create(Docu ment& document)
107 { 107 {
108 return adoptRef(new TextControlInnerTextElement(document)); 108 return adoptRef(new TextControlInnerTextElement(document));
109 } 109 }
110 110
111 void TextControlInnerTextElement::defaultEventHandler(Event* event) 111 void TextControlInnerTextElement::defaultEventHandler(Event* event)
112 { 112 {
113 // FIXME: In the future, we should add a way to have default event listeners . 113 // FIXME: In the future, we should add a way to have default event listeners .
114 // Then we would add one to the text field's inner div, and we wouldn't need this subclass. 114 // Then we would add one to the text field's inner div, and we wouldn't need this subclass.
115 // Or possibly we could just use a normal event listener. 115 // Or possibly we could just use a normal event listener.
116 if (event->isBeforeTextInsertedEvent() || event->type() == eventNames().webk itEditableContentChangedEvent) { 116 if (event->isBeforeTextInsertedEvent() || event->type() == eventNames().webk itEditableContentChangedEvent) {
(...skipping 19 matching lines...) Expand all
136 { 136 {
137 RenderObject* parentRenderer = shadowHost()->renderer(); 137 RenderObject* parentRenderer = shadowHost()->renderer();
138 if (!parentRenderer || !parentRenderer->isTextControl()) 138 if (!parentRenderer || !parentRenderer->isTextControl())
139 return originalStyleForRenderer(); 139 return originalStyleForRenderer();
140 RenderTextControl* textControlRenderer = toRenderTextControl(parentRenderer) ; 140 RenderTextControl* textControlRenderer = toRenderTextControl(parentRenderer) ;
141 return textControlRenderer->createInnerTextStyle(textControlRenderer->style( )); 141 return textControlRenderer->createInnerTextStyle(textControlRenderer->style( ));
142 } 142 }
143 143
144 // ---------------------------- 144 // ----------------------------
145 145
146 inline SearchFieldDecorationElement::SearchFieldDecorationElement(Document* docu ment) 146 inline SearchFieldDecorationElement::SearchFieldDecorationElement(Document& docu ment)
147 : HTMLDivElement(divTag, document) 147 : HTMLDivElement(divTag, document)
148 { 148 {
149 } 149 }
150 150
151 PassRefPtr<SearchFieldDecorationElement> SearchFieldDecorationElement::create(Do cument* document) 151 PassRefPtr<SearchFieldDecorationElement> SearchFieldDecorationElement::create(Do cument& document)
152 { 152 {
153 RefPtr<SearchFieldDecorationElement> element = adoptRef(new SearchFieldDecor ationElement(document)); 153 RefPtr<SearchFieldDecorationElement> element = adoptRef(new SearchFieldDecor ationElement(document));
154 element->setAttribute(idAttr, ShadowElementNames::searchDecoration()); 154 element->setAttribute(idAttr, ShadowElementNames::searchDecoration());
155 return element.release(); 155 return element.release();
156 } 156 }
157 157
158 const AtomicString& SearchFieldDecorationElement::part() const 158 const AtomicString& SearchFieldDecorationElement::part() const
159 { 159 {
160 DEFINE_STATIC_LOCAL(AtomicString, resultsDecorationId, ("-webkit-search-resu lts-decoration", AtomicString::ConstructFromLiteral)); 160 DEFINE_STATIC_LOCAL(AtomicString, resultsDecorationId, ("-webkit-search-resu lts-decoration", AtomicString::ConstructFromLiteral));
161 DEFINE_STATIC_LOCAL(AtomicString, decorationId, ("-webkit-search-decoration" , AtomicString::ConstructFromLiteral)); 161 DEFINE_STATIC_LOCAL(AtomicString, decorationId, ("-webkit-search-decoration" , AtomicString::ConstructFromLiteral));
(...skipping 22 matching lines...) Expand all
184 HTMLDivElement::defaultEventHandler(event); 184 HTMLDivElement::defaultEventHandler(event);
185 } 185 }
186 186
187 bool SearchFieldDecorationElement::willRespondToMouseClickEvents() 187 bool SearchFieldDecorationElement::willRespondToMouseClickEvents()
188 { 188 {
189 return true; 189 return true;
190 } 190 }
191 191
192 // ---------------------------- 192 // ----------------------------
193 193
194 inline SearchFieldCancelButtonElement::SearchFieldCancelButtonElement(Document* document) 194 inline SearchFieldCancelButtonElement::SearchFieldCancelButtonElement(Document& document)
195 : HTMLDivElement(divTag, document) 195 : HTMLDivElement(divTag, document)
196 , m_capturing(false) 196 , m_capturing(false)
197 { 197 {
198 } 198 }
199 199
200 PassRefPtr<SearchFieldCancelButtonElement> SearchFieldCancelButtonElement::creat e(Document* document) 200 PassRefPtr<SearchFieldCancelButtonElement> SearchFieldCancelButtonElement::creat e(Document& document)
201 { 201 {
202 RefPtr<SearchFieldCancelButtonElement> element = adoptRef(new SearchFieldCan celButtonElement(document)); 202 RefPtr<SearchFieldCancelButtonElement> element = adoptRef(new SearchFieldCan celButtonElement(document));
203 element->setPart(AtomicString("-webkit-search-cancel-button", AtomicString:: ConstructFromLiteral)); 203 element->setPart(AtomicString("-webkit-search-cancel-button", AtomicString:: ConstructFromLiteral));
204 element->setAttribute(idAttr, ShadowElementNames::clearButton()); 204 element->setAttribute(idAttr, ShadowElementNames::clearButton());
205 return element.release(); 205 return element.release();
206 } 206 }
207 207
208 void SearchFieldCancelButtonElement::detach(const AttachContext& context) 208 void SearchFieldCancelButtonElement::detach(const AttachContext& context)
209 { 209 {
210 if (m_capturing) { 210 if (m_capturing) {
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 if (input && !input->isDisabledOrReadOnly()) 261 if (input && !input->isDisabledOrReadOnly())
262 return true; 262 return true;
263 263
264 return HTMLDivElement::willRespondToMouseClickEvents(); 264 return HTMLDivElement::willRespondToMouseClickEvents();
265 } 265 }
266 266
267 // ---------------------------- 267 // ----------------------------
268 268
269 #if ENABLE(INPUT_SPEECH) 269 #if ENABLE(INPUT_SPEECH)
270 270
271 inline InputFieldSpeechButtonElement::InputFieldSpeechButtonElement(Document* do cument) 271 inline InputFieldSpeechButtonElement::InputFieldSpeechButtonElement(Document& do cument)
272 : HTMLDivElement(divTag, document) 272 : HTMLDivElement(divTag, document)
273 , m_capturing(false) 273 , m_capturing(false)
274 , m_state(Idle) 274 , m_state(Idle)
275 , m_listenerId(0) 275 , m_listenerId(0)
276 { 276 {
277 } 277 }
278 278
279 InputFieldSpeechButtonElement::~InputFieldSpeechButtonElement() 279 InputFieldSpeechButtonElement::~InputFieldSpeechButtonElement()
280 { 280 {
281 SpeechInput* speech = speechInput(); 281 SpeechInput* speech = speechInput();
282 if (speech && m_listenerId) { // Could be null when page is unloading. 282 if (speech && m_listenerId) { // Could be null when page is unloading.
283 if (m_state != Idle) 283 if (m_state != Idle)
284 speech->cancelRecognition(m_listenerId); 284 speech->cancelRecognition(m_listenerId);
285 speech->unregisterListener(m_listenerId); 285 speech->unregisterListener(m_listenerId);
286 } 286 }
287 } 287 }
288 288
289 PassRefPtr<InputFieldSpeechButtonElement> InputFieldSpeechButtonElement::create( Document* document) 289 PassRefPtr<InputFieldSpeechButtonElement> InputFieldSpeechButtonElement::create( Document& document)
290 { 290 {
291 RefPtr<InputFieldSpeechButtonElement> element = adoptRef(new InputFieldSpeec hButtonElement(document)); 291 RefPtr<InputFieldSpeechButtonElement> element = adoptRef(new InputFieldSpeec hButtonElement(document));
292 element->setPart(AtomicString("-webkit-input-speech-button", AtomicString::C onstructFromLiteral)); 292 element->setPart(AtomicString("-webkit-input-speech-button", AtomicString::C onstructFromLiteral));
293 element->setAttribute(idAttr, ShadowElementNames::speechButton()); 293 element->setAttribute(idAttr, ShadowElementNames::speechButton());
294 return element.release(); 294 return element.release();
295 } 295 }
296 296
297 void InputFieldSpeechButtonElement::defaultEventHandler(Event* event) 297 void InputFieldSpeechButtonElement::defaultEventHandler(Event* event)
298 { 298 {
299 // For privacy reasons, only allow clicks directly coming from the user. 299 // For privacy reasons, only allow clicks directly coming from the user.
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
456 } 456 }
457 457
458 void InputFieldSpeechButtonElement::stopSpeechInput() 458 void InputFieldSpeechButtonElement::stopSpeechInput()
459 { 459 {
460 if (m_state == Recording) 460 if (m_state == Recording)
461 speechInput()->stopRecording(m_listenerId); 461 speechInput()->stopRecording(m_listenerId);
462 } 462 }
463 #endif // ENABLE(INPUT_SPEECH) 463 #endif // ENABLE(INPUT_SPEECH)
464 464
465 } 465 }
OLDNEW
« no previous file with comments | « Source/core/html/shadow/TextControlInnerElements.h ('k') | Source/core/html/track/TextTrackCue.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698