| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/banners/app_banner_settings_helper.h" | 5 #include "chrome/browser/banners/app_banner_settings_helper.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 173 settings->SetWebsiteSetting(pattern, ContentSettingsPattern::Wildcard(), | 173 settings->SetWebsiteSetting(pattern, ContentSettingsPattern::Wildcard(), |
| 174 CONTENT_SETTINGS_TYPE_APP_BANNER, std::string(), | 174 CONTENT_SETTINGS_TYPE_APP_BANNER, std::string(), |
| 175 origin_dict.release()); | 175 origin_dict.release()); |
| 176 } | 176 } |
| 177 | 177 |
| 178 bool AppBannerSettingsHelper::ShouldShowBanner( | 178 bool AppBannerSettingsHelper::ShouldShowBanner( |
| 179 content::WebContents* web_contents, | 179 content::WebContents* web_contents, |
| 180 const GURL& origin_url, | 180 const GURL& origin_url, |
| 181 const std::string& package_name_or_start_url, | 181 const std::string& package_name_or_start_url, |
| 182 base::Time time) { | 182 base::Time time) { |
| 183 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | |
| 184 switches::kBypassAppBannerEngagementChecks)) { | |
| 185 return true; | |
| 186 } | |
| 187 | |
| 188 // Don't show if it has been added to the homescreen. | 183 // Don't show if it has been added to the homescreen. |
| 189 base::Time added_time = | 184 base::Time added_time = |
| 190 GetSingleBannerEvent(web_contents, origin_url, package_name_or_start_url, | 185 GetSingleBannerEvent(web_contents, origin_url, package_name_or_start_url, |
| 191 APP_BANNER_EVENT_DID_ADD_TO_HOMESCREEN); | 186 APP_BANNER_EVENT_DID_ADD_TO_HOMESCREEN); |
| 192 if (!added_time.is_null()) { | 187 if (!added_time.is_null()) { |
| 193 banners::TrackDisplayEvent(banners::DISPLAY_EVENT_INSTALLED_PREVIOUSLY); | 188 banners::TrackDisplayEvent(banners::DISPLAY_EVENT_INSTALLED_PREVIOUSLY); |
| 194 return false; | 189 return false; |
| 195 } | 190 } |
| 196 | 191 |
| 192 // Otherwise, ignore all checks if the flag to do so is set. |
| 193 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 194 switches::kBypassAppBannerEngagementChecks)) { |
| 195 return true; |
| 196 } |
| 197 |
| 197 base::Time blocked_time = | 198 base::Time blocked_time = |
| 198 GetSingleBannerEvent(web_contents, origin_url, package_name_or_start_url, | 199 GetSingleBannerEvent(web_contents, origin_url, package_name_or_start_url, |
| 199 APP_BANNER_EVENT_DID_BLOCK); | 200 APP_BANNER_EVENT_DID_BLOCK); |
| 200 | 201 |
| 201 // Null times are in the distant past, so the delta between real times and | 202 // Null times are in the distant past, so the delta between real times and |
| 202 // null events will always be greater than the limits. | 203 // null events will always be greater than the limits. |
| 203 if (time - blocked_time < | 204 if (time - blocked_time < |
| 204 base::TimeDelta::FromDays(kMinimumBannerBlockedToBannerShown)) { | 205 base::TimeDelta::FromDays(kMinimumBannerBlockedToBannerShown)) { |
| 205 banners::TrackDisplayEvent(banners::DISPLAY_EVENT_BLOCKED_PREVIOUSLY); | 206 banners::TrackDisplayEvent(banners::DISPLAY_EVENT_BLOCKED_PREVIOUSLY); |
| 206 return false; | 207 return false; |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 353 GetAppDict(origin_dict.get(), package_name_or_start_url); | 354 GetAppDict(origin_dict.get(), package_name_or_start_url); |
| 354 if (!app_dict) | 355 if (!app_dict) |
| 355 return; | 356 return; |
| 356 | 357 |
| 357 // Update the setting and save it back. | 358 // Update the setting and save it back. |
| 358 app_dict->SetBoolean(kHasBlockedKey, true); | 359 app_dict->SetBoolean(kHasBlockedKey, true); |
| 359 settings->SetWebsiteSetting(pattern, ContentSettingsPattern::Wildcard(), | 360 settings->SetWebsiteSetting(pattern, ContentSettingsPattern::Wildcard(), |
| 360 CONTENT_SETTINGS_TYPE_APP_BANNER, std::string(), | 361 CONTENT_SETTINGS_TYPE_APP_BANNER, std::string(), |
| 361 origin_dict.release()); | 362 origin_dict.release()); |
| 362 } | 363 } |
| OLD | NEW |