OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 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/extensions/api/autofill_private/autofill_private_event_
router.h" | 5 #include "chrome/browser/extensions/api/autofill_private/autofill_private_event_
router.h" |
6 | 6 |
| 7 #include <utility> |
7 #include <vector> | 8 #include <vector> |
8 | 9 |
9 #include "base/bind.h" | 10 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 11 #include "base/bind_helpers.h" |
11 #include "base/strings/utf_string_conversions.h" | 12 #include "base/strings/utf_string_conversions.h" |
12 #include "chrome/browser/autofill/personal_data_manager_factory.h" | 13 #include "chrome/browser/autofill/personal_data_manager_factory.h" |
13 #include "chrome/browser/browser_process.h" | 14 #include "chrome/browser/browser_process.h" |
14 #include "chrome/browser/extensions/api/autofill_private/autofill_util.h" | 15 #include "chrome/browser/extensions/api/autofill_private/autofill_util.h" |
15 #include "chrome/browser/profiles/profile.h" | 16 #include "chrome/browser/profiles/profile.h" |
16 #include "chrome/browser/search_engines/template_url_service_factory.h" | 17 #include "chrome/browser/search_engines/template_url_service_factory.h" |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 } | 77 } |
77 | 78 |
78 void AutofillPrivateEventRouter::OnPersonalDataChanged() { | 79 void AutofillPrivateEventRouter::OnPersonalDataChanged() { |
79 DCHECK(personal_data_ && personal_data_->IsDataLoaded()); | 80 DCHECK(personal_data_ && personal_data_->IsDataLoaded()); |
80 | 81 |
81 scoped_ptr<AddressEntryList> addressList = | 82 scoped_ptr<AddressEntryList> addressList = |
82 extensions::autofill_util::GenerateAddressList(*personal_data_); | 83 extensions::autofill_util::GenerateAddressList(*personal_data_); |
83 scoped_ptr<base::ListValue> args( | 84 scoped_ptr<base::ListValue> args( |
84 api::autofill_private::OnAddressListChanged::Create(*addressList) | 85 api::autofill_private::OnAddressListChanged::Create(*addressList) |
85 .release()); | 86 .release()); |
86 scoped_ptr<Event> extension_event(new Event( | 87 scoped_ptr<Event> extension_event( |
87 events::AUTOFILL_PRIVATE_ON_ADDRESS_LIST_CHANGED, | 88 new Event(events::AUTOFILL_PRIVATE_ON_ADDRESS_LIST_CHANGED, |
88 api::autofill_private::OnAddressListChanged::kEventName, args.Pass())); | 89 api::autofill_private::OnAddressListChanged::kEventName, |
89 event_router_->BroadcastEvent(extension_event.Pass()); | 90 std::move(args))); |
| 91 event_router_->BroadcastEvent(std::move(extension_event)); |
90 | 92 |
91 scoped_ptr<CreditCardEntryList> creditCardList = | 93 scoped_ptr<CreditCardEntryList> creditCardList = |
92 extensions::autofill_util::GenerateCreditCardList(*personal_data_); | 94 extensions::autofill_util::GenerateCreditCardList(*personal_data_); |
93 args.reset( | 95 args.reset( |
94 api::autofill_private::OnCreditCardListChanged::Create(*creditCardList) | 96 api::autofill_private::OnCreditCardListChanged::Create(*creditCardList) |
95 .release()); | 97 .release()); |
96 extension_event.reset(new Event( | 98 extension_event.reset( |
97 events::AUTOFILL_PRIVATE_ON_CREDIT_CARD_LIST_CHANGED, | 99 new Event(events::AUTOFILL_PRIVATE_ON_CREDIT_CARD_LIST_CHANGED, |
98 api::autofill_private::OnCreditCardListChanged::kEventName, args.Pass())); | 100 api::autofill_private::OnCreditCardListChanged::kEventName, |
99 event_router_->BroadcastEvent(extension_event.Pass()); | 101 std::move(args))); |
| 102 event_router_->BroadcastEvent(std::move(extension_event)); |
100 } | 103 } |
101 | 104 |
102 void AutofillPrivateEventRouter::StartOrStopListeningForChanges() { | 105 void AutofillPrivateEventRouter::StartOrStopListeningForChanges() { |
103 if (!personal_data_ || !personal_data_->IsDataLoaded()) | 106 if (!personal_data_ || !personal_data_->IsDataLoaded()) |
104 return; | 107 return; |
105 | 108 |
106 bool should_listen_for_address_changes = event_router_->HasEventListener( | 109 bool should_listen_for_address_changes = event_router_->HasEventListener( |
107 api::autofill_private::OnAddressListChanged::kEventName); | 110 api::autofill_private::OnAddressListChanged::kEventName); |
108 bool should_listen_for_credit_card_changes = event_router_->HasEventListener( | 111 bool should_listen_for_credit_card_changes = event_router_->HasEventListener( |
109 api::autofill_private::OnCreditCardListChanged::kEventName); | 112 api::autofill_private::OnCreditCardListChanged::kEventName); |
110 bool should_listen = should_listen_for_address_changes || | 113 bool should_listen = should_listen_for_address_changes || |
111 should_listen_for_credit_card_changes; | 114 should_listen_for_credit_card_changes; |
112 | 115 |
113 if (should_listen && !listening_) | 116 if (should_listen && !listening_) |
114 personal_data_->AddObserver(this); | 117 personal_data_->AddObserver(this); |
115 else if (!should_listen && listening_) | 118 else if (!should_listen && listening_) |
116 personal_data_->RemoveObserver(this); | 119 personal_data_->RemoveObserver(this); |
117 | 120 |
118 listening_ = should_listen; | 121 listening_ = should_listen; |
119 } | 122 } |
120 | 123 |
121 AutofillPrivateEventRouter* AutofillPrivateEventRouter::Create( | 124 AutofillPrivateEventRouter* AutofillPrivateEventRouter::Create( |
122 content::BrowserContext* context) { | 125 content::BrowserContext* context) { |
123 return new AutofillPrivateEventRouter(context); | 126 return new AutofillPrivateEventRouter(context); |
124 } | 127 } |
125 | 128 |
126 } // namespace extensions | 129 } // namespace extensions |
OLD | NEW |