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

Side by Side Diff: chrome/browser/password_manager/native_backend_libsecret.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) 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 <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
11 #include <limits> 11 #include <limits>
12 #include <list> 12 #include <list>
13 #include <utility> 13 #include <utility>
14 #include <vector> 14 #include <vector>
15 15
16 #include "base/logging.h" 16 #include "base/logging.h"
17 #include "base/memory/scoped_ptr.h" 17 #include "base/memory/scoped_ptr.h"
18 #include "base/metrics/histogram.h" 18 #include "base/metrics/histogram.h"
19 #include "base/strings/string_number_conversions.h" 19 #include "base/strings/string_number_conversions.h"
20 #include "base/strings/stringprintf.h" 20 #include "base/strings/stringprintf.h"
21 #include "base/strings/utf_string_conversions.h" 21 #include "base/strings/utf_string_conversions.h"
22 #include "components/password_manager/core/browser/password_manager_metrics_util .h" 22 #include "components/password_manager/core/browser/password_manager_metrics_util .h"
23 #include "components/password_manager/core/browser/password_manager_util.h" 23 #include "components/password_manager/core/browser/password_manager_util.h"
24 #include "url/origin.h"
24 25
25 using autofill::PasswordForm; 26 using autofill::PasswordForm;
26 using base::UTF8ToUTF16; 27 using base::UTF8ToUTF16;
27 using base::UTF16ToUTF8; 28 using base::UTF16ToUTF8;
28 29
29 namespace { 30 namespace {
30 const char kEmptyString[] = ""; 31 const char kEmptyString[] = "";
31 const int kMaxPossibleTimeTValue = std::numeric_limits<int>::max(); 32 const int kMaxPossibleTimeTValue = std::numeric_limits<int>::max();
32 } // namespace 33 } // namespace
33 34
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 form->times_used = GetUintFromAttributes(attrs, "times_used"); 186 form->times_used = GetUintFromAttributes(attrs, "times_used");
186 form->scheme = 187 form->scheme =
187 static_cast<PasswordForm::Scheme>(GetUintFromAttributes(attrs, "scheme")); 188 static_cast<PasswordForm::Scheme>(GetUintFromAttributes(attrs, "scheme"));
188 int64_t date_synced = 0; 189 int64_t date_synced = 0;
189 base::StringToInt64(GetStringFromAttributes(attrs, "date_synced"), 190 base::StringToInt64(GetStringFromAttributes(attrs, "date_synced"),
190 &date_synced); 191 &date_synced);
191 form->date_synced = base::Time::FromInternalValue(date_synced); 192 form->date_synced = base::Time::FromInternalValue(date_synced);
192 form->display_name = 193 form->display_name =
193 UTF8ToUTF16(GetStringFromAttributes(attrs, "display_name")); 194 UTF8ToUTF16(GetStringFromAttributes(attrs, "display_name"));
194 form->icon_url = GURL(GetStringFromAttributes(attrs, "avatar_url")); 195 form->icon_url = GURL(GetStringFromAttributes(attrs, "avatar_url"));
195 form->federation_url = GURL(GetStringFromAttributes(attrs, "federation_url")); 196 form->federation_origin =
197 url::Origin(GURL(GetStringFromAttributes(attrs, "federation_url")));
196 form->skip_zero_click = GetUintFromAttributes(attrs, "skip_zero_click"); 198 form->skip_zero_click = GetUintFromAttributes(attrs, "skip_zero_click");
197 form->generation_upload_status = 199 form->generation_upload_status =
198 static_cast<PasswordForm::GenerationUploadStatus>( 200 static_cast<PasswordForm::GenerationUploadStatus>(
199 GetUintFromAttributes(attrs, "generation_upload_status")); 201 GetUintFromAttributes(attrs, "generation_upload_status"));
200 base::StringPiece encoded_form_data = 202 base::StringPiece encoded_form_data =
201 GetStringFromAttributes(attrs, "form_data"); 203 GetStringFromAttributes(attrs, "form_data");
202 if (!encoded_form_data.empty()) { 204 if (!encoded_form_data.empty()) {
203 bool success = DeserializeFormDataFromBase64String(encoded_form_data, 205 bool success = DeserializeFormDataFromBase64String(encoded_form_data,
204 &form->form_data); 206 &form->form_data);
205 password_manager::metrics_util::FormDeserializationStatus status = 207 password_manager::metrics_util::FormDeserializationStatus status =
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 bool NativeBackendLibsecret::RawAddLogin(const PasswordForm& form) { 443 bool NativeBackendLibsecret::RawAddLogin(const PasswordForm& form) {
442 int64_t date_created = form.date_created.ToInternalValue(); 444 int64_t date_created = form.date_created.ToInternalValue();
443 // If we are asked to save a password with 0 date, use the current time. 445 // If we are asked to save a password with 0 date, use the current time.
444 // We don't want to actually save passwords as though on January 1, 1601. 446 // We don't want to actually save passwords as though on January 1, 1601.
445 if (!date_created) 447 if (!date_created)
446 date_created = base::Time::Now().ToInternalValue(); 448 date_created = base::Time::Now().ToInternalValue();
447 int64_t date_synced = form.date_synced.ToInternalValue(); 449 int64_t date_synced = form.date_synced.ToInternalValue();
448 std::string form_data; 450 std::string form_data;
449 SerializeFormDataToBase64String(form.form_data, &form_data); 451 SerializeFormDataToBase64String(form.form_data, &form_data);
450 GError* error = nullptr; 452 GError* error = nullptr;
453 // clang-format off
451 secret_password_store_sync( 454 secret_password_store_sync(
452 &kLibsecretSchema, 455 &kLibsecretSchema,
453 nullptr, // Default collection. 456 nullptr, // Default collection.
454 form.origin.spec().c_str(), // Display name. 457 form.origin.spec().c_str(), // Display name.
455 UTF16ToUTF8(form.password_value).c_str(), 458 UTF16ToUTF8(form.password_value).c_str(),
456 nullptr, // no cancellable ojbect 459 nullptr, // no cancellable ojbect
457 &error, 460 &error,
458 "origin_url", form.origin.spec().c_str(), 461 "origin_url", form.origin.spec().c_str(),
459 "action_url", form.action.spec().c_str(), 462 "action_url", form.action.spec().c_str(),
460 "username_element", UTF16ToUTF8(form.username_element).c_str(), 463 "username_element", UTF16ToUTF8(form.username_element).c_str(),
461 "username_value", UTF16ToUTF8(form.username_value).c_str(), 464 "username_value", UTF16ToUTF8(form.username_value).c_str(),
462 "password_element", UTF16ToUTF8(form.password_element).c_str(), 465 "password_element", UTF16ToUTF8(form.password_element).c_str(),
463 "submit_element", UTF16ToUTF8(form.submit_element).c_str(), 466 "submit_element", UTF16ToUTF8(form.submit_element).c_str(),
464 "signon_realm", form.signon_realm.c_str(), 467 "signon_realm", form.signon_realm.c_str(),
465 "ssl_valid", form.ssl_valid, 468 "ssl_valid", form.ssl_valid,
466 "preferred", form.preferred, 469 "preferred", form.preferred,
467 "date_created", base::Int64ToString(date_created).c_str(), 470 "date_created", base::Int64ToString(date_created).c_str(),
468 "blacklisted_by_user", form.blacklisted_by_user, 471 "blacklisted_by_user", form.blacklisted_by_user,
469 "type", form.type, 472 "type", form.type,
470 "times_used", form.times_used, 473 "times_used", form.times_used,
471 "scheme", form.scheme, 474 "scheme", form.scheme,
472 "date_synced", base::Int64ToString(date_synced).c_str(), 475 "date_synced", base::Int64ToString(date_synced).c_str(),
473 "display_name", UTF16ToUTF8(form.display_name).c_str(), 476 "display_name", UTF16ToUTF8(form.display_name).c_str(),
474 "avatar_url", form.icon_url.spec().c_str(), 477 "avatar_url", form.icon_url.spec().c_str(),
475 "federation_url", form.federation_url.spec().c_str(), 478 "federation_url", form.federation_origin.Serialize().c_str(),
476 "skip_zero_click", form.skip_zero_click, 479 "skip_zero_click", form.skip_zero_click,
477 "generation_upload_status", form.generation_upload_status, 480 "generation_upload_status", form.generation_upload_status,
478 "form_data", form_data.c_str(), 481 "form_data", form_data.c_str(),
479 "application", app_string_.c_str(), nullptr); 482 "application", app_string_.c_str(),
483 nullptr);
484 // clang-format on
480 485
481 if (error) { 486 if (error) {
482 LOG(ERROR) << "Libsecret add raw login failed: " << error->message; 487 LOG(ERROR) << "Libsecret add raw login failed: " << error->message;
483 g_error_free(error); 488 g_error_free(error);
484 return false; 489 return false;
485 } 490 }
486 return true; 491 return true;
487 } 492 }
488 493
489 bool NativeBackendLibsecret::GetAutofillableLogins( 494 bool NativeBackendLibsecret::GetAutofillableLogins(
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
647 UMA_HISTOGRAM_ENUMERATION( 652 UMA_HISTOGRAM_ENUMERATION(
648 "PasswordManager.PslDomainMatchTriggering", 653 "PasswordManager.PslDomainMatchTriggering",
649 password_manager::ShouldPSLDomainMatchingApply(registered_domain) 654 password_manager::ShouldPSLDomainMatchingApply(registered_domain)
650 ? psl_domain_match_metric 655 ? psl_domain_match_metric
651 : password_manager::PSL_DOMAIN_MATCH_NOT_USED, 656 : password_manager::PSL_DOMAIN_MATCH_NOT_USED,
652 password_manager::PSL_DOMAIN_MATCH_COUNT); 657 password_manager::PSL_DOMAIN_MATCH_COUNT);
653 } 658 }
654 g_list_free(found); 659 g_list_free(found);
655 return forms; 660 return forms;
656 } 661 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698