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

Side by Side Diff: chrome/browser/chrome_content_browser_client.cc

Issue 134263005: Implement inline signin with iframe (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix for various iframe bugs Created 6 years, 10 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 "chrome/browser/chrome_content_browser_client.h" 5 #include "chrome/browser/chrome_content_browser_client.h"
6 6
7 #include <set> 7 #include <set>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 725 matching lines...) Expand 10 before | Expand all | Expand 10 after
736 return main_parts; 736 return main_parts;
737 } 737 }
738 738
739 std::string ChromeContentBrowserClient::GetStoragePartitionIdForSite( 739 std::string ChromeContentBrowserClient::GetStoragePartitionIdForSite(
740 content::BrowserContext* browser_context, 740 content::BrowserContext* browser_context,
741 const GURL& site) { 741 const GURL& site) {
742 std::string partition_id; 742 std::string partition_id;
743 743
744 // The partition ID for webview guest processes is the string value of its 744 // The partition ID for webview guest processes is the string value of its
745 // SiteInstance URL - "chrome-guest://app_id/persist?partition". 745 // SiteInstance URL - "chrome-guest://app_id/persist?partition".
746 if (site.SchemeIs(content::kGuestScheme)) 746 if (site.SchemeIs(content::kGuestScheme)) {
747 partition_id = site.spec(); 747 partition_id = site.spec();
748 } else if (site.GetOrigin().spec() == kChromeUIChromeSigninURL) {
749 // Chrome signin page has an embedded iframe of extension and web content,
750 // thus it must be isolated from other webUI pages.
751 partition_id = site.GetOrigin().spec();
752 }
748 753
749 DCHECK(IsValidStoragePartitionId(browser_context, partition_id)); 754 DCHECK(IsValidStoragePartitionId(browser_context, partition_id));
750 return partition_id; 755 return partition_id;
751 } 756 }
752 757
753 bool ChromeContentBrowserClient::IsValidStoragePartitionId( 758 bool ChromeContentBrowserClient::IsValidStoragePartitionId(
754 content::BrowserContext* browser_context, 759 content::BrowserContext* browser_context,
755 const std::string& partition_id) { 760 const std::string& partition_id) {
756 // The default ID is empty and is always valid. 761 // The default ID is empty and is always valid.
757 if (partition_id.empty()) 762 if (partition_id.empty())
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
801 806
802 if (is_isolated) { 807 if (is_isolated) {
803 CHECK(site.has_host()); 808 CHECK(site.has_host());
804 // For extensions with isolated storage, the the host of the |site| is 809 // For extensions with isolated storage, the the host of the |site| is
805 // the |partition_domain|. The |in_memory| and |partition_name| are only 810 // the |partition_domain|. The |in_memory| and |partition_name| are only
806 // used in guest schemes so they are cleared here. 811 // used in guest schemes so they are cleared here.
807 *partition_domain = site.host(); 812 *partition_domain = site.host();
808 *in_memory = false; 813 *in_memory = false;
809 partition_name->clear(); 814 partition_name->clear();
810 } 815 }
816 } else if (site.GetOrigin().spec() == kChromeUIChromeSigninURL) {
817 // Chrome signin page has an embedded iframe of extension and web content,
818 // thus it must be isolated from other webUI pages.
819 *partition_domain = chrome::kChromeUIChromeSigninHost;
811 } 820 }
812 821
813 // Assert that if |can_be_default| is false, the code above must have found a 822 // Assert that if |can_be_default| is false, the code above must have found a
814 // non-default partition. If this fails, the caller has a serious logic 823 // non-default partition. If this fails, the caller has a serious logic
815 // error about which StoragePartition they expect to be in and it is not 824 // error about which StoragePartition they expect to be in and it is not
816 // safe to continue. 825 // safe to continue.
817 CHECK(can_be_default || !partition_domain->empty()); 826 CHECK(can_be_default || !partition_domain->empty());
818 } 827 }
819 828
820 content::WebContentsViewDelegate* 829 content::WebContentsViewDelegate*
(...skipping 1889 matching lines...) Expand 10 before | Expand all | Expand 10 after
2710 // releases of Chrome. Permitting "Unknown" allows these APIs to be used on 2719 // releases of Chrome. Permitting "Unknown" allows these APIs to be used on
2711 // Chromium builds as well. 2720 // Chromium builds as well.
2712 return channel <= chrome::VersionInfo::CHANNEL_DEV; 2721 return channel <= chrome::VersionInfo::CHANNEL_DEV;
2713 #else 2722 #else
2714 return false; 2723 return false;
2715 #endif 2724 #endif
2716 } 2725 }
2717 2726
2718 2727
2719 } // namespace chrome 2728 } // namespace chrome
OLDNEW
« no previous file with comments | « chrome/browser/browser_resources.grd ('k') | chrome/browser/extensions/signin/gaia_auth_extension_loader.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698