OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "extensions/browser/process_manager.h" | 5 #include "extensions/browser/process_manager.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
159 | 159 |
160 ExtensionRenderFrameData() | 160 ExtensionRenderFrameData() |
161 : view_type(VIEW_TYPE_INVALID), has_keepalive(false) {} | 161 : view_type(VIEW_TYPE_INVALID), has_keepalive(false) {} |
162 | 162 |
163 // Returns whether the view can keep the lazy background page alive or not. | 163 // Returns whether the view can keep the lazy background page alive or not. |
164 bool CanKeepalive() const { | 164 bool CanKeepalive() const { |
165 switch (view_type) { | 165 switch (view_type) { |
166 case VIEW_TYPE_APP_WINDOW: | 166 case VIEW_TYPE_APP_WINDOW: |
167 case VIEW_TYPE_BACKGROUND_CONTENTS: | 167 case VIEW_TYPE_BACKGROUND_CONTENTS: |
168 case VIEW_TYPE_EXTENSION_DIALOG: | 168 case VIEW_TYPE_EXTENSION_DIALOG: |
| 169 case VIEW_TYPE_EXTENSION_OPTIONS: |
169 case VIEW_TYPE_EXTENSION_POPUP: | 170 case VIEW_TYPE_EXTENSION_POPUP: |
170 case VIEW_TYPE_LAUNCHER_PAGE: | 171 case VIEW_TYPE_LAUNCHER_PAGE: |
171 case VIEW_TYPE_PANEL: | 172 case VIEW_TYPE_PANEL: |
172 case VIEW_TYPE_TAB_CONTENTS: | 173 case VIEW_TYPE_TAB_CONTENTS: |
173 case VIEW_TYPE_VIRTUAL_KEYBOARD: | 174 case VIEW_TYPE_VIRTUAL_KEYBOARD: |
174 return true; | 175 return true; |
175 | 176 |
176 case VIEW_TYPE_INVALID: | 177 case VIEW_TYPE_INVALID: |
177 case VIEW_TYPE_EXTENSION_BACKGROUND_PAGE: | 178 case VIEW_TYPE_EXTENSION_BACKGROUND_PAGE: |
178 return false; | 179 return false; |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
317 const ProcessManager::FrameSet ProcessManager::GetAllFrames() const { | 318 const ProcessManager::FrameSet ProcessManager::GetAllFrames() const { |
318 FrameSet result; | 319 FrameSet result; |
319 for (const auto& key_value : all_extension_frames_) | 320 for (const auto& key_value : all_extension_frames_) |
320 result.insert(key_value.first); | 321 result.insert(key_value.first); |
321 return result; | 322 return result; |
322 } | 323 } |
323 | 324 |
324 ProcessManager::FrameSet ProcessManager::GetRenderFrameHostsForExtension( | 325 ProcessManager::FrameSet ProcessManager::GetRenderFrameHostsForExtension( |
325 const std::string& extension_id) { | 326 const std::string& extension_id) { |
326 FrameSet result; | 327 FrameSet result; |
327 scoped_refptr<content::SiteInstance> site_instance(GetSiteInstanceForURL( | |
328 Extension::GetBaseURLFromExtensionId(extension_id))); | |
329 if (!site_instance.get()) | |
330 return result; | |
331 | |
332 // Gather up all the frames for that site. | |
333 for (const auto& key_value : all_extension_frames_) { | 328 for (const auto& key_value : all_extension_frames_) { |
334 if (key_value.first->GetSiteInstance() == site_instance) | 329 if (GetExtensionID(key_value.first) == extension_id) |
335 result.insert(key_value.first); | 330 result.insert(key_value.first); |
336 } | 331 } |
337 | |
338 return result; | 332 return result; |
339 } | 333 } |
340 | 334 |
341 void ProcessManager::AddObserver(ProcessManagerObserver* observer) { | 335 void ProcessManager::AddObserver(ProcessManagerObserver* observer) { |
342 observer_list_.AddObserver(observer); | 336 observer_list_.AddObserver(observer); |
343 } | 337 } |
344 | 338 |
345 void ProcessManager::RemoveObserver(ProcessManagerObserver* observer) { | 339 void ProcessManager::RemoveObserver(ProcessManagerObserver* observer) { |
346 observer_list_.RemoveObserver(observer); | 340 observer_list_.RemoveObserver(observer); |
347 } | 341 } |
(...skipping 613 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
961 if (extension && !IncognitoInfo::IsSplitMode(extension)) { | 955 if (extension && !IncognitoInfo::IsSplitMode(extension)) { |
962 BrowserContext* original_context = | 956 BrowserContext* original_context = |
963 ExtensionsBrowserClient::Get()->GetOriginalContext(browser_context()); | 957 ExtensionsBrowserClient::Get()->GetOriginalContext(browser_context()); |
964 return ProcessManager::Get(original_context)->GetSiteInstanceForURL(url); | 958 return ProcessManager::Get(original_context)->GetSiteInstanceForURL(url); |
965 } | 959 } |
966 | 960 |
967 return ProcessManager::GetSiteInstanceForURL(url); | 961 return ProcessManager::GetSiteInstanceForURL(url); |
968 } | 962 } |
969 | 963 |
970 } // namespace extensions | 964 } // namespace extensions |
OLD | NEW |