X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fchrome%2Fbrowser%2Fpolicy%2Fprofile_policy_connector.cc;h=525d04efb1298a8f8928cdac50ad17813d50ef36;hb=ff3e2503a20db9193d323c1d19c38c68004dec4a;hp=411a2252e25e5ffc2f2bb6c7ba0c7b16842adc87;hpb=7338fba38ba696536d1cc9d389afd716a6ab2fe6;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/chrome/browser/policy/profile_policy_connector.cc b/src/chrome/browser/policy/profile_policy_connector.cc index 411a225..525d04e 100644 --- a/src/chrome/browser/policy/profile_policy_connector.cc +++ b/src/chrome/browser/policy/profile_policy_connector.cc @@ -10,10 +10,13 @@ #include "base/logging.h" #include "chrome/browser/browser_process.h" #include "components/policy/core/browser/browser_policy_connector.h" +#include "components/policy/core/common/cloud/cloud_policy_core.h" #include "components/policy/core/common/cloud/cloud_policy_manager.h" +#include "components/policy/core/common/cloud/cloud_policy_store.h" #include "components/policy/core/common/configuration_policy_provider.h" #include "components/policy/core/common/forwarding_policy_provider.h" #include "components/policy/core/common/policy_service_impl.h" +#include "google_apis/gaia/gaia_auth_util.h" #if defined(OS_CHROMEOS) #include "chrome/browser/chromeos/login/user.h" @@ -28,7 +31,10 @@ namespace policy { ProfilePolicyConnector::ProfilePolicyConnector() #if defined(OS_CHROMEOS) - : is_primary_user_(false) + : is_primary_user_(false), + user_cloud_policy_manager_(NULL) +#else + : user_cloud_policy_manager_(NULL) #endif {} @@ -41,6 +47,8 @@ void ProfilePolicyConnector::Init( #endif SchemaRegistry* schema_registry, CloudPolicyManager* user_cloud_policy_manager) { + user_cloud_policy_manager_ = user_cloud_policy_manager; + // |providers| contains a list of the policy providers available for the // PolicyService of this connector, in decreasing order of priority. // @@ -122,6 +130,19 @@ void ProfilePolicyConnector::Shutdown() { forwarding_policy_provider_->Shutdown(); } +bool ProfilePolicyConnector::IsManaged() const { + return !GetManagementDomain().empty(); +} + +std::string ProfilePolicyConnector::GetManagementDomain() const { + if (!user_cloud_policy_manager_) + return ""; + CloudPolicyStore* store = user_cloud_policy_manager_->core()->store(); + if (store && store->is_managed() && store->policy()->has_username()) + return gaia::ExtractDomainName(store->policy()->username()); + return ""; +} + #if defined(OS_CHROMEOS) void ProfilePolicyConnector::InitializeDeviceLocalAccountPolicyProvider( const std::string& username,