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

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

Issue 790423002: Add the main frame routing ID to WebContentsDelegate, use it in BackgroundContents. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: content shell Created 6 years 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 "apps/app_load_service.h" 7 #include "apps/app_load_service.h"
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after
615 // actions or session restore can take place, so no BackgroundContents should 615 // actions or session restore can take place, so no BackgroundContents should
616 // be running yet for the passed application_id. 616 // be running yet for the passed application_id.
617 DCHECK(!GetAppBackgroundContents(application_id)); 617 DCHECK(!GetAppBackgroundContents(application_id));
618 DCHECK(!application_id.empty()); 618 DCHECK(!application_id.empty());
619 DCHECK(url.is_valid()); 619 DCHECK(url.is_valid());
620 DVLOG(1) << "Loading background content url: " << url; 620 DVLOG(1) << "Loading background content url: " << url;
621 621
622 BackgroundContents* contents = CreateBackgroundContents( 622 BackgroundContents* contents = CreateBackgroundContents(
623 SiteInstance::CreateForURL(profile, url), 623 SiteInstance::CreateForURL(profile, url),
624 MSG_ROUTING_NONE, 624 MSG_ROUTING_NONE,
625 MSG_ROUTING_NONE,
625 profile, 626 profile,
626 frame_name, 627 frame_name,
627 application_id, 628 application_id,
628 std::string(), 629 std::string(),
629 NULL); 630 NULL);
630 631
631 // TODO(atwilson): Create RenderViews asynchronously to avoid increasing 632 // TODO(atwilson): Create RenderViews asynchronously to avoid increasing
632 // startup latency (http://crbug.com/47236). 633 // startup latency (http://crbug.com/47236).
633 contents->web_contents()->GetController().LoadURL( 634 contents->web_contents()->GetController().LoadURL(
634 url, content::Referrer(), ui::PAGE_TRANSITION_LINK, std::string()); 635 url, content::Referrer(), ui::PAGE_TRANSITION_LINK, std::string());
635 } 636 }
636 637
637 BackgroundContents* BackgroundContentsService::CreateBackgroundContents( 638 BackgroundContents* BackgroundContentsService::CreateBackgroundContents(
638 SiteInstance* site, 639 SiteInstance* site,
639 int routing_id, 640 int routing_id,
641 int main_frame_route_id,
640 Profile* profile, 642 Profile* profile,
641 const base::string16& frame_name, 643 const base::string16& frame_name,
642 const base::string16& application_id, 644 const base::string16& application_id,
643 const std::string& partition_id, 645 const std::string& partition_id,
644 content::SessionStorageNamespace* session_storage_namespace) { 646 content::SessionStorageNamespace* session_storage_namespace) {
645 BackgroundContents* contents = new BackgroundContents( 647 BackgroundContents* contents = new BackgroundContents(
646 site, routing_id, this, partition_id, session_storage_namespace); 648 site, routing_id, main_frame_route_id, this, partition_id,
649 session_storage_namespace);
647 650
648 // Register the BackgroundContents internally, then send out a notification 651 // Register the BackgroundContents internally, then send out a notification
649 // to external listeners. 652 // to external listeners.
650 BackgroundContentsOpenedDetails details = {contents, 653 BackgroundContentsOpenedDetails details = {contents,
651 frame_name, 654 frame_name,
652 application_id}; 655 application_id};
653 BackgroundContentsOpened(&details, profile); 656 BackgroundContentsOpened(&details, profile);
654 content::NotificationService::current()->Notify( 657 content::NotificationService::current()->Notify(
655 chrome::NOTIFICATION_BACKGROUND_CONTENTS_OPENED, 658 chrome::NOTIFICATION_BACKGROUND_CONTENTS_OPENED,
656 content::Source<Profile>(profile), 659 content::Source<Profile>(profile),
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
767 bool user_gesture, 770 bool user_gesture,
768 bool* was_blocked) { 771 bool* was_blocked) {
769 Browser* browser = chrome::FindLastActiveWithProfile( 772 Browser* browser = chrome::FindLastActiveWithProfile(
770 Profile::FromBrowserContext(new_contents->GetBrowserContext()), 773 Profile::FromBrowserContext(new_contents->GetBrowserContext()),
771 chrome::GetActiveDesktop()); 774 chrome::GetActiveDesktop());
772 if (browser) { 775 if (browser) {
773 chrome::AddWebContents(browser, NULL, new_contents, disposition, 776 chrome::AddWebContents(browser, NULL, new_contents, disposition,
774 initial_pos, user_gesture, was_blocked); 777 initial_pos, user_gesture, was_blocked);
775 } 778 }
776 } 779 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698