| OLD | NEW |
| (Empty) |
| 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 | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "chrome/browser/banners/app_banner_debug_log.h" | |
| 6 | |
| 7 #include "base/strings/stringprintf.h" | |
| 8 #include "content/public/browser/render_frame_host.h" | |
| 9 #include "content/public/browser/web_contents.h" | |
| 10 | |
| 11 namespace banners { | |
| 12 | |
| 13 static const char kRendererRequestCancelMessage[] = | |
| 14 "page has requested the banner prompt be cancelled"; | |
| 15 static const char kManifestEmptyMessage[] = | |
| 16 "manifest could not be fetched, is empty, or could not be parsed"; | |
| 17 static const char kNoManifestMessage[] = | |
| 18 "site has no manifest <link> URL"; | |
| 19 static const char kNoIconMatchingRequirementsMessage[] = | |
| 20 "%spx square icon is required, but no supplied icon is at least this size"; | |
| 21 static const char kCannotDownloadIconMessage[] = | |
| 22 "could not download the specified icon"; | |
| 23 static const char kNoMatchingServiceWorkerMessage[] = | |
| 24 "no matching service worker detected. You may need to reload the page, or " | |
| 25 "check that the service worker for the current page also controls the " | |
| 26 "start URL from the manifest"; | |
| 27 static const char kNoIconAvailableMessage[] = | |
| 28 "no icon available to display"; | |
| 29 static const char kUserNavigatedBeforeBannerShownMessage[] = | |
| 30 "the user navigated before the banner could be shown"; | |
| 31 static const char kStartURLNotValidMessage[] = | |
| 32 "start URL in manifest is not valid"; | |
| 33 static const char kManifestDisplayStandaloneFullscreenMessage[] = | |
| 34 "manifest display property must be set to 'standalone' or 'fullscreen'"; | |
| 35 static const char kManifestMissingNameOrShortNameMessage[] = | |
| 36 "one of manifest name or short name must be specified"; | |
| 37 static const char kManifestMissingSuitableIconMessage[] = | |
| 38 "manifest does not contain a suitable icon - PNG format of at least " | |
| 39 "144x144px is required, and the sizes attribute must be set"; | |
| 40 static const char kNotLoadedInMainFrameMessage[] = | |
| 41 "page not loaded in the main frame"; | |
| 42 static const char kNotServedFromSecureOriginMessage[] = | |
| 43 "page not served from a secure origin"; | |
| 44 // The leading space is intentional as another string is prepended. | |
| 45 static const char kIgnoredNotSupportedOnAndroidMessage[] = | |
| 46 "%s application is not supported on Android"; | |
| 47 static const char kIgnoredNoIdMessage[] = | |
| 48 "no Play store ID provided"; | |
| 49 static const char kIgnoredIdsDoNotMatchMessage[] = | |
| 50 "a Play app URL and Play store ID were specified in the manifest, but they" | |
| 51 " do not match"; | |
| 52 | |
| 53 void OutputDeveloperNotShownMessage(content::WebContents* web_contents, | |
| 54 OutputDeveloperMessageCode code, | |
| 55 bool is_debug_mode) { | |
| 56 OutputDeveloperNotShownMessage(web_contents, code, std::string(), | |
| 57 is_debug_mode); | |
| 58 } | |
| 59 | |
| 60 void OutputDeveloperNotShownMessage(content::WebContents* web_contents, | |
| 61 OutputDeveloperMessageCode code, | |
| 62 const std::string& param, | |
| 63 bool is_debug_mode) { | |
| 64 if (!is_debug_mode || !web_contents) | |
| 65 return; | |
| 66 | |
| 67 const char* pattern; | |
| 68 content::ConsoleMessageLevel severity = content::CONSOLE_MESSAGE_LEVEL_ERROR; | |
| 69 switch (code) { | |
| 70 case kRendererRequestCancel: | |
| 71 pattern = kRendererRequestCancelMessage; | |
| 72 severity = content::CONSOLE_MESSAGE_LEVEL_LOG; | |
| 73 break; | |
| 74 case kManifestEmpty: | |
| 75 pattern = kManifestEmptyMessage; | |
| 76 break; | |
| 77 case kNoManifest: | |
| 78 pattern = kNoManifestMessage; | |
| 79 break; | |
| 80 case kNoIconMatchingRequirements: | |
| 81 pattern = kNoIconMatchingRequirementsMessage; | |
| 82 break; | |
| 83 case kCannotDownloadIcon: | |
| 84 pattern = kCannotDownloadIconMessage; | |
| 85 break; | |
| 86 case kNoMatchingServiceWorker: | |
| 87 pattern = kNoMatchingServiceWorkerMessage; | |
| 88 break; | |
| 89 case kNoIconAvailable: | |
| 90 pattern = kNoIconAvailableMessage; | |
| 91 break; | |
| 92 case kUserNavigatedBeforeBannerShown: | |
| 93 pattern = kUserNavigatedBeforeBannerShownMessage; | |
| 94 severity = content::CONSOLE_MESSAGE_LEVEL_WARNING; | |
| 95 break; | |
| 96 case kStartURLNotValid: | |
| 97 pattern = kStartURLNotValidMessage; | |
| 98 break; | |
| 99 case kManifestDisplayStandaloneFullscreen: | |
| 100 pattern = kManifestDisplayStandaloneFullscreenMessage; | |
| 101 break; | |
| 102 case kManifestMissingNameOrShortName: | |
| 103 pattern = kManifestMissingNameOrShortNameMessage; | |
| 104 break; | |
| 105 case kManifestMissingSuitableIcon: | |
| 106 pattern = kManifestMissingSuitableIconMessage; | |
| 107 break; | |
| 108 case kNotLoadedInMainFrame: | |
| 109 pattern = kNotLoadedInMainFrameMessage; | |
| 110 break; | |
| 111 case kNotServedFromSecureOrigin: | |
| 112 pattern = kNotServedFromSecureOriginMessage; | |
| 113 break; | |
| 114 case kIgnoredNotSupportedOnAndroid: | |
| 115 pattern = kIgnoredNotSupportedOnAndroidMessage; | |
| 116 severity = content::CONSOLE_MESSAGE_LEVEL_WARNING; | |
| 117 break; | |
| 118 case kIgnoredNoId: | |
| 119 pattern = kIgnoredNoIdMessage; | |
| 120 break; | |
| 121 case kIgnoredIdsDoNotMatch: | |
| 122 pattern = kIgnoredIdsDoNotMatchMessage; | |
| 123 break; | |
| 124 default: | |
| 125 NOTREACHED(); | |
| 126 return; | |
| 127 } | |
| 128 std::string message = param.empty() ? | |
| 129 pattern : base::StringPrintf(pattern, param.c_str()); | |
| 130 web_contents->GetMainFrame()->AddMessageToConsole( | |
| 131 severity, "App banner not shown: " + message); | |
| 132 | |
| 133 } | |
| 134 | |
| 135 } // namespace banners | |
| OLD | NEW |