| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/web_view/frame_tree.h" | 5 #include "components/web_view/frame_tree.h" |
| 6 | 6 |
| 7 #include "components/web_view/frame_tree_delegate.h" | 7 #include "components/web_view/frame_tree_delegate.h" |
| 8 #include "components/web_view/frame_user_data.h" | 8 #include "components/web_view/frame_user_data.h" |
| 9 | 9 |
| 10 namespace web_view { | 10 namespace web_view { |
| 11 | 11 |
| 12 FrameTree::FrameTree(uint32_t root_app_id, | 12 FrameTree::FrameTree(uint32_t root_app_id, |
| 13 mus::View* view, | 13 mus::View* view, |
| 14 mojo::ViewTreeClientPtr view_tree_client, | 14 mojo::ViewTreeClientPtr view_tree_client, |
| 15 FrameTreeDelegate* delegate, | 15 FrameTreeDelegate* delegate, |
| 16 FrameTreeClient* root_client, | 16 mojom::FrameClient* root_client, |
| 17 scoped_ptr<FrameUserData> user_data, | 17 scoped_ptr<FrameUserData> user_data, |
| 18 const Frame::ClientPropertyMap& client_properties) | 18 const Frame::ClientPropertyMap& client_properties) |
| 19 : view_(view), | 19 : view_(view), |
| 20 delegate_(delegate), | 20 delegate_(delegate), |
| 21 root_(new Frame(this, | 21 root_(new Frame(this, |
| 22 view, | 22 view, |
| 23 view->id(), | 23 view->id(), |
| 24 root_app_id, | 24 root_app_id, |
| 25 ViewOwnership::DOESNT_OWN_VIEW, | 25 ViewOwnership::DOESNT_OWN_VIEW, |
| 26 root_client, | 26 root_client, |
| 27 user_data.Pass(), | 27 user_data.Pass(), |
| 28 client_properties)), | 28 client_properties)), |
| 29 progress_(0.f), | 29 progress_(0.f), |
| 30 change_id_(1u) { | 30 change_id_(1u) { |
| 31 root_->Init(nullptr, view_tree_client.Pass(), nullptr); | 31 root_->Init(nullptr, view_tree_client.Pass(), nullptr); |
| 32 } | 32 } |
| 33 | 33 |
| 34 FrameTree::~FrameTree() { | 34 FrameTree::~FrameTree() { |
| 35 // Destroy the root explicitly in case it calls back to us for state (such | 35 // Destroy the root explicitly in case it calls back to us for state (such |
| 36 // as to see if it is the root). | 36 // as to see if it is the root). |
| 37 delete root_; | 37 delete root_; |
| 38 root_ = nullptr; | 38 root_ = nullptr; |
| 39 } | 39 } |
| 40 | 40 |
| 41 Frame* FrameTree::CreateChildFrame( | 41 Frame* FrameTree::CreateChildFrame( |
| 42 Frame* parent, | 42 Frame* parent, |
| 43 mojo::InterfaceRequest<FrameTreeServer> server_request, | 43 mojo::InterfaceRequest<mojom::Frame> frame_request, |
| 44 FrameTreeClientPtr client, | 44 mojom::FrameClientPtr client, |
| 45 uint32_t frame_id, | 45 uint32_t frame_id, |
| 46 uint32_t app_id, | 46 uint32_t app_id, |
| 47 const Frame::ClientPropertyMap& client_properties) { | 47 const Frame::ClientPropertyMap& client_properties) { |
| 48 FrameTreeClient* raw_client = client.get(); | 48 mojom::FrameClient* raw_client = client.get(); |
| 49 scoped_ptr<FrameUserData> user_data = | 49 scoped_ptr<FrameUserData> user_data = |
| 50 delegate_->CreateUserDataForNewFrame(client.Pass()); | 50 delegate_->CreateUserDataForNewFrame(client.Pass()); |
| 51 mus::View* frame_view = root_->view()->GetChildById(frame_id); | 51 mus::View* frame_view = root_->view()->GetChildById(frame_id); |
| 52 // |frame_view| may be null if the View hasn't been created yet. If this is | 52 // |frame_view| may be null if the View hasn't been created yet. If this is |
| 53 // the case the View will be connected to the Frame in Frame::OnTreeChanged. | 53 // the case the View will be connected to the Frame in Frame::OnTreeChanged. |
| 54 Frame* frame = | 54 Frame* frame = |
| 55 new Frame(this, frame_view, frame_id, app_id, ViewOwnership::OWNS_VIEW, | 55 new Frame(this, frame_view, frame_id, app_id, ViewOwnership::OWNS_VIEW, |
| 56 raw_client, user_data.Pass(), client_properties); | 56 raw_client, user_data.Pass(), client_properties); |
| 57 frame->Init(parent, nullptr, server_request.Pass()); | 57 frame->Init(parent, nullptr, frame_request.Pass()); |
| 58 return frame; | 58 return frame; |
| 59 } | 59 } |
| 60 | 60 |
| 61 uint32_t FrameTree::AdvanceChangeID() { | 61 uint32_t FrameTree::AdvanceChangeID() { |
| 62 return ++change_id_; | 62 return ++change_id_; |
| 63 } | 63 } |
| 64 | 64 |
| 65 void FrameTree::LoadingStateChanged() { | 65 void FrameTree::LoadingStateChanged() { |
| 66 const bool loading = root_->IsLoading(); | 66 const bool loading = root_->IsLoading(); |
| 67 if (loading) { | 67 if (loading) { |
| (...skipping 14 matching lines...) Expand all Loading... |
| 82 delegate_->DidCommitProvisionalLoad(source); | 82 delegate_->DidCommitProvisionalLoad(source); |
| 83 } | 83 } |
| 84 | 84 |
| 85 void FrameTree::ClientPropertyChanged(const Frame* source, | 85 void FrameTree::ClientPropertyChanged(const Frame* source, |
| 86 const mojo::String& name, | 86 const mojo::String& name, |
| 87 const mojo::Array<uint8_t>& value) { | 87 const mojo::Array<uint8_t>& value) { |
| 88 root_->NotifyClientPropertyChanged(source, name, value); | 88 root_->NotifyClientPropertyChanged(source, name, value); |
| 89 } | 89 } |
| 90 | 90 |
| 91 } // namespace web_view | 91 } // namespace web_view |
| OLD | NEW |