| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 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 #include "chrome/browser/chromeos/web_socket_proxy_controller.h" | 5 #include "chrome/browser/chromeos/web_socket_proxy_controller.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include <netinet/in.h> | 9 #include <netinet/in.h> |
| 10 #include <sys/wait.h> | 10 #include <sys/wait.h> |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 allowed_ids_.begin(), allowed_ids_.end(), extension_id); | 89 allowed_ids_.begin(), allowed_ids_.end(), extension_id); |
| 90 } | 90 } |
| 91 | 91 |
| 92 const std::vector<std::string>& allowed_origins() { return allowed_origins_; } | 92 const std::vector<std::string>& allowed_origins() { return allowed_origins_; } |
| 93 | 93 |
| 94 private: | 94 private: |
| 95 std::vector<std::string> allowed_ids_; | 95 std::vector<std::string> allowed_ids_; |
| 96 std::vector<std::string> allowed_origins_; | 96 std::vector<std::string> allowed_origins_; |
| 97 }; | 97 }; |
| 98 | 98 |
| 99 base::LazyInstance<OriginValidator> g_validator(base::LINKER_INITIALIZED); | 99 base::LazyInstance<OriginValidator> g_validator = LAZY_INSTANCE_INITIALIZER; |
| 100 | 100 |
| 101 class ProxyTask : public Task { | 101 class ProxyTask : public Task { |
| 102 virtual void Run() OVERRIDE; | 102 virtual void Run() OVERRIDE; |
| 103 }; | 103 }; |
| 104 | 104 |
| 105 class ProxyLifetime | 105 class ProxyLifetime |
| 106 : public net::NetworkChangeNotifier::OnlineStateObserver, | 106 : public net::NetworkChangeNotifier::OnlineStateObserver, |
| 107 public content::NotificationObserver { | 107 public content::NotificationObserver { |
| 108 public: | 108 public: |
| 109 ProxyLifetime() : delay_ms_(1000), port_(-1), shutdown_requested_(false) { | 109 ProxyLifetime() : delay_ms_(1000), port_(-1), shutdown_requested_(false) { |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 147 int volatile port_; | 147 int volatile port_; |
| 148 | 148 |
| 149 chromeos::WebSocketProxy* volatile server_; | 149 chromeos::WebSocketProxy* volatile server_; |
| 150 volatile bool shutdown_requested_; | 150 volatile bool shutdown_requested_; |
| 151 base::Lock lock_; | 151 base::Lock lock_; |
| 152 content::NotificationRegistrar registrar_; | 152 content::NotificationRegistrar registrar_; |
| 153 friend class ProxyTask; | 153 friend class ProxyTask; |
| 154 friend class chromeos::WebSocketProxyController; | 154 friend class chromeos::WebSocketProxyController; |
| 155 }; | 155 }; |
| 156 | 156 |
| 157 base::LazyInstance<ProxyLifetime> g_proxy_lifetime(base::LINKER_INITIALIZED); | 157 base::LazyInstance<ProxyLifetime> g_proxy_lifetime = LAZY_INSTANCE_INITIALIZER; |
| 158 | 158 |
| 159 void ProxyTask::Run() { | 159 void ProxyTask::Run() { |
| 160 LOG(INFO) << "Attempt to run web socket proxy task"; | 160 LOG(INFO) << "Attempt to run web socket proxy task"; |
| 161 chromeos::WebSocketProxy* server = new chromeos::WebSocketProxy( | 161 chromeos::WebSocketProxy* server = new chromeos::WebSocketProxy( |
| 162 g_validator.Get().allowed_origins()); | 162 g_validator.Get().allowed_origins()); |
| 163 { | 163 { |
| 164 base::AutoLock alk(g_proxy_lifetime.Get().lock_); | 164 base::AutoLock alk(g_proxy_lifetime.Get().lock_); |
| 165 if (g_proxy_lifetime.Get().shutdown_requested_) | 165 if (g_proxy_lifetime.Get().shutdown_requested_) |
| 166 return; | 166 return; |
| 167 delete g_proxy_lifetime.Get().server_; | 167 delete g_proxy_lifetime.Get().server_; |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 226 bool WebSocketProxyController::CheckCredentials( | 226 bool WebSocketProxyController::CheckCredentials( |
| 227 const std::string& extension_id, | 227 const std::string& extension_id, |
| 228 const std::string& hostname, | 228 const std::string& hostname, |
| 229 unsigned short port, | 229 unsigned short port, |
| 230 ConnectionFlags flags) { | 230 ConnectionFlags flags) { |
| 231 return g_validator.Get().CheckCredentials( | 231 return g_validator.Get().CheckCredentials( |
| 232 extension_id, hostname, port, flags); | 232 extension_id, hostname, port, flags); |
| 233 } | 233 } |
| 234 | 234 |
| 235 } // namespace chromeos | 235 } // namespace chromeos |
| OLD | NEW |