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

Unified Diff: chrome/browser/net/prediction_options.cc

Issue 2916533002: Introduce chrome://flags/#network-prediction-options-for-service-worker
Patch Set: use StartServiceWorkerForNavigationHint Created 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/net/prediction_options.h ('k') | chrome/browser/net/predictor_tab_helper.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/net/prediction_options.cc
diff --git a/chrome/browser/net/prediction_options.cc b/chrome/browser/net/prediction_options.cc
index 8ab8a07cd54fd9048219b43491fc8db7758eb76c..ab0f70ae06b1e9ed216fbfe98ebee00bf5ec4d0e 100644
--- a/chrome/browser/net/prediction_options.cc
+++ b/chrome/browser/net/prediction_options.cc
@@ -4,8 +4,11 @@
#include "chrome/browser/net/prediction_options.h"
+#include "base/command_line.h"
#include "base/logging.h"
+#include "base/metrics/field_trial.h"
#include "chrome/browser/profiles/profile_io_data.h"
+#include "chrome/common/chrome_switches.h"
#include "chrome/common/pref_names.h"
#include "components/pref_registry/pref_registry_syncable.h"
#include "components/prefs/pref_service.h"
@@ -14,6 +17,13 @@
namespace chrome_browser_net {
+const char kPreconnectOnly[] = "PreconnectOnly";
+const char kStartServiceWorkerAndPreconnect[] =
+ "StartServiceWorkerAndPreconnect";
+const char kStartServiceWorkerAndDeferPreconnect[] =
+ "StartServiceWorkerAndDeferPreconnect";
+const char kStartServiceWorkerOnly[] = "StartServiceWorkerOnly";
+
namespace {
// Since looking up preferences and current network connection are presumably
@@ -80,4 +90,30 @@ bool CanPreresolveAndPreconnectUI(PrefService* prefs) {
prefs->GetInteger(prefs::kNetworkPredictionOptions));
}
+NetworkPredictionOptionsForServiceWorker
+GetNetworkPredictionOptionsForServiceWorker() {
+ const base::CommandLine& command_line =
+ *base::CommandLine::ForCurrentProcess();
+ std::string options = command_line.GetSwitchValueASCII(
+ switches::kNetworkPredictionOptionsForServiceWorker);
+ if (options.empty()) {
+ options = base::FieldTrialList::FindFullName(
+ "NetworkPredictionOptionsForServiceWorker");
+ }
+
+ if (options == kPreconnectOnly) {
+ return NetworkPredictionOptionsForServiceWorker::PRECONNECT_ONLY;
+ } else if (options == kStartServiceWorkerAndPreconnect) {
+ return NetworkPredictionOptionsForServiceWorker::
+ START_SERVICE_WORKER_AND_PRECONNECT;
+ } else if (options == kStartServiceWorkerAndDeferPreconnect) {
+ return NetworkPredictionOptionsForServiceWorker::
+ START_SERVICE_WORKER_AND_DEFER_PRECONNECT;
+ } else if (options == kStartServiceWorkerOnly) {
+ return NetworkPredictionOptionsForServiceWorker::START_SERVICE_WORKER_ONLY;
+ } else {
+ return NetworkPredictionOptionsForServiceWorker::PRECONNECT_ONLY;
+ }
+}
+
} // namespace chrome_browser_net
« no previous file with comments | « chrome/browser/net/prediction_options.h ('k') | chrome/browser/net/predictor_tab_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698