Index: headless/lib/browser/headless_web_contents_impl.cc |
diff --git a/headless/lib/browser/headless_web_contents_impl.cc b/headless/lib/browser/headless_web_contents_impl.cc |
index bc7aff976d09ad9a0955da2296fc9fcef546c301..7133bfa27472f99b4385f13bdf305510d739deb7 100644 |
--- a/headless/lib/browser/headless_web_contents_impl.cc |
+++ b/headless/lib/browser/headless_web_contents_impl.cc |
@@ -158,6 +158,8 @@ std::unique_ptr<HeadlessWebContentsImpl> HeadlessWebContentsImpl::Create( |
if (builder->create_tab_socket_) { |
headless_web_contents->headless_tab_socket_ = |
base::MakeUnique<HeadlessTabSocketImpl>(); |
+ headless_web_contents->inject_mojo_services_into_isolated_world_ = |
+ builder->create_tab_socket_in_isolated_worlds_; |
builder->mojo_services_.emplace_back( |
TabSocket::Name_, |
@@ -219,7 +221,10 @@ HeadlessWebContentsImpl::~HeadlessWebContentsImpl() { |
void HeadlessWebContentsImpl::RenderFrameCreated( |
content::RenderFrameHost* render_frame_host) { |
if (!mojo_services_.empty()) { |
- render_frame_host->AllowBindings(content::BINDINGS_POLICY_HEADLESS); |
+ render_frame_host->AllowBindings( |
+ inject_mojo_services_into_isolated_world_ |
+ ? content::BINDINGS_POLICY_HEADLESS_ISOLATED_WORLD |
+ : content::BINDINGS_POLICY_HEADLESS_MAIN_WORLD); |
} |
service_manager::BinderRegistry* interface_registry = |
@@ -382,8 +387,10 @@ HeadlessWebContents::Builder& HeadlessWebContents::Builder::SetWindowSize( |
} |
HeadlessWebContents::Builder& HeadlessWebContents::Builder::CreateTabSocket( |
- bool create_tab_socket) { |
+ bool create_tab_socket, |
+ bool in_isolated_worlds) { |
create_tab_socket_ = create_tab_socket; |
Sami
2017/05/12 17:18:02
create_tab_socket_in_main_world_ to be explicit?
alex clarke (OOO till 29th)
2017/05/15 09:50:57
Maybe an enum is better still.
|
+ create_tab_socket_in_isolated_worlds_ = in_isolated_worlds; |
return *this; |
} |