12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- // 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_NAMED_MESSAGE_PORT_CONNECTOR_CAST_H_
- #define CHROMECAST_BROWSER_NAMED_MESSAGE_PORT_CONNECTOR_CAST_H_
- #include "chromecast/browser/cast_web_contents.h"
- #include "chromecast/browser/cast_web_contents_observer.h"
- #include "components/cast/named_message_port_connector/named_message_port_connector.h"
- namespace chromecast {
- // Injects and connects to NamedMessagePortConnector services into documents
- // hosted by |cast_web_contents|.
- class NamedMessagePortConnectorCast
- : public cast_api_bindings::NamedMessagePortConnector,
- public CastWebContentsObserver {
- public:
- // |cast_web_contents|: The CastWebContents which will receive port connection
- // services. Must outlive |this|.
- explicit NamedMessagePortConnectorCast(
- chromecast::CastWebContents* cast_web_contents);
- ~NamedMessagePortConnectorCast() override;
- NamedMessagePortConnectorCast(const NamedMessagePortConnectorCast&) = delete;
- void operator=(const NamedMessagePortConnectorCast&) = delete;
- private:
- // Sends a connection message to |cast_web_contents_|.
- // Should be invoked when |cast_web_contents| has finished loading a page,
- // and its main frame finished loading with no further pending navigations.
- void OnPageLoaded();
- // CastWebContentsObserver implementation.
- void PageStateChanged(PageState page_state) override;
- chromecast::CastWebContents* cast_web_contents_;
- };
- } // namespace chromecast
- #endif // CHROMECAST_BROWSER_NAMED_MESSAGE_PORT_CONNECTOR_CAST_H_
|