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