Skip to content

Commit

Permalink
Move kids_management_api constants to general supervised user constants.
Browse files Browse the repository at this point in the history
Removes unnecessary segmentation across files in preparation for kids
management service migration.

Bug: b/268600855
Change-Id: I8863068a8956b7f6036f600bc73d1a043fa27340
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4236579
Commit-Queue: Nohemi Fernandez <fernandex@chromium.org>
Reviewed-by: Alex Ilin <alexilin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1103829}
  • Loading branch information
Nohemi Fernandez authored and Chromium LUCI CQ committed Feb 10, 2023
1 parent ed134af commit 0dded71
Show file tree
Hide file tree
Showing 9 changed files with 54 additions and 92 deletions.
2 changes: 0 additions & 2 deletions chrome/browser/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -7396,8 +7396,6 @@ static_library("browser") {
"supervised_user/child_accounts/child_account_service_impl.h",
"supervised_user/child_accounts/family_info_fetcher.cc",
"supervised_user/child_accounts/family_info_fetcher.h",
"supervised_user/child_accounts/kids_management_api.cc",
"supervised_user/child_accounts/kids_management_api.h",
"supervised_user/child_accounts/permission_request_creator_apiary.cc",
"supervised_user/child_accounts/permission_request_creator_apiary.h",
"supervised_user/kids_chrome_management/kids_access_token_fetcher.cc",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
#include "base/strings/stringprintf.h"
#include "base/time/time.h"
#include "base/values.h"
#include "chrome/browser/supervised_user/child_accounts/kids_management_api.h"
#include "chrome/browser/supervised_user/kids_chrome_management/kids_external_fetcher.h"
#include "components/signin/public/base/consent_level.h"
#include "components/signin/public/identity_manager/access_token_info.h"
Expand All @@ -33,8 +32,6 @@
#include "services/network/public/mojom/url_response_head.mojom.h"
#include "url/gurl.h"

const char kGetFamilyProfileApiPath[] = "families/mine?alt=json";
const char kGetFamilyMembersApiPath[] = "families/mine/members?alt=json";
const int kNumFamilyInfoFetcherRetries = 1;

const char kIdFamily[] = "family";
Expand Down Expand Up @@ -81,8 +78,8 @@ std::string LatencyPerStatusKey(KidsExternalFetcherStatus::State status) {

void RecordMetrics(KidsExternalFetcherStatus::State status,
base::TimeTicks start_time,
base::StringPiece request_path) {
if (request_path != kGetFamilyMembersApiPath) {
const GURL& request_url) {
if (request_url != supervised_user::KidsManagementGetFamilyMembersURL()) {
// Ignore tracing all api calls except for family members.
return;
}
Expand Down Expand Up @@ -164,12 +161,12 @@ bool FamilyInfoFetcher::StringToRole(
}

void FamilyInfoFetcher::StartGetFamilyProfile() {
request_path_ = kGetFamilyProfileApiPath;
request_url_ = supervised_user::KidsManagementGetFamilyProfileURL();
StartFetchingAccessToken();
}

void FamilyInfoFetcher::StartGetFamilyMembers() {
request_path_ = kGetFamilyMembersApiPath;
request_url_ = supervised_user::KidsManagementGetFamilyMembersURL();
StartFetchingAccessToken();
}

Expand All @@ -192,14 +189,12 @@ void FamilyInfoFetcher::OnAccessTokenFetchComplete(
if (error.state() != GoogleServiceAuthError::NONE) {
DLOG(WARNING) << "Failed to get an access token: " << error.ToString();
RecordMetrics(KidsExternalFetcherStatus::State::GOOGLE_SERVICE_AUTH_ERROR,
simple_url_loader_start_time_, request_path_);
simple_url_loader_start_time_, request_url_);
consumer_->OnFailure(ErrorCode::kTokenError);
return;
}
access_token_ = access_token_info.token;

GURL url = kids_management_api::GetURL(request_path_);

net::NetworkTrafficAnnotationTag traffic_annotation =
net::DefineNetworkTrafficAnnotation("family_info", R"(
semantics {
Expand Down Expand Up @@ -229,7 +224,7 @@ void FamilyInfoFetcher::OnAccessTokenFetchComplete(
})");

auto resource_request = std::make_unique<network::ResourceRequest>();
resource_request->url = url;
resource_request->url = request_url_;
resource_request->credentials_mode = network::mojom::CredentialsMode::kOmit;
resource_request->headers.SetHeader(
net::HttpRequestHeaders::kAuthorization,
Expand Down Expand Up @@ -278,7 +273,7 @@ void FamilyInfoFetcher::OnSimpleLoaderCompleteInternal(
if (primary_account_id.empty()) {
DLOG(WARNING) << "Primary account removed";
RecordMetrics(KidsExternalFetcherStatus::State::GOOGLE_SERVICE_AUTH_ERROR,
simple_url_loader_start_time_, request_path_);
simple_url_loader_start_time_, request_url_);
consumer_->OnFailure(ErrorCode::kTokenError);
return;
}
Expand All @@ -292,22 +287,23 @@ void FamilyInfoFetcher::OnSimpleLoaderCompleteInternal(
if (response_code != net::HTTP_OK) {
DLOG(WARNING) << "HTTP error " << response_code;
RecordMetrics(KidsExternalFetcherStatus::State::HTTP_ERROR,
simple_url_loader_start_time_, request_path_);
simple_url_loader_start_time_, request_url_);
consumer_->OnFailure(ErrorCode::kNetworkError);
return;
}

if (net_error != net::OK) {
DLOG(WARNING) << "NetError " << net_error;
RecordMetrics(KidsExternalFetcherStatus::State::HTTP_ERROR,
simple_url_loader_start_time_, request_path_);
simple_url_loader_start_time_, request_url_);
consumer_->OnFailure(ErrorCode::kNetworkError);
return;
}

if (request_path_ == kGetFamilyProfileApiPath) {
if (request_url_ == supervised_user::KidsManagementGetFamilyProfileURL()) {
FamilyProfileFetched(response_body);
} else if (request_path_ == kGetFamilyMembersApiPath) {
} else if (request_url_ ==
supervised_user::KidsManagementGetFamilyMembersURL()) {
FamilyMembersFetched(response_body);
} else {
NOTREACHED();
Expand Down Expand Up @@ -410,26 +406,26 @@ void FamilyInfoFetcher::FamilyMembersFetched(const std::string& response) {
absl::optional<base::Value> value = base::JSONReader::Read(response);
if (!value || !value->is_dict()) {
RecordMetrics(KidsExternalFetcherStatus::State::INVALID_RESPONSE,
simple_url_loader_start_time_, request_path_);
simple_url_loader_start_time_, request_url_);
consumer_->OnFailure(ErrorCode::kServiceError);
return;
}
const base::Value::Dict& dict = value->GetDict();
const base::Value::List* members_list = dict.FindList(kIdMembers);
if (!members_list) {
RecordMetrics(KidsExternalFetcherStatus::State::DATA_ERROR,
simple_url_loader_start_time_, request_path_);
simple_url_loader_start_time_, request_url_);
consumer_->OnFailure(ErrorCode::kServiceError);
return;
}
std::vector<FamilyMember> members;
if (!ParseMembers(*members_list, &members)) {
RecordMetrics(KidsExternalFetcherStatus::State::DATA_ERROR,
simple_url_loader_start_time_, request_path_);
simple_url_loader_start_time_, request_url_);
consumer_->OnFailure(ErrorCode::kServiceError);
return;
}
RecordMetrics(KidsExternalFetcherStatus::State::NO_ERROR,
simple_url_loader_start_time_, request_path_);
simple_url_loader_start_time_, request_url_);
consumer_->OnGetFamilyMembersSuccess(members);
}
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ class FamilyInfoFetcher {
raw_ptr<signin::IdentityManager> identity_manager_;
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_;

std::string request_path_;
GURL request_url_;
std::unique_ptr<signin::PrimaryAccountAccessTokenFetcher>
access_token_fetcher_;
std::string access_token_;
Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
#include "base/values.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/signin/identity_manager_factory.h"
#include "chrome/browser/supervised_user/child_accounts/kids_management_api.h"
#include "chrome/common/chrome_switches.h"
#include "components/signin/public/base/consent_level.h"
#include "components/signin/public/identity_manager/access_token_info.h"
Expand All @@ -39,8 +38,6 @@

namespace {

const char kPermissionRequestApiPath[] = "people/me/permissionRequests";

const int kNumPermissionRequestRetries = 1;

// Request keys.
Expand Down Expand Up @@ -115,7 +112,7 @@ void PermissionRequestCreatorApiary::CreateURLAccessRequest(
}

GURL PermissionRequestCreatorApiary::GetApiUrl() const {
return kids_management_api::GetURL(kPermissionRequestApiPath);
return supervised_user::KidsManagementPermissionRequestsURL();
}

std::string PermissionRequestCreatorApiary::GetApiScope() const {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
#include "base/time/time.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/signin/identity_manager_factory.h"
#include "chrome/browser/supervised_user/child_accounts/kids_management_api.h"
#include "components/google/core/common/google_util.h"
#include "components/signin/public/base/consent_level.h"
#include "components/signin/public/identity_manager/access_token_info.h"
Expand Down Expand Up @@ -47,7 +46,6 @@ constexpr char kClassifyUrlDataContentType[] =
"application/x-www-form-urlencoded";

// Constants for ClassifyURL.
constexpr char kClassifyUrlRequestApiPath[] = "people/me:classifyUrl";
constexpr char kClassifyUrlOauthConsumerName[] = "kids_url_classifier";
constexpr char kClassifyUrlDataFormat[] = "url=%s&region_code=%s";
constexpr char kClassifyUrlAllowed[] = "allowed";
Expand Down Expand Up @@ -121,7 +119,7 @@ std::unique_ptr<network::ResourceRequest>
CreateResourceRequestForUrlClassifier() {
auto resource_request = std::make_unique<network::ResourceRequest>();
resource_request->url =
kids_management_api::GetURL(kClassifyUrlRequestApiPath);
supervised_user::KidsManagementClassifyURLRequestURL();
resource_request->method = "POST";
resource_request->credentials_mode = network::mojom::CredentialsMode::kOmit;
return resource_request;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,18 @@
#include "components/supervised_user/core/common/pref_names.h"

namespace supervised_user {
namespace {

GURL KidsManagementBaseURL() {
return GURL("https://kidsmanagement-pa.googleapis.com/kidsmanagement/v1/");
}

const char kGetFamilyProfileURL[] = "families/mine?alt=json";
const char kGetFamilyMembersURL[] = "families/mine/members?alt=json";
const char kPermissionRequestsURL[] = "people/me/permissionRequests";
const char kClassifyURLRequestURL[] = "people/me:classifyUrl";

} // namespace

const char kAuthorizationHeaderFormat[] = "Bearer %s";
const char kCameraMicDisabled[] = "CameraMicDisabled";
Expand Down Expand Up @@ -44,4 +56,20 @@ const char* const kCustodianInfoPrefs[] = {
const base::FilePath::CharType kSupervisedUserSettingsFilename[] =
FILE_PATH_LITERAL("Managed Mode Settings");

GURL KidsManagementGetFamilyProfileURL() {
return KidsManagementBaseURL().Resolve(kGetFamilyProfileURL);
}

GURL KidsManagementGetFamilyMembersURL() {
return KidsManagementBaseURL().Resolve(kGetFamilyMembersURL);
}

GURL KidsManagementPermissionRequestsURL() {
return KidsManagementBaseURL().Resolve(kPermissionRequestsURL);
}

GURL KidsManagementClassifyURLRequestURL() {
return KidsManagementBaseURL().Resolve(kClassifyURLRequestURL);
}

} // namespace supervised_user
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
#define COMPONENTS_SUPERVISED_USER_CORE_COMMON_SUPERVISED_USER_CONSTANTS_H_

#include "base/files/file_path.h"
#include "url/gurl.h"

namespace supervised_user {

Expand Down Expand Up @@ -38,6 +39,12 @@ extern const char* const kCustodianInfoPrefs[10];
// Filenames.
extern const base::FilePath::CharType kSupervisedUserSettingsFilename[];

// URLs for RPCs in the KidsManagement service.
GURL KidsManagementGetFamilyProfileURL();
GURL KidsManagementGetFamilyMembersURL();
GURL KidsManagementPermissionRequestsURL();
GURL KidsManagementClassifyURLRequestURL();

} // namespace supervised_user

#endif // COMPONENTS_SUPERVISED_USER_CORE_COMMON_SUPERVISED_USER_CONSTANTS_H_

0 comments on commit 0dded71

Please sign in to comment.