| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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/task_manager/task_manager_resource_providers.h" | 5 #include "chrome/browser/task_manager/task_manager_resource_providers.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 25 matching lines...) Expand all Loading... |
| 36 #include "chrome/browser/profiles/profile_manager.h" | 36 #include "chrome/browser/profiles/profile_manager.h" |
| 37 #include "chrome/browser/tab_contents/background_contents.h" | 37 #include "chrome/browser/tab_contents/background_contents.h" |
| 38 #include "chrome/browser/tab_contents/tab_util.h" | 38 #include "chrome/browser/tab_contents/tab_util.h" |
| 39 #include "chrome/browser/ui/browser.h" | 39 #include "chrome/browser/ui/browser.h" |
| 40 #include "chrome/browser/ui/browser_finder.h" | 40 #include "chrome/browser/ui/browser_finder.h" |
| 41 #include "chrome/browser/ui/browser_instant_controller.h" | 41 #include "chrome/browser/ui/browser_instant_controller.h" |
| 42 #include "chrome/browser/ui/browser_iterator.h" | 42 #include "chrome/browser/ui/browser_iterator.h" |
| 43 #include "chrome/browser/ui/panels/panel.h" | 43 #include "chrome/browser/ui/panels/panel.h" |
| 44 #include "chrome/browser/ui/panels/panel_manager.h" | 44 #include "chrome/browser/ui/panels/panel_manager.h" |
| 45 #include "chrome/browser/ui/tab_contents/tab_contents_iterator.h" | 45 #include "chrome/browser/ui/tab_contents/tab_contents_iterator.h" |
| 46 #include "chrome/browser/view_type_utils.h" | |
| 47 #include "chrome/common/chrome_process_type.h" | 46 #include "chrome/common/chrome_process_type.h" |
| 48 #include "chrome/common/chrome_notification_types.h" | 47 #include "chrome/common/chrome_notification_types.h" |
| 49 #include "chrome/common/chrome_switches.h" | 48 #include "chrome/common/chrome_switches.h" |
| 50 #include "chrome/common/extensions/extension.h" | 49 #include "chrome/common/extensions/extension.h" |
| 51 #include "chrome/common/render_messages.h" | 50 #include "chrome/common/render_messages.h" |
| 52 #include "chrome/common/url_constants.h" | 51 #include "chrome/common/url_constants.h" |
| 53 #include "content/public/browser/browser_child_process_host_iterator.h" | 52 #include "content/public/browser/browser_child_process_host_iterator.h" |
| 54 #include "content/public/browser/browser_thread.h" | 53 #include "content/public/browser/browser_thread.h" |
| 55 #include "content/public/browser/child_process_data.h" | 54 #include "content/public/browser/child_process_data.h" |
| 56 #include "content/public/browser/notification_service.h" | 55 #include "content/public/browser/notification_service.h" |
| 57 #include "content/public/browser/render_process_host.h" | 56 #include "content/public/browser/render_process_host.h" |
| 58 #include "content/public/browser/render_view_host.h" | 57 #include "content/public/browser/render_view_host.h" |
| 59 #include "content/public/browser/site_instance.h" | 58 #include "content/public/browser/site_instance.h" |
| 60 #include "content/public/browser/web_contents.h" | 59 #include "content/public/browser/web_contents.h" |
| 61 #include "content/public/common/process_type.h" | 60 #include "content/public/common/process_type.h" |
| 61 #include "extensions/browser/view_type_utils.h" |
| 62 #include "extensions/common/constants.h" | 62 #include "extensions/common/constants.h" |
| 63 #include "grit/generated_resources.h" | 63 #include "grit/generated_resources.h" |
| 64 #include "grit/theme_resources.h" | 64 #include "grit/theme_resources.h" |
| 65 #include "net/proxy/proxy_resolver_v8.h" | 65 #include "net/proxy/proxy_resolver_v8.h" |
| 66 #include "third_party/sqlite/sqlite3.h" | 66 #include "third_party/sqlite/sqlite3.h" |
| 67 #include "ui/base/l10n/l10n_util.h" | 67 #include "ui/base/l10n/l10n_util.h" |
| 68 #include "ui/base/resource/resource_bundle.h" | 68 #include "ui/base/resource/resource_bundle.h" |
| 69 #include "ui/gfx/image/image_skia.h" | 69 #include "ui/gfx/image/image_skia.h" |
| 70 #include "v8/include/v8.h" | 70 #include "v8/include/v8.h" |
| 71 | 71 |
| (...skipping 670 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 742 TaskManagerPanelResource* resource = iter->second; | 742 TaskManagerPanelResource* resource = iter->second; |
| 743 task_manager_->RemoveResource(resource); | 743 task_manager_->RemoveResource(resource); |
| 744 resources_.erase(iter); | 744 resources_.erase(iter); |
| 745 delete resource; | 745 delete resource; |
| 746 } | 746 } |
| 747 | 747 |
| 748 void TaskManagerPanelResourceProvider::Observe(int type, | 748 void TaskManagerPanelResourceProvider::Observe(int type, |
| 749 const content::NotificationSource& source, | 749 const content::NotificationSource& source, |
| 750 const content::NotificationDetails& details) { | 750 const content::NotificationDetails& details) { |
| 751 WebContents* web_contents = content::Source<WebContents>(source).ptr(); | 751 WebContents* web_contents = content::Source<WebContents>(source).ptr(); |
| 752 if (chrome::GetViewType(web_contents) != chrome::VIEW_TYPE_PANEL) | 752 if (extensions::GetViewType(web_contents) != extensions::VIEW_TYPE_PANEL) |
| 753 return; | 753 return; |
| 754 | 754 |
| 755 switch (type) { | 755 switch (type) { |
| 756 case content::NOTIFICATION_WEB_CONTENTS_CONNECTED: | 756 case content::NOTIFICATION_WEB_CONTENTS_CONNECTED: |
| 757 { | 757 { |
| 758 std::vector<Panel*>panels = PanelManager::GetInstance()->panels(); | 758 std::vector<Panel*>panels = PanelManager::GetInstance()->panels(); |
| 759 for (size_t i = 0; i < panels.size(); ++i) { | 759 for (size_t i = 0; i < panels.size(); ++i) { |
| 760 if (panels[i]->GetWebContents() == web_contents) { | 760 if (panels[i]->GetWebContents() == web_contents) { |
| 761 Add(panels[i]); | 761 Add(panels[i]); |
| 762 break; | 762 break; |
| (...skipping 639 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1402 Profile* profile = Profile::FromBrowserContext( | 1402 Profile* profile = Profile::FromBrowserContext( |
| 1403 render_view_host_->GetProcess()->GetBrowserContext()); | 1403 render_view_host_->GetProcess()->GetBrowserContext()); |
| 1404 ExtensionProcessManager* process_manager = | 1404 ExtensionProcessManager* process_manager = |
| 1405 extensions::ExtensionSystem::Get(profile)->process_manager(); | 1405 extensions::ExtensionSystem::Get(profile)->process_manager(); |
| 1406 return process_manager->GetExtensionForRenderViewHost(render_view_host_); | 1406 return process_manager->GetExtensionForRenderViewHost(render_view_host_); |
| 1407 } | 1407 } |
| 1408 | 1408 |
| 1409 bool TaskManagerExtensionProcessResource::IsBackground() const { | 1409 bool TaskManagerExtensionProcessResource::IsBackground() const { |
| 1410 WebContents* web_contents = | 1410 WebContents* web_contents = |
| 1411 WebContents::FromRenderViewHost(render_view_host_); | 1411 WebContents::FromRenderViewHost(render_view_host_); |
| 1412 chrome::ViewType view_type = chrome::GetViewType(web_contents); | 1412 extensions::ViewType view_type = extensions::GetViewType(web_contents); |
| 1413 return view_type == chrome::VIEW_TYPE_EXTENSION_BACKGROUND_PAGE; | 1413 return view_type == extensions::VIEW_TYPE_EXTENSION_BACKGROUND_PAGE; |
| 1414 } | 1414 } |
| 1415 | 1415 |
| 1416 //////////////////////////////////////////////////////////////////////////////// | 1416 //////////////////////////////////////////////////////////////////////////////// |
| 1417 // TaskManagerExtensionProcessResourceProvider class | 1417 // TaskManagerExtensionProcessResourceProvider class |
| 1418 //////////////////////////////////////////////////////////////////////////////// | 1418 //////////////////////////////////////////////////////////////////////////////// |
| 1419 | 1419 |
| 1420 TaskManagerExtensionProcessResourceProvider:: | 1420 TaskManagerExtensionProcessResourceProvider:: |
| 1421 TaskManagerExtensionProcessResourceProvider(TaskManager* task_manager) | 1421 TaskManagerExtensionProcessResourceProvider(TaskManager* task_manager) |
| 1422 : task_manager_(task_manager), | 1422 : task_manager_(task_manager), |
| 1423 updating_(false) { | 1423 updating_(false) { |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1538 | 1538 |
| 1539 bool TaskManagerExtensionProcessResourceProvider:: | 1539 bool TaskManagerExtensionProcessResourceProvider:: |
| 1540 IsHandledByThisProvider(content::RenderViewHost* render_view_host) { | 1540 IsHandledByThisProvider(content::RenderViewHost* render_view_host) { |
| 1541 WebContents* web_contents = WebContents::FromRenderViewHost(render_view_host); | 1541 WebContents* web_contents = WebContents::FromRenderViewHost(render_view_host); |
| 1542 // Don't add WebContents that belong to a guest (those are handled by | 1542 // Don't add WebContents that belong to a guest (those are handled by |
| 1543 // TaskManagerGuestResourceProvider). Otherwise they will be added twice, and | 1543 // TaskManagerGuestResourceProvider). Otherwise they will be added twice, and |
| 1544 // in this case they will have the app's name as a title (due to the | 1544 // in this case they will have the app's name as a title (due to the |
| 1545 // TaskManagerExtensionProcessResource constructor). | 1545 // TaskManagerExtensionProcessResource constructor). |
| 1546 if (web_contents->GetRenderProcessHost()->IsGuest()) | 1546 if (web_contents->GetRenderProcessHost()->IsGuest()) |
| 1547 return false; | 1547 return false; |
| 1548 chrome::ViewType view_type = chrome::GetViewType(web_contents); | 1548 extensions::ViewType view_type = extensions::GetViewType(web_contents); |
| 1549 // Don't add WebContents (those are handled by | 1549 // Don't add WebContents (those are handled by |
| 1550 // TaskManagerTabContentsResourceProvider) or background contents (handled | 1550 // TaskManagerTabContentsResourceProvider) or background contents (handled |
| 1551 // by TaskManagerBackgroundResourceProvider). | 1551 // by TaskManagerBackgroundResourceProvider). |
| 1552 #if defined(USE_ASH) | 1552 #if defined(USE_ASH) |
| 1553 return (view_type != chrome::VIEW_TYPE_TAB_CONTENTS && | 1553 return (view_type != extensions::VIEW_TYPE_TAB_CONTENTS && |
| 1554 view_type != chrome::VIEW_TYPE_BACKGROUND_CONTENTS); | 1554 view_type != extensions::VIEW_TYPE_BACKGROUND_CONTENTS); |
| 1555 #else | 1555 #else |
| 1556 return (view_type != chrome::VIEW_TYPE_TAB_CONTENTS && | 1556 return (view_type != extensions::VIEW_TYPE_TAB_CONTENTS && |
| 1557 view_type != chrome::VIEW_TYPE_BACKGROUND_CONTENTS && | 1557 view_type != extensions::VIEW_TYPE_BACKGROUND_CONTENTS && |
| 1558 view_type != chrome::VIEW_TYPE_PANEL); | 1558 view_type != extensions::VIEW_TYPE_PANEL); |
| 1559 #endif // USE_ASH | 1559 #endif // USE_ASH |
| 1560 } | 1560 } |
| 1561 | 1561 |
| 1562 void TaskManagerExtensionProcessResourceProvider::AddToTaskManager( | 1562 void TaskManagerExtensionProcessResourceProvider::AddToTaskManager( |
| 1563 content::RenderViewHost* render_view_host) { | 1563 content::RenderViewHost* render_view_host) { |
| 1564 if (!IsHandledByThisProvider(render_view_host)) | 1564 if (!IsHandledByThisProvider(render_view_host)) |
| 1565 return; | 1565 return; |
| 1566 | 1566 |
| 1567 TaskManagerExtensionProcessResource* resource = | 1567 TaskManagerExtensionProcessResource* resource = |
| 1568 new TaskManagerExtensionProcessResource(render_view_host); | 1568 new TaskManagerExtensionProcessResource(render_view_host); |
| (...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1896 case content::NOTIFICATION_WEB_CONTENTS_CONNECTED: | 1896 case content::NOTIFICATION_WEB_CONTENTS_CONNECTED: |
| 1897 Add(web_contents->GetRenderViewHost()); | 1897 Add(web_contents->GetRenderViewHost()); |
| 1898 break; | 1898 break; |
| 1899 case content::NOTIFICATION_WEB_CONTENTS_DISCONNECTED: | 1899 case content::NOTIFICATION_WEB_CONTENTS_DISCONNECTED: |
| 1900 Remove(web_contents->GetRenderViewHost()); | 1900 Remove(web_contents->GetRenderViewHost()); |
| 1901 break; | 1901 break; |
| 1902 default: | 1902 default: |
| 1903 NOTREACHED() << "Unexpected notification."; | 1903 NOTREACHED() << "Unexpected notification."; |
| 1904 } | 1904 } |
| 1905 } | 1905 } |
| OLD | NEW |