| Index: components/web_view/frame.h
|
| diff --git a/components/web_view/frame.h b/components/web_view/frame.h
|
| index 660e94f6d9b97c3f07f6a4bf0238702e618d0c83..213216bebcb7056dc75d9ed9922e34dbc4cd20d6 100644
|
| --- a/components/web_view/frame.h
|
| +++ b/components/web_view/frame.h
|
| @@ -10,6 +10,7 @@
|
|
|
| #include "base/basictypes.h"
|
| #include "base/memory/scoped_ptr.h"
|
| +#include "components/view_manager/public/cpp/types.h"
|
| #include "components/view_manager/public/cpp/view_observer.h"
|
| #include "components/web_view/public/interfaces/frame_tree.mojom.h"
|
| #include "third_party/mojo/src/mojo/public/cpp/bindings/binding.h"
|
| @@ -61,7 +62,7 @@ class Frame : public mojo::ViewObserver, public FrameTreeServer {
|
| const ClientPropertyMap& client_properties);
|
| ~Frame() override;
|
|
|
| - void Init(Frame* parent);
|
| + void Init(Frame* parent, mojo::ViewTreeClientPtr view_tree_client);
|
|
|
| // Walks the View tree starting at |view| going up returning the first
|
| // Frame that is associated with |view|. For example, if |view|
|
| @@ -124,7 +125,8 @@ class Frame : public mojo::ViewObserver, public FrameTreeServer {
|
| // connection lost (and assume the frame is being torn down) before the
|
| // OnConnect().
|
| void InitClient(ClientType client_type,
|
| - scoped_ptr<FrameTreeServerBinding> frame_tree_server_binding);
|
| + scoped_ptr<FrameTreeServerBinding> frame_tree_server_binding,
|
| + mojo::ViewTreeClientPtr view_tree_client);
|
|
|
| // Callback from OnConnect(). This does nothing (other than destroying
|
| // |frame_tree_server_binding|). See InitClient() for details as to why
|
| @@ -132,6 +134,9 @@ class Frame : public mojo::ViewObserver, public FrameTreeServer {
|
| static void OnConnectAck(
|
| scoped_ptr<FrameTreeServerBinding> frame_tree_server_binding);
|
|
|
| + // Callback from OnEmbed().
|
| + void OnEmbedAck(bool success, mojo::ConnectionSpecificId connection_id);
|
| +
|
| // Completes a navigation request; swapping the existing FrameTreeClient to
|
| // the supplied arguments.
|
| void ChangeClient(FrameTreeClient* frame_tree_client,
|
| @@ -212,6 +217,9 @@ class Frame : public mojo::ViewObserver, public FrameTreeServer {
|
| FrameTree* const tree_;
|
| // WARNING: this may be null. See class description for details.
|
| mojo::View* view_;
|
| + // The connection id returned from ViewManager::Embed(). Frames created by
|
| + // way of OnCreatedFrame() inherit the id from the parent.
|
| + mojo::ConnectionSpecificId embedded_connection_id_;
|
| // ID for the frame, which is the same as that of the view.
|
| const uint32_t id_;
|
| // ID of the app providing the FrameTreeClient and ViewTreeClient.
|
| @@ -235,7 +243,7 @@ class Frame : public mojo::ViewObserver, public FrameTreeServer {
|
|
|
| scoped_ptr<mojo::Binding<FrameTreeServer>> frame_tree_server_binding_;
|
|
|
| - base::WeakPtrFactory<Frame> weak_factory_;
|
| + base::WeakPtrFactory<Frame> embed_weak_ptr_factory_;
|
|
|
| base::WeakPtrFactory<Frame> navigate_weak_ptr_factory_;
|
|
|
|
|