Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(217)

Side by Side Diff: extensions/browser/process_manager.cc

Issue 1413853005: Track all extension frames in ProcessManager, inspect extensionoptions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698