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

Side by Side Diff: chrome/browser/android/banners/app_banner_manager_android.cc

Issue 2248293002: Do not install WebAPKs with web manifests with invalid URL components (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merge branch 'master' into webapk_installable_checker Created 4 years, 3 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
1 // Copyright 2015 The Chromium Authors. All rights reserved. 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 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 <utility> 5 #include <utility>
6 6
7 #include "chrome/browser/android/banners/app_banner_manager_android.h" 7 #include "chrome/browser/android/banners/app_banner_manager_android.h"
8 8
9 #include "base/android/jni_android.h" 9 #include "base/android/jni_android.h"
10 #include "base/android/jni_string.h" 10 #include "base/android/jni_string.h"
11 #include "base/memory/ptr_util.h" 11 #include "base/memory/ptr_util.h"
12 #include "base/strings/utf_string_conversions.h" 12 #include "base/strings/utf_string_conversions.h"
13 #include "chrome/browser/android/banners/app_banner_infobar_delegate_android.h" 13 #include "chrome/browser/android/banners/app_banner_infobar_delegate_android.h"
14 #include "chrome/browser/android/shortcut_helper.h" 14 #include "chrome/browser/android/shortcut_helper.h"
15 #include "chrome/browser/android/webapk/chrome_webapk_host.h"
16 #include "chrome/browser/android/webapk/webapk_web_manifest_checker.h"
15 #include "chrome/browser/banners/app_banner_metrics.h" 17 #include "chrome/browser/banners/app_banner_metrics.h"
16 #include "chrome/browser/infobars/infobar_service.h" 18 #include "chrome/browser/infobars/infobar_service.h"
17 #include "chrome/browser/manifest/manifest_icon_downloader.h" 19 #include "chrome/browser/manifest/manifest_icon_downloader.h"
18 #include "chrome/browser/manifest/manifest_icon_selector.h" 20 #include "chrome/browser/manifest/manifest_icon_selector.h"
19 #include "chrome/browser/ui/android/infobars/app_banner_infobar_android.h" 21 #include "chrome/browser/ui/android/infobars/app_banner_infobar_android.h"
20 #include "chrome/common/chrome_constants.h" 22 #include "chrome/common/chrome_constants.h"
21 #include "content/public/browser/web_contents.h" 23 #include "content/public/browser/web_contents.h"
22 #include "content/public/common/frame_navigate_params.h" 24 #include "content/public/common/frame_navigate_params.h"
23 #include "jni/AppBannerManager_jni.h" 25 #include "jni/AppBannerManager_jni.h"
24 #include "third_party/skia/include/core/SkBitmap.h" 26 #include "third_party/skia/include/core/SkBitmap.h"
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 manifest_.related_applications.size()) { 149 manifest_.related_applications.size()) {
148 for (const auto& application : manifest_.related_applications) { 150 for (const auto& application : manifest_.related_applications) {
149 std::string platform = base::UTF16ToUTF8(application.platform.string()); 151 std::string platform = base::UTF16ToUTF8(application.platform.string());
150 std::string id = base::UTF16ToUTF8(application.id.string()); 152 std::string id = base::UTF16ToUTF8(application.id.string());
151 if (CanHandleNonWebApp(platform, application.url, id)) 153 if (CanHandleNonWebApp(platform, application.url, id))
152 return; 154 return;
153 } 155 }
154 Stop(); 156 Stop();
155 } 157 }
156 158
159 if (ChromeWebApkHost::AreWebApkEnabled()) {
160 if (!AreWebManifestUrlsWebApkCompatible(manifest_)) {
161 ReportStatus(web_contents(), URL_NOT_SUPPORTED_FOR_WEBAPK);
162 Stop();
163 return;
164 }
165 }
166
157 // No native app banner was requested. Continue checking for a web app banner. 167 // No native app banner was requested. Continue checking for a web app banner.
158 AppBannerManager::PerformInstallableCheck(); 168 AppBannerManager::PerformInstallableCheck();
159 } 169 }
160 170
161 void AppBannerManagerAndroid::OnAppIconFetched(const SkBitmap& bitmap) { 171 void AppBannerManagerAndroid::OnAppIconFetched(const SkBitmap& bitmap) {
162 if (bitmap.drawsNothing()) { 172 if (bitmap.drawsNothing()) {
163 ReportStatus(web_contents(), NO_ICON_AVAILABLE); 173 ReportStatus(web_contents(), NO_ICON_AVAILABLE);
164 Stop(); 174 Stop();
165 } 175 }
166 176
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 } 330 }
321 331
322 // static 332 // static
323 void SetTimeDeltaForTesting(JNIEnv* env, 333 void SetTimeDeltaForTesting(JNIEnv* env,
324 const JavaParamRef<jclass>& clazz, 334 const JavaParamRef<jclass>& clazz,
325 jint days) { 335 jint days) {
326 AppBannerManager::SetTimeDeltaForTesting(days); 336 AppBannerManager::SetTimeDeltaForTesting(days);
327 } 337 }
328 338
329 } // namespace banners 339 } // namespace banners
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698