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

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

Issue 1723583004: CREDENTIAL: Convert federations from URLs to origins throughout. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: iOS2 Created 4 years, 9 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) 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 #include <stddef.h> 9 #include <stddef.h>
10 #include <stdint.h> 10 #include <stdint.h>
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 : base::Time::FromInternalValue(date_created); 150 : base::Time::FromInternalValue(date_created);
151 form->blacklisted_by_user = uint_attr_map["blacklisted_by_user"]; 151 form->blacklisted_by_user = uint_attr_map["blacklisted_by_user"];
152 form->type = static_cast<PasswordForm::Type>(uint_attr_map["type"]); 152 form->type = static_cast<PasswordForm::Type>(uint_attr_map["type"]);
153 form->times_used = uint_attr_map["times_used"]; 153 form->times_used = uint_attr_map["times_used"];
154 form->scheme = static_cast<PasswordForm::Scheme>(uint_attr_map["scheme"]); 154 form->scheme = static_cast<PasswordForm::Scheme>(uint_attr_map["scheme"]);
155 int64_t date_synced = 0; 155 int64_t date_synced = 0;
156 base::StringToInt64(string_attr_map["date_synced"], &date_synced); 156 base::StringToInt64(string_attr_map["date_synced"], &date_synced);
157 form->date_synced = base::Time::FromInternalValue(date_synced); 157 form->date_synced = base::Time::FromInternalValue(date_synced);
158 form->display_name = UTF8ToUTF16(string_attr_map["display_name"]); 158 form->display_name = UTF8ToUTF16(string_attr_map["display_name"]);
159 form->icon_url = GURL(string_attr_map["avatar_url"]); 159 form->icon_url = GURL(string_attr_map["avatar_url"]);
160 form->federation_url = GURL(string_attr_map["federation_url"]); 160 form->federation_origin =
161 url::Origin(GURL(string_attr_map["federation_url"]));
161 form->skip_zero_click = uint_attr_map["skip_zero_click"]; 162 form->skip_zero_click = uint_attr_map["skip_zero_click"];
162 form->generation_upload_status = 163 form->generation_upload_status =
163 static_cast<PasswordForm::GenerationUploadStatus>( 164 static_cast<PasswordForm::GenerationUploadStatus>(
164 uint_attr_map["generation_upload_status"]); 165 uint_attr_map["generation_upload_status"]);
165 if (!string_attr_map["form_data"].empty()) { 166 if (!string_attr_map["form_data"].empty()) {
166 bool success = DeserializeFormDataFromBase64String( 167 bool success = DeserializeFormDataFromBase64String(
167 string_attr_map["form_data"], &form->form_data); 168 string_attr_map["form_data"], &form->form_data);
168 FormDeserializationStatus status = success ? GNOME_SUCCESS : GNOME_FAILURE; 169 FormDeserializationStatus status = success ? GNOME_SUCCESS : GNOME_FAILURE;
169 LogFormDataDeserializationStatus(status); 170 LogFormDataDeserializationStatus(status);
170 } 171 }
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 void GKRMethod::AddLogin(const PasswordForm& form, const char* app_string) { 338 void GKRMethod::AddLogin(const PasswordForm& form, const char* app_string) {
338 DCHECK_CURRENTLY_ON(BrowserThread::UI); 339 DCHECK_CURRENTLY_ON(BrowserThread::UI);
339 int64_t date_created = form.date_created.ToInternalValue(); 340 int64_t date_created = form.date_created.ToInternalValue();
340 // If we are asked to save a password with 0 date, use the current time. 341 // If we are asked to save a password with 0 date, use the current time.
341 // We don't want to actually save passwords as though on January 1, 1601. 342 // We don't want to actually save passwords as though on January 1, 1601.
342 if (!date_created) 343 if (!date_created)
343 date_created = base::Time::Now().ToInternalValue(); 344 date_created = base::Time::Now().ToInternalValue();
344 int64_t date_synced = form.date_synced.ToInternalValue(); 345 int64_t date_synced = form.date_synced.ToInternalValue();
345 std::string form_data; 346 std::string form_data;
346 SerializeFormDataToBase64String(form.form_data, &form_data); 347 SerializeFormDataToBase64String(form.form_data, &form_data);
348 // clang-format off
347 gnome_keyring_store_password( 349 gnome_keyring_store_password(
348 &kGnomeSchema, 350 &kGnomeSchema,
349 nullptr, // Default keyring. 351 nullptr, // Default keyring.
350 form.origin.spec().c_str(), // Display name. 352 form.origin.spec().c_str(), // Display name.
351 UTF16ToUTF8(form.password_value).c_str(), 353 UTF16ToUTF8(form.password_value).c_str(), OnOperationDone,
352 OnOperationDone, 354 this, // data
353 this, // data
354 nullptr, // destroy_data 355 nullptr, // destroy_data
355 "origin_url", form.origin.spec().c_str(), 356 "origin_url", form.origin.spec().c_str(),
356 "action_url", form.action.spec().c_str(), 357 "action_url", form.action.spec().c_str(),
357 "username_element", UTF16ToUTF8(form.username_element).c_str(), 358 "username_element", UTF16ToUTF8(form.username_element).c_str(),
358 "username_value", UTF16ToUTF8(form.username_value).c_str(), 359 "username_value", UTF16ToUTF8(form.username_value).c_str(),
359 "password_element", UTF16ToUTF8(form.password_element).c_str(), 360 "password_element", UTF16ToUTF8(form.password_element).c_str(),
360 "submit_element", UTF16ToUTF8(form.submit_element).c_str(), 361 "submit_element", UTF16ToUTF8(form.submit_element).c_str(),
361 "signon_realm", form.signon_realm.c_str(), 362 "signon_realm", form.signon_realm.c_str(),
362 "ssl_valid", form.ssl_valid, 363 "ssl_valid", form.ssl_valid,
363 "preferred", form.preferred, 364 "preferred", form.preferred,
364 "date_created", base::Int64ToString(date_created).c_str(), 365 "date_created", base::Int64ToString(date_created).c_str(),
365 "blacklisted_by_user", form.blacklisted_by_user, 366 "blacklisted_by_user", form.blacklisted_by_user,
366 "type", form.type, 367 "type", form.type,
367 "times_used", form.times_used, 368 "times_used", form.times_used,
368 "scheme", form.scheme, 369 "scheme", form.scheme,
369 "date_synced", base::Int64ToString(date_synced).c_str(), 370 "date_synced", base::Int64ToString(date_synced).c_str(),
370 "display_name", UTF16ToUTF8(form.display_name).c_str(), 371 "display_name", UTF16ToUTF8(form.display_name).c_str(),
371 "avatar_url", form.icon_url.spec().c_str(), 372 "avatar_url", form.icon_url.spec().c_str(),
372 "federation_url", form.federation_url.spec().c_str(), 373 "federation_url", form.federation_origin.Serialize().c_str(),
373 "skip_zero_click", form.skip_zero_click, 374 "skip_zero_click", form.skip_zero_click,
374 "generation_upload_status", form.generation_upload_status, 375 "generation_upload_status", form.generation_upload_status,
375 "form_data", form_data.c_str(), 376 "form_data", form_data.c_str(),
376 "application", app_string, 377 "application", app_string,
377 nullptr); 378 nullptr);
379 // clang-format on
378 } 380 }
379 381
380 void GKRMethod::LoginSearch(const PasswordForm& form, 382 void GKRMethod::LoginSearch(const PasswordForm& form,
381 const char* app_string) { 383 const char* app_string) {
382 DCHECK_CURRENTLY_ON(BrowserThread::UI); 384 DCHECK_CURRENTLY_ON(BrowserThread::UI);
383 lookup_form_.reset(nullptr); 385 lookup_form_.reset(nullptr);
384 // Search GNOME Keyring for matching passwords to update. 386 // Search GNOME Keyring for matching passwords to update.
385 ScopedAttributeList attrs(gnome_keyring_attribute_list_new()); 387 ScopedAttributeList attrs(gnome_keyring_attribute_list_new());
386 AppendString(&attrs, "origin_url", form.origin.spec()); 388 AppendString(&attrs, "origin_url", form.origin.spec());
387 AppendString(&attrs, "username_element", UTF16ToUTF8(form.username_element)); 389 AppendString(&attrs, "username_element", UTF16ToUTF8(form.username_element));
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after
802 ScopedVector<PasswordForm> forms; 804 ScopedVector<PasswordForm> forms;
803 if (!GetLoginsBetween(get_begin, get_end, date_to_compare, &forms)) 805 if (!GetLoginsBetween(get_begin, get_end, date_to_compare, &forms))
804 return false; 806 return false;
805 807
806 for (size_t i = 0; i < forms.size(); ++i) { 808 for (size_t i = 0; i < forms.size(); ++i) {
807 if (!RemoveLogin(*forms[i], changes)) 809 if (!RemoveLogin(*forms[i], changes))
808 return false; 810 return false;
809 } 811 }
810 return true; 812 return true;
811 } 813 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698