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

Side by Side Diff: third_party/WebKit/Source/modules/credentialmanager/PasswordCredential.cpp

Issue 1476003002: Build content-type string in PasswordCredential::encodeFormData() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 #include "modules/credentialmanager/PasswordCredential.h" 6 #include "modules/credentialmanager/PasswordCredential.h"
7 7
8 #include "bindings/core/v8/Dictionary.h" 8 #include "bindings/core/v8/Dictionary.h"
9 #include "bindings/core/v8/ExceptionState.h" 9 #include "bindings/core/v8/ExceptionState.h"
10 #include "core/dom/ExecutionContext.h" 10 #include "core/dom/ExecutionContext.h"
(...skipping 28 matching lines...) Expand all
39 { 39 {
40 } 40 }
41 41
42 PasswordCredential::PasswordCredential(const String& id, const String& password, const String& name, const KURL& icon) 42 PasswordCredential::PasswordCredential(const String& id, const String& password, const String& name, const KURL& icon)
43 : Credential(PlatformPasswordCredential::create(id, password, name, icon)) 43 : Credential(PlatformPasswordCredential::create(id, password, name, icon))
44 , m_idName("username") 44 , m_idName("username")
45 , m_passwordName("password") 45 , m_passwordName("password")
46 { 46 {
47 } 47 }
48 48
49 PassRefPtr<EncodedFormData> PasswordCredential::encodeFormData() const 49 PassRefPtr<EncodedFormData> PasswordCredential::encodeFormData(String& contentTy pe) const
50 { 50 {
51 if (m_additionalData.isURLSearchParams()) { 51 if (m_additionalData.isURLSearchParams()) {
52 // If |additionalData| is a 'URLSearchParams' object, build a urlencoded response. 52 // If |additionalData| is a 'URLSearchParams' object, build a urlencoded response.
53 URLSearchParams* params = URLSearchParams::create(URLSearchParamsInit()) ; 53 URLSearchParams* params = URLSearchParams::create(URLSearchParamsInit()) ;
54 URLSearchParams* additionalData = m_additionalData.getAsURLSearchParams( ); 54 URLSearchParams* additionalData = m_additionalData.getAsURLSearchParams( );
55 for (const auto& param : additionalData->params()) 55 for (const auto& param : additionalData->params())
56 params->append(param.first, param.second); 56 params->append(param.first, param.second);
57 params->append(idName(), id()); 57 params->append(idName(), id());
58 params->append(passwordName(), password()); 58 params->append(passwordName(), password());
59 59
60 contentType = AtomicString("application/x-www-form-urlencoded;charset=UT F-8", AtomicString::ConstructFromLiteral);
61
60 return params->encodeFormData(); 62 return params->encodeFormData();
61 } 63 }
62 64
63 // Otherwise, we'll build a multipart response. 65 // Otherwise, we'll build a multipart response.
64 FormData* formData = FormData::create(nullptr); 66 FormData* formData = FormData::create(nullptr);
65 if (m_additionalData.isFormData()) { 67 if (m_additionalData.isFormData()) {
66 FormData* additionalData = m_additionalData.getAsFormData(); 68 FormData* additionalData = m_additionalData.getAsFormData();
67 for (const FormData::Entry* entry : additionalData->entries()) { 69 for (const FormData::Entry* entry : additionalData->entries()) {
68 if (entry->blob()) 70 if (entry->blob())
69 formData->append(formData->decode(entry->name()), entry->blob(), entry->filename()); 71 formData->append(formData->decode(entry->name()), entry->blob(), entry->filename());
70 else 72 else
71 formData->append(formData->decode(entry->name()), formData->deco de(entry->value())); 73 formData->append(formData->decode(entry->name()), formData->deco de(entry->value()));
72 } 74 }
73 } 75 }
74 formData->append(idName(), id()); 76 formData->append(idName(), id());
75 formData->append(passwordName(), password()); 77 formData->append(passwordName(), password());
76 78
77 return formData->encodeMultiPartFormData(); 79 RefPtr<EncodedFormData> encodedData = formData->encodeMultiPartFormData();
80 contentType = AtomicString("multipart/form-data; boundary=", AtomicString::C onstructFromLiteral) + encodedData->boundary().data();
81 return encodedData.release();
78 } 82 }
79 83
80 const String& PasswordCredential::password() const 84 const String& PasswordCredential::password() const
81 { 85 {
82 return static_cast<PlatformPasswordCredential*>(m_platformCredential.get())- >password(); 86 return static_cast<PlatformPasswordCredential*>(m_platformCredential.get())- >password();
83 } 87 }
84 88
85 DEFINE_TRACE(PasswordCredential) 89 DEFINE_TRACE(PasswordCredential)
86 { 90 {
87 Credential::trace(visitor); 91 Credential::trace(visitor);
88 visitor->trace(m_additionalData); 92 visitor->trace(m_additionalData);
89 } 93 }
90 94
91 } // namespace blink 95 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698