OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/runtime/chrome_runtime_api_delegate.h" | 5 #include "chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
11 #include "base/metrics/histogram.h" | 11 #include "base/metrics/histogram.h" |
12 #include "base/time/time.h" | 12 #include "base/time/time.h" |
13 #include "chrome/browser/extensions/extension_service.h" | 13 #include "chrome/browser/extensions/extension_service.h" |
| 14 #include "chrome/browser/extensions/extension_tab_util.h" |
14 #include "chrome/browser/extensions/updater/extension_updater.h" | 15 #include "chrome/browser/extensions/updater/extension_updater.h" |
15 #include "chrome/browser/profiles/profile.h" | 16 #include "chrome/browser/profiles/profile.h" |
16 #include "chrome/browser/ui/browser_finder.h" | 17 #include "chrome/browser/ui/browser_finder.h" |
17 #include "chrome/browser/ui/browser_navigator.h" | 18 #include "chrome/browser/ui/browser_navigator.h" |
18 #include "chrome/browser/ui/browser_window.h" | 19 #include "chrome/browser/ui/browser_window.h" |
19 #include "components/update_client/update_query_params.h" | 20 #include "components/update_client/update_query_params.h" |
20 #include "content/public/browser/notification_service.h" | 21 #include "content/public/browser/notification_service.h" |
21 #include "extensions/browser/extension_system.h" | 22 #include "extensions/browser/extension_system.h" |
22 #include "extensions/browser/notification_types.h" | 23 #include "extensions/browser/notification_types.h" |
23 #include "extensions/browser/warning_service.h" | 24 #include "extensions/browser/warning_service.h" |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 chromeos::DBusThreadManager::Get() | 234 chromeos::DBusThreadManager::Get() |
234 ->GetPowerManagerClient() | 235 ->GetPowerManagerClient() |
235 ->RequestRestart(); | 236 ->RequestRestart(); |
236 return true; | 237 return true; |
237 } | 238 } |
238 #endif | 239 #endif |
239 *error_message = "Function available only for ChromeOS kiosk mode."; | 240 *error_message = "Function available only for ChromeOS kiosk mode."; |
240 return false; | 241 return false; |
241 } | 242 } |
242 | 243 |
| 244 bool ChromeRuntimeAPIDelegate::OpenOptionsPage(const Extension* extension) { |
| 245 Profile* profile = Profile::FromBrowserContext(browser_context_); |
| 246 Browser* browser = |
| 247 chrome::FindLastActiveWithProfile(profile, chrome::GetActiveDesktop()); |
| 248 if (!browser) |
| 249 return false; |
| 250 return extensions::ExtensionTabUtil::OpenOptionsPage(extension, browser); |
| 251 } |
| 252 |
243 void ChromeRuntimeAPIDelegate::Observe( | 253 void ChromeRuntimeAPIDelegate::Observe( |
244 int type, | 254 int type, |
245 const content::NotificationSource& source, | 255 const content::NotificationSource& source, |
246 const content::NotificationDetails& details) { | 256 const content::NotificationDetails& details) { |
247 DCHECK(type == extensions::NOTIFICATION_EXTENSION_UPDATE_FOUND); | 257 DCHECK(type == extensions::NOTIFICATION_EXTENSION_UPDATE_FOUND); |
248 typedef const std::pair<std::string, Version> UpdateDetails; | 258 typedef const std::pair<std::string, Version> UpdateDetails; |
249 const std::string& id = content::Details<UpdateDetails>(details)->first; | 259 const std::string& id = content::Details<UpdateDetails>(details)->first; |
250 const Version& version = content::Details<UpdateDetails>(details)->second; | 260 const Version& version = content::Details<UpdateDetails>(details)->second; |
251 if (version.IsValid()) { | 261 if (version.IsValid()) { |
252 CallUpdateCallbacks( | 262 CallUpdateCallbacks( |
(...skipping 21 matching lines...) Expand all Loading... |
274 const UpdateCheckResult& result) { | 284 const UpdateCheckResult& result) { |
275 UpdateCallbackList callbacks = pending_update_checks_[extension_id]; | 285 UpdateCallbackList callbacks = pending_update_checks_[extension_id]; |
276 pending_update_checks_.erase(extension_id); | 286 pending_update_checks_.erase(extension_id); |
277 for (UpdateCallbackList::const_iterator iter = callbacks.begin(); | 287 for (UpdateCallbackList::const_iterator iter = callbacks.begin(); |
278 iter != callbacks.end(); | 288 iter != callbacks.end(); |
279 ++iter) { | 289 ++iter) { |
280 const UpdateCheckCallback& callback = *iter; | 290 const UpdateCheckCallback& callback = *iter; |
281 callback.Run(result); | 291 callback.Run(result); |
282 } | 292 } |
283 } | 293 } |
OLD | NEW |