Chromium Code Reviews| 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/webapps/add_to_homescreen_manager.h" | 5 #include "chrome/browser/android/webapps/add_to_homescreen_manager.h" |
| 6 | 6 |
| 7 #include "base/android/jni_android.h" | 7 #include "base/android/jni_android.h" |
| 8 #include "base/android/jni_string.h" | 8 #include "base/android/jni_string.h" |
| 9 #include "base/guid.h" | 9 #include "base/guid.h" |
| 10 #include "base/location.h" | 10 #include "base/location.h" |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 63 data_fetcher_->shortcut_info().user_title = user_title; | 63 data_fetcher_->shortcut_info().user_title = user_title; |
| 64 | 64 |
| 65 if (data_fetcher_->is_ready()) { | 65 if (data_fetcher_->is_ready()) { |
| 66 // If the fetcher isn't ready yet, the shortcut will be added when it is | 66 // If the fetcher isn't ready yet, the shortcut will be added when it is |
| 67 // via OnDataAvailable(); | 67 // via OnDataAvailable(); |
| 68 AddShortcut(data_fetcher_->shortcut_info(), data_fetcher_->shortcut_icon()); | 68 AddShortcut(data_fetcher_->shortcut_info(), data_fetcher_->shortcut_icon()); |
| 69 } | 69 } |
| 70 } | 70 } |
| 71 | 71 |
| 72 void AddToHomescreenManager::Start(content::WebContents* web_contents) { | 72 void AddToHomescreenManager::Start(content::WebContents* web_contents) { |
| 73 bool check_installable = false; | 73 // Check whether to check WebApk compatibility. |
|
pkotwicz
2016/09/30 21:57:03
Nit: Remove the comment. The comment does not say
F
2016/10/03 14:04:02
Done. Thx
| |
| 74 bool check_webapk_compatible = false; | |
| 74 if (ChromeWebApkHost::AreWebApkEnabled() && | 75 if (ChromeWebApkHost::AreWebApkEnabled() && |
| 75 content::IsOriginSecure(web_contents->GetLastCommittedURL())) { | 76 content::IsOriginSecure(web_contents->GetLastCommittedURL())) { |
| 76 check_installable = true; | 77 check_webapk_compatible = true; |
| 77 } else { | 78 } else { |
| 78 ShowDialog(); | 79 ShowDialog(); |
| 79 } | 80 } |
| 80 | 81 |
| 81 data_fetcher_ = new AddToHomescreenDataFetcher( | 82 data_fetcher_ = new AddToHomescreenDataFetcher( |
| 82 web_contents, ShortcutHelper::GetIdealHomescreenIconSizeInDp(), | 83 web_contents, ShortcutHelper::GetIdealHomescreenIconSizeInDp(), |
| 83 ShortcutHelper::GetMinimumHomescreenIconSizeInDp(), | 84 ShortcutHelper::GetMinimumHomescreenIconSizeInDp(), |
| 84 ShortcutHelper::GetIdealSplashImageSizeInDp(), | 85 ShortcutHelper::GetIdealSplashImageSizeInDp(), |
| 85 ShortcutHelper::GetMinimumSplashImageSizeInDp(), | 86 ShortcutHelper::GetMinimumSplashImageSizeInDp(), |
| 86 check_installable, this); | 87 check_webapk_compatible, this); |
| 87 } | 88 } |
| 88 | 89 |
| 89 AddToHomescreenManager::~AddToHomescreenManager() { | 90 AddToHomescreenManager::~AddToHomescreenManager() { |
| 90 if (data_fetcher_) { | 91 if (data_fetcher_) { |
| 91 data_fetcher_->set_weak_observer(nullptr); | 92 data_fetcher_->set_weak_observer(nullptr); |
| 92 data_fetcher_ = nullptr; | 93 data_fetcher_ = nullptr; |
| 93 } | 94 } |
| 94 } | 95 } |
| 95 | 96 |
| 96 void AddToHomescreenManager::ShowDialog() { | 97 void AddToHomescreenManager::ShowDialog() { |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 146 ScopedJavaLocalRef<jstring> j_user_title = | 147 ScopedJavaLocalRef<jstring> j_user_title = |
| 147 base::android::ConvertUTF16ToJavaString(env, user_title); | 148 base::android::ConvertUTF16ToJavaString(env, user_title); |
| 148 Java_AddToHomescreenManager_onUserTitleAvailable(env, | 149 Java_AddToHomescreenManager_onUserTitleAvailable(env, |
| 149 java_ref_, | 150 java_ref_, |
| 150 j_user_title); | 151 j_user_title); |
| 151 } | 152 } |
| 152 | 153 |
| 153 void AddToHomescreenManager::OnDataAvailable(const ShortcutInfo& info, | 154 void AddToHomescreenManager::OnDataAvailable(const ShortcutInfo& info, |
| 154 const SkBitmap& icon) { | 155 const SkBitmap& icon) { |
| 155 if (is_webapk_compatible_) { | 156 if (is_webapk_compatible_) { |
| 156 CreateInfoBarForWebAPK(info, icon); | 157 CreateInfoBarForWebApk(info, icon); |
| 157 return; | 158 return; |
| 158 } | 159 } |
| 159 | 160 |
| 160 JNIEnv* env = base::android::AttachCurrentThread(); | 161 JNIEnv* env = base::android::AttachCurrentThread(); |
| 161 ScopedJavaLocalRef<jobject> java_bitmap; | 162 ScopedJavaLocalRef<jobject> java_bitmap; |
| 162 if (icon.getSize()) | 163 if (icon.getSize()) |
| 163 java_bitmap = gfx::ConvertToJavaBitmap(&icon); | 164 java_bitmap = gfx::ConvertToJavaBitmap(&icon); |
| 164 | 165 |
| 165 Java_AddToHomescreenManager_onReadyToAdd(env, java_ref_, java_bitmap); | 166 Java_AddToHomescreenManager_onReadyToAdd(env, java_ref_, java_bitmap); |
| 166 | 167 |
| 167 if (add_shortcut_pending_) | 168 if (add_shortcut_pending_) |
| 168 AddShortcut(info, icon); | 169 AddShortcut(info, icon); |
| 169 } | 170 } |
| 170 | 171 |
| 171 void AddToHomescreenManager::CreateInfoBarForWebAPK(const ShortcutInfo& info, | 172 void AddToHomescreenManager::CreateInfoBarForWebApk(const ShortcutInfo& info, |
| 172 const SkBitmap& icon) { | 173 const SkBitmap& icon) { |
| 173 banners::AppBannerInfoBarDelegateAndroid::Create( | 174 banners::AppBannerInfoBarDelegateAndroid::Create( |
| 174 data_fetcher_->web_contents(), nullptr, info.user_title, | 175 data_fetcher_->web_contents(), nullptr, info.user_title, |
| 175 base::MakeUnique<ShortcutInfo>(info), base::MakeUnique<SkBitmap>(icon), | 176 base::MakeUnique<ShortcutInfo>(info), base::MakeUnique<SkBitmap>(icon), |
| 176 -1 /* event_request_id */, true /* is_webapk */, | 177 -1 /* event_request_id */, true /* is_webapk */, |
| 177 webapk::INSTALL_SOURCE_MENU); | 178 webapk::INSTALL_SOURCE_MENU); |
| 178 } | 179 } |
| 179 | 180 |
| 180 SkBitmap AddToHomescreenManager::FinalizeLauncherIconInBackground( | 181 SkBitmap AddToHomescreenManager::FinalizeLauncherIconInBackground( |
| 181 const SkBitmap& bitmap, | 182 const SkBitmap& bitmap, |
| 182 const GURL& url, | 183 const GURL& url, |
| 183 bool* is_generated) { | 184 bool* is_generated) { |
| 184 DCHECK(content::BrowserThread::GetBlockingPool()->RunsTasksOnCurrentThread()); | 185 DCHECK(content::BrowserThread::GetBlockingPool()->RunsTasksOnCurrentThread()); |
| 185 | 186 |
| 186 return ShortcutHelper::FinalizeLauncherIconInBackground(bitmap, url, | 187 return ShortcutHelper::FinalizeLauncherIconInBackground(bitmap, url, |
| 187 is_generated); | 188 is_generated); |
| 188 } | 189 } |
| OLD | NEW |