| 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/banners/app_banner_infobar_delegate_android.h" | 5 #include "chrome/browser/android/banners/app_banner_infobar_delegate_android.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/location.h" | 10 #include "base/location.h" |
| 10 #include "base/strings/string16.h" | 11 #include "base/strings/string16.h" |
| 11 #include "base/strings/utf_string_conversions.h" | 12 #include "base/strings/utf_string_conversions.h" |
| 12 #include "chrome/browser/android/shortcut_helper.h" | 13 #include "chrome/browser/android/shortcut_helper.h" |
| 13 #include "chrome/browser/android/shortcut_info.h" | 14 #include "chrome/browser/android/shortcut_info.h" |
| 14 #include "chrome/browser/android/tab_android.h" | 15 #include "chrome/browser/android/tab_android.h" |
| 15 #include "chrome/browser/banners/app_banner_data_fetcher.h" | 16 #include "chrome/browser/banners/app_banner_data_fetcher.h" |
| 16 #include "chrome/browser/banners/app_banner_metrics.h" | 17 #include "chrome/browser/banners/app_banner_metrics.h" |
| 17 #include "chrome/browser/banners/app_banner_settings_helper.h" | 18 #include "chrome/browser/banners/app_banner_settings_helper.h" |
| 18 #include "chrome/browser/browser_process.h" | 19 #include "chrome/browser/browser_process.h" |
| (...skipping 12 matching lines...) Expand all Loading... |
| 31 | 32 |
| 32 using base::android::ConvertJavaStringToUTF8; | 33 using base::android::ConvertJavaStringToUTF8; |
| 33 using base::android::ConvertJavaStringToUTF16; | 34 using base::android::ConvertJavaStringToUTF16; |
| 34 using base::android::ConvertUTF8ToJavaString; | 35 using base::android::ConvertUTF8ToJavaString; |
| 35 using base::android::ConvertUTF16ToJavaString; | 36 using base::android::ConvertUTF16ToJavaString; |
| 36 | 37 |
| 37 namespace banners { | 38 namespace banners { |
| 38 | 39 |
| 39 AppBannerInfoBarDelegateAndroid::AppBannerInfoBarDelegateAndroid( | 40 AppBannerInfoBarDelegateAndroid::AppBannerInfoBarDelegateAndroid( |
| 40 int event_request_id, | 41 int event_request_id, |
| 42 scoped_refptr<AppBannerDataFetcherAndroid> data_fetcher, |
| 41 const base::string16& app_title, | 43 const base::string16& app_title, |
| 42 SkBitmap* app_icon, | 44 SkBitmap* app_icon, |
| 43 const content::Manifest& web_app_data) | 45 const content::Manifest& web_app_data) |
| 44 : app_title_(app_title), | 46 : data_fetcher_(data_fetcher), |
| 47 app_title_(app_title), |
| 45 app_icon_(app_icon), | 48 app_icon_(app_icon), |
| 46 event_request_id_(event_request_id), | 49 event_request_id_(event_request_id), |
| 47 web_app_data_(web_app_data), | 50 web_app_data_(web_app_data), |
| 48 has_user_interaction_(false) { | 51 has_user_interaction_(false) { |
| 49 DCHECK(!web_app_data.IsEmpty()); | 52 DCHECK(!web_app_data.IsEmpty()); |
| 50 CreateJavaDelegate(); | 53 CreateJavaDelegate(); |
| 51 } | 54 } |
| 52 | 55 |
| 53 AppBannerInfoBarDelegateAndroid::AppBannerInfoBarDelegateAndroid( | 56 AppBannerInfoBarDelegateAndroid::AppBannerInfoBarDelegateAndroid( |
| 54 int event_request_id, | 57 int event_request_id, |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 233 } else if (!web_app_data_.IsEmpty()) { | 236 } else if (!web_app_data_.IsEmpty()) { |
| 234 TrackUserResponse(USER_RESPONSE_WEB_APP_ACCEPTED); | 237 TrackUserResponse(USER_RESPONSE_WEB_APP_ACCEPTED); |
| 235 | 238 |
| 236 AppBannerSettingsHelper::RecordBannerInstallEvent( | 239 AppBannerSettingsHelper::RecordBannerInstallEvent( |
| 237 web_contents, web_app_data_.start_url.spec(), | 240 web_contents, web_app_data_.start_url.spec(), |
| 238 AppBannerSettingsHelper::WEB); | 241 AppBannerSettingsHelper::WEB); |
| 239 | 242 |
| 240 ShortcutInfo info(GURL::EmptyGURL()); | 243 ShortcutInfo info(GURL::EmptyGURL()); |
| 241 info.UpdateFromManifest(web_app_data_); | 244 info.UpdateFromManifest(web_app_data_); |
| 242 info.UpdateSource(ShortcutInfo::SOURCE_APP_BANNER); | 245 info.UpdateSource(ShortcutInfo::SOURCE_APP_BANNER); |
| 246 |
| 247 const std::string& uid = base::GenerateGUID(); |
| 243 content::BrowserThread::PostTask( | 248 content::BrowserThread::PostTask( |
| 244 content::BrowserThread::IO, | 249 content::BrowserThread::IO, |
| 245 FROM_HERE, | 250 FROM_HERE, |
| 246 base::Bind(&ShortcutHelper::AddShortcutInBackgroundWithSkBitmap, | 251 base::Bind(&ShortcutHelper::AddShortcutInBackgroundWithSkBitmap, |
| 247 info, | 252 info, |
| 253 uid, |
| 248 *app_icon_.get())); | 254 *app_icon_.get())); |
| 255 data_fetcher_->FetchWebappSplashScreenImage(uid); |
| 249 | 256 |
| 250 SendBannerAccepted(web_contents, "web"); | 257 SendBannerAccepted(web_contents, "web"); |
| 251 return true; | 258 return true; |
| 252 } | 259 } |
| 253 | 260 |
| 254 return true; | 261 return true; |
| 255 } | 262 } |
| 256 | 263 |
| 257 bool AppBannerInfoBarDelegateAndroid::LinkClicked( | 264 bool AppBannerInfoBarDelegateAndroid::LinkClicked( |
| 258 WindowOpenDisposition disposition) { | 265 WindowOpenDisposition disposition) { |
| (...skipping 19 matching lines...) Expand all Loading... |
| 278 | 285 |
| 279 TrackDismissEvent(DISMISS_EVENT_BANNER_CLICK); | 286 TrackDismissEvent(DISMISS_EVENT_BANNER_CLICK); |
| 280 return true; | 287 return true; |
| 281 } | 288 } |
| 282 | 289 |
| 283 bool RegisterAppBannerInfoBarDelegateAndroid(JNIEnv* env) { | 290 bool RegisterAppBannerInfoBarDelegateAndroid(JNIEnv* env) { |
| 284 return RegisterNativesImpl(env); | 291 return RegisterNativesImpl(env); |
| 285 } | 292 } |
| 286 | 293 |
| 287 } // namespace banners | 294 } // namespace banners |
| OLD | NEW |