aw_safe_browsing_error_page_controller_delegate_impl.cc 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // Copyright 2019 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "android_webview/renderer/aw_safe_browsing_error_page_controller_delegate_impl.h"
  5. #include "content/public/renderer/render_frame.h"
  6. namespace android_webview {
  7. AwSafeBrowsingErrorPageControllerDelegateImpl::
  8. AwSafeBrowsingErrorPageControllerDelegateImpl(
  9. content::RenderFrame* render_frame)
  10. : content::RenderFrameObserver(render_frame),
  11. content::RenderFrameObserverTracker<
  12. AwSafeBrowsingErrorPageControllerDelegateImpl>(render_frame) {}
  13. AwSafeBrowsingErrorPageControllerDelegateImpl::
  14. ~AwSafeBrowsingErrorPageControllerDelegateImpl() = default;
  15. void AwSafeBrowsingErrorPageControllerDelegateImpl::PrepareForErrorPage() {
  16. pending_error_ = true;
  17. }
  18. void AwSafeBrowsingErrorPageControllerDelegateImpl::OnDestruct() {
  19. delete this;
  20. }
  21. void AwSafeBrowsingErrorPageControllerDelegateImpl::DidCommitProvisionalLoad(
  22. ui::PageTransition transition) {
  23. committed_error_ = pending_error_;
  24. pending_error_ = false;
  25. }
  26. void AwSafeBrowsingErrorPageControllerDelegateImpl::DidFinishLoad() {
  27. if (committed_error_) {
  28. security_interstitials::SecurityInterstitialPageController::Install(
  29. render_frame());
  30. }
  31. }
  32. } // namespace android_webview