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 "mandoline/ui/browser/browser.h" | 5 #include "mandoline/ui/browser/browser.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
9 #include "components/view_manager/public/cpp/view.h" | 9 #include "components/view_manager/public/cpp/view.h" |
10 #include "components/view_manager/public/cpp/view_manager_init.h" | 10 #include "components/view_manager/public/cpp/view_manager_init.h" |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 } | 110 } |
111 | 111 |
112 void Browser::OnEmbedForDescendant(mojo::View* view, | 112 void Browser::OnEmbedForDescendant(mojo::View* view, |
113 mojo::URLRequestPtr request, | 113 mojo::URLRequestPtr request, |
114 mojo::ViewManagerClientPtr* client) { | 114 mojo::ViewManagerClientPtr* client) { |
115 // TODO(sky): move this to Frame/FrameTree. | 115 // TODO(sky): move this to Frame/FrameTree. |
116 Frame* frame = Frame::FindFirstFrameAncestor(view); | 116 Frame* frame = Frame::FindFirstFrameAncestor(view); |
117 if (!frame || !frame->HasAncestor(frame_tree_->root())) { | 117 if (!frame || !frame->HasAncestor(frame_tree_->root())) { |
118 // TODO(sky): add requestor url so that we can return false if it's not | 118 // TODO(sky): add requestor url so that we can return false if it's not |
119 // an app we expect. | 119 // an app we expect. |
120 mojo::ApplicationConnection* connection = | 120 scoped_ptr<mojo::ApplicationConnection> connection = |
121 app_->ConnectToApplication(request.Pass()); | 121 app_->ConnectToApplication(request.Pass()); |
122 connection->ConnectToService(client); | 122 connection->ConnectToService(client); |
123 return; | 123 return; |
124 } | 124 } |
125 | 125 |
126 scoped_ptr<FrameConnection> frame_connection(new FrameConnection); | 126 scoped_ptr<FrameConnection> frame_connection(new FrameConnection); |
127 frame_connection->Init(app_, request.Pass(), client); | 127 frame_connection->Init(app_, request.Pass(), client); |
128 FrameTreeClient* frame_tree_client = frame_connection->frame_tree_client(); | 128 FrameTreeClient* frame_tree_client = frame_connection->frame_tree_client(); |
129 frame_tree_->CreateOrReplaceFrame(frame, view, frame_tree_client, | 129 frame_tree_->CreateOrReplaceFrame(frame, view, frame_tree_client, |
130 frame_connection.Pass()); | 130 frame_connection.Pass()); |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
208 view_embedder_bindings_.AddBinding(this, request.Pass()); | 208 view_embedder_bindings_.AddBinding(this, request.Pass()); |
209 } | 209 } |
210 | 210 |
211 void Browser::ShowOmnibox(mojo::URLRequestPtr request) { | 211 void Browser::ShowOmnibox(mojo::URLRequestPtr request) { |
212 if (!omnibox_) { | 212 if (!omnibox_) { |
213 omnibox_ = root_->view_manager()->CreateView(); | 213 omnibox_ = root_->view_manager()->CreateView(); |
214 root_->AddChild(omnibox_); | 214 root_->AddChild(omnibox_); |
215 omnibox_->SetBounds(root_->bounds()); | 215 omnibox_->SetBounds(root_->bounds()); |
216 } | 216 } |
217 mojo::ViewManagerClientPtr view_manager_client; | 217 mojo::ViewManagerClientPtr view_manager_client; |
218 mojo::ApplicationConnection* connection = | 218 scoped_ptr<mojo::ApplicationConnection> connection = |
219 app_->ConnectToApplication(request.Pass()); | 219 app_->ConnectToApplication(request.Pass()); |
220 connection->AddService<ViewEmbedder>(this); | 220 connection->AddService<ViewEmbedder>(this); |
221 connection->ConnectToService(&view_manager_client); | 221 connection->ConnectToService(&view_manager_client); |
222 omnibox_->Embed(view_manager_client.Pass()); | 222 omnibox_->Embed(view_manager_client.Pass()); |
223 omnibox_->SetVisible(true); | 223 omnibox_->SetVisible(true); |
224 } | 224 } |
225 | 225 |
226 void Browser::RequestNavigate(Frame* source, | 226 void Browser::RequestNavigate(Frame* source, |
227 NavigationTargetType target_type, | 227 NavigationTargetType target_type, |
228 Frame* target_frame, | 228 Frame* target_frame, |
229 mojo::URLRequestPtr request) { | 229 mojo::URLRequestPtr request) { |
230 // TODO: this needs security checks. | 230 // TODO: this needs security checks. |
231 if (target_type == NAVIGATION_TARGET_TYPE_EXISTING_FRAME) { | 231 if (target_type == NAVIGATION_TARGET_TYPE_EXISTING_FRAME) { |
232 if (target_frame && target_frame != frame_tree_->root() && | 232 if (target_frame && target_frame != frame_tree_->root() && |
233 target_frame->view()) { | 233 target_frame->view()) { |
234 NavigateExistingFrame(target_frame, request.Pass()); | 234 NavigateExistingFrame(target_frame, request.Pass()); |
235 return; | 235 return; |
236 } | 236 } |
237 DVLOG(1) << "RequestNavigate() targeted existing frame that doesn't exist."; | 237 DVLOG(1) << "RequestNavigate() targeted existing frame that doesn't exist."; |
238 return; | 238 return; |
239 } | 239 } |
240 ReplaceContentWithRequest(request.Pass()); | 240 ReplaceContentWithRequest(request.Pass()); |
241 } | 241 } |
242 | 242 |
243 } // namespace mandoline | 243 } // namespace mandoline |
OLD | NEW |