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

Unified Diff: content/browser/mojo/mojo_shell_client_host.cc

Issue 1778443002: Use instance name to uniquify renderers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@40fix2
Patch Set: Created 4 years, 9 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: content/browser/mojo/mojo_shell_client_host.cc
diff --git a/content/browser/mojo/mojo_shell_client_host.cc b/content/browser/mojo/mojo_shell_client_host.cc
index e762c225d3193f51300522164beabbd1ec316a1c..b342ed70500d23c279fdfc02a1fb9d12630fad6e 100644
--- a/content/browser/mojo/mojo_shell_client_host.cc
+++ b/content/browser/mojo/mojo_shell_client_host.cc
@@ -25,26 +25,26 @@
namespace content {
namespace {
-const char kMojoShellInstanceURL[] = "mojo_shell_instance_url";
+const char kMojoShellInstanceIdentity[] = "mojo_shell_instance_identity";
-class InstanceURL : public base::SupportsUserData::Data {
+class InstanceIdentity : public base::SupportsUserData::Data {
public:
- explicit InstanceURL(const std::string& instance_url)
- : instance_url_(instance_url) {}
- ~InstanceURL() override {}
+ explicit InstanceIdentity(const mojo::Identity& identity)
+ : identity_(identity) {}
+ ~InstanceIdentity() override {}
- std::string get() const { return instance_url_; }
+ mojo::Identity get() const { return identity_; }
sky 2016/03/08 17:22:59 const mojo::Identity& ?
private:
- std::string instance_url_;
+ mojo::Identity identity_;
- DISALLOW_COPY_AND_ASSIGN(InstanceURL);
+ DISALLOW_COPY_AND_ASSIGN(InstanceIdentity);
};
-void SetMojoApplicationInstanceURL(RenderProcessHost* render_process_host,
- const std::string& instance_url) {
- render_process_host->SetUserData(kMojoShellInstanceURL,
- new InstanceURL(instance_url));
+void SetMojoIdentity(RenderProcessHost* render_process_host,
+ const mojo::Identity& identity) {
+ render_process_host->SetUserData(kMojoShellInstanceIdentity,
+ new InstanceIdentity(identity));
}
class PIDSender : public RenderProcessHostObserver {
@@ -105,16 +105,6 @@ std::string RegisterChildWithExternalShell(
MojoShellConnection::Get()->GetConnector()->ConnectToInterface(
"mojo:shell", &shell);
- // The content of the URL/qualifier we pass is actually meaningless, it's only
- // important that they're unique per process.
- // TODO(beng): We need to specify a restrictive CapabilityFilter here that
- // matches the needs of the target process. Figure out where that
- // specification is best determined (not here, this is a common
- // chokepoint for all process types) and how to wire it through.
- // http://crbug.com/555393
- std::string url = base::StringPrintf(
- "exe:chrome_renderer%d_%d", child_process_id, instance_id);
-
mojo::shell::mojom::PIDReceiverPtr pid_receiver;
mojo::InterfaceRequest<mojo::shell::mojom::PIDReceiver> request =
GetProxy(&pid_receiver);
@@ -124,26 +114,26 @@ std::string RegisterChildWithExternalShell(
factory.Bind(mojo::InterfacePtrInfo<mojo::shell::mojom::ShellClientFactory>(
std::move(request_pipe), 0u));
- mojo::shell::mojom::IdentityPtr target(mojo::shell::mojom::Identity::New());
- target->name = url;
- target->user_id = mojo::shell::mojom::kInheritUserID;
- target->instance = "";
- shell->CreateInstance(std::move(factory), std::move(target),
+ mojo::Identity target("exe:chrome_renderer",
+ mojo::shell::mojom::kInheritUserID,
+ base::StringPrintf("%d_%d", child_process_id,
+ instance_id));
+ shell->CreateInstance(std::move(factory),
+ mojo::shell::mojom::Identity::From(target),
CreateCapabilityFilterForRenderer(),
std::move(request), base::Bind(&OnConnectionComplete));
- // Store the URL on the RPH so client code can access it later via
- // GetMojoApplicationInstanceURL().
- SetMojoApplicationInstanceURL(render_process_host, url);
+ // Store the Identity on the RPH so client code can access it later via
+ // GetMojoIdentity().
+ SetMojoIdentity(render_process_host, target);
return pipe_token;
}
-std::string GetMojoApplicationInstanceURL(
- RenderProcessHost* render_process_host) {
- InstanceURL* instance_url = static_cast<InstanceURL*>(
- render_process_host->GetUserData(kMojoShellInstanceURL));
- return instance_url ? instance_url->get() : std::string();
+mojo::Identity GetMojoIdentity(RenderProcessHost* render_process_host) {
+ InstanceIdentity* instance_identity = static_cast<InstanceIdentity*>(
+ render_process_host->GetUserData(kMojoShellInstanceIdentity));
+ return instance_identity ? instance_identity->get() : mojo::Identity();
}
} // namespace content
« no previous file with comments | « content/browser/mojo/mojo_shell_client_host.h ('k') | content/browser/renderer_host/render_widget_host_view_mus.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698