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 <utility> | 5 #include <utility> |
6 | 6 |
7 #include "chrome/browser/android/banners/app_banner_manager_android.h" | 7 #include "chrome/browser/android/banners/app_banner_manager_android.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 22 matching lines...) Expand all Loading... |
33 | 33 |
34 DEFINE_WEB_CONTENTS_USER_DATA_KEY(banners::AppBannerManagerAndroid); | 34 DEFINE_WEB_CONTENTS_USER_DATA_KEY(banners::AppBannerManagerAndroid); |
35 | 35 |
36 namespace { | 36 namespace { |
37 | 37 |
38 const char kPlayPlatform[] = "play"; | 38 const char kPlayPlatform[] = "play"; |
39 const char kReferrerName[] = "referrer"; | 39 const char kReferrerName[] = "referrer"; |
40 const char kIdName[] = "id"; | 40 const char kIdName[] = "id"; |
41 const char kPlayInlineReferrer[] = "playinline=chrome_inline"; | 41 const char kPlayInlineReferrer[] = "playinline=chrome_inline"; |
42 | 42 |
| 43 std::unique_ptr<ShortcutInfo> CreateShortcutInfo( |
| 44 const GURL& manifest_url, |
| 45 const content::Manifest& manifest, |
| 46 const GURL& icon_url) { |
| 47 std::unique_ptr<ShortcutInfo> info_ptr(new ShortcutInfo(GURL::EmptyGURL())); |
| 48 if (!manifest.IsEmpty()) { |
| 49 info_ptr->UpdateFromManifest(manifest); |
| 50 info_ptr->manifest_url = manifest_url; |
| 51 info_ptr->icon_url = icon_url; |
| 52 info_ptr->UpdateSource(ShortcutInfo::SOURCE_APP_BANNER); |
| 53 } |
| 54 return info_ptr; |
| 55 } |
| 56 |
43 } // anonymous namespace | 57 } // anonymous namespace |
44 | 58 |
45 namespace banners { | 59 namespace banners { |
46 | 60 |
47 AppBannerManagerAndroid::AppBannerManagerAndroid( | 61 AppBannerManagerAndroid::AppBannerManagerAndroid( |
48 content::WebContents* web_contents) | 62 content::WebContents* web_contents) |
49 : AppBannerManager(web_contents) { | 63 : AppBannerManager(web_contents) { |
50 CreateJavaBannerManager(); | 64 CreateJavaBannerManager(); |
51 } | 65 } |
52 | 66 |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
183 | 197 |
184 void AppBannerManagerAndroid::ShowBanner() { | 198 void AppBannerManagerAndroid::ShowBanner() { |
185 content::WebContents* contents = web_contents(); | 199 content::WebContents* contents = web_contents(); |
186 DCHECK(contents); | 200 DCHECK(contents); |
187 | 201 |
188 infobars::InfoBar* infobar = nullptr; | 202 infobars::InfoBar* infobar = nullptr; |
189 if (native_app_data_.is_null()) { | 203 if (native_app_data_.is_null()) { |
190 bool is_webapk = ChromeWebApkHost::AreWebApkEnabled(); | 204 bool is_webapk = ChromeWebApkHost::AreWebApkEnabled(); |
191 std::unique_ptr<AppBannerInfoBarDelegateAndroid> delegate( | 205 std::unique_ptr<AppBannerInfoBarDelegateAndroid> delegate( |
192 new AppBannerInfoBarDelegateAndroid( | 206 new AppBannerInfoBarDelegateAndroid( |
193 GetWeakPtr(), app_title_, manifest_url_, manifest_, icon_url_, | 207 GetWeakPtr(), app_title_, manifest_url_, |
194 std::move(icon_), event_request_id(), is_webapk)); | 208 CreateShortcutInfo(manifest_url_, manifest_, icon_url_), |
| 209 icon_url_, std::move(icon_), event_request_id(), is_webapk)); |
195 | 210 |
196 infobar = new AppBannerInfoBarAndroid( | 211 infobar = new AppBannerInfoBarAndroid( |
197 std::move(delegate), manifest_.start_url, is_webapk); | 212 std::move(delegate), manifest_.start_url, is_webapk); |
198 if (infobar) { | 213 if (infobar) { |
199 RecordDidShowBanner("AppBanner.WebApp.Shown"); | 214 RecordDidShowBanner("AppBanner.WebApp.Shown"); |
200 TrackDisplayEvent(DISPLAY_EVENT_WEB_APP_BANNER_CREATED); | 215 TrackDisplayEvent(DISPLAY_EVENT_WEB_APP_BANNER_CREATED); |
201 ReportStatus(contents, SHOWING_WEB_APP_BANNER); | 216 ReportStatus(contents, SHOWING_WEB_APP_BANNER); |
202 } else { | 217 } else { |
203 ReportStatus(contents, FAILED_TO_CREATE_BANNER); | 218 ReportStatus(contents, FAILED_TO_CREATE_BANNER); |
204 } | 219 } |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
331 } | 346 } |
332 | 347 |
333 // static | 348 // static |
334 void SetTimeDeltaForTesting(JNIEnv* env, | 349 void SetTimeDeltaForTesting(JNIEnv* env, |
335 const JavaParamRef<jclass>& clazz, | 350 const JavaParamRef<jclass>& clazz, |
336 jint days) { | 351 jint days) { |
337 AppBannerManager::SetTimeDeltaForTesting(days); | 352 AppBannerManager::SetTimeDeltaForTesting(days); |
338 } | 353 } |
339 | 354 |
340 } // namespace banners | 355 } // namespace banners |
OLD | NEW |