OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/android/compositor/compositor_view.h" | 5 #include "chrome/browser/android/compositor/compositor_view.h" |
6 | 6 |
7 #include <android/bitmap.h> | 7 #include <android/bitmap.h> |
8 #include <android/native_window_jni.h> | 8 #include <android/native_window_jni.h> |
9 | 9 |
10 #include <memory> | 10 #include <memory> |
(...skipping 25 matching lines...) Expand all Loading... |
36 #include "ui/android/resources/ui_resource_provider.h" | 36 #include "ui/android/resources/ui_resource_provider.h" |
37 #include "ui/android/window_android.h" | 37 #include "ui/android/window_android.h" |
38 #include "ui/gfx/android/java_bitmap.h" | 38 #include "ui/gfx/android/java_bitmap.h" |
39 | 39 |
40 namespace chrome { | 40 namespace chrome { |
41 namespace android { | 41 namespace android { |
42 | 42 |
43 jlong Init(JNIEnv* env, | 43 jlong Init(JNIEnv* env, |
44 const JavaParamRef<jobject>& obj, | 44 const JavaParamRef<jobject>& obj, |
45 jboolean low_mem_device, | 45 jboolean low_mem_device, |
46 jint empty_background_color, | |
47 jlong native_window_android, | 46 jlong native_window_android, |
48 const JavaParamRef<jobject>& jlayer_title_cache, | 47 const JavaParamRef<jobject>& jlayer_title_cache, |
49 const JavaParamRef<jobject>& jtab_content_manager) { | 48 const JavaParamRef<jobject>& jtab_content_manager) { |
50 CompositorView* view; | 49 CompositorView* view; |
51 ui::WindowAndroid* window_android = | 50 ui::WindowAndroid* window_android = |
52 reinterpret_cast<ui::WindowAndroid*>(native_window_android); | 51 reinterpret_cast<ui::WindowAndroid*>(native_window_android); |
53 LayerTitleCache* layer_title_cache = | 52 LayerTitleCache* layer_title_cache = |
54 LayerTitleCache::FromJavaObject(jlayer_title_cache); | 53 LayerTitleCache::FromJavaObject(jlayer_title_cache); |
55 TabContentManager* tab_content_manager = | 54 TabContentManager* tab_content_manager = |
56 TabContentManager::FromJavaObject(jtab_content_manager); | 55 TabContentManager::FromJavaObject(jtab_content_manager); |
57 | 56 |
58 DCHECK(tab_content_manager); | 57 DCHECK(tab_content_manager); |
59 | 58 |
60 // TODO(clholgat): Remove the compositor tabstrip flag. | 59 // TODO(clholgat): Remove the compositor tabstrip flag. |
61 view = new CompositorView(env, obj, empty_background_color, low_mem_device, | 60 view = new CompositorView(env, obj, low_mem_device, window_android, |
62 window_android, layer_title_cache, | |
63 tab_content_manager); | 61 tab_content_manager); |
64 | 62 |
65 ui::UIResourceProvider* ui_resource_provider = view->GetUIResourceProvider(); | 63 ui::UIResourceProvider* ui_resource_provider = view->GetUIResourceProvider(); |
66 // TODO(dtrainor): Pass the ResourceManager on the Java side to the tree | 64 // TODO(dtrainor): Pass the ResourceManager on the Java side to the tree |
67 // builders instead. | 65 // builders instead. |
68 if (layer_title_cache) | 66 if (layer_title_cache) |
69 layer_title_cache->SetResourceManager(view->GetResourceManager()); | 67 layer_title_cache->SetResourceManager(view->GetResourceManager()); |
70 if (tab_content_manager) | 68 if (tab_content_manager) |
71 tab_content_manager->SetUIResourceProvider(ui_resource_provider); | 69 tab_content_manager->SetUIResourceProvider(ui_resource_provider); |
72 | 70 |
73 return reinterpret_cast<intptr_t>(view); | 71 return reinterpret_cast<intptr_t>(view); |
74 } | 72 } |
75 | 73 |
76 CompositorView::CompositorView(JNIEnv* env, | 74 CompositorView::CompositorView(JNIEnv* env, |
77 jobject obj, | 75 jobject obj, |
78 jint empty_background_color, | |
79 jboolean low_mem_device, | 76 jboolean low_mem_device, |
80 ui::WindowAndroid* window_android, | 77 ui::WindowAndroid* window_android, |
81 LayerTitleCache* layer_title_cache, | |
82 TabContentManager* tab_content_manager) | 78 TabContentManager* tab_content_manager) |
83 : layer_title_cache_(layer_title_cache), | 79 : tab_content_manager_(tab_content_manager), |
84 tab_content_manager_(tab_content_manager), | |
85 root_layer_(cc::SolidColorLayer::Create()), | 80 root_layer_(cc::SolidColorLayer::Create()), |
86 scene_layer_(nullptr), | 81 scene_layer_(nullptr), |
87 current_surface_format_(0), | 82 current_surface_format_(0), |
88 content_width_(0), | 83 content_width_(0), |
89 content_height_(0), | 84 content_height_(0), |
90 overlay_video_mode_(false), | 85 overlay_video_mode_(false), |
91 empty_background_color_(empty_background_color), | |
92 weak_factory_(this) { | 86 weak_factory_(this) { |
93 content::BrowserChildProcessObserver::Add(this); | 87 content::BrowserChildProcessObserver::Add(this); |
94 obj_.Reset(env, obj); | 88 obj_.Reset(env, obj); |
95 compositor_.reset(content::Compositor::Create(this, window_android)); | 89 compositor_.reset(content::Compositor::Create(this, window_android)); |
96 | 90 |
97 root_layer_->SetIsDrawable(true); | 91 root_layer_->SetIsDrawable(true); |
98 root_layer_->SetBackgroundColor(SK_ColorWHITE); | 92 root_layer_->SetBackgroundColor(SK_ColorWHITE); |
99 } | 93 } |
100 | 94 |
101 CompositorView::~CompositorView() { | 95 CompositorView::~CompositorView() { |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
270 // through here but through BrowserChildProcessHostDisconnected() instead. | 264 // through here but through BrowserChildProcessHostDisconnected() instead. |
271 } | 265 } |
272 | 266 |
273 // Register native methods | 267 // Register native methods |
274 bool RegisterCompositorView(JNIEnv* env) { | 268 bool RegisterCompositorView(JNIEnv* env) { |
275 return RegisterNativesImpl(env); | 269 return RegisterNativesImpl(env); |
276 } | 270 } |
277 | 271 |
278 } // namespace android | 272 } // namespace android |
279 } // namespace chrome | 273 } // namespace chrome |
OLD | NEW |