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

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

Issue 2064943002: Pass in extra parameters to WebApkBuilder#buildWebApkAsync() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merge branch 'master' into webapk_manifest000 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"
(...skipping 23 matching lines...) Expand all
34 using base::android::ConvertJavaStringToUTF16; 34 using base::android::ConvertJavaStringToUTF16;
35 using base::android::ConvertUTF8ToJavaString; 35 using base::android::ConvertUTF8ToJavaString;
36 using base::android::ConvertUTF16ToJavaString; 36 using base::android::ConvertUTF16ToJavaString;
37 37
38 namespace banners { 38 namespace banners {
39 39
40 AppBannerInfoBarDelegateAndroid::AppBannerInfoBarDelegateAndroid( 40 AppBannerInfoBarDelegateAndroid::AppBannerInfoBarDelegateAndroid(
41 int event_request_id, 41 int event_request_id,
42 scoped_refptr<AppBannerDataFetcherAndroid> data_fetcher, 42 scoped_refptr<AppBannerDataFetcherAndroid> data_fetcher,
43 const base::string16& app_title, 43 const base::string16& app_title,
44 const GURL& app_icon_url,
44 SkBitmap* app_icon, 45 SkBitmap* app_icon,
45 const content::Manifest& web_app_data) 46 const GURL& manifest_url,
47 const content::Manifest& manifest)
46 : data_fetcher_(data_fetcher), 48 : data_fetcher_(data_fetcher),
47 app_title_(app_title), 49 app_title_(app_title),
50 app_icon_url_(app_icon_url),
48 app_icon_(app_icon), 51 app_icon_(app_icon),
49 event_request_id_(event_request_id), 52 event_request_id_(event_request_id),
50 web_app_data_(web_app_data), 53 manifest_url_(manifest_url),
54 manifest_(manifest),
51 has_user_interaction_(false) { 55 has_user_interaction_(false) {
52 DCHECK(!web_app_data.IsEmpty()); 56 DCHECK(!manifest.IsEmpty());
53 CreateJavaDelegate(); 57 CreateJavaDelegate();
54 } 58 }
55 59
56 AppBannerInfoBarDelegateAndroid::AppBannerInfoBarDelegateAndroid( 60 AppBannerInfoBarDelegateAndroid::AppBannerInfoBarDelegateAndroid(
57 int event_request_id, 61 int event_request_id,
58 const base::string16& app_title, 62 const base::string16& app_title,
59 SkBitmap* app_icon, 63 SkBitmap* app_icon,
60 const base::android::ScopedJavaGlobalRef<jobject>& native_app_data, 64 const base::android::ScopedJavaGlobalRef<jobject>& native_app_data,
61 const std::string& native_app_package, 65 const std::string& native_app_package,
62 const std::string& referrer) 66 const std::string& referrer)
63 : app_title_(app_title), 67 : app_title_(app_title),
64 app_icon_(app_icon), 68 app_icon_(app_icon),
65 event_request_id_(event_request_id), 69 event_request_id_(event_request_id),
66 native_app_data_(native_app_data), 70 native_app_data_(native_app_data),
67 native_app_package_(native_app_package), 71 native_app_package_(native_app_package),
68 referrer_(referrer), 72 referrer_(referrer),
69 has_user_interaction_(false) { 73 has_user_interaction_(false) {
70 DCHECK(!native_app_data_.is_null()); 74 DCHECK(!native_app_data_.is_null());
71 CreateJavaDelegate(); 75 CreateJavaDelegate();
72 } 76 }
73 77
74 AppBannerInfoBarDelegateAndroid::~AppBannerInfoBarDelegateAndroid() { 78 AppBannerInfoBarDelegateAndroid::~AppBannerInfoBarDelegateAndroid() {
75 if (!has_user_interaction_) { 79 if (!has_user_interaction_) {
76 if (!native_app_data_.is_null()) 80 if (!native_app_data_.is_null())
77 TrackUserResponse(USER_RESPONSE_NATIVE_APP_IGNORED); 81 TrackUserResponse(USER_RESPONSE_NATIVE_APP_IGNORED);
78 else if (!web_app_data_.IsEmpty()) 82 else if (!manifest_.IsEmpty())
79 TrackUserResponse(USER_RESPONSE_WEB_APP_IGNORED); 83 TrackUserResponse(USER_RESPONSE_WEB_APP_IGNORED);
80 } 84 }
81 85
82 TrackDismissEvent(DISMISS_EVENT_DISMISSED); 86 TrackDismissEvent(DISMISS_EVENT_DISMISSED);
83 JNIEnv* env = base::android::AttachCurrentThread(); 87 JNIEnv* env = base::android::AttachCurrentThread();
84 Java_AppBannerInfoBarDelegateAndroid_destroy(env, 88 Java_AppBannerInfoBarDelegateAndroid_destroy(env,
85 java_delegate_.obj()); 89 java_delegate_.obj());
86 java_delegate_.Reset(); 90 java_delegate_.Reset();
87 } 91 }
88 92
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 185
182 web_contents->GetMainFrame()->Send( 186 web_contents->GetMainFrame()->Send(
183 new ChromeViewMsg_AppBannerDismissed( 187 new ChromeViewMsg_AppBannerDismissed(
184 web_contents->GetMainFrame()->GetRoutingID(), 188 web_contents->GetMainFrame()->GetRoutingID(),
185 event_request_id_)); 189 event_request_id_));
186 190
187 if (!native_app_data_.is_null()) { 191 if (!native_app_data_.is_null()) {
188 TrackUserResponse(USER_RESPONSE_NATIVE_APP_DISMISSED); 192 TrackUserResponse(USER_RESPONSE_NATIVE_APP_DISMISSED);
189 AppBannerSettingsHelper::RecordBannerDismissEvent( 193 AppBannerSettingsHelper::RecordBannerDismissEvent(
190 web_contents, native_app_package_, AppBannerSettingsHelper::NATIVE); 194 web_contents, native_app_package_, AppBannerSettingsHelper::NATIVE);
191 } else if (!web_app_data_.IsEmpty()) { 195 } else if (!manifest_.IsEmpty()) {
192 TrackUserResponse(USER_RESPONSE_WEB_APP_DISMISSED); 196 TrackUserResponse(USER_RESPONSE_WEB_APP_DISMISSED);
193 AppBannerSettingsHelper::RecordBannerDismissEvent( 197 AppBannerSettingsHelper::RecordBannerDismissEvent(
194 web_contents, web_app_data_.start_url.spec(), 198 web_contents, manifest_.start_url.spec(),
195 AppBannerSettingsHelper::WEB); 199 AppBannerSettingsHelper::WEB);
196 } 200 }
197 } 201 }
198 202
199 base::string16 AppBannerInfoBarDelegateAndroid::GetMessageText() const { 203 base::string16 AppBannerInfoBarDelegateAndroid::GetMessageText() const {
200 return app_title_; 204 return app_title_;
201 } 205 }
202 206
203 int AppBannerInfoBarDelegateAndroid::GetButtons() const { 207 int AppBannerInfoBarDelegateAndroid::GetButtons() const {
204 return BUTTON_OK; 208 return BUTTON_OK;
(...skipping 28 matching lines...) Expand all
233 native_app_data_.obj(), 237 native_app_data_.obj(),
234 jreferrer.obj()); 238 jreferrer.obj());
235 239
236 if (was_opened) { 240 if (was_opened) {
237 TrackDismissEvent(DISMISS_EVENT_APP_OPEN); 241 TrackDismissEvent(DISMISS_EVENT_APP_OPEN);
238 } else { 242 } else {
239 TrackInstallEvent(INSTALL_EVENT_NATIVE_APP_INSTALL_TRIGGERED); 243 TrackInstallEvent(INSTALL_EVENT_NATIVE_APP_INSTALL_TRIGGERED);
240 } 244 }
241 SendBannerAccepted(web_contents, "play"); 245 SendBannerAccepted(web_contents, "play");
242 return was_opened; 246 return was_opened;
243 } else if (!web_app_data_.IsEmpty()) { 247 } else if (!manifest_.IsEmpty()) {
244 TrackUserResponse(USER_RESPONSE_WEB_APP_ACCEPTED); 248 TrackUserResponse(USER_RESPONSE_WEB_APP_ACCEPTED);
245 249
246 AppBannerSettingsHelper::RecordBannerInstallEvent( 250 AppBannerSettingsHelper::RecordBannerInstallEvent(
247 web_contents, web_app_data_.start_url.spec(), 251 web_contents, manifest_.start_url.spec(),
248 AppBannerSettingsHelper::WEB); 252 AppBannerSettingsHelper::WEB);
249 253
250 ShortcutInfo info(GURL::EmptyGURL()); 254 ShortcutInfo info(GURL::EmptyGURL());
251 info.UpdateFromManifest(web_app_data_); 255 info.UpdateFromManifest(manifest_);
256 info.manifest_url = manifest_url_;
257 info.icon_url = app_icon_url_;
252 info.UpdateSource(ShortcutInfo::SOURCE_APP_BANNER); 258 info.UpdateSource(ShortcutInfo::SOURCE_APP_BANNER);
253 259
254 const std::string& uid = base::GenerateGUID(); 260 const std::string& uid = base::GenerateGUID();
255 content::BrowserThread::PostTask( 261 content::BrowserThread::PostTask(
256 content::BrowserThread::IO, FROM_HERE, 262 content::BrowserThread::IO, FROM_HERE,
257 base::Bind(&ShortcutHelper::AddShortcutInBackgroundWithSkBitmap, info, 263 base::Bind(&ShortcutHelper::AddShortcutInBackgroundWithSkBitmap, info,
258 uid, *app_icon_.get(), 264 uid, *app_icon_.get(),
259 data_fetcher_->FetchWebappSplashScreenImageCallback(uid))); 265 data_fetcher_->FetchWebappSplashScreenImageCallback(uid)));
260 266
261 SendBannerAccepted(web_contents, "web"); 267 SendBannerAccepted(web_contents, "web");
(...skipping 27 matching lines...) Expand all
289 295
290 TrackDismissEvent(DISMISS_EVENT_BANNER_CLICK); 296 TrackDismissEvent(DISMISS_EVENT_BANNER_CLICK);
291 return true; 297 return true;
292 } 298 }
293 299
294 bool RegisterAppBannerInfoBarDelegateAndroid(JNIEnv* env) { 300 bool RegisterAppBannerInfoBarDelegateAndroid(JNIEnv* env) {
295 return RegisterNativesImpl(env); 301 return RegisterNativesImpl(env);
296 } 302 }
297 303
298 } // namespace banners 304 } // 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