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 |