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

Unified Diff: chrome/browser/banners/app_banner_data_fetcher.cc

Issue 1569893003: Add "Request app banner" context menu in DevTools (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: incorporated pfeldman's comment Created 4 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/banners/app_banner_data_fetcher.cc
diff --git a/chrome/browser/banners/app_banner_data_fetcher.cc b/chrome/browser/banners/app_banner_data_fetcher.cc
index 321e8d3ef4bbbfe16aaa086a2c378a6ad6c7239e..d953485adfbb7566df7863d248c28fd44d7f2dc5 100644
--- a/chrome/browser/banners/app_banner_data_fetcher.cc
+++ b/chrome/browser/banners/app_banner_data_fetcher.cc
@@ -71,11 +71,11 @@ void AppBannerDataFetcher::SetTimeDeltaForTesting(int days) {
gTimeDeltaForTesting = base::TimeDelta::FromDays(days);
}
-AppBannerDataFetcher::AppBannerDataFetcher(
- content::WebContents* web_contents,
- base::WeakPtr<Delegate> delegate,
- int ideal_icon_size_in_dp,
- int minimum_icon_size_in_dp)
+AppBannerDataFetcher::AppBannerDataFetcher(content::WebContents* web_contents,
+ base::WeakPtr<Delegate> delegate,
+ int ideal_icon_size_in_dp,
+ int minimum_icon_size_in_dp,
+ bool is_debug_mode)
: WebContentsObserver(web_contents),
weak_delegate_(delegate),
ideal_icon_size_in_dp_(ideal_icon_size_in_dp),
@@ -83,6 +83,9 @@ AppBannerDataFetcher::AppBannerDataFetcher(
is_active_(false),
was_canceled_by_page_(false),
page_requested_prompt_(false),
+ is_debug_mode_(is_debug_mode ||
+ base::CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kBypassAppBannerEngagementChecks)),
event_request_id_(-1) {
DCHECK(minimum_icon_size_in_dp <= ideal_icon_size_in_dp);
}
@@ -184,7 +187,8 @@ void AppBannerDataFetcher::OnBannerPromptReply(
!page_requested_prompt_) {
was_canceled_by_page_ = true;
referrer_ = referrer;
- OutputDeveloperNotShownMessage(web_contents, kRendererRequestCancel);
+ OutputDeveloperNotShownMessage(web_contents, kRendererRequestCancel,
+ is_debug_mode_);
return;
}
@@ -250,7 +254,7 @@ void AppBannerDataFetcher::OnDidHasManifest(bool has_manifest) {
if (!CheckFetcherIsStillAlive(web_contents) || !has_manifest) {
if (!has_manifest)
- OutputDeveloperNotShownMessage(web_contents, kNoManifest);
+ OutputDeveloperNotShownMessage(web_contents, kNoManifest, is_debug_mode_);
Cancel();
return;
@@ -268,7 +272,8 @@ void AppBannerDataFetcher::OnDidGetManifest(
return;
}
if (manifest.IsEmpty()) {
- OutputDeveloperNotShownMessage(web_contents, kManifestEmpty);
+ OutputDeveloperNotShownMessage(web_contents, kManifestEmpty,
+ is_debug_mode_);
Cancel();
return;
}
@@ -278,12 +283,13 @@ void AppBannerDataFetcher::OnDidGetManifest(
for (const auto& application : manifest.related_applications) {
std::string platform = base::UTF16ToUTF8(application.platform.string());
std::string id = base::UTF16ToUTF8(application.id.string());
- if (weak_delegate_->HandleNonWebApp(platform, application.url, id))
+ if (weak_delegate_->HandleNonWebApp(platform, application.url, id,
+ is_debug_mode_))
return;
}
}
- if (!IsManifestValidForWebApp(manifest, web_contents)) {
+ if (!IsManifestValidForWebApp(manifest, web_contents, is_debug_mode_)) {
Cancel();
return;
}
@@ -293,9 +299,9 @@ void AppBannerDataFetcher::OnDidGetManifest(
if (IsWebAppInstalled(web_contents->GetBrowserContext(),
manifest.start_url) &&
- !base::CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kBypassAppBannerEngagementChecks)) {
- OutputDeveloperNotShownMessage(web_contents, kBannerAlreadyAdded);
+ !is_debug_mode_) {
+ OutputDeveloperNotShownMessage(web_contents, kBannerAlreadyAdded,
+ is_debug_mode_);
Cancel();
return;
}
@@ -327,7 +333,8 @@ void AppBannerDataFetcher::OnDidCheckHasServiceWorker(
if (!has_service_worker) {
TrackDisplayEvent(DISPLAY_EVENT_LACKS_SERVICE_WORKER);
- OutputDeveloperNotShownMessage(web_contents, kNoMatchingServiceWorker);
+ OutputDeveloperNotShownMessage(web_contents, kNoMatchingServiceWorker,
+ is_debug_mode_);
Cancel();
return;
}
@@ -345,7 +352,8 @@ void AppBannerDataFetcher::OnHasServiceWorker(
gfx::Screen::GetScreenFor(web_contents->GetNativeView()));
if (!FetchAppIcon(web_contents, icon_url)) {
- OutputDeveloperNotShownMessage(web_contents, kCannotDetermineBestIcon);
+ OutputDeveloperNotShownMessage(web_contents, kCannotDetermineBestIcon,
+ is_debug_mode_);
Cancel();
}
}
@@ -370,16 +378,18 @@ void AppBannerDataFetcher::OnAppIconFetched(const SkBitmap& bitmap) {
return;
}
if (bitmap.drawsNothing()) {
- OutputDeveloperNotShownMessage(web_contents, kNoIconAvailable);
+ OutputDeveloperNotShownMessage(web_contents, kNoIconAvailable,
+ is_debug_mode_);
Cancel();
return;
}
RecordCouldShowBanner();
- if (!CheckIfShouldShowBanner()) {
+ if (!is_debug_mode_ && !CheckIfShouldShowBanner()) {
// At this point, the only possible case is that the banner has been added
// to the homescreen, given all of the other checks that have been made.
- OutputDeveloperNotShownMessage(web_contents, kBannerAlreadyAdded);
+ OutputDeveloperNotShownMessage(web_contents, kBannerAlreadyAdded,
+ is_debug_mode_);
Cancel();
return;
}
@@ -419,8 +429,8 @@ bool AppBannerDataFetcher::CheckIfShouldShowBanner() {
bool AppBannerDataFetcher::CheckFetcherIsStillAlive(
content::WebContents* web_contents) {
if (!is_active_) {
- OutputDeveloperNotShownMessage(web_contents,
- kUserNavigatedBeforeBannerShown);
+ OutputDeveloperNotShownMessage(
+ web_contents, kUserNavigatedBeforeBannerShown, is_debug_mode_);
return false;
}
if (!web_contents) {
@@ -432,22 +442,25 @@ bool AppBannerDataFetcher::CheckFetcherIsStillAlive(
// static
bool AppBannerDataFetcher::IsManifestValidForWebApp(
const content::Manifest& manifest,
- content::WebContents* web_contents) {
+ content::WebContents* web_contents,
+ bool is_debug_mode) {
if (manifest.IsEmpty()) {
- OutputDeveloperNotShownMessage(web_contents, kManifestEmpty);
+ OutputDeveloperNotShownMessage(web_contents, kManifestEmpty, is_debug_mode);
return false;
}
if (!manifest.start_url.is_valid()) {
- OutputDeveloperNotShownMessage(web_contents, kStartURLNotValid);
+ OutputDeveloperNotShownMessage(web_contents, kStartURLNotValid,
+ is_debug_mode);
return false;
}
if (manifest.name.is_null() && manifest.short_name.is_null()) {
- OutputDeveloperNotShownMessage(web_contents,
- kManifestMissingNameOrShortName);
+ OutputDeveloperNotShownMessage(
+ web_contents, kManifestMissingNameOrShortName, is_debug_mode);
return false;
}
if (!DoesManifestContainRequiredIcon(manifest)) {
- OutputDeveloperNotShownMessage(web_contents, kManifestMissingSuitableIcon);
+ OutputDeveloperNotShownMessage(web_contents, kManifestMissingSuitableIcon,
+ is_debug_mode);
return false;
}
return true;
« no previous file with comments | « chrome/browser/banners/app_banner_data_fetcher.h ('k') | chrome/browser/banners/app_banner_data_fetcher_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698