Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1302)

Side by Side Diff: chrome/browser/android/banners/app_banner_infobar_delegate_android.cc

Issue 2050933002: Upstream: Add additional checks before creating a WebAPK after clicking "Add to Homescreen" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merge branch 'create_webapk_requirements_enum_class' into create_webapk_requirements2 Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/guid.h"
10 #include "base/location.h" 10 #include "base/location.h"
11 #include "base/strings/string16.h" 11 #include "base/strings/string16.h"
12 #include "base/strings/utf_string_conversions.h" 12 #include "base/strings/utf_string_conversions.h"
13 #include "chrome/browser/android/shortcut_helper.h" 13 #include "chrome/browser/android/shortcut_helper.h"
14 #include "chrome/browser/android/shortcut_info.h"
15 #include "chrome/browser/android/tab_android.h" 14 #include "chrome/browser/android/tab_android.h"
16 #include "chrome/browser/banners/app_banner_data_fetcher.h" 15 #include "chrome/browser/banners/app_banner_data_fetcher.h"
17 #include "chrome/browser/banners/app_banner_metrics.h" 16 #include "chrome/browser/banners/app_banner_metrics.h"
18 #include "chrome/browser/banners/app_banner_settings_helper.h" 17 #include "chrome/browser/banners/app_banner_settings_helper.h"
19 #include "chrome/browser/browser_process.h" 18 #include "chrome/browser/browser_process.h"
20 #include "chrome/browser/infobars/infobar_service.h" 19 #include "chrome/browser/infobars/infobar_service.h"
21 #include "chrome/browser/ui/android/infobars/app_banner_infobar_android.h" 20 #include "chrome/browser/ui/android/infobars/app_banner_infobar_android.h"
22 #include "chrome/common/render_messages.h" 21 #include "chrome/common/render_messages.h"
23 #include "chrome/grit/generated_resources.h" 22 #include "chrome/grit/generated_resources.h"
24 #include "components/rappor/rappor_utils.h" 23 #include "components/rappor/rappor_utils.h"
(...skipping 12 matching lines...) Expand all
37 36
38 namespace banners { 37 namespace banners {
39 38
40 AppBannerInfoBarDelegateAndroid::AppBannerInfoBarDelegateAndroid( 39 AppBannerInfoBarDelegateAndroid::AppBannerInfoBarDelegateAndroid(
41 int event_request_id, 40 int event_request_id,
42 scoped_refptr<AppBannerDataFetcherAndroid> data_fetcher, 41 scoped_refptr<AppBannerDataFetcherAndroid> data_fetcher,
43 const base::string16& app_title, 42 const base::string16& app_title,
44 const GURL& app_icon_url, 43 const GURL& app_icon_url,
45 SkBitmap* app_icon, 44 SkBitmap* app_icon,
46 const GURL& manifest_url, 45 const GURL& manifest_url,
47 const content::Manifest& manifest) 46 const content::Manifest& manifest,
47 ShortcutInfo::Type webapp_type)
48 : data_fetcher_(data_fetcher), 48 : data_fetcher_(data_fetcher),
49 app_title_(app_title), 49 app_title_(app_title),
50 app_icon_url_(app_icon_url), 50 app_icon_url_(app_icon_url),
51 app_icon_(app_icon), 51 app_icon_(app_icon),
52 event_request_id_(event_request_id), 52 event_request_id_(event_request_id),
53 manifest_url_(manifest_url), 53 manifest_url_(manifest_url),
54 manifest_(manifest), 54 manifest_(manifest),
55 webapp_type_(webapp_type),
55 has_user_interaction_(false) { 56 has_user_interaction_(false) {
56 DCHECK(!manifest.IsEmpty()); 57 DCHECK(!manifest.IsEmpty());
57 CreateJavaDelegate(); 58 CreateJavaDelegate();
58 } 59 }
59 60
60 AppBannerInfoBarDelegateAndroid::AppBannerInfoBarDelegateAndroid( 61 AppBannerInfoBarDelegateAndroid::AppBannerInfoBarDelegateAndroid(
61 int event_request_id, 62 int event_request_id,
62 const base::string16& app_title, 63 const base::string16& app_title,
63 SkBitmap* app_icon, 64 SkBitmap* app_icon,
64 const base::android::ScopedJavaGlobalRef<jobject>& native_app_data, 65 const base::android::ScopedJavaGlobalRef<jobject>& native_app_data,
65 const std::string& native_app_package, 66 const std::string& native_app_package,
66 const std::string& referrer) 67 const std::string& referrer)
67 : app_title_(app_title), 68 : app_title_(app_title),
68 app_icon_(app_icon), 69 app_icon_(app_icon),
69 event_request_id_(event_request_id), 70 event_request_id_(event_request_id),
71 webapp_type_(ShortcutInfo::Type::OTHER),
70 native_app_data_(native_app_data), 72 native_app_data_(native_app_data),
71 native_app_package_(native_app_package), 73 native_app_package_(native_app_package),
72 referrer_(referrer), 74 referrer_(referrer),
73 has_user_interaction_(false) { 75 has_user_interaction_(false) {
74 DCHECK(!native_app_data_.is_null()); 76 DCHECK(!native_app_data_.is_null());
75 CreateJavaDelegate(); 77 CreateJavaDelegate();
76 } 78 }
77 79
78 AppBannerInfoBarDelegateAndroid::~AppBannerInfoBarDelegateAndroid() { 80 AppBannerInfoBarDelegateAndroid::~AppBannerInfoBarDelegateAndroid() {
79 if (!has_user_interaction_) { 81 if (!has_user_interaction_) {
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 251
250 AppBannerSettingsHelper::RecordBannerInstallEvent( 252 AppBannerSettingsHelper::RecordBannerInstallEvent(
251 web_contents, manifest_.start_url.spec(), 253 web_contents, manifest_.start_url.spec(),
252 AppBannerSettingsHelper::WEB); 254 AppBannerSettingsHelper::WEB);
253 255
254 ShortcutInfo info(GURL::EmptyGURL()); 256 ShortcutInfo info(GURL::EmptyGURL());
255 info.UpdateFromManifest(manifest_); 257 info.UpdateFromManifest(manifest_);
256 info.manifest_url = manifest_url_; 258 info.manifest_url = manifest_url_;
257 info.icon_url = app_icon_url_; 259 info.icon_url = app_icon_url_;
258 info.UpdateSource(ShortcutInfo::SOURCE_APP_BANNER); 260 info.UpdateSource(ShortcutInfo::SOURCE_APP_BANNER);
261 info.type = webapp_type_;
259 262
260 const std::string& uid = base::GenerateGUID(); 263 const std::string& uid = base::GenerateGUID();
261 content::BrowserThread::PostTask( 264 content::BrowserThread::PostTask(
262 content::BrowserThread::IO, FROM_HERE, 265 content::BrowserThread::IO, FROM_HERE,
263 base::Bind(&ShortcutHelper::AddShortcutInBackgroundWithSkBitmap, info, 266 base::Bind(&ShortcutHelper::AddShortcutInBackgroundWithSkBitmap, info,
264 uid, *app_icon_.get(), 267 uid, *app_icon_.get(),
265 data_fetcher_->FetchWebappSplashScreenImageCallback(uid))); 268 data_fetcher_->FetchWebappSplashScreenImageCallback(uid)));
266 269
267 SendBannerAccepted(web_contents, "web"); 270 SendBannerAccepted(web_contents, "web");
268 return true; 271 return true;
(...skipping 26 matching lines...) Expand all
295 298
296 TrackDismissEvent(DISMISS_EVENT_BANNER_CLICK); 299 TrackDismissEvent(DISMISS_EVENT_BANNER_CLICK);
297 return true; 300 return true;
298 } 301 }
299 302
300 bool RegisterAppBannerInfoBarDelegateAndroid(JNIEnv* env) { 303 bool RegisterAppBannerInfoBarDelegateAndroid(JNIEnv* env) {
301 return RegisterNativesImpl(env); 304 return RegisterNativesImpl(env);
302 } 305 }
303 306
304 } // namespace banners 307 } // namespace banners
OLDNEW
« no previous file with comments | « chrome/browser/android/banners/app_banner_infobar_delegate_android.h ('k') | chrome/browser/android/shortcut_helper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698