Skip to content

Commit

Permalink
[FedCM] Consolidate FedCM permissions into single class
Browse files Browse the repository at this point in the history
This CL merges FederatedIdentityActiveSessionPermissionContext and
FederatedIdentitySharingPermissionContext into
FederatedIdentityPermissionContext.

This is in preparation for storing the IDP sign-in status in a
dedicated permission.

BUG=1384288

Change-Id: I8b1459f9d9309735e19dc6013bfd45330bd5ecfe
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4020919
Reviewed-by: Christian Dullweber <dullweber@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Commit-Queue: Peter Kotwicz <pkotwicz@chromium.org>
Reviewed-by: David Roger <droger@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1077689}
  • Loading branch information
pkotwicz authored and Chromium LUCI CQ committed Nov 30, 2022
1 parent 08326ca commit c18ea67
Show file tree
Hide file tree
Showing 39 changed files with 519 additions and 822 deletions.
12 changes: 4 additions & 8 deletions chrome/browser/BUILD.gn
Expand Up @@ -1875,18 +1875,14 @@ static_library("browser") {
"webauthn/webauthn_pref_names.h",
"webid/federated_identity_account_keyed_permission_context.cc",
"webid/federated_identity_account_keyed_permission_context.h",
"webid/federated_identity_active_session_permission_context.cc",
"webid/federated_identity_active_session_permission_context.h",
"webid/federated_identity_active_session_permission_context_factory.cc",
"webid/federated_identity_active_session_permission_context_factory.h",
"webid/federated_identity_api_permission_context.cc",
"webid/federated_identity_api_permission_context.h",
"webid/federated_identity_api_permission_context_factory.cc",
"webid/federated_identity_api_permission_context_factory.h",
"webid/federated_identity_sharing_permission_context.cc",
"webid/federated_identity_sharing_permission_context.h",
"webid/federated_identity_sharing_permission_context_factory.cc",
"webid/federated_identity_sharing_permission_context_factory.h",
"webid/federated_identity_permission_context.cc",
"webid/federated_identity_permission_context.h",
"webid/federated_identity_permission_context_factory.cc",
"webid/federated_identity_permission_context_factory.h",
]

