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

Side by Side Diff: chrome/browser/android/banners/app_banner_data_fetcher_android.h

Issue 1148163003: Allow only responsive websites to install as a web app on mobile. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merging with latest master Created 5 years, 6 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 #ifndef CHROME_BROWSER_ANDROID_BANNERS_APP_BANNER_DATA_FETCHER_ANDROID_H_ 5 #ifndef CHROME_BROWSER_ANDROID_BANNERS_APP_BANNER_DATA_FETCHER_ANDROID_H_
6 #define CHROME_BROWSER_ANDROID_BANNERS_APP_BANNER_DATA_FETCHER_ANDROID_H_ 6 #define CHROME_BROWSER_ANDROID_BANNERS_APP_BANNER_DATA_FETCHER_ANDROID_H_
7 7
8 #include "base/android/jni_android.h" 8 #include "base/android/jni_android.h"
9 #include "chrome/browser/banners/app_banner_data_fetcher.h" 9 #include "chrome/browser/banners/app_banner_data_fetcher.h"
10 10
11 namespace banners { 11 namespace banners {
12 12
13 // Fetches data required to show a banner for the URL currently shown by the 13 // Fetches data required to show a banner for the URL currently shown by the
14 // WebContents. Extends the regular fetch to add support for Android apps. 14 // WebContents. Extends the regular fetch to add support for Android apps.
15 class AppBannerDataFetcherAndroid : public AppBannerDataFetcher { 15 class AppBannerDataFetcherAndroid : public AppBannerDataFetcher {
16 public: 16 public:
17 AppBannerDataFetcherAndroid( 17 AppBannerDataFetcherAndroid(
18 content::WebContents* web_contents, 18 content::WebContents* web_contents,
19 base::WeakPtr<Delegate> weak_delegate, 19 base::WeakPtr<Delegate> weak_delegate,
20 int ideal_icon_size); 20 int ideal_icon_size);
21 21
22 // Saves information about the Android app being promoted by the current page, 22 // Saves information about the Android app being promoted by the current page,
23 // then continues the creation pipeline. 23 // then continues the creation pipeline.
24 bool ContinueFetching(const base::string16& app_title, 24 bool ContinueFetching(const base::string16& app_title,
25 const std::string& app_package, 25 const std::string& app_package,
26 base::android::ScopedJavaLocalRef<jobject> app_data, 26 base::android::ScopedJavaLocalRef<jobject> app_data,
27 const GURL& image_url); 27 const GURL& image_url);
28 28
29 using AppBannerDataFetcher::OnMessageReceived;
benwells 2015/06/11 01:54:24 Why do you have this?
dominickn (DO NOT USE) 2015/06/11 03:32:12 The parent class OnMessageReceived() has a differe
30
31 // WebContentsObserver override.
32 bool OnMessageReceived(const IPC::Message& message) override;
benwells 2015/06/11 01:54:24 Do these overrides need to be public? Can they be
dominickn (DO NOT USE) 2015/06/11 03:32:12 HandleWebApp should be protected (it's protected i
benwells 2015/06/15 04:14:59 OnMessageReceived should also be protected or priv
33
34 // AppBannerDataFetcher override. Queries the site's meta viewport tag to
35 // detect whether it is responsive, and proceeds by calling the base class
36 // implementation.
37 void HandleWebApp(content::WebContents* web_contents) override;
38
29 protected: 39 protected:
30 ~AppBannerDataFetcherAndroid() override; 40 ~AppBannerDataFetcherAndroid() override;
31 41
32 std::string GetBannerType() override; 42 std::string GetBannerType() override;
33 std::string GetAppIdentifier() override; 43 std::string GetAppIdentifier() override;
34 void ShowBanner(const SkBitmap* icon, 44 void ShowBanner(const SkBitmap* icon,
35 const base::string16& title) override; 45 const base::string16& title) override;
36 46
37 private: 47 private:
48 void OnDidRetrieveMetaTagContent(bool success,
49 const std::string& tag_name,
50 const std::string& tag_content,
51 const GURL& expected_url);
52
38 base::android::ScopedJavaGlobalRef<jobject> native_app_data_; 53 base::android::ScopedJavaGlobalRef<jobject> native_app_data_;
39 std::string native_app_package_; 54 std::string native_app_package_;
40 55
41 DISALLOW_COPY_AND_ASSIGN(AppBannerDataFetcherAndroid); 56 DISALLOW_COPY_AND_ASSIGN(AppBannerDataFetcherAndroid);
42 }; 57 };
43 58
44 } // namespace banners 59 } // namespace banners
45 60
46 #endif // CHROME_BROWSER_ANDROID_BANNERS_APP_BANNER_DATA_FETCHER_ANDROID_H_ 61 #endif // CHROME_BROWSER_ANDROID_BANNERS_APP_BANNER_DATA_FETCHER_ANDROID_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698