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

Issue 2453623003: Decouple MediaSession messages from WebContents (full patch) (Closed)

Created:
4 years, 1 month ago by Zhiqiang Zhang (Slow)
Modified:
4 years, 1 month ago
Reviewers:
halliwell, whywhat, jam, boliu
CC:
agrieve+watch_chromium.org, alokp+watch_chromium.org, chromium-reviews, creis+watch_chromium.org, darin-cc_chromium.org, feature-media-reviews_chromium.org, halliwell+watch_chromium.org, jam, lcwu+watch_chromium.org, nasko+codewatch_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Decouple MediaSession messages from WebContents This CL separates MediaSession messages from WebContents. It includes the following changes: * Abstract MediaSession interface and put it into content/public/browser. * Move WebContents.[Resume|Suspend|Stop]MediaSession to the MediaSession interface. * Add MediaSessionObserver to content/public/browser. * Move WebContentsObserver.MediaSession* to the MediaSessionObserver interface. * Add MediaSession content/public API in Java. * Move MediaSession* in the Java WebContent API to MediaSession. * Let clients use the new MediaSession content API. The overall structral change is described in: https://docs.google.com/a/chromium.org/document/d/1PfiCtOidmNrwsXcnpN7tCa_IkeHb5SJ73d5nwzxZYV8/edit?usp=sharing BUG=658678 Committed: https://crrev.com/1adf3cb5c81b84968f4e541edc97f6cd6f2a96b4 Cr-Commit-Position: refs/heads/master@{#428976}

Patch Set 1 #

Total comments: 16

Patch Set 2 : addressed all existing comments #

Total comments: 1

Patch Set 3 : using MediaSessionImpl::fromWebContents #

Total comments: 28

Patch Set 4 : for try #

Patch Set 5 : for try #

Patch Set 6 : [option B] Let users add/remove observers #

Patch Set 7 : [option A] let observers add/remove themselves on construction/destruction #

Patch Set 8 : let WebContentsImpl.java own MediaSessionImpl, user helper struct to get MediaSession Java object #

Patch Set 9 : updating comments #

Total comments: 2

Patch Set 10 : fix getting weak ref #

