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

Side by Side Diff: chrome/browser/android/compositor/scene_layer/reader_mode_scene_layer.cc

Issue 1141283003: Upstream oodles of Chrome for Android code into Chromium. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: final patch? Created 5 years, 7 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 2015 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 "chrome/browser/android/compositor/scene_layer/reader_mode_scene_layer. h"
6
7 #include "base/android/jni_android.h"
8 #include "chrome/browser/android/compositor/layer/reader_mode_layer.h"
9 #include "content/public/browser/android/content_view_core.h"
10 #include "jni/ReaderModeSceneLayer_jni.h"
11 #include "ui/android/resources/resource_manager_impl.h"
12
13 namespace chrome {
14 namespace android {
15
16 ReaderModeSceneLayer::ReaderModeSceneLayer(JNIEnv* env, jobject jobj)
17 : SceneLayer(env, jobj) {
18 }
19
20 ReaderModeSceneLayer::~ReaderModeSceneLayer() {
21 }
22
23 void ReaderModeSceneLayer::UpdateReaderModeLayer(
24 JNIEnv* env,
25 jobject object,
26 jint panel_background_resource_id,
27 jint panel_text_resource_id,
28 jobject jreader_mode_content_view_core,
29 jfloat panel_y,
30 jfloat panel_width,
31 jfloat panel_margin_top,
32 jfloat panel_height,
33 jfloat distilled_y,
34 jfloat distilled_height,
35 jfloat x,
36 jfloat panel_text_opacity,
37 jint header_background_color,
38 jobject jresource_manager) {
39 ui::ResourceManager* resource_manager =
40 ui::ResourceManagerImpl::FromJavaObject(jresource_manager);
41 // Lazily construct the reader mode layer, as the feature is only
42 // conditionally enabled.
43 if (!reader_mode_layer_.get()) {
44 if (!resource_manager)
45 return;
46 reader_mode_layer_ = ReaderModeLayer::Create(resource_manager);
47 layer_->AddChild(reader_mode_layer_->layer());
48 }
49
50 // NOTE(pedrosimonetti): The ContentViewCore might not exist at this time if
51 // the Reader Mode has not been requested yet. In this case,
52 // we'll pass NULL to Reader Mode's Layer Tree.
53 content::ContentViewCore* content_view_core =
54 !jreader_mode_content_view_core ? NULL
55 : content::ContentViewCore::GetNativeContentViewCore(
56 env, jreader_mode_content_view_core);
57
58 reader_mode_layer_->SetProperties(
59 panel_background_resource_id, panel_text_resource_id,
60 content_view_core,
61 panel_y, panel_width, panel_margin_top, panel_height,
62 distilled_y, distilled_height,
63 x,
64 panel_text_opacity, header_background_color);
65 }
66
67 static jlong Init(JNIEnv* env, jobject jobj) {
68 // This will automatically bind to the Java object and pass ownership there.
69 ReaderModeSceneLayer* tree_provider =
70 new ReaderModeSceneLayer(env, jobj);
71 return reinterpret_cast<intptr_t>(tree_provider);
72 }
73
74 bool RegisterReaderModeSceneLayer(JNIEnv* env) {
75 return RegisterNativesImpl(env);
76 }
77
78 } // namespace android
79 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698