Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(521)

Side by Side Diff: components/html_viewer/html_frame.cc

Issue 1674903003: Extract shell methods from ApplicationImpl into a base class, and pass this to Initialize() instead. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mojom
Patch Set: . Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « components/html_viewer/html_frame.h ('k') | components/html_viewer/html_frame_apptest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/html_viewer/html_frame.h" 5 #include "components/html_viewer/html_frame.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <algorithm> 8 #include <algorithm>
9 #include <limits> 9 #include <limits>
10 #include <utility> 10 #include <utility>
(...skipping 24 matching lines...) Expand all
35 #include "components/html_viewer/web_layer_tree_view_impl.h" 35 #include "components/html_viewer/web_layer_tree_view_impl.h"
36 #include "components/html_viewer/web_storage_namespace_impl.h" 36 #include "components/html_viewer/web_storage_namespace_impl.h"
37 #include "components/html_viewer/web_url_loader_impl.h" 37 #include "components/html_viewer/web_url_loader_impl.h"
38 #include "components/mus/public/cpp/scoped_window_ptr.h" 38 #include "components/mus/public/cpp/scoped_window_ptr.h"
39 #include "components/mus/public/cpp/window.h" 39 #include "components/mus/public/cpp/window.h"
40 #include "components/mus/public/cpp/window_tree_connection.h" 40 #include "components/mus/public/cpp/window_tree_connection.h"
41 #include "components/mus/ws/ids.h" 41 #include "components/mus/ws/ids.h"
42 #include "mojo/common/common_type_converters.h" 42 #include "mojo/common/common_type_converters.h"
43 #include "mojo/converters/blink/blink_input_events_type_converters.h" 43 #include "mojo/converters/blink/blink_input_events_type_converters.h"
44 #include "mojo/converters/geometry/geometry_type_converters.h" 44 #include "mojo/converters/geometry/geometry_type_converters.h"
45 #include "mojo/shell/public/cpp/application_impl.h" 45 #include "mojo/shell/public/cpp/shell.h"
46 #include "mojo/shell/public/cpp/connect.h"
47 #include "mojo/shell/public/interfaces/shell.mojom.h"
48 #include "third_party/WebKit/public/platform/Platform.h" 46 #include "third_party/WebKit/public/platform/Platform.h"
49 #include "third_party/WebKit/public/platform/WebHTTPHeaderVisitor.h" 47 #include "third_party/WebKit/public/platform/WebHTTPHeaderVisitor.h"
50 #include "third_party/WebKit/public/platform/WebSecurityOrigin.h" 48 #include "third_party/WebKit/public/platform/WebSecurityOrigin.h"
51 #include "third_party/WebKit/public/platform/WebSize.h" 49 #include "third_party/WebKit/public/platform/WebSize.h"
52 #include "third_party/WebKit/public/web/WebConsoleMessage.h" 50 #include "third_party/WebKit/public/web/WebConsoleMessage.h"
53 #include "third_party/WebKit/public/web/WebDocument.h" 51 #include "third_party/WebKit/public/web/WebDocument.h"
54 #include "third_party/WebKit/public/web/WebElement.h" 52 #include "third_party/WebKit/public/web/WebElement.h"
55 #include "third_party/WebKit/public/web/WebFindOptions.h" 53 #include "third_party/WebKit/public/web/WebFindOptions.h"
56 #include "third_party/WebKit/public/web/WebFrameOwnerProperties.h" 54 #include "third_party/WebKit/public/web/WebFrameOwnerProperties.h"
57 #include "third_party/WebKit/public/web/WebInputEvent.h" 55 #include "third_party/WebKit/public/web/WebInputEvent.h"
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 GetValueFromClientProperties("devtools-state", params->properties); 168 GetValueFromClientProperties("devtools-state", params->properties);
171 std::string devtools_state_str = devtools_state.To<std::string>(); 169 std::string devtools_state_str = devtools_state.To<std::string>();
172 devtools_agent_.reset(new DevToolsAgentImpl( 170 devtools_agent_.reset(new DevToolsAgentImpl(
173 web_frame_->toWebLocalFrame(), devtools_id.To<std::string>(), 171 web_frame_->toWebLocalFrame(), devtools_id.To<std::string>(),
174 devtools_state.is_null() ? nullptr : &devtools_state_str)); 172 devtools_state.is_null() ? nullptr : &devtools_state_str));
175 } 173 }
176 174
177 // Collect startup perf data for local main frames in test environments. 175 // Collect startup perf data for local main frames in test environments.
178 // Child frames aren't tracked, and tracking remote frames is redundant. 176 // Child frames aren't tracked, and tracking remote frames is redundant.
179 startup_performance_data_collector_ = 177 startup_performance_data_collector_ =
180 StatsCollectionController::Install(web_frame_, GetApp()); 178 StatsCollectionController::Install(web_frame_, GetShell());
181 } 179 }
182 } else if (!params->is_local_create_child && params->window && 180 } else if (!params->is_local_create_child && params->window &&
183 id_ == params->window->id()) { 181 id_ == params->window->id()) {
184 // Frame represents the local frame, and it isn't the root of the tree. 182 // Frame represents the local frame, and it isn't the root of the tree.
185 HTMLFrame* previous_sibling = GetPreviousSibling(this); 183 HTMLFrame* previous_sibling = GetPreviousSibling(this);
186 blink::WebFrame* previous_web_frame = 184 blink::WebFrame* previous_web_frame =
187 previous_sibling ? previous_sibling->web_frame() : nullptr; 185 previous_sibling ? previous_sibling->web_frame() : nullptr;
188 CHECK(!parent_->IsLocal()); 186 CHECK(!parent_->IsLocal());
189 web_frame_ = parent_->web_frame()->toWebRemoteFrame()->createLocalChild( 187 web_frame_ = parent_->web_frame()->toWebRemoteFrame()->createLocalChild(
190 state_.tree_scope, state_.name, state_.sandbox_flags, this, 188 state_.tree_scope, state_.name, state_.sandbox_flags, this,
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 blink::WebMediaPlayer* HTMLFrame::createMediaPlayer( 310 blink::WebMediaPlayer* HTMLFrame::createMediaPlayer(
313 blink::WebLocalFrame* frame, 311 blink::WebLocalFrame* frame,
314 blink::WebMediaPlayer::LoadType load_type, 312 blink::WebMediaPlayer::LoadType load_type,
315 const blink::WebURL& url, 313 const blink::WebURL& url,
316 blink::WebMediaPlayerClient* client, 314 blink::WebMediaPlayerClient* client,
317 blink::WebMediaPlayerEncryptedMediaClient* encrypted_client, 315 blink::WebMediaPlayerEncryptedMediaClient* encrypted_client,
318 blink::WebContentDecryptionModule* initial_cdm, 316 blink::WebContentDecryptionModule* initial_cdm,
319 const blink::WebString& sink_id, 317 const blink::WebString& sink_id,
320 blink::WebMediaSession* media_session) { 318 blink::WebMediaSession* media_session) {
321 return global_state()->media_factory()->CreateMediaPlayer( 319 return global_state()->media_factory()->CreateMediaPlayer(
322 frame, url, client, encrypted_client, initial_cdm, GetApp()->shell()); 320 frame, url, client, encrypted_client, initial_cdm, GetShell());
323 } 321 }
324 322
325 blink::WebFrame* HTMLFrame::createChildFrame( 323 blink::WebFrame* HTMLFrame::createChildFrame(
326 blink::WebLocalFrame* parent, 324 blink::WebLocalFrame* parent,
327 blink::WebTreeScopeType scope, 325 blink::WebTreeScopeType scope,
328 const blink::WebString& frame_name, 326 const blink::WebString& frame_name,
329 blink::WebSandboxFlags sandbox_flags, 327 blink::WebSandboxFlags sandbox_flags,
330 const blink::WebFrameOwnerProperties& frame_owner_properties) { 328 const blink::WebFrameOwnerProperties& frame_owner_properties) {
331 DCHECK(IsLocal()); // Can't create children of remote frames. 329 DCHECK(IsLocal()); // Can't create children of remote frames.
332 DCHECK_EQ(parent, web_frame_); 330 DCHECK_EQ(parent, web_frame_);
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
565 } 563 }
566 } 564 }
567 565
568 HTMLFrame* HTMLFrame::GetFirstAncestorWithDelegate() { 566 HTMLFrame* HTMLFrame::GetFirstAncestorWithDelegate() {
569 HTMLFrame* frame = this; 567 HTMLFrame* frame = this;
570 while (frame && !frame->delegate_) 568 while (frame && !frame->delegate_)
571 frame = frame->parent_; 569 frame = frame->parent_;
572 return frame; 570 return frame;
573 } 571 }
574 572
575 mojo::ApplicationImpl* HTMLFrame::GetApp() { 573 mojo::Shell* HTMLFrame::GetShell() {
576 return GetFirstAncestorWithDelegate()->delegate_->GetApp(); 574 return GetFirstAncestorWithDelegate()->delegate_->GetShell();
577 } 575 }
578 576
579 web_view::mojom::Frame* HTMLFrame::GetServerFrame() { 577 web_view::mojom::Frame* HTMLFrame::GetServerFrame() {
580 // Prefer an ancestor with a server Frame. 578 // Prefer an ancestor with a server Frame.
581 for (HTMLFrame* frame = this; frame; frame = frame->parent_) { 579 for (HTMLFrame* frame = this; frame; frame = frame->parent_) {
582 if (frame->server_.get()) 580 if (frame->server_.get())
583 return frame->server_.get(); 581 return frame->server_.get();
584 } 582 }
585 583
586 // We're a remote frame with no local frame ancestors. Use the server Frame 584 // We're a remote frame with no local frame ancestors. Use the server Frame
587 // from the local frame of the HTMLFrameTreeManager. 585 // from the local frame of the HTMLFrameTreeManager.
588 return frame_tree_manager_->local_frame_->server_.get(); 586 return frame_tree_manager_->local_frame_->server_.get();
589 } 587 }
590 588
591 void HTMLFrame::SetWindow(mus::Window* window) { 589 void HTMLFrame::SetWindow(mus::Window* window) {
592 if (window_) { 590 if (window_) {
593 window_->set_input_event_handler(nullptr); 591 window_->set_input_event_handler(nullptr);
594 window_->RemoveObserver(this); 592 window_->RemoveObserver(this);
595 } 593 }
596 window_ = window; 594 window_ = window;
597 if (window_) { 595 if (window_) {
598 window_->AddObserver(this); 596 window_->AddObserver(this);
599 window_->set_input_event_handler(this); 597 window_->set_input_event_handler(this);
600 } 598 }
601 } 599 }
602 600
603 void HTMLFrame::CreateRootWebWidget() { 601 void HTMLFrame::CreateRootWebWidget() {
604 DCHECK(!html_widget_); 602 DCHECK(!html_widget_);
605 if (window_) { 603 if (window_) {
606 HTMLWidgetRootLocal::CreateParams create_params(GetApp(), global_state(), 604 HTMLWidgetRootLocal::CreateParams create_params(GetShell(), global_state(),
607 window_); 605 window_);
608 html_widget_.reset( 606 html_widget_.reset(
609 delegate_->GetHTMLFactory()->CreateHTMLWidgetRootLocal(&create_params)); 607 delegate_->GetHTMLFactory()->CreateHTMLWidgetRootLocal(&create_params));
610 } else { 608 } else {
611 html_widget_.reset(new HTMLWidgetRootRemote(global_state())); 609 html_widget_.reset(new HTMLWidgetRootRemote(global_state()));
612 } 610 }
613 } 611 }
614 612
615 void HTMLFrame::CreateLocalRootWebWidget(blink::WebLocalFrame* local_frame) { 613 void HTMLFrame::CreateLocalRootWebWidget(blink::WebLocalFrame* local_frame) {
616 DCHECK(!html_widget_); 614 DCHECK(!html_widget_);
617 DCHECK(IsLocal()); 615 DCHECK(IsLocal());
618 html_widget_.reset( 616 html_widget_.reset(new HTMLWidgetLocalRoot(GetShell(), global_state(),
619 new HTMLWidgetLocalRoot(GetApp(), global_state(), window_, local_frame)); 617 window_, local_frame));
620 } 618 }
621 619
622 void HTMLFrame::UpdateFocus() { 620 void HTMLFrame::UpdateFocus() {
623 blink::WebWidget* web_widget = GetWebWidget(); 621 blink::WebWidget* web_widget = GetWebWidget();
624 if (!web_widget || !window_) 622 if (!web_widget || !window_)
625 return; 623 return;
626 const bool is_focused = window_ && window_->HasFocus(); 624 const bool is_focused = window_ && window_->HasFocus();
627 web_widget->setFocus(is_focused); 625 web_widget->setFocus(is_focused);
628 if (web_widget->isWebView()) 626 if (web_widget->isWebView())
629 static_cast<blink::WebView*>(web_widget)->setIsActive(is_focused); 627 static_cast<blink::WebView*>(web_widget)->setIsActive(is_focused);
(...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after
1043 1041
1044 if (!surface_layer_) 1042 if (!surface_layer_)
1045 return; 1043 return;
1046 1044
1047 surface_layer_->SetSurfaceId(cc::SurfaceId(owned_window_->window()->id()), 1045 surface_layer_->SetSurfaceId(cc::SurfaceId(owned_window_->window()->id()),
1048 global_state()->device_pixel_ratio(), 1046 global_state()->device_pixel_ratio(),
1049 owned_window_->window()->bounds().size()); 1047 owned_window_->window()->bounds().size());
1050 } 1048 }
1051 1049
1052 } // namespace mojo 1050 } // namespace mojo
OLDNEW
« no previous file with comments | « components/html_viewer/html_frame.h ('k') | components/html_viewer/html_frame_apptest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698