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

Side by Side Diff: chrome/browser/extensions/api/messaging/incognito_connectability.h

Issue 178193030: Rename ProfileKeyedAPI to BrowserContextKeyedAPI and GetProfile to Get. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nits Created 6 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
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_EXTENSIONS_API_MESSAGING_INCOGNITO_CONNECTABILITY_H_ 5 #ifndef CHROME_BROWSER_EXTENSIONS_API_MESSAGING_INCOGNITO_CONNECTABILITY_H_
6 #define CHROME_BROWSER_EXTENSIONS_API_MESSAGING_INCOGNITO_CONNECTABILITY_H_ 6 #define CHROME_BROWSER_EXTENSIONS_API_MESSAGING_INCOGNITO_CONNECTABILITY_H_
7 7
8 #include <set> 8 #include <set>
9 9
10 #include "chrome/browser/extensions/api/profile_keyed_api_factory.h" 10 #include "extensions/browser/browser_context_keyed_api_factory.h"
11 #include "url/gurl.h" 11 #include "url/gurl.h"
12 12
13 namespace content { 13 namespace content {
14 class BrowserContext; 14 class BrowserContext;
15 class WebContents; 15 class WebContents;
16 } 16 }
17 17
18 namespace extensions { 18 namespace extensions {
19 class Extension; 19 class Extension;
20 20
21 // Tracks the web connectability of domains to extensions in incognito mode. 21 // Tracks the web connectability of domains to extensions in incognito mode.
22 // 22 //
23 // The most important functionality is prompting the user to allow or disallow 23 // The most important functionality is prompting the user to allow or disallow
24 // connections from incognito tabs to extensions or apps. Even if an extension 24 // connections from incognito tabs to extensions or apps. Even if an extension
25 // hasn't been enabled in incognito mode, it's still useful for web sites to be 25 // hasn't been enabled in incognito mode, it's still useful for web sites to be
26 // able to send messages to them, with user constent. For apps, it's essential 26 // able to send messages to them, with user constent. For apps, it's essential
27 // we have this functionality because there is no way for them to be enabled in 27 // we have this functionality because there is no way for them to be enabled in
28 // incognito. 28 // incognito.
29 class IncognitoConnectability : public ProfileKeyedAPI { 29 class IncognitoConnectability : public BrowserContextKeyedAPI {
30 public: 30 public:
31 // While in scope, immediately either accepts or denies the alerts that show 31 // While in scope, immediately either accepts or denies the alerts that show
32 // up, and counts the number of times it was invoked. 32 // up, and counts the number of times it was invoked.
33 class ScopedAlertTracker { 33 class ScopedAlertTracker {
34 public: 34 public:
35 enum Mode { 35 enum Mode {
36 INTERACTIVE, 36 INTERACTIVE,
37 ALWAYS_ALLOW, 37 ALWAYS_ALLOW,
38 ALWAYS_DENY, 38 ALWAYS_DENY,
39 }; 39 };
(...skipping 14 matching lines...) Expand all
54 // be off-the-record. 54 // be off-the-record.
55 static IncognitoConnectability* Get(content::BrowserContext* context); 55 static IncognitoConnectability* Get(content::BrowserContext* context);
56 56
57 // Returns true if |url| is allowed to connect from this profile, false 57 // Returns true if |url| is allowed to connect from this profile, false
58 // otherwise. If unknown, this call will block and prompt the user. 58 // otherwise. If unknown, this call will block and prompt the user.
59 bool Query(const Extension* extension, 59 bool Query(const Extension* extension,
60 content::WebContents* web_contents, 60 content::WebContents* web_contents,
61 const GURL& url); 61 const GURL& url);
62 62
63 private: 63 private:
64 friend class ProfileKeyedAPIFactory<IncognitoConnectability>; 64 friend class BrowserContextKeyedAPIFactory<IncognitoConnectability>;
65 65
66 explicit IncognitoConnectability(content::BrowserContext* context); 66 explicit IncognitoConnectability(content::BrowserContext* context);
67 virtual ~IncognitoConnectability(); 67 virtual ~IncognitoConnectability();
68 68
69 typedef std::map<std::string, std::set<GURL> > ExtensionToOriginsMap; 69 typedef std::map<std::string, std::set<GURL> > ExtensionToOriginsMap;
70 70
71 // Returns true if the (|extension|, |origin|) pair appears in the map. 71 // Returns true if the (|extension|, |origin|) pair appears in the map.
72 bool IsInMap(const Extension* extension, 72 bool IsInMap(const Extension* extension,
73 const GURL& origin, 73 const GURL& origin,
74 const ExtensionToOriginsMap& map); 74 const ExtensionToOriginsMap& map);
75 75
76 // ProfileKeyedAPI implementation. 76 // BrowserContextKeyedAPI implementation.
77 static ProfileKeyedAPIFactory<IncognitoConnectability>* GetFactoryInstance(); 77 static BrowserContextKeyedAPIFactory<IncognitoConnectability>*
78 GetFactoryInstance();
78 static const char* service_name() { 79 static const char* service_name() {
79 return "Messaging.IncognitoConnectability"; 80 return "Messaging.IncognitoConnectability";
80 } 81 }
81 static const bool kServiceHasOwnInstanceInIncognito = true; 82 static const bool kServiceHasOwnInstanceInIncognito = true;
82 static const bool kServiceIsCreatedWithBrowserContext = false; 83 static const bool kServiceIsCreatedWithBrowserContext = false;
83 84
84 // The origins that have been prompted for and either allowed or disallowed. 85 // The origins that have been prompted for and either allowed or disallowed.
85 // These are deliberately stored in-memory so that they're reset when the 86 // These are deliberately stored in-memory so that they're reset when the
86 // profile is destroyed (i.e. when the last incognito window is closed). 87 // profile is destroyed (i.e. when the last incognito window is closed).
87 ExtensionToOriginsMap allowed_origins_; 88 ExtensionToOriginsMap allowed_origins_;
88 ExtensionToOriginsMap disallowed_origins_; 89 ExtensionToOriginsMap disallowed_origins_;
89 }; 90 };
90 91
91 } // namespace extensions 92 } // namespace extensions
92 93
93 #endif // CHROME_BROWSER_EXTENSIONS_API_MESSAGING_INCOGNITO_CONNECTABILITY_H_ 94 #endif // CHROME_BROWSER_EXTENSIONS_API_MESSAGING_INCOGNITO_CONNECTABILITY_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698