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 |