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

Side by Side Diff: chrome/browser/password_manager/native_backend_gnome_x.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
« no previous file with comments | « no previous file | chrome/browser/password_manager/native_backend_gnome_x_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_gnome_x.h" 5 #include "chrome/browser/password_manager/native_backend_gnome_x.h"
6 6
7 #include <dlfcn.h> 7 #include <dlfcn.h>
8 #include <gnome-keyring.h> 8 #include <gnome-keyring.h>
9 9
10 #include <map> 10 #include <map>
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 form->type = static_cast<PasswordForm::Type>(uint_attr_map["type"]); 148 form->type = static_cast<PasswordForm::Type>(uint_attr_map["type"]);
149 form->times_used = uint_attr_map["times_used"]; 149 form->times_used = uint_attr_map["times_used"];
150 form->scheme = static_cast<PasswordForm::Scheme>(uint_attr_map["scheme"]); 150 form->scheme = static_cast<PasswordForm::Scheme>(uint_attr_map["scheme"]);
151 int64 date_synced = 0; 151 int64 date_synced = 0;
152 base::StringToInt64(string_attr_map["date_synced"], &date_synced); 152 base::StringToInt64(string_attr_map["date_synced"], &date_synced);
153 form->date_synced = base::Time::FromInternalValue(date_synced); 153 form->date_synced = base::Time::FromInternalValue(date_synced);
154 form->display_name = UTF8ToUTF16(string_attr_map["display_name"]); 154 form->display_name = UTF8ToUTF16(string_attr_map["display_name"]);
155 form->avatar_url = GURL(string_attr_map["avatar_url"]); 155 form->avatar_url = GURL(string_attr_map["avatar_url"]);
156 form->federation_url = GURL(string_attr_map["federation_url"]); 156 form->federation_url = GURL(string_attr_map["federation_url"]);
157 form->skip_zero_click = uint_attr_map["skip_zero_click"]; 157 form->skip_zero_click = uint_attr_map["skip_zero_click"];
158 form->generation_upload_status =
159 static_cast<PasswordForm::GenerationUploadStatus>(
160 uint_attr_map["generation_upload_status"]);
158 161
159 return form.Pass(); 162 return form.Pass();
160 } 163 }
161 164
162 // Parse all the results from the given GList into a 165 // Parse all the results from the given GList into a
163 // ScopedVector<autofill::PasswordForm>, and free the GList. PasswordForms are 166 // ScopedVector<autofill::PasswordForm>, and free the GList. PasswordForms are
164 // allocated on the heap, and should be deleted by the consumer. If not NULL, 167 // allocated on the heap, and should be deleted by the consumer. If not NULL,
165 // |lookup_form| is used to filter out results -- only credentials with signon 168 // |lookup_form| is used to filter out results -- only credentials with signon
166 // realms passing the PSL matching against |lookup_form->signon_realm| will be 169 // realms passing the PSL matching against |lookup_form->signon_realm| will be
167 // kept. PSL matched results get their signon_realm, origin, and action 170 // kept. PSL matched results get their signon_realm, origin, and action
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 { "date_created", GNOME_KEYRING_ATTRIBUTE_TYPE_STRING }, 239 { "date_created", GNOME_KEYRING_ATTRIBUTE_TYPE_STRING },
237 { "blacklisted_by_user", GNOME_KEYRING_ATTRIBUTE_TYPE_UINT32 }, 240 { "blacklisted_by_user", GNOME_KEYRING_ATTRIBUTE_TYPE_UINT32 },
238 { "scheme", GNOME_KEYRING_ATTRIBUTE_TYPE_UINT32 }, 241 { "scheme", GNOME_KEYRING_ATTRIBUTE_TYPE_UINT32 },
239 { "type", GNOME_KEYRING_ATTRIBUTE_TYPE_UINT32 }, 242 { "type", GNOME_KEYRING_ATTRIBUTE_TYPE_UINT32 },
240 { "times_used", GNOME_KEYRING_ATTRIBUTE_TYPE_UINT32 }, 243 { "times_used", GNOME_KEYRING_ATTRIBUTE_TYPE_UINT32 },
241 { "date_synced", GNOME_KEYRING_ATTRIBUTE_TYPE_STRING }, 244 { "date_synced", GNOME_KEYRING_ATTRIBUTE_TYPE_STRING },
242 { "display_name", GNOME_KEYRING_ATTRIBUTE_TYPE_STRING }, 245 { "display_name", GNOME_KEYRING_ATTRIBUTE_TYPE_STRING },
243 { "avatar_url", GNOME_KEYRING_ATTRIBUTE_TYPE_STRING }, 246 { "avatar_url", GNOME_KEYRING_ATTRIBUTE_TYPE_STRING },
244 { "federation_url", GNOME_KEYRING_ATTRIBUTE_TYPE_STRING }, 247 { "federation_url", GNOME_KEYRING_ATTRIBUTE_TYPE_STRING },
245 { "skip_zero_click", GNOME_KEYRING_ATTRIBUTE_TYPE_UINT32 }, 248 { "skip_zero_click", GNOME_KEYRING_ATTRIBUTE_TYPE_UINT32 },
249 { "generation_upload_status", GNOME_KEYRING_ATTRIBUTE_TYPE_UINT32 },
246 // This field is always "chrome" so that we can search for it. 250 // This field is always "chrome" so that we can search for it.
247 { "application", GNOME_KEYRING_ATTRIBUTE_TYPE_STRING }, 251 { "application", GNOME_KEYRING_ATTRIBUTE_TYPE_STRING },
248 { NULL } 252 { NULL }
249 } 253 }
250 }; 254 };
251 255
252 // Sadly, PasswordStore goes to great lengths to switch from the originally 256 // Sadly, PasswordStore goes to great lengths to switch from the originally
253 // calling thread to the DB thread, and to provide an asynchronous API to 257 // calling thread to the DB thread, and to provide an asynchronous API to
254 // callers while using a synchronous (virtual) API provided by subclasses like 258 // callers while using a synchronous (virtual) API provided by subclasses like
255 // PasswordStoreX -- but GNOME Keyring really wants to be on the GLib main 259 // PasswordStoreX -- but GNOME Keyring really wants to be on the GLib main
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 "date_created", base::Int64ToString(date_created).c_str(), 359 "date_created", base::Int64ToString(date_created).c_str(),
356 "blacklisted_by_user", form.blacklisted_by_user, 360 "blacklisted_by_user", form.blacklisted_by_user,
357 "type", form.type, 361 "type", form.type,
358 "times_used", form.times_used, 362 "times_used", form.times_used,
359 "scheme", form.scheme, 363 "scheme", form.scheme,
360 "date_synced", base::Int64ToString(date_synced).c_str(), 364 "date_synced", base::Int64ToString(date_synced).c_str(),
361 "display_name", UTF16ToUTF8(form.display_name).c_str(), 365 "display_name", UTF16ToUTF8(form.display_name).c_str(),
362 "avatar_url", form.avatar_url.spec().c_str(), 366 "avatar_url", form.avatar_url.spec().c_str(),
363 "federation_url", form.federation_url.spec().c_str(), 367 "federation_url", form.federation_url.spec().c_str(),
364 "skip_zero_click", form.skip_zero_click, 368 "skip_zero_click", form.skip_zero_click,
369 "generation_upload_status", form.generation_upload_status,
365 "application", app_string, 370 "application", app_string,
366 NULL); 371 NULL);
367 } 372 }
368 373
369 void GKRMethod::AddLoginSearch(const PasswordForm& form, 374 void GKRMethod::AddLoginSearch(const PasswordForm& form,
370 const char* app_string) { 375 const char* app_string) {
371 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 376 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
372 lookup_form_.reset(NULL); 377 lookup_form_.reset(NULL);
373 // Search GNOME Keyring for matching passwords to update. 378 // Search GNOME Keyring for matching passwords to update.
374 ScopedAttributeList attrs(gnome_keyring_attribute_list_new()); 379 ScopedAttributeList attrs(gnome_keyring_attribute_list_new());
(...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after
801 } 806 }
802 return ok; 807 return ok;
803 } 808 }
804 809
805 std::string NativeBackendGnome::GetProfileSpecificAppString() const { 810 std::string NativeBackendGnome::GetProfileSpecificAppString() const {
806 // Originally, the application string was always just "chrome" and used only 811 // Originally, the application string was always just "chrome" and used only
807 // so that we had *something* to search for since GNOME Keyring won't search 812 // so that we had *something* to search for since GNOME Keyring won't search
808 // for nothing. Now we use it to distinguish passwords for different profiles. 813 // for nothing. Now we use it to distinguish passwords for different profiles.
809 return base::StringPrintf("%s-%d", kGnomeKeyringAppString, profile_id_); 814 return base::StringPrintf("%s-%d", kGnomeKeyringAppString, profile_id_);
810 } 815 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/password_manager/native_backend_gnome_x_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698