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

Side by Side Diff: chromecast/browser/android/cast_web_contents_activity.cc

Issue 2570623003: [Chromecast] Turn CastContentWindow into an abstract interface. (Closed)
Patch Set: Fix browser test Created 3 years, 11 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 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
5 #include "chromecast/browser/android/cast_web_contents_activity.h"
6
7 #include "content/public/browser/web_contents.h"
8 #include "jni/CastWebContentsActivity_jni.h"
9
10 namespace chromecast {
11 namespace shell {
12
13 namespace {
14 const void* kCastWebContentsActivityData;
15 const void* kCastWebContentsActivityKey =
16 static_cast<const void*>(&kCastWebContentsActivityData);
17 } // namespace
18
19 // static
20 void SetContentVideoViewEmbedder(
21 JNIEnv* env,
22 const base::android::JavaParamRef<jobject>& jcaller,
23 const base::android::JavaParamRef<jobject>& webContents,
24 const base::android::JavaParamRef<jobject>& embedder) {
25 content::WebContents* web_contents =
26 content::WebContents::FromJavaWebContents(webContents);
27 DCHECK(web_contents);
28 CastWebContentsActivity* activity =
29 CastWebContentsActivity::Get(web_contents);
30 activity->SetContentVideoViewEmbedder(embedder);
31 }
32
33 // static
34 bool CastWebContentsActivity::RegisterJni(JNIEnv* env) {
35 return RegisterNativesImpl(env);
36 }
37
38 // static
39 CastWebContentsActivity* CastWebContentsActivity::Get(
40 content::WebContents* web_contents) {
41 DCHECK(web_contents);
42 CastWebContentsActivity* instance = static_cast<CastWebContentsActivity*>(
43 web_contents->GetUserData(kCastWebContentsActivityKey));
44 if (!instance) {
45 instance = new CastWebContentsActivity(web_contents);
46 web_contents->SetUserData(kCastWebContentsActivityKey, instance);
47 }
48 return instance;
49 }
50
51 CastWebContentsActivity::CastWebContentsActivity(
52 content::WebContents* web_contents)
53 : content_video_view_embedder_(
54 base::android::ScopedJavaLocalRef<jobject>()) {}
55
56 CastWebContentsActivity::~CastWebContentsActivity() {}
57
58 base::android::ScopedJavaLocalRef<jobject>
59 CastWebContentsActivity::GetContentVideoViewEmbedder() {
60 return base::android::ScopedJavaLocalRef<jobject>(
61 content_video_view_embedder_);
62 }
63
64 void CastWebContentsActivity::SetContentVideoViewEmbedder(
65 const base::android::JavaRef<jobject>& content_video_view_embedder) {
66 content_video_view_embedder_ =
67 base::android::ScopedJavaGlobalRef<jobject>(content_video_view_embedder);
68 }
69
70 } // namespace shell
71 } // namespace chromecast
OLDNEW
« no previous file with comments | « chromecast/browser/android/cast_web_contents_activity.h ('k') | chromecast/browser/android/cast_window_android.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698