| Index: services/navigation/README.md
|
| diff --git a/services/navigation/README.md b/services/navigation/README.md
|
| deleted file mode 100644
|
| index 0b56caeced730c51a27078ef8ba714e33e64fc1b..0000000000000000000000000000000000000000
|
| --- a/services/navigation/README.md
|
| +++ /dev/null
|
| @@ -1,67 +0,0 @@
|
| -Navigation Service
|
| -====
|
| -
|
| -### Overview
|
| -
|
| -Navigation is a Chrome Foundation Service that provides the concept of a
|
| -"navigable view". A navigable view is an application host that can be
|
| -navigated to different states in sequence, like a traditional "webview" on other
|
| -platforms.
|
| -
|
| -The Navigation service maintains a tree of frames, within which different
|
| -applications run. Each navigation state corresponds to a potentially different
|
| -tree structure with different applications run in each frame.
|
| -
|
| -In theory, the Navigation service should not care about the specifics of the
|
| -application hosted in each frame, though in practice today because the
|
| -implementation is provided by //content, all frames are instances of Blink.
|
| -
|
| -When an application hosted by a view requires a capability not intrinsic to the
|
| -container, it requests via the ViewClient that the embedder provide it. For some
|
| -capabilities the grant action is simply providing some metadata directly. For
|
| -others, they are modeled by the acquisition of a Mojo message pipe handle
|
| -(interface) to some service that exposes the capability. In this latter case it
|
| -is possible, again in theory, that the middleware layer (Navigation service) not
|
| -know about the specifics of the capability and just forward the request from the
|
| -frame renderer to the Navigation service client where it will either be bound or
|
| -the message pipe closed.
|
| -
|
| -A client of the Navigation service may embed a visual representation of a view into
|
| -its own rendering using Mus. The View interface provides a means to acquire a
|
| -mus.mojom.WindowTreeClient that can be embedded in a mus::Window created by the
|
| -client. The Navigation service may create its own mus::Windows within this window,
|
| -but these will not be visible to the client according to Mus security policy.
|
| -
|
| -### Details
|
| -
|
| -Concretely, this service is a //content client, using the Content Public API
|
| -to construct a WebContents for every request for a navigation::mojom::View.
|
| -The class that binds these two together is //services/navigation/view_impl.h.
|
| -This class implements the WebContentsDelegate (& other) interfaces to learn
|
| -about state changes within the Content layer & transmit them to the Navigation
|
| -Service client via navigation::mojom::ViewClient.
|
| -
|
| -Note that the //content client provided here
|
| -(in //services/navigation/content_client) is very simple, even simpler than
|
| -Content Shell's. This is not intended to be a long term solution, just a
|
| -mechanism to avoid changing Content. If we were to deploy this code in //chrome,
|
| -we might want to expose these interfaces from content directly.
|
| -
|
| -Lastly, the desired end state of the service-refactoring is that //content
|
| -ceases to exist, so at that point it's conceivable that //content types that
|
| -are used to implement these interfaces end up in this directory. But that's a
|
| -long way off.
|
| -
|
| -### Usage
|
| -
|
| -For convenience, as synchronizing some navigable view state is tricky, a client
|
| -library is provided in //services/navigation/public/cpp. The types exposed in
|
| -this library mimic conventional platform WebView types.
|
| -
|
| - std::unique_ptr<navigation::View> view(new navigation::View);
|
| - ViewDelegateImpl delegate;
|
| - ViewObserverImpl observer;
|
| - view->set_delegate(&delegate);
|
| - view->AddObserver(&observer);
|
| - view->EmbedInWindow(some_mus_window);
|
| - view->NavigateToURL(GURL("http://www.chromium.org/"));
|
|
|