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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PhysicalWeb.java

Issue 1512113002: Read feature param for Physical Web experiment (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Use default value Created 5 years 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PhysicalWeb.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PhysicalWeb.java b/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PhysicalWeb.java
index 5923cfea421d2c57cb47ba2de2e224d4a1cc1516..c293df514cfda60bf7d0c2afe61ff8df3ce58980 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PhysicalWeb.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PhysicalWeb.java
@@ -6,27 +6,35 @@ package org.chromium.chrome.browser.physicalweb;
import android.content.Context;
import android.os.AsyncTask;
+import android.text.TextUtils;
import org.chromium.base.CommandLine;
import org.chromium.chrome.browser.ChromeApplication;
import org.chromium.chrome.browser.ChromeSwitches;
import org.chromium.chrome.browser.ChromeVersionInfo;
+import org.chromium.components.variations.VariationsAssociatedData;
/**
* This class provides the basic interface to the Physical Web feature.
*/
public class PhysicalWeb {
+ private static final String FIELD_TRIAL_NAME = "PhysicalWeb";
+ private static final String ENABLED_PARAM = "enabled";
+ private static final String ENABLED_VALUE = "true";
+
/**
* Evaluate whether the environment is one in which the Physical Web should
* be enabled.
* @return true if the PhysicalWeb should be enabled
*/
public static boolean featureIsEnabled() {
+ // TODO(cco3): Remove chrome://flag after Finch is experiment is more in place.
Alexei Svitkine (slow) 2015/12/16 20:11:30 "Finch" is an internal codename. Don't use it in c
boolean allowedChannel =
ChromeVersionInfo.isLocalBuild() || ChromeVersionInfo.isDevBuild();
boolean switchEnabled =
CommandLine.getInstance().hasSwitch(ChromeSwitches.ENABLE_PHYSICAL_WEB);
Alexei Svitkine (slow) 2015/12/16 20:11:30 You should also have a disable switch, so that if
- return allowedChannel && switchEnabled;
+ // Check chrome://flag, command line flag, and finch, in that order
+ return (allowedChannel && switchEnabled) || getBooleanParam(ENABLED_PARAM, false);
Alexei Svitkine (slow) 2015/12/16 20:11:30 The current logic won't integrate well with go/var
}
/**
@@ -70,4 +78,24 @@ public class PhysicalWeb {
};
AsyncTask.THREAD_POOL_EXECUTOR.execute(task);
}
+
+ /**
+ * Gets a boolean Finch parameter, assuming the <paramName>="true" format. Also checks for a
+ * command-line switch with the same name, for easy local testing.
nyquist 2015/12/17 02:02:23 Couldn't you force the trial through a command lin
+ * @param paramName The name of the Finch parameter (or command-line switch) to get a value for.
+ * @param defaultValue The default value to return when there's no param or switch.
+ * @return Whether the Finch param is defined with a value "true", if there's a command-line
+ * flag present with any value.
+ */
+ private static boolean getBooleanParam(String paramName, boolean defaultValue) {
+ if (CommandLine.getInstance().hasSwitch(paramName)) {
+ return true;
+ }
+ String paramValue =
+ VariationsAssociatedData.getVariationParamValue(FIELD_TRIAL_NAME, paramName);
+ if (TextUtils.isEmpty(paramValue)) {
+ return defaultValue;
+ }
+ return TextUtils.equals(ENABLED_VALUE, paramValue);
+ }
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698