aw_render_thread_observer.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // Copyright (c) 2012 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. #ifndef ANDROID_WEBVIEW_RENDERER_AW_RENDER_THREAD_OBSERVER_H_
  5. #define ANDROID_WEBVIEW_RENDERER_AW_RENDER_THREAD_OBSERVER_H_
  6. #include "android_webview/common/mojom/renderer.mojom.h"
  7. #include "base/compiler_specific.h"
  8. #include "content/public/renderer/render_thread_observer.h"
  9. #include "mojo/public/cpp/bindings/associated_receiver.h"
  10. namespace android_webview {
  11. // A RenderThreadObserver implementation used for handling android_webview
  12. // specific render-process wide IPC messages.
  13. class AwRenderThreadObserver : public content::RenderThreadObserver,
  14. public mojom::Renderer {
  15. public:
  16. AwRenderThreadObserver();
  17. ~AwRenderThreadObserver() override;
  18. // content::RenderThreadObserver implementation.
  19. void RegisterMojoInterfaces(
  20. blink::AssociatedInterfaceRegistry* associated_interfaces) override;
  21. void UnregisterMojoInterfaces(
  22. blink::AssociatedInterfaceRegistry* associated_interfaces) override;
  23. private:
  24. // mojom::Renderer overrides:
  25. void ClearCache() override;
  26. void SetJsOnlineProperty(bool network_up) override;
  27. void OnRendererAssociatedRequest(
  28. mojo::PendingAssociatedReceiver<mojom::Renderer> receiver);
  29. mojo::AssociatedReceiver<mojom::Renderer> receiver_{this};
  30. };
  31. } // namespace android_webview
  32. #endif // ANDROID_WEBVIEW_RENDERER_AW_RENDER_THREAD_OBSERVER_H_