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

Unified Diff: chrome/browser/extensions/api/messaging/native_message_process_host.cc

Issue 12285015: Require manifests for native messaging hosts. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 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/extensions/api/messaging/native_message_process_host.cc
diff --git a/chrome/browser/extensions/api/messaging/native_message_process_host.cc b/chrome/browser/extensions/api/messaging/native_message_process_host.cc
index 41048ecaf29d7f95ef369c8d4258211f03c80edc..0bfaa9b435b7228bee979220510fbb4feca0cfd3 100644
--- a/chrome/browser/extensions/api/messaging/native_message_process_host.cc
+++ b/chrome/browser/extensions/api/messaging/native_message_process_host.cc
@@ -11,10 +11,13 @@
#include "base/platform_file.h"
#include "base/process_util.h"
#include "base/values.h"
+#include "chrome/browser/extensions/api/messaging/native_messaging_host_manifest.h"
#include "chrome/browser/extensions/api/messaging/native_process_launcher.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/chrome_version_info.h"
#include "chrome/common/extensions/features/feature.h"
+#include "extensions/common/constants.h"
+#include "googleurl/src/gurl.h"
#include "net/base/file_stream.h"
#include "net/base/io_buffer.h"
#include "net/base/net_errors.h"
@@ -37,10 +40,12 @@ namespace extensions {
NativeMessageProcessHost::NativeMessageProcessHost(
base::WeakPtr<Client> weak_client_ui,
+ const std::string& source_extension_id,
const std::string& native_host_name,
int destination_port,
scoped_ptr<NativeProcessLauncher> launcher)
: weak_client_ui_(weak_client_ui),
+ source_extension_id_(source_extension_id),
native_host_name_(native_host_name),
destination_port_(destination_port),
launcher_(launcher.Pass()),
@@ -65,9 +70,11 @@ NativeMessageProcessHost::~NativeMessageProcessHost() {
// static
scoped_ptr<NativeMessageProcessHost> NativeMessageProcessHost::Create(
base::WeakPtr<Client> weak_client_ui,
+ const std::string& source_extension_id,
const std::string& native_host_name,
int destination_port) {
- return CreateWithLauncher(weak_client_ui, native_host_name, destination_port,
+ return CreateWithLauncher(weak_client_ui, source_extension_id,
+ native_host_name, destination_port,
NativeProcessLauncher::CreateDefault());
}
@@ -75,6 +82,7 @@ scoped_ptr<NativeMessageProcessHost> NativeMessageProcessHost::Create(
scoped_ptr<NativeMessageProcessHost>
NativeMessageProcessHost::CreateWithLauncher(
base::WeakPtr<Client> weak_client_ui,
+ const std::string& source_extension_id,
const std::string& native_host_name,
int destination_port,
scoped_ptr<NativeProcessLauncher> launcher) {
@@ -88,7 +96,8 @@ NativeMessageProcessHost::CreateWithLauncher(
}
process.reset(new NativeMessageProcessHost(
- weak_client_ui, native_host_name, destination_port, launcher.Pass()));
+ weak_client_ui, source_extension_id, native_host_name,
+ destination_port, launcher.Pass()));
return process.Pass();
}
@@ -96,10 +105,10 @@ NativeMessageProcessHost::CreateWithLauncher(
void NativeMessageProcessHost::LaunchHostProcess() {
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
- launcher_->Launch(
- native_host_name_, base::Bind(
- &NativeMessageProcessHost::OnHostProcessLaunched,
- base::Unretained(this)));
+ GURL origin(std::string(kExtensionScheme) + "://" + source_extension_id_);
+ launcher_->Launch(origin, native_host_name_,
+ base::Bind(&NativeMessageProcessHost::OnHostProcessLaunched,
+ base::Unretained(this)));
}
void NativeMessageProcessHost::OnHostProcessLaunched(

Powered by Google App Engine
This is Rietveld 408576698