| Index: chrome/renderer/chrome_content_renderer_client.cc
|
| diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
|
| index 495414a732da96ba15105fe49cf59078812b4e66..066ff43f29f8992b54e6ba1a84f50a2cd4317384 100644
|
| --- a/chrome/renderer/chrome_content_renderer_client.cc
|
| +++ b/chrome/renderer/chrome_content_renderer_client.cc
|
| @@ -10,6 +10,7 @@
|
| #include "base/logging.h"
|
| #include "base/metrics/histogram.h"
|
| #include "base/path_service.h"
|
| +#include "base/string_tokenizer.h"
|
| #include "base/utf_string_conversions.h"
|
| #include "base/values.h"
|
| #include "chrome/common/child_process_logging.h"
|
| @@ -103,6 +104,10 @@ using content::RenderThread;
|
|
|
| namespace {
|
|
|
| +const char* kPredefinedAllowedSocketOrigins[] = {
|
| + "okddffdblfhhnmhodogpojmfkjmhinfp" // SSH Client
|
| +};
|
| +
|
| static void AppendParams(const std::vector<string16>& additional_names,
|
| const std::vector<string16>& additional_values,
|
| WebVector<WebString>* existing_names,
|
| @@ -136,6 +141,18 @@ namespace chrome {
|
|
|
| ChromeContentRendererClient::ChromeContentRendererClient()
|
| : spellcheck_provider_(NULL) {
|
| + for (size_t i = 0; i < arraysize(kPredefinedAllowedSocketOrigins); ++i)
|
| + allowed_socket_origins_.insert(kPredefinedAllowedSocketOrigins[i]);
|
| +
|
| + const CommandLine& command_line = *CommandLine::ForCurrentProcess();
|
| + std::string allowed_list =
|
| + command_line.GetSwitchValueASCII(switches::kAllowNaClSocketAPI);
|
| + if (!allowed_list.empty()) {
|
| + StringTokenizer t(allowed_list, ",");
|
| + while (t.GetNext()) {
|
| + allowed_socket_origins_.insert(t.token());
|
| + }
|
| + }
|
| }
|
|
|
| ChromeContentRendererClient::~ChromeContentRendererClient() {
|
| @@ -789,4 +806,9 @@ void ChromeContentRendererClient::RegisterPPAPIInterfaceFactories(
|
| factory_manager->RegisterFactory(ChromePPAPIInterfaceFactory);
|
| }
|
|
|
| +bool ChromeContentRendererClient::AllowSocketAPI(const GURL& url) {
|
| + return allowed_socket_origins_.find(url.host()) !=
|
| + allowed_socket_origins_.end();
|
| +}
|
| +
|
| } // namespace chrome
|
|
|