Chromium Code Reviews| 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 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 317 const ProcessManager::FrameSet ProcessManager::GetAllFrames() const { | 317 const ProcessManager::FrameSet ProcessManager::GetAllFrames() const { |
| 318 FrameSet result; | 318 FrameSet result; |
| 319 for (const auto& key_value : all_extension_frames_) | 319 for (const auto& key_value : all_extension_frames_) |
| 320 result.insert(key_value.first); | 320 result.insert(key_value.first); |
| 321 return result; | 321 return result; |
| 322 } | 322 } |
| 323 | 323 |
| 324 ProcessManager::FrameSet ProcessManager::GetRenderFrameHostsForExtension( | 324 ProcessManager::FrameSet ProcessManager::GetRenderFrameHostsForExtension( |
| 325 const std::string& extension_id) { | 325 const std::string& extension_id) { |
| 326 FrameSet result; | 326 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_) { | 327 for (const auto& key_value : all_extension_frames_) { |
| 334 if (key_value.first->GetSiteInstance() == site_instance) | 328 if (GetExtensionID(key_value.first) == extension_id) |
|
Devlin
2015/10/30 01:21:44
I thought we made sure that extensions could only
ncarter (slow)
2015/10/30 06:22:20
The code you're thinking of is actually in this fi
robwu
2015/10/30 10:15:50
I also expected extensions to have only one SiteIn
ncarter (slow)
2015/10/30 15:53:44
SiteInstanceImpl::GetRelatedSiteInstance() just ca
robwu
2015/10/30 23:02:44
That is correct. The BrowsingInstances are differe
| |
| 335 result.insert(key_value.first); | 329 result.insert(key_value.first); |
| 336 } | 330 } |
| 337 | |
| 338 return result; | 331 return result; |
| 339 } | 332 } |
| 340 | 333 |
| 341 void ProcessManager::AddObserver(ProcessManagerObserver* observer) { | 334 void ProcessManager::AddObserver(ProcessManagerObserver* observer) { |
| 342 observer_list_.AddObserver(observer); | 335 observer_list_.AddObserver(observer); |
| 343 } | 336 } |
| 344 | 337 |
| 345 void ProcessManager::RemoveObserver(ProcessManagerObserver* observer) { | 338 void ProcessManager::RemoveObserver(ProcessManagerObserver* observer) { |
| 346 observer_list_.RemoveObserver(observer); | 339 observer_list_.RemoveObserver(observer); |
| 347 } | 340 } |
| (...skipping 613 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 961 if (extension && !IncognitoInfo::IsSplitMode(extension)) { | 954 if (extension && !IncognitoInfo::IsSplitMode(extension)) { |
| 962 BrowserContext* original_context = | 955 BrowserContext* original_context = |
| 963 ExtensionsBrowserClient::Get()->GetOriginalContext(browser_context()); | 956 ExtensionsBrowserClient::Get()->GetOriginalContext(browser_context()); |
| 964 return ProcessManager::Get(original_context)->GetSiteInstanceForURL(url); | 957 return ProcessManager::Get(original_context)->GetSiteInstanceForURL(url); |
| 965 } | 958 } |
| 966 | 959 |
| 967 return ProcessManager::GetSiteInstanceForURL(url); | 960 return ProcessManager::GetSiteInstanceForURL(url); |
| 968 } | 961 } |
| 969 | 962 |
| 970 } // namespace extensions | 963 } // namespace extensions |
| OLD | NEW |