OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/shortcut_helper.h" | 5 #include "chrome/browser/android/shortcut_helper.h" |
6 | 6 |
7 #include <jni.h> | 7 #include <jni.h> |
8 | 8 |
9 #include "base/android/jni_android.h" | 9 #include "base/android/jni_android.h" |
10 #include "base/android/jni_string.h" | 10 #include "base/android/jni_string.h" |
(...skipping 11 matching lines...) Expand all Loading... |
22 #include "content/public/browser/web_contents_observer.h" | 22 #include "content/public/browser/web_contents_observer.h" |
23 #include "content/public/common/frame_navigate_params.h" | 23 #include "content/public/common/frame_navigate_params.h" |
24 #include "jni/ShortcutHelper_jni.h" | 24 #include "jni/ShortcutHelper_jni.h" |
25 #include "ui/gfx/android/java_bitmap.h" | 25 #include "ui/gfx/android/java_bitmap.h" |
26 #include "ui/gfx/codec/png_codec.h" | 26 #include "ui/gfx/codec/png_codec.h" |
27 #include "ui/gfx/color_analysis.h" | 27 #include "ui/gfx/color_analysis.h" |
28 #include "ui/gfx/favicon_size.h" | 28 #include "ui/gfx/favicon_size.h" |
29 #include "url/gurl.h" | 29 #include "url/gurl.h" |
30 | 30 |
31 ShortcutBuilder::ShortcutBuilder(content::WebContents* web_contents, | 31 ShortcutBuilder::ShortcutBuilder(content::WebContents* web_contents, |
32 const string16& title, | 32 const base::string16& title, |
33 int launcher_large_icon_size) | 33 int launcher_large_icon_size) |
34 : launcher_large_icon_size_(launcher_large_icon_size), | 34 : launcher_large_icon_size_(launcher_large_icon_size), |
35 shortcut_type_(BOOKMARK) { | 35 shortcut_type_(BOOKMARK) { |
36 Observe(web_contents); | 36 Observe(web_contents); |
37 url_ = web_contents->GetURL(); | 37 url_ = web_contents->GetURL(); |
38 if (title.length() > 0) | 38 if (title.length() > 0) |
39 title_ = title; | 39 title_ = title; |
40 else | 40 else |
41 title_ = web_contents->GetTitle(); | 41 title_ = web_contents->GetTitle(); |
42 | 42 |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 } | 118 } |
119 | 119 |
120 void ShortcutBuilder::Destroy() { | 120 void ShortcutBuilder::Destroy() { |
121 if (cancelable_task_tracker_.HasTrackedTasks()) { | 121 if (cancelable_task_tracker_.HasTrackedTasks()) { |
122 cancelable_task_tracker_.TryCancelAll(); | 122 cancelable_task_tracker_.TryCancelAll(); |
123 } | 123 } |
124 delete this; | 124 delete this; |
125 } | 125 } |
126 | 126 |
127 void ShortcutHelper::AddShortcut(content::WebContents* web_contents, | 127 void ShortcutHelper::AddShortcut(content::WebContents* web_contents, |
128 const string16& title, | 128 const base::string16& title, |
129 int launcher_large_icon_size) { | 129 int launcher_large_icon_size) { |
130 // The ShortcutBuilder deletes itself when it's done. | 130 // The ShortcutBuilder deletes itself when it's done. |
131 new ShortcutBuilder(web_contents, title, launcher_large_icon_size); | 131 new ShortcutBuilder(web_contents, title, launcher_large_icon_size); |
132 } | 132 } |
133 | 133 |
134 bool ShortcutHelper::RegisterShortcutHelper(JNIEnv* env) { | 134 bool ShortcutHelper::RegisterShortcutHelper(JNIEnv* env) { |
135 return RegisterNativesImpl(env); | 135 return RegisterNativesImpl(env); |
136 } | 136 } |
137 | 137 |
138 void ShortcutHelper::AddShortcutInBackground( | 138 void ShortcutHelper::AddShortcutInBackground( |
139 const GURL& url, | 139 const GURL& url, |
140 const string16& title, | 140 const base::string16& title, |
141 ShortcutBuilder::ShortcutType shortcut_type, | 141 ShortcutBuilder::ShortcutType shortcut_type, |
142 const chrome::FaviconBitmapResult& bitmap_result) { | 142 const chrome::FaviconBitmapResult& bitmap_result) { |
143 DCHECK(base::WorkerPool::RunsTasksOnCurrentThread()); | 143 DCHECK(base::WorkerPool::RunsTasksOnCurrentThread()); |
144 | 144 |
145 // Grab the average color from the bitmap. | 145 // Grab the average color from the bitmap. |
146 SkColor color = SK_ColorWHITE; | 146 SkColor color = SK_ColorWHITE; |
147 SkBitmap favicon_bitmap; | 147 SkBitmap favicon_bitmap; |
148 if (bitmap_result.is_valid()) { | 148 if (bitmap_result.is_valid()) { |
149 color_utils::GridSampler sampler; | 149 color_utils::GridSampler sampler; |
150 color = color_utils::CalculateKMeanColorOfPNG(bitmap_result.bitmap_data, | 150 color = color_utils::CalculateKMeanColorOfPNG(bitmap_result.bitmap_data, |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
207 jclass clazz, | 207 jclass clazz, |
208 jlong tab_android_ptr, | 208 jlong tab_android_ptr, |
209 jstring title, | 209 jstring title, |
210 jint launcher_large_icon_size) { | 210 jint launcher_large_icon_size) { |
211 TabAndroid* tab = reinterpret_cast<TabAndroid*>(tab_android_ptr); | 211 TabAndroid* tab = reinterpret_cast<TabAndroid*>(tab_android_ptr); |
212 ShortcutHelper::AddShortcut( | 212 ShortcutHelper::AddShortcut( |
213 tab->web_contents(), | 213 tab->web_contents(), |
214 base::android::ConvertJavaStringToUTF16(env, title), | 214 base::android::ConvertJavaStringToUTF16(env, title), |
215 launcher_large_icon_size); | 215 launcher_large_icon_size); |
216 } | 216 } |
OLD | NEW |