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

Unified Diff: components/html_viewer/document_resource_waiter.cc

Issue 1677293002: Bye bye Mandoline (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: moar 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 side-by-side diff with in-line comments
Download patch
Index: components/html_viewer/document_resource_waiter.cc
diff --git a/components/html_viewer/document_resource_waiter.cc b/components/html_viewer/document_resource_waiter.cc
deleted file mode 100644
index c7bbececa9684c99960457bacb1635da5fc2080a..0000000000000000000000000000000000000000
--- a/components/html_viewer/document_resource_waiter.cc
+++ /dev/null
@@ -1,243 +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/document_resource_waiter.h"
-
-#include <utility>
-
-#include "components/html_viewer/global_state.h"
-#include "components/html_viewer/html_document.h"
-#include "components/html_viewer/html_frame_tree_manager.h"
-#include "components/mus/public/cpp/window.h"
-
-using web_view::mojom::WindowConnectType;
-
-namespace html_viewer {
-
-DocumentResourceWaiter::DocumentResourceWaiter(GlobalState* global_state,
- mojo::URLResponsePtr response,
- HTMLDocument* document)
- : global_state_(global_state),
- document_(document),
- response_(std::move(response)),
- root_(nullptr),
- change_id_(0u),
- window_id_(0u),
- window_connect_type_(web_view::mojom::WindowConnectType::USE_NEW),
- frame_client_binding_(this),
- is_ready_(false),
- waiting_for_change_id_(false),
- target_frame_tree_(nullptr) {}
-
-DocumentResourceWaiter::~DocumentResourceWaiter() {
- if (root_)
- root_->RemoveObserver(this);
- if (target_frame_tree_)
- target_frame_tree_->RemoveObserver(this);
-}
-
-void DocumentResourceWaiter::Release(
- mojo::InterfaceRequest<web_view::mojom::FrameClient>* frame_client_request,
- web_view::mojom::FramePtr* frame,
- mojo::Array<web_view::mojom::FrameDataPtr>* frame_data,
- uint32_t* change_id,
- uint32_t* window_id,
- WindowConnectType* window_connect_type,
- OnConnectCallback* on_connect_callback) {
- DCHECK(is_ready_);
- *frame_client_request = std::move(frame_client_request_);
- *frame = std::move(frame_);
- *frame_data = std::move(frame_data_);
- *change_id = change_id_;
- *window_id = window_id_;
- *window_connect_type = window_connect_type_;
- *on_connect_callback = on_connect_callback_;
-}
-
-mojo::URLResponsePtr DocumentResourceWaiter::ReleaseURLResponse() {
- return std::move(response_);
-}
-
-void DocumentResourceWaiter::SetRoot(mus::Window* root) {
- DCHECK(!root_);
- root_ = root;
- root_->AddObserver(this);
- UpdateIsReady();
-}
-
-void DocumentResourceWaiter::Bind(
- mojo::InterfaceRequest<web_view::mojom::FrameClient> request) {
- if (frame_client_binding_.is_bound() || !frame_data_.is_null()) {
- DVLOG(1) << "Request for FrameClient after already supplied one";
- return;
- }
- frame_client_binding_.Bind(std::move(request));
-}
-
-void DocumentResourceWaiter::UpdateIsReady() {
- if (is_ready_)
- return;
-
- // See description of |waiting_for_change_id_| for details.
- if (waiting_for_change_id_) {
- if (target_frame_tree_->change_id() == change_id_) {
- is_ready_ = true;
- waiting_for_change_id_ = false;
- document_->Load();
- }
- return;
- }
-
- // The first portion of ready is when we have received OnConnect()
- // (|frame_data_| is valid) and we have a window with valid metrics. The
- // window is not necessary is WindowConnectType is USE_EXISTING, which means
- // the
- // application is not asked for a ViewTreeClient. The metrics are necessary
- // to initialize ResourceBundle. If USE_EXISTING is true, it means a Window
- // has already been provided to another HTMLDocument and there is no need to
- // wait for metrics.
- bool is_ready =
- (!frame_data_.is_null() &&
- ((window_connect_type_ ==
- web_view::mojom::WindowConnectType::USE_EXISTING) ||
- (root_ && root_->viewport_metrics().device_pixel_ratio != 0.0f)));
- if (is_ready) {
- HTMLFrameTreeManager* frame_tree =
- HTMLFrameTreeManager::FindFrameTreeWithRoot(frame_data_[0]->frame_id);
- // Once we've received OnConnect() and the window (if necessary), we
- // determine which HTMLFrameTreeManager the new frame ends up in. If there
- // is an existing HTMLFrameTreeManager then we must wait for the change_id
- // supplied to OnConnect() to be <= that of the HTMLFrameTreeManager's
- // change_id. If we did not wait for the change id to be <= then the
- // structure of the tree is not in the expected state and it's possible the
- // frame communicated in OnConnect() does not exist yet.
- if (frame_tree && change_id_ > frame_tree->change_id()) {
- waiting_for_change_id_ = true;
- target_frame_tree_ = frame_tree;
- target_frame_tree_->AddObserver(this);
- } else {
- is_ready_ = true;
- document_->Load();
- }
- }
-}
-
-void DocumentResourceWaiter::OnConnect(
- web_view::mojom::FramePtr frame,
- uint32_t change_id,
- uint32_t window_id,
- WindowConnectType window_connect_type,
- mojo::Array<web_view::mojom::FrameDataPtr> frame_data,
- int64_t navigation_start_time_ticks,
- const OnConnectCallback& callback) {
- DCHECK(frame_data_.is_null());
- change_id_ = change_id;
- window_id_ = window_id;
- window_connect_type_ = window_connect_type;
- frame_ = std::move(frame);
- frame_data_ = std::move(frame_data);
- navigation_start_time_ =
- base::TimeTicks::FromInternalValue(navigation_start_time_ticks);
- on_connect_callback_ = callback;
- CHECK(frame_data_.size() > 0u);
- frame_client_request_ = frame_client_binding_.Unbind();
- UpdateIsReady();
-}
-
-void DocumentResourceWaiter::OnFrameAdded(
- uint32_t change_id,
- web_view::mojom::FrameDataPtr frame_data) {
- // It is assumed we receive OnConnect() (which unbinds) before anything else.
- NOTREACHED();
-}
-
-void DocumentResourceWaiter::OnFrameRemoved(uint32_t change_id,
- uint32_t frame_id) {
- // It is assumed we receive OnConnect() (which unbinds) before anything else.
- NOTREACHED();
-}
-
-void DocumentResourceWaiter::OnFrameClientPropertyChanged(
- uint32_t frame_id,
- const mojo::String& name,
- mojo::Array<uint8_t> new_value) {
- // It is assumed we receive OnConnect() (which unbinds) before anything else.
- NOTREACHED();
-}
-
-void DocumentResourceWaiter::OnPostMessageEvent(
- uint32_t source_frame_id,
- uint32_t target_frame_id,
- web_view::mojom::HTMLMessageEventPtr event) {
- // It is assumed we receive OnConnect() (which unbinds) before anything else.
- NOTREACHED();
-}
-
-void DocumentResourceWaiter::OnWillNavigate(
- const mojo::String& origin,
- const OnWillNavigateCallback& callback) {
- // It is assumed we receive OnConnect() (which unbinds) before anything else.
- NOTREACHED();
-}
-
-void DocumentResourceWaiter::OnFrameLoadingStateChanged(uint32_t frame_id,
- bool loading) {
- // It is assumed we receive OnConnect() (which unbinds) before anything else.
- NOTREACHED();
-}
-
-void DocumentResourceWaiter::OnDispatchFrameLoadEvent(uint32_t frame_id) {
- // It is assumed we receive OnConnect() (which unbinds) before anything else.
- NOTREACHED();
-}
-
-void DocumentResourceWaiter::Find(int32_t request_id,
- const mojo::String& search_text,
- web_view::mojom::FindOptionsPtr options,
- bool wrap_within_frame,
- const FindCallback& callback) {
- // It is assumed we receive OnConnect() (which unbinds) before anything else.
- NOTREACHED();
-}
-
-void DocumentResourceWaiter::StopFinding(bool clear_selection) {
- // It is assumed we receive OnConnect() (which unbinds) before anything else.
- NOTREACHED();
-}
-
-void DocumentResourceWaiter::HighlightFindResults(
- int32_t request_id,
- const mojo::String& search_test,
- web_view::mojom::FindOptionsPtr options,
- bool reset) {
- // It is assumed we receive OnConnect() (which unbinds) before anything else.
- NOTREACHED();
-}
-
-void DocumentResourceWaiter::StopHighlightingFindResults() {
- // It is assumed we receive OnConnect() (which unbinds) before anything else.
- NOTREACHED();
-}
-
-void DocumentResourceWaiter::OnWindowViewportMetricsChanged(
- mus::Window* window,
- const mus::mojom::ViewportMetrics& old_metrics,
- const mus::mojom::ViewportMetrics& new_metrics) {
- UpdateIsReady();
-}
-
-void DocumentResourceWaiter::OnWindowDestroyed(mus::Window* window) {
- root_->RemoveObserver(this);
- root_ = nullptr;
-}
-
-void DocumentResourceWaiter::OnHTMLFrameTreeManagerChangeIdAdvanced() {
- UpdateIsReady();
-}
-
-void DocumentResourceWaiter::OnHTMLFrameTreeManagerDestroyed() {
- document_->Destroy(); // This destroys us.
-}
-
-} // namespace html_viewer
« no previous file with comments | « components/html_viewer/document_resource_waiter.h ('k') | components/html_viewer/generate_blink_resource_map.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698