| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/processes/processes_api.h" | 5 #include "chrome/browser/extensions/api/processes/processes_api.h" |
| 6 | 6 |
| 7 #include "base/callback.h" | 7 #include "base/callback.h" |
| 8 #include "base/json/json_writer.h" | 8 #include "base/json/json_writer.h" |
| 9 #include "base/lazy_instance.h" | 9 #include "base/lazy_instance.h" |
| 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/profiler/scoped_profile.h" | |
| 13 #include "base/strings/string_number_conversions.h" | 12 #include "base/strings/string_number_conversions.h" |
| 14 #include "base/strings/utf_string_conversions.h" | 13 #include "base/strings/utf_string_conversions.h" |
| 15 #include "base/values.h" | 14 #include "base/values.h" |
| 16 #include "chrome/browser/chrome_notification_types.h" | 15 #include "chrome/browser/chrome_notification_types.h" |
| 17 #include "chrome/browser/extensions/api/processes/processes_api_constants.h" | 16 #include "chrome/browser/extensions/api/processes/processes_api_constants.h" |
| 18 #include "chrome/browser/extensions/api/tabs/tabs_constants.h" | 17 #include "chrome/browser/extensions/api/tabs/tabs_constants.h" |
| 19 #include "chrome/browser/extensions/extension_service.h" | 18 #include "chrome/browser/extensions/extension_service.h" |
| 20 #include "chrome/browser/extensions/extension_tab_util.h" | 19 #include "chrome/browser/extensions/extension_tab_util.h" |
| 21 #include "chrome/browser/profiles/profile.h" | 20 #include "chrome/browser/profiles/profile.h" |
| 22 #include "chrome/browser/task_manager/resource_provider.h" | 21 #include "chrome/browser/task_manager/resource_provider.h" |
| (...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 512 return BrowserContextKeyedAPIFactory<ProcessesAPI>::Get(context); | 511 return BrowserContextKeyedAPIFactory<ProcessesAPI>::Get(context); |
| 513 } | 512 } |
| 514 | 513 |
| 515 ProcessesEventRouter* ProcessesAPI::processes_event_router() { | 514 ProcessesEventRouter* ProcessesAPI::processes_event_router() { |
| 516 if (!processes_event_router_) | 515 if (!processes_event_router_) |
| 517 processes_event_router_.reset(new ProcessesEventRouter(browser_context_)); | 516 processes_event_router_.reset(new ProcessesEventRouter(browser_context_)); |
| 518 return processes_event_router_.get(); | 517 return processes_event_router_.get(); |
| 519 } | 518 } |
| 520 | 519 |
| 521 void ProcessesAPI::OnListenerAdded(const EventListenerInfo& details) { | 520 void ProcessesAPI::OnListenerAdded(const EventListenerInfo& details) { |
| 522 // TODO(vadimt): Remove ScopedProfile below once crbug.com/417106 is fixed. | |
| 523 tracked_objects::ScopedProfile tracking_profile( | |
| 524 FROM_HERE_WITH_EXPLICIT_FUNCTION("ProcessesAPI::OnListenerAdded")); | |
| 525 | |
| 526 // We lazily tell the TaskManager to start updating when listeners to the | 521 // We lazily tell the TaskManager to start updating when listeners to the |
| 527 // processes.onUpdated or processes.onUpdatedWithMemory events arrive. | 522 // processes.onUpdated or processes.onUpdatedWithMemory events arrive. |
| 528 processes_event_router()->ListenerAdded(); | 523 processes_event_router()->ListenerAdded(); |
| 529 } | 524 } |
| 530 | 525 |
| 531 void ProcessesAPI::OnListenerRemoved(const EventListenerInfo& details) { | 526 void ProcessesAPI::OnListenerRemoved(const EventListenerInfo& details) { |
| 532 // If a processes.onUpdated or processes.onUpdatedWithMemory event listener | 527 // If a processes.onUpdated or processes.onUpdatedWithMemory event listener |
| 533 // is removed (or a process with one exits), then we let the extension API | 528 // is removed (or a process with one exits), then we let the extension API |
| 534 // know that it has one fewer listener. | 529 // know that it has one fewer listener. |
| 535 processes_event_router()->ListenerRemoved(); | 530 processes_event_router()->ListenerRemoved(); |
| (...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 762 | 757 |
| 763 SetResult(processes); | 758 SetResult(processes); |
| 764 SendResponse(true); | 759 SendResponse(true); |
| 765 | 760 |
| 766 // Balance the AddRef in the RunAsync. | 761 // Balance the AddRef in the RunAsync. |
| 767 Release(); | 762 Release(); |
| 768 #endif // defined(ENABLE_TASK_MANAGER) | 763 #endif // defined(ENABLE_TASK_MANAGER) |
| 769 } | 764 } |
| 770 | 765 |
| 771 } // namespace extensions | 766 } // namespace extensions |
| OLD | NEW |