Chromium Code Reviews| Index: extensions/browser/process_manager.cc |
| diff --git a/extensions/browser/process_manager.cc b/extensions/browser/process_manager.cc |
| index 8b2b4b534b92e13bad3a2a9530c0f928c93eb284..7a93b7df34fcc30a1dc1a5cdc3f0868d1b53aeb6 100644 |
| --- a/extensions/browser/process_manager.cc |
| +++ b/extensions/browser/process_manager.cc |
| @@ -166,6 +166,7 @@ struct ProcessManager::ExtensionRenderFrameData { |
| case VIEW_TYPE_APP_WINDOW: |
| case VIEW_TYPE_BACKGROUND_CONTENTS: |
| case VIEW_TYPE_EXTENSION_DIALOG: |
| + case VIEW_TYPE_EXTENSION_OPTIONS: |
| case VIEW_TYPE_EXTENSION_POPUP: |
| case VIEW_TYPE_LAUNCHER_PAGE: |
| case VIEW_TYPE_PANEL: |
| @@ -309,6 +310,21 @@ void ProcessManager::UnregisterRenderFrameHost( |
| } |
| } |
| +void ProcessManager::DidNavigateRenderFrameHost( |
| + content::RenderFrameHost* render_frame_host) { |
| + ExtensionRenderFrames::iterator frame = |
| + all_extension_frames_.find(render_frame_host); |
| + |
| + if (frame != all_extension_frames_.end()) { |
| + std::string extension_id = GetExtensionID(render_frame_host); |
| + |
| + FOR_EACH_OBSERVER(ProcessManagerObserver, |
| + observer_list_, |
| + OnExtensionFrameNavigated(extension_id, |
| + render_frame_host)); |
| + } |
| +} |
| + |
| scoped_refptr<content::SiteInstance> ProcessManager::GetSiteInstanceForURL( |
| const GURL& url) { |
| return make_scoped_refptr(site_instance_->GetRelatedSiteInstance(url)); |
| @@ -324,17 +340,10 @@ const ProcessManager::FrameSet ProcessManager::GetAllFrames() const { |
| ProcessManager::FrameSet ProcessManager::GetRenderFrameHostsForExtension( |
| const std::string& extension_id) { |
| FrameSet result; |
| - scoped_refptr<content::SiteInstance> site_instance(GetSiteInstanceForURL( |
| - Extension::GetBaseURLFromExtensionId(extension_id))); |
| - if (!site_instance.get()) |
| - return result; |
| - |
| - // Gather up all the frames for that site. |
| for (const auto& key_value : all_extension_frames_) { |
| - if (key_value.first->GetSiteInstance() == site_instance) |
| + if (GetExtensionID(key_value.first) == extension_id) |
|
ncarter (slow)
2015/11/05 20:03:23
This will result in a match even if key_value's Si
robwu
2015/11/12 00:33:58
I don't know. For now I'll assume that chrome-gues
|
| result.insert(key_value.first); |
| } |
| - |
| return result; |
| } |