New issue
Advanced search Search tips

Issue 855092 link

Starred by 4 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocking:
issue 854365



Sign in to add a comment

Support embedding of views

Project Member Reported by roc...@chromium.org, Jun 21 2018

Issue description

Content service's View API should support UI embedding to render the navigated web contents within the embedding application's window surface.

This initial bug is specifically limited to platforms which support the window service (Chrome OS, and [almost] Windows).
 

Comment 1 by roc...@chromium.org, Jun 21 2018

Blocking: 854365
Project Member

Comment 2 by bugdroid1@chromium.org, Jul 12

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/99c5bc74636041c26d31f3dae12c7fc51032ce27

commit 99c5bc74636041c26d31f3dae12c7fc51032ce27
Author: Ken Rockot <rockot@chromium.org>
Date: Thu Jul 12 15:36:56 2018

[content-service] Support basic View embedding

Adds support for embedding a View object within a client application's
window tree. Currently Chrome OS only.

Enables a new simple_browser test application to be launched via a
command-line flag in DCHECK-enabled builds only, for manual developer
testing. This application runs in a sandboxed utility process and embeds
a View that can be navigated, displaying web contents within the
application's UI, backed by a concrete WebContents owned by a Content
Service instance in the browser process.

Bug: 855092
Change-Id: I95937f987e87ad303689d73b7e57c836ee706d28
Test: Launch Chrome OS chrome --enable-features=Mash --launch-simple-browser and verify that you can navigate the cute little browser window that pops up.
Reviewed-on: https://chromium-review.googlesource.com/1125342
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#574568}
[modify] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/chrome/app/BUILD.gn
[modify] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/chrome/browser/BUILD.gn
[modify] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/chrome/browser/DEPS
[modify] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/chrome/browser/chrome_browser_main.cc
[modify] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/chrome/common/BUILD.gn
[modify] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/chrome/common/features.gni
[modify] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/chrome/utility/BUILD.gn
[modify] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/chrome/utility/DEPS
[modify] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/chrome/utility/chrome_content_utility_client.cc
[modify] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/content/browser/browser_context.cc
[modify] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/content/browser/content_service_delegate_impl.cc
[modify] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/services/content/BUILD.gn
[add] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/services/content/DEPS
[modify] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/services/content/public/cpp/BUILD.gn
[add] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/services/content/public/cpp/DEPS
[modify] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/services/content/public/cpp/view.cc
[modify] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/services/content/public/cpp/view.h
[add] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/services/content/public/features.gni
[modify] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/services/content/public/mojom/BUILD.gn
[modify] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/services/content/public/mojom/view.mojom
[modify] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/services/content/service_unittest.cc
[add] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/services/content/simple_browser/BUILD.gn
[add] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/services/content/simple_browser/DEPS
[add] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/services/content/simple_browser/OWNERS
[add] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/services/content/simple_browser/README.md
[add] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/services/content/simple_browser/manifest.json
[add] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/services/content/simple_browser/public/mojom/BUILD.gn
[add] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/services/content/simple_browser/public/mojom/OWNERS
[add] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/services/content/simple_browser/public/mojom/constants.mojom
[add] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/services/content/simple_browser/simple_browser_service.cc
[add] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/services/content/simple_browser/simple_browser_service.h
[add] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/services/content/simple_browser/window.cc
[add] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/services/content/simple_browser/window.h
[modify] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/services/content/view_delegate.h
[modify] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/services/content/view_impl.cc
[modify] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/services/content/view_impl.h
[modify] https://crrev.com/99c5bc74636041c26d31f3dae12c7fc51032ce27/ui/views/mus/remote_view/BUILD.gn

Cc: dougt@chromium.org jamescook@chromium.org sky@chromium.org
ken, can I ask for a quick design doc/guide on how a window app can use this? I believe we were still discussing on how to embed the content view? Whether or not the UI service should be apart of the app or not. adding in sky, james and doug if my ask is not clear enough.
Project Member

Comment 4 by bugdroid1@chromium.org, Aug 15

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/80b08e9387d261fc0115a960fc6e08899eda7f12

commit 80b08e9387d261fc0115a960fc6e08899eda7f12
Author: Ken Rockot <rockot@chromium.org>
Date: Wed Aug 15 04:22:02 2018

[content-service] Introduce NavigableContentsView

Adds a new NavigableContentsView type to the Content Service's
client library. This is meant to be a platform-agnostic encapsulation
of all business relevant to the display of renderered web contents (i.e.
a navigated NavigableContents object) within a client application's UI.

This also enables NavigableContentsView embedding on all desktop Aura
platforms in addition to Chrome OS, which is the only supported platform
before this CL.

For non-Mash non-Chrome OS builds, NavigableContentsView usage is
restricted to the browser process, where Content Service instances
are hosted. Support for remote NavigableContentsViews will expand as
support for the UI service expands.

