| Index: extensions/browser/process_manager.cc
|
| diff --git a/extensions/browser/process_manager.cc b/extensions/browser/process_manager.cc
|
| index 8b2b4b534b92e13bad3a2a9530c0f928c93eb284..29917b1bd1ca55c027e3fccce366c0c8353ea156 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,20 +340,19 @@ 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)
|
| result.insert(key_value.first);
|
| }
|
| -
|
| return result;
|
| }
|
|
|
| +bool ProcessManager::IsRenderFrameHostRegistered(
|
| + content::RenderFrameHost* render_frame_host) {
|
| + return all_extension_frames_.find(render_frame_host) !=
|
| + all_extension_frames_.end();
|
| +}
|
| +
|
| void ProcessManager::AddObserver(ProcessManagerObserver* observer) {
|
| observer_list_.AddObserver(observer);
|
| }
|
|
|