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

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

Issue 2570623003: [Chromecast] Turn CastContentWindow into an abstract interface. (Closed)
Patch Set: Set user data outside of contructor Created 4 years 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
57 CastWebContentsActivity::~CastWebContentsActivity() {
58 }
59
60 base::android::ScopedJavaLocalRef<jobject>
61 CastWebContentsActivity::GetContentVideoViewEmbedder() {
62 return base::android::ScopedJavaLocalRef<jobject>(
63 content_video_view_embedder_);
64 }
65
66 void CastWebContentsActivity::SetContentVideoViewEmbedder(
67 const base::android::JavaRef<jobject>& content_video_view_embedder) {
68 content_video_view_embedder_ =
69 base::android::ScopedJavaGlobalRef<jobject>(content_video_view_embedder);
70 }
71
72 } // namespace shell
73 } // namespace chromecast
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698