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

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: Created 4 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 <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 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
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;
451 secret_password_store_sync( 453 secret_password_store_sync(
452 &kLibsecretSchema, 454 &kLibsecretSchema,
453 nullptr, // Default collection. 455 nullptr, // Default collection.
454 form.origin.spec().c_str(), // Display name. 456 form.origin.spec().c_str(), // Display name.
455 UTF16ToUTF8(form.password_value).c_str(), 457 UTF16ToUTF8(form.password_value).c_str(),
456 nullptr, // no cancellable ojbect 458 nullptr, // no cancellable ojbect
457 &error, 459 &error, "origin_url", form.origin.spec().c_str(), "action_url",
458 "origin_url", form.origin.spec().c_str(), 460 form.action.spec().c_str(), "username_element",
459 "action_url", form.action.spec().c_str(), 461 UTF16ToUTF8(form.username_element).c_str(), "username_value",
460 "username_element", UTF16ToUTF8(form.username_element).c_str(), 462 UTF16ToUTF8(form.username_value).c_str(), "password_element",
461 "username_value", UTF16ToUTF8(form.username_value).c_str(), 463 UTF16ToUTF8(form.password_element).c_str(), "submit_element",
462 "password_element", UTF16ToUTF8(form.password_element).c_str(), 464 UTF16ToUTF8(form.submit_element).c_str(), "signon_realm",
463 "submit_element", UTF16ToUTF8(form.submit_element).c_str(), 465 form.signon_realm.c_str(), "ssl_valid", form.ssl_valid, "preferred",
464 "signon_realm", form.signon_realm.c_str(), 466 form.preferred, "date_created", base::Int64ToString(date_created).c_str(),
465 "ssl_valid", form.ssl_valid, 467 "blacklisted_by_user", form.blacklisted_by_user, "type", form.type,
466 "preferred", form.preferred, 468 "times_used", form.times_used, "scheme", form.scheme, "date_synced",
467 "date_created", base::Int64ToString(date_created).c_str(), 469 base::Int64ToString(date_synced).c_str(), "display_name",
468 "blacklisted_by_user", form.blacklisted_by_user, 470 UTF16ToUTF8(form.display_name).c_str(), "avatar_url",
469 "type", form.type, 471 form.icon_url.spec().c_str(), "federation_url",
470 "times_used", form.times_used, 472 form.federation_origin.Serialize().c_str(), "skip_zero_click",
471 "scheme", form.scheme, 473 form.skip_zero_click, "generation_upload_status",
472 "date_synced", base::Int64ToString(date_synced).c_str(), 474 form.generation_upload_status, "form_data", form_data.c_str(),
vasilii 2016/02/23 14:59:20 Please return the nice formatting.
Mike West 2016/02/25 09:56:15 Ditto.
473 "display_name", UTF16ToUTF8(form.display_name).c_str(),
474 "avatar_url", form.icon_url.spec().c_str(),
475 "federation_url", form.federation_url.spec().c_str(),
476 "skip_zero_click", form.skip_zero_click,
477 "generation_upload_status", form.generation_upload_status,
478 "form_data", form_data.c_str(),
479 "application", app_string_.c_str(), nullptr); 475 "application", app_string_.c_str(), nullptr);
480 476
481 if (error) { 477 if (error) {
482 LOG(ERROR) << "Libsecret add raw login failed: " << error->message; 478 LOG(ERROR) << "Libsecret add raw login failed: " << error->message;
483 g_error_free(error); 479 g_error_free(error);
484 return false; 480 return false;
485 } 481 }
486 return true; 482 return true;
487 } 483 }
488 484
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
647 UMA_HISTOGRAM_ENUMERATION( 643 UMA_HISTOGRAM_ENUMERATION(
648 "PasswordManager.PslDomainMatchTriggering", 644 "PasswordManager.PslDomainMatchTriggering",
649 password_manager::ShouldPSLDomainMatchingApply(registered_domain) 645 password_manager::ShouldPSLDomainMatchingApply(registered_domain)
650 ? psl_domain_match_metric 646 ? psl_domain_match_metric
651 : password_manager::PSL_DOMAIN_MATCH_NOT_USED, 647 : password_manager::PSL_DOMAIN_MATCH_NOT_USED,
652 password_manager::PSL_DOMAIN_MATCH_COUNT); 648 password_manager::PSL_DOMAIN_MATCH_COUNT);
653 } 649 }
654 g_list_free(found); 650 g_list_free(found);
655 return forms; 651 return forms;
656 } 652 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698