123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- // Copyright 2021 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 CHROMECAST_BROWSER_CAST_WEB_CONTENTS_OBSERVER_H_
- #define CHROMECAST_BROWSER_CAST_WEB_CONTENTS_OBSERVER_H_
- #include <string>
- #include "chromecast/browser/mojom/cast_web_contents.mojom.h"
- #include "chromecast/browser/web_types.h"
- #include "mojo/public/cpp/bindings/pending_associated_remote.h"
- #include "mojo/public/cpp/bindings/pending_remote.h"
- #include "mojo/public/cpp/bindings/receiver.h"
- #include "ui/gfx/geometry/rect.h"
- #include "url/gurl.h"
- namespace chromecast {
- class CastWebContents;
- // Default implementation of mojom::CastWebContentsObserver.
- class CastWebContentsObserver : public mojom::CastWebContentsObserver {
- public:
- CastWebContentsObserver();
- // Adds |this| to the CastWebContents observer list. Observe(nullptr) will
- // remove |this| from the observer list of the current CastWebContents being
- // observed.
- void Observe(mojom::CastWebContents* cast_web_contents);
- // =========================================================================
- // Observer Methods
- // =========================================================================
- // Advertises page state for the CastWebContents.
- void PageStateChanged(PageState page_state) override {}
- // Called when the page has stopped. e.g.: A 404 occurred when loading the
- // page or if the render process for the main frame crashes. |error_code|
- // will return a net::Error describing the failure, or net::OK if the page
- // closed intentionally.
- //
- // After this method, the page state will be one of the following:
- // CLOSED: Page was closed as expected and the WebContents exists. The page
- // should generally not be reloaded, since the page closure was
- // triggered intentionally.
- // ERROR: Page is in an error state. It should be reloaded or deleted.
- // DESTROYED: Page was closed due to deletion of WebContents. The
- // CastWebContents instance is no longer usable and should be deleted.
- void PageStopped(PageState page_state, int error_code) override {}
- // A new RenderFrame was created for the WebContents. |settings_manager| is
- // provided by the frame.
- void RenderFrameCreated(int render_process_id, int render_frame_id) override {
- }
- // A navigation has finished in the WebContents' main frame.
- void MainFrameFinishedNavigation() override {}
- // These methods are calls forwarded from WebContentsObserver.
- void UpdateTitle(const std::string& title) override {}
- void UpdateFaviconURL(const GURL& url) override {}
- void DidFirstVisuallyNonEmptyPaint() override {}
- // Notifies that a resource for the main frame failed to load.
- void ResourceLoadFailed() override {}
- // Propagates the process information via observer, in particular to
- // the underlying OnRendererProcessStarted() method.
- void OnRenderProcessReady(int pid) override {}
- // Notify media playback state changes for the underlying WebContents.
- void MediaPlaybackChanged(bool media_playing) override {}
- void InnerContentsCreated(mojo::PendingRemote<mojom::CastWebContents>
- pending_inner_contents) override {}
- protected:
- ~CastWebContentsObserver() override;
- mojo::Receiver<mojom::CastWebContentsObserver> receiver_{this};
- };
- } // namespace chromecast
- #endif // CHROMECAST_BROWSER_CAST_WEB_CONTENTS_OBSERVER_H_
|