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

Side by Side Diff: chrome/browser/installable/installable_logging.cc

Issue 2160513002: Extract AppBannerDataFetcher into an InstallableManager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressing comments Created 4 years, 4 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 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/installable/installable_logging.h"
6
7 #include "base/macros.h"
8 #include "base/strings/stringprintf.h"
9 #include "content/public/browser/render_frame_host.h"
10 #include "content/public/browser/web_contents.h"
11
12 namespace {
13
14 const std::string& GetMessagePrefix() {
15 CR_DEFINE_STATIC_LOCAL(std::string, message_prefix,
16 ("Site cannot be installed: "));
17 return message_prefix;
18 }
19
20 // Error message strings corresponding to the InstallableErrorCode enum.
21 static const char kRendererExitingMessage[] =
22 "the page is in the process of being closed";
23 static const char kRendererCancelledMessage[] =
24 "the page has requested the banner prompt be cancelled";
25 static const char kUserNavigatedMessage[] =
26 "the page was navigated before the banner could be shown";
27 static const char kNotInMainFrameMessage[] =
28 "the page is not loaded in the main frame";
29 static const char kNotFromSecureOriginMessage[] =
30 "the page is not served from a secure origin";
31 static const char kNoManifestMessage[] =
32 "the page has no manifest <link> URL";
33 static const char kManifestEmptyMessage[] =
34 "the manifest could not be fetched, is empty, or could not be parsed";
35 static const char kStartUrlNotValidMessage[] =
36 "the start URL in manifest is not valid";
37 static const char kManifestMissingNameOrShortNameMessage[] =
38 "one of manifest name or short name must be specified";
39 static const char kManifestDisplayNotSupportedMessage[] =
40 "the manifest display property must be set to 'standalone' or 'fullscreen'";
41 static const char kManifestMissingSuitableIconMessage[] =
42 "the manifest does not contain a suitable icon - PNG format of at least "
43 "%spx is required, and the sizes attribute must be set";
44 static const char kNoMatchingServiceWorkerMessage[] =
45 "no matching service worker detected. You may need to reload the page, or "
46 "check that the service worker for the current page also controls the "
47 "start URL from the manifest";
48 static const char kNoAcceptableIconMessage[] =
49 "a %spx square icon is required, but no supplied icon meets this "
50 "requirement";
51 static const char kCannotDownloadIconMessage[] =
52 "could not download the specified icon";
53 static const char kNoIconAvailableMessage[] =
54 "no icon available to display";
55 static const char kPlatformNotSupportedOnAndroidMessage[] =
56 "the specified application platform is not supported on Android";
57 static const char kNoIdSpecifiedMessage[] =
58 "no Play store ID provided";
59 static const char kIdsDoNotMatchMessage[] =
60 "a Play Store app URL and Play Store ID were specified in the manifest, "
61 "but they do not match";
62
63 } // namespace
64
65 void LogErrorToConsole(content::WebContents* web_contents,
66 InstallableErrorCode code,
67 const std::string& param) {
68 if (!web_contents)
69 return;
70
71 content::ConsoleMessageLevel severity = content::CONSOLE_MESSAGE_LEVEL_ERROR;
72 const char* pattern = nullptr;
73 switch (code) {
74 case NO_ERROR_DETECTED:
75 case MAX_ERROR_CODE:
76 return;
77 case RENDERER_EXITING:
78 pattern = kRendererExitingMessage;
79 break;
80 case RENDERER_CANCELLED:
81 pattern = kRendererCancelledMessage;
82 severity = content::CONSOLE_MESSAGE_LEVEL_LOG;
83 break;
84 case USER_NAVIGATED:
85 pattern = kUserNavigatedMessage;
86 severity = content::CONSOLE_MESSAGE_LEVEL_WARNING;
87 break;
88 case NOT_IN_MAIN_FRAME:
89 pattern = kNotInMainFrameMessage;
90 break;
91 case NOT_FROM_SECURE_ORIGIN:
92 pattern = kNotFromSecureOriginMessage;
93 break;
94 case NO_MANIFEST:
95 pattern = kNoManifestMessage;
96 break;
97 case MANIFEST_EMPTY:
98 pattern = kManifestEmptyMessage;
99 break;
100 case START_URL_NOT_VALID:
101 pattern = kStartUrlNotValidMessage;
102 break;
103 case MANIFEST_MISSING_NAME_OR_SHORT_NAME:
104 pattern = kManifestMissingNameOrShortNameMessage;
105 break;
106 case MANIFEST_DISPLAY_NOT_SUPPORTED:
107 pattern = kManifestDisplayNotSupportedMessage;
108 break;
109 case MANIFEST_MISSING_SUITABLE_ICON:
110 pattern = kManifestMissingSuitableIconMessage;
111 break;
112 case NO_MATCHING_SERVICE_WORKER:
113 pattern = kNoMatchingServiceWorkerMessage;
114 break;
115 case NO_ACCEPTABLE_ICON:
116 pattern = kNoAcceptableIconMessage;
117 break;
118 case CANNOT_DOWNLOAD_ICON:
119 pattern = kCannotDownloadIconMessage;
120 break;
121 case NO_ICON_AVAILABLE:
122 pattern = kNoIconAvailableMessage;
123 break;
124 case PLATFORM_NOT_SUPPORTED_ON_ANDROID:
125 pattern = kPlatformNotSupportedOnAndroidMessage;
126 severity = content::CONSOLE_MESSAGE_LEVEL_WARNING;
127 break;
128 case NO_ID_SPECIFIED:
129 pattern = kNoIdSpecifiedMessage;
130 break;
131 case IDS_DO_NOT_MATCH:
132 pattern = kIdsDoNotMatchMessage;
133 break;
134 }
135
136 if (!pattern)
137 return;
138 std::string message = param.empty() ?
139 pattern : base::StringPrintf(pattern, param.c_str());
140 web_contents->GetMainFrame()->AddMessageToConsole(
141 severity, GetMessagePrefix() + message);
142 }
OLDNEW
« no previous file with comments | « chrome/browser/installable/installable_logging.h ('k') | chrome/browser/installable/installable_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698