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

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

Issue 229533002: App install alerts: Disable on all channels for M35 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/about_flags.cc ('k') | chrome/common/chrome_switches.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "chrome/browser/android/banners/app_banner_manager.h" 5 #include "chrome/browser/android/banners/app_banner_manager.h"
6 6
7 #include "base/android/jni_android.h" 7 #include "base/android/jni_android.h"
8 #include "base/android/jni_string.h" 8 #include "base/android/jni_string.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/metrics/field_trial.h"
10 #include "base/metrics/histogram.h" 11 #include "base/metrics/histogram.h"
11 #include "chrome/browser/android/banners/app_banner_metrics_ids.h" 12 #include "chrome/browser/android/banners/app_banner_metrics_ids.h"
12 #include "chrome/browser/android/banners/app_banner_settings_helper.h" 13 #include "chrome/browser/android/banners/app_banner_settings_helper.h"
13 #include "chrome/browser/android/banners/app_banner_utilities.h" 14 #include "chrome/browser/android/banners/app_banner_utilities.h"
14 #include "chrome/browser/bitmap_fetcher.h" 15 #include "chrome/browser/bitmap_fetcher.h"
15 #include "chrome/browser/profiles/profile.h" 16 #include "chrome/browser/profiles/profile.h"
16 #include "chrome/common/chrome_switches.h" 17 #include "chrome/common/chrome_switches.h"
17 #include "content/public/browser/android/content_view_core.h" 18 #include "content/public/browser/android/content_view_core.h"
18 #include "content/public/browser/navigation_details.h" 19 #include "content/public/browser/navigation_details.h"
19 #include "content/public/browser/web_contents.h" 20 #include "content/public/browser/web_contents.h"
20 #include "content/public/common/frame_navigate_params.h" 21 #include "content/public/common/frame_navigate_params.h"
21 #include "jni/AppBannerManager_jni.h" 22 #include "jni/AppBannerManager_jni.h"
22 #include "ui/gfx/android/java_bitmap.h" 23 #include "ui/gfx/android/java_bitmap.h"
23 24
24 using base::android::ConvertJavaStringToUTF8; 25 using base::android::ConvertJavaStringToUTF8;
25 using base::android::ConvertUTF8ToJavaString; 26 using base::android::ConvertUTF8ToJavaString;
26 27
27 namespace { 28 namespace {
Nico 2014/04/08 22:55:24 (const has implicit internal linkage, this unnamed
gone 2014/04/08 23:22:21 Done.
29 // The meta tag that developers add to their web pages to trigger banners.
28 const char kBannerTag[] = "google-play-id"; 30 const char kBannerTag[] = "google-play-id";
31
32 // Finch trial experiment for enabling app banners.
33 const char kBannerFieldTrial[] = "AppInstallAlerts";
34 const char kBannerFieldTrialEnabled[] = "AppInstallAlertsEnabled";
29 } 35 }
30 36
31 namespace banners { 37 namespace banners {
32 38
33 AppBannerManager::AppBannerManager(JNIEnv* env, jobject obj) 39 AppBannerManager::AppBannerManager(JNIEnv* env, jobject obj)
34 : MetaTagObserver(kBannerTag), 40 : MetaTagObserver(kBannerTag),
35 weak_java_banner_view_manager_(env, obj) {} 41 weak_java_banner_view_manager_(env, obj) {}
36 42
37 AppBannerManager::~AppBannerManager() { 43 AppBannerManager::~AppBannerManager() {
38 } 44 }
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 void RecordInstallEvent(JNIEnv* env, jclass clazz, jint metric) { 151 void RecordInstallEvent(JNIEnv* env, jclass clazz, jint metric) {
146 banners::TrackInstallEvent(metric); 152 banners::TrackInstallEvent(metric);
147 } 153 }
148 154
149 jlong Init(JNIEnv* env, jobject obj) { 155 jlong Init(JNIEnv* env, jobject obj) {
150 AppBannerManager* manager = new AppBannerManager(env, obj); 156 AppBannerManager* manager = new AppBannerManager(env, obj);
151 return reinterpret_cast<intptr_t>(manager); 157 return reinterpret_cast<intptr_t>(manager);
152 } 158 }
153 159
154 jboolean IsEnabled(JNIEnv* env, jclass clazz) { 160 jboolean IsEnabled(JNIEnv* env, jclass clazz) {
155 return !CommandLine::ForCurrentProcess()->HasSwitch( 161 // Check if the Finch trial is enabled for this client.
156 switches::kDisableAppBanners); 162 std::string group_name =
163 base::FieldTrialList::FindFullName(kBannerFieldTrial);
164 if (kBannerFieldTrialEnabled == group_name)
165 return true;
166
167 // Check if there is a command line flag enabling this feature.
168 return CommandLine::ForCurrentProcess()->HasSwitch(
169 switches::kEnableAppInstallAlerts);
157 } 170 }
158 171
159 // Register native methods 172 // Register native methods
160 bool RegisterAppBannerManager(JNIEnv* env) { 173 bool RegisterAppBannerManager(JNIEnv* env) {
161 return RegisterNativesImpl(env); 174 return RegisterNativesImpl(env);
162 } 175 }
163 176
164 } // namespace banners 177 } // namespace banners
OLDNEW
« no previous file with comments | « chrome/browser/about_flags.cc ('k') | chrome/common/chrome_switches.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698