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

Side by Side Diff: chrome/browser/chrome_plugin_browsing_context.h

Issue 6576020: Remove Gears from Chrome (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: windows fixes 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
« no previous file with comments | « chrome/browser/browser_shutdown.cc ('k') | chrome/browser/chrome_plugin_browsing_context.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2011 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 #ifndef CHROME_BROWSER_CHROME_PLUGIN_BROWSING_CONTEXT_H_
6 #define CHROME_BROWSER_CHROME_PLUGIN_BROWSING_CONTEXT_H_
7 #pragma once
8
9 #include <map>
10
11 #include "base/id_map.h"
12 #include "chrome/common/chrome_plugin_api.h"
13 #include "content/common/notification_observer.h"
14 #include "content/common/notification_registrar.h"
15
16 namespace net {
17 class URLRequestContext;
18 } // namespace net
19
20 // This class manages the mapping between CPBrowsingContexts and
21 // net::URLRequestContexts. It observes when net::URLRequestContexts go away,
22 // and invalidates the corresponding CPBrowsingContexts. CPBrowsingContexts can
23 // be associated with other data as well, so there can be multiple ones
24 // referring to a given net::URLRequestContext.
25 // Note: This class should be used on the IO thread only.
26 class CPBrowsingContextManager : public NotificationObserver {
27 public:
28 static CPBrowsingContextManager* GetInstance();
29
30 // Note: don't call these directly - use Instance() above. They are public
31 // so Singleton can access them.
32 CPBrowsingContextManager();
33 ~CPBrowsingContextManager();
34
35 // Generate a new unique CPBrowsingContext ID from the given
36 // net::URLRequestContext. Multiple CPBrowsingContexts can map to the same
37 // net::URLRequestContext.
38 CPBrowsingContext Allocate(net::URLRequestContext* context);
39
40 // Return the net::URLRequestContext that this CPBrowsingContext refers to, or
41 // NULL if not found.
42 net::URLRequestContext* ToURLRequestContext(CPBrowsingContext id);
43
44 // Return a CPBrowsingContext ID that corresponds to the given
45 // net::URLRequestContext. This function differs from Allocate in that calling
46 // this multiple times with the same argument gives the same ID.
47 CPBrowsingContext Lookup(net::URLRequestContext* context);
48
49 private:
50 // NotificationObserver
51 virtual void Observe(NotificationType type,
52 const NotificationSource& source,
53 const NotificationDetails& details);
54
55 typedef IDMap<net::URLRequestContext> Map;
56 typedef std::map<net::URLRequestContext*, CPBrowsingContext> ReverseMap;
57
58 NotificationRegistrar registrar_;
59
60 Map map_; // map of CPBrowsingContext -> net::URLRequestContext
61 ReverseMap reverse_map_; // map of net::URLRequestContext -> CPBrowsingContext
62 };
63
64 #endif // CHROME_BROWSER_CHROME_PLUGIN_BROWSING_CONTEXT_H_
OLDNEW
« no previous file with comments | « chrome/browser/browser_shutdown.cc ('k') | chrome/browser/chrome_plugin_browsing_context.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698