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

Unified Diff: chrome/browser/managed_mode/managed_user_service.cc

Issue 288913003: Add permission request creator class. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/managed_mode/managed_user_service.cc
diff --git a/chrome/browser/managed_mode/managed_user_service.cc b/chrome/browser/managed_mode/managed_user_service.cc
index 8ca555f7c129bac3ed47141c368f33d36c77bb33..565147b1cd3e41e99b4c9e734684f1b4908b3881 100644
--- a/chrome/browser/managed_mode/managed_user_service.cc
+++ b/chrome/browser/managed_mode/managed_user_service.cc
@@ -23,6 +23,7 @@
#include "chrome/browser/managed_mode/managed_user_shared_settings_service_factory.h"
#include "chrome/browser/managed_mode/managed_user_sync_service.h"
#include "chrome/browser/managed_mode/managed_user_sync_service_factory.h"
+#include "chrome/browser/managed_mode/permission_request_creator.h"
#include "chrome/browser/managed_mode/supervised_user_pref_mapping_service.h"
#include "chrome/browser/managed_mode/supervised_user_pref_mapping_service_factory.h"
#include "chrome/browser/profiles/profile.h"
@@ -140,6 +141,7 @@ ManagedUserService::ManagedUserService(Profile* profile)
is_profile_active_(false),
elevated_for_testing_(false),
did_shutdown_(false),
+ waiting_for_permissions_(false),
weak_ptr_factory_(this) {
}
@@ -444,6 +446,10 @@ void ManagedUserService::UpdateSiteLists() {
}
bool ManagedUserService::AccessRequestsEnabled() {
+ if (waiting_for_permissions_) {
+ return false;
+ }
+
ProfileSyncService* service =
ProfileSyncServiceFactory::GetForProfile(profile_);
GoogleServiceAuthError::State state = service->GetAuthError().state();
@@ -453,6 +459,13 @@ bool ManagedUserService::AccessRequestsEnabled() {
state == GoogleServiceAuthError::SERVICE_UNAVAILABLE);
}
+void ManagedUserService::OnPermissionRequestIssued(
+ const GoogleServiceAuthError& error) {
+ waiting_for_permissions_ = false;
+ // TODO(akuegel): Figure out how to show the result of issuing the permission
+ // in the UI.
+}
+
void ManagedUserService::AddAccessRequest(const GURL& url) {
// Normalize the URL.
GURL normalized_url = ManagedModeURLFilter::Normalize(url);
@@ -460,6 +473,16 @@ void ManagedUserService::AddAccessRequest(const GURL& url) {
// Escape the URL.
std::string output(net::EscapeQueryParamValue(normalized_url.spec(), true));
+ if (CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kPermissionRequestAPI)) {
+ waiting_for_permissions_ = true;
+ permissions_creator_->CreatePermissionRequest(
+ output,
Bernhard Bauer 2014/05/15 13:56:40 Nit: Indent (4 spaces)
Adrian Kuegel 2014/05/15 14:35:32 Done.
+ base::Bind(&ManagedUserService::OnPermissionRequestIssued,
+ weak_ptr_factory_.GetWeakPtr()));
+ return;
+ }
+
// Add the prefix.
std::string key = ManagedUserSettingsService::MakeSplitSettingKey(
kManagedUserAccessRequestKeyPrefix, output);
@@ -568,6 +591,10 @@ void ManagedUserService::Init() {
ProfileOAuth2TokenService* token_service =
ProfileOAuth2TokenServiceFactory::GetForProfile(profile_);
token_service->LoadCredentials(managed_users::kManagedUserPseudoEmail);
+ std::string account_id = SigninManagerFactory::GetForProfile(profile_)
+ ->GetAuthenticatedAccountId();
Bernhard Bauer 2014/05/15 13:56:40 This is going to be empty for a supervised user (b
Adrian Kuegel 2014/05/15 14:35:32 Right. This explains why fetching the access token
Bernhard Bauer 2014/05/15 15:04:54 An alternative would be to use ManagedUserSigninMa
Adrian Kuegel 2014/05/15 15:42:16 Right. I refactored this a bit, and pass now only
Bernhard Bauer 2014/05/15 15:58:18 Passing only the profile to Create() is okay, but
Adrian Kuegel 2014/05/16 13:21:57 Makes sense. Done.
+ permissions_creator_ = PermissionRequestCreator::Create(
+ token_service, account_id, profile_->GetRequestContext());
extensions::ExtensionSystem* extension_system =
extensions::ExtensionSystem::Get(profile_);

Powered by Google App Engine
This is Rietveld 408576698