Chromium Code Reviews| Index: content/renderer/mojo_context_state.cc |
| diff --git a/content/renderer/mojo_context_state.cc b/content/renderer/mojo_context_state.cc |
| index 17939f7b8e0ae84b3b429a26e26b78b3290da73f..60e38651522eb5327dbc5fcc4838c84ba20cfee9 100644 |
| --- a/content/renderer/mojo_context_state.cc |
| +++ b/content/renderer/mojo_context_state.cc |
| @@ -18,6 +18,7 @@ |
| #include "content/public/common/content_client.h" |
| #include "content/public/renderer/render_frame.h" |
| #include "content/public/renderer/resource_fetcher.h" |
| +#include "content/renderer/mojo_bindings_controller.h" |
| #include "content/renderer/mojo_main_runner.h" |
| #include "gin/converter.h" |
| #include "gin/modules/module_registry.h" |
| @@ -90,17 +91,28 @@ scoped_refptr<base::RefCountedMemory> GetBuiltinModuleData( |
| return source_iter->second; |
| } |
| +std::string GetModulePrefixForBindingsType(MojoBindingsType bindings_type, |
| + blink::WebFrame* frame) { |
| + switch (bindings_type) { |
| + case MojoBindingsType::FOR_UI_BINDINGS: |
| + return frame->getSecurityOrigin().toString().utf8() + "/"; |
| + case MojoBindingsType::FOR_LAYOUT_TESTS: |
| + return "layout-test-mojom://"; |
| + case MojoBindingsType::FOR_HEADLESS: |
| + return "headless-mojom://"; |
|
jochen (gone - plz use gerrit)
2016/06/27 12:31:57
this is all a bit of a layering violation, but adm
alex clarke (OOO till 29th)
2016/07/29 09:06:23
Acknowledged.
|
| + } |
| + NOTREACHED(); |
| + return ""; |
| +} |
| + |
| } // namespace |
| MojoContextState::MojoContextState(blink::WebFrame* frame, |
| v8::Local<v8::Context> context, |
| - bool for_layout_tests) |
| + MojoBindingsType bindings_type) |
| : frame_(frame), |
| module_added_(false), |
| - module_prefix_(for_layout_tests |
| - ? "layout-test-mojom://" |
| - : frame_->getSecurityOrigin().toString().utf8() + |
| - "/") { |
| + module_prefix_(GetModulePrefixForBindingsType(bindings_type, frame)) { |
| gin::PerContextData* context_data = gin::PerContextData::From(context); |
| gin::ContextHolder* context_holder = context_data->context_holder(); |
| runner_.reset(new MojoMainRunner(frame_, context_holder)); |
| @@ -109,7 +121,7 @@ MojoContextState::MojoContextState(blink::WebFrame* frame, |
| content::RenderFrame::FromWebFrame(frame) |
| ->EnsureMojoBuiltinsAreAvailable(context_holder->isolate(), context); |
| v8::Local<v8::Object> install_target; |
| - if (for_layout_tests) { |
| + if (bindings_type == MojoBindingsType::FOR_LAYOUT_TESTS) { |
| // In layout tests we install the module system under 'mojo.define' |
| // for now to avoid globally exposing something as generic as 'define'. |
| // |