| 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 |