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

Side by Side Diff: chrome/browser/geolocation/access_token_store.h

Issue 6591034: Move core pieces of geolocation from chrome to content.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix Linux build Created 9 years, 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // Defines the Geolocation access token store, and associated factory function.
6 // An access token store is responsible for providing the API to persist
7 // access tokens, one at a time, and to load them back on mass.
8 // The API is a little more complex than one might wish, due to the need for
9 // prefs access to happen asynchronously on the UI thread.
10 // This API is provided as abstract base classes to allow mocking and testing
11 // of clients, without dependency on browser process singleton objects etc.
12
13 #ifndef CHROME_BROWSER_GEOLOCATION_ACCESS_TOKEN_STORE_H_
14 #define CHROME_BROWSER_GEOLOCATION_ACCESS_TOKEN_STORE_H_
15 #pragma once
16
17 #include <map>
18
19 #include "base/ref_counted.h"
20 #include "base/string16.h"
21 #include "chrome/browser/cancelable_request.h"
22 #include "googleurl/src/gurl.h"
23
24 class GURL;
25 class PrefService;
26
27 // Provides storage for the access token used in the network request.
28 class AccessTokenStore : public base::RefCountedThreadSafe<AccessTokenStore>,
29 public CancelableRequestProvider {
30 public:
31 static void RegisterPrefs(PrefService* prefs);
32
33 // Map of server URLs to associated access token.
34 typedef std::map<GURL, string16> AccessTokenSet;
35 typedef Callback1<AccessTokenSet>::Type LoadAccessTokensCallbackType;
36 // callback will be invoked once, after existing access tokens have
37 // been loaded from persistent store. Takes ownership of callback.
38 // Returns a handle which can subsequently be used with CancelRequest().
39 Handle LoadAccessTokens(CancelableRequestConsumerBase* consumer,
40 LoadAccessTokensCallbackType* callback);
41
42 virtual void SaveAccessToken(
43 const GURL& server_url, const string16& access_token) = 0;
44
45 protected:
46 friend class base::RefCountedThreadSafe<AccessTokenStore>;
47 AccessTokenStore();
48 virtual ~AccessTokenStore();
49
50 virtual void DoLoadAccessTokens(
51 scoped_refptr<CancelableRequest<LoadAccessTokensCallbackType> > req) = 0;
52
53 private:
54 DISALLOW_COPY_AND_ASSIGN(AccessTokenStore);
55 };
56
57 // Creates a new access token store backed by the global chome prefs.
58 AccessTokenStore* NewChromePrefsAccessTokenStore();
59
60 #endif // CHROME_BROWSER_GEOLOCATION_ACCESS_TOKEN_STORE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698