| OLD | NEW |
| 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 |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 {"preferred", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, | 115 {"preferred", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, |
| 116 {"date_created", SECRET_SCHEMA_ATTRIBUTE_STRING}, | 116 {"date_created", SECRET_SCHEMA_ATTRIBUTE_STRING}, |
| 117 {"blacklisted_by_user", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, | 117 {"blacklisted_by_user", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, |
| 118 {"scheme", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, | 118 {"scheme", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, |
| 119 {"type", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, | 119 {"type", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, |
| 120 {"times_used", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, | 120 {"times_used", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, |
| 121 {"date_synced", SECRET_SCHEMA_ATTRIBUTE_STRING}, | 121 {"date_synced", SECRET_SCHEMA_ATTRIBUTE_STRING}, |
| 122 {"display_name", SECRET_SCHEMA_ATTRIBUTE_STRING}, | 122 {"display_name", SECRET_SCHEMA_ATTRIBUTE_STRING}, |
| 123 {"avatar_url", SECRET_SCHEMA_ATTRIBUTE_STRING}, | 123 {"avatar_url", SECRET_SCHEMA_ATTRIBUTE_STRING}, |
| 124 {"federation_url", SECRET_SCHEMA_ATTRIBUTE_STRING}, | 124 {"federation_url", SECRET_SCHEMA_ATTRIBUTE_STRING}, |
| 125 {"skip_zero_click", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, | 125 {"should_skip_zero_click", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, |
| 126 {"generation_upload_status", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, | 126 {"generation_upload_status", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, |
| 127 {"form_data", SECRET_SCHEMA_ATTRIBUTE_STRING}, | 127 {"form_data", SECRET_SCHEMA_ATTRIBUTE_STRING}, |
| 128 // This field is always "chrome-profile_id" so that we can search for it. | 128 // This field is always "chrome-profile_id" so that we can search for it. |
| 129 {"application", SECRET_SCHEMA_ATTRIBUTE_STRING}, | 129 {"application", SECRET_SCHEMA_ATTRIBUTE_STRING}, |
| 130 {nullptr, SECRET_SCHEMA_ATTRIBUTE_STRING}}}; | 130 {nullptr, SECRET_SCHEMA_ATTRIBUTE_STRING}}}; |
| 131 | 131 |
| 132 const char* GetStringFromAttributes(GHashTable* attrs, const char* keyname) { | 132 const char* GetStringFromAttributes(GHashTable* attrs, const char* keyname) { |
| 133 gpointer value = g_hash_table_lookup(attrs, keyname); | 133 gpointer value = g_hash_table_lookup(attrs, keyname); |
| 134 return value ? static_cast<char*>(value) : kEmptyString; | 134 return value ? static_cast<char*>(value) : kEmptyString; |
| 135 } | 135 } |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 188 static_cast<PasswordForm::Scheme>(GetUintFromAttributes(attrs, "scheme")); | 188 static_cast<PasswordForm::Scheme>(GetUintFromAttributes(attrs, "scheme")); |
| 189 int64_t date_synced = 0; | 189 int64_t date_synced = 0; |
| 190 base::StringToInt64(GetStringFromAttributes(attrs, "date_synced"), | 190 base::StringToInt64(GetStringFromAttributes(attrs, "date_synced"), |
| 191 &date_synced); | 191 &date_synced); |
| 192 form->date_synced = base::Time::FromInternalValue(date_synced); | 192 form->date_synced = base::Time::FromInternalValue(date_synced); |
| 193 form->display_name = | 193 form->display_name = |
| 194 UTF8ToUTF16(GetStringFromAttributes(attrs, "display_name")); | 194 UTF8ToUTF16(GetStringFromAttributes(attrs, "display_name")); |
| 195 form->icon_url = GURL(GetStringFromAttributes(attrs, "avatar_url")); | 195 form->icon_url = GURL(GetStringFromAttributes(attrs, "avatar_url")); |
| 196 form->federation_origin = | 196 form->federation_origin = |
| 197 url::Origin(GURL(GetStringFromAttributes(attrs, "federation_url"))); | 197 url::Origin(GURL(GetStringFromAttributes(attrs, "federation_url"))); |
| 198 form->skip_zero_click = GetUintFromAttributes(attrs, "skip_zero_click"); | 198 form->skip_zero_click = |
| 199 g_hash_table_lookup(attrs, "should_skip_zero_click") |
| 200 ? GetUintFromAttributes(attrs, "should_skip_zero_click") |
| 201 : true; |
| 199 form->generation_upload_status = | 202 form->generation_upload_status = |
| 200 static_cast<PasswordForm::GenerationUploadStatus>( | 203 static_cast<PasswordForm::GenerationUploadStatus>( |
| 201 GetUintFromAttributes(attrs, "generation_upload_status")); | 204 GetUintFromAttributes(attrs, "generation_upload_status")); |
| 202 base::StringPiece encoded_form_data = | 205 base::StringPiece encoded_form_data = |
| 203 GetStringFromAttributes(attrs, "form_data"); | 206 GetStringFromAttributes(attrs, "form_data"); |
| 204 if (!encoded_form_data.empty()) { | 207 if (!encoded_form_data.empty()) { |
| 205 bool success = DeserializeFormDataFromBase64String(encoded_form_data, | 208 bool success = DeserializeFormDataFromBase64String(encoded_form_data, |
| 206 &form->form_data); | 209 &form->form_data); |
| 207 password_manager::metrics_util::FormDeserializationStatus status = | 210 password_manager::metrics_util::FormDeserializationStatus status = |
| 208 success ? password_manager::metrics_util::GNOME_SUCCESS | 211 success ? password_manager::metrics_util::GNOME_SUCCESS |
| (...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 469 "preferred", form.preferred, | 472 "preferred", form.preferred, |
| 470 "date_created", base::Int64ToString(date_created).c_str(), | 473 "date_created", base::Int64ToString(date_created).c_str(), |
| 471 "blacklisted_by_user", form.blacklisted_by_user, | 474 "blacklisted_by_user", form.blacklisted_by_user, |
| 472 "type", form.type, | 475 "type", form.type, |
| 473 "times_used", form.times_used, | 476 "times_used", form.times_used, |
| 474 "scheme", form.scheme, | 477 "scheme", form.scheme, |
| 475 "date_synced", base::Int64ToString(date_synced).c_str(), | 478 "date_synced", base::Int64ToString(date_synced).c_str(), |
| 476 "display_name", UTF16ToUTF8(form.display_name).c_str(), | 479 "display_name", UTF16ToUTF8(form.display_name).c_str(), |
| 477 "avatar_url", form.icon_url.spec().c_str(), | 480 "avatar_url", form.icon_url.spec().c_str(), |
| 478 "federation_url", form.federation_origin.Serialize().c_str(), | 481 "federation_url", form.federation_origin.Serialize().c_str(), |
| 479 "skip_zero_click", form.skip_zero_click, | 482 "should_skip_zero_click", form.skip_zero_click, |
| 480 "generation_upload_status", form.generation_upload_status, | 483 "generation_upload_status", form.generation_upload_status, |
| 481 "form_data", form_data.c_str(), | 484 "form_data", form_data.c_str(), |
| 482 "application", app_string_.c_str(), | 485 "application", app_string_.c_str(), |
| 483 nullptr); | 486 nullptr); |
| 484 // clang-format on | 487 // clang-format on |
| 485 | 488 |
| 486 if (error) { | 489 if (error) { |
| 487 LOG(ERROR) << "Libsecret add raw login failed: " << error->message; | 490 LOG(ERROR) << "Libsecret add raw login failed: " << error->message; |
| 488 g_error_free(error); | 491 g_error_free(error); |
| 489 return false; | 492 return false; |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 652 UMA_HISTOGRAM_ENUMERATION( | 655 UMA_HISTOGRAM_ENUMERATION( |
| 653 "PasswordManager.PslDomainMatchTriggering", | 656 "PasswordManager.PslDomainMatchTriggering", |
| 654 password_manager::ShouldPSLDomainMatchingApply(registered_domain) | 657 password_manager::ShouldPSLDomainMatchingApply(registered_domain) |
| 655 ? psl_domain_match_metric | 658 ? psl_domain_match_metric |
| 656 : password_manager::PSL_DOMAIN_MATCH_NOT_USED, | 659 : password_manager::PSL_DOMAIN_MATCH_NOT_USED, |
| 657 password_manager::PSL_DOMAIN_MATCH_COUNT); | 660 password_manager::PSL_DOMAIN_MATCH_COUNT); |
| 658 } | 661 } |
| 659 g_list_free(found); | 662 g_list_free(found); |
| 660 return forms; | 663 return forms; |
| 661 } | 664 } |
| OLD | NEW |