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/location.h" | 9 #include "base/location.h" |
10 #include "base/strings/string16.h" | 10 #include "base/strings/string16.h" |
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
148 gfx::Image AppBannerInfoBarDelegateAndroid::GetIcon() const { | 148 gfx::Image AppBannerInfoBarDelegateAndroid::GetIcon() const { |
149 return gfx::Image::CreateFrom1xBitmap(*app_icon_.get()); | 149 return gfx::Image::CreateFrom1xBitmap(*app_icon_.get()); |
150 } | 150 } |
151 | 151 |
152 void AppBannerInfoBarDelegateAndroid::InfoBarDismissed() { | 152 void AppBannerInfoBarDelegateAndroid::InfoBarDismissed() { |
153 content::WebContents* web_contents = | 153 content::WebContents* web_contents = |
154 InfoBarService::WebContentsFromInfoBar(infobar()); | 154 InfoBarService::WebContentsFromInfoBar(infobar()); |
155 if (!web_contents) | 155 if (!web_contents) |
156 return; | 156 return; |
157 | 157 |
158 TrackDismissEvent(DISMISS_EVENT_CLOSE_BUTTON); | |
159 | |
160 web_contents->GetMainFrame()->Send( | 158 web_contents->GetMainFrame()->Send( |
161 new ChromeViewMsg_AppBannerDismissed( | 159 new ChromeViewMsg_AppBannerDismissed( |
162 web_contents->GetMainFrame()->GetRoutingID(), | 160 web_contents->GetMainFrame()->GetRoutingID(), |
163 event_request_id_)); | 161 event_request_id_)); |
164 | 162 |
165 if (!native_app_data_.is_null()) { | 163 if (!native_app_data_.is_null()) { |
166 AppBannerSettingsHelper::RecordBannerEvent( | 164 AppBannerSettingsHelper::RecordBannerDismissEvent( |
167 web_contents, web_contents->GetURL(), | 165 web_contents, native_app_package_, AppBannerSettingsHelper::NATIVE); |
168 native_app_package_, | |
169 AppBannerSettingsHelper::APP_BANNER_EVENT_DID_BLOCK, | |
170 AppBannerDataFetcher::GetCurrentTime()); | |
171 | |
172 rappor::SampleDomainAndRegistryFromGURL(g_browser_process->rappor_service(), | |
173 "AppBanner.NativeApp.Dismissed", | |
174 web_contents->GetURL()); | |
175 } else if (!web_app_data_.IsEmpty()) { | 166 } else if (!web_app_data_.IsEmpty()) { |
176 AppBannerSettingsHelper::RecordBannerEvent( | 167 AppBannerSettingsHelper::RecordBannerDismissEvent( |
177 web_contents, web_contents->GetURL(), | 168 web_contents, web_app_data_.start_url.spec(), |
178 web_app_data_.start_url.spec(), | 169 AppBannerSettingsHelper::WEB); |
179 AppBannerSettingsHelper::APP_BANNER_EVENT_DID_BLOCK, | |
180 AppBannerDataFetcher::GetCurrentTime()); | |
181 | |
182 rappor::SampleDomainAndRegistryFromGURL(g_browser_process->rappor_service(), | |
183 "AppBanner.WebApp.Dismissed", | |
184 web_contents->GetURL()); | |
185 } | 170 } |
186 } | 171 } |
187 | 172 |
188 base::string16 AppBannerInfoBarDelegateAndroid::GetMessageText() const { | 173 base::string16 AppBannerInfoBarDelegateAndroid::GetMessageText() const { |
189 return app_title_; | 174 return app_title_; |
190 } | 175 } |
191 | 176 |
192 int AppBannerInfoBarDelegateAndroid::GetButtons() const { | 177 int AppBannerInfoBarDelegateAndroid::GetButtons() const { |
193 return BUTTON_OK; | 178 return BUTTON_OK; |
194 } | 179 } |
(...skipping 22 matching lines...) Expand all Loading... |
217 native_app_data_.obj()); | 202 native_app_data_.obj()); |
218 | 203 |
219 if (was_opened) { | 204 if (was_opened) { |
220 TrackDismissEvent(DISMISS_EVENT_APP_OPEN); | 205 TrackDismissEvent(DISMISS_EVENT_APP_OPEN); |
221 } else { | 206 } else { |
222 TrackInstallEvent(INSTALL_EVENT_NATIVE_APP_INSTALL_TRIGGERED); | 207 TrackInstallEvent(INSTALL_EVENT_NATIVE_APP_INSTALL_TRIGGERED); |
223 } | 208 } |
224 SendBannerAccepted(web_contents, "play"); | 209 SendBannerAccepted(web_contents, "play"); |
225 return was_opened; | 210 return was_opened; |
226 } else if (!web_app_data_.IsEmpty()) { | 211 } else if (!web_app_data_.IsEmpty()) { |
227 AppBannerSettingsHelper::RecordBannerEvent( | 212 AppBannerSettingsHelper::RecordBannerInstallEvent( |
228 web_contents, web_contents->GetURL(), | 213 web_contents, web_app_data_.start_url.spec(), |
229 web_app_data_.start_url.spec(), | 214 AppBannerSettingsHelper::WEB); |
230 AppBannerSettingsHelper::APP_BANNER_EVENT_DID_ADD_TO_HOMESCREEN, | |
231 AppBannerDataFetcher::GetCurrentTime()); | |
232 | 215 |
233 ShortcutInfo info; | 216 ShortcutInfo info; |
234 info.UpdateFromManifest(web_app_data_); | 217 info.UpdateFromManifest(web_app_data_); |
235 content::BrowserThread::PostTask( | 218 content::BrowserThread::PostTask( |
236 content::BrowserThread::IO, | 219 content::BrowserThread::IO, |
237 FROM_HERE, | 220 FROM_HERE, |
238 base::Bind(&ShortcutHelper::AddShortcutInBackgroundWithSkBitmap, | 221 base::Bind(&ShortcutHelper::AddShortcutInBackgroundWithSkBitmap, |
239 info, | 222 info, |
240 *app_icon_.get())); | 223 *app_icon_.get())); |
241 | 224 |
242 TrackInstallEvent(INSTALL_EVENT_WEB_APP_INSTALLED); | |
243 SendBannerAccepted(web_contents, "web"); | 225 SendBannerAccepted(web_contents, "web"); |
244 rappor::SampleDomainAndRegistryFromGURL(g_browser_process->rappor_service(), | |
245 "AppBanner.WebApp.Installed", | |
246 web_contents->GetURL()); | |
247 return true; | 226 return true; |
248 } | 227 } |
249 | 228 |
250 return true; | 229 return true; |
251 } | 230 } |
252 | 231 |
253 bool AppBannerInfoBarDelegateAndroid::LinkClicked( | 232 bool AppBannerInfoBarDelegateAndroid::LinkClicked( |
254 WindowOpenDisposition disposition) { | 233 WindowOpenDisposition disposition) { |
255 if (native_app_data_.is_null()) | 234 if (native_app_data_.is_null()) |
256 return false; | 235 return false; |
(...skipping 17 matching lines...) Expand all Loading... |
274 | 253 |
275 TrackDismissEvent(DISMISS_EVENT_BANNER_CLICK); | 254 TrackDismissEvent(DISMISS_EVENT_BANNER_CLICK); |
276 return true; | 255 return true; |
277 } | 256 } |
278 | 257 |
279 bool RegisterAppBannerInfoBarDelegateAndroid(JNIEnv* env) { | 258 bool RegisterAppBannerInfoBarDelegateAndroid(JNIEnv* env) { |
280 return RegisterNativesImpl(env); | 259 return RegisterNativesImpl(env); |
281 } | 260 } |
282 | 261 |
283 } // namespace banners | 262 } // namespace banners |
OLD | NEW |