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

Unified Diff: chrome/browser/chromeos/web_socket_proxy_controller.cc

Issue 6683060: Private API for extensions like ssh-client that need access to TCP. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: c Created 9 years, 7 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698