Patch Set 11 : nit #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1355 lines, -3324 lines) Patch
M chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaSessionTabHelper.java View 1 2 3 4 5 6 7 8 9 9 chunks +40 lines, -20 lines 0 comments Download
M chrome/android/javatests/src/org/chromium/chrome/browser/media/ui/NotificationTitleUpdatedTest.java View 3 chunks +7 lines, -5 lines 0 comments Download
M chromecast/browser/cast_media_blocker.h View 1 2 3 4 5 6 2 chunks +9 lines, -18 lines 0 comments Download
M chromecast/browser/cast_media_blocker.cc View 1 2 3 4 5 6 7 chunks +14 lines, -22 lines 0 comments Download
M chromecast/browser/test/cast_media_blocker_test.cc View 1 2 5 6 12 chunks +64 lines, -55 lines 0 comments Download
M chromecast/browser/test/chromecast_browser_test_helper_default.cc View 1 2 3 2 chunks +3 lines, -1 line 0 comments Download
M content/browser/BUILD.gn View 1 2 3 4 5 6 7 8 9 1 chunk +4 lines, -2 lines 0 comments Download
M content/browser/android/browser_jni_registrar.cc View 1 2 2 chunks +2 lines, -0 lines 0 comments Download
M content/browser/android/web_contents_observer_proxy.h View 1 chunk +0 lines, -4 lines 0 comments Download
M content/browser/android/web_contents_observer_proxy.cc View 1 chunk +0 lines, -24 lines 0 comments Download
M content/browser/media/session/audio_focus_delegate.h View 1 chunk +3 lines, -2 lines 0 comments Download
M content/browser/media/session/audio_focus_delegate_android.h View 2 chunks +2 lines, -2 lines 0 comments Download
M content/browser/media/session/audio_focus_delegate_android.cc View 3 chunks +3 lines, -2 lines 0 comments Download
M content/browser/media/session/audio_focus_delegate_android_browsertest.cc View 2 chunks +5 lines, -3 lines 0 comments Download
M content/browser/media/session/audio_focus_delegate_default.cc View 3 chunks +4 lines, -4 lines 0 comments Download
M content/browser/media/session/audio_focus_delegate_default_browsertest.cc View 1 3 chunks +6 lines, -5 lines 0 comments Download
M content/browser/media/session/audio_focus_manager.h View 3 chunks +5 lines, -5 lines 0 comments Download
M content/browser/media/session/audio_focus_manager.cc View 7 chunks +13 lines, -10 lines 0 comments Download
M content/browser/media/session/audio_focus_manager_unittest.cc View 22 chunks +60 lines, -37 lines 0 comments Download
D content/browser/media/session/media_session.h View 1 chunk +0 lines, -245 lines 0 comments Download
D content/browser/media/session/media_session.cc View 1 chunk +0 lines, -447 lines 0 comments Download
A content/browser/media/session/media_session_android.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +62 lines, -0 lines 0 comments Download
A content/browser/media/session/media_session_android.cc View 1 2 3 4 5 6 7 8 9 1 chunk +146 lines, -0 lines 0 comments Download
D content/browser/media/session/media_session_browsertest.cc View 1 chunk +0 lines, -1356 lines 0 comments Download
M content/browser/media/session/media_session_controller.h View 2 chunks +2 lines, -2 lines 0 comments Download
M content/browser/media/session/media_session_controller.cc View 2 chunks +3 lines, -2 lines 0 comments Download
M content/browser/media/session/media_session_controller_unittest.cc View 2 chunks +4 lines, -2 lines 0 comments Download
M content/browser/media/session/media_session_controllers_manager.cc View 1 chunk +0 lines, -1 line 0 comments Download
A + content/browser/media/session/media_session_impl.h View 1 2 3 4 5 6 7 9 chunks +66 lines, -48 lines 0 comments Download
A + content/browser/media/session/media_session_impl.cc View 1 2 3 4 15 chunks +85 lines, -60 lines 0 comments Download
A + content/browser/media/session/media_session_impl_browsertest.cc View 1 2 3 4 5 6 45 chunks +288 lines, -398 lines 0 comments Download
A + content/browser/media/session/media_session_impl_visibility_browsertest.cc View 8 chunks +55 lines, -58 lines 0 comments Download
M content/browser/media/session/media_session_service_impl.cc View 2 chunks +2 lines, -2 lines 0 comments Download
D content/browser/media/session/media_session_visibility_browsertest.cc View 1 chunk +0 lines, -310 lines 0 comments Download
M content/browser/media/session/pepper_playback_observer.cc View 3 chunks +5 lines, -5 lines 0 comments Download
M content/browser/web_contents/web_contents_android.h View 1 2 3 4 5 6 7 2 chunks +3 lines, -7 lines 0 comments Download
M content/browser/web_contents/web_contents_android.cc View 1 2 3 4 5 6 7 2 chunks +7 lines, -15 lines 0 comments Download
M content/browser/web_contents/web_contents_impl.h View 1 2 chunks +0 lines, -10 lines 0 comments Download
M content/browser/web_contents/web_contents_impl.cc View 1 2 chunks +1 line, -28 lines 0 comments Download
M content/public/android/BUILD.gn View 1 2 3 chunks +4 lines, -0 lines 0 comments Download
A content/public/android/java/src/org/chromium/content/browser/MediaSessionImpl.java View 1 2 3 4 5 6 7 8 1 chunk +106 lines, -0 lines 0 comments Download
M content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java View 1 2 3 4 5 6 7 6 chunks +10 lines, -25 lines 0 comments Download
M content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsObserverProxy.java View 1 2 3 3 chunks +0 lines, -26 lines 0 comments Download
A content/public/android/java/src/org/chromium/content_public/browser/MediaSession.java View 1 2 3 4 5 6 7 1 chunk +47 lines, -0 lines 0 comments Download
A content/public/android/java/src/org/chromium/content_public/browser/MediaSessionObserver.java View 1 2 3 4 5 6 7 1 chunk +66 lines, -0 lines 0 comments Download
M content/public/android/java/src/org/chromium/content_public/browser/WebContents.java View 1 2 3 3 chunks +0 lines, -22 lines 0 comments Download
M content/public/android/java/src/org/chromium/content_public/browser/WebContentsObserver.java View 2 chunks +0 lines, -15 lines 0 comments Download
M content/public/browser/BUILD.gn View 1 chunk +3 lines, -0 lines 0 comments Download
A content/public/browser/media_session.h View 4 5 6 1 chunk +55 lines, -0 lines 0 comments Download
A content/public/browser/media_session_observer.h View 1 2 3 4 5 6 1 chunk +58 lines, -0 lines 0 comments Download
A content/public/browser/media_session_observer.cc View 1 2 3 4 5 6 1 chunk +31 lines, -0 lines 0 comments Download
M content/public/browser/web_contents.h View 1 1 chunk +0 lines, -7 lines 0 comments Download
M content/public/browser/web_contents_observer.h View 2 chunks +0 lines, -10 lines 0 comments Download
M content/test/BUILD.gn View 1 1 chunk +2 lines, -2 lines 0 comments Download

