Index: chrome/browser/chromeos/web_socket_proxy_controller.cc |
diff --git a/chrome/browser/chromeos/web_socket_proxy_controller.cc b/chrome/browser/chromeos/web_socket_proxy_controller.cc |
index 33870714b401c1107bd71df9ef20eaef29da9d0c..35fd51b1311547c88ca7d23793371859f85f685a 100644 |
--- a/chrome/browser/chromeos/web_socket_proxy_controller.cc |
+++ b/chrome/browser/chromeos/web_socket_proxy_controller.cc |
@@ -17,6 +17,12 @@ |
namespace { |
+const char* kAllowedOrigins[] = { |
+ "haiffjcadagjlijoggckpgfnoeiflnem" |
+}; |
+const std::vector<std::string> kAllowedOriginsVector( |
Dmitry Polukhin
2011/05/17 10:58:39
static objects with c-tors are prohibited in style
Denis Lagno
2011/05/17 22:15:08
Done.
|
+ kAllowedOrigins, kAllowedOrigins + arraysize(kAllowedOrigins)); |
+ |
class ProxyTask : public Task { |
virtual void Run() OVERRIDE; |
}; |
@@ -43,11 +49,6 @@ void ProxyTask::Run() { |
LOG(INFO) << "Attempt to run web socket proxy task"; |
const int kPort = 10101; |
- // Configure allowed origins. Empty vector allows any origin. |
- std::vector<std::string> allowed_origins; |
- allowed_origins.push_back( |
- "chrome-extension://haiffjcadagjlijoggckpgfnoeiflnem"); |
- |
struct sockaddr_in sa; |
memset(&sa, 0, sizeof(sa)); |
sa.sin_family = AF_INET; |
@@ -55,7 +56,7 @@ void ProxyTask::Run() { |
sa.sin_addr.s_addr = htonl(INADDR_LOOPBACK); |
chromeos::WebSocketProxy* server = new chromeos::WebSocketProxy( |
- allowed_origins, reinterpret_cast<sockaddr*>(&sa), sizeof(sa)); |
+ kAllowedOriginsVector, reinterpret_cast<sockaddr*>(&sa), sizeof(sa)); |
{ |
base::AutoLock alk(g_proxy_lifetime.Get().shutdown_lock); |
if (g_proxy_lifetime.Get().shutdown_requested) |
@@ -84,6 +85,9 @@ void ProxyTask::Run() { |
namespace chromeos { |
+const char* kAllowedOrigins[] = { |
Dmitry Polukhin
2011/05/17 10:58:39
Redefinition?
Denis Lagno
2011/05/17 22:15:08
Done.
|
+ "chrome-extension://haiffjcadagjlijoggckpgfnoeiflnem" |
+}; |
// static |
void WebSocketProxyController::Initiate() { |
LOG(INFO) << "WebSocketProxyController initiation"; |
@@ -106,5 +110,25 @@ void WebSocketProxyController::Shutdown() { |
} |
} |
+// static |
+bool WebSocketProxyController::CheckCredentials( |
+ const std::string& extension_id, |
+ const std::string& hostname, |
+ unsigned short port, |
+ ConnectionFlags flags) { |
+ if (flags & TLS_OVER_TCP) { |
+ NOTIMPLEMENTED(); |
+ return false; |
+ } |
+ DCHECK(kAllowedOriginsVector.size() < 7) << "consider binary search"; |
Dmitry Polukhin
2011/05/17 10:58:39
Compile time assert with arraysize(kAllowedOrigins
Denis Lagno
2011/05/17 22:15:08
Done.
|
+ if (std::find( |
+ kAllowedOriginsVector.begin(), |
+ kAllowedOriginsVector.end(), |
+ extension_id) == kAllowedOriginsVector.end()) { |
+ return false; |
+ } |
+ return true; |
+} |
+ |
} // namespace chromeos |