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

Unified Diff: components/html_viewer/frame_tree_manager.cc

Issue 1246053003: Renames html_viewer frame classes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: minor cleanup Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/html_viewer/frame_tree_manager.h ('k') | components/html_viewer/frame_tree_manager_delegate.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/html_viewer/frame_tree_manager.cc
diff --git a/components/html_viewer/frame_tree_manager.cc b/components/html_viewer/frame_tree_manager.cc
deleted file mode 100644
index a137a42759b77653184b9545a97831a138269ef1..0000000000000000000000000000000000000000
--- a/components/html_viewer/frame_tree_manager.cc
+++ /dev/null
@@ -1,218 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/html_viewer/frame_tree_manager.h"
-
-#include <algorithm>
-
-#include "base/command_line.h"
-#include "base/logging.h"
-#include "components/html_viewer/blink_basic_type_converters.h"
-#include "components/html_viewer/blink_url_request_type_converters.h"
-#include "components/html_viewer/frame.h"
-#include "components/html_viewer/frame_tree_manager_delegate.h"
-#include "components/html_viewer/global_state.h"
-#include "components/view_manager/public/cpp/view_manager.h"
-#include "mojo/application/public/cpp/application_connection.h"
-#include "mojo/application/public/cpp/application_impl.h"
-#include "third_party/WebKit/public/web/WebLocalFrame.h"
-#include "third_party/WebKit/public/web/WebRemoteFrame.h"
-#include "third_party/WebKit/public/web/WebTreeScopeType.h"
-#include "third_party/WebKit/public/web/WebView.h"
-#include "ui/gfx/geometry/dip_util.h"
-#include "ui/gfx/geometry/size.h"
-
-namespace html_viewer {
-namespace {
-
-mojo::Target WebNavigationPolicyToNavigationTarget(
- blink::WebNavigationPolicy policy) {
- switch (policy) {
- case blink::WebNavigationPolicyCurrentTab:
- return mojo::TARGET_SOURCE_NODE;
- case blink::WebNavigationPolicyNewBackgroundTab:
- case blink::WebNavigationPolicyNewForegroundTab:
- case blink::WebNavigationPolicyNewWindow:
- case blink::WebNavigationPolicyNewPopup:
- return mojo::TARGET_NEW_NODE;
- default:
- return mojo::TARGET_DEFAULT;
- }
-}
-
-bool CanNavigateLocally(blink::WebFrame* frame,
- const blink::WebURLRequest& request) {
- // If we have extraData() it means we already have the url response
- // (presumably because we are being called via Navigate()). In that case we
- // can go ahead and navigate locally.
- if (request.extraData())
- return true;
-
- // Otherwise we don't know if we're the right app to handle this request. Ask
- // host to do the navigation for us.
- return false;
-}
-
-// Creates a Frame per FrameData element in |frame_data|.
-Frame* BuildFrameTree(FrameTreeManager* frame_tree_manager,
- const mojo::Array<mandoline::FrameDataPtr>& frame_data,
- uint32_t local_frame_id,
- mojo::View* local_view) {
- std::vector<Frame*> parents;
- Frame* root = nullptr;
- Frame* last_frame = nullptr;
- for (size_t i = 0; i < frame_data.size(); ++i) {
- if (last_frame && frame_data[i]->parent_id == last_frame->id()) {
- parents.push_back(last_frame);
- } else if (!parents.empty()) {
- while (parents.back()->id() != frame_data[i]->parent_id)
- parents.pop_back();
- }
- Frame::CreateParams params(frame_tree_manager,
- !parents.empty() ? parents.back() : nullptr,
- frame_data[i]->frame_id);
- Frame* frame = new Frame(params);
- if (!last_frame)
- root = frame;
- else
- DCHECK(frame->parent());
- last_frame = frame;
-
- frame->Init(local_view, frame_data[i]->name.To<blink::WebString>(),
- frame_data[i]->origin.To<blink::WebString>());
- }
- return root;
-}
-
-} // namespace
-
-FrameTreeManager::FrameTreeManager(GlobalState* global_state,
- mojo::ApplicationImpl* app,
- mojo::ApplicationConnection* app_connection,
- uint32_t local_frame_id,
- mandoline::FrameTreeServerPtr server)
- : global_state_(global_state),
- app_(app),
- delegate_(nullptr),
- local_frame_id_(local_frame_id),
- server_(server.Pass()),
- navigator_host_(app_connection->GetServiceProvider()),
- root_(nullptr) {
-}
-
-FrameTreeManager::~FrameTreeManager() {
- if (root_)
- root_->Close(); // This should call back to OnFrameDestroyed().
- DCHECK(!root_);
-}
-
-void FrameTreeManager::Init(mojo::View* local_view,
- mojo::Array<mandoline::FrameDataPtr> frame_data) {
- root_ = BuildFrameTree(this, frame_data, local_frame_id_, local_view);
- Frame* local_frame = root_->FindFrame(local_frame_id_);
- CHECK(local_frame);
- local_frame->UpdateFocus();
-}
-
-Frame* FrameTreeManager::GetLocalFrame() {
- return root_->FindFrame(local_frame_id_);
-}
-
-blink::WebLocalFrame* FrameTreeManager::GetLocalWebFrame() {
- return GetLocalFrame()->web_frame()->toWebLocalFrame();
-}
-
-blink::WebView* FrameTreeManager::GetWebView() {
- return root_->web_view();
-}
-
-blink::WebNavigationPolicy FrameTreeManager::DecidePolicyForNavigation(
- Frame* frame,
- const blink::WebFrameClient::NavigationPolicyInfo& info) {
- if (info.frame == frame->web_frame() && frame == root_ && delegate_ &&
- delegate_->ShouldNavigateLocallyInMainFrame()) {
- return info.defaultPolicy;
- }
-
- if (CanNavigateLocally(info.frame, info.urlRequest))
- return info.defaultPolicy;
-
- // TODO(sky): this is wrong for subframes. In fact NavigatorHost should likely
- // be merged with Frame.
- if (navigator_host_.get()) {
- mojo::URLRequestPtr url_request = mojo::URLRequest::From(info.urlRequest);
- navigator_host_->RequestNavigate(
- WebNavigationPolicyToNavigationTarget(info.defaultPolicy),
- url_request.Pass());
- }
-
- return blink::WebNavigationPolicyIgnore;
-}
-
-void FrameTreeManager::OnFrameDidFinishLoad(Frame* frame) {
- if (delegate_)
- delegate_->OnFrameDidFinishLoad(frame);
-}
-
-void FrameTreeManager::OnFrameDidNavigateLocally(Frame* frame,
- const std::string& url) {
- if (navigator_host_.get() && frame == root_)
- navigator_host_->DidNavigateLocally(url);
-}
-
-void FrameTreeManager::OnFrameDestroyed(Frame* frame) {
- if (frame == root_) {
- root_ = nullptr;
- // Shortly after this HTMLDocumentOOPIF should get ViewManagerDestroyed()
- // and delete us.
- }
-}
-
-void FrameTreeManager::OnFrameDidChangeName(Frame* frame,
- const blink::WebString& name) {
- if (frame != GetLocalFrame())
- return;
-
- mojo::String mojo_name;
- if (!name.isNull())
- mojo_name = name.utf8();
- server_->SetFrameName(mojo_name);
-}
-
-void FrameTreeManager::OnConnect(
- mandoline::FrameTreeServerPtr server,
- mojo::Array<mandoline::FrameDataPtr> frame_data) {
- // OnConnection() is only sent once, and has been received (by
- // DocumentResourceWaiter) by the time we get here.
- NOTREACHED();
-}
-
-void FrameTreeManager::LoadingStarted() {
- server_->LoadingStarted();
-}
-
-void FrameTreeManager::LoadingStopped() {
- server_->LoadingStopped();
-}
-
-void FrameTreeManager::ProgressChanged(double progress) {
- server_->ProgressChanged(progress);
-}
-
-void FrameTreeManager::OnFrameAdded(mandoline::FrameDataPtr frame_data) {
- NOTIMPLEMENTED();
-}
-
-void FrameTreeManager::OnFrameRemoved(uint32_t frame_id) {
- NOTIMPLEMENTED();
-}
-
-void FrameTreeManager::OnFrameNameChanged(uint32_t frame_id,
- const mojo::String& name) {
- Frame* frame = root_->FindFrame(frame_id);
- if (frame)
- frame->SetRemoteFrameName(name);
-}
-
-} // namespace mojo
« no previous file with comments | « components/html_viewer/frame_tree_manager.h ('k') | components/html_viewer/frame_tree_manager_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698