| 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/automation/testing_automation_provider.h" | 5 #include "chrome/browser/automation/testing_automation_provider.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 126 #include "content/public/browser/browser_child_process_host_iterator.h" | 126 #include "content/public/browser/browser_child_process_host_iterator.h" |
| 127 #include "content/public/browser/child_process_data.h" | 127 #include "content/public/browser/child_process_data.h" |
| 128 #include "content/public/browser/favicon_status.h" | 128 #include "content/public/browser/favicon_status.h" |
| 129 #include "content/public/browser/interstitial_page.h" | 129 #include "content/public/browser/interstitial_page.h" |
| 130 #include "content/public/browser/interstitial_page_delegate.h" | 130 #include "content/public/browser/interstitial_page_delegate.h" |
| 131 #include "content/public/browser/navigation_entry.h" | 131 #include "content/public/browser/navigation_entry.h" |
| 132 #include "content/public/browser/notification_service.h" | 132 #include "content/public/browser/notification_service.h" |
| 133 #include "content/public/browser/plugin_service.h" | 133 #include "content/public/browser/plugin_service.h" |
| 134 #include "content/public/browser/render_process_host.h" | 134 #include "content/public/browser/render_process_host.h" |
| 135 #include "content/public/browser/render_view_host.h" | 135 #include "content/public/browser/render_view_host.h" |
| 136 #include "content/public/browser/render_view_host_delegate.h" |
| 136 #include "content/public/browser/render_widget_host_view.h" | 137 #include "content/public/browser/render_widget_host_view.h" |
| 137 #include "content/public/browser/web_contents.h" | 138 #include "content/public/browser/web_contents.h" |
| 138 #include "content/public/common/child_process_host.h" | 139 #include "content/public/common/child_process_host.h" |
| 139 #include "content/public/common/common_param_traits.h" | 140 #include "content/public/common/common_param_traits.h" |
| 140 #include "content/public/common/ssl_status.h" | 141 #include "content/public/common/ssl_status.h" |
| 141 #include "net/cookies/cookie_store.h" | 142 #include "net/cookies/cookie_store.h" |
| 142 #include "third_party/WebKit/Source/WebKit/chromium/public/WebInputEvent.h" | 143 #include "third_party/WebKit/Source/WebKit/chromium/public/WebInputEvent.h" |
| 143 #include "ui/base/events.h" | 144 #include "ui/base/events.h" |
| 144 #include "ui/base/keycodes/keyboard_codes.h" | 145 #include "ui/base/keycodes/keyboard_codes.h" |
| 145 #include "ui/base/ui_base_types.h" | 146 #include "ui/base/ui_base_types.h" |
| (...skipping 2729 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2875 // Add all extension processes in a list of dictionaries, one dictionary | 2876 // Add all extension processes in a list of dictionaries, one dictionary |
| 2876 // item per extension process. | 2877 // item per extension process. |
| 2877 ListValue* extension_views = new ListValue; | 2878 ListValue* extension_views = new ListValue; |
| 2878 ProfileManager* profile_manager = g_browser_process->profile_manager(); | 2879 ProfileManager* profile_manager = g_browser_process->profile_manager(); |
| 2879 std::vector<Profile*> profiles(profile_manager->GetLoadedProfiles()); | 2880 std::vector<Profile*> profiles(profile_manager->GetLoadedProfiles()); |
| 2880 for (size_t i = 0; i < profiles.size(); ++i) { | 2881 for (size_t i = 0; i < profiles.size(); ++i) { |
| 2881 ExtensionProcessManager* process_manager = | 2882 ExtensionProcessManager* process_manager = |
| 2882 profiles[i]->GetExtensionProcessManager(); | 2883 profiles[i]->GetExtensionProcessManager(); |
| 2883 if (!process_manager) | 2884 if (!process_manager) |
| 2884 continue; | 2885 continue; |
| 2885 ExtensionProcessManager::const_iterator jt; | 2886 const ExtensionProcessManager::ViewSet view_set = |
| 2886 for (jt = process_manager->begin(); jt != process_manager->end(); ++jt) { | 2887 process_manager->GetAllViews(); |
| 2887 ExtensionHost* ex_host = *jt; | 2888 for (ExtensionProcessManager::ViewSet::const_iterator jt = |
| 2889 view_set.begin(); |
| 2890 jt != view_set.end(); ++jt) { |
| 2891 content::RenderViewHost* render_view_host = *jt; |
| 2888 // Don't add dead extension processes. | 2892 // Don't add dead extension processes. |
| 2889 if (!ex_host->IsRenderViewLive()) | 2893 if (!render_view_host->IsRenderViewLive()) |
| 2890 continue; | 2894 continue; |
| 2895 const Extension* extension = |
| 2896 process_manager->GetExtensionForRenderViewHost(render_view_host); |
| 2891 DictionaryValue* item = new DictionaryValue; | 2897 DictionaryValue* item = new DictionaryValue; |
| 2892 item->SetString("name", ex_host->extension()->name()); | 2898 item->SetString("name", extension->name()); |
| 2893 item->SetString("extension_id", ex_host->extension()->id()); | 2899 item->SetString("extension_id", extension->id()); |
| 2894 item->SetInteger( | 2900 item->SetInteger( |
| 2895 "pid", | 2901 "pid", |
| 2896 base::GetProcId(ex_host->render_process_host()->GetHandle())); | 2902 base::GetProcId(render_view_host->GetProcess()->GetHandle())); |
| 2897 DictionaryValue* view = new DictionaryValue; | 2903 DictionaryValue* view = new DictionaryValue; |
| 2898 view->SetInteger( | 2904 view->SetInteger( |
| 2899 "render_process_id", | 2905 "render_process_id", |
| 2900 ex_host->render_process_host()->GetID()); | 2906 render_view_host->GetProcess()->GetID()); |
| 2901 view->SetInteger( | 2907 view->SetInteger( |
| 2902 "render_view_id", | 2908 "render_view_id", |
| 2903 ex_host->render_view_host()->GetRoutingID()); | 2909 render_view_host->GetRoutingID()); |
| 2904 item->Set("view", view); | 2910 item->Set("view", view); |
| 2905 std::string type; | 2911 std::string type; |
| 2906 switch (ex_host->extension_host_type()) { | 2912 switch (render_view_host->GetDelegate()->GetRenderViewType()) { |
| 2907 case chrome::VIEW_TYPE_EXTENSION_BACKGROUND_PAGE: | 2913 case chrome::VIEW_TYPE_EXTENSION_BACKGROUND_PAGE: |
| 2908 type = "EXTENSION_BACKGROUND_PAGE"; | 2914 type = "EXTENSION_BACKGROUND_PAGE"; |
| 2909 break; | 2915 break; |
| 2910 case chrome::VIEW_TYPE_EXTENSION_POPUP: | 2916 case chrome::VIEW_TYPE_EXTENSION_POPUP: |
| 2911 type = "EXTENSION_POPUP"; | 2917 type = "EXTENSION_POPUP"; |
| 2912 break; | 2918 break; |
| 2913 case chrome::VIEW_TYPE_EXTENSION_INFOBAR: | 2919 case chrome::VIEW_TYPE_EXTENSION_INFOBAR: |
| 2914 type = "EXTENSION_INFOBAR"; | 2920 type = "EXTENSION_INFOBAR"; |
| 2915 break; | 2921 break; |
| 2916 case chrome::VIEW_TYPE_EXTENSION_DIALOG: | 2922 case chrome::VIEW_TYPE_EXTENSION_DIALOG: |
| 2917 type = "EXTENSION_DIALOG"; | 2923 type = "EXTENSION_DIALOG"; |
| 2918 break; | 2924 break; |
| 2919 case chrome::VIEW_TYPE_APP_SHELL: | 2925 case chrome::VIEW_TYPE_APP_SHELL: |
| 2920 type = "APP_SHELL"; | 2926 type = "APP_SHELL"; |
| 2921 break; | 2927 break; |
| 2922 case chrome::VIEW_TYPE_PANEL: | 2928 case chrome::VIEW_TYPE_PANEL: |
| 2923 type = "PANEL"; | 2929 type = "PANEL"; |
| 2924 break; | 2930 break; |
| 2925 default: | 2931 default: |
| 2926 type = "unknown"; | 2932 type = "unknown"; |
| 2927 break; | 2933 break; |
| 2928 } | 2934 } |
| 2929 item->SetString("view_type", type); | 2935 item->SetString("view_type", type); |
| 2930 item->SetString("url", ex_host->GetURL().spec()); | 2936 item->SetString("url", render_view_host->GetDelegate()->GetURL().spec()); |
| 2931 item->SetBoolean("loaded", ex_host->did_stop_loading()); | 2937 item->SetBoolean("loaded", !render_view_host->IsLoading()); |
| 2932 extension_views->Append(item); | 2938 extension_views->Append(item); |
| 2933 } | 2939 } |
| 2934 } | 2940 } |
| 2935 return_value->Set("extension_views", extension_views); | 2941 return_value->Set("extension_views", extension_views); |
| 2936 | 2942 |
| 2937 return_value->SetString("child_process_path", | 2943 return_value->SetString("child_process_path", |
| 2938 ChildProcessHost::GetChildPath(flags).value()); | 2944 ChildProcessHost::GetChildPath(flags).value()); |
| 2939 // Child processes are the processes for plugins and other workers. | 2945 // Child processes are the processes for plugins and other workers. |
| 2940 // Add all child processes in a list of dictionaries, one dictionary item | 2946 // Add all child processes in a list of dictionaries, one dictionary item |
| 2941 // per child process. | 2947 // per child process. |
| (...skipping 3765 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6707 AutomationId id = automation_util::GetIdForTab(preview_tab); | 6713 AutomationId id = automation_util::GetIdForTab(preview_tab); |
| 6708 dict->Set("auto_id", id.ToValue()); | 6714 dict->Set("auto_id", id.ToValue()); |
| 6709 view_list->Append(dict); | 6715 view_list->Append(dict); |
| 6710 } | 6716 } |
| 6711 } | 6717 } |
| 6712 } | 6718 } |
| 6713 } | 6719 } |
| 6714 | 6720 |
| 6715 ExtensionProcessManager* extension_mgr = | 6721 ExtensionProcessManager* extension_mgr = |
| 6716 profile()->GetExtensionProcessManager(); | 6722 profile()->GetExtensionProcessManager(); |
| 6717 ExtensionProcessManager::const_iterator iter; | 6723 const ExtensionProcessManager::ViewSet all_views = |
| 6718 for (iter = extension_mgr->begin(); iter != extension_mgr->end(); | 6724 extension_mgr->GetAllViews(); |
| 6719 ++iter) { | 6725 ExtensionProcessManager::ViewSet::const_iterator iter; |
| 6720 ExtensionHost* host = *iter; | 6726 for (iter = all_views.begin(); iter != all_views.end(); ++iter) { |
| 6727 content::RenderViewHost* host = (*iter); |
| 6721 AutomationId id = automation_util::GetIdForExtensionView(host); | 6728 AutomationId id = automation_util::GetIdForExtensionView(host); |
| 6722 if (!id.is_valid()) | 6729 if (!id.is_valid()) |
| 6723 continue; | 6730 continue; |
| 6731 const Extension* extension = |
| 6732 extension_mgr->GetExtensionForRenderViewHost(host); |
| 6724 DictionaryValue* dict = new DictionaryValue(); | 6733 DictionaryValue* dict = new DictionaryValue(); |
| 6725 dict->Set("auto_id", id.ToValue()); | 6734 dict->Set("auto_id", id.ToValue()); |
| 6726 dict->SetString("extension_id", host->extension_id()); | 6735 dict->SetString("extension_id", extension->id()); |
| 6727 view_list->Append(dict); | 6736 view_list->Append(dict); |
| 6728 } | 6737 } |
| 6729 DictionaryValue dict; | 6738 DictionaryValue dict; |
| 6730 dict.Set("views", view_list); | 6739 dict.Set("views", view_list); |
| 6731 AutomationJSONReply(this, reply_message).SendSuccess(&dict); | 6740 AutomationJSONReply(this, reply_message).SendSuccess(&dict); |
| 6732 } | 6741 } |
| 6733 | 6742 |
| 6734 void TestingAutomationProvider::IsTabIdValid( | 6743 void TestingAutomationProvider::IsTabIdValid( |
| 6735 DictionaryValue* args, IPC::Message* reply_message) { | 6744 DictionaryValue* args, IPC::Message* reply_message) { |
| 6736 AutomationJSONReply reply(this, reply_message); | 6745 AutomationJSONReply reply(this, reply_message); |
| (...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7038 *browser_handle = browser_tracker_->Add(browser); | 7047 *browser_handle = browser_tracker_->Add(browser); |
| 7039 *success = true; | 7048 *success = true; |
| 7040 } | 7049 } |
| 7041 } | 7050 } |
| 7042 } | 7051 } |
| 7043 | 7052 |
| 7044 void TestingAutomationProvider::OnRemoveProvider() { | 7053 void TestingAutomationProvider::OnRemoveProvider() { |
| 7045 if (g_browser_process) | 7054 if (g_browser_process) |
| 7046 g_browser_process->GetAutomationProviderList()->RemoveProvider(this); | 7055 g_browser_process->GetAutomationProviderList()->RemoveProvider(this); |
| 7047 } | 7056 } |
| OLD | NEW |