| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <libsecret/secret.h> | 10 #include <libsecret/secret.h> |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 // We have to use SECRET_SCHEMA_DONT_MATCH_NAME in order to get old | 43 // We have to use SECRET_SCHEMA_DONT_MATCH_NAME in order to get old |
| 44 // passwords stored with gnome_keyring. | 44 // passwords stored with gnome_keyring. |
| 45 SECRET_SCHEMA_DONT_MATCH_NAME, | 45 SECRET_SCHEMA_DONT_MATCH_NAME, |
| 46 {{"origin_url", SECRET_SCHEMA_ATTRIBUTE_STRING}, | 46 {{"origin_url", SECRET_SCHEMA_ATTRIBUTE_STRING}, |
| 47 {"action_url", SECRET_SCHEMA_ATTRIBUTE_STRING}, | 47 {"action_url", SECRET_SCHEMA_ATTRIBUTE_STRING}, |
| 48 {"username_element", SECRET_SCHEMA_ATTRIBUTE_STRING}, | 48 {"username_element", SECRET_SCHEMA_ATTRIBUTE_STRING}, |
| 49 {"username_value", SECRET_SCHEMA_ATTRIBUTE_STRING}, | 49 {"username_value", SECRET_SCHEMA_ATTRIBUTE_STRING}, |
| 50 {"password_element", SECRET_SCHEMA_ATTRIBUTE_STRING}, | 50 {"password_element", SECRET_SCHEMA_ATTRIBUTE_STRING}, |
| 51 {"submit_element", SECRET_SCHEMA_ATTRIBUTE_STRING}, | 51 {"submit_element", SECRET_SCHEMA_ATTRIBUTE_STRING}, |
| 52 {"signon_realm", SECRET_SCHEMA_ATTRIBUTE_STRING}, | 52 {"signon_realm", SECRET_SCHEMA_ATTRIBUTE_STRING}, |
| 53 {"ssl_valid", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, | |
| 54 {"preferred", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, | 53 {"preferred", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, |
| 55 {"date_created", SECRET_SCHEMA_ATTRIBUTE_STRING}, | 54 {"date_created", SECRET_SCHEMA_ATTRIBUTE_STRING}, |
| 56 {"blacklisted_by_user", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, | 55 {"blacklisted_by_user", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, |
| 57 {"scheme", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, | 56 {"scheme", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, |
| 58 {"type", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, | 57 {"type", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, |
| 59 {"times_used", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, | 58 {"times_used", SECRET_SCHEMA_ATTRIBUTE_INTEGER}, |
| 60 {"date_synced", SECRET_SCHEMA_ATTRIBUTE_STRING}, | 59 {"date_synced", SECRET_SCHEMA_ATTRIBUTE_STRING}, |
| 61 {"display_name", SECRET_SCHEMA_ATTRIBUTE_STRING}, | 60 {"display_name", SECRET_SCHEMA_ATTRIBUTE_STRING}, |
| 62 {"avatar_url", SECRET_SCHEMA_ATTRIBUTE_STRING}, | 61 {"avatar_url", SECRET_SCHEMA_ATTRIBUTE_STRING}, |
| 63 {"federation_url", SECRET_SCHEMA_ATTRIBUTE_STRING}, | 62 {"federation_url", SECRET_SCHEMA_ATTRIBUTE_STRING}, |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 96 form->action = GURL(GetStringFromAttributes(attrs, "action_url")); | 95 form->action = GURL(GetStringFromAttributes(attrs, "action_url")); |
| 97 form->username_element = | 96 form->username_element = |
| 98 UTF8ToUTF16(GetStringFromAttributes(attrs, "username_element")); | 97 UTF8ToUTF16(GetStringFromAttributes(attrs, "username_element")); |
| 99 form->username_value = | 98 form->username_value = |
| 100 UTF8ToUTF16(GetStringFromAttributes(attrs, "username_value")); | 99 UTF8ToUTF16(GetStringFromAttributes(attrs, "username_value")); |
| 101 form->password_element = | 100 form->password_element = |
| 102 UTF8ToUTF16(GetStringFromAttributes(attrs, "password_element")); | 101 UTF8ToUTF16(GetStringFromAttributes(attrs, "password_element")); |
| 103 form->submit_element = | 102 form->submit_element = |
| 104 UTF8ToUTF16(GetStringFromAttributes(attrs, "submit_element")); | 103 UTF8ToUTF16(GetStringFromAttributes(attrs, "submit_element")); |
| 105 form->signon_realm = GetStringFromAttributes(attrs, "signon_realm"); | 104 form->signon_realm = GetStringFromAttributes(attrs, "signon_realm"); |
| 106 form->ssl_valid = GetUintFromAttributes(attrs, "ssl_valid"); | |
| 107 form->preferred = GetUintFromAttributes(attrs, "preferred"); | 105 form->preferred = GetUintFromAttributes(attrs, "preferred"); |
| 108 int64_t date_created = 0; | 106 int64_t date_created = 0; |
| 109 bool date_ok = base::StringToInt64( | 107 bool date_ok = base::StringToInt64( |
| 110 GetStringFromAttributes(attrs, "date_created"), &date_created); | 108 GetStringFromAttributes(attrs, "date_created"), &date_created); |
| 111 DCHECK(date_ok); | 109 DCHECK(date_ok); |
| 112 // In the past |date_created| was stored as time_t. Currently is stored as | 110 // In the past |date_created| was stored as time_t. Currently is stored as |
| 113 // base::Time's internal value. We need to distinguish, which format the | 111 // base::Time's internal value. We need to distinguish, which format the |
| 114 // number in |date_created| was stored in. We use the fact that | 112 // number in |date_created| was stored in. We use the fact that |
| 115 // kMaxPossibleTimeTValue interpreted as the internal value corresponds to an | 113 // kMaxPossibleTimeTValue interpreted as the internal value corresponds to an |
| 116 // unlikely date back in 17th century, and anything above | 114 // unlikely date back in 17th century, and anything above |
| (...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 352 UTF16ToUTF8(form.password_value).c_str(), | 350 UTF16ToUTF8(form.password_value).c_str(), |
| 353 nullptr, // no cancellable ojbect | 351 nullptr, // no cancellable ojbect |
| 354 &error, | 352 &error, |
| 355 "origin_url", form.origin.spec().c_str(), | 353 "origin_url", form.origin.spec().c_str(), |
| 356 "action_url", form.action.spec().c_str(), | 354 "action_url", form.action.spec().c_str(), |
| 357 "username_element", UTF16ToUTF8(form.username_element).c_str(), | 355 "username_element", UTF16ToUTF8(form.username_element).c_str(), |
| 358 "username_value", UTF16ToUTF8(form.username_value).c_str(), | 356 "username_value", UTF16ToUTF8(form.username_value).c_str(), |
| 359 "password_element", UTF16ToUTF8(form.password_element).c_str(), | 357 "password_element", UTF16ToUTF8(form.password_element).c_str(), |
| 360 "submit_element", UTF16ToUTF8(form.submit_element).c_str(), | 358 "submit_element", UTF16ToUTF8(form.submit_element).c_str(), |
| 361 "signon_realm", form.signon_realm.c_str(), | 359 "signon_realm", form.signon_realm.c_str(), |
| 362 "ssl_valid", form.ssl_valid, | |
| 363 "preferred", form.preferred, | 360 "preferred", form.preferred, |
| 364 "date_created", base::Int64ToString(date_created).c_str(), | 361 "date_created", base::Int64ToString(date_created).c_str(), |
| 365 "blacklisted_by_user", form.blacklisted_by_user, | 362 "blacklisted_by_user", form.blacklisted_by_user, |
| 366 "type", form.type, | 363 "type", form.type, |
| 367 "times_used", form.times_used, | 364 "times_used", form.times_used, |
| 368 "scheme", form.scheme, | 365 "scheme", form.scheme, |
| 369 "date_synced", base::Int64ToString(date_synced).c_str(), | 366 "date_synced", base::Int64ToString(date_synced).c_str(), |
| 370 "display_name", UTF16ToUTF8(form.display_name).c_str(), | 367 "display_name", UTF16ToUTF8(form.display_name).c_str(), |
| 371 "avatar_url", form.icon_url.spec().c_str(), | 368 "avatar_url", form.icon_url.spec().c_str(), |
| 372 // We serialize unique origins as "", in order to make other systems that | 369 // We serialize unique origins as "", in order to make other systems that |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 559 if (lookup_form) { | 556 if (lookup_form) { |
| 560 UMA_HISTOGRAM_ENUMERATION("PasswordManager.PslDomainMatchTriggering", | 557 UMA_HISTOGRAM_ENUMERATION("PasswordManager.PslDomainMatchTriggering", |
| 561 allow_psl_match | 558 allow_psl_match |
| 562 ? psl_domain_match_metric | 559 ? psl_domain_match_metric |
| 563 : password_manager::PSL_DOMAIN_MATCH_NOT_USED, | 560 : password_manager::PSL_DOMAIN_MATCH_NOT_USED, |
| 564 password_manager::PSL_DOMAIN_MATCH_COUNT); | 561 password_manager::PSL_DOMAIN_MATCH_COUNT); |
| 565 } | 562 } |
| 566 g_list_free(found); | 563 g_list_free(found); |
| 567 return forms; | 564 return forms; |
| 568 } | 565 } |
| OLD | NEW |