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

Side by Side Diff: chrome/browser/background/background_contents_service.cc

Issue 2882513005: Propagate opener to BackgroundsContents. (Closed)
Patch Set: Tweaked the comment in DriveWebContentsManager::ShouldCreateWebContents Created 3 years, 6 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
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 "chrome/browser/background/background_contents_service.h" 5 #include "chrome/browser/background/background_contents_service.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 701 matching lines...) Expand 10 before | Expand all | Expand 10 after
712 const base::string16& application_id) { 712 const base::string16& application_id) {
713 // We are depending on the fact that we will initialize before any user 713 // We are depending on the fact that we will initialize before any user
714 // actions or session restore can take place, so no BackgroundContents should 714 // actions or session restore can take place, so no BackgroundContents should
715 // be running yet for the passed application_id. 715 // be running yet for the passed application_id.
716 DCHECK(!GetAppBackgroundContents(application_id)); 716 DCHECK(!GetAppBackgroundContents(application_id));
717 DCHECK(!application_id.empty()); 717 DCHECK(!application_id.empty());
718 DCHECK(url.is_valid()); 718 DCHECK(url.is_valid());
719 DVLOG(1) << "Loading background content url: " << url; 719 DVLOG(1) << "Loading background content url: " << url;
720 720
721 BackgroundContents* contents = CreateBackgroundContents( 721 BackgroundContents* contents = CreateBackgroundContents(
722 SiteInstance::CreateForURL(profile, url), MSG_ROUTING_NONE, 722 SiteInstance::CreateForURL(profile, url), nullptr, MSG_ROUTING_NONE,
723 MSG_ROUTING_NONE, MSG_ROUTING_NONE, profile, frame_name, application_id, 723 MSG_ROUTING_NONE, MSG_ROUTING_NONE, profile, frame_name, application_id,
724 std::string(), NULL); 724 std::string(), NULL);
725 725
726 contents->CreateRenderViewSoon(url); 726 contents->CreateRenderViewSoon(url);
727 } 727 }
728 728
729 BackgroundContents* BackgroundContentsService::CreateBackgroundContents( 729 BackgroundContents* BackgroundContentsService::CreateBackgroundContents(
730 scoped_refptr<SiteInstance> site, 730 scoped_refptr<SiteInstance> site,
731 content::RenderFrameHost* opener,
731 int32_t routing_id, 732 int32_t routing_id,
732 int32_t main_frame_route_id, 733 int32_t main_frame_route_id,
733 int32_t main_frame_widget_route_id, 734 int32_t main_frame_widget_route_id,
734 Profile* profile, 735 Profile* profile,
735 const std::string& frame_name, 736 const std::string& frame_name,
736 const base::string16& application_id, 737 const base::string16& application_id,
737 const std::string& partition_id, 738 const std::string& partition_id,
738 content::SessionStorageNamespace* session_storage_namespace) { 739 content::SessionStorageNamespace* session_storage_namespace) {
739 BackgroundContents* contents = 740 BackgroundContents* contents =
740 new BackgroundContents(std::move(site), routing_id, main_frame_route_id, 741 new BackgroundContents(std::move(site), opener, routing_id,
741 main_frame_widget_route_id, this, partition_id, 742 main_frame_route_id, main_frame_widget_route_id,
742 session_storage_namespace); 743 this, partition_id, session_storage_namespace);
743 744
744 // Register the BackgroundContents internally, then send out a notification 745 // Register the BackgroundContents internally, then send out a notification
745 // to external listeners. 746 // to external listeners.
746 BackgroundContentsOpenedDetails details = {contents, 747 BackgroundContentsOpenedDetails details = {contents,
747 frame_name, 748 frame_name,
748 application_id}; 749 application_id};
749 BackgroundContentsOpened(&details, profile); 750 BackgroundContentsOpened(&details, profile);
750 content::NotificationService::current()->Notify( 751 content::NotificationService::current()->Notify(
751 chrome::NOTIFICATION_BACKGROUND_CONTENTS_OPENED, 752 chrome::NOTIFICATION_BACKGROUND_CONTENTS_OPENED,
752 content::Source<Profile>(profile), 753 content::Source<Profile>(profile),
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
862 const gfx::Rect& initial_rect, 863 const gfx::Rect& initial_rect,
863 bool user_gesture, 864 bool user_gesture,
864 bool* was_blocked) { 865 bool* was_blocked) {
865 Browser* browser = chrome::FindLastActiveWithProfile( 866 Browser* browser = chrome::FindLastActiveWithProfile(
866 Profile::FromBrowserContext(new_contents->GetBrowserContext())); 867 Profile::FromBrowserContext(new_contents->GetBrowserContext()));
867 if (browser) { 868 if (browser) {
868 chrome::AddWebContents(browser, NULL, new_contents, disposition, 869 chrome::AddWebContents(browser, NULL, new_contents, disposition,
869 initial_rect, user_gesture, was_blocked); 870 initial_rect, user_gesture, was_blocked);
870 } 871 }
871 } 872 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698