if (is_chromeos_ash) {
Expand Down
Expand Up @@ -73,8 +73,7 @@
#include "chrome/browser/sync/sync_service_factory.h"
#include "chrome/browser/translate/chrome_translate_client.h"
#include "chrome/browser/web_data_service_factory.h"
#include "chrome/browser/webid/federated_identity_active_session_permission_context.h"
#include "chrome/browser/webid/federated_identity_sharing_permission_context.h"
#include "chrome/browser/webid/federated_identity_permission_context.h"
#include "chrome/common/chrome_constants.h"
#include "chrome/common/chrome_features.h"
#include "chrome/common/chrome_paths.h"
Expand Down Expand Up @@ -2856,17 +2855,14 @@ TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveFederatedContentSettings) {
constants::DATA_TYPE_HISTORY, constants::DATA_TYPE_PASSWORDS};
for (content::BrowsingDataRemover::DataType test_data_type : test_cases) {
{
FederatedIdentityActiveSessionPermissionContext active_session_context(
GetProfile());
active_session_context.GrantActiveSession(rp_origin, idp_origin,
account_id);
ASSERT_TRUE(active_session_context.HasActiveSession(rp_origin, idp_origin,
account_id));

FederatedIdentitySharingPermissionContext sharing_context(GetProfile());
sharing_context.GrantSharingPermission(rp_origin, rp_embedder_origin,
idp_origin, account_id);
ASSERT_TRUE(sharing_context.HasSharingPermission(
FederatedIdentityPermissionContext federated_context(GetProfile());
federated_context.GrantActiveSession(rp_origin, idp_origin, account_id);
ASSERT_TRUE(federated_context.HasActiveSession(rp_origin, idp_origin,
account_id));

federated_context.GrantSharingPermission(rp_origin, rp_embedder_origin,
idp_origin, account_id);
ASSERT_TRUE(federated_context.HasSharingPermission(
rp_origin, rp_embedder_origin, idp_origin, account_id));

host_content_settings_map->SetContentSettingDefaultScope(
Expand All @@ -2885,13 +2881,11 @@ TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveFederatedContentSettings) {
{
// Re-initialize contexts in order to update in-memory
// ObjectPermissionContextBase cache.
FederatedIdentityActiveSessionPermissionContext active_session_context(
GetProfile());
FederatedIdentitySharingPermissionContext sharing_context(GetProfile());
FederatedIdentityPermissionContext federated_context(GetProfile());

EXPECT_FALSE(active_session_context.HasActiveSession(
rp_origin, idp_origin, account_id));
EXPECT_FALSE(sharing_context.HasSharingPermission(
EXPECT_FALSE(federated_context.HasActiveSession(rp_origin, idp_origin,
account_id));
EXPECT_FALSE(federated_context.HasSharingPermission(
rp_origin, rp_embedder_origin, idp_origin, account_id));

// Content setting is on by default.
Expand Down
18 changes: 5 additions & 13 deletions chrome/browser/profiles/off_the_record_profile_impl.cc
Expand Up @@ -52,12 +52,10 @@
#include "chrome/browser/transition_manager/full_browser_transition_manager.h"
#include "chrome/browser/ui/webui/extensions/extension_icon_source.h"
#include "chrome/browser/ui/zoom/chrome_zoom_level_otr_delegate.h"
#include "chrome/browser/webid/federated_identity_active_session_permission_context.h"
#include "chrome/browser/webid/federated_identity_active_session_permission_context_factory.h"
#include "chrome/browser/webid/federated_identity_api_permission_context.h"
#include "chrome/browser/webid/federated_identity_api_permission_context_factory.h"
#include "chrome/browser/webid/federated_identity_sharing_permission_context.h"
#include "chrome/browser/webid/federated_identity_sharing_permission_context_factory.h"
#include "chrome/browser/webid/federated_identity_permission_context.h"
#include "chrome/browser/webid/federated_identity_permission_context_factory.h"
#include "chrome/common/buildflags.h"
#include "chrome/common/chrome_constants.h"
#include "chrome/common/chrome_paths.h"
Expand Down Expand Up @@ -696,15 +694,9 @@ void OffTheRecordProfileImpl::RecordPrimaryMainFrameNavigation() {
main_frame_navigations_++;
}

content::FederatedIdentityActiveSessionPermissionContextDelegate*
OffTheRecordProfileImpl::GetFederatedIdentityActiveSessionPermissionContext() {
return FederatedIdentityActiveSessionPermissionContextFactory::GetForProfile(
this);
}

content::FederatedIdentitySharingPermissionContextDelegate*
OffTheRecordProfileImpl::GetFederatedIdentitySharingPermissionContext() {
return FederatedIdentitySharingPermissionContextFactory::GetForProfile(this);
content::FederatedIdentityPermissionContextDelegate*
OffTheRecordProfileImpl::GetFederatedIdentityPermissionContext() {
return FederatedIdentityPermissionContextFactory::GetForProfile(this);
}

content::FederatedIdentityApiPermissionContextDelegate*
Expand Down
6 changes: 2 additions & 4 deletions chrome/browser/profiles/off_the_record_profile_impl.h
Expand Up @@ -125,10 +125,8 @@ class OffTheRecordProfileImpl : public Profile {
content::FileSystemAccessPermissionContext*
GetFileSystemAccessPermissionContext() override;
void RecordPrimaryMainFrameNavigation() override;
content::FederatedIdentityActiveSessionPermissionContextDelegate*
GetFederatedIdentityActiveSessionPermissionContext() override;
content::FederatedIdentitySharingPermissionContextDelegate*
GetFederatedIdentitySharingPermissionContext() override;
content::FederatedIdentityPermissionContextDelegate*
GetFederatedIdentityPermissionContext() override;
content::FederatedIdentityApiPermissionContextDelegate*
GetFederatedIdentityApiPermissionContext() override;
content::KAnonymityServiceDelegate* GetKAnonymityServiceDelegate() override;
Expand Down
20 changes: 5 additions & 15 deletions chrome/browser/profiles/profile_impl.cc
Expand Up @@ -108,12 +108,10 @@
#include "chrome/browser/ui/webui/prefs_internals_source.h"
#include "chrome/browser/updates/announcement_notification/announcement_notification_service.h"
#include "chrome/browser/updates/announcement_notification/announcement_notification_service_factory.h"
#include "chrome/browser/webid/federated_identity_active_session_permission_context.h"
#include "chrome/browser/webid/federated_identity_active_session_permission_context_factory.h"
#include "chrome/browser/webid/federated_identity_api_permission_context.h"
#include "chrome/browser/webid/federated_identity_api_permission_context_factory.h"
#include "chrome/browser/webid/federated_identity_sharing_permission_context.h"
#include "chrome/browser/webid/federated_identity_sharing_permission_context_factory.h"
#include "chrome/browser/webid/federated_identity_permission_context.h"
#include "chrome/browser/webid/federated_identity_permission_context_factory.h"
#include "chrome/common/buildflags.h"
#include "chrome/common/channel_info.h"
#include "chrome/common/chrome_constants.h"
Expand Down Expand Up @@ -160,9 +158,7 @@
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/dom_storage_context.h"
#include "content/public/browser/federated_identity_active_session_permission_context_delegate.h"
#include "content/public/browser/federated_identity_api_permission_context_delegate.h"
#include "content/public/browser/federated_identity_sharing_permission_context_delegate.h"
#include "content/public/browser/network_service_instance.h"
#include "content/public/browser/permission_controller.h"
#include "content/public/browser/render_process_host.h"
Expand Down Expand Up @@ -1379,15 +1375,9 @@ ProfileImpl::GetFederatedIdentityApiPermissionContext() {
return FederatedIdentityApiPermissionContextFactory::GetForProfile(this);
}

content::FederatedIdentityActiveSessionPermissionContextDelegate*
ProfileImpl::GetFederatedIdentityActiveSessionPermissionContext() {
return FederatedIdentityActiveSessionPermissionContextFactory::GetForProfile(
this);
}

content::FederatedIdentitySharingPermissionContextDelegate*
ProfileImpl::GetFederatedIdentitySharingPermissionContext() {
return FederatedIdentitySharingPermissionContextFactory::GetForProfile(this);
content::FederatedIdentityPermissionContextDelegate*
ProfileImpl::GetFederatedIdentityPermissionContext() {
return FederatedIdentityPermissionContextFactory::GetForProfile(this);
}

content::KAnonymityServiceDelegate*
Expand Down
6 changes: 2 additions & 4 deletions chrome/browser/profiles/profile_impl.h
Expand Up @@ -102,10 +102,8 @@ class ProfileImpl : public Profile {
content::ContentIndexProvider* GetContentIndexProvider() override;
content::FederatedIdentityApiPermissionContextDelegate*
GetFederatedIdentityApiPermissionContext() override;
content::FederatedIdentityActiveSessionPermissionContextDelegate*
GetFederatedIdentityActiveSessionPermissionContext() override;
content::FederatedIdentitySharingPermissionContextDelegate*
GetFederatedIdentitySharingPermissionContext() override;
content::FederatedIdentityPermissionContextDelegate*
GetFederatedIdentityPermissionContext() override;
content::KAnonymityServiceDelegate* GetKAnonymityServiceDelegate() override;
content::OriginTrialsControllerDelegate* GetOriginTrialsControllerDelegate()
override;
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

0 comments on commit c18ea67

Please sign in to comment.