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

Unified Diff: chrome/browser/banners/app_banner_manager.h

Issue 2024953005: Allow app banners to be triggered by increases in site engagement. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@site-engagement-callback
Patch Set: Created 4 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/banners/app_banner_manager.h
diff --git a/chrome/browser/banners/app_banner_manager.h b/chrome/browser/banners/app_banner_manager.h
index f29c0bdbe89d583143d4ae604529d2f111d7d3e8..4b8ff1245be83094f44bb76c9b475ee6e2111be3 100644
--- a/chrome/browser/banners/app_banner_manager.h
+++ b/chrome/browser/banners/app_banner_manager.h
@@ -11,6 +11,7 @@
#include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h"
#include "chrome/browser/banners/app_banner_data_fetcher.h"
+#include "chrome/browser/engagement/site_engagement_observer.h"
#include "content/public/browser/web_contents_observer.h"
#include "third_party/WebKit/public/platform/modules/app_banner/WebAppBannerPromptReply.h"
@@ -30,7 +31,8 @@ class AppBannerDataFetcher;
* requested app. Any work in progress for other apps is discarded.
*/
class AppBannerManager : public content::WebContentsObserver,
- public AppBannerDataFetcher::Delegate {
+ public AppBannerDataFetcher::Delegate,
+ public SiteEngagementObserver {
public:
static void DisableSecureSchemeCheckForTesting();
@@ -42,11 +44,8 @@ class AppBannerManager : public content::WebContentsObserver,
// Requests an app banner. Set |is_debug_mode| when it is triggered by the
// developer's action in DevTools.
- void RequestAppBanner(content::RenderFrameHost* render_frame_host,
- const GURL& validated_url,
- bool is_debug_mode);
+ void RequestAppBanner(const GURL& validated_url, bool is_debug_mode);
- AppBannerManager();
~AppBannerManager() override;
protected:
@@ -73,18 +72,30 @@ class AppBannerManager : public content::WebContentsObserver,
void DidFinishLoad(content::RenderFrameHost* render_frame_host,
const GURL& validated_url) override;
+ void WasShown() override;
+ void WasHidden() override;
+
// AppBannerDataFetcher::Delegate overrides.
bool HandleNonWebApp(const std::string& platform,
const GURL& url,
const std::string& id,
bool is_debug_mode) override;
+ // SiteEngagementObserver overrides.
+ void OnEngagementIncreased(const SiteEngagementService* service,
+ const GURL& url,
+ double score) override;
+
// Cancels an active DataFetcher, stopping its banners from appearing.
void CancelActiveFetcher();
// The type of navigation made to the page
ui::PageTransition last_transition_type_;
+ GURL validated_url_;
+
+ bool is_visible_;
+
// Fetches the data required to display a banner for the current page.
scoped_refptr<AppBannerDataFetcher> data_fetcher_;

Powered by Google App Engine
This is Rietveld 408576698