Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(198)

Unified Diff: content/browser/media/session/media_session_service_impl.cc

Issue 2736493002: Fix two notification update issues on page navigation (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/media/session/media_session_service_impl.cc
diff --git a/content/browser/media/session/media_session_service_impl.cc b/content/browser/media/session/media_session_service_impl.cc
index cf452e2204df634b8f8e29dc8b873006c40c9484..524399dfcf10bce162b0855ee13d44f09f109be0 100644
--- a/content/browser/media/session/media_session_service_impl.cc
+++ b/content/browser/media/session/media_session_service_impl.cc
@@ -43,6 +43,14 @@ RenderFrameHost* MediaSessionServiceImpl::GetRenderFrameHost() {
render_frame_routing_id_);
}
+void MediaSessionServiceImpl::DidFinishNavigation() {
+ // At this point the BrowsingContext of the frame has changed, so the members
+ // need to be reset, and notify MediaSessionImpl.
+ SetPlaybackState(blink::mojom::MediaSessionPlaybackState::NONE);
+ SetMetadata(base::nullopt);
+ ClearActions();
+}
+
void MediaSessionServiceImpl::SetClient(
blink::mojom::MediaSessionClientPtr client) {
client_ = std::move(client);
@@ -92,6 +100,13 @@ void MediaSessionServiceImpl::DisableAction(
session->OnMediaSessionActionsChanged(this);
}
+void MediaSessionServiceImpl::ClearActions() {
+ actions_.clear();
+ MediaSessionImpl* session = GetMediaSession();
+ if (session)
+ session->OnMediaSessionActionsChanged(this);
+}
+
MediaSessionImpl* MediaSessionServiceImpl::GetMediaSession() {
RenderFrameHost* rfh = GetRenderFrameHost();
if (!rfh)

Powered by Google App Engine
This is Rietveld 408576698