Messages

Total messages: 62 (42 generated)
Zhiqiang Zhang (Slow)
4 years, 1 month ago (2016-10-26 12:39:39 UTC) #2
Zhiqiang Zhang (Slow)
Some annotations to help you review. https://codereview.chromium.org/2453623003/diff/1/chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaSessionTabHelper.java File chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaSessionTabHelper.java (right): https://codereview.chromium.org/2453623003/diff/1/chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaSessionTabHelper.java#newcode1 chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaSessionTabHelper.java:1: // Copyright 2015 ...
4 years, 1 month ago (2016-10-26 12:50:37 UTC) #4
jam
lgtm with small nits I read through the whole change, but it'd be good to ...
4 years, 1 month ago (2016-10-26 17:30:59 UTC) #5
jam
https://codereview.chromium.org/2453623003/diff/1/content/public/browser/OWNERS File content/public/browser/OWNERS (right): https://codereview.chromium.org/2453623003/diff/1/content/public/browser/OWNERS#newcode6 content/public/browser/OWNERS:6: # MediaSession specific changes also, please remove this part. ...
4 years, 1 month ago (2016-10-26 17:45:45 UTC) #6
Zhiqiang Zhang (Slow)
Great thanks! I'll find reviewers for the split CLs and come back to you for ...
4 years, 1 month ago (2016-10-26 18:44:25 UTC) #7
Zhiqiang Zhang (Slow)
PTAL. Sorry I have to bring all you guys into this one combined CL and ...
4 years, 1 month ago (2016-10-28 22:40:07 UTC) #9
halliwell
chromecast/ lgtm % nit https://codereview.chromium.org/2453623003/diff/20001/chromecast/browser/cast_media_blocker.h File chromecast/browser/cast_media_blocker.h (right): https://codereview.chromium.org/2453623003/diff/20001/chromecast/browser/cast_media_blocker.h#newcode24 chromecast/browser/cast_media_blocker.h:24: content::WebContents* web_contents); remove explicit
4 years, 1 month ago (2016-10-28 23:54:45 UTC) #14
boliu
https://codereview.chromium.org/2453623003/diff/40001/content/browser/media/session/media_session_android.h File content/browser/media/session/media_session_android.h (right): https://codereview.chromium.org/2453623003/diff/40001/content/browser/media/session/media_session_android.h#newcode19 content/browser/media/session/media_session_android.h:19: bool RegisterMediaSessionNatives(JNIEnv* env); remove https://codereview.chromium.org/2453623003/diff/40001/content/browser/media/session/media_session_android.h#newcode32 content/browser/media/session/media_session_android.h:32: base::android::ScopedJavaLocalRef<jobject> GetJavaObject(); Leaking ...
4 years, 1 month ago (2016-10-29 01:11:28 UTC) #19
whywhat
lgtm
4 years, 1 month ago (2016-10-29 05:21:57 UTC) #20
Zhiqiang Zhang (Slow)
PTAL for boliu@ https://codereview.chromium.org/2453623003/diff/40001/content/browser/media/session/media_session_android.h File content/browser/media/session/media_session_android.h (right): https://codereview.chromium.org/2453623003/diff/40001/content/browser/media/session/media_session_android.h#newcode19 content/browser/media/session/media_session_android.h:19: bool RegisterMediaSessionNatives(JNIEnv* env); On 2016/10/29 01:11:28, ...
4 years, 1 month ago (2016-10-31 11:57:35 UTC) #41
boliu
https://codereview.chromium.org/2453623003/diff/40001/content/browser/media/session/media_session_android.h File content/browser/media/session/media_session_android.h (right): https://codereview.chromium.org/2453623003/diff/40001/content/browser/media/session/media_session_android.h#newcode32 content/browser/media/session/media_session_android.h:32: base::android::ScopedJavaLocalRef<jobject> GetJavaObject(); On 2016/10/31 11:57:34, Zhiqiang Zhang wrote: > ...
4 years, 1 month ago (2016-10-31 18:58:56 UTC) #43
Zhiqiang Zhang (Slow)
https://codereview.chromium.org/2453623003/diff/40001/content/browser/media/session/media_session_android.h File content/browser/media/session/media_session_android.h (right): https://codereview.chromium.org/2453623003/diff/40001/content/browser/media/session/media_session_android.h#newcode48 content/browser/media/session/media_session_android.h:48: base::android::ScopedJavaGlobalRef<jobject> j_media_session_; On 2016/10/31 18:58:55, boliu wrote: > On ...
4 years, 1 month ago (2016-10-31 19:50:03 UTC) #44
boliu
https://codereview.chromium.org/2453623003/diff/40001/content/browser/media/session/media_session_android.h File content/browser/media/session/media_session_android.h (right): https://codereview.chromium.org/2453623003/diff/40001/content/browser/media/session/media_session_android.h#newcode48 content/browser/media/session/media_session_android.h:48: base::android::ScopedJavaGlobalRef<jobject> j_media_session_; On 2016/10/31 19:50:03, Zhiqiang Zhang wrote: > ...
4 years, 1 month ago (2016-10-31 20:13:19 UTC) #45
Zhiqiang Zhang (Slow)
PTAL Hope we are getting close to the final solution https://codereview.chromium.org/2453623003/diff/40001/content/browser/media/session/media_session_android.h File content/browser/media/session/media_session_android.h (right): https://codereview.chromium.org/2453623003/diff/40001/content/browser/media/session/media_session_android.h#newcode32 ...
4 years, 1 month ago (2016-10-31 22:22:26 UTC) #46
boliu
https://codereview.chromium.org/2453623003/diff/40001/content/browser/media/session/media_session_android.h File content/browser/media/session/media_session_android.h (right): https://codereview.chromium.org/2453623003/diff/40001/content/browser/media/session/media_session_android.h#newcode32 content/browser/media/session/media_session_android.h:32: base::android::ScopedJavaLocalRef<jobject> GetJavaObject(); On 2016/10/31 22:22:26, Zhiqiang Zhang wrote: > ...
4 years, 1 month ago (2016-10-31 22:44:03 UTC) #49
Zhiqiang Zhang (Slow)
PTAL for boliu@ Fixed the issue when getting weak ref. https://codereview.chromium.org/2453623003/diff/40001/content/browser/media/session/media_session_android.h File content/browser/media/session/media_session_android.h (right): https://codereview.chromium.org/2453623003/diff/40001/content/browser/media/session/media_session_android.h#newcode32 ...
4 years, 1 month ago (2016-10-31 23:30:29 UTC) #50
boliu
lgtm
4 years, 1 month ago (2016-11-01 03:29:27 UTC) #55
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2453623003/220001
4 years, 1 month ago (2016-11-01 10:37:49 UTC) #58
commit-bot: I haz the power
Committed patchset #11 (id:220001)
4 years, 1 month ago (2016-11-01 11:27:17 UTC) #60
commit-bot: I haz the power
4 years, 1 month ago (2016-11-01 11:29:39 UTC) #62
Message was sent while issue was closed.
Patchset 11 (id:??) landed as
https://crrev.com/1adf3cb5c81b84968f4e541edc97f6cd6f2a96b4
Cr-Commit-Position: refs/heads/master@{#428976}

Powered by Google App Engine
This is Rietveld 408576698