Chromium Code Reviews| Index: chrome/browser/automation/automation_util.cc |
| diff --git a/chrome/browser/automation/automation_util.cc b/chrome/browser/automation/automation_util.cc |
| index 9ab71f243463add2e0c290527112610c6ed37604..cbe7ce8e382cafc040dbe87cd83ed4bfa85283fc 100644 |
| --- a/chrome/browser/automation/automation_util.cc |
| +++ b/chrome/browser/automation/automation_util.cc |
| @@ -15,7 +15,6 @@ |
| #include "base/values.h" |
| #include "chrome/browser/automation/automation_provider.h" |
| #include "chrome/browser/automation/automation_provider_json.h" |
| -#include "chrome/browser/extensions/extension_host.h" |
| #include "chrome/browser/extensions/extension_process_manager.h" |
| #include "chrome/browser/extensions/extension_service.h" |
| #include "chrome/browser/printing/print_preview_tab_controller.h" |
| @@ -32,6 +31,7 @@ |
| #include "content/public/browser/browser_thread.h" |
| #include "content/public/browser/render_process_host.h" |
| #include "content/public/browser/render_view_host.h" |
| +#include "content/public/browser/render_view_host_delegate.h" |
| #include "content/public/browser/web_contents.h" |
| #include "net/cookies/cookie_monster.h" |
| #include "net/cookies/cookie_store.h" |
| @@ -413,9 +413,10 @@ AutomationId GetIdForTab(const TabContentsWrapper* tab) { |
| base::IntToString(tab->restore_tab_helper()->session_id().id())); |
| } |
| -AutomationId GetIdForExtensionView(const ExtensionHost* ext_host) { |
| +AutomationId GetIdForExtensionView( |
| + const content::RenderViewHost* render_view_host) { |
| AutomationId::Type type; |
| - switch (ext_host->extension_host_type()) { |
| + switch (render_view_host->GetDelegate()->GetRenderViewType()) { |
| case chrome::VIEW_TYPE_EXTENSION_POPUP: |
| type = AutomationId::kTypeExtensionPopup; |
| break; |
| @@ -432,8 +433,8 @@ AutomationId GetIdForExtensionView(const ExtensionHost* ext_host) { |
| // Since these extension views do not permit navigation, using the |
| // renderer process and view ID should suffice. |
| std::string id = base::StringPrintf("%d|%d", |
| - ext_host->render_view_host()->GetRoutingID(), |
| - ext_host->render_process_host()->GetID()); |
| + render_view_host->GetRoutingID(), |
| + render_view_host->GetProcess()->GetID()); |
| return AutomationId(type, id); |
| } |
| @@ -482,13 +483,16 @@ bool GetExtensionRenderViewForId( |
| RenderViewHost** rvh) { |
| ExtensionProcessManager* extension_mgr = |
| profile->GetExtensionProcessManager(); |
| - ExtensionProcessManager::const_iterator iter; |
| - for (iter = extension_mgr->begin(); iter != extension_mgr->end(); |
| + const ExtensionProcessManager::ContentsSet contents_set = |
| + extension_mgr->GetAllContents(); |
| + for (ExtensionProcessManager::ContentsSet::const_iterator iter = |
| + contents_set.begin(); iter != contents_set.end(); |
| ++iter) { |
| - ExtensionHost* host = *iter; |
| + content::WebContents* contents = *iter; |
| + RenderViewHost* host = contents->GetRenderViewHost(); |
|
Charlie Reis
2012/04/19 21:42:10
We need to be very careful here. GetRenderViewHos
Aaron Boodman
2012/04/20 01:00:55
Good point. My bad, I forgot that WebContents enca
|
| AutomationId this_id = GetIdForExtensionView(host); |
| if (id == this_id) { |
| - *rvh = host->render_view_host(); |
| + *rvh = host; |
| return true; |
| } |
| } |