| Index: chrome/browser/supervised_user/child_accounts/permission_request_creator_apiary.cc
|
| diff --git a/chrome/browser/supervised_user/child_accounts/permission_request_creator_apiary.cc b/chrome/browser/supervised_user/child_accounts/permission_request_creator_apiary.cc
|
| index 37a7ce6a92fc76f9dfd1afbd1aceee6e75dc35ab..668fe4a1d642da52bba3ec697bd56eb7c11a1e92 100644
|
| --- a/chrome/browser/supervised_user/child_accounts/permission_request_creator_apiary.cc
|
| +++ b/chrome/browser/supervised_user/child_accounts/permission_request_creator_apiary.cc
|
| @@ -33,34 +33,47 @@ const char kApiUrl[] =
|
| const char kApiScope[] = "https://www.googleapis.com/auth/kid.permission";
|
|
|
| const int kNumRetries = 1;
|
| -const char kNamespace[] = "PERMISSION_CHROME_URL";
|
| +
|
| +const char kAuthorizationHeaderFormat[] = "Authorization: Bearer %s";
|
| +
|
| +// Request keys.
|
| +const char kNamespaceKey[] = "namespace";
|
| +const char kObjectRefKey[] = "objectRef";
|
| +const char kStateKey[] = "state";
|
| +
|
| +// Request values.
|
| +const char kNamespaceURLRequest[] = "PERMISSION_CHROME_URL";
|
| +const char kNamespaceUpdateRequest[] = "PERMISSION_CHROME_CWS_ITEM_UPDATE";
|
| const char kState[] = "PENDING";
|
|
|
| +// Response keys.
|
| const char kPermissionRequestKey[] = "permissionRequest";
|
| const char kIdKey[] = "id";
|
|
|
| -static const char kAuthorizationHeaderFormat[] = "Authorization: Bearer %s";
|
| -
|
| struct PermissionRequestCreatorApiary::Request {
|
| - Request(const GURL& url_requested,
|
| + Request(const std::string& request_namespace,
|
| + const std::string& object_ref,
|
| const SuccessCallback& callback,
|
| int url_fetcher_id);
|
| ~Request();
|
|
|
| - GURL url_requested;
|
| + std::string request_namespace;
|
| + std::string object_ref;
|
| SuccessCallback callback;
|
| scoped_ptr<OAuth2TokenService::Request> access_token_request;
|
| std::string access_token;
|
| bool access_token_expired;
|
| int url_fetcher_id;
|
| - scoped_ptr<net::URLFetcher> url_fetcher;
|
| + scoped_ptr<URLFetcher> url_fetcher;
|
| };
|
|
|
| PermissionRequestCreatorApiary::Request::Request(
|
| - const GURL& url_requested,
|
| + const std::string& request_namespace,
|
| + const std::string& object_ref,
|
| const SuccessCallback& callback,
|
| int url_fetcher_id)
|
| - : url_requested(url_requested),
|
| + : request_namespace(request_namespace),
|
| + object_ref(object_ref),
|
| callback(callback),
|
| access_token_expired(false),
|
| url_fetcher_id(url_fetcher_id) {
|
| @@ -97,11 +110,16 @@ bool PermissionRequestCreatorApiary::IsEnabled() const {
|
| return true;
|
| }
|
|
|
| -void PermissionRequestCreatorApiary::CreatePermissionRequest(
|
| +void PermissionRequestCreatorApiary::CreateURLAccessRequest(
|
| const GURL& url_requested,
|
| const SuccessCallback& callback) {
|
| - requests_.push_back(new Request(url_requested, callback, url_fetcher_id_));
|
| - StartFetching(requests_.back());
|
| + CreateRequest(kNamespaceURLRequest, url_requested.spec(), callback);
|
| +}
|
| +
|
| +void PermissionRequestCreatorApiary::CreateExtensionUpdateRequest(
|
| + const std::string& extension_id,
|
| + const SuccessCallback& callback) {
|
| + CreateRequest(kNamespaceUpdateRequest, extension_id, callback);
|
| }
|
|
|
| GURL PermissionRequestCreatorApiary::GetApiUrl() const {
|
| @@ -127,6 +145,15 @@ std::string PermissionRequestCreatorApiary::GetApiScope() const {
|
| }
|
| }
|
|
|
| +void PermissionRequestCreatorApiary::CreateRequest(
|
| + const std::string& request_namespace,
|
| + const std::string& object_ref,
|
| + const SuccessCallback& callback) {
|
| + requests_.push_back(
|
| + new Request(request_namespace, object_ref, callback, url_fetcher_id_));
|
| + StartFetching(requests_.back());
|
| +}
|
| +
|
| void PermissionRequestCreatorApiary::StartFetching(Request* request) {
|
| OAuth2TokenService::ScopeSet scopes;
|
| scopes.insert(GetApiScope());
|
| @@ -160,9 +187,10 @@ void PermissionRequestCreatorApiary::OnGetTokenSuccess(
|
| base::StringPrintf(kAuthorizationHeaderFormat, access_token.c_str()));
|
|
|
| base::DictionaryValue dict;
|
| - dict.SetStringWithoutPathExpansion("namespace", kNamespace);
|
| - dict.SetStringWithoutPathExpansion("objectRef", (*it)->url_requested.spec());
|
| - dict.SetStringWithoutPathExpansion("state", kState);
|
| + dict.SetStringWithoutPathExpansion(kNamespaceKey, (*it)->request_namespace);
|
| + dict.SetStringWithoutPathExpansion(kObjectRefKey, (*it)->object_ref);
|
| + dict.SetStringWithoutPathExpansion(kStateKey, kState);
|
| +
|
| std::string body;
|
| base::JSONWriter::Write(&dict, &body);
|
| (*it)->url_fetcher->SetUploadData("application/json", body);
|
|
|