Commit 41d18672 authored by Scott Violet's avatar Scott Violet Committed by Commit Bot

weblayer: removes dead code in ErrorPageHelper

And simplifies the implementation a bit.

BUG=none
TEST=none

Change-Id: I1464e636597952f94f5a960eccbefec810fb686c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2343786Reviewed-by: default avatarClark DuVall <cduvall@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#796160}
parent f5899cff
...@@ -130,11 +130,8 @@ void ContentRendererClientImpl::PrepareErrorPage( ...@@ -130,11 +130,8 @@ void ContentRendererClientImpl::PrepareErrorPage(
const std::string& http_method, const std::string& http_method,
std::string* error_html) { std::string* error_html) {
auto* error_page_helper = ErrorPageHelper::GetForFrame(render_frame); auto* error_page_helper = ErrorPageHelper::GetForFrame(render_frame);
if (error_page_helper) { if (error_page_helper)
error_page_helper->PrepareErrorPage(error_page::Error::NetError( error_page_helper->PrepareErrorPage();
error.url(), error.reason(), error.resolve_error_info(),
error.has_copy_in_cache()));
}
#if defined(OS_ANDROID) #if defined(OS_ANDROID)
// This does nothing if |error_html| is non-null (which happens if the // This does nothing if |error_html| is non-null (which happens if the
......
...@@ -5,28 +5,14 @@ ...@@ -5,28 +5,14 @@
#include "weblayer/renderer/error_page_helper.h" #include "weblayer/renderer/error_page_helper.h"
#include "base/command_line.h" #include "base/command_line.h"
#include "components/error_page/common/error.h" #include "components/security_interstitials/content/renderer/security_interstitial_page_controller.h"
#include "content/public/common/content_switches.h"
#include "content/public/common/url_constants.h"
#include "content/public/renderer/render_frame.h" #include "content/public/renderer/render_frame.h"
#include "content/public/renderer/render_thread.h"
#include "third_party/blink/public/common/associated_interfaces/associated_interface_registry.h" #include "third_party/blink/public/common/associated_interfaces/associated_interface_registry.h"
#include "third_party/blink/public/web/web_local_frame.h" #include "third_party/blink/public/web/web_local_frame.h"
#include "weblayer/common/features.h" #include "weblayer/common/features.h"
namespace weblayer { namespace weblayer {
struct ErrorPageHelper::ErrorPageInfo {
explicit ErrorPageInfo(const error_page::Error& error) : error(error) {}
// Information about the failed page load.
error_page::Error error;
// True if a page has completed loading, at which point it can receive
// updates.
bool is_finished_loading = false;
};
// static // static
void ErrorPageHelper::Create(content::RenderFrame* render_frame) { void ErrorPageHelper::Create(content::RenderFrame* render_frame) {
if (render_frame->IsMainFrame()) if (render_frame->IsMainFrame())
...@@ -39,34 +25,31 @@ ErrorPageHelper* ErrorPageHelper::GetForFrame( ...@@ -39,34 +25,31 @@ ErrorPageHelper* ErrorPageHelper::GetForFrame(
return render_frame->IsMainFrame() ? Get(render_frame) : nullptr; return render_frame->IsMainFrame() ? Get(render_frame) : nullptr;
} }
void ErrorPageHelper::PrepareErrorPage(const error_page::Error& error) { void ErrorPageHelper::PrepareErrorPage() {
if (is_disabled_for_next_error_) { if (is_disabled_for_next_error_) {
is_disabled_for_next_error_ = false; is_disabled_for_next_error_ = false;
return; return;
} }
pending_error_page_info_ = std::make_unique<ErrorPageInfo>(error); is_preparing_for_error_page_ = true;
} }
void ErrorPageHelper::DidCommitProvisionalLoad(ui::PageTransition transition) { void ErrorPageHelper::DidCommitProvisionalLoad(ui::PageTransition transition) {
is_disabled_for_next_error_ = false; show_error_page_in_finish_load_ = is_preparing_for_error_page_;
committed_error_page_info_ = std::move(pending_error_page_info_); is_preparing_for_error_page_ = false;
} }
void ErrorPageHelper::DidFinishLoad() { void ErrorPageHelper::DidFinishLoad() {
if (!committed_error_page_info_) if (!show_error_page_in_finish_load_)
return; return;
security_interstitials::SecurityInterstitialPageController::Install( security_interstitials::SecurityInterstitialPageController::Install(
render_frame()); render_frame());
committed_error_page_info_->is_finished_loading = true;
} }
void ErrorPageHelper::OnDestruct() { void ErrorPageHelper::OnDestruct() {
delete this; delete this;
} }
void ErrorPageHelper::DisableErrorPageHelperForNextError() { void ErrorPageHelper::DisableErrorPageHelperForNextError() {
is_disabled_for_next_error_ = true; is_disabled_for_next_error_ = true;
} }
...@@ -81,12 +64,6 @@ ErrorPageHelper::ErrorPageHelper(content::RenderFrame* render_frame) ...@@ -81,12 +64,6 @@ ErrorPageHelper::ErrorPageHelper(content::RenderFrame* render_frame)
ErrorPageHelper::~ErrorPageHelper() = default; ErrorPageHelper::~ErrorPageHelper() = default;
void ErrorPageHelper::Reload() {
if (!committed_error_page_info_)
return;
render_frame()->GetWebFrame()->StartReload(blink::WebFrameLoadType::kReload);
}
void ErrorPageHelper::BindErrorPageHelper( void ErrorPageHelper::BindErrorPageHelper(
mojo::PendingAssociatedReceiver<mojom::ErrorPageHelper> receiver) { mojo::PendingAssociatedReceiver<mojom::ErrorPageHelper> receiver) {
// There is only a need for a single receiver to be bound at a time. // There is only a need for a single receiver to be bound at a time.
......
...@@ -5,17 +5,12 @@ ...@@ -5,17 +5,12 @@
#ifndef WEBLAYER_RENDERER_ERROR_PAGE_HELPER_H_ #ifndef WEBLAYER_RENDERER_ERROR_PAGE_HELPER_H_
#define WEBLAYER_RENDERER_ERROR_PAGE_HELPER_H_ #define WEBLAYER_RENDERER_ERROR_PAGE_HELPER_H_
#include "components/security_interstitials/content/renderer/security_interstitial_page_controller.h"
#include "content/public/renderer/render_frame_observer.h" #include "content/public/renderer/render_frame_observer.h"
#include "content/public/renderer/render_frame_observer_tracker.h" #include "content/public/renderer/render_frame_observer_tracker.h"
#include "mojo/public/cpp/bindings/associated_receiver.h" #include "mojo/public/cpp/bindings/associated_receiver.h"
#include "mojo/public/cpp/bindings/pending_associated_receiver.h" #include "mojo/public/cpp/bindings/pending_associated_receiver.h"
#include "weblayer/common/error_page_helper.mojom.h" #include "weblayer/common/error_page_helper.mojom.h"
namespace error_page {
class Error;
}
namespace weblayer { namespace weblayer {
// A class that allows error pages to handle user interaction by handling their // A class that allows error pages to handle user interaction by handling their
...@@ -40,7 +35,7 @@ class ErrorPageHelper ...@@ -40,7 +35,7 @@ class ErrorPageHelper
static ErrorPageHelper* GetForFrame(content::RenderFrame* render_frame); static ErrorPageHelper* GetForFrame(content::RenderFrame* render_frame);
// Called when the current navigation results in an error. // Called when the current navigation results in an error.
void PrepareErrorPage(const error_page::Error& error); void PrepareErrorPage();
// content::RenderFrameObserver: // content::RenderFrameObserver:
void DidCommitProvisionalLoad(ui::PageTransition transition) override; void DidCommitProvisionalLoad(ui::PageTransition transition) override;
...@@ -51,23 +46,19 @@ class ErrorPageHelper ...@@ -51,23 +46,19 @@ class ErrorPageHelper
void DisableErrorPageHelperForNextError() override; void DisableErrorPageHelperForNextError() override;
private: private:
struct ErrorPageInfo;
explicit ErrorPageHelper(content::RenderFrame* render_frame); explicit ErrorPageHelper(content::RenderFrame* render_frame);
~ErrorPageHelper() override; ~ErrorPageHelper() override;
void Reload();
void BindErrorPageHelper( void BindErrorPageHelper(
mojo::PendingAssociatedReceiver<mojom::ErrorPageHelper> receiver); mojo::PendingAssociatedReceiver<mojom::ErrorPageHelper> receiver);
// Information for the provisional / "pre-provisional" error page. Null when // Set to true in PrepareErrorPage().
// there's no page pending, or the pending page is not an error page. bool is_preparing_for_error_page_ = false;
std::unique_ptr<ErrorPageInfo> pending_error_page_info_;
// Information for the committed error page. Null when the committed page is // Set to the value of |is_preparing_for_error_page_| in
// not an error page. // DidCommitProvisionalLoad(). Used to determine if the security interstitial
std::unique_ptr<ErrorPageInfo> committed_error_page_info_; // should be shown when the load finishes.
bool show_error_page_in_finish_load_ = false;
// Set to true when the embedder injects its own error page. When the // Set to true when the embedder injects its own error page. When the
// embedder injects its own error page the support here is not needed and // embedder injects its own error page the support here is not needed and
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment