123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- // 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.
- #ifndef WEBLAYER_RENDERER_WEBLAYER_RENDER_FRAME_OBSERVER_H_
- #define WEBLAYER_RENDERER_WEBLAYER_RENDER_FRAME_OBSERVER_H_
- #include "components/safe_browsing/buildflags.h"
- #include "content/public/renderer/render_frame_observer.h"
- #include "third_party/blink/public/common/associated_interfaces/associated_interface_registry.h"
- namespace safe_browsing {
- class PhishingClassifierDelegate;
- }
- namespace translate {
- class TranslateAgent;
- }
- namespace weblayer {
- // This class holds the WebLayer-specific parts of RenderFrame, and has the
- // same lifetime. It is analogous to //chrome's ChromeRenderFrameObserver.
- class WebLayerRenderFrameObserver : public content::RenderFrameObserver {
- public:
- explicit WebLayerRenderFrameObserver(content::RenderFrame* render_frame);
- WebLayerRenderFrameObserver(const WebLayerRenderFrameObserver&) = delete;
- WebLayerRenderFrameObserver& operator=(const WebLayerRenderFrameObserver&) =
- delete;
- blink::AssociatedInterfaceRegistry* associated_interfaces() {
- return &associated_interfaces_;
- }
- private:
- enum TextCaptureType { PRELIMINARY_CAPTURE, FINAL_CAPTURE };
- ~WebLayerRenderFrameObserver() override;
- // RenderFrameObserver:
- bool OnAssociatedInterfaceRequestForFrame(
- const std::string& interface_name,
- mojo::ScopedInterfaceEndpointHandle* handle) override;
- void ReadyToCommitNavigation(
- blink::WebDocumentLoader* document_loader) override;
- void DidMeaningfulLayout(blink::WebMeaningfulLayout layout_type) override;
- void OnDestruct() override;
- void CapturePageText(TextCaptureType capture_type);
- // Initializes a |phishing_classifier_delegate_|.
- void SetClientSidePhishingDetection();
- blink::AssociatedInterfaceRegistry associated_interfaces_;
- // Has the same lifetime as this object.
- translate::TranslateAgent* translate_agent_;
- #if BUILDFLAG(SAFE_BROWSING_AVAILABLE)
- safe_browsing::PhishingClassifierDelegate* phishing_classifier_ = nullptr;
- #endif
- };
- } // namespace weblayer
- #endif // WEBLAYER_RENDERER_WEBLAYER_RENDER_FRAME_OBSERVER_H_
|