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

Unified Diff: chrome/browser/managed_mode/permission_request_creator_apiary.h

Issue 288913003: Add permission request creator class. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Sync and move scoped_ptr include to subclass header files. 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/permission_request_creator_apiary.h
diff --git a/chrome/browser/managed_mode/permission_request_creator_apiary.h b/chrome/browser/managed_mode/permission_request_creator_apiary.h
new file mode 100644
index 0000000000000000000000000000000000000000..fe4407a0f64968f859379282e842843d88b3b810
--- /dev/null
+++ b/chrome/browser/managed_mode/permission_request_creator_apiary.h
@@ -0,0 +1,80 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_MANAGED_MODE_PERMISSION_REQUEST_CREATOR_APIARY_H_
+#define CHROME_BROWSER_MANAGED_MODE_PERMISSION_REQUEST_CREATOR_APIARY_H_
+
+#include "chrome/browser/managed_mode/permission_request_creator.h"
+
+#include "base/memory/scoped_ptr.h"
+#include "google_apis/gaia/oauth2_token_service.h"
+#include "net/url_request/url_fetcher_delegate.h"
+
+class ManagedUserSigninManagerWrapper;
+class Profile;
+
+namespace base {
+class Time;
+}
+
+namespace net {
+class URLFetcher;
+class URLRequestContextGetter;
+}
+
+class PermissionRequestCreatorApiary
+ : public PermissionRequestCreator,
+ public OAuth2TokenService::Consumer,
+ public net::URLFetcherDelegate {
+ public:
+ PermissionRequestCreatorApiary(
+ OAuth2TokenService* oauth2_token_service,
+ scoped_ptr<ManagedUserSigninManagerWrapper> signin_wrapper,
+ net::URLRequestContextGetter* context);
+ virtual ~PermissionRequestCreatorApiary();
+
+ static scoped_ptr<PermissionRequestCreator> Create(
+ OAuth2TokenService* oauth2_token_service,
+ scoped_ptr<ManagedUserSigninManagerWrapper>,
+ net::URLRequestContextGetter* context);
+
+ static scoped_ptr<PermissionRequestCreator> CreateWithProfile(
+ Profile* profile);
+
+ // PermissionRequestCreator implementation:
+ virtual void CreatePermissionRequest(
+ const std::string& url_requested,
+ const PermissionRequestCallback& callback) OVERRIDE;
+
+ protected:
+ // OAuth2TokenService::Consumer implementation:
+ virtual void OnGetTokenSuccess(const OAuth2TokenService::Request* request,
Bernhard Bauer 2014/05/19 17:11:26 Why is this protected?
Adrian Kuegel 2014/05/20 08:38:06 Copy/paste from ManagedUserRefreshTokenFetcher, an
+ const std::string& access_token,
+ const base::Time& expiration_time) OVERRIDE;
+ virtual void OnGetTokenFailure(const OAuth2TokenService::Request* request,
+ const GoogleServiceAuthError& error) OVERRIDE;
+
+ // net::URLFetcherDelegate implementation.
+ virtual void OnURLFetchComplete(const net::URLFetcher* source) OVERRIDE;
+
+ private:
+ // Requests an access token, which is the first thing we need. This is where
+ // we restart when the returned access token has expired.
+ void StartFetching();
+
+ void DispatchNetworkError(int error_code);
+ void DispatchGoogleServiceAuthError(const GoogleServiceAuthError& error);
+
+ OAuth2TokenService* oauth2_token_service_;
+ scoped_ptr<ManagedUserSigninManagerWrapper> signin_wrapper_;
+ PermissionRequestCallback callback_;
+ net::URLRequestContextGetter* context_;
+ std::string url_requested_;
+ scoped_ptr<OAuth2TokenService::Request> access_token_request_;
+ std::string access_token_;
+ bool access_token_expired_;
+ scoped_ptr<net::URLFetcher> url_fetcher_;
+};
+
+#endif // CHROME_BROWSER_MANAGED_MODE_PERMISSION_REQUEST_CREATOR_APIARY_H_

Powered by Google App Engine
This is Rietveld 408576698