Index: chrome/browser/banners/app_banner_debug_log.cc |
diff --git a/chrome/browser/banners/app_banner_debug_log.cc b/chrome/browser/banners/app_banner_debug_log.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..36818b0b6ade365ccece596be18304a58e9c7375 |
--- /dev/null |
+++ b/chrome/browser/banners/app_banner_debug_log.cc |
@@ -0,0 +1,59 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/banners/app_banner_debug_log.h" |
+ |
+#include "base/command_line.h" |
+#include "chrome/common/chrome_switches.h" |
+#include "chrome/common/render_messages.h" |
+#include "content/public/browser/render_frame_host.h" |
+#include "content/public/browser/web_contents.h" |
+#include "content/public/browser/web_contents_observer.h" |
+ |
+namespace banners { |
+ |
+const char kRendererRequestCancel[] = |
+ "renderer has requested the banner prompt be cancelled"; |
+const char kManifestEmpty[] = "manifest is empty"; |
+const char kCannotDetermineBestIcon[] = |
+ "could not determine the best icon to use"; |
+const char kNoMatchingServiceWorker[] = |
+ "no matching service worker detected. You may need to reload the page, or " |
+ "check that the service worker for the current page also controls the " |
+ "start URL from the manifest"; |
+const char kNoIconAvailable[] = "no icon available to display"; |
+const char kBannerAlreadyAdded[] = |
+ "the banner has already been added to the homescreen"; |
+const char kUserNavigatedBeforeBannerShown[] = |
+ "the user navigated before the banner could be shown"; |
+const char kStartURLNotValid[] = "start URL in manifest is not valid"; |
+const char kManifestMissingNameOrShortName[] = |
+ "one of manifest name or short name must be specified"; |
+const char kManifestMissingSuitableIcon[] = |
+ "manifest does not contain a suitable icon - PNG format of at least " |
+ "144x144px is required"; |
+const char kNotServedFromSecureOrigin[] = |
+ "page not served from a secure origin"; |
+// The leading space is intentional as another string is prepended. |
+const char kIgnoredNotSupportedOnAndroid[] = |
+ " application ignored: not supported on Android"; |
+const char kIgnoredNoId[] = "play application ignored: no id provided"; |
+ |
+void OutputDeveloperNotShownMessage(content::WebContents* web_contents, |
+ const std::string& message) { |
+ OutputDeveloperDebugMessage(web_contents, "not shown: " + message); |
+} |
+ |
+void OutputDeveloperDebugMessage(content::WebContents* web_contents, |
+ const std::string& message) { |
+ std::string log_message = "App banner " + message; |
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kBypassAppBannerEngagementChecks) && web_contents) { |
+ web_contents->GetMainFrame()->Send( |
+ new ChromeViewMsg_AppBannerDebugMessageRequest( |
+ web_contents->GetMainFrame()->GetRoutingID(), log_message)); |
+ } |
+} |
+ |
+} // namespace banners |