| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/layer_title_cache.h" | 5 #include "chrome/browser/android/compositor/layer_title_cache.h" |
| 6 | 6 |
| 7 #include <android/bitmap.h> | 7 #include <android/bitmap.h> |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 | 10 |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 83 jint favicon_resource_id) { | 83 jint favicon_resource_id) { |
| 84 DecorationTitle* title_layer = layer_cache_.Lookup(tab_id); | 84 DecorationTitle* title_layer = layer_cache_.Lookup(tab_id); |
| 85 if (title_layer == nullptr && favicon_resource_id != -1) { | 85 if (title_layer == nullptr && favicon_resource_id != -1) { |
| 86 title_layer->SetFaviconResourceId(favicon_resource_id); | 86 title_layer->SetFaviconResourceId(favicon_resource_id); |
| 87 } | 87 } |
| 88 } | 88 } |
| 89 | 89 |
| 90 void LayerTitleCache::ClearExcept(JNIEnv* env, | 90 void LayerTitleCache::ClearExcept(JNIEnv* env, |
| 91 const JavaParamRef<jobject>& obj, | 91 const JavaParamRef<jobject>& obj, |
| 92 jint except_id) { | 92 jint except_id) { |
| 93 IDMap<DecorationTitle, IDMapOwnPointer>::iterator iter(&layer_cache_); | 93 IDMap<std::unique_ptr<DecorationTitle>>::iterator iter(&layer_cache_); |
| 94 for (; !iter.IsAtEnd(); iter.Advance()) { | 94 for (; !iter.IsAtEnd(); iter.Advance()) { |
| 95 const int id = iter.GetCurrentKey(); | 95 const int id = iter.GetCurrentKey(); |
| 96 if (id != except_id) | 96 if (id != except_id) |
| 97 layer_cache_.Remove(id); | 97 layer_cache_.Remove(id); |
| 98 } | 98 } |
| 99 } | 99 } |
| 100 | 100 |
| 101 DecorationTitle* LayerTitleCache::GetTitleLayer(int tab_id) { | 101 DecorationTitle* LayerTitleCache::GetTitleLayer(int tab_id) { |
| 102 if (!layer_cache_.Lookup(tab_id)) { | 102 if (!layer_cache_.Lookup(tab_id)) { |
| 103 JNIEnv* env = base::android::AttachCurrentThread(); | 103 JNIEnv* env = base::android::AttachCurrentThread(); |
| 104 Java_LayerTitleCache_buildUpdatedTitle(env, weak_java_title_cache_.get(env), | 104 Java_LayerTitleCache_buildUpdatedTitle(env, weak_java_title_cache_.get(env), |
| 105 tab_id); | 105 tab_id); |
| 106 } | 106 } |
| 107 | 107 |
| 108 return layer_cache_.Lookup(tab_id); | 108 return layer_cache_.Lookup(tab_id); |
| 109 } | 109 } |
| 110 | 110 |
| 111 void LayerTitleCache::SetResourceManager( | 111 void LayerTitleCache::SetResourceManager( |
| 112 ui::ResourceManager* resource_manager) { | 112 ui::ResourceManager* resource_manager) { |
| 113 resource_manager_ = resource_manager; | 113 resource_manager_ = resource_manager; |
| 114 | 114 |
| 115 IDMap<DecorationTitle, IDMapOwnPointer>::iterator iter(&layer_cache_); | 115 IDMap<std::unique_ptr<DecorationTitle>>::iterator iter(&layer_cache_); |
| 116 for (; !iter.IsAtEnd(); iter.Advance()) { | 116 for (; !iter.IsAtEnd(); iter.Advance()) { |
| 117 iter.GetCurrentValue()->SetResourceManager(resource_manager_); | 117 iter.GetCurrentValue()->SetResourceManager(resource_manager_); |
| 118 } | 118 } |
| 119 } | 119 } |
| 120 | 120 |
| 121 LayerTitleCache::~LayerTitleCache() { | 121 LayerTitleCache::~LayerTitleCache() { |
| 122 } | 122 } |
| 123 | 123 |
| 124 bool RegisterLayerTitleCache(JNIEnv* env) { | 124 bool RegisterLayerTitleCache(JNIEnv* env) { |
| 125 return RegisterNativesImpl(env); | 125 return RegisterNativesImpl(env); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 136 jint favicon_end_padding, | 136 jint favicon_end_padding, |
| 137 jint spinner_resource_id, | 137 jint spinner_resource_id, |
| 138 jint spinner_incognito_resource_id) { | 138 jint spinner_incognito_resource_id) { |
| 139 LayerTitleCache* cache = new LayerTitleCache( | 139 LayerTitleCache* cache = new LayerTitleCache( |
| 140 env, obj, fade_width, favicon_start_padding, favicon_end_padding, | 140 env, obj, fade_width, favicon_start_padding, favicon_end_padding, |
| 141 spinner_resource_id, spinner_incognito_resource_id); | 141 spinner_resource_id, spinner_incognito_resource_id); |
| 142 return reinterpret_cast<intptr_t>(cache); | 142 return reinterpret_cast<intptr_t>(cache); |
| 143 } | 143 } |
| 144 | 144 |
| 145 } // namespace android | 145 } // namespace android |
| OLD | NEW |