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

Side by Side Diff: chromeos/dbus/services/proxy_resolution_service_provider.h

Issue 743623002: Move ProxyResolutionServiceProvider to chromeos/dbus/services (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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
« no previous file with comments | « chromeos/chromeos.gyp ('k') | chromeos/dbus/services/proxy_resolution_service_provider.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_CHROMEOS_DBUS_PROXY_RESOLUTION_SERVICE_PROVIDER_H_ 5 #ifndef CHROMEOS_DBUS_SERVICES_PROXY_RESOLUTION_SERVICE_PROVIDER_H_
6 #define CHROME_BROWSER_CHROMEOS_DBUS_PROXY_RESOLUTION_SERVICE_PROVIDER_H_ 6 #define CHROMEOS_DBUS_SERVICES_PROXY_RESOLUTION_SERVICE_PROVIDER_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
11 #include "base/memory/ref_counted.h" 11 #include "base/memory/ref_counted.h"
12 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
13 #include "base/memory/weak_ptr.h" 13 #include "base/memory/weak_ptr.h"
14 #include "chromeos/chromeos_export.h"
14 #include "chromeos/dbus/services/cros_dbus_service.h" 15 #include "chromeos/dbus/services/cros_dbus_service.h"
15 #include "dbus/exported_object.h" 16 #include "dbus/exported_object.h"
16 17
17 namespace base { 18 namespace base {
18 class SingleThreadTaskRunner; 19 class SingleThreadTaskRunner;
19 } 20 }
20 21
21 namespace dbus { 22 namespace dbus {
22 class MethodCall; 23 class MethodCall;
23 } 24 }
24 25
26 namespace net {
27 class URLRequestContextGetter;
28 }
29
25 namespace chromeos { 30 namespace chromeos {
26 31
32 class ProxyResolverDelegate;
27 class ProxyResolverInterface; 33 class ProxyResolverInterface;
28 34
29 // This class provides proxy resolution service for CrosDBusService. 35 // This class provides proxy resolution service for CrosDBusService.
30 // It processes proxy resolution requests for ChromeOS clients. 36 // It processes proxy resolution requests for ChromeOS clients.
31 // 37 //
32 // The following methods are exported. 38 // The following methods are exported.
33 // 39 //
34 // Interface: org.chromium.LibCrosServiceInterface (kLibCrosServiceInterface) 40 // Interface: org.chromium.LibCrosServiceInterface (kLibCrosServiceInterface)
35 // Method: ResolveNetworkProxy (kResolveNetworkProxy) 41 // Method: ResolveNetworkProxy (kResolveNetworkProxy)
36 // Parameters: string:source_url 42 // Parameters: string:source_url
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 // look like: 74 // look like:
69 // 75 //
70 // signal sender=:1.23 -> dest=(null destination) serial=12345 76 // signal sender=:1.23 -> dest=(null destination) serial=12345
71 // path=/org/chromium/LibCrosService; interface=org.chromium.TestInterface; 77 // path=/org/chromium/LibCrosService; interface=org.chromium.TestInterface;
72 // member=TestSignal 78 // member=TestSignal
73 // string "http://www.gmail.com/" 79 // string "http://www.gmail.com/"
74 // string "PROXY proxy.example.com:8080" 80 // string "PROXY proxy.example.com:8080"
75 // string "" 81 // string ""
76 // 82 //
77 83
78 class ProxyResolutionServiceProvider 84 class CHROMEOS_EXPORT ProxyResolutionServiceProvider
79 : public CrosDBusService::ServiceProviderInterface { 85 : public CrosDBusService::ServiceProviderInterface {
80 public: 86 public:
81 virtual ~ProxyResolutionServiceProvider(); 87 virtual ~ProxyResolutionServiceProvider();
82 88
83 // CrosDBusService::ServiceProviderInterface override. 89 // CrosDBusService::ServiceProviderInterface override.
84 virtual void Start( 90 virtual void Start(
85 scoped_refptr<dbus::ExportedObject> exported_object) override; 91 scoped_refptr<dbus::ExportedObject> exported_object) override;
86 92
87 // Creates the instance. 93 // Creates the instance.
88 static ProxyResolutionServiceProvider* Create(); 94 static ProxyResolutionServiceProvider* Create(
95 scoped_ptr<ProxyResolverDelegate> delgate);
89 96
90 private: 97 private:
91 explicit ProxyResolutionServiceProvider(ProxyResolverInterface *resovler); 98 explicit ProxyResolutionServiceProvider(ProxyResolverInterface *resovler);
92 99
93 // Creates the instance for testing. Takes the ownership of |resovler| 100 // Creates the instance for testing. Takes the ownership of |resovler|
94 friend class ProxyResolutionServiceProviderTest; 101 friend class ProxyResolutionServiceProviderTest;
95 static ProxyResolutionServiceProvider* CreateForTesting( 102 static ProxyResolutionServiceProvider* CreateForTesting(
96 ProxyResolverInterface* resolver); 103 ProxyResolverInterface* resolver);
97 104
98 // Called from ExportedObject, when ResolveProxyHandler() is exported as 105 // Called from ExportedObject, when ResolveProxyHandler() is exported as
(...skipping 19 matching lines...) Expand all
118 bool OnOriginThread(); 125 bool OnOriginThread();
119 126
120 scoped_refptr<dbus::ExportedObject> exported_object_; 127 scoped_refptr<dbus::ExportedObject> exported_object_;
121 scoped_ptr<ProxyResolverInterface> resolver_; 128 scoped_ptr<ProxyResolverInterface> resolver_;
122 scoped_refptr<base::SingleThreadTaskRunner> origin_thread_; 129 scoped_refptr<base::SingleThreadTaskRunner> origin_thread_;
123 base::WeakPtrFactory<ProxyResolutionServiceProvider> weak_ptr_factory_; 130 base::WeakPtrFactory<ProxyResolutionServiceProvider> weak_ptr_factory_;
124 131
125 DISALLOW_COPY_AND_ASSIGN(ProxyResolutionServiceProvider); 132 DISALLOW_COPY_AND_ASSIGN(ProxyResolutionServiceProvider);
126 }; 133 };
127 134
135 // The delegate which provides necessary objects to the proxy resolver.
136 class CHROMEOS_EXPORT ProxyResolverDelegate {
137 public:
138 virtual ~ProxyResolverDelegate() {}
139
140 // Returns the request context used to perform proxy resolution.
141 // Always called on UI thread.
142 virtual scoped_refptr<net::URLRequestContextGetter> GetRequestContext() = 0;
143 };
144
128 // The interface is defined so we can mock out the proxy resolver 145 // The interface is defined so we can mock out the proxy resolver
129 // implementation. 146 // implementation.
130 class ProxyResolverInterface { 147 class CHROMEOS_EXPORT ProxyResolverInterface {
131 public: 148 public:
132 // Resolves the proxy for the given URL. Returns the result as a 149 // Resolves the proxy for the given URL. Returns the result as a
133 // signal sent to |signal_interface| and 150 // signal sent to |signal_interface| and
134 // |signal_name|. |exported_object| will be used to send the 151 // |signal_name|. |exported_object| will be used to send the
135 // signal. The signal contains the three string members: 152 // signal. The signal contains the three string members:
136 // 153 //
137 // - source url: the requested source URL. 154 // - source url: the requested source URL.
138 // - proxy info: proxy info for the source URL in PAC format. 155 // - proxy info: proxy info for the source URL in PAC format.
139 // - error message: empty if the proxy resolution was successful. 156 // - error message: empty if the proxy resolution was successful.
140 virtual void ResolveProxy( 157 virtual void ResolveProxy(
141 const std::string& source_url, 158 const std::string& source_url,
142 const std::string& signal_interface, 159 const std::string& signal_interface,
143 const std::string& signal_name, 160 const std::string& signal_name,
144 scoped_refptr<dbus::ExportedObject> exported_object) = 0; 161 scoped_refptr<dbus::ExportedObject> exported_object) = 0;
145 162
146 virtual ~ProxyResolverInterface(); 163 virtual ~ProxyResolverInterface();
147 }; 164 };
148 165
149 } // namespace chromeos 166 } // namespace chromeos
150 167
151 #endif // CHROME_BROWSER_CHROMEOS_DBUS_PROXY_RESOLUTION_SERVICE_PROVIDER_H_ 168 #endif // CHROMEOS_DBUS_SERVICES_PROXY_RESOLUTION_SERVICE_PROVIDER_H_
OLDNEW
« no previous file with comments | « chromeos/chromeos.gyp ('k') | chromeos/dbus/services/proxy_resolution_service_provider.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698