| 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..b2e40c859662a645ba6edee420ae3c691466b7f0 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_,
|
| @@ -203,6 +205,7 @@ HeadlessWebContentsImpl::HeadlessWebContentsImpl(
|
| new HeadlessWebContentsImpl::Delegate(browser_context)),
|
| web_contents_(web_contents),
|
| agent_host_(content::DevToolsAgentHost::GetOrCreateFor(web_contents)),
|
| + inject_mojo_services_into_isolated_world_(false),
|
| browser_context_(browser_context),
|
| render_process_host_(web_contents->GetRenderProcessHost()) {
|
| #if BUILDFLAG(ENABLE_BASIC_PRINTING) && !defined(CHROME_MULTIPLE_DLL_CHILD)
|
| @@ -222,7 +225,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 +390,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;
|
| }
|
|
|
|
|