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

Side by Side Diff: chrome/browser/extensions/extension_process_manager.cc

Issue 9473001: Extract minimal RenderViewHost interface for embedders, leaving (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Ready for initial review. Created 8 years, 9 months 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/command_line.h" 6 #include "base/command_line.h"
7 #include "chrome/browser/extensions/extension_process_manager.h" 7 #include "chrome/browser/extensions/extension_process_manager.h"
8 8
9 #include "chrome/browser/extensions/extension_event_router.h" 9 #include "chrome/browser/extensions/extension_event_router.h"
10 #include "chrome/browser/ui/browser_window.h" 10 #include "chrome/browser/ui/browser_window.h"
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 // able to save settings from OTR. 227 // able to save settings from OTR.
228 if (!browser || browser->profile()->IsOffTheRecord()) { 228 if (!browser || browser->profile()->IsOffTheRecord()) {
229 Profile* profile = GetProfile(); 229 Profile* profile = GetProfile();
230 browser = Browser::GetOrCreateTabbedBrowser(profile->GetOriginalProfile()); 230 browser = Browser::GetOrCreateTabbedBrowser(profile->GetOriginalProfile());
231 } 231 }
232 232
233 OpenURLParams params(extension->options_url(), Referrer(), SINGLETON_TAB, 233 OpenURLParams params(extension->options_url(), Referrer(), SINGLETON_TAB,
234 content::PAGE_TRANSITION_LINK, false); 234 content::PAGE_TRANSITION_LINK, false);
235 browser->OpenURL(params); 235 browser->OpenURL(params);
236 browser->window()->Show(); 236 browser->window()->Show();
237 browser->GetSelectedWebContents()->GetRenderViewHost()->delegate()-> 237 browser->GetSelectedWebContents()->GetRenderViewHost()->GetDelegate()->
238 Activate(); 238 Activate();
239 } 239 }
240 240
241 ExtensionHost* ExtensionProcessManager::GetBackgroundHostForExtension( 241 ExtensionHost* ExtensionProcessManager::GetBackgroundHostForExtension(
242 const std::string& extension_id) { 242 const std::string& extension_id) {
243 for (ExtensionHostSet::iterator iter = background_hosts_.begin(); 243 for (ExtensionHostSet::iterator iter = background_hosts_.begin();
244 iter != background_hosts_.end(); ++iter) { 244 iter != background_hosts_.end(); ++iter) {
245 ExtensionHost* host = *iter; 245 ExtensionHost* host = *iter;
246 if (host->extension_id() == extension_id) 246 if (host->extension_id() == extension_id)
247 return host; 247 return host;
248 } 248 }
249 return NULL; 249 return NULL;
250 250
251 } 251 }
252 252
253 std::set<RenderViewHost*> 253 std::set<RenderViewHost*>
254 ExtensionProcessManager::GetRenderViewHostsForExtension( 254 ExtensionProcessManager::GetRenderViewHostsForExtension(
255 const std::string& extension_id) { 255 const std::string& extension_id) {
256 std::set<RenderViewHost*> result; 256 std::set<RenderViewHost*> result;
257 257
258 SiteInstance* site_instance = GetSiteInstanceForURL( 258 SiteInstance* site_instance = GetSiteInstanceForURL(
259 Extension::GetBaseURLFromExtensionId(extension_id)); 259 Extension::GetBaseURLFromExtensionId(extension_id));
260 if (!site_instance) 260 if (!site_instance)
261 return result; 261 return result;
262 262
263 // Gather up all the views for that site. 263 // Gather up all the views for that site.
264 for (RenderViewHostSet::iterator view = all_extension_views_.begin(); 264 for (RenderViewHostSet::iterator view = all_extension_views_.begin();
265 view != all_extension_views_.end(); ++view) { 265 view != all_extension_views_.end(); ++view) {
266 if ((*view)->site_instance() == site_instance) 266 if ((*view)->GetSiteInstance() == site_instance)
267 result.insert(*view); 267 result.insert(*view);
268 } 268 }
269 269
270 return result; 270 return result;
271 } 271 }
272 272
273 void ExtensionProcessManager::RegisterRenderViewHost( 273 void ExtensionProcessManager::RegisterRenderViewHost(
274 RenderViewHost* render_view_host, 274 RenderViewHost* render_view_host,
275 const Extension* extension) { 275 const Extension* extension) {
276 all_extension_views_.insert(render_view_host); 276 all_extension_views_.insert(render_view_host);
(...skipping 21 matching lines...) Expand all
298 CloseBackgroundHost(host); 298 CloseBackgroundHost(host);
299 } 299 }
300 } 300 }
301 301
302 bool ExtensionProcessManager::HasVisibleViews(const std::string& extension_id) { 302 bool ExtensionProcessManager::HasVisibleViews(const std::string& extension_id) {
303 const std::set<RenderViewHost*>& views = 303 const std::set<RenderViewHost*>& views =
304 GetRenderViewHostsForExtension(extension_id); 304 GetRenderViewHostsForExtension(extension_id);
305 for (std::set<RenderViewHost*>::const_iterator it = views.begin(); 305 for (std::set<RenderViewHost*>::const_iterator it = views.begin();
306 it != views.end(); ++it) { 306 it != views.end(); ++it) {
307 const RenderViewHost* host = *it; 307 const RenderViewHost* host = *it;
308 if (host->site_instance()->GetSite().host() == extension_id && 308 if (host->GetSiteInstance()->GetSite().host() == extension_id &&
309 host->delegate()->GetRenderViewType() != 309 host->GetDelegate()->GetRenderViewType() !=
310 chrome::VIEW_TYPE_EXTENSION_BACKGROUND_PAGE) { 310 chrome::VIEW_TYPE_EXTENSION_BACKGROUND_PAGE) {
311 return true; 311 return true;
312 } 312 }
313 } 313 }
314 return false; 314 return false;
315 } 315 }
316 316
317 void ExtensionProcessManager::Observe( 317 void ExtensionProcessManager::Observe(
318 int type, 318 int type,
319 const content::NotificationSource& source, 319 const content::NotificationSource& source,
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 if (service && service->is_ready()) 493 if (service && service->is_ready())
494 CreateBackgroundHostsForProfileStartup(this, service->extensions()); 494 CreateBackgroundHostsForProfileStartup(this, service->extensions());
495 } 495 }
496 break; 496 break;
497 } 497 }
498 default: 498 default:
499 ExtensionProcessManager::Observe(type, source, details); 499 ExtensionProcessManager::Observe(type, source, details);
500 break; 500 break;
501 } 501 }
502 } 502 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698