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/notifications/notifier_state_tracker.h" | 5 #include "chrome/browser/notifications/notifier_state_tracker.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
137 #endif | 137 #endif |
138 break; | 138 break; |
139 default: | 139 default: |
140 NOTREACHED(); | 140 NOTREACHED(); |
141 } | 141 } |
142 DCHECK(pref_name != NULL); | 142 DCHECK(pref_name != NULL); |
143 | 143 |
144 ListPrefUpdate update(profile_->GetPrefs(), pref_name); | 144 ListPrefUpdate update(profile_->GetPrefs(), pref_name); |
145 base::ListValue* const list = update.Get(); | 145 base::ListValue* const list = update.Get(); |
146 if (add_new_item) { | 146 if (add_new_item) { |
147 // AppendIfNotPresent will delete |adding_value| when the same value | 147 list->AppendIfNotPresent(std::move(id)); |
148 // already exists. | |
149 list->AppendIfNotPresent(id.release()); | |
150 } else { | 148 } else { |
151 list->Remove(*id, NULL); | 149 list->Remove(*id, nullptr); |
152 } | 150 } |
153 } | 151 } |
154 | 152 |
155 void NotifierStateTracker::OnStringListPrefChanged( | 153 void NotifierStateTracker::OnStringListPrefChanged( |
156 const char* pref_name, std::set<std::string>* ids_field) { | 154 const char* pref_name, std::set<std::string>* ids_field) { |
157 ids_field->clear(); | 155 ids_field->clear(); |
158 // Separate GetPrefs()->GetList() to analyze the crash. See crbug.com/322320 | 156 // Separate GetPrefs()->GetList() to analyze the crash. See crbug.com/322320 |
159 const PrefService* pref_service = profile_->GetPrefs(); | 157 const PrefService* pref_service = profile_->GetPrefs(); |
160 CHECK(pref_service); | 158 CHECK(pref_service); |
161 const base::ListValue* pref_list = pref_service->GetList(pref_name); | 159 const base::ListValue* pref_list = pref_service->GetList(pref_name); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
198 // Tell the IO thread that this extension's permission for notifications | 196 // Tell the IO thread that this extension's permission for notifications |
199 // has changed. | 197 // has changed. |
200 extensions::InfoMap* extension_info_map = | 198 extensions::InfoMap* extension_info_map = |
201 extensions::ExtensionSystem::Get(profile_)->info_map(); | 199 extensions::ExtensionSystem::Get(profile_)->info_map(); |
202 content::BrowserThread::PostTask( | 200 content::BrowserThread::PostTask( |
203 content::BrowserThread::IO, FROM_HERE, | 201 content::BrowserThread::IO, FROM_HERE, |
204 base::Bind(&extensions::InfoMap::SetNotificationsDisabled, | 202 base::Bind(&extensions::InfoMap::SetNotificationsDisabled, |
205 extension_info_map, notifier_id.id, !enabled)); | 203 extension_info_map, notifier_id.id, !enabled)); |
206 } | 204 } |
207 #endif | 205 #endif |
OLD | NEW |