| 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 36015b66c4cf675fbb05f33f643018e63daddb68..b5113838b0e7bd0379a3b0dd3b485260c897a010 100644
|
| --- a/headless/lib/browser/headless_web_contents_impl.cc
|
| +++ b/headless/lib/browser/headless_web_contents_impl.cc
|
| @@ -158,9 +158,11 @@ std::unique_ptr<HeadlessWebContentsImpl> HeadlessWebContentsImpl::Create(
|
| content::WebContents::Create(create_params),
|
| builder->browser_context_));
|
|
|
| - if (builder->create_tab_socket_) {
|
| + if (builder->tab_socket_type_ != Builder::TabSocketType::NONE) {
|
| headless_web_contents->headless_tab_socket_ =
|
| base::MakeUnique<HeadlessTabSocketImpl>();
|
| + headless_web_contents->inject_mojo_services_into_isolated_world_ =
|
| + builder->tab_socket_type_ == Builder::TabSocketType::ISOLATED_WORLD;
|
|
|
| builder->mojo_services_.emplace_back(
|
| TabSocket::Name_,
|
| @@ -222,7 +224,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 =
|
| @@ -384,9 +389,9 @@ HeadlessWebContents::Builder& HeadlessWebContents::Builder::SetWindowSize(
|
| return *this;
|
| }
|
|
|
| -HeadlessWebContents::Builder& HeadlessWebContents::Builder::CreateTabSocket(
|
| - bool create_tab_socket) {
|
| - create_tab_socket_ = create_tab_socket;
|
| +HeadlessWebContents::Builder& HeadlessWebContents::Builder::SetTabSocketType(
|
| + TabSocketType type) {
|
| + tab_socket_type_ = type;
|
| return *this;
|
| }
|
|
|
|
|