| // Copyright 2019 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 "android_webview/renderer/aw_safe_browsing_error_page_controller_delegate_impl.h" |
| |
| #include "content/public/renderer/render_frame.h" |
| |
| namespace android_webview { |
| |
| AwSafeBrowsingErrorPageControllerDelegateImpl:: |
| AwSafeBrowsingErrorPageControllerDelegateImpl( |
| content::RenderFrame* render_frame) |
| : content::RenderFrameObserver(render_frame), |
| content::RenderFrameObserverTracker< |
| AwSafeBrowsingErrorPageControllerDelegateImpl>(render_frame) {} |
| |
| AwSafeBrowsingErrorPageControllerDelegateImpl:: |
| ~AwSafeBrowsingErrorPageControllerDelegateImpl() = default; |
| |
| void AwSafeBrowsingErrorPageControllerDelegateImpl::PrepareForErrorPage() { |
| pending_error_ = true; |
| } |
| |
| void AwSafeBrowsingErrorPageControllerDelegateImpl::OnDestruct() { |
| delete this; |
| } |
| |
| void AwSafeBrowsingErrorPageControllerDelegateImpl::DidCommitProvisionalLoad( |
| ui::PageTransition transition) { |
| committed_error_ = pending_error_; |
| pending_error_ = false; |
| } |
| |
| void AwSafeBrowsingErrorPageControllerDelegateImpl::DidFinishLoad() { |
| if (committed_error_) { |
| security_interstitials::SecurityInterstitialPageController::Install( |
| render_frame()); |
| } |
| } |
| |
| } // namespace android_webview |