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

Side by Side Diff: Source/core/loader/FormSubmission.cpp

Issue 333593002: Oilpan: Prepare to move FormSubmission to Oilpan heap. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 6 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/loader/FormSubmission.h ('k') | Source/core/loader/NavigationScheduler.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) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * 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 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 , m_event(event) 153 , m_event(event)
154 { 154 {
155 } 155 }
156 156
157 inline FormSubmission::FormSubmission(const String& result) 157 inline FormSubmission::FormSubmission(const String& result)
158 : m_method(DialogMethod) 158 : m_method(DialogMethod)
159 , m_result(result) 159 , m_result(result)
160 { 160 {
161 } 161 }
162 162
163 PassRefPtr<FormSubmission> FormSubmission::create(HTMLFormElement* form, const A ttributes& attributes, PassRefPtrWillBeRawPtr<Event> event, FormSubmissionTrigge r trigger) 163 PassRefPtrWillBeRawPtr<FormSubmission> FormSubmission::create(HTMLFormElement* f orm, const Attributes& attributes, PassRefPtrWillBeRawPtr<Event> event, FormSubm issionTrigger trigger)
164 { 164 {
165 ASSERT(form); 165 ASSERT(form);
166 166
167 HTMLFormControlElement* submitButton = 0; 167 HTMLFormControlElement* submitButton = 0;
168 if (event && event->target()) { 168 if (event && event->target()) {
169 for (Node* node = event->target()->toNode(); node; node = node->parentOr ShadowHostNode()) { 169 for (Node* node = event->target()->toNode(); node; node = node->parentOr ShadowHostNode()) {
170 if (node->isElementNode() && toElement(node)->isFormControlElement() ) { 170 if (node->isElementNode() && toElement(node)->isFormControlElement() ) {
171 submitButton = toHTMLFormControlElement(node); 171 submitButton = toHTMLFormControlElement(node);
172 break; 172 break;
173 } 173 }
174 } 174 }
175 } 175 }
176 176
177 FormSubmission::Attributes copiedAttributes; 177 FormSubmission::Attributes copiedAttributes;
178 copiedAttributes.copyFrom(attributes); 178 copiedAttributes.copyFrom(attributes);
179 if (submitButton) { 179 if (submitButton) {
180 AtomicString attributeValue; 180 AtomicString attributeValue;
181 if (!(attributeValue = submitButton->fastGetAttribute(formactionAttr)).i sNull()) 181 if (!(attributeValue = submitButton->fastGetAttribute(formactionAttr)).i sNull())
182 copiedAttributes.parseAction(form->document(), attributeValue); 182 copiedAttributes.parseAction(form->document(), attributeValue);
183 if (!(attributeValue = submitButton->fastGetAttribute(formenctypeAttr)). isNull()) 183 if (!(attributeValue = submitButton->fastGetAttribute(formenctypeAttr)). isNull())
184 copiedAttributes.updateEncodingType(attributeValue); 184 copiedAttributes.updateEncodingType(attributeValue);
185 if (!(attributeValue = submitButton->fastGetAttribute(formmethodAttr)).i sNull()) 185 if (!(attributeValue = submitButton->fastGetAttribute(formmethodAttr)).i sNull())
186 copiedAttributes.updateMethodType(attributeValue); 186 copiedAttributes.updateMethodType(attributeValue);
187 if (!(attributeValue = submitButton->fastGetAttribute(formtargetAttr)).i sNull()) 187 if (!(attributeValue = submitButton->fastGetAttribute(formtargetAttr)).i sNull())
188 copiedAttributes.setTarget(attributeValue); 188 copiedAttributes.setTarget(attributeValue);
189 } 189 }
190 190
191 if (copiedAttributes.method() == DialogMethod) { 191 if (copiedAttributes.method() == DialogMethod) {
192 if (submitButton) 192 if (submitButton)
193 return adoptRef(new FormSubmission(submitButton->resultForDialogSubm it())); 193 return adoptRefWillBeNoop(new FormSubmission(submitButton->resultFor DialogSubmit()));
194 return adoptRef(new FormSubmission("")); 194 return adoptRefWillBeNoop(new FormSubmission(""));
195 } 195 }
196 196
197 Document& document = form->document(); 197 Document& document = form->document();
198 KURL actionURL = copiedAttributes.action().isEmpty() ? document.url() : copi edAttributes.action(); 198 KURL actionURL = copiedAttributes.action().isEmpty() ? document.url() : copi edAttributes.action();
199 bool isMailtoForm = actionURL.protocolIs("mailto"); 199 bool isMailtoForm = actionURL.protocolIs("mailto");
200 bool isMultiPartForm = false; 200 bool isMultiPartForm = false;
201 AtomicString encodingType = copiedAttributes.encodingType(); 201 AtomicString encodingType = copiedAttributes.encodingType();
202 202
203 if (copiedAttributes.method() == PostMethod) { 203 if (copiedAttributes.method() == PostMethod) {
204 isMultiPartForm = copiedAttributes.isMultiPartForm(); 204 isMultiPartForm = copiedAttributes.isMultiPartForm();
(...skipping 30 matching lines...) Expand all
235 if (copiedAttributes.method() == PostMethod && isMailtoForm) { 235 if (copiedAttributes.method() == PostMethod && isMailtoForm) {
236 // Convert the form data into a string that we put into the URL. 236 // Convert the form data into a string that we put into the URL.
237 appendMailtoPostFormDataToURL(actionURL, *formData, encodingType); 237 appendMailtoPostFormDataToURL(actionURL, *formData, encodingType);
238 formData = FormData::create(); 238 formData = FormData::create();
239 } 239 }
240 } 240 }
241 241
242 formData->setIdentifier(generateFormDataIdentifier()); 242 formData->setIdentifier(generateFormDataIdentifier());
243 formData->setContainsPasswordData(containsPasswordData); 243 formData->setContainsPasswordData(containsPasswordData);
244 AtomicString targetOrBaseTarget = copiedAttributes.target().isEmpty() ? docu ment.baseTarget() : copiedAttributes.target(); 244 AtomicString targetOrBaseTarget = copiedAttributes.target().isEmpty() ? docu ment.baseTarget() : copiedAttributes.target();
245 return adoptRef(new FormSubmission(copiedAttributes.method(), actionURL, tar getOrBaseTarget, encodingType, FormState::create(*form, trigger), formData.relea se(), boundary, event)); 245 return adoptRefWillBeNoop(new FormSubmission(copiedAttributes.method(), acti onURL, targetOrBaseTarget, encodingType, FormState::create(*form, trigger), form Data.release(), boundary, event));
246 }
247
248 void FormSubmission::trace(Visitor* visitor)
249 {
250 visitor->trace(m_formState);
251 visitor->trace(m_event);
246 } 252 }
247 253
248 KURL FormSubmission::requestURL() const 254 KURL FormSubmission::requestURL() const
249 { 255 {
250 if (m_method == FormSubmission::PostMethod) 256 if (m_method == FormSubmission::PostMethod)
251 return m_action; 257 return m_action;
252 258
253 KURL requestURL(m_action); 259 KURL requestURL(m_action);
254 requestURL.setQuery(m_formData->flattenToString()); 260 requestURL.setQuery(m_formData->flattenToString());
255 return requestURL; 261 return requestURL;
(...skipping 16 matching lines...) Expand all
272 frameRequest.resourceRequest().setHTTPContentType(m_contentType); 278 frameRequest.resourceRequest().setHTTPContentType(m_contentType);
273 else 279 else
274 frameRequest.resourceRequest().setHTTPContentType(m_contentType + "; boundary=" + m_boundary); 280 frameRequest.resourceRequest().setHTTPContentType(m_contentType + "; boundary=" + m_boundary);
275 } 281 }
276 282
277 frameRequest.resourceRequest().setURL(requestURL()); 283 frameRequest.resourceRequest().setURL(requestURL());
278 FrameLoader::addHTTPOriginIfNeeded(frameRequest.resourceRequest(), AtomicStr ing(m_origin)); 284 FrameLoader::addHTTPOriginIfNeeded(frameRequest.resourceRequest(), AtomicStr ing(m_origin));
279 } 285 }
280 286
281 } 287 }
OLDNEW
« no previous file with comments | « Source/core/loader/FormSubmission.h ('k') | Source/core/loader/NavigationScheduler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698