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

Side by Side Diff: chrome/browser/password_manager/native_backend_libsecret.cc

Issue 920683002: [Password Generation] Add negative votes for crowdsourcing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Test fixes Created 5 years, 10 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
OLDNEW
1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2015 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 "chrome/browser/password_manager/native_backend_libsecret.h" 5 #include "chrome/browser/password_manager/native_backend_libsecret.h"
6 6
7 #include <dlfcn.h> 7 #include <dlfcn.h>
8 #include <list> 8 #include <list>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 {"date_created", SECRET_SCHEMA_ATTRIBUTE_STRING}, 113 {"date_created", SECRET_SCHEMA_ATTRIBUTE_STRING},
114 {"blacklisted_by_user", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, 114 {"blacklisted_by_user", SECRET_SCHEMA_ATTRIBUTE_INTEGER},
115 {"scheme", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, 115 {"scheme", SECRET_SCHEMA_ATTRIBUTE_INTEGER},
116 {"type", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, 116 {"type", SECRET_SCHEMA_ATTRIBUTE_INTEGER},
117 {"times_used", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, 117 {"times_used", SECRET_SCHEMA_ATTRIBUTE_INTEGER},
118 {"date_synced", SECRET_SCHEMA_ATTRIBUTE_STRING}, 118 {"date_synced", SECRET_SCHEMA_ATTRIBUTE_STRING},
119 {"display_name", SECRET_SCHEMA_ATTRIBUTE_STRING}, 119 {"display_name", SECRET_SCHEMA_ATTRIBUTE_STRING},
120 {"avatar_url", SECRET_SCHEMA_ATTRIBUTE_STRING}, 120 {"avatar_url", SECRET_SCHEMA_ATTRIBUTE_STRING},
121 {"federation_url", SECRET_SCHEMA_ATTRIBUTE_STRING}, 121 {"federation_url", SECRET_SCHEMA_ATTRIBUTE_STRING},
122 {"skip_zero_click", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, 122 {"skip_zero_click", SECRET_SCHEMA_ATTRIBUTE_INTEGER},
123 {"generation_upload_status", SECRET_SCHEMA_ATTRIBUTE_INTEGER},
123 // This field is always "chrome-profile_id" so that we can search for it. 124 // This field is always "chrome-profile_id" so that we can search for it.
124 {"application", SECRET_SCHEMA_ATTRIBUTE_STRING}, 125 {"application", SECRET_SCHEMA_ATTRIBUTE_STRING},
125 {nullptr, SECRET_SCHEMA_ATTRIBUTE_STRING}}}; 126 {nullptr, SECRET_SCHEMA_ATTRIBUTE_STRING}}};
126 127
127 const char* GetStringFromAttributes(GHashTable* attrs, const char* keyname) { 128 const char* GetStringFromAttributes(GHashTable* attrs, const char* keyname) {
128 gpointer value = g_hash_table_lookup(attrs, keyname); 129 gpointer value = g_hash_table_lookup(attrs, keyname);
129 return value ? static_cast<char*>(value) : kEmptyString; 130 return value ? static_cast<char*>(value) : kEmptyString;
130 } 131 }
131 132
132 uint32_t GetUintFromAttributes(GHashTable* attrs, const char* keyname) { 133 uint32_t GetUintFromAttributes(GHashTable* attrs, const char* keyname) {
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 static_cast<PasswordForm::Scheme>(GetUintFromAttributes(attrs, "scheme")); 184 static_cast<PasswordForm::Scheme>(GetUintFromAttributes(attrs, "scheme"));
184 int64 date_synced = 0; 185 int64 date_synced = 0;
185 base::StringToInt64(GetStringFromAttributes(attrs, "date_synced"), 186 base::StringToInt64(GetStringFromAttributes(attrs, "date_synced"),
186 &date_synced); 187 &date_synced);
187 form->date_synced = base::Time::FromInternalValue(date_synced); 188 form->date_synced = base::Time::FromInternalValue(date_synced);
188 form->display_name = 189 form->display_name =
189 UTF8ToUTF16(GetStringFromAttributes(attrs, "display_name")); 190 UTF8ToUTF16(GetStringFromAttributes(attrs, "display_name"));
190 form->avatar_url = GURL(GetStringFromAttributes(attrs, "avatar_url")); 191 form->avatar_url = GURL(GetStringFromAttributes(attrs, "avatar_url"));
191 form->federation_url = GURL(GetStringFromAttributes(attrs, "federation_url")); 192 form->federation_url = GURL(GetStringFromAttributes(attrs, "federation_url"));
192 form->skip_zero_click = GetUintFromAttributes(attrs, "skip_zero_click"); 193 form->skip_zero_click = GetUintFromAttributes(attrs, "skip_zero_click");
194 form->generation_upload_status =
195 static_cast<PasswordForm::GenerationUploadStatus>(
196 GetUintFromAttributes(attrs, "generation_upload_status"));
193 197
194 return form.Pass(); 198 return form.Pass();
195 } 199 }
196 200
197 class LibsecretAttributesBuilder { 201 class LibsecretAttributesBuilder {
198 public: 202 public:
199 LibsecretAttributesBuilder(); 203 LibsecretAttributesBuilder();
200 ~LibsecretAttributesBuilder(); 204 ~LibsecretAttributesBuilder();
201 void Append(const std::string& name, const std::string& value); 205 void Append(const std::string& name, const std::string& value);
202 void Append(const std::string& name, int64 value); 206 void Append(const std::string& name, int64 value);
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 "date_created", base::Int64ToString(date_created).c_str(), 436 "date_created", base::Int64ToString(date_created).c_str(),
433 "blacklisted_by_user", form.blacklisted_by_user, 437 "blacklisted_by_user", form.blacklisted_by_user,
434 "type", form.type, 438 "type", form.type,
435 "times_used", form.times_used, 439 "times_used", form.times_used,
436 "scheme", form.scheme, 440 "scheme", form.scheme,
437 "date_synced", base::Int64ToString(date_synced).c_str(), 441 "date_synced", base::Int64ToString(date_synced).c_str(),
438 "display_name", UTF16ToUTF8(form.display_name).c_str(), 442 "display_name", UTF16ToUTF8(form.display_name).c_str(),
439 "avatar_url", form.avatar_url.spec().c_str(), 443 "avatar_url", form.avatar_url.spec().c_str(),
440 "federation_url", form.federation_url.spec().c_str(), 444 "federation_url", form.federation_url.spec().c_str(),
441 "skip_zero_click", form.skip_zero_click, 445 "skip_zero_click", form.skip_zero_click,
446 "generation_upload_status", form.generation_upload_status,
442 "application", app_string_.c_str(), nullptr); 447 "application", app_string_.c_str(), nullptr);
443 448
444 if (error) { 449 if (error) {
445 VLOG(1) << "Libsecret add raw login failed: " << error->message; 450 VLOG(1) << "Libsecret add raw login failed: " << error->message;
446 g_error_free(error); 451 g_error_free(error);
447 return false; 452 return false;
448 } 453 }
449 return true; 454 return true;
450 } 455 }
451 456
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
604 return true; 609 return true;
605 } 610 }
606 611
607 std::string NativeBackendLibsecret::GetProfileSpecificAppString( 612 std::string NativeBackendLibsecret::GetProfileSpecificAppString(
608 LocalProfileId id) { 613 LocalProfileId id) {
609 // Originally, the application string was always just "chrome" and used only 614 // Originally, the application string was always just "chrome" and used only
610 // so that we had *something* to search for since GNOME Keyring won't search 615 // so that we had *something* to search for since GNOME Keyring won't search
611 // for nothing. Now we use it to distinguish passwords for different profiles. 616 // for nothing. Now we use it to distinguish passwords for different profiles.
612 return base::StringPrintf("%s-%d", kLibsecretAppString, id); 617 return base::StringPrintf("%s-%d", kLibsecretAppString, id);
613 } 618 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698