Index: chrome/browser/sessions/tab_loader_delegate.cc |
diff --git a/chrome/browser/sessions/tab_loader_delegate.cc b/chrome/browser/sessions/tab_loader_delegate.cc |
index 640495ed68077d5f8379997dd0b7d310c539196f..d3d3ec05f997e3b110910cfee3a51e6f58dc6173 100644 |
--- a/chrome/browser/sessions/tab_loader_delegate.cc |
+++ b/chrome/browser/sessions/tab_loader_delegate.cc |
@@ -4,6 +4,8 @@ |
#include "chrome/browser/sessions/tab_loader_delegate.h" |
+#include "base/strings/string_number_conversions.h" |
+#include "components/variations/variations_associated_data.h" |
#include "net/base/network_change_notifier.h" |
namespace { |
@@ -22,8 +24,13 @@ class TabLoaderDelegateImpl |
~TabLoaderDelegateImpl() override; |
// TabLoaderDelegate: |
+ base::TimeDelta GetFirstTabLoadingTimeout() const override { |
+ return first_timeout_; |
+ } |
+ |
+ // TabLoaderDelegate: |
base::TimeDelta GetTimeoutBeforeLoadingNextTab() const override { |
- return base::TimeDelta::FromMilliseconds(kInitialDelayTimerMS); |
+ return timeout_; |
} |
// net::NetworkChangeNotifier::ConnectionTypeObserver: |
@@ -34,6 +41,10 @@ class TabLoaderDelegateImpl |
// The function to call when the connection type changes. |
TabLoaderCallback* callback_; |
+ // The timeouts to use in tab loading. |
+ base::TimeDelta first_timeout_; |
+ base::TimeDelta timeout_; |
+ |
DISALLOW_COPY_AND_ASSIGN(TabLoaderDelegateImpl); |
}; |
@@ -47,6 +58,26 @@ TabLoaderDelegateImpl::TabLoaderDelegateImpl(TabLoaderCallback* callback) |
// distributes network access, we can remove this. |
callback->SetTabLoadingEnabled(false); |
} |
+ |
+ // Initialize the timeouts to use from the session restore field trial. |
+ // Default to the usual value if none is specified. |
+ |
+ static const char kIntelligentSessionRestore[] = "IntelligentSessionRestore"; |
+ std::string timeout = variations::GetVariationParamValue( |
+ kIntelligentSessionRestore, "FirstTabLoadTimeoutMs"); |
+ int timeout_ms = 0; |
+ if (timeout.empty() || !base::StringToInt(timeout, &timeout_ms) || |
+ timeout_ms <= 0) |
gab
2015/05/15 18:21:03
Multi-line conditional, add {}
chrisha
2015/05/15 18:47:12
Done.
|
+ timeout_ms = kInitialDelayTimerMS; |
+ first_timeout_ = base::TimeDelta::FromMilliseconds(timeout_ms); |
+ |
+ timeout = variations::GetVariationParamValue( |
+ kIntelligentSessionRestore, "TabLoadTimeoutMs"); |
+ timeout_ms = 0; |
+ if (timeout.empty() || !base::StringToInt(timeout, &timeout_ms) || |
+ timeout_ms <= 0) |
gab
2015/05/15 18:21:03
{}
chrisha
2015/05/15 18:47:12
Done.
|
+ timeout_ms = kInitialDelayTimerMS; |
+ timeout_ = base::TimeDelta::FromMilliseconds(timeout_ms); |
} |
TabLoaderDelegateImpl::~TabLoaderDelegateImpl() { |