For testing, this enables --launch-in-process-simple-browser in all
desktop Aura developer builds, running an in-process Simple Browser
application which consumes NavigableContentsView to display web contents
via the Content Service. The out-of-process version
(--launch-simple-browser) still works on Chrome OS with Mash enabled.

Follow-up patches will enable local NavigableContentsView usage on
non-Aura platforms (e.g. Android, Mac, etc) so that we can start
converting WebContents uses to NavigableContents uses.

Bug: 855092
Test: Run chrome --launch-in-process-simple-browser (with DCHECKS enabled) on Chrome OS, Linux or Windows and watch it go!
Change-Id: Id091017a1656f078ea87fa3a9d6a6f4049fb4f13
Reviewed-on: https://chromium-review.googlesource.com/1171668
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#583166}
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/chrome/app/BUILD.gn
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/chrome/browser/BUILD.gn
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/chrome/browser/DEPS
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/chrome/browser/chrome_browser_main.cc
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/chrome/common/BUILD.gn
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/chrome/common/chrome_switches.cc
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/chrome/common/chrome_switches.h
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/chrome/common/features.gni
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/chrome/utility/BUILD.gn
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/chrome/utility/chrome_content_utility_client.cc
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/content/browser/BUILD.gn
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/content/browser/browser_main_loop.cc
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/services/content/BUILD.gn
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/services/content/DEPS
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/services/content/navigable_contents_impl.cc
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/services/content/navigable_contents_impl.h
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/services/content/public/cpp/BUILD.gn
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/services/content/public/cpp/navigable_contents.cc
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/services/content/public/cpp/navigable_contents.h
[add] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/services/content/public/cpp/navigable_contents_view.cc
[add] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/services/content/public/cpp/navigable_contents_view.h
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/services/content/public/features.gni
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/services/content/public/mojom/navigable_contents.mojom
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/services/content/simple_browser/README.md
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/services/content/simple_browser/simple_browser_service.cc
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/services/content/simple_browser/simple_browser_service.h
[modify] https://crrev.com/80b08e9387d261fc0115a960fc6e08899eda7f12/services/content/simple_browser/window.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Aug 20

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2d67fa3c43ccc16edae0a742d902dd437795959b

commit 2d67fa3c43ccc16edae0a742d902dd437795959b
Author: Ken Rockot <rockot@chromium.org>
Date: Mon Aug 20 00:41:00 2018

[content-service] Enable in-process Mac usage

Changes in-process NavigableContentsView to work on any platform
supporting Views UI rather than restricting it to Aura platforms.

Adapts simple_browser to run in a non-Aura environment as well.

Bug: 855092
Test: Run DCHECK build of chrome --launch-in-process-simple-browser on Mac
Change-Id: Ibdf7ccd83a4c2f3d2c4d667898d3723166c257a3
Reviewed-on: https://chromium-review.googlesource.com/1178802
Commit-Queue: Ken Rockot <rockot@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584349}
[modify] https://crrev.com/2d67fa3c43ccc16edae0a742d902dd437795959b/chrome/common/features.gni
[modify] https://crrev.com/2d67fa3c43ccc16edae0a742d902dd437795959b/content/shell/BUILD.gn
[modify] https://crrev.com/2d67fa3c43ccc16edae0a742d902dd437795959b/content/shell/browser/shell_web_contents_view_delegate.h
[modify] https://crrev.com/2d67fa3c43ccc16edae0a742d902dd437795959b/services/content/BUILD.gn
[modify] https://crrev.com/2d67fa3c43ccc16edae0a742d902dd437795959b/services/content/navigable_contents_impl.cc
[modify] https://crrev.com/2d67fa3c43ccc16edae0a742d902dd437795959b/services/content/navigable_contents_impl.h
[modify] https://crrev.com/2d67fa3c43ccc16edae0a742d902dd437795959b/services/content/public/cpp/BUILD.gn
[modify] https://crrev.com/2d67fa3c43ccc16edae0a742d902dd437795959b/services/content/public/cpp/navigable_contents_view.cc
[modify] https://crrev.com/2d67fa3c43ccc16edae0a742d902dd437795959b/services/content/public/cpp/navigable_contents_view.h
[modify] https://crrev.com/2d67fa3c43ccc16edae0a742d902dd437795959b/services/content/public/features.gni
[modify] https://crrev.com/2d67fa3c43ccc16edae0a742d902dd437795959b/services/content/simple_browser/BUILD.gn
[modify] https://crrev.com/2d67fa3c43ccc16edae0a742d902dd437795959b/services/content/simple_browser/README.md
[modify] https://crrev.com/2d67fa3c43ccc16edae0a742d902dd437795959b/services/content/simple_browser/simple_browser_service.cc
[modify] https://crrev.com/2d67fa3c43ccc16edae0a742d902dd437795959b/services/content/simple_browser/simple_browser_service.h
[modify] https://crrev.com/2d67fa3c43ccc16edae0a742d902dd437795959b/services/content/simple_browser/window.cc

Owner: rockot@google.com

Sign in to add a comment