Revved to chromium 4dfb55c9cf0950b8bac8b10070c9b8f3e7de66c2 refs/remotes/origin/HEAD
diff --git a/net/BUILD.gn b/net/BUILD.gn
index 81d59c8..3dcfa6b 100644
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -551,8 +551,6 @@
]
}
-if (false) {
-
static_library("extras") {
sources = gypi_values.net_extras_sources
configs += [ "//build/config/compiler:wexit_time_destructors" ]
@@ -562,8 +560,6 @@
]
}
-} # if (false)
-
static_library("http_server") {
sources = [
"server/http_connection.cc",
@@ -1107,14 +1103,11 @@
test("net_unittests") {
sources = gypi_values.net_test_sources
- sources -= [
- "extras/sqlite/sqlite_channel_id_store_unittest.cc",
- ]
-
configs += [ ":net_win_size_truncation" ]
defines = []
deps = [
+ ":extras",
":http_server",
":net",
":quic_tools",
diff --git a/net/android/java/src/org/chromium/net/DefaultAndroidKeyStore.java b/net/android/java/src/org/chromium/net/DefaultAndroidKeyStore.java
index 167837c..3ee1029 100644
--- a/net/android/java/src/org/chromium/net/DefaultAndroidKeyStore.java
+++ b/net/android/java/src/org/chromium/net/DefaultAndroidKeyStore.java
@@ -109,7 +109,7 @@
signature = Signature.getInstance("NONEwithECDSA");
}
} catch (NoSuchAlgorithmException e) {
- ;
+ // Intentionally do nothing.
}
if (signature == null) {
diff --git a/net/android/java/src/org/chromium/net/ProxyChangeListener.java b/net/android/java/src/org/chromium/net/ProxyChangeListener.java
index 51b6714..be09be4 100644
--- a/net/android/java/src/org/chromium/net/ProxyChangeListener.java
+++ b/net/android/java/src/org/chromium/net/ProxyChangeListener.java
@@ -36,16 +36,21 @@
private Delegate mDelegate;
private static class ProxyConfig {
- public ProxyConfig(String host, int port, String pacUrl) {
+ public ProxyConfig(String host, int port, String pacUrl, String[] exclusionList) {
mHost = host;
mPort = port;
mPacUrl = pacUrl;
+ mExclusionList = exclusionList;
}
public final String mHost;
public final int mPort;
public final String mPacUrl;
+ public final String[] mExclusionList;
}
+ /**
+ * The delegate for ProxyChangeListener. Use for testing.
+ */
public interface Delegate {
public void proxySettingsChanged();
}
@@ -104,6 +109,7 @@
final String getHostName = "getHost";
final String getPortName = "getPort";
final String getPacFileUrl = "getPacFileUrl";
+ final String getExclusionList = "getExclusionList";
String className;
String proxyInfo;
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT) {
@@ -122,27 +128,35 @@
Class<?> cls = Class.forName(className);
Method getHostMethod = cls.getDeclaredMethod(getHostName);
Method getPortMethod = cls.getDeclaredMethod(getPortName);
+ Method getExclusionListMethod = cls.getDeclaredMethod(getExclusionList);
String host = (String) getHostMethod.invoke(props);
int port = (Integer) getPortMethod.invoke(props);
+ String[] exclusionList;
+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT) {
+ String s = (String) getExclusionListMethod.invoke(props);
+ exclusionList = s.split(",");
+ } else {
+ exclusionList = (String[]) getExclusionListMethod.invoke(props);
+ }
// TODO(xunjieli): rewrite this once the API is public.
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {
Method getPacFileUrlMethod =
cls.getDeclaredMethod(getPacFileUrl);
String pacFileUrl = (String) getPacFileUrlMethod.invoke(props);
if (!TextUtils.isEmpty(pacFileUrl)) {
- return new ProxyConfig(host, port, pacFileUrl);
+ return new ProxyConfig(host, port, pacFileUrl, exclusionList);
}
} else if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) {
Method getPacFileUrlMethod =
cls.getDeclaredMethod(getPacFileUrl);
Uri pacFileUrl = (Uri) getPacFileUrlMethod.invoke(props);
if (!Uri.EMPTY.equals(pacFileUrl)) {
- return new ProxyConfig(host, port, pacFileUrl.toString());
+ return new ProxyConfig(host, port, pacFileUrl.toString(), exclusionList);
}
}
- return new ProxyConfig(host, port, null);
+ return new ProxyConfig(host, port, null, exclusionList);
} catch (ClassNotFoundException ex) {
Log.e(TAG, "Using no proxy configuration due to exception:" + ex);
return null;
@@ -175,7 +189,8 @@
// Note that this code currently runs on a MESSAGE_LOOP_UI thread, but
// the C++ code must run the callbacks on the network thread.
if (cfg != null) {
- nativeProxySettingsChangedTo(mNativePtr, cfg.mHost, cfg.mPort, cfg.mPacUrl);
+ nativeProxySettingsChangedTo(mNativePtr, cfg.mHost, cfg.mPort, cfg.mPacUrl,
+ cfg.mExclusionList);
} else {
nativeProxySettingsChanged(mNativePtr);
}
@@ -206,8 +221,8 @@
private native void nativeProxySettingsChangedTo(long nativePtr,
String host,
int port,
- String pacUrl);
-
+ String pacUrl,
+ String[] exclusionList);
@NativeClassQualifiedName("ProxyConfigServiceAndroid::JNIDelegate")
private native void nativeProxySettingsChanged(long nativePtr);
}
diff --git a/net/android/keystore_openssl.cc b/net/android/keystore_openssl.cc
index 1ca9bc1..c0f308d 100644
--- a/net/android/keystore_openssl.cc
+++ b/net/android/keystore_openssl.cc
@@ -95,7 +95,7 @@
return 0;
}
-// ExDataFree is called when one of the RSA, DSA or EC_KEY object is freed.
+// ExDataFree is called when one of the RSA, DSA or EC_KEY objects is freed.
void ExDataFree(void* parent,
void* ptr,
CRYPTO_EX_DATA* ad,
@@ -204,7 +204,7 @@
// Retrieve private key JNI reference.
const KeyExData *ex_data = RsaGetExData(rsa);
if (!ex_data || !ex_data->private_key) {
- LOG(WARNING) << "Null JNI reference passed to RsaMethodPrivEnc!";
+ LOG(WARNING) << "Null JNI reference passed to RsaMethodSignRaw!";
OPENSSL_PUT_ERROR(RSA, sign_raw, ERR_R_INTERNAL_ERROR);
return 0;
}
@@ -214,7 +214,7 @@
int ret = ex_data->legacy_rsa->meth->rsa_priv_enc(
in_len, in, out, ex_data->legacy_rsa, ANDROID_RSA_PKCS1_PADDING);
if (ret < 0) {
- LOG(WARNING) << "Could not sign message in RsaMethodPrivEnc!";
+ LOG(WARNING) << "Could not sign message in RsaMethodSignRaw!";
// System OpenSSL will use a separate error queue, so it is still
// necessary to push a new error.
//
@@ -234,7 +234,7 @@
// For RSA keys, this function behaves as RSA_private_encrypt with
// PKCS#1 padding.
if (!RawSignDigestWithPrivateKey(ex_data->private_key, from_piece, &result)) {
- LOG(WARNING) << "Could not sign message in RsaMethodPrivEnc!";
+ LOG(WARNING) << "Could not sign message in RsaMethodSignRaw!";
OPENSSL_PUT_ERROR(RSA, sign_raw, ERR_R_INTERNAL_ERROR);
return 0;
}
diff --git a/net/android/network_change_notifier_android.cc b/net/android/network_change_notifier_android.cc
index 2461d64..410d1fb 100644
--- a/net/android/network_change_notifier_android.cc
+++ b/net/android/network_change_notifier_android.cc
@@ -81,14 +81,14 @@
Stop();
}
- virtual void Init() OVERRIDE {
+ virtual void Init() override {
address_tracker_.Init();
dns_config_service_ = DnsConfigService::CreateSystemService();
dns_config_service_->WatchConfig(
base::Bind(&NetworkChangeNotifier::SetDnsConfig));
}
- virtual void CleanUp() OVERRIDE {
+ virtual void CleanUp() override {
dns_config_service_.reset();
}
diff --git a/net/android/network_change_notifier_android.h b/net/android/network_change_notifier_android.h
index e82b852..57d29b8 100644
--- a/net/android/network_change_notifier_android.h
+++ b/net/android/network_change_notifier_android.h
@@ -45,10 +45,10 @@
virtual ~NetworkChangeNotifierAndroid();
// NetworkChangeNotifier:
- virtual ConnectionType GetCurrentConnectionType() const OVERRIDE;
+ virtual ConnectionType GetCurrentConnectionType() const override;
// NetworkChangeNotifierDelegateAndroid::Observer:
- virtual void OnConnectionTypeChanged() OVERRIDE;
+ virtual void OnConnectionTypeChanged() override;
static bool Register(JNIEnv* env);
diff --git a/net/android/network_change_notifier_android_unittest.cc b/net/android/network_change_notifier_android_unittest.cc
index 6ab894c..6aadb54 100644
--- a/net/android/network_change_notifier_android_unittest.cc
+++ b/net/android/network_change_notifier_android_unittest.cc
@@ -24,7 +24,7 @@
NetworkChangeNotifierDelegateAndroidObserver() : notifications_count_(0) {}
// NetworkChangeNotifierDelegateAndroid::Observer:
- virtual void OnConnectionTypeChanged() OVERRIDE {
+ virtual void OnConnectionTypeChanged() override {
notifications_count_++;
}
@@ -43,7 +43,7 @@
// NetworkChangeNotifier::Observer:
virtual void OnConnectionTypeChanged(
- NetworkChangeNotifier::ConnectionType connection_type) OVERRIDE {
+ NetworkChangeNotifier::ConnectionType connection_type) override {
notifications_count_++;
}
diff --git a/net/android/network_change_notifier_factory_android.h b/net/android/network_change_notifier_factory_android.h
index e71ec27..d443fcd 100644
--- a/net/android/network_change_notifier_factory_android.h
+++ b/net/android/network_change_notifier_factory_android.h
@@ -29,7 +29,7 @@
virtual ~NetworkChangeNotifierFactoryAndroid();
// NetworkChangeNotifierFactory:
- virtual NetworkChangeNotifier* CreateInstance() OVERRIDE;
+ virtual NetworkChangeNotifier* CreateInstance() override;
private:
// Delegate passed to the instances created by this class.
diff --git a/net/base/address_tracker_linux.h b/net/base/address_tracker_linux.h
index ec52b60..2574fc7 100644
--- a/net/base/address_tracker_linux.h
+++ b/net/base/address_tracker_linux.h
@@ -108,8 +108,8 @@
void AbortAndForceOnline();
// MessageLoopForIO::Watcher:
- virtual void OnFileCanReadWithoutBlocking(int fd) OVERRIDE;
- virtual void OnFileCanWriteWithoutBlocking(int /* fd */) OVERRIDE;
+ virtual void OnFileCanReadWithoutBlocking(int fd) override;
+ virtual void OnFileCanWriteWithoutBlocking(int /* fd */) override;
// Close |netlink_fd_|
void CloseSocket();
diff --git a/net/base/backoff_entry_unittest.cc b/net/base/backoff_entry_unittest.cc
index 560b213..f5393e8 100644
--- a/net/base/backoff_entry_unittest.cc
+++ b/net/base/backoff_entry_unittest.cc
@@ -25,7 +25,7 @@
virtual ~TestBackoffEntry() {}
- virtual TimeTicks ImplGetTimeNow() const OVERRIDE {
+ virtual TimeTicks ImplGetTimeNow() const override {
return now_;
}
diff --git a/net/base/capturing_net_log.h b/net/base/capturing_net_log.h
index 06bc976..a58b6ff 100644
--- a/net/base/capturing_net_log.h
+++ b/net/base/capturing_net_log.h
@@ -105,7 +105,7 @@
private:
// ThreadSafeObserver implementation:
- virtual void OnAddEntry(const Entry& entry) OVERRIDE;
+ virtual void OnAddEntry(const Entry& entry) override;
// Needs to be "mutable" so can use it in GetEntries().
mutable base::Lock lock_;
diff --git a/net/base/chunked_upload_data_stream.cc b/net/base/chunked_upload_data_stream.cc
new file mode 100644
index 0000000..f1fbf08
--- /dev/null
+++ b/net/base/chunked_upload_data_stream.cc
@@ -0,0 +1,103 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "net/base/chunked_upload_data_stream.h"
+
+#include "base/logging.h"
+#include "base/stl_util.h"
+#include "net/base/io_buffer.h"
+#include "net/base/net_errors.h"
+
+namespace net {
+
+ChunkedUploadDataStream::ChunkedUploadDataStream(int64 identifier)
+ : UploadDataStream(true, identifier),
+ read_index_(0),
+ read_offset_(0),
+ all_data_appended_(false),
+ read_buffer_len_(0) {
+}
+
+ChunkedUploadDataStream::~ChunkedUploadDataStream() {
+}
+
+void ChunkedUploadDataStream::AppendData(
+ const char* data, int data_len, bool is_done) {
+ DCHECK(!all_data_appended_);
+ DCHECK(data_len > 0 || is_done);
+ if (data_len > 0) {
+ DCHECK(data);
+ upload_data_.push_back(new std::vector<char>(data, data + data_len));
+ }
+ all_data_appended_ = is_done;
+
+ if (!read_buffer_.get())
+ return;
+
+ int result = ReadChunk(read_buffer_.get(), read_buffer_len_);
+ // Shouldn't get an error or ERR_IO_PENDING.
+ DCHECK_GE(result, 0);
+ read_buffer_ = NULL;
+ read_buffer_len_ = 0;
+ OnReadCompleted(result);
+}
+
+int ChunkedUploadDataStream::InitInternal() {
+ // ResetInternal should already have been called.
+ DCHECK(!read_buffer_.get());
+ DCHECK_EQ(0u, read_index_);
+ DCHECK_EQ(0u, read_offset_);
+ return OK;
+}
+
+int ChunkedUploadDataStream::ReadInternal(IOBuffer* buf, int buf_len) {
+ DCHECK_LT(0, buf_len);
+ DCHECK(!read_buffer_.get());
+
+ int result = ReadChunk(buf, buf_len);
+ if (result == ERR_IO_PENDING) {
+ read_buffer_ = buf;
+ read_buffer_len_ = buf_len;
+ }
+ return result;
+}
+
+void ChunkedUploadDataStream::ResetInternal() {
+ read_buffer_ = NULL;
+ read_buffer_len_ = 0;
+ read_index_ = 0;
+ read_offset_ = 0;
+}
+
+int ChunkedUploadDataStream::ReadChunk(IOBuffer* buf, int buf_len) {
+ // Copy as much data as possible from |upload_data_| to |buf|.
+ int bytes_read = 0;
+ while (read_index_ < upload_data_.size() && bytes_read < buf_len) {
+ std::vector<char>* data = upload_data_[read_index_];
+ size_t bytes_to_read =
+ std::min(static_cast<size_t>(buf_len - bytes_read),
+ data->size() - read_offset_);
+ memcpy(buf->data() + bytes_read,
+ vector_as_array(data) + read_offset_,
+ bytes_to_read);
+ bytes_read += bytes_to_read;
+ read_offset_ += bytes_to_read;
+ if (read_offset_ == data->size()) {
+ read_index_++;
+ read_offset_ = 0;
+ }
+ }
+ DCHECK_LE(bytes_read, buf_len);
+
+ // If no data was written, and not all data has been appended, return
+ // ERR_IO_PENDING. The read will be completed in the next call to AppendData.
+ if (bytes_read == 0 && !all_data_appended_)
+ return ERR_IO_PENDING;
+
+ if (read_index_ == upload_data_.size() && all_data_appended_)
+ SetIsFinalChunk();
+ return bytes_read;
+}
+
+} // namespace net
diff --git a/net/base/chunked_upload_data_stream.h b/net/base/chunked_upload_data_stream.h
new file mode 100644
index 0000000..71b1e5c
--- /dev/null
+++ b/net/base/chunked_upload_data_stream.h
@@ -0,0 +1,63 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef NET_BASE_CHUNKED_UPLOAD_DATA_STREAM_H_
+#define NET_BASE_CHUNKED_UPLOAD_DATA_STREAM_H_
+
+#include <vector>
+
+#include "base/macros.h"
+#include "base/memory/ref_counted.h"
+#include "base/memory/scoped_vector.h"
+#include "net/base/completion_callback.h"
+#include "net/base/net_export.h"
+#include "net/base/upload_data_stream.h"
+
+namespace net {
+
+class IOBuffer;
+
+// Class with a push-based interface for uploading data. Buffers all data until
+// the request is completed. Not recommended for uploading large amounts of
+// seekable data, due to this buffering behavior.
+class NET_EXPORT ChunkedUploadDataStream : public UploadDataStream {
+ public:
+ ChunkedUploadDataStream(int64 identifier);
+
+ virtual ~ChunkedUploadDataStream();
+
+ // Adds data to the stream. |is_done| should be true if this is the last
+ // data to be appended. |data_len| must not be 0 unless |is_done| is true.
+ // Once called with |is_done| being true, must never be called again.
+ // TODO(mmenke): Consider using IOBuffers instead, to reduce data copies.
+ void AppendData(const char* data, int data_len, bool is_done);
+
+ private:
+ // UploadDataStream implementation.
+ virtual int InitInternal() override;
+ virtual int ReadInternal(IOBuffer* buf, int buf_len) override;
+ virtual void ResetInternal() override;
+
+ int ReadChunk(IOBuffer* buf, int buf_len);
+
+ // Index and offset of next element of |upload_data_| to be read.
+ size_t read_index_;
+ size_t read_offset_;
+
+ // True once all data has been appended to the stream.
+ bool all_data_appended_;
+
+ ScopedVector<std::vector<char>> upload_data_;
+
+ // Buffer to write the next read's data to. Only set when a call to
+ // ReadInternal reads no data.
+ scoped_refptr<IOBuffer> read_buffer_;
+ int read_buffer_len_;
+
+ DISALLOW_COPY_AND_ASSIGN(ChunkedUploadDataStream);
+};
+
+} // namespace net
+
+#endif // NET_BASE_CHUNKED_UPLOAD_DATA_STREAM_H_
diff --git a/net/base/chunked_upload_data_stream_unittest.cc b/net/base/chunked_upload_data_stream_unittest.cc
new file mode 100644
index 0000000..334e9a3
--- /dev/null
+++ b/net/base/chunked_upload_data_stream_unittest.cc
@@ -0,0 +1,308 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "net/base/chunked_upload_data_stream.h"
+
+#include <string>
+
+#include "base/memory/scoped_ptr.h"
+#include "net/base/io_buffer.h"
+#include "net/base/net_errors.h"
+#include "net/base/test_completion_callback.h"
+#include "net/base/upload_data_stream.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace net {
+
+namespace {
+
+const char kTestData[] = "0123456789";
+const size_t kTestDataSize = arraysize(kTestData) - 1;
+const size_t kTestBufferSize = 1 << 14; // 16KB.
+
+} // namespace
+
+// Reads data once from the upload data stream, and returns the data as string.
+// Expects the read to succeed synchronously.
+std::string ReadSync(UploadDataStream* stream, int buffer_size) {
+ scoped_refptr<IOBuffer> buf = new IOBuffer(buffer_size);
+ int result = stream->Read(buf.get(),
+ buffer_size,
+ TestCompletionCallback().callback());
+ EXPECT_GE(result, 0);
+ return std::string(buf->data(), result);
+}
+
+// Check the case data is added after the first read attempt.
+TEST(ChunkedUploadDataStreamTest, AppendOnce) {
+ ChunkedUploadDataStream stream(0);
+
+ ASSERT_EQ(OK, stream.Init(TestCompletionCallback().callback()));
+ EXPECT_FALSE(stream.IsInMemory());
+ EXPECT_EQ(0u, stream.size()); // Content-Length is 0 for chunked data.
+ EXPECT_EQ(0u, stream.position());
+ EXPECT_FALSE(stream.IsEOF());
+
+ TestCompletionCallback callback;
+ scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
+ int result = stream.Read(buf.get(), kTestBufferSize, callback.callback());
+ ASSERT_EQ(ERR_IO_PENDING, result);
+
+ stream.AppendData(kTestData, kTestDataSize, true);
+ int read = callback.WaitForResult();
+ ASSERT_GE(read, 0);
+ EXPECT_EQ(kTestData, std::string(buf->data(), read));
+ EXPECT_EQ(0u, stream.size()); // Content-Length is 0 for chunked data.
+ EXPECT_EQ(kTestDataSize, stream.position());
+ EXPECT_TRUE(stream.IsEOF());
+}
+
+TEST(ChunkedUploadDataStreamTest, AppendOnceBeforeRead) {
+ ChunkedUploadDataStream stream(0);
+
+ ASSERT_EQ(OK, stream.Init(TestCompletionCallback().callback()));
+ EXPECT_FALSE(stream.IsInMemory());
+ EXPECT_EQ(0u, stream.size()); // Content-Length is 0 for chunked data.
+ EXPECT_EQ(0u, stream.position());
+ EXPECT_FALSE(stream.IsEOF());
+
+ stream.AppendData(kTestData, kTestDataSize, true);
+ EXPECT_EQ(0u, stream.size()); // Content-Length is 0 for chunked data.
+ EXPECT_EQ(0u, stream.position());
+ EXPECT_FALSE(stream.IsEOF());
+
+ std::string data = ReadSync(&stream, kTestBufferSize);
+ EXPECT_EQ(kTestData, data);
+ EXPECT_EQ(0u, stream.size()); // Content-Length is 0 for chunked data.
+ EXPECT_EQ(kTestDataSize, stream.position());
+ EXPECT_TRUE(stream.IsEOF());
+}
+
+TEST(ChunkedUploadDataStreamTest, AppendOnceBeforeInit) {
+ ChunkedUploadDataStream stream(0);
+
+ stream.AppendData(kTestData, kTestDataSize, true);
+ ASSERT_EQ(OK, stream.Init(TestCompletionCallback().callback()));
+ EXPECT_FALSE(stream.IsInMemory());
+ EXPECT_EQ(0u, stream.size()); // Content-Length is 0 for chunked data.
+ EXPECT_EQ(0u, stream.position());
+ EXPECT_FALSE(stream.IsEOF());
+
+ std::string data = ReadSync(&stream, kTestBufferSize);
+ EXPECT_EQ(kTestData, data);
+ EXPECT_EQ(0u, stream.size()); // Content-Length is 0 for chunked data.
+ EXPECT_EQ(kTestDataSize, stream.position());
+ EXPECT_TRUE(stream.IsEOF());
+}
+
+TEST(ChunkedUploadDataStreamTest, MultipleAppends) {
+ ChunkedUploadDataStream stream(0);
+
+ ASSERT_EQ(OK, stream.Init(TestCompletionCallback().callback()));
+ EXPECT_FALSE(stream.IsInMemory());
+ EXPECT_EQ(0u, stream.size());
+ EXPECT_EQ(0u, stream.position());
+ EXPECT_FALSE(stream.IsEOF());
+
+ TestCompletionCallback callback;
+ scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
+ for (size_t i = 0; i < kTestDataSize; ++i) {
+ EXPECT_EQ(0u, stream.size()); // Content-Length is 0 for chunked data.
+ EXPECT_EQ(i, stream.position());
+ ASSERT_FALSE(stream.IsEOF());
+ int bytes_read = stream.Read(buf.get(),
+ kTestBufferSize,
+ callback.callback());
+ ASSERT_EQ(ERR_IO_PENDING, bytes_read);
+ stream.AppendData(&kTestData[i], 1, i == kTestDataSize - 1);
+ ASSERT_EQ(1, callback.WaitForResult());
+ EXPECT_EQ(kTestData[i], buf->data()[0]);
+ }
+
+ EXPECT_EQ(0u, stream.size()); // Content-Length is 0 for chunked data.
+ EXPECT_EQ(kTestDataSize, stream.position());
+ ASSERT_TRUE(stream.IsEOF());
+}
+
+TEST(ChunkedUploadDataStreamTest, MultipleAppendsBetweenReads) {
+ ChunkedUploadDataStream stream(0);
+
+ ASSERT_EQ(OK, stream.Init(TestCompletionCallback().callback()));
+ EXPECT_FALSE(stream.IsInMemory());
+ EXPECT_EQ(0u, stream.size()); // Content-Length is 0 for chunked data.
+ EXPECT_EQ(0u, stream.position());
+ EXPECT_FALSE(stream.IsEOF());
+
+ scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
+ for (size_t i = 0; i < kTestDataSize; ++i) {
+ EXPECT_EQ(i, stream.position());
+ ASSERT_FALSE(stream.IsEOF());
+ stream.AppendData(&kTestData[i], 1, i == kTestDataSize - 1);
+ int bytes_read = stream.Read(buf.get(),
+ kTestBufferSize,
+ TestCompletionCallback().callback());
+ ASSERT_EQ(1, bytes_read);
+ EXPECT_EQ(kTestData[i], buf->data()[0]);
+ }
+
+ EXPECT_EQ(kTestDataSize, stream.position());
+ ASSERT_TRUE(stream.IsEOF());
+}
+
+// Checks that multiple reads can be merged.
+TEST(ChunkedUploadDataStreamTest, MultipleAppendsBeforeInit) {
+ ChunkedUploadDataStream stream(0);
+ stream.AppendData(kTestData, 1, false);
+ stream.AppendData(kTestData + 1, 1, false);
+ stream.AppendData(kTestData + 2, kTestDataSize - 2, true);
+
+ ASSERT_EQ(OK, stream.Init(TestCompletionCallback().callback()));
+ EXPECT_FALSE(stream.IsInMemory());
+ EXPECT_EQ(0u, stream.size()); // Content-Length is 0 for chunked data.
+ EXPECT_EQ(0u, stream.position());
+ EXPECT_FALSE(stream.IsEOF());
+
+ std::string data = ReadSync(&stream, kTestBufferSize);
+ EXPECT_EQ(kTestData, data);
+ EXPECT_EQ(kTestDataSize, stream.position());
+ ASSERT_TRUE(stream.IsEOF());
+}
+
+TEST(ChunkedUploadDataStreamTest, MultipleReads) {
+ // Use a read size different from the write size to test bounds checking.
+ const size_t kReadSize = kTestDataSize + 3;
+
+ ChunkedUploadDataStream stream(0);
+ stream.AppendData(kTestData, kTestDataSize, false);
+ stream.AppendData(kTestData, kTestDataSize, false);
+ stream.AppendData(kTestData, kTestDataSize, false);
+ stream.AppendData(kTestData, kTestDataSize, true);
+
+ ASSERT_EQ(OK, stream.Init(TestCompletionCallback().callback()));
+ EXPECT_FALSE(stream.IsInMemory());
+ EXPECT_EQ(0u, stream.size()); // Content-Length is 0 for chunked data.
+ EXPECT_EQ(0u, stream.position());
+ EXPECT_FALSE(stream.IsEOF());
+
+ std::string data = ReadSync(&stream, kReadSize);
+ EXPECT_EQ("0123456789012", data);
+ EXPECT_EQ(kReadSize, stream.position());
+ EXPECT_FALSE(stream.IsEOF());
+
+ data = ReadSync(&stream, kReadSize);
+ EXPECT_EQ("3456789012345", data);
+ EXPECT_EQ(2 * kReadSize, stream.position());
+ EXPECT_FALSE(stream.IsEOF());
+
+ data = ReadSync(&stream, kReadSize);
+ EXPECT_EQ("6789012345678", data);
+ EXPECT_EQ(3 * kReadSize, stream.position());
+ EXPECT_FALSE(stream.IsEOF());
+
+ data = ReadSync(&stream, kReadSize);
+ EXPECT_EQ("9", data);
+ EXPECT_EQ(4 * kTestDataSize, stream.position());
+ EXPECT_TRUE(stream.IsEOF());
+}
+
+TEST(ChunkedUploadDataStreamTest, EmptyUpload) {
+ ChunkedUploadDataStream stream(0);
+
+ ASSERT_EQ(OK, stream.Init(TestCompletionCallback().callback()));
+ EXPECT_FALSE(stream.IsInMemory());
+ EXPECT_EQ(0u, stream.size()); // Content-Length is 0 for chunked data.
+ EXPECT_EQ(0u, stream.position());
+ EXPECT_FALSE(stream.IsEOF());
+
+ TestCompletionCallback callback;
+ scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
+ int result = stream.Read(buf.get(), kTestBufferSize, callback.callback());
+ ASSERT_EQ(ERR_IO_PENDING, result);
+
+ stream.AppendData(NULL, 0, true);
+ int read = callback.WaitForResult();
+ EXPECT_EQ(0, read);
+ EXPECT_EQ(0u, stream.position());
+ EXPECT_TRUE(stream.IsEOF());
+}
+
+TEST(ChunkedUploadDataStreamTest, EmptyUploadEndedBeforeInit) {
+ ChunkedUploadDataStream stream(0);
+ stream.AppendData(NULL, 0, true);
+
+ ASSERT_EQ(OK, stream.Init(TestCompletionCallback().callback()));
+ EXPECT_FALSE(stream.IsInMemory());
+ EXPECT_EQ(0u, stream.size()); // Content-Length is 0 for chunked data.
+ EXPECT_EQ(0u, stream.position());
+ EXPECT_FALSE(stream.IsEOF());
+
+ std::string data = ReadSync(&stream, kTestBufferSize);
+ ASSERT_EQ("", data);
+ EXPECT_EQ(0u, stream.position());
+ EXPECT_TRUE(stream.IsEOF());
+}
+
+TEST(ChunkedUploadDataStreamTest, RewindAfterComplete) {
+ ChunkedUploadDataStream stream(0);
+ stream.AppendData(kTestData, 1, false);
+ stream.AppendData(kTestData + 1, kTestDataSize - 1, true);
+
+ ASSERT_EQ(OK, stream.Init(TestCompletionCallback().callback()));
+ EXPECT_FALSE(stream.IsInMemory());
+ EXPECT_EQ(0u, stream.size()); // Content-Length is 0 for chunked data.
+ EXPECT_EQ(0u, stream.position());
+ EXPECT_FALSE(stream.IsEOF());
+
+ std::string data = ReadSync(&stream, kTestBufferSize);
+ EXPECT_EQ(kTestData, data);
+ EXPECT_EQ(kTestDataSize, stream.position());
+ ASSERT_TRUE(stream.IsEOF());
+
+ // Rewind stream and repeat.
+ ASSERT_EQ(OK, stream.Init(TestCompletionCallback().callback()));
+ EXPECT_FALSE(stream.IsInMemory());
+ EXPECT_EQ(0u, stream.size()); // Content-Length is 0 for chunked data.
+ EXPECT_EQ(0u, stream.position());
+ EXPECT_FALSE(stream.IsEOF());
+
+ data = ReadSync(&stream, kTestBufferSize);
+ EXPECT_EQ(kTestData, data);
+ EXPECT_EQ(kTestDataSize, stream.position());
+ ASSERT_TRUE(stream.IsEOF());
+}
+
+TEST(ChunkedUploadDataStreamTest, RewindWhileReading) {
+ ChunkedUploadDataStream stream(0);
+
+ ASSERT_EQ(OK, stream.Init(TestCompletionCallback().callback()));
+ EXPECT_FALSE(stream.IsInMemory());
+ EXPECT_EQ(0u, stream.size()); // Content-Length is 0 for chunked data.
+ EXPECT_EQ(0u, stream.position());
+ EXPECT_FALSE(stream.IsEOF());
+
+ TestCompletionCallback callback;
+ scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
+ int result = stream.Read(buf.get(), kTestBufferSize, callback.callback());
+ ASSERT_EQ(ERR_IO_PENDING, result);
+
+ ASSERT_EQ(OK, stream.Init(TestCompletionCallback().callback()));
+ EXPECT_FALSE(stream.IsInMemory());
+ EXPECT_EQ(0u, stream.size()); // Content-Length is 0 for chunked data.
+ EXPECT_EQ(0u, stream.position());
+ EXPECT_FALSE(stream.IsEOF());
+
+ // Adding data now should not result in calling the original read callback,
+ // since the stream was re-initialized for reuse, which cancels all pending
+ // reads.
+ stream.AppendData(kTestData, kTestDataSize, true);
+ EXPECT_FALSE(callback.have_result());
+
+ std::string data = ReadSync(&stream, kTestBufferSize);
+ EXPECT_EQ(kTestData, data);
+ EXPECT_EQ(kTestDataSize, stream.position());
+ ASSERT_TRUE(stream.IsEOF());
+ EXPECT_FALSE(callback.have_result());
+}
+
+} // namespace net
diff --git a/net/base/directory_lister_unittest.cc b/net/base/directory_lister_unittest.cc
index 970f0d7..f52e23e 100644
--- a/net/base/directory_lister_unittest.cc
+++ b/net/base/directory_lister_unittest.cc
@@ -28,14 +28,14 @@
}
virtual void OnListFile(
- const DirectoryLister::DirectoryListerData& data) OVERRIDE {
+ const DirectoryLister::DirectoryListerData& data) override {
file_list_.push_back(data.info);
paths_.push_back(data.path);
if (quit_loop_after_each_file_)
base::MessageLoop::current()->Quit();
}
- virtual void OnListDone(int error) OVERRIDE {
+ virtual void OnListDone(int error) override {
error_ = error;
base::MessageLoop::current()->Quit();
if (recursive_)
@@ -93,7 +93,7 @@
class DirectoryListerTest : public PlatformTest {
public:
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
const int kMaxDepth = 3;
const int kBranchingFactor = 4;
const int kFilesPerDirectory = 5;
diff --git a/net/base/dns_reloader.cc b/net/base/dns_reloader.cc
index 04abcb1..3a92418 100644
--- a/net/base/dns_reloader.cc
+++ b/net/base/dns_reloader.cc
@@ -46,7 +46,7 @@
};
// NetworkChangeNotifier::DNSObserver:
- virtual void OnDNSChanged() OVERRIDE {
+ virtual void OnDNSChanged() override {
DCHECK(base::MessageLoopForIO::IsCurrent());
base::AutoLock l(lock_);
resolver_generation_++;
@@ -110,7 +110,7 @@
namespace net {
void EnsureDnsReloaderInit() {
- DnsReloader* t ALLOW_UNUSED = g_dns_reloader.Pointer();
+ g_dns_reloader.Pointer();
}
void DnsReloaderMaybeReload() {
diff --git a/net/base/elements_upload_data_stream.cc b/net/base/elements_upload_data_stream.cc
new file mode 100644
index 0000000..86ea28c
--- /dev/null
+++ b/net/base/elements_upload_data_stream.cc
@@ -0,0 +1,166 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "net/base/elements_upload_data_stream.h"
+
+#include "base/bind.h"
+#include "base/logging.h"
+#include "net/base/completion_callback.h"
+#include "net/base/io_buffer.h"
+#include "net/base/net_errors.h"
+#include "net/base/upload_bytes_element_reader.h"
+#include "net/base/upload_element_reader.h"
+
+namespace net {
+
+ElementsUploadDataStream::ElementsUploadDataStream(
+ ScopedVector<UploadElementReader> element_readers,
+ int64 identifier)
+ : UploadDataStream(false, identifier),
+ element_readers_(element_readers.Pass()),
+ element_index_(0),
+ read_failed_(false),
+ weak_ptr_factory_(this) {
+}
+
+ElementsUploadDataStream::~ElementsUploadDataStream() {
+}
+
+scoped_ptr<UploadDataStream> ElementsUploadDataStream::CreateWithReader(
+ scoped_ptr<UploadElementReader> reader,
+ int64 identifier) {
+ ScopedVector<UploadElementReader> readers;
+ readers.push_back(reader.release());
+ return scoped_ptr<UploadDataStream>(
+ new ElementsUploadDataStream(readers.Pass(), identifier));
+}
+
+int ElementsUploadDataStream::InitInternal() {
+ return InitElements(0);
+}
+
+int ElementsUploadDataStream::ReadInternal(
+ IOBuffer* buf,
+ int buf_len) {
+ DCHECK_GT(buf_len, 0);
+ return ReadElements(new DrainableIOBuffer(buf, buf_len));
+}
+
+bool ElementsUploadDataStream::IsInMemory() const {
+ for (size_t i = 0; i < element_readers_.size(); ++i) {
+ if (!element_readers_[i]->IsInMemory())
+ return false;
+ }
+ return true;
+}
+
+const ScopedVector<UploadElementReader>*
+ElementsUploadDataStream::GetElementReaders() const {
+ return &element_readers_;
+}
+
+void ElementsUploadDataStream::ResetInternal() {
+ weak_ptr_factory_.InvalidateWeakPtrs();
+ read_failed_ = false;
+ element_index_ = 0;
+}
+
+int ElementsUploadDataStream::InitElements(size_t start_index) {
+ // Call Init() for all elements.
+ for (size_t i = start_index; i < element_readers_.size(); ++i) {
+ UploadElementReader* reader = element_readers_[i];
+ // When new_result is ERR_IO_PENDING, InitInternal() will be called
+ // with start_index == i + 1 when reader->Init() finishes.
+ int result = reader->Init(
+ base::Bind(&ElementsUploadDataStream::OnInitElementCompleted,
+ weak_ptr_factory_.GetWeakPtr(),
+ i));
+ DCHECK(result != ERR_IO_PENDING || !reader->IsInMemory());
+ DCHECK_LE(result, OK);
+ if (result != OK)
+ return result;
+ }
+
+ uint64 total_size = 0;
+ for (size_t i = 0; i < element_readers_.size(); ++i) {
+ total_size += element_readers_[i]->GetContentLength();
+ }
+ SetSize(total_size);
+ return OK;
+}
+
+void ElementsUploadDataStream::OnInitElementCompleted(size_t index,
+ int result) {
+ DCHECK_NE(ERR_IO_PENDING, result);
+
+ // Check the last result.
+ if (result == OK)
+ result = InitElements(index + 1);
+
+ if (result != ERR_IO_PENDING)
+ OnInitCompleted(result);
+}
+
+int ElementsUploadDataStream::ReadElements(
+ const scoped_refptr<DrainableIOBuffer>& buf) {
+ while (!read_failed_ && element_index_ < element_readers_.size()) {
+ UploadElementReader* reader = element_readers_[element_index_];
+
+ if (reader->BytesRemaining() == 0) {
+ ++element_index_;
+ continue;
+ }
+
+ if (buf->BytesRemaining() == 0)
+ break;
+
+ int result = reader->Read(
+ buf.get(),
+ buf->BytesRemaining(),
+ base::Bind(&ElementsUploadDataStream::OnReadElementCompleted,
+ weak_ptr_factory_.GetWeakPtr(),
+ buf));
+ if (result == ERR_IO_PENDING)
+ return ERR_IO_PENDING;
+ ProcessReadResult(buf, result);
+ }
+
+ if (read_failed_) {
+ // If an error occured during read operation, then pad with zero.
+ // Otherwise the server will hang waiting for the rest of the data.
+ int num_bytes_to_fill = std::min(
+ static_cast<uint64>(buf->BytesRemaining()),
+ size() - position() - buf->BytesConsumed());
+ DCHECK_LE(0, num_bytes_to_fill);
+ memset(buf->data(), 0, num_bytes_to_fill);
+ buf->DidConsume(num_bytes_to_fill);
+ }
+
+ return buf->BytesConsumed();
+}
+
+void ElementsUploadDataStream::OnReadElementCompleted(
+ const scoped_refptr<DrainableIOBuffer>& buf,
+ int result) {
+ ProcessReadResult(buf, result);
+
+ result = ReadElements(buf);
+ if (result != ERR_IO_PENDING)
+ OnReadCompleted(result);
+}
+
+void ElementsUploadDataStream::ProcessReadResult(
+ const scoped_refptr<DrainableIOBuffer>& buf,
+ int result) {
+ DCHECK_NE(ERR_IO_PENDING, result);
+ DCHECK(!read_failed_);
+
+ if (result >= 0) {
+ buf->DidConsume(result);
+ } else {
+ read_failed_ = true;
+ }
+}
+
+} // namespace net
diff --git a/net/base/elements_upload_data_stream.h b/net/base/elements_upload_data_stream.h
new file mode 100644
index 0000000..1a008fc
--- /dev/null
+++ b/net/base/elements_upload_data_stream.h
@@ -0,0 +1,86 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef NET_BASE_ELEMENTS_UPLOAD_DATA_STREAM_H_
+#define NET_BASE_ELEMENTS_UPLOAD_DATA_STREAM_H_
+
+#include "base/basictypes.h"
+#include "base/macros.h"
+#include "base/memory/ref_counted.h"
+#include "base/memory/scoped_ptr.h"
+#include "base/memory/scoped_vector.h"
+#include "base/memory/weak_ptr.h"
+#include "net/base/net_export.h"
+#include "net/base/upload_data_stream.h"
+
+namespace net {
+
+class DrainableIOBuffer;
+class IOBuffer;
+class UploadElementReader;
+
+// A non-chunked UploadDataStream consisting of one or more UploadElements.
+class NET_EXPORT ElementsUploadDataStream : public UploadDataStream {
+ public:
+ ElementsUploadDataStream(ScopedVector<UploadElementReader> element_readers,
+ int64 identifier);
+
+ virtual ~ElementsUploadDataStream();
+
+ // Creates an ElementsUploadDataStream with a single reader. Returns a
+ // scoped_ptr<UploadDataStream> for ease of use.
+ static scoped_ptr<UploadDataStream> CreateWithReader(
+ scoped_ptr<UploadElementReader> reader,
+ int64 identifier);
+
+ private:
+ // UploadDataStream implementation.
+ virtual bool IsInMemory() const override;
+ virtual const ScopedVector<UploadElementReader>*
+ GetElementReaders() const override;
+ virtual int InitInternal() override;
+ virtual int ReadInternal(IOBuffer* buf, int buf_len) override;
+ virtual void ResetInternal() override;
+
+ // Runs Init() for all element readers.
+ // This method is used to implement InitInternal().
+ int InitElements(size_t start_index);
+
+ // Called when the |index| element finishes initialization. If it succeeded,
+ // continues with the |index + 1| element. Calls OnInitCompleted on error or
+ // when all elements have been initialized.
+ void OnInitElementCompleted(size_t index, int result);
+
+ // Reads data from the element readers.
+ // This method is used to implement Read().
+ int ReadElements(const scoped_refptr<DrainableIOBuffer>& buf);
+
+ // Resumes pending read and calls OnReadCompleted with a result when
+ // necessary.
+ void OnReadElementCompleted(const scoped_refptr<DrainableIOBuffer>& buf,
+ int result);
+
+ // Processes result of UploadElementReader::Read(). If |result| indicates
+ // success, updates |buf|'s offset. Otherwise, sets |read_failed_| to true.
+ void ProcessReadResult(const scoped_refptr<DrainableIOBuffer>& buf,
+ int result);
+
+ ScopedVector<UploadElementReader> element_readers_;
+
+ // Index of the current upload element (i.e. the element currently being
+ // read). The index is used as a cursor to iterate over elements in
+ // |upload_data_|.
+ size_t element_index_;
+
+ // True if an error occcured during read operation.
+ bool read_failed_;
+
+ base::WeakPtrFactory<ElementsUploadDataStream> weak_ptr_factory_;
+
+ DISALLOW_COPY_AND_ASSIGN(ElementsUploadDataStream);
+};
+
+} // namespace net
+
+#endif // NET_BASE_ELEMENTS_UPLOAD_DATA_STREAM_H_
diff --git a/net/base/upload_data_stream_unittest.cc b/net/base/elements_upload_data_stream_unittest.cc
similarity index 71%
rename from net/base/upload_data_stream_unittest.cc
rename to net/base/elements_upload_data_stream_unittest.cc
index 2df38cd..91c390c 100644
--- a/net/base/upload_data_stream_unittest.cc
+++ b/net/base/elements_upload_data_stream_unittest.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "net/base/upload_data_stream.h"
+#include "net/base/elements_upload_data_stream.h"
#include <algorithm>
#include <vector>
@@ -20,6 +20,7 @@
#include "net/base/net_errors.h"
#include "net/base/test_completion_callback.h"
#include "net/base/upload_bytes_element_reader.h"
+#include "net/base/upload_data_stream.h"
#include "net/base/upload_file_element_reader.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -67,9 +68,9 @@
// UploadElementReader overrides.
MOCK_METHOD1(Init, int(const CompletionCallback& callback));
- virtual uint64 GetContentLength() const OVERRIDE { return content_length_; }
- virtual uint64 BytesRemaining() const OVERRIDE { return bytes_remaining_; }
- virtual bool IsInMemory() const OVERRIDE { return is_in_memory_; }
+ virtual uint64 GetContentLength() const override { return content_length_; }
+ virtual uint64 BytesRemaining() const override { return bytes_remaining_; }
+ virtual bool IsInMemory() const override { return is_in_memory_; }
MOCK_METHOD3(Read, int(IOBuffer* buf,
int buf_length,
const CompletionCallback& callback));
@@ -122,13 +123,13 @@
} // namespace
-class UploadDataStreamTest : public PlatformTest {
+class ElementsUploadDataStreamTest : public PlatformTest {
public:
virtual void SetUp() {
PlatformTest::SetUp();
ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
}
- virtual ~UploadDataStreamTest() {
+ virtual ~ElementsUploadDataStreamTest() {
element_readers_.clear();
base::RunLoop().RunUntilIdle();
}
@@ -141,35 +142,37 @@
ScopedVector<UploadElementReader> element_readers_;
};
-TEST_F(UploadDataStreamTest, EmptyUploadData) {
- UploadDataStream stream(element_readers_.Pass(), 0);
- ASSERT_EQ(OK, stream.Init(CompletionCallback()));
- EXPECT_TRUE(stream.IsInMemory());
- EXPECT_EQ(0U, stream.size());
- EXPECT_EQ(0U, stream.position());
- EXPECT_TRUE(stream.IsEOF());
+TEST_F(ElementsUploadDataStreamTest, EmptyUploadData) {
+ scoped_ptr<UploadDataStream> stream(
+ new ElementsUploadDataStream(element_readers_.Pass(), 0));
+ ASSERT_EQ(OK, stream->Init(CompletionCallback()));
+ EXPECT_TRUE(stream->IsInMemory());
+ EXPECT_EQ(0U, stream->size());
+ EXPECT_EQ(0U, stream->position());
+ EXPECT_TRUE(stream->IsEOF());
}
-TEST_F(UploadDataStreamTest, ConsumeAllBytes) {
+TEST_F(ElementsUploadDataStreamTest, ConsumeAllBytes) {
element_readers_.push_back(new UploadBytesElementReader(
kTestData, kTestDataSize));
- UploadDataStream stream(element_readers_.Pass(), 0);
- ASSERT_EQ(OK, stream.Init(CompletionCallback()));
- EXPECT_TRUE(stream.IsInMemory());
- EXPECT_EQ(kTestDataSize, stream.size());
- EXPECT_EQ(0U, stream.position());
- EXPECT_FALSE(stream.IsEOF());
+ scoped_ptr<UploadDataStream> stream(
+ new ElementsUploadDataStream(element_readers_.Pass(), 0));
+ ASSERT_EQ(OK, stream->Init(CompletionCallback()));
+ EXPECT_TRUE(stream->IsInMemory());
+ EXPECT_EQ(kTestDataSize, stream->size());
+ EXPECT_EQ(0U, stream->position());
+ EXPECT_FALSE(stream->IsEOF());
scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
- while (!stream.IsEOF()) {
+ while (!stream->IsEOF()) {
int bytes_read =
- stream.Read(buf.get(), kTestBufferSize, CompletionCallback());
+ stream->Read(buf.get(), kTestBufferSize, CompletionCallback());
ASSERT_LE(0, bytes_read); // Not an error.
}
- EXPECT_EQ(kTestDataSize, stream.position());
- ASSERT_TRUE(stream.IsEOF());
+ EXPECT_EQ(kTestDataSize, stream->position());
+ ASSERT_TRUE(stream->IsEOF());
}
-TEST_F(UploadDataStreamTest, File) {
+TEST_F(ElementsUploadDataStreamTest, File) {
base::FilePath temp_file_path;
ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(),
&temp_file_path));
@@ -184,26 +187,27 @@
base::Time()));
TestCompletionCallback init_callback;
- UploadDataStream stream(element_readers_.Pass(), 0);
- ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback.callback()));
+ scoped_ptr<UploadDataStream> stream(
+ new ElementsUploadDataStream(element_readers_.Pass(), 0));
+ ASSERT_EQ(ERR_IO_PENDING, stream->Init(init_callback.callback()));
ASSERT_EQ(OK, init_callback.WaitForResult());
- EXPECT_FALSE(stream.IsInMemory());
- EXPECT_EQ(kTestDataSize, stream.size());
- EXPECT_EQ(0U, stream.position());
- EXPECT_FALSE(stream.IsEOF());
+ EXPECT_FALSE(stream->IsInMemory());
+ EXPECT_EQ(kTestDataSize, stream->size());
+ EXPECT_EQ(0U, stream->position());
+ EXPECT_FALSE(stream->IsEOF());
scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
- while (!stream.IsEOF()) {
+ while (!stream->IsEOF()) {
TestCompletionCallback read_callback;
ASSERT_EQ(
ERR_IO_PENDING,
- stream.Read(buf.get(), kTestBufferSize, read_callback.callback()));
+ stream->Read(buf.get(), kTestBufferSize, read_callback.callback()));
ASSERT_LE(0, read_callback.WaitForResult()); // Not an error.
}
- EXPECT_EQ(kTestDataSize, stream.position());
- ASSERT_TRUE(stream.IsEOF());
+ EXPECT_EQ(kTestDataSize, stream->position());
+ ASSERT_TRUE(stream->IsEOF());
}
-TEST_F(UploadDataStreamTest, FileSmallerThanLength) {
+TEST_F(ElementsUploadDataStreamTest, FileSmallerThanLength) {
base::FilePath temp_file_path;
ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(),
&temp_file_path));
@@ -222,32 +226,33 @@
base::Time()));
TestCompletionCallback init_callback;
- UploadDataStream stream(element_readers_.Pass(), 0);
- ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback.callback()));
+ scoped_ptr<UploadDataStream> stream(
+ new ElementsUploadDataStream(element_readers_.Pass(), 0));
+ ASSERT_EQ(ERR_IO_PENDING, stream->Init(init_callback.callback()));
ASSERT_EQ(OK, init_callback.WaitForResult());
- EXPECT_FALSE(stream.IsInMemory());
- EXPECT_EQ(kFakeSize, stream.size());
- EXPECT_EQ(0U, stream.position());
- EXPECT_FALSE(stream.IsEOF());
+ EXPECT_FALSE(stream->IsInMemory());
+ EXPECT_EQ(kFakeSize, stream->size());
+ EXPECT_EQ(0U, stream->position());
+ EXPECT_FALSE(stream->IsEOF());
uint64 read_counter = 0;
scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
- while (!stream.IsEOF()) {
+ while (!stream->IsEOF()) {
TestCompletionCallback read_callback;
ASSERT_EQ(
ERR_IO_PENDING,
- stream.Read(buf.get(), kTestBufferSize, read_callback.callback()));
+ stream->Read(buf.get(), kTestBufferSize, read_callback.callback()));
int bytes_read = read_callback.WaitForResult();
ASSERT_LE(0, bytes_read); // Not an error.
read_counter += bytes_read;
- EXPECT_EQ(read_counter, stream.position());
+ EXPECT_EQ(read_counter, stream->position());
}
// UpdateDataStream will pad out the file with 0 bytes so that the HTTP
// transaction doesn't hang. Therefore we expected the full size.
EXPECT_EQ(kFakeSize, read_counter);
- EXPECT_EQ(read_counter, stream.position());
+ EXPECT_EQ(read_counter, stream->position());
}
-TEST_F(UploadDataStreamTest, ReadErrorSync) {
+TEST_F(ElementsUploadDataStreamTest, ReadErrorSync) {
// This element cannot be read.
MockUploadElementReader* reader =
new MockUploadElementReader(kTestDataSize, true);
@@ -259,13 +264,14 @@
element_readers_.push_back(new UploadBytesElementReader(
kTestData, kTestDataSize));
- UploadDataStream stream(element_readers_.Pass(), 0);
+ scoped_ptr<UploadDataStream> stream(
+ new ElementsUploadDataStream(element_readers_.Pass(), 0));
// Run Init().
- ASSERT_EQ(OK, stream.Init(CompletionCallback()));
- EXPECT_EQ(kTestDataSize*2, stream.size());
- EXPECT_EQ(0U, stream.position());
- EXPECT_FALSE(stream.IsEOF());
+ ASSERT_EQ(OK, stream->Init(CompletionCallback()));
+ EXPECT_EQ(kTestDataSize*2, stream->size());
+ EXPECT_EQ(0U, stream->position());
+ EXPECT_FALSE(stream->IsEOF());
// Prepare a buffer filled with non-zero data.
scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
@@ -273,16 +279,16 @@
// Read() results in success even when the reader returns error.
EXPECT_EQ(static_cast<int>(kTestDataSize * 2),
- stream.Read(buf.get(), kTestBufferSize, CompletionCallback()));
- EXPECT_EQ(kTestDataSize * 2, stream.position());
- EXPECT_TRUE(stream.IsEOF());
+ stream->Read(buf.get(), kTestBufferSize, CompletionCallback()));
+ EXPECT_EQ(kTestDataSize * 2, stream->position());
+ EXPECT_TRUE(stream->IsEOF());
// The buffer is filled with zero.
EXPECT_EQ(static_cast<int>(kTestDataSize*2),
std::count(buf->data(), buf->data() + kTestBufferSize, 0));
}
-TEST_F(UploadDataStreamTest, ReadErrorAsync) {
+TEST_F(ElementsUploadDataStreamTest, ReadErrorAsync) {
// This element cannot be read.
MockUploadElementReader* reader =
new MockUploadElementReader(kTestDataSize, false);
@@ -294,15 +300,16 @@
element_readers_.push_back(new UploadBytesElementReader(
kTestData, kTestDataSize));
- UploadDataStream stream(element_readers_.Pass(), 0);
+ scoped_ptr<UploadDataStream> stream(
+ new ElementsUploadDataStream(element_readers_.Pass(), 0));
// Run Init().
TestCompletionCallback init_callback;
- ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback.callback()));
+ ASSERT_EQ(ERR_IO_PENDING, stream->Init(init_callback.callback()));
EXPECT_EQ(OK, init_callback.WaitForResult());
- EXPECT_EQ(kTestDataSize*2, stream.size());
- EXPECT_EQ(0U, stream.position());
- EXPECT_FALSE(stream.IsEOF());
+ EXPECT_EQ(kTestDataSize*2, stream->size());
+ EXPECT_EQ(0U, stream->position());
+ EXPECT_FALSE(stream->IsEOF());
// Prepare a buffer filled with non-zero data.
scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
@@ -311,17 +318,17 @@
// Read() results in success even when the reader returns error.
TestCompletionCallback read_callback;
ASSERT_EQ(ERR_IO_PENDING,
- stream.Read(buf.get(), kTestBufferSize, read_callback.callback()));
+ stream->Read(buf.get(), kTestBufferSize, read_callback.callback()));
EXPECT_EQ(static_cast<int>(kTestDataSize * 2), read_callback.WaitForResult());
- EXPECT_EQ(kTestDataSize*2, stream.position());
- EXPECT_TRUE(stream.IsEOF());
+ EXPECT_EQ(kTestDataSize*2, stream->position());
+ EXPECT_TRUE(stream->IsEOF());
// The buffer is filled with zero.
EXPECT_EQ(static_cast<int>(kTestDataSize*2),
std::count(buf->data(), buf->data() + kTestBufferSize, 0));
}
-TEST_F(UploadDataStreamTest, FileAndBytes) {
+TEST_F(ElementsUploadDataStreamTest, FileAndBytes) {
base::FilePath temp_file_path;
ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(),
&temp_file_path));
@@ -342,49 +349,29 @@
const uint64 kStreamSize = kTestDataSize + kFileRangeLength;
TestCompletionCallback init_callback;
- UploadDataStream stream(element_readers_.Pass(), 0);
- ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback.callback()));
+ scoped_ptr<UploadDataStream> stream(
+ new ElementsUploadDataStream(element_readers_.Pass(), 0));
+ ASSERT_EQ(ERR_IO_PENDING, stream->Init(init_callback.callback()));
ASSERT_EQ(OK, init_callback.WaitForResult());
- EXPECT_FALSE(stream.IsInMemory());
- EXPECT_EQ(kStreamSize, stream.size());
- EXPECT_EQ(0U, stream.position());
- EXPECT_FALSE(stream.IsEOF());
+ EXPECT_FALSE(stream->IsInMemory());
+ EXPECT_EQ(kStreamSize, stream->size());
+ EXPECT_EQ(0U, stream->position());
+ EXPECT_FALSE(stream->IsEOF());
scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
- while (!stream.IsEOF()) {
+ while (!stream->IsEOF()) {
TestCompletionCallback read_callback;
const int result =
- stream.Read(buf.get(), kTestBufferSize, read_callback.callback());
+ stream->Read(buf.get(), kTestBufferSize, read_callback.callback());
const int bytes_read =
result != ERR_IO_PENDING ? result : read_callback.WaitForResult();
ASSERT_LE(0, bytes_read); // Not an error.
}
- EXPECT_EQ(kStreamSize, stream.position());
- ASSERT_TRUE(stream.IsEOF());
-}
-
-TEST_F(UploadDataStreamTest, Chunk) {
- const uint64 kStreamSize = kTestDataSize*2;
- UploadDataStream stream(UploadDataStream::CHUNKED, 0);
- stream.AppendChunk(kTestData, kTestDataSize, false);
- stream.AppendChunk(kTestData, kTestDataSize, true);
-
- ASSERT_EQ(OK, stream.Init(CompletionCallback()));
- EXPECT_FALSE(stream.IsInMemory());
- EXPECT_EQ(0U, stream.size()); // Content-Length is 0 for chunked data.
- EXPECT_EQ(0U, stream.position());
- EXPECT_FALSE(stream.IsEOF());
- scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
- while (!stream.IsEOF()) {
- int bytes_read =
- stream.Read(buf.get(), kTestBufferSize, CompletionCallback());
- ASSERT_LE(0, bytes_read); // Not an error.
- }
- EXPECT_EQ(kStreamSize, stream.position());
- ASSERT_TRUE(stream.IsEOF());
+ EXPECT_EQ(kStreamSize, stream->position());
+ ASSERT_TRUE(stream->IsEOF());
}
// Init() with on-memory and not-on-memory readers.
-TEST_F(UploadDataStreamTest, InitAsync) {
+TEST_F(ElementsUploadDataStreamTest, InitAsync) {
// Create UploadDataStream with mock readers.
MockUploadElementReader* reader = NULL;
@@ -408,16 +395,17 @@
EXPECT_CALL(*reader, Init(_)).WillOnce(Return(OK));
element_readers_.push_back(reader);
- UploadDataStream stream(element_readers_.Pass(), 0);
+ scoped_ptr<UploadDataStream> stream(
+ new ElementsUploadDataStream(element_readers_.Pass(), 0));
// Run Init().
TestCompletionCallback callback;
- ASSERT_EQ(ERR_IO_PENDING, stream.Init(callback.callback()));
+ ASSERT_EQ(ERR_IO_PENDING, stream->Init(callback.callback()));
EXPECT_EQ(OK, callback.WaitForResult());
}
// Init() of a reader fails asynchronously.
-TEST_F(UploadDataStreamTest, InitAsyncFailureAsync) {
+TEST_F(ElementsUploadDataStreamTest, InitAsyncFailureAsync) {
// Create UploadDataStream with a mock reader.
MockUploadElementReader* reader = NULL;
@@ -425,16 +413,17 @@
reader->SetAsyncInitExpectation(ERR_FAILED);
element_readers_.push_back(reader);
- UploadDataStream stream(element_readers_.Pass(), 0);
+ scoped_ptr<UploadDataStream> stream(
+ new ElementsUploadDataStream(element_readers_.Pass(), 0));
// Run Init().
TestCompletionCallback callback;
- ASSERT_EQ(ERR_IO_PENDING, stream.Init(callback.callback()));
+ ASSERT_EQ(ERR_IO_PENDING, stream->Init(callback.callback()));
EXPECT_EQ(ERR_FAILED, callback.WaitForResult());
}
// Init() of a reader fails synchronously.
-TEST_F(UploadDataStreamTest, InitAsyncFailureSync) {
+TEST_F(ElementsUploadDataStreamTest, InitAsyncFailureSync) {
// Create UploadDataStream with mock readers.
MockUploadElementReader* reader = NULL;
@@ -446,34 +435,36 @@
EXPECT_CALL(*reader, Init(_)).WillOnce(Return(ERR_FAILED));
element_readers_.push_back(reader);
- UploadDataStream stream(element_readers_.Pass(), 0);
+ scoped_ptr<UploadDataStream> stream(
+ new ElementsUploadDataStream(element_readers_.Pass(), 0));
// Run Init().
TestCompletionCallback callback;
- ASSERT_EQ(ERR_IO_PENDING, stream.Init(callback.callback()));
+ ASSERT_EQ(ERR_IO_PENDING, stream->Init(callback.callback()));
EXPECT_EQ(ERR_FAILED, callback.WaitForResult());
}
// Read with a buffer whose size is same as the data.
-TEST_F(UploadDataStreamTest, ReadAsyncWithExactSizeBuffer) {
+TEST_F(ElementsUploadDataStreamTest, ReadAsyncWithExactSizeBuffer) {
element_readers_.push_back(new UploadBytesElementReader(
kTestData, kTestDataSize));
- UploadDataStream stream(element_readers_.Pass(), 0);
+ scoped_ptr<UploadDataStream> stream(
+ new ElementsUploadDataStream(element_readers_.Pass(), 0));
- ASSERT_EQ(OK, stream.Init(CompletionCallback()));
- EXPECT_TRUE(stream.IsInMemory());
- EXPECT_EQ(kTestDataSize, stream.size());
- EXPECT_EQ(0U, stream.position());
- EXPECT_FALSE(stream.IsEOF());
+ ASSERT_EQ(OK, stream->Init(CompletionCallback()));
+ EXPECT_TRUE(stream->IsInMemory());
+ EXPECT_EQ(kTestDataSize, stream->size());
+ EXPECT_EQ(0U, stream->position());
+ EXPECT_FALSE(stream->IsEOF());
scoped_refptr<IOBuffer> buf = new IOBuffer(kTestDataSize);
- int bytes_read = stream.Read(buf.get(), kTestDataSize, CompletionCallback());
+ int bytes_read = stream->Read(buf.get(), kTestDataSize, CompletionCallback());
ASSERT_EQ(static_cast<int>(kTestDataSize), bytes_read); // Not an error.
- EXPECT_EQ(kTestDataSize, stream.position());
- ASSERT_TRUE(stream.IsEOF());
+ EXPECT_EQ(kTestDataSize, stream->position());
+ ASSERT_TRUE(stream->IsEOF());
}
// Async Read() with on-memory and not-on-memory readers.
-TEST_F(UploadDataStreamTest, ReadAsync) {
+TEST_F(ElementsUploadDataStreamTest, ReadAsync) {
// Create UploadDataStream with mock readers.
MockUploadElementReader* reader = NULL;
@@ -497,11 +488,12 @@
reader->SetReadExpectation(kTestDataSize);
element_readers_.push_back(reader);
- UploadDataStream stream(element_readers_.Pass(), 0);
+ scoped_ptr<UploadDataStream> stream(
+ new ElementsUploadDataStream(element_readers_.Pass(), 0));
// Run Init().
TestCompletionCallback init_callback;
- EXPECT_EQ(ERR_IO_PENDING, stream.Init(init_callback.callback()));
+ EXPECT_EQ(ERR_IO_PENDING, stream->Init(init_callback.callback()));
EXPECT_EQ(OK, init_callback.WaitForResult());
scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
@@ -509,28 +501,29 @@
// Consume the first element.
TestCompletionCallback read_callback1;
EXPECT_EQ(static_cast<int>(kTestDataSize),
- stream.Read(buf.get(), kTestDataSize, read_callback1.callback()));
+ stream->Read(buf.get(), kTestDataSize, read_callback1.callback()));
base::MessageLoop::current()->RunUntilIdle();
EXPECT_FALSE(read_callback1.have_result());
// Consume the second element.
TestCompletionCallback read_callback2;
ASSERT_EQ(ERR_IO_PENDING,
- stream.Read(buf.get(), kTestDataSize, read_callback2.callback()));
+ stream->Read(buf.get(), kTestDataSize, read_callback2.callback()));
EXPECT_EQ(static_cast<int>(kTestDataSize), read_callback2.WaitForResult());
// Consume the third and the fourth elements.
TestCompletionCallback read_callback3;
ASSERT_EQ(
ERR_IO_PENDING,
- stream.Read(buf.get(), kTestDataSize * 2, read_callback3.callback()));
+ stream->Read(buf.get(), kTestDataSize * 2, read_callback3.callback()));
EXPECT_EQ(static_cast<int>(kTestDataSize * 2),
read_callback3.WaitForResult());
}
-void UploadDataStreamTest::FileChangedHelper(const base::FilePath& file_path,
- const base::Time& time,
- bool error_expected) {
+void ElementsUploadDataStreamTest::FileChangedHelper(
+ const base::FilePath& file_path,
+ const base::Time& time,
+ bool error_expected) {
// Don't use element_readers_ here, as this function is called twice, and
// reusing element_readers_ is wrong.
ScopedVector<UploadElementReader> element_readers;
@@ -538,8 +531,9 @@
base::MessageLoopProxy::current().get(), file_path, 1, 2, time));
TestCompletionCallback init_callback;
- UploadDataStream stream(element_readers.Pass(), 0);
- ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback.callback()));
+ scoped_ptr<UploadDataStream> stream(
+ new ElementsUploadDataStream(element_readers.Pass(), 0));
+ ASSERT_EQ(ERR_IO_PENDING, stream->Init(init_callback.callback()));
int error_code = init_callback.WaitForResult();
if (error_expected)
ASSERT_EQ(ERR_UPLOAD_FILE_CHANGED, error_code);
@@ -547,7 +541,7 @@
ASSERT_EQ(OK, error_code);
}
-TEST_F(UploadDataStreamTest, FileChanged) {
+TEST_F(ElementsUploadDataStreamTest, FileChanged) {
base::FilePath temp_file_path;
ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(),
&temp_file_path));
@@ -566,7 +560,7 @@
true);
}
-TEST_F(UploadDataStreamTest, MultipleInit) {
+TEST_F(ElementsUploadDataStreamTest, MultipleInit) {
base::FilePath temp_file_path;
ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(),
&temp_file_path));
@@ -582,35 +576,36 @@
0,
kuint64max,
base::Time()));
- UploadDataStream stream(element_readers_.Pass(), 0);
+ scoped_ptr<UploadDataStream> stream(
+ new ElementsUploadDataStream(element_readers_.Pass(), 0));
std::string expected_data(kTestData, kTestData + kTestDataSize);
expected_data += expected_data;
// Call Init().
TestCompletionCallback init_callback1;
- ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback1.callback()));
+ ASSERT_EQ(ERR_IO_PENDING, stream->Init(init_callback1.callback()));
ASSERT_EQ(OK, init_callback1.WaitForResult());
- EXPECT_FALSE(stream.IsEOF());
- EXPECT_EQ(kTestDataSize*2, stream.size());
+ EXPECT_FALSE(stream->IsEOF());
+ EXPECT_EQ(kTestDataSize*2, stream->size());
// Read.
- EXPECT_EQ(expected_data, ReadFromUploadDataStream(&stream));
- EXPECT_TRUE(stream.IsEOF());
+ EXPECT_EQ(expected_data, ReadFromUploadDataStream(stream.get()));
+ EXPECT_TRUE(stream->IsEOF());
// Call Init() again to reset.
TestCompletionCallback init_callback2;
- ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback2.callback()));
+ ASSERT_EQ(ERR_IO_PENDING, stream->Init(init_callback2.callback()));
ASSERT_EQ(OK, init_callback2.WaitForResult());
- EXPECT_FALSE(stream.IsEOF());
- EXPECT_EQ(kTestDataSize*2, stream.size());
+ EXPECT_FALSE(stream->IsEOF());
+ EXPECT_EQ(kTestDataSize*2, stream->size());
// Read again.
- EXPECT_EQ(expected_data, ReadFromUploadDataStream(&stream));
- EXPECT_TRUE(stream.IsEOF());
+ EXPECT_EQ(expected_data, ReadFromUploadDataStream(stream.get()));
+ EXPECT_TRUE(stream->IsEOF());
}
-TEST_F(UploadDataStreamTest, MultipleInitAsync) {
+TEST_F(ElementsUploadDataStreamTest, MultipleInitAsync) {
base::FilePath temp_file_path;
ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(),
&temp_file_path));
@@ -627,33 +622,34 @@
0,
kuint64max,
base::Time()));
- UploadDataStream stream(element_readers_.Pass(), 0);
+ scoped_ptr<UploadDataStream> stream(
+ new ElementsUploadDataStream(element_readers_.Pass(), 0));
std::string expected_data(kTestData, kTestData + kTestDataSize);
expected_data += expected_data;
// Call Init().
- ASSERT_EQ(ERR_IO_PENDING, stream.Init(test_callback.callback()));
+ ASSERT_EQ(ERR_IO_PENDING, stream->Init(test_callback.callback()));
EXPECT_EQ(OK, test_callback.WaitForResult());
- EXPECT_FALSE(stream.IsEOF());
- EXPECT_EQ(kTestDataSize*2, stream.size());
+ EXPECT_FALSE(stream->IsEOF());
+ EXPECT_EQ(kTestDataSize*2, stream->size());
// Read.
- EXPECT_EQ(expected_data, ReadFromUploadDataStream(&stream));
- EXPECT_TRUE(stream.IsEOF());
+ EXPECT_EQ(expected_data, ReadFromUploadDataStream(stream.get()));
+ EXPECT_TRUE(stream->IsEOF());
// Call Init() again to reset.
- ASSERT_EQ(ERR_IO_PENDING, stream.Init(test_callback.callback()));
+ ASSERT_EQ(ERR_IO_PENDING, stream->Init(test_callback.callback()));
EXPECT_EQ(OK, test_callback.WaitForResult());
- EXPECT_FALSE(stream.IsEOF());
- EXPECT_EQ(kTestDataSize*2, stream.size());
+ EXPECT_FALSE(stream->IsEOF());
+ EXPECT_EQ(kTestDataSize*2, stream->size());
// Read again.
- EXPECT_EQ(expected_data, ReadFromUploadDataStream(&stream));
- EXPECT_TRUE(stream.IsEOF());
+ EXPECT_EQ(expected_data, ReadFromUploadDataStream(stream.get()));
+ EXPECT_TRUE(stream->IsEOF());
}
-TEST_F(UploadDataStreamTest, InitToReset) {
+TEST_F(ElementsUploadDataStreamTest, InitToReset) {
base::FilePath temp_file_path;
ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(),
&temp_file_path));
@@ -669,7 +665,8 @@
0,
kuint64max,
base::Time()));
- UploadDataStream stream(element_readers_.Pass(), 0);
+ scoped_ptr<UploadDataStream> stream(
+ new ElementsUploadDataStream(element_readers_.Pass(), 0));
std::vector<char> expected_data(kTestData, kTestData + kTestDataSize);
expected_data.insert(expected_data.end(), expected_data.begin(),
@@ -677,10 +674,10 @@
// Call Init().
TestCompletionCallback init_callback1;
- ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback1.callback()));
+ ASSERT_EQ(ERR_IO_PENDING, stream->Init(init_callback1.callback()));
EXPECT_EQ(OK, init_callback1.WaitForResult());
- EXPECT_FALSE(stream.IsEOF());
- EXPECT_EQ(kTestDataSize*2, stream.size());
+ EXPECT_FALSE(stream->IsEOF());
+ EXPECT_EQ(kTestDataSize*2, stream->size());
// Read some.
TestCompletionCallback read_callback1;
@@ -688,29 +685,30 @@
scoped_refptr<IOBuffer> wrapped_buffer = new WrappedIOBuffer(&buf[0]);
EXPECT_EQ(
ERR_IO_PENDING,
- stream.Read(wrapped_buffer.get(), buf.size(), read_callback1.callback()));
+ stream->Read(wrapped_buffer.get(), buf.size(),
+ read_callback1.callback()));
EXPECT_EQ(static_cast<int>(buf.size()), read_callback1.WaitForResult());
- EXPECT_EQ(buf.size(), stream.position());
+ EXPECT_EQ(buf.size(), stream->position());
// Call Init to reset the state.
TestCompletionCallback init_callback2;
- ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback2.callback()));
+ ASSERT_EQ(ERR_IO_PENDING, stream->Init(init_callback2.callback()));
EXPECT_EQ(OK, init_callback2.WaitForResult());
- EXPECT_FALSE(stream.IsEOF());
- EXPECT_EQ(kTestDataSize*2, stream.size());
+ EXPECT_FALSE(stream->IsEOF());
+ EXPECT_EQ(kTestDataSize*2, stream->size());
// Read.
TestCompletionCallback read_callback2;
std::vector<char> buf2(kTestDataSize*2);
scoped_refptr<IOBuffer> wrapped_buffer2 = new WrappedIOBuffer(&buf2[0]);
EXPECT_EQ(ERR_IO_PENDING,
- stream.Read(
+ stream->Read(
wrapped_buffer2.get(), buf2.size(), read_callback2.callback()));
EXPECT_EQ(static_cast<int>(buf2.size()), read_callback2.WaitForResult());
EXPECT_EQ(expected_data, buf2);
}
-TEST_F(UploadDataStreamTest, InitDuringAsyncInit) {
+TEST_F(ElementsUploadDataStreamTest, InitDuringAsyncInit) {
base::FilePath temp_file_path;
ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(),
&temp_file_path));
@@ -726,7 +724,8 @@
0,
kuint64max,
base::Time()));
- UploadDataStream stream(element_readers_.Pass(), 0);
+ scoped_ptr<UploadDataStream> stream(
+ new ElementsUploadDataStream(element_readers_.Pass(), 0));
std::vector<char> expected_data(kTestData, kTestData + kTestDataSize);
expected_data.insert(expected_data.end(), expected_data.begin(),
@@ -734,31 +733,31 @@
// Start Init.
TestCompletionCallback init_callback1;
- EXPECT_EQ(ERR_IO_PENDING, stream.Init(init_callback1.callback()));
+ EXPECT_EQ(ERR_IO_PENDING, stream->Init(init_callback1.callback()));
// Call Init again to cancel the previous init.
TestCompletionCallback init_callback2;
- EXPECT_EQ(ERR_IO_PENDING, stream.Init(init_callback2.callback()));
+ EXPECT_EQ(ERR_IO_PENDING, stream->Init(init_callback2.callback()));
EXPECT_EQ(OK, init_callback2.WaitForResult());
- EXPECT_FALSE(stream.IsEOF());
- EXPECT_EQ(kTestDataSize*2, stream.size());
+ EXPECT_FALSE(stream->IsEOF());
+ EXPECT_EQ(kTestDataSize*2, stream->size());
// Read.
TestCompletionCallback read_callback2;
std::vector<char> buf2(kTestDataSize*2);
scoped_refptr<IOBuffer> wrapped_buffer2 = new WrappedIOBuffer(&buf2[0]);
EXPECT_EQ(ERR_IO_PENDING,
- stream.Read(
+ stream->Read(
wrapped_buffer2.get(), buf2.size(), read_callback2.callback()));
EXPECT_EQ(static_cast<int>(buf2.size()), read_callback2.WaitForResult());
EXPECT_EQ(expected_data, buf2);
- EXPECT_TRUE(stream.IsEOF());
+ EXPECT_TRUE(stream->IsEOF());
// Make sure callbacks are not called for cancelled operations.
EXPECT_FALSE(init_callback1.have_result());
}
-TEST_F(UploadDataStreamTest, InitDuringAsyncRead) {
+TEST_F(ElementsUploadDataStreamTest, InitDuringAsyncRead) {
base::FilePath temp_file_path;
ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(),
&temp_file_path));
@@ -774,7 +773,8 @@
0,
kuint64max,
base::Time()));
- UploadDataStream stream(element_readers_.Pass(), 0);
+ scoped_ptr<UploadDataStream> stream(
+ new ElementsUploadDataStream(element_readers_.Pass(), 0));
std::vector<char> expected_data(kTestData, kTestData + kTestDataSize);
expected_data.insert(expected_data.end(), expected_data.begin(),
@@ -782,10 +782,10 @@
// Call Init().
TestCompletionCallback init_callback1;
- ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback1.callback()));
+ ASSERT_EQ(ERR_IO_PENDING, stream->Init(init_callback1.callback()));
EXPECT_EQ(OK, init_callback1.WaitForResult());
- EXPECT_FALSE(stream.IsEOF());
- EXPECT_EQ(kTestDataSize*2, stream.size());
+ EXPECT_FALSE(stream->IsEOF());
+ EXPECT_EQ(kTestDataSize*2, stream->size());
// Start reading.
TestCompletionCallback read_callback1;
@@ -793,25 +793,26 @@
scoped_refptr<IOBuffer> wrapped_buffer = new WrappedIOBuffer(&buf[0]);
EXPECT_EQ(
ERR_IO_PENDING,
- stream.Read(wrapped_buffer.get(), buf.size(), read_callback1.callback()));
+ stream->Read(wrapped_buffer.get(), buf.size(),
+ read_callback1.callback()));
// Call Init to cancel the previous read.
TestCompletionCallback init_callback2;
- EXPECT_EQ(ERR_IO_PENDING, stream.Init(init_callback2.callback()));
+ EXPECT_EQ(ERR_IO_PENDING, stream->Init(init_callback2.callback()));
EXPECT_EQ(OK, init_callback2.WaitForResult());
- EXPECT_FALSE(stream.IsEOF());
- EXPECT_EQ(kTestDataSize*2, stream.size());
+ EXPECT_FALSE(stream->IsEOF());
+ EXPECT_EQ(kTestDataSize*2, stream->size());
// Read.
TestCompletionCallback read_callback2;
std::vector<char> buf2(kTestDataSize*2);
scoped_refptr<IOBuffer> wrapped_buffer2 = new WrappedIOBuffer(&buf2[0]);
EXPECT_EQ(ERR_IO_PENDING,
- stream.Read(
+ stream->Read(
wrapped_buffer2.get(), buf2.size(), read_callback2.callback()));
EXPECT_EQ(static_cast<int>(buf2.size()), read_callback2.WaitForResult());
EXPECT_EQ(expected_data, buf2);
- EXPECT_TRUE(stream.IsEOF());
+ EXPECT_TRUE(stream->IsEOF());
// Make sure callbacks are not called for cancelled operations.
EXPECT_FALSE(read_callback1.have_result());
diff --git a/net/base/escape.cc b/net/base/escape.cc
index ab70f1d..7ce21a1 100644
--- a/net/base/escape.cc
+++ b/net/base/escape.cc
@@ -114,7 +114,7 @@
static_cast<typename STR::value_type>(escaped_text[index + 2]));
if (IsHexDigit(most_sig_digit) && IsHexDigit(least_sig_digit)) {
*value = HexDigitToInt(most_sig_digit) * 16 +
- HexDigitToInt(least_sig_digit);
+ HexDigitToInt(least_sig_digit);
return true;
}
return false;
diff --git a/net/base/file_stream_context.h b/net/base/file_stream_context.h
index 74f47c4..5493e25 100644
--- a/net/base/file_stream_context.h
+++ b/net/base/file_stream_context.h
@@ -158,7 +158,7 @@
// Implementation of MessageLoopForIO::IOHandler.
virtual void OnIOCompleted(base::MessageLoopForIO::IOContext* context,
DWORD bytes_read,
- DWORD error) OVERRIDE;
+ DWORD error) override;
#elif defined(OS_POSIX)
// ReadFileImpl() is a simple wrapper around read() that handles EINTR
// signals and calls RecordAndMapError() to map errno to net error codes.
diff --git a/net/base/keygen_handler_unittest.cc b/net/base/keygen_handler_unittest.cc
index 2962330..af4e01d 100644
--- a/net/base/keygen_handler_unittest.cc
+++ b/net/base/keygen_handler_unittest.cc
@@ -34,11 +34,11 @@
virtual std::string RequestPassword(const std::string& slot_name,
bool retry,
- bool* cancelled) OVERRIDE{
+ bool* cancelled) override{
return std::string();
}
- virtual crypto::ScopedPK11Slot RequestSlot() OVERRIDE {
+ virtual crypto::ScopedPK11Slot RequestSlot() override {
return crypto::ScopedPK11Slot(PK11_ReferenceSlot(slot_.get()));
}
diff --git a/net/base/mock_file_stream.h b/net/base/mock_file_stream.h
index 55261b4..abceb1b 100644
--- a/net/base/mock_file_stream.h
+++ b/net/base/mock_file_stream.h
@@ -29,14 +29,14 @@
// FileStream methods.
virtual int Seek(base::File::Whence whence, int64 offset,
- const Int64CompletionCallback& callback) OVERRIDE;
+ const Int64CompletionCallback& callback) override;
virtual int Read(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int Write(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
- virtual int Flush(const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual int Flush(const CompletionCallback& callback) override;
void set_forced_error_async(int error) {
forced_error_ = error;
diff --git a/net/base/net_error_list.h b/net/base/net_error_list.h
index b805dd6..ae2ff13 100644
--- a/net/base/net_error_list.h
+++ b/net/base/net_error_list.h
@@ -336,6 +336,10 @@
// library.
NET_ERROR(SSL_CLIENT_AUTH_CERT_BAD_FORMAT, -164)
+// The SSL server requires falling back to a version older than the configured
+// minimum fallback version, and thus fallback failed.
+NET_ERROR(SSL_FALLBACK_BEYOND_MINIMUM_VERSION, -165)
+
// Certificate error codes
//
// The values of certificate error codes must be consecutive.
diff --git a/net/base/net_log_logger.h b/net/base/net_log_logger.h
index fde820b..6604b82 100644
--- a/net/base/net_log_logger.h
+++ b/net/base/net_log_logger.h
@@ -41,7 +41,7 @@
void StopObserving();
// net::NetLog::ThreadSafeObserver implementation:
- virtual void OnAddEntry(const NetLog::Entry& entry) OVERRIDE;
+ virtual void OnAddEntry(const NetLog::Entry& entry) override;
// Create a dictionary containing legend for net/ constants. Caller takes
// ownership of returned value.
diff --git a/net/base/net_log_unittest.cc b/net/base/net_log_unittest.cc
index 8f15e9c..d1e7dde 100644
--- a/net/base/net_log_unittest.cc
+++ b/net/base/net_log_unittest.cc
@@ -80,7 +80,7 @@
net_log()->RemoveThreadSafeObserver(this);
}
- virtual void OnAddEntry(const NetLog::Entry& entry) OVERRIDE {
+ virtual void OnAddEntry(const NetLog::Entry& entry) override {
++count_;
}
@@ -99,7 +99,7 @@
net_log()->RemoveThreadSafeObserver(this);
}
- virtual void OnAddEntry(const NetLog::Entry& entry) OVERRIDE {
+ virtual void OnAddEntry(const NetLog::Entry& entry) override {
base::Value* value = entry.ToValue();
base::DictionaryValue* dict = NULL;
ASSERT_TRUE(value->GetAsDictionary(&dict));
@@ -138,7 +138,7 @@
net_log_ = net_log;
}
- virtual void Run() OVERRIDE {
+ virtual void Run() override {
start_event_->Wait();
RunTestThread();
}
@@ -165,7 +165,7 @@
virtual ~AddEventsTestThread() {}
private:
- virtual void RunTestThread() OVERRIDE {
+ virtual void RunTestThread() override {
for (int i = 0; i < kEvents; ++i)
AddEvent(net_log_);
}
@@ -183,7 +183,7 @@
}
private:
- virtual void RunTestThread() OVERRIDE {
+ virtual void RunTestThread() override {
for (int i = 0; i < kEvents; ++i) {
ASSERT_FALSE(observer_.net_log());
diff --git a/net/base/net_util_icu.cc b/net/base/net_util_icu.cc
index 4094fee..bd5625b 100644
--- a/net/base/net_util_icu.cc
+++ b/net/base/net_util_icu.cc
@@ -493,7 +493,7 @@
private:
virtual base::string16 Execute(
const std::string& component_text,
- base::OffsetAdjuster::Adjustments* adjustments) const OVERRIDE {
+ base::OffsetAdjuster::Adjustments* adjustments) const override {
return IDNToUnicodeWithAdjustments(component_text, languages_,
adjustments);
}
@@ -510,7 +510,7 @@
private:
virtual base::string16 Execute(
const std::string& component_text,
- base::OffsetAdjuster::Adjustments* adjustments) const OVERRIDE {
+ base::OffsetAdjuster::Adjustments* adjustments) const override {
return (unescape_rules_ == UnescapeRule::NONE) ?
base::UTF8ToUTF16WithAdjustments(component_text, adjustments) :
UnescapeAndDecodeUTF8URLComponentWithAdjustments(component_text,
diff --git a/net/base/network_change_notifier.cc b/net/base/network_change_notifier.cc
index ef9e252..bea6759 100644
--- a/net/base/network_change_notifier.cc
+++ b/net/base/network_change_notifier.cc
@@ -45,7 +45,7 @@
class MockNetworkChangeNotifier : public NetworkChangeNotifier {
public:
- virtual ConnectionType GetCurrentConnectionType() const OVERRIDE {
+ virtual ConnectionType GetCurrentConnectionType() const override {
return CONNECTION_UNKNOWN;
}
};
@@ -93,7 +93,7 @@
}
// NetworkChangeNotifier::IPAddressObserver implementation.
- virtual void OnIPAddressChanged() OVERRIDE {
+ virtual void OnIPAddressChanged() override {
DCHECK(thread_checker_.CalledOnValidThread());
UMA_HISTOGRAM_MEDIUM_TIMES("NCN.IPAddressChange",
SinceLast(&last_ip_address_change_));
@@ -104,7 +104,7 @@
// NetworkChangeNotifier::ConnectionTypeObserver implementation.
virtual void OnConnectionTypeChanged(
- NetworkChangeNotifier::ConnectionType type) OVERRIDE {
+ NetworkChangeNotifier::ConnectionType type) override {
DCHECK(thread_checker_.CalledOnValidThread());
base::TimeTicks now = base::TimeTicks::Now();
int32 kilobytes_read = bytes_read_since_last_connection_change_ / 1000;
@@ -264,7 +264,7 @@
}
// NetworkChangeNotifier::DNSObserver implementation.
- virtual void OnDNSChanged() OVERRIDE {
+ virtual void OnDNSChanged() override {
DCHECK(thread_checker_.CalledOnValidThread());
UMA_HISTOGRAM_MEDIUM_TIMES("NCN.DNSConfigChange",
SinceLast(&last_dns_change_));
@@ -272,7 +272,7 @@
// NetworkChangeNotifier::NetworkChangeObserver implementation.
virtual void OnNetworkChanged(
- NetworkChangeNotifier::ConnectionType type) OVERRIDE {
+ NetworkChangeNotifier::ConnectionType type) override {
DCHECK(thread_checker_.CalledOnValidThread());
if (type != NetworkChangeNotifier::CONNECTION_NONE) {
UMA_HISTOGRAM_MEDIUM_TIMES("NCN.NetworkOnlineChange",
@@ -432,7 +432,7 @@
}
// NetworkChangeNotifier::IPAddressObserver implementation.
- virtual void OnIPAddressChanged() OVERRIDE {
+ virtual void OnIPAddressChanged() override {
DCHECK(thread_checker_.CalledOnValidThread());
base::TimeDelta delay = last_announced_connection_type_ == CONNECTION_NONE
? params_.ip_address_offline_delay_ : params_.ip_address_online_delay_;
@@ -441,7 +441,7 @@
}
// NetworkChangeNotifier::ConnectionTypeObserver implementation.
- virtual void OnConnectionTypeChanged(ConnectionType type) OVERRIDE {
+ virtual void OnConnectionTypeChanged(ConnectionType type) override {
DCHECK(thread_checker_.CalledOnValidThread());
pending_connection_type_ = type;
base::TimeDelta delay = last_announced_connection_type_ == CONNECTION_NONE
diff --git a/net/base/network_change_notifier_linux.cc b/net/base/network_change_notifier_linux.cc
index 3fe9656..b10f8a8 100644
--- a/net/base/network_change_notifier_linux.cc
+++ b/net/base/network_change_notifier_linux.cc
@@ -29,8 +29,8 @@
protected:
// base::Thread
- virtual void Init() OVERRIDE;
- virtual void CleanUp() OVERRIDE;
+ virtual void Init() override;
+ virtual void CleanUp() override;
private:
scoped_ptr<DnsConfigService> dns_config_service_;
diff --git a/net/base/network_change_notifier_linux.h b/net/base/network_change_notifier_linux.h
index a7080d9..1e8a7eb 100644
--- a/net/base/network_change_notifier_linux.h
+++ b/net/base/network_change_notifier_linux.h
@@ -26,10 +26,10 @@
static NetworkChangeCalculatorParams NetworkChangeCalculatorParamsLinux();
// NetworkChangeNotifier:
- virtual ConnectionType GetCurrentConnectionType() const OVERRIDE;
+ virtual ConnectionType GetCurrentConnectionType() const override;
virtual const internal::AddressTrackerLinux*
- GetAddressTrackerInternal() const OVERRIDE;
+ GetAddressTrackerInternal() const override;
// The thread used to listen for notifications. This relays the notification
// to the registered observers without posting back to the thread the object
diff --git a/net/base/network_change_notifier_mac.cc b/net/base/network_change_notifier_mac.cc
index 7fa97b4..e378418 100644
--- a/net/base/network_change_notifier_mac.cc
+++ b/net/base/network_change_notifier_mac.cc
@@ -47,12 +47,12 @@
Stop();
}
- virtual void Init() OVERRIDE {
+ virtual void Init() override {
service_ = DnsConfigService::CreateSystemService();
service_->WatchConfig(base::Bind(&NetworkChangeNotifier::SetDnsConfig));
}
- virtual void CleanUp() OVERRIDE {
+ virtual void CleanUp() override {
service_.reset();
}
diff --git a/net/base/network_change_notifier_mac.h b/net/base/network_change_notifier_mac.h
index 168ea14..1598c4c 100644
--- a/net/base/network_change_notifier_mac.h
+++ b/net/base/network_change_notifier_mac.h
@@ -24,7 +24,7 @@
virtual ~NetworkChangeNotifierMac();
// NetworkChangeNotifier implementation:
- virtual ConnectionType GetCurrentConnectionType() const OVERRIDE;
+ virtual ConnectionType GetCurrentConnectionType() const override;
// Forwarder just exists to keep the NetworkConfigWatcherMac API out of
// NetworkChangeNotifierMac's public API.
@@ -34,11 +34,11 @@
: net_config_watcher_(net_config_watcher) {}
// NetworkConfigWatcherMac::Delegate implementation:
- virtual void Init() OVERRIDE;
- virtual void StartReachabilityNotifications() OVERRIDE;
+ virtual void Init() override;
+ virtual void StartReachabilityNotifications() override;
virtual void SetDynamicStoreNotificationKeys(
- SCDynamicStoreRef store) OVERRIDE;
- virtual void OnNetworkConfigChange(CFArrayRef changed_keys) OVERRIDE;
+ SCDynamicStoreRef store) override;
+ virtual void OnNetworkConfigChange(CFArrayRef changed_keys) override;
private:
NetworkChangeNotifierMac* const net_config_watcher_;
diff --git a/net/base/network_change_notifier_win.cc b/net/base/network_change_notifier_win.cc
index 4580fa8..2255681 100644
--- a/net/base/network_change_notifier_win.cc
+++ b/net/base/network_change_notifier_win.cc
@@ -37,12 +37,12 @@
Stop();
}
- virtual void Init() OVERRIDE {
+ virtual void Init() override {
service_ = DnsConfigService::CreateSystemService();
service_->WatchConfig(base::Bind(&NetworkChangeNotifier::SetDnsConfig));
}
- virtual void CleanUp() OVERRIDE {
+ virtual void CleanUp() override {
service_.reset();
}
diff --git a/net/base/network_change_notifier_win.h b/net/base/network_change_notifier_win.h
index 4ded749..9de1789 100644
--- a/net/base/network_change_notifier_win.h
+++ b/net/base/network_change_notifier_win.h
@@ -51,11 +51,11 @@
friend class NetworkChangeNotifierWinTest;
// NetworkChangeNotifier methods:
- virtual ConnectionType GetCurrentConnectionType() const OVERRIDE;
+ virtual ConnectionType GetCurrentConnectionType() const override;
// ObjectWatcher::Delegate methods:
// Must only be called on the thread |this| was created on.
- virtual void OnObjectSignaled(HANDLE object) OVERRIDE;
+ virtual void OnObjectSignaled(HANDLE object) override;
// Does the actual work to determine the current connection type.
// It is not thread safe, see crbug.com/324913.
diff --git a/net/base/network_change_notifier_win_unittest.cc b/net/base/network_change_notifier_win_unittest.cc
index 979105f..25873c3 100644
--- a/net/base/network_change_notifier_win_unittest.cc
+++ b/net/base/network_change_notifier_win_unittest.cc
@@ -32,7 +32,7 @@
// From NetworkChangeNotifierWin.
virtual NetworkChangeNotifier::ConnectionType
- RecomputeCurrentConnectionType() const OVERRIDE {
+ RecomputeCurrentConnectionType() const override {
return NetworkChangeNotifier::CONNECTION_UNKNOWN;
}
diff --git a/net/base/network_config_watcher_mac.cc b/net/base/network_config_watcher_mac.cc
index 8579a35..7d2377c 100644
--- a/net/base/network_config_watcher_mac.cc
+++ b/net/base/network_config_watcher_mac.cc
@@ -35,8 +35,8 @@
protected:
// base::Thread
- virtual void Init() OVERRIDE;
- virtual void CleanUp() OVERRIDE;
+ virtual void Init() override;
+ virtual void CleanUp() override;
private:
// The SystemConfiguration calls in this function can lead to contention early
diff --git a/net/base/prioritized_dispatcher_unittest.cc b/net/base/prioritized_dispatcher_unittest.cc
index 3036038..4cdf53b 100644
--- a/net/base/prioritized_dispatcher_unittest.cc
+++ b/net/base/prioritized_dispatcher_unittest.cc
@@ -117,7 +117,7 @@
}
// PriorityDispatch::Job interface
- virtual void Start() OVERRIDE {
+ virtual void Start() override {
EXPECT_FALSE(running_);
handle_ = PrioritizedDispatcher::Handle();
running_ = true;
diff --git a/net/base/priority_queue_unittest.cc b/net/base/priority_queue_unittest.cc
index 8093319..87a8299 100644
--- a/net/base/priority_queue_unittest.cc
+++ b/net/base/priority_queue_unittest.cc
@@ -25,7 +25,7 @@
protected:
PriorityQueueTest() : queue_(kNumPriorities) {}
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
CheckEmpty();
for (size_t i = 0; i < kNumElements; ++i) {
EXPECT_EQ(i, queue_.size());
diff --git a/net/base/sdch_dictionary_fetcher.h b/net/base/sdch_dictionary_fetcher.h
index f70d56a..86aaf48 100644
--- a/net/base/sdch_dictionary_fetcher.h
+++ b/net/base/sdch_dictionary_fetcher.h
@@ -44,12 +44,12 @@
virtual ~SdchDictionaryFetcher();
// Implementation of SdchFetcher methods.
- virtual void Schedule(const GURL& dictionary_url) OVERRIDE;
- virtual void Cancel() OVERRIDE;
+ virtual void Schedule(const GURL& dictionary_url) override;
+ virtual void Cancel() override;
// Implementation of URLRequest::Delegate methods.
- virtual void OnResponseStarted(URLRequest* request) OVERRIDE;
- virtual void OnReadCompleted(URLRequest* request, int bytes_read) OVERRIDE;
+ virtual void OnResponseStarted(URLRequest* request) override;
+ virtual void OnReadCompleted(URLRequest* request, int bytes_read) override;
private:
enum State {
diff --git a/net/base/sdch_dictionary_fetcher_unittest.cc b/net/base/sdch_dictionary_fetcher_unittest.cc
index 09155b8..a8b3040 100644
--- a/net/base/sdch_dictionary_fetcher_unittest.cc
+++ b/net/base/sdch_dictionary_fetcher_unittest.cc
@@ -62,7 +62,7 @@
virtual int GetData(std::string* mime_type,
std::string* charset,
std::string* data,
- const CompletionCallback& callback) const OVERRIDE {
+ const CompletionCallback& callback) const override {
GURL url(request_->url());
*data = ExpectedResponseForURL(url);
return OK;
@@ -87,7 +87,7 @@
};
virtual void AddSdchDictionary(const std::string& dictionary_text,
- const GURL& dictionary_url) OVERRIDE {
+ const GURL& dictionary_url) override {
dictionary_additions.push_back(
DictionaryAdditions(dictionary_text, dictionary_url));
}
@@ -105,7 +105,7 @@
public:
SdchDictionaryFetcherTest() {}
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
DCHECK(!fetcher_.get());
URLRequestSpecifiedResponseJob::AddUrlHandler();
@@ -115,7 +115,7 @@
fetcher_delegate_.get(), context_.get()));
}
- virtual void TearDown() OVERRIDE {
+ virtual void TearDown() override {
URLRequestSpecifiedResponseJob::RemoveUrlHandler();
fetcher_.reset();
context_.reset();
diff --git a/net/base/sdch_manager.h b/net/base/sdch_manager.h
index 7d2c103..18f6749 100644
--- a/net/base/sdch_manager.h
+++ b/net/base/sdch_manager.h
@@ -356,7 +356,7 @@
// (data in the dictionary is not acceptable from the
// dictionary_url; dictionary already added, etc.).
virtual void AddSdchDictionary(const std::string& dictionary_text,
- const GURL& dictionary_url) OVERRIDE;
+ const GURL& dictionary_url) override;
private:
struct BlacklistInfo {
diff --git a/net/base/test_completion_callback.h b/net/base/test_completion_callback.h
index 4a0afe1..469d12f 100644
--- a/net/base/test_completion_callback.h
+++ b/net/base/test_completion_callback.h
@@ -117,7 +117,7 @@
virtual ~ReleaseBufferCompletionCallback();
private:
- virtual void SetResult(int result) OVERRIDE;
+ virtual void SetResult(int result) override;
IOBuffer* buffer_;
DISALLOW_COPY_AND_ASSIGN(ReleaseBufferCompletionCallback);
diff --git a/net/base/trace_net_log_observer.cc b/net/base/trace_net_log_observer.cc
index fb4f054..77945fb 100644
--- a/net/base/trace_net_log_observer.cc
+++ b/net/base/trace_net_log_observer.cc
@@ -26,7 +26,7 @@
private:
virtual ~TracedValue() {}
- virtual void AppendAsTraceFormat(std::string* out) const OVERRIDE {
+ virtual void AppendAsTraceFormat(std::string* out) const override {
if (value_) {
std::string tmp;
base::JSONWriter::Write(value_.get(), &tmp);
diff --git a/net/base/trace_net_log_observer.h b/net/base/trace_net_log_observer.h
index ed46fdb..567ba3f 100644
--- a/net/base/trace_net_log_observer.h
+++ b/net/base/trace_net_log_observer.h
@@ -22,7 +22,7 @@
virtual ~TraceNetLogObserver();
// net::NetLog::ThreadSafeObserver implementation:
- virtual void OnAddEntry(const NetLog::Entry& entry) OVERRIDE;
+ virtual void OnAddEntry(const NetLog::Entry& entry) override;
// Start to watch for TraceLog enable and disable events.
// This can't be called if already watching for events.
@@ -35,8 +35,8 @@
void StopWatchForTraceStart();
// base::debug::TraceLog::EnabledStateChangedObserver implementation:
- virtual void OnTraceLogEnabled() OVERRIDE;
- virtual void OnTraceLogDisabled() OVERRIDE;
+ virtual void OnTraceLogEnabled() override;
+ virtual void OnTraceLogDisabled() override;
private:
NetLog* net_log_to_watch_;
diff --git a/net/base/upload_bytes_element_reader.h b/net/base/upload_bytes_element_reader.h
index 9c7daf3..589e287 100644
--- a/net/base/upload_bytes_element_reader.h
+++ b/net/base/upload_bytes_element_reader.h
@@ -26,14 +26,14 @@
uint64 length() const { return length_; }
// UploadElementReader overrides:
- virtual const UploadBytesElementReader* AsBytesReader() const OVERRIDE;
- virtual int Init(const CompletionCallback& callback) OVERRIDE;
- virtual uint64 GetContentLength() const OVERRIDE;
- virtual uint64 BytesRemaining() const OVERRIDE;
- virtual bool IsInMemory() const OVERRIDE;
+ virtual const UploadBytesElementReader* AsBytesReader() const override;
+ virtual int Init(const CompletionCallback& callback) override;
+ virtual uint64 GetContentLength() const override;
+ virtual uint64 BytesRemaining() const override;
+ virtual bool IsInMemory() const override;
virtual int Read(IOBuffer* buf,
int buf_length,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
private:
const char* const bytes_;
diff --git a/net/base/upload_bytes_element_reader_unittest.cc b/net/base/upload_bytes_element_reader_unittest.cc
index 1aad55e..e15bbcf 100644
--- a/net/base/upload_bytes_element_reader_unittest.cc
+++ b/net/base/upload_bytes_element_reader_unittest.cc
@@ -15,7 +15,7 @@
class UploadBytesElementReaderTest : public PlatformTest {
protected:
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
const char kData[] = "123abc";
bytes_.assign(kData, kData + arraysize(kData));
reader_.reset(new UploadBytesElementReader(&bytes_[0], bytes_.size()));
diff --git a/net/base/upload_data_stream.cc b/net/base/upload_data_stream.cc
index 785d5e9..936c912 100644
--- a/net/base/upload_data_stream.cc
+++ b/net/base/upload_data_stream.cc
@@ -4,261 +4,125 @@
#include "net/base/upload_data_stream.h"
+#include "base/callback_helpers.h"
#include "base/logging.h"
#include "net/base/io_buffer.h"
#include "net/base/net_errors.h"
-#include "net/base/upload_bytes_element_reader.h"
-#include "net/base/upload_element_reader.h"
namespace net {
-UploadDataStream::UploadDataStream(
- ScopedVector<UploadElementReader> element_readers,
- int64 identifier)
- : element_readers_(element_readers.Pass()),
- element_index_(0),
- total_size_(0),
+UploadDataStream::UploadDataStream(bool is_chunked, int64 identifier)
+ : total_size_(0),
current_position_(0),
identifier_(identifier),
- is_chunked_(false),
- last_chunk_appended_(false),
- read_failed_(false),
+ is_chunked_(is_chunked),
initialized_successfully_(false),
- weak_ptr_factory_(this) {
-}
-
-UploadDataStream::UploadDataStream(Chunked /*chunked*/, int64 identifier)
- : element_index_(0),
- total_size_(0),
- current_position_(0),
- identifier_(identifier),
- is_chunked_(true),
- last_chunk_appended_(false),
- read_failed_(false),
- initialized_successfully_(false),
- weak_ptr_factory_(this) {
+ is_eof_(false) {
}
UploadDataStream::~UploadDataStream() {
}
-UploadDataStream* UploadDataStream::CreateWithReader(
- scoped_ptr<UploadElementReader> reader,
- int64 identifier) {
- ScopedVector<UploadElementReader> readers;
- readers.push_back(reader.release());
- return new UploadDataStream(readers.Pass(), identifier);
-}
-
int UploadDataStream::Init(const CompletionCallback& callback) {
Reset();
- return InitInternal(0, callback);
+ DCHECK(!initialized_successfully_);
+ DCHECK(callback_.is_null());
+ DCHECK(!callback.is_null() || IsInMemory());
+ int result = InitInternal();
+ if (result == ERR_IO_PENDING) {
+ DCHECK(!IsInMemory());
+ callback_ = callback;
+ } else {
+ OnInitCompleted(result);
+ }
+ return result;
}
int UploadDataStream::Read(IOBuffer* buf,
int buf_len,
const CompletionCallback& callback) {
+ DCHECK(!callback.is_null() || IsInMemory());
DCHECK(initialized_successfully_);
DCHECK_GT(buf_len, 0);
- return ReadInternal(new DrainableIOBuffer(buf, buf_len), callback);
+ if (is_eof_)
+ return 0;
+ int result = ReadInternal(buf, buf_len);
+ if (result == ERR_IO_PENDING) {
+ DCHECK(!IsInMemory());
+ callback_ = callback;
+ } else {
+ OnReadCompleted(result);
+ }
+ return result;
}
bool UploadDataStream::IsEOF() const {
DCHECK(initialized_successfully_);
- if (!is_chunked_)
- return current_position_ == total_size_;
-
- // If the upload data is chunked, check if the last chunk is appended and all
- // elements are consumed.
- return element_index_ == element_readers_.size() && last_chunk_appended_;
-}
-
-bool UploadDataStream::IsInMemory() const {
- // Chunks are in memory, but UploadData does not have all the chunks at
- // once. Chunks are provided progressively with AppendChunk() as chunks
- // are ready. Check is_chunked_ here, rather than relying on the loop
- // below, as there is a case that is_chunked_ is set to true, but the
- // first chunk is not yet delivered.
- if (is_chunked_)
- return false;
-
- for (size_t i = 0; i < element_readers_.size(); ++i) {
- if (!element_readers_[i]->IsInMemory())
- return false;
- }
- return true;
-}
-
-void UploadDataStream::AppendChunk(const char* bytes,
- int bytes_len,
- bool is_last_chunk) {
- DCHECK(is_chunked_);
- DCHECK(!last_chunk_appended_);
- last_chunk_appended_ = is_last_chunk;
-
- // Initialize a reader for the newly appended chunk. We leave |total_size_| at
- // zero, since for chunked uploads, we may not know the total size.
- std::vector<char> data(bytes, bytes + bytes_len);
- UploadElementReader* reader = new UploadOwnedBytesElementReader(&data);
- const int rv = reader->Init(net::CompletionCallback());
- DCHECK_EQ(OK, rv);
- element_readers_.push_back(reader);
-
- // Resume pending read.
- if (!pending_chunked_read_callback_.is_null()) {
- base::Closure callback = pending_chunked_read_callback_;
- pending_chunked_read_callback_.Reset();
- callback.Run();
- }
+ DCHECK(is_chunked_ || is_eof_ == (current_position_ == total_size_));
+ return is_eof_;
}
void UploadDataStream::Reset() {
- weak_ptr_factory_.InvalidateWeakPtrs();
- pending_chunked_read_callback_.Reset();
- initialized_successfully_ = false;
- read_failed_ = false;
current_position_ = 0;
+ initialized_successfully_ = false;
+ is_eof_ = false;
total_size_ = 0;
- element_index_ = 0;
+ callback_.Reset();
+ ResetInternal();
}
-int UploadDataStream::InitInternal(int start_index,
- const CompletionCallback& callback) {
+void UploadDataStream::SetSize(uint64 size) {
DCHECK(!initialized_successfully_);
-
- // Call Init() for all elements.
- for (size_t i = start_index; i < element_readers_.size(); ++i) {
- UploadElementReader* reader = element_readers_[i];
- // When new_result is ERR_IO_PENDING, InitInternal() will be called
- // with start_index == i + 1 when reader->Init() finishes.
- const int result = reader->Init(
- base::Bind(&UploadDataStream::ResumePendingInit,
- weak_ptr_factory_.GetWeakPtr(),
- i + 1,
- callback));
- if (result != OK) {
- DCHECK(result != ERR_IO_PENDING || !callback.is_null());
- return result;
- }
- }
-
- // Finalize initialization.
- if (!is_chunked_) {
- uint64 total_size = 0;
- for (size_t i = 0; i < element_readers_.size(); ++i) {
- UploadElementReader* reader = element_readers_[i];
- total_size += reader->GetContentLength();
- }
- total_size_ = total_size;
- }
- initialized_successfully_ = true;
- return OK;
+ DCHECK(!is_chunked_);
+ total_size_ = size;
}
-void UploadDataStream::ResumePendingInit(int start_index,
- const CompletionCallback& callback,
- int previous_result) {
+void UploadDataStream::SetIsFinalChunk() {
+ DCHECK(initialized_successfully_);
+ DCHECK(is_chunked_);
+ DCHECK(!is_eof_);
+ is_eof_ = true;
+}
+
+bool UploadDataStream::IsInMemory() const {
+ return false;
+}
+
+const ScopedVector<UploadElementReader>*
+UploadDataStream::GetElementReaders() const {
+ return NULL;
+}
+
+void UploadDataStream::OnInitCompleted(int result) {
+ DCHECK_NE(ERR_IO_PENDING, result);
DCHECK(!initialized_successfully_);
- DCHECK(!callback.is_null());
- DCHECK_NE(ERR_IO_PENDING, previous_result);
+ DCHECK_EQ(0u, current_position_);
+ DCHECK(!is_eof_);
- // Check the last result.
- if (previous_result != OK) {
- callback.Run(previous_result);
- return;
+ if (result == OK) {
+ initialized_successfully_ = true;
+ if (!is_chunked_ && total_size_ == 0)
+ is_eof_ = true;
}
-
- const int result = InitInternal(start_index, callback);
- if (result != ERR_IO_PENDING)
- callback.Run(result);
+ if (!callback_.is_null())
+ base::ResetAndReturn(&callback_).Run(result);
}
-int UploadDataStream::ReadInternal(scoped_refptr<DrainableIOBuffer> buf,
- const CompletionCallback& callback) {
+void UploadDataStream::OnReadCompleted(int result) {
+ DCHECK_GE(result, 0);
DCHECK(initialized_successfully_);
- while (!read_failed_ && element_index_ < element_readers_.size()) {
- UploadElementReader* reader = element_readers_[element_index_];
-
- if (reader->BytesRemaining() == 0) {
- ++element_index_;
- continue;
- }
-
- if (buf->BytesRemaining() == 0)
- break;
-
- int result = reader->Read(
- buf.get(),
- buf->BytesRemaining(),
- base::Bind(base::IgnoreResult(&UploadDataStream::ResumePendingRead),
- weak_ptr_factory_.GetWeakPtr(),
- buf,
- callback));
- if (result == ERR_IO_PENDING) {
- DCHECK(!callback.is_null());
- return ERR_IO_PENDING;
- }
- ProcessReadResult(buf, result);
+ current_position_ += result;
+ if (!is_chunked_) {
+ DCHECK_LE(current_position_, total_size_);
+ if (current_position_ == total_size_)
+ is_eof_ = true;
}
- if (read_failed_) {
- // Chunked transfers may only contain byte readers, so cannot have read
- // failures.
- DCHECK(!is_chunked_);
+ DCHECK(result > 0 || is_eof_);
- // If an error occured during read operation, then pad with zero.
- // Otherwise the server will hang waiting for the rest of the data.
- const int num_bytes_to_fill =
- std::min(static_cast<uint64>(buf->BytesRemaining()),
- size() - position() - buf->BytesConsumed());
- DCHECK_LE(0, num_bytes_to_fill);
- memset(buf->data(), 0, num_bytes_to_fill);
- buf->DidConsume(num_bytes_to_fill);
- }
-
- const int bytes_copied = buf->BytesConsumed();
- current_position_ += bytes_copied;
- DCHECK(is_chunked_ || total_size_ >= current_position_);
-
- if (is_chunked_ && !IsEOF() && bytes_copied == 0) {
- DCHECK(!callback.is_null());
- DCHECK(pending_chunked_read_callback_.is_null());
- pending_chunked_read_callback_ =
- base::Bind(&UploadDataStream::ResumePendingRead,
- weak_ptr_factory_.GetWeakPtr(),
- buf,
- callback,
- OK);
- return ERR_IO_PENDING;
- }
-
- // Returning 0 is allowed only when IsEOF() == true.
- DCHECK(bytes_copied != 0 || IsEOF());
- return bytes_copied;
-}
-
-void UploadDataStream::ResumePendingRead(scoped_refptr<DrainableIOBuffer> buf,
- const CompletionCallback& callback,
- int previous_result) {
- DCHECK(!callback.is_null());
-
- ProcessReadResult(buf, previous_result);
-
- const int result = ReadInternal(buf, callback);
- if (result != ERR_IO_PENDING)
- callback.Run(result);
-}
-
-void UploadDataStream::ProcessReadResult(scoped_refptr<DrainableIOBuffer> buf,
- int result) {
- DCHECK_NE(ERR_IO_PENDING, result);
- DCHECK(!read_failed_);
-
- if (result >= 0)
- buf->DidConsume(result);
- else
- read_failed_ = true;
+ if (!callback_.is_null())
+ base::ResetAndReturn(&callback_).Run(result);
}
} // namespace net
diff --git a/net/base/upload_data_stream.h b/net/base/upload_data_stream.h
index ac14e38..d7df8c9 100644
--- a/net/base/upload_data_stream.h
+++ b/net/base/upload_data_stream.h
@@ -5,10 +5,9 @@
#ifndef NET_BASE_UPLOAD_DATA_STREAM_H_
#define NET_BASE_UPLOAD_DATA_STREAM_H_
-#include "base/gtest_prod_util.h"
-#include "base/memory/ref_counted.h"
+#include "base/basictypes.h"
+#include "base/macros.h"
#include "base/memory/scoped_vector.h"
-#include "base/memory/weak_ptr.h"
#include "net/base/completion_callback.h"
#include "net/base/net_export.h"
@@ -18,31 +17,22 @@
class IOBuffer;
class UploadElementReader;
-// A class to read all elements from an UploadData object.
+// A class for retrieving all data to be sent as a request body. Supports both
+// chunked and non-chunked uploads.
class NET_EXPORT UploadDataStream {
public:
- // An enum used to construct chunked data stream.
- enum Chunked { CHUNKED };
+ // |identifier| identifies a particular upload instance, which is used by the
+ // cache to formulate a cache key. This value should be unique across browser
+ // sessions. A value of 0 is used to indicate an unspecified identifier.
+ UploadDataStream(bool is_chunked, int64 identifier);
- // Constructs a non-chunked data stream.
- UploadDataStream(ScopedVector<UploadElementReader> element_readers,
- int64 identifier);
-
- // Constructs a chunked data stream.
- UploadDataStream(Chunked chunked, int64 identifier);
-
- ~UploadDataStream();
-
- // Creates UploadDataStream with a reader.
- static UploadDataStream* CreateWithReader(
- scoped_ptr<UploadElementReader> reader,
- int64 identifier);
+ virtual ~UploadDataStream();
// Initializes the stream. This function must be called before calling any
// other method. It is not valid to call any method (other than the
- // destructor) if Init() returns a failure. This method can be called multiple
- // times. Calling this method after a Init() success results in resetting the
- // state.
+ // destructor) if Init() fails. This method can be called multiple times.
+ // Calling this method after an Init() success results in resetting the
+ // state (i.e. the stream is rewound).
//
// Does the initialization synchronously and returns the result if possible,
// otherwise returns ERR_IO_PENDING and runs the callback with the result.
@@ -62,93 +52,88 @@
// If there's less data to read than we initially observed (i.e. the actual
// upload data is smaller than size()), zeros are padded to ensure that
// size() bytes can be read, which can happen for TYPE_FILE payloads.
+ //
+ // Reads are currently not allowed to fail - they must either return
+ // a value >= 0 or ERR_IO_PENDING, and call OnReadCompleted with a
+ // value >= 0.
+ // TODO(mmenke): Investigate letting reads fail.
int Read(IOBuffer* buf, int buf_len, const CompletionCallback& callback);
- // Identifies a particular upload instance, which is used by the cache to
- // formulate a cache key. This value should be unique across browser
- // sessions. A value of 0 is used to indicate an unspecified identifier.
- int64 identifier() const { return identifier_; }
-
// Returns the total size of the data stream and the current position.
- // size() is not to be used to determine whether the stream has ended
- // because it is possible for the stream to end before its size is reached,
- // for example, if the file is truncated. When the data is chunked, size()
- // always returns zero.
+ // When the data is chunked, always returns zero. Must always return the same
+ // value after each call to Initialize().
uint64 size() const { return total_size_; }
uint64 position() const { return current_position_; }
- bool is_chunked() const { return is_chunked_; }
- bool last_chunk_appended() const { return last_chunk_appended_; }
+ // See constructor for description.
+ int64 identifier() const { return identifier_; }
- const ScopedVector<UploadElementReader>& element_readers() const {
- return element_readers_;
- }
+ bool is_chunked() const { return is_chunked_; }
// Returns true if all data has been consumed from this upload data
- // stream.
+ // stream. For chunked uploads, returns false until the first read attempt.
+ // This makes some state machines a little simpler.
bool IsEOF() const;
- // Returns true if the upload data in the stream is entirely in memory.
- bool IsInMemory() const;
-
- // Adds the given chunk of bytes to be sent with chunked transfer encoding.
- void AppendChunk(const char* bytes, int bytes_len, bool is_last_chunk);
-
- // Resets this instance to the uninitialized state.
+ // Cancels all pending callbacks, and resets state. Any IOBuffer currently
+ // being read to is not safe for future use, as it may be in use on another
+ // thread.
void Reset();
+ // Returns true if the upload data in the stream is entirely in memory, and
+ // all read requests will succeed synchronously. Expected to return false for
+ // chunked requests.
+ virtual bool IsInMemory() const;
+
+ // Returns a list of element readers owned by |this|, if it has any.
+ virtual const ScopedVector<UploadElementReader>*
+ GetElementReaders() const;
+
+ protected:
+ // Must be called by subclasses when InitInternal and ReadInternal complete
+ // asynchronously.
+ void OnInitCompleted(int result);
+ void OnReadCompleted(int result);
+
+ // Must be called before InitInternal completes, for non-chunked uploads.
+ // Must not be called for chunked uploads.
+ void SetSize(uint64 size);
+
+ // Must be called for chunked uploads before the final ReadInternal call
+ // completes. Must not be called for non-chunked uploads.
+ void SetIsFinalChunk();
+
private:
- // Runs Init() for all element readers.
- // This method is used to implement Init().
- int InitInternal(int start_index, const CompletionCallback& callback);
+ // See Init(). If it returns ERR_IO_PENDING, OnInitCompleted must be called
+ // once it completes. If the upload is not chunked, SetSize must be called
+ // before it completes.
+ virtual int InitInternal() = 0;
- // Resumes initialization and runs callback with the result when necessary.
- void ResumePendingInit(int start_index,
- const CompletionCallback& callback,
- int previous_result);
+ // See Read(). For chunked uploads, must call SetIsFinalChunk if this is the
+ // final chunk. For non-chunked uploads, the UploadDataStream determins which
+ // read is the last based on size. Must read 1 or more bytes on every call,
+ // though the final chunk may be 0 bytes, for chunked requests. If it returns
+ // ERR_IO_PENDING, OnInitCompleted must be called once it completes. Must not
+ // return any error, other than ERR_IO_PENDING.
+ virtual int ReadInternal(IOBuffer* buf, int buf_len) = 0;
- // Reads data from the element readers.
- // This method is used to implement Read().
- int ReadInternal(scoped_refptr<DrainableIOBuffer> buf,
- const CompletionCallback& callback);
+ // Resets state and cancels any pending callbacks. Guaranteed to be called
+ // before all but the first call to InitInternal.
+ virtual void ResetInternal() = 0;
- // Resumes pending read and calls callback with the result when necessary.
- void ResumePendingRead(scoped_refptr<DrainableIOBuffer> buf,
- const CompletionCallback& callback,
- int previous_result);
-
- // Processes result of UploadElementReader::Read(). If |result| indicates
- // success, updates |buf|'s offset. Otherwise, sets |read_failed_| to true.
- void ProcessReadResult(scoped_refptr<DrainableIOBuffer> buf,
- int result);
-
- ScopedVector<UploadElementReader> element_readers_;
-
- // Index of the current upload element (i.e. the element currently being
- // read). The index is used as a cursor to iterate over elements in
- // |upload_data_|.
- size_t element_index_;
-
- // Size and current read position within the upload data stream.
- // |total_size_| is set to zero when the data is chunked.
uint64 total_size_;
uint64 current_position_;
const int64 identifier_;
const bool is_chunked_;
- bool last_chunk_appended_;
-
- // True if an error occcured during read operation.
- bool read_failed_;
// True if the initialization was successful.
bool initialized_successfully_;
- // Callback to resume reading chunked data.
- base::Closure pending_chunked_read_callback_;
+ bool is_eof_;
- base::WeakPtrFactory<UploadDataStream> weak_ptr_factory_;
+ CompletionCallback callback_;
DISALLOW_COPY_AND_ASSIGN(UploadDataStream);
};
diff --git a/net/base/upload_element_reader.h b/net/base/upload_element_reader.h
index d71f57c..a46b970 100644
--- a/net/base/upload_element_reader.h
+++ b/net/base/upload_element_reader.h
@@ -35,8 +35,8 @@
// state.
virtual int Init(const CompletionCallback& callback) = 0;
- // Returns the byte-length of the element. For files that do not exist, 0
- // is returned. This is done for consistency with Mozilla.
+ // Returns the byte-length of the element. For files that do not exist, 0
+ // is returned. This is done for consistency with Mozilla.
virtual uint64 GetContentLength() const = 0;
// Returns the number of bytes remaining to read.
diff --git a/net/base/upload_file_element_reader.h b/net/base/upload_file_element_reader.h
index 88e95bf..dc27585 100644
--- a/net/base/upload_file_element_reader.h
+++ b/net/base/upload_file_element_reader.h
@@ -42,16 +42,16 @@
}
// UploadElementReader overrides:
- virtual const UploadFileElementReader* AsFileReader() const OVERRIDE;
- virtual int Init(const CompletionCallback& callback) OVERRIDE;
- virtual uint64 GetContentLength() const OVERRIDE;
- virtual uint64 BytesRemaining() const OVERRIDE;
+ virtual const UploadFileElementReader* AsFileReader() const override;
+ virtual int Init(const CompletionCallback& callback) override;
+ virtual uint64 GetContentLength() const override;
+ virtual uint64 BytesRemaining() const override;
virtual int Read(IOBuffer* buf,
int buf_length,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
private:
- FRIEND_TEST_ALL_PREFIXES(UploadDataStreamTest, FileSmallerThanLength);
+ FRIEND_TEST_ALL_PREFIXES(ElementsUploadDataStreamTest, FileSmallerThanLength);
FRIEND_TEST_ALL_PREFIXES(HttpNetworkTransactionTest,
UploadFileSmallerThanLength);
diff --git a/net/cert/cert_verify_proc_android.h b/net/cert/cert_verify_proc_android.h
index ca8746b..7002718 100644
--- a/net/cert/cert_verify_proc_android.h
+++ b/net/cert/cert_verify_proc_android.h
@@ -15,7 +15,7 @@
public:
CertVerifyProcAndroid();
- virtual bool SupportsAdditionalTrustAnchors() const OVERRIDE;
+ virtual bool SupportsAdditionalTrustAnchors() const override;
protected:
virtual ~CertVerifyProcAndroid();
@@ -26,7 +26,7 @@
int flags,
CRLSet* crl_set,
const CertificateList& additional_trust_anchors,
- CertVerifyResult* verify_result) OVERRIDE;
+ CertVerifyResult* verify_result) override;
};
} // namespace net
diff --git a/net/cert/cert_verify_proc_mac.h b/net/cert/cert_verify_proc_mac.h
index cb55767..f26768f 100644
--- a/net/cert/cert_verify_proc_mac.h
+++ b/net/cert/cert_verify_proc_mac.h
@@ -15,7 +15,7 @@
public:
CertVerifyProcMac();
- virtual bool SupportsAdditionalTrustAnchors() const OVERRIDE;
+ virtual bool SupportsAdditionalTrustAnchors() const override;
protected:
virtual ~CertVerifyProcMac();
@@ -26,7 +26,7 @@
int flags,
CRLSet* crl_set,
const CertificateList& additional_trust_anchors,
- CertVerifyResult* verify_result) OVERRIDE;
+ CertVerifyResult* verify_result) override;
};
} // namespace net
diff --git a/net/cert/cert_verify_proc_nss.h b/net/cert/cert_verify_proc_nss.h
index d9971cf..e3eb11f 100644
--- a/net/cert/cert_verify_proc_nss.h
+++ b/net/cert/cert_verify_proc_nss.h
@@ -17,7 +17,7 @@
public:
CertVerifyProcNSS();
- virtual bool SupportsAdditionalTrustAnchors() const OVERRIDE;
+ virtual bool SupportsAdditionalTrustAnchors() const override;
protected:
virtual ~CertVerifyProcNSS();
@@ -39,7 +39,7 @@
int flags,
CRLSet* crl_set,
const CertificateList& additional_trust_anchors,
- CertVerifyResult* verify_result) OVERRIDE;
+ CertVerifyResult* verify_result) override;
};
} // namespace net
diff --git a/net/cert/cert_verify_proc_openssl.h b/net/cert/cert_verify_proc_openssl.h
index d0d2574..ab1d0a3 100644
--- a/net/cert/cert_verify_proc_openssl.h
+++ b/net/cert/cert_verify_proc_openssl.h
@@ -14,7 +14,7 @@
public:
CertVerifyProcOpenSSL();
- virtual bool SupportsAdditionalTrustAnchors() const OVERRIDE;
+ virtual bool SupportsAdditionalTrustAnchors() const override;
protected:
virtual ~CertVerifyProcOpenSSL();
@@ -25,7 +25,7 @@
int flags,
CRLSet* crl_set,
const CertificateList& additional_trust_anchors,
- CertVerifyResult* verify_result) OVERRIDE;
+ CertVerifyResult* verify_result) override;
};
} // namespace net
diff --git a/net/cert/cert_verify_proc_unittest.cc b/net/cert/cert_verify_proc_unittest.cc
index 6890052..a71aa9a 100644
--- a/net/cert/cert_verify_proc_unittest.cc
+++ b/net/cert/cert_verify_proc_unittest.cc
@@ -58,7 +58,7 @@
: is_well_known_(is_well_known) {}
// CertVerifyProc implementation:
- virtual bool SupportsAdditionalTrustAnchors() const OVERRIDE { return false; }
+ virtual bool SupportsAdditionalTrustAnchors() const override { return false; }
protected:
virtual ~WellKnownCaCertVerifyProc() {}
@@ -69,7 +69,7 @@
int flags,
CRLSet* crl_set,
const CertificateList& additional_trust_anchors,
- CertVerifyResult* verify_result) OVERRIDE;
+ CertVerifyResult* verify_result) override;
const bool is_well_known_;
diff --git a/net/cert/cert_verify_proc_win.h b/net/cert/cert_verify_proc_win.h
index 147f47a..afcb838 100644
--- a/net/cert/cert_verify_proc_win.h
+++ b/net/cert/cert_verify_proc_win.h
@@ -15,7 +15,7 @@
public:
CertVerifyProcWin();
- virtual bool SupportsAdditionalTrustAnchors() const OVERRIDE;
+ virtual bool SupportsAdditionalTrustAnchors() const override;
protected:
virtual ~CertVerifyProcWin();
@@ -26,7 +26,7 @@
int flags,
CRLSet* crl_set,
const CertificateList& additional_trust_anchors,
- CertVerifyResult* verify_result) OVERRIDE;
+ CertVerifyResult* verify_result) override;
};
} // namespace net
diff --git a/net/cert/ct_log_verifier_unittest.cc b/net/cert/ct_log_verifier_unittest.cc
index 23cbf51..e2918c9 100644
--- a/net/cert/ct_log_verifier_unittest.cc
+++ b/net/cert/ct_log_verifier_unittest.cc
@@ -18,7 +18,7 @@
public:
CTLogVerifierTest() {}
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
log_ = CTLogVerifier::Create(ct::GetTestPublicKey(), "testlog").Pass();
ASSERT_TRUE(log_);
diff --git a/net/cert/ct_objects_extractor_unittest.cc b/net/cert/ct_objects_extractor_unittest.cc
index 5feff3e..ac46755 100644
--- a/net/cert/ct_objects_extractor_unittest.cc
+++ b/net/cert/ct_objects_extractor_unittest.cc
@@ -20,7 +20,7 @@
class CTObjectsExtractorTest : public ::testing::Test {
public:
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
precert_chain_ =
CreateCertificateListFromFile(GetTestCertsDirectory(),
"ct-test-embedded-cert.pem",
diff --git a/net/cert/ct_serialization_unittest.cc b/net/cert/ct_serialization_unittest.cc
index 866f961..ccf2d20 100644
--- a/net/cert/ct_serialization_unittest.cc
+++ b/net/cert/ct_serialization_unittest.cc
@@ -20,7 +20,7 @@
class CtSerializationTest : public ::testing::Test {
public:
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
test_digitally_signed_ = ct::GetTestDigitallySigned();
}
diff --git a/net/cert/ev_root_ca_metadata_unittest.cc b/net/cert/ev_root_ca_metadata_unittest.cc
index 1bb5475..90f4fa1 100644
--- a/net/cert/ev_root_ca_metadata_unittest.cc
+++ b/net/cert/ev_root_ca_metadata_unittest.cc
@@ -94,7 +94,7 @@
class EVRootCAMetadataTest : public testing::Test {
protected:
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
ASSERT_TRUE(ev_oid_data.Init());
}
diff --git a/net/cert/mock_cert_verifier.h b/net/cert/mock_cert_verifier.h
index 5af7b7e..e76f78f 100644
--- a/net/cert/mock_cert_verifier.h
+++ b/net/cert/mock_cert_verifier.h
@@ -32,8 +32,8 @@
CertVerifyResult* verify_result,
const CompletionCallback& callback,
RequestHandle* out_req,
- const BoundNetLog& net_log) OVERRIDE;
- virtual void CancelRequest(RequestHandle req) OVERRIDE;
+ const BoundNetLog& net_log) override;
+ virtual void CancelRequest(RequestHandle req) override;
// Sets the default return value for Verify() for certificates/hosts that do
// not have explicit results added via the AddResult*() methods.
diff --git a/net/cert/multi_log_ct_verifier.h b/net/cert/multi_log_ct_verifier.h
index 29fbdca..70adf52 100644
--- a/net/cert/multi_log_ct_verifier.h
+++ b/net/cert/multi_log_ct_verifier.h
@@ -41,7 +41,7 @@
const std::string& stapled_ocsp_response,
const std::string& sct_list_from_tls_extension,
ct::CTVerifyResult* result,
- const BoundNetLog& net_log) OVERRIDE;
+ const BoundNetLog& net_log) override;
private:
// Mapping from a log's ID to the verifier for this log.
diff --git a/net/cert/multi_log_ct_verifier_unittest.cc b/net/cert/multi_log_ct_verifier_unittest.cc
index 8edf4eb..17a670c 100644
--- a/net/cert/multi_log_ct_verifier_unittest.cc
+++ b/net/cert/multi_log_ct_verifier_unittest.cc
@@ -37,7 +37,7 @@
class MultiLogCTVerifierTest : public ::testing::Test {
public:
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
scoped_ptr<CTLogVerifier> log(
CTLogVerifier::Create(ct::GetTestPublicKey(), kLogDescription));
ASSERT_TRUE(log);
diff --git a/net/cert/multi_threaded_cert_verifier.h b/net/cert/multi_threaded_cert_verifier.h
index cdd3235..2ca10f1 100644
--- a/net/cert/multi_threaded_cert_verifier.h
+++ b/net/cert/multi_threaded_cert_verifier.h
@@ -61,9 +61,9 @@
CertVerifyResult* verify_result,
const CompletionCallback& callback,
CertVerifier::RequestHandle* out_req,
- const BoundNetLog& net_log) OVERRIDE;
+ const BoundNetLog& net_log) override;
- virtual void CancelRequest(CertVerifier::RequestHandle req) OVERRIDE;
+ virtual void CancelRequest(CertVerifier::RequestHandle req) override;
private:
friend class CertVerifierWorker; // Calls HandleResult.
@@ -137,7 +137,7 @@
const CertVerifyResult& verify_result);
// CertDatabase::Observer methods:
- virtual void OnCACertChanged(const X509Certificate* cert) OVERRIDE;
+ virtual void OnCACertChanged(const X509Certificate* cert) override;
// For unit testing.
void ClearCache() { cache_.Clear(); }
diff --git a/net/cert/multi_threaded_cert_verifier_unittest.cc b/net/cert/multi_threaded_cert_verifier_unittest.cc
index bf7de6d..651f78e 100644
--- a/net/cert/multi_threaded_cert_verifier_unittest.cc
+++ b/net/cert/multi_threaded_cert_verifier_unittest.cc
@@ -39,7 +39,7 @@
virtual ~MockCertVerifyProc() {}
// CertVerifyProc implementation
- virtual bool SupportsAdditionalTrustAnchors() const OVERRIDE {
+ virtual bool SupportsAdditionalTrustAnchors() const override {
return false;
}
@@ -48,7 +48,7 @@
int flags,
CRLSet* crl_set,
const CertificateList& additional_trust_anchors,
- CertVerifyResult* verify_result) OVERRIDE {
+ CertVerifyResult* verify_result) override {
verify_result->Reset();
verify_result->verified_cert = cert;
verify_result->cert_status = CERT_STATUS_COMMON_NAME_INVALID;
diff --git a/net/cert/nss_cert_database.cc b/net/cert/nss_cert_database.cc
index 9707973..2c40e15 100644
--- a/net/cert/nss_cert_database.cc
+++ b/net/cert/nss_cert_database.cc
@@ -51,15 +51,15 @@
virtual ~CertNotificationForwarder() {}
// NSSCertDatabase::Observer implementation:
- virtual void OnCertAdded(const X509Certificate* cert) OVERRIDE {
+ virtual void OnCertAdded(const X509Certificate* cert) override {
cert_db_->NotifyObserversOfCertAdded(cert);
}
- virtual void OnCertRemoved(const X509Certificate* cert) OVERRIDE {
+ virtual void OnCertRemoved(const X509Certificate* cert) override {
cert_db_->NotifyObserversOfCertRemoved(cert);
}
- virtual void OnCACertChanged(const X509Certificate* cert) OVERRIDE {
+ virtual void OnCACertChanged(const X509Certificate* cert) override {
cert_db_->NotifyObserversOfCACertChanged(cert);
}
diff --git a/net/cert/nss_cert_database_chromeos.h b/net/cert/nss_cert_database_chromeos.h
index dfcefec..171ce28 100644
--- a/net/cert/nss_cert_database_chromeos.h
+++ b/net/cert/nss_cert_database_chromeos.h
@@ -25,12 +25,12 @@
void SetSystemSlot(crypto::ScopedPK11Slot system_slot);
// NSSCertDatabase implementation.
- virtual void ListCertsSync(CertificateList* certs) OVERRIDE;
+ virtual void ListCertsSync(CertificateList* certs) override;
virtual void ListCerts(const NSSCertDatabase::ListCertsCallback& callback)
- OVERRIDE;
+ override;
virtual void ListModules(CryptoModuleList* modules, bool need_rw) const
- OVERRIDE;
- virtual crypto::ScopedPK11Slot GetSystemSlot() const OVERRIDE;
+ override;
+ virtual crypto::ScopedPK11Slot GetSystemSlot() const override;
// TODO(mattm): handle trust setting, deletion, etc correctly when certs exist
// in multiple slots.
diff --git a/net/cert/nss_cert_database_chromeos_unittest.cc b/net/cert/nss_cert_database_chromeos_unittest.cc
index 5f790c9..caf5ea9 100644
--- a/net/cert/nss_cert_database_chromeos_unittest.cc
+++ b/net/cert/nss_cert_database_chromeos_unittest.cc
@@ -48,7 +48,7 @@
NSSCertDatabaseChromeOSTest()
: observer_added_(false), user_1_("user1"), user_2_("user2") {}
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
// Initialize nss_util slots.
ASSERT_TRUE(user_1_.constructed_successfully());
ASSERT_TRUE(user_2_.constructed_successfully());
@@ -77,19 +77,19 @@
observer_added_ = true;
}
- virtual void TearDown() OVERRIDE {
+ virtual void TearDown() override {
if (observer_added_)
CertDatabase::GetInstance()->RemoveObserver(this);
}
// CertDatabase::Observer:
- virtual void OnCertAdded(const X509Certificate* cert) OVERRIDE {
+ virtual void OnCertAdded(const X509Certificate* cert) override {
added_.push_back(cert ? cert->os_cert_handle() : NULL);
}
- virtual void OnCertRemoved(const X509Certificate* cert) OVERRIDE {}
+ virtual void OnCertRemoved(const X509Certificate* cert) override {}
- virtual void OnCACertChanged(const X509Certificate* cert) OVERRIDE {
+ virtual void OnCACertChanged(const X509Certificate* cert) override {
added_ca_.push_back(cert ? cert->os_cert_handle() : NULL);
}
diff --git a/net/cert/nss_profile_filter_chromeos_unittest.cc b/net/cert/nss_profile_filter_chromeos_unittest.cc
index b48a527..1ebf399 100644
--- a/net/cert/nss_profile_filter_chromeos_unittest.cc
+++ b/net/cert/nss_profile_filter_chromeos_unittest.cc
@@ -58,7 +58,7 @@
public:
NSSProfileFilterChromeOSTest() : user_1_("user1"), user_2_("user2") {}
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
ASSERT_TRUE(system_slot_user_.is_open());
ASSERT_TRUE(user_1_.constructed_successfully());
ASSERT_TRUE(user_2_.constructed_successfully());
diff --git a/net/cert/signed_certificate_timestamp_unittest.cc b/net/cert/signed_certificate_timestamp_unittest.cc
index c758d65..dc60a27 100644
--- a/net/cert/signed_certificate_timestamp_unittest.cc
+++ b/net/cert/signed_certificate_timestamp_unittest.cc
@@ -20,7 +20,7 @@
class SignedCertificateTimestampTest : public ::testing::Test {
public:
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
GetX509CertSCT(&sample_sct_);
sample_sct_->origin = SignedCertificateTimestamp::SCT_FROM_OCSP_RESPONSE;
sample_sct_->log_description = kLogDescription;
diff --git a/net/cookies/cookie_monster.cc b/net/cookies/cookie_monster.cc
index 4244f76..10a6f6b 100644
--- a/net/cookies/cookie_monster.cc
+++ b/net/cookies/cookie_monster.cc
@@ -428,7 +428,7 @@
}
// CookieMonsterTask:
- virtual void Run() OVERRIDE;
+ virtual void Run() override;
protected:
virtual ~SetCookieWithDetailsTask() {}
@@ -468,7 +468,7 @@
}
// CookieMonsterTask
- virtual void Run() OVERRIDE;
+ virtual void Run() override;
protected:
virtual ~GetAllCookiesTask() {}
@@ -503,7 +503,7 @@
}
// CookieMonsterTask:
- virtual void Run() OVERRIDE;
+ virtual void Run() override;
protected:
virtual ~GetAllCookiesForURLWithOptionsTask() {}
@@ -544,7 +544,7 @@
}
// CookieMonsterTask:
- virtual void Run() OVERRIDE;
+ virtual void Run() override;
private:
// Runs the delete task and returns a result.
@@ -596,7 +596,7 @@
}
// DeleteTask:
- virtual int RunDeleteTask() OVERRIDE;
+ virtual int RunDeleteTask() override;
protected:
virtual ~DeleteAllTask() {}
@@ -622,7 +622,7 @@
}
// DeleteTask:
- virtual int RunDeleteTask() OVERRIDE;
+ virtual int RunDeleteTask() override;
protected:
virtual ~DeleteAllCreatedBetweenTask() {}
@@ -650,7 +650,7 @@
}
// DeleteTask:
- virtual int RunDeleteTask() OVERRIDE;
+ virtual int RunDeleteTask() override;
protected:
virtual ~DeleteAllForHostTask() {}
@@ -682,7 +682,7 @@
}
// DeleteTask:
- virtual int RunDeleteTask() OVERRIDE;
+ virtual int RunDeleteTask() override;
protected:
virtual ~DeleteAllCreatedBetweenForHostTask() {}
@@ -711,7 +711,7 @@
}
// DeleteTask:
- virtual bool RunDeleteTask() OVERRIDE;
+ virtual bool RunDeleteTask() override;
protected:
virtual ~DeleteCanonicalCookieTask() {}
@@ -742,7 +742,7 @@
}
// CookieMonsterTask:
- virtual void Run() OVERRIDE;
+ virtual void Run() override;
protected:
virtual ~SetCookieWithOptionsTask() {}
@@ -779,7 +779,7 @@
}
// CookieMonsterTask:
- virtual void Run() OVERRIDE;
+ virtual void Run() override;
protected:
virtual ~GetCookiesWithOptionsTask() {}
@@ -814,7 +814,7 @@
}
// DeleteTask:
- virtual void RunDeleteTask() OVERRIDE;
+ virtual void RunDeleteTask() override;
protected:
virtual ~DeleteCookieTask() {}
@@ -839,7 +839,7 @@
}
// DeleteTask:
- virtual int RunDeleteTask() OVERRIDE;
+ virtual int RunDeleteTask() override;
protected:
virtual ~DeleteSessionCookiesTask() {}
@@ -865,7 +865,7 @@
}
// CookieMonsterTask:
- virtual void Run() OVERRIDE;
+ virtual void Run() override;
protected:
virtual ~HasCookiesForETLDP1Task() {}
diff --git a/net/cookies/cookie_monster.h b/net/cookies/cookie_monster.h
index ea448c5..746f2a4 100644
--- a/net/cookies/cookie_monster.h
+++ b/net/cookies/cookie_monster.h
@@ -243,7 +243,7 @@
const GURL& url,
const std::string& cookie_line,
const CookieOptions& options,
- const SetCookiesCallback& callback) OVERRIDE;
+ const SetCookiesCallback& callback) override;
// Gets all cookies that apply to |url| given |options|.
// The returned cookies are ordered by longest path, then earliest
@@ -251,18 +251,18 @@
virtual void GetCookiesWithOptionsAsync(
const GURL& url,
const CookieOptions& options,
- const GetCookiesCallback& callback) OVERRIDE;
+ const GetCookiesCallback& callback) override;
// Invokes GetAllCookiesForURLWithOptions with options set to include HTTP
// only cookies.
virtual void GetAllCookiesForURLAsync(
const GURL& url,
- const GetCookieListCallback& callback) OVERRIDE;
+ const GetCookieListCallback& callback) override;
// Deletes all cookies with that might apply to |url| that has |cookie_name|.
virtual void DeleteCookieAsync(
const GURL& url, const std::string& cookie_name,
- const base::Closure& callback) OVERRIDE;
+ const base::Closure& callback) override;
// Deletes all of the cookies that have a creation_date greater than or equal
// to |delete_begin| and less than |delete_end|.
@@ -270,7 +270,7 @@
virtual void DeleteAllCreatedBetweenAsync(
const base::Time& delete_begin,
const base::Time& delete_end,
- const DeleteCallback& callback) OVERRIDE;
+ const DeleteCallback& callback) override;
// Deletes all of the cookies that match the host of the given URL
// regardless of path and that have a creation_date greater than or
@@ -282,11 +282,11 @@
const base::Time delete_begin,
const base::Time delete_end,
const GURL& url,
- const DeleteCallback& callback) OVERRIDE;
+ const DeleteCallback& callback) override;
- virtual void DeleteSessionCookiesAsync(const DeleteCallback&) OVERRIDE;
+ virtual void DeleteSessionCookiesAsync(const DeleteCallback&) override;
- virtual CookieMonster* GetCookieMonster() OVERRIDE;
+ virtual CookieMonster* GetCookieMonster() override;
// Enables writing session cookies into the cookie database. If this this
// method is called, it must be called before first use of the instance
diff --git a/net/cookies/cookie_monster_store_test.h b/net/cookies/cookie_monster_store_test.h
index efbcbe5..c3a2827 100644
--- a/net/cookies/cookie_monster_store_test.h
+++ b/net/cookies/cookie_monster_store_test.h
@@ -82,22 +82,22 @@
return commands_;
}
- virtual void Load(const LoadedCallback& loaded_callback) OVERRIDE;
+ virtual void Load(const LoadedCallback& loaded_callback) override;
virtual void LoadCookiesForKey(const std::string& key,
- const LoadedCallback& loaded_callback) OVERRIDE;
+ const LoadedCallback& loaded_callback) override;
- virtual void AddCookie(const CanonicalCookie& cookie) OVERRIDE;
+ virtual void AddCookie(const CanonicalCookie& cookie) override;
virtual void UpdateCookieAccessTime(
- const CanonicalCookie& cookie) OVERRIDE;
+ const CanonicalCookie& cookie) override;
virtual void DeleteCookie(
- const CanonicalCookie& cookie) OVERRIDE;
+ const CanonicalCookie& cookie) override;
- virtual void Flush(const base::Closure& callback) OVERRIDE;
+ virtual void Flush(const base::Closure& callback) override;
- virtual void SetForceKeepSessionState() OVERRIDE;
+ virtual void SetForceKeepSessionState() override;
protected:
virtual ~MockPersistentCookieStore();
@@ -130,9 +130,9 @@
virtual void OnCookieChanged(
const CanonicalCookie& cookie,
bool removed,
- CookieMonsterDelegate::ChangeCause cause) OVERRIDE;
+ CookieMonsterDelegate::ChangeCause cause) override;
- virtual void OnLoaded() OVERRIDE;
+ virtual void OnLoaded() override;
private:
virtual ~MockCookieMonsterDelegate();
@@ -161,20 +161,20 @@
public:
MockSimplePersistentCookieStore();
- virtual void Load(const LoadedCallback& loaded_callback) OVERRIDE;
+ virtual void Load(const LoadedCallback& loaded_callback) override;
virtual void LoadCookiesForKey(const std::string& key,
- const LoadedCallback& loaded_callback) OVERRIDE;
+ const LoadedCallback& loaded_callback) override;
- virtual void AddCookie(const CanonicalCookie& cookie) OVERRIDE;
+ virtual void AddCookie(const CanonicalCookie& cookie) override;
- virtual void UpdateCookieAccessTime(const CanonicalCookie& cookie) OVERRIDE;
+ virtual void UpdateCookieAccessTime(const CanonicalCookie& cookie) override;
- virtual void DeleteCookie(const CanonicalCookie& cookie) OVERRIDE;
+ virtual void DeleteCookie(const CanonicalCookie& cookie) override;
- virtual void Flush(const base::Closure& callback) OVERRIDE;
+ virtual void Flush(const base::Closure& callback) override;
- virtual void SetForceKeepSessionState() OVERRIDE;
+ virtual void SetForceKeepSessionState() override;
protected:
virtual ~MockSimplePersistentCookieStore();
diff --git a/net/cookies/cookie_monster_unittest.cc b/net/cookies/cookie_monster_unittest.cc
index 0610612..a328487 100644
--- a/net/cookies/cookie_monster_unittest.cc
+++ b/net/cookies/cookie_monster_unittest.cc
@@ -2165,7 +2165,7 @@
public:
FlushablePersistentStore() : flush_count_(0) {}
- virtual void Load(const LoadedCallback& loaded_callback) OVERRIDE {
+ virtual void Load(const LoadedCallback& loaded_callback) override {
std::vector<CanonicalCookie*> out_cookies;
base::MessageLoop::current()->PostTask(
FROM_HERE,
@@ -2175,16 +2175,16 @@
virtual void LoadCookiesForKey(
const std::string& key,
- const LoadedCallback& loaded_callback) OVERRIDE {
+ const LoadedCallback& loaded_callback) override {
Load(loaded_callback);
}
- virtual void AddCookie(const CanonicalCookie&) OVERRIDE {}
- virtual void UpdateCookieAccessTime(const CanonicalCookie&) OVERRIDE {}
- virtual void DeleteCookie(const CanonicalCookie&) OVERRIDE {}
- virtual void SetForceKeepSessionState() OVERRIDE {}
+ virtual void AddCookie(const CanonicalCookie&) override {}
+ virtual void UpdateCookieAccessTime(const CanonicalCookie&) override {}
+ virtual void DeleteCookie(const CanonicalCookie&) override {}
+ virtual void SetForceKeepSessionState() override {}
- virtual void Flush(const base::Closure& callback) OVERRIDE {
+ virtual void Flush(const base::Closure& callback) override {
++flush_count_;
if (!callback.is_null())
callback.Run();
diff --git a/net/cookies/cookie_store_test_helpers.h b/net/cookies/cookie_store_test_helpers.h
index 84b83bc..e4e7156 100644
--- a/net/cookies/cookie_store_test_helpers.h
+++ b/net/cookies/cookie_store_test_helpers.h
@@ -27,16 +27,16 @@
const GURL& url,
const std::string& cookie_line,
const CookieOptions& options,
- const CookieMonster::SetCookiesCallback& callback) OVERRIDE;
+ const CookieMonster::SetCookiesCallback& callback) override;
virtual void GetCookiesWithOptionsAsync(
const GURL& url,
const CookieOptions& options,
- const CookieMonster::GetCookiesCallback& callback) OVERRIDE;
+ const CookieMonster::GetCookiesCallback& callback) override;
virtual void GetAllCookiesForURLAsync(
const GURL& url,
- const GetCookieListCallback& callback) OVERRIDE;
+ const GetCookieListCallback& callback) override;
virtual bool SetCookieWithOptions(const GURL& url,
const std::string& cookie_line,
@@ -50,22 +50,22 @@
virtual void DeleteCookieAsync(const GURL& url,
const std::string& cookie_name,
- const base::Closure& callback) OVERRIDE;
+ const base::Closure& callback) override;
virtual void DeleteAllCreatedBetweenAsync(
const base::Time& delete_begin,
const base::Time& delete_end,
- const DeleteCallback& callback) OVERRIDE;
+ const DeleteCallback& callback) override;
virtual void DeleteAllCreatedBetweenForHostAsync(
const base::Time delete_begin,
const base::Time delete_end,
const GURL& url,
- const DeleteCallback& callback) OVERRIDE;
+ const DeleteCallback& callback) override;
- virtual void DeleteSessionCookiesAsync(const DeleteCallback&) OVERRIDE;
+ virtual void DeleteSessionCookiesAsync(const DeleteCallback&) override;
- virtual CookieMonster* GetCookieMonster() OVERRIDE;
+ virtual CookieMonster* GetCookieMonster() override;
private:
diff --git a/net/disk_cache/backend_unittest.cc b/net/disk_cache/backend_unittest.cc
index 572691c..b3b80b4 100644
--- a/net/disk_cache/backend_unittest.cc
+++ b/net/disk_cache/backend_unittest.cc
@@ -1843,7 +1843,7 @@
virtual ~BadEntropyProvider() {}
virtual double GetEntropyForTrial(const std::string& trial_name,
- uint32 randomization_seed) const OVERRIDE {
+ uint32 randomization_seed) const override {
return 0.5;
}
};
diff --git a/net/disk_cache/blockfile/backend_impl.cc b/net/disk_cache/blockfile/backend_impl.cc
index 4082743..bcac374 100644
--- a/net/disk_cache/blockfile/backend_impl.cc
+++ b/net/disk_cache/blockfile/backend_impl.cc
@@ -1260,7 +1260,7 @@
}
virtual int OpenNextEntry(Entry** next_entry,
- const net::CompletionCallback& callback) OVERRIDE {
+ const net::CompletionCallback& callback) override {
if (!background_queue_)
return net::ERR_FAILED;
background_queue_->OpenNextEntry(iterator_.get(), next_entry, callback);
diff --git a/net/disk_cache/blockfile/backend_impl.h b/net/disk_cache/blockfile/backend_impl.h
index 1abc66d..e81b928 100644
--- a/net/disk_cache/blockfile/backend_impl.h
+++ b/net/disk_cache/blockfile/backend_impl.h
@@ -259,20 +259,20 @@
void FlushIndex();
// Backend implementation.
- virtual net::CacheType GetCacheType() const OVERRIDE;
- virtual int32 GetEntryCount() const OVERRIDE;
+ virtual net::CacheType GetCacheType() const override;
+ virtual int32 GetEntryCount() const override;
virtual int OpenEntry(const std::string& key, Entry** entry,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int CreateEntry(const std::string& key, Entry** entry,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int DoomEntry(const std::string& key,
- const CompletionCallback& callback) OVERRIDE;
- virtual int DoomAllEntries(const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual int DoomAllEntries(const CompletionCallback& callback) override;
virtual int DoomEntriesBetween(base::Time initial_time,
base::Time end_time,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int DoomEntriesSince(base::Time initial_time,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
// NOTE: The blockfile Backend::Iterator::OpenNextEntry method does not modify
// the last_used field of the entry, and therefore it does not impact the
// eviction ranking of the entry. However, an enumeration will go through all
@@ -281,9 +281,9 @@
// the iterator (for example, deleting the entry) will invalidate the
// iterator. Performing operations on an entry that modify the entry may
// result in loops in the iteration, skipped entries or similar.
- virtual scoped_ptr<Iterator> CreateIterator() OVERRIDE;
- virtual void GetStats(StatsItems* stats) OVERRIDE;
- virtual void OnExternalCacheHit(const std::string& key) OVERRIDE;
+ virtual scoped_ptr<Iterator> CreateIterator() override;
+ virtual void GetStats(StatsItems* stats) override;
+ virtual void OnExternalCacheHit(const std::string& key) override;
private:
typedef base::hash_map<CacheAddr, EntryImpl*> EntriesMap;
diff --git a/net/disk_cache/blockfile/backend_impl_v3.cc b/net/disk_cache/blockfile/backend_impl_v3.cc
index b44b195..09794d3 100644
--- a/net/disk_cache/blockfile/backend_impl_v3.cc
+++ b/net/disk_cache/blockfile/backend_impl_v3.cc
@@ -667,7 +667,7 @@
}
virtual int OpenNextEntry(Entry** next_entry,
- const net::CompletionCallback& callback) OVERRIDE {
+ const net::CompletionCallback& callback) override {
if (!background_queue_)
return net::ERR_FAILED;
background_queue_->OpenNextEntry(&data_, next_entry, callback);
@@ -1511,7 +1511,7 @@
class BackendImplV3::NotImplementedIterator : public Backend::Iterator {
public:
virtual int OpenNextEntry(disk_cache::Entry** next_entry,
- const net::CompletionCallback& callback) OVERRIDE {
+ const net::CompletionCallback& callback) override {
return net::ERR_NOT_IMPLEMENTED;
}
};
diff --git a/net/disk_cache/blockfile/backend_impl_v3.h b/net/disk_cache/blockfile/backend_impl_v3.h
index ca64997..6f4f882 100644
--- a/net/disk_cache/blockfile/backend_impl_v3.h
+++ b/net/disk_cache/blockfile/backend_impl_v3.h
@@ -172,23 +172,23 @@
int SelfCheck();
// Backend implementation.
- virtual net::CacheType GetCacheType() const OVERRIDE;
- virtual int32 GetEntryCount() const OVERRIDE;
+ virtual net::CacheType GetCacheType() const override;
+ virtual int32 GetEntryCount() const override;
virtual int OpenEntry(const std::string& key, Entry** entry,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int CreateEntry(const std::string& key, Entry** entry,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int DoomEntry(const std::string& key,
- const CompletionCallback& callback) OVERRIDE;
- virtual int DoomAllEntries(const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual int DoomAllEntries(const CompletionCallback& callback) override;
virtual int DoomEntriesBetween(base::Time initial_time,
base::Time end_time,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int DoomEntriesSince(base::Time initial_time,
- const CompletionCallback& callback) OVERRIDE;
- virtual scoped_ptr<Iterator> CreateIterator() OVERRIDE;
- virtual void GetStats(StatsItems* stats) OVERRIDE;
- virtual void OnExternalCacheHit(const std::string& key) OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual scoped_ptr<Iterator> CreateIterator() override;
+ virtual void GetStats(StatsItems* stats) override;
+ virtual void OnExternalCacheHit(const std::string& key) override;
private:
friend class EvictionV3;
diff --git a/net/disk_cache/blockfile/entry_impl.cc b/net/disk_cache/blockfile/entry_impl.cc
index 3c3b218..2b98470 100644
--- a/net/disk_cache/blockfile/entry_impl.cc
+++ b/net/disk_cache/blockfile/entry_impl.cc
@@ -46,7 +46,7 @@
}
virtual ~SyncCallback() {}
- virtual void OnFileIOComplete(int bytes_copied) OVERRIDE;
+ virtual void OnFileIOComplete(int bytes_copied) override;
void Discard();
private:
diff --git a/net/disk_cache/blockfile/entry_impl.h b/net/disk_cache/blockfile/entry_impl.h
index c0b332b..fea815d 100644
--- a/net/disk_cache/blockfile/entry_impl.h
+++ b/net/disk_cache/blockfile/entry_impl.h
@@ -147,26 +147,26 @@
static int NumBlocksForEntry(int key_size);
// Entry interface.
- virtual void Doom() OVERRIDE;
- virtual void Close() OVERRIDE;
- virtual std::string GetKey() const OVERRIDE;
- virtual base::Time GetLastUsed() const OVERRIDE;
- virtual base::Time GetLastModified() const OVERRIDE;
- virtual int32 GetDataSize(int index) const OVERRIDE;
+ virtual void Doom() override;
+ virtual void Close() override;
+ virtual std::string GetKey() const override;
+ virtual base::Time GetLastUsed() const override;
+ virtual base::Time GetLastModified() const override;
+ virtual int32 GetDataSize(int index) const override;
virtual int ReadData(int index, int offset, IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int WriteData(int index, int offset, IOBuffer* buf, int buf_len,
const CompletionCallback& callback,
- bool truncate) OVERRIDE;
+ bool truncate) override;
virtual int ReadSparseData(int64 offset, IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int WriteSparseData(int64 offset, IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int GetAvailableRange(int64 offset, int len, int64* start,
- const CompletionCallback& callback) OVERRIDE;
- virtual bool CouldBeSparse() const OVERRIDE;
- virtual void CancelSparseIO() OVERRIDE;
- virtual int ReadyForSparseIO(const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual bool CouldBeSparse() const override;
+ virtual void CancelSparseIO() override;
+ virtual int ReadyForSparseIO(const CompletionCallback& callback) override;
private:
enum {
diff --git a/net/disk_cache/blockfile/entry_impl_v3.h b/net/disk_cache/blockfile/entry_impl_v3.h
index 6be0c71..4215000 100644
--- a/net/disk_cache/blockfile/entry_impl_v3.h
+++ b/net/disk_cache/blockfile/entry_impl_v3.h
@@ -77,26 +77,26 @@
const net::BoundNetLog& net_log() const;
// Entry interface.
- virtual void Doom() OVERRIDE;
- virtual void Close() OVERRIDE;
- virtual std::string GetKey() const OVERRIDE;
- virtual base::Time GetLastUsed() const OVERRIDE;
- virtual base::Time GetLastModified() const OVERRIDE;
- virtual int32 GetDataSize(int index) const OVERRIDE;
+ virtual void Doom() override;
+ virtual void Close() override;
+ virtual std::string GetKey() const override;
+ virtual base::Time GetLastUsed() const override;
+ virtual base::Time GetLastModified() const override;
+ virtual int32 GetDataSize(int index) const override;
virtual int ReadData(int index, int offset, IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int WriteData(int index, int offset, IOBuffer* buf, int buf_len,
const CompletionCallback& callback,
- bool truncate) OVERRIDE;
+ bool truncate) override;
virtual int ReadSparseData(int64 offset, IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int WriteSparseData(int64 offset, IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int GetAvailableRange(int64 offset, int len, int64* start,
- const CompletionCallback& callback) OVERRIDE;
- virtual bool CouldBeSparse() const OVERRIDE;
- virtual void CancelSparseIO() OVERRIDE;
- virtual int ReadyForSparseIO(const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual bool CouldBeSparse() const override;
+ virtual void CancelSparseIO() override;
+ virtual int ReadyForSparseIO(const CompletionCallback& callback) override;
private:
enum {
diff --git a/net/disk_cache/blockfile/file_ios.cc b/net/disk_cache/blockfile/file_ios.cc
index 4659e75..ef0e2fa 100644
--- a/net/disk_cache/blockfile/file_ios.cc
+++ b/net/disk_cache/blockfile/file_ios.cc
@@ -80,7 +80,7 @@
// queued (because we are inside WaitForPendingIO), and false if said task is
// the one performing the call.
virtual void OnOperationComplete(disk_cache::BackgroundIO* operation,
- bool cancel) OVERRIDE;
+ bool cancel) override;
private:
DISALLOW_COPY_AND_ASSIGN(FileInFlightIO);
diff --git a/net/disk_cache/blockfile/in_flight_backend_io.cc b/net/disk_cache/blockfile/in_flight_backend_io.cc
index 28d7114..9bb011e 100644
--- a/net/disk_cache/blockfile/in_flight_backend_io.cc
+++ b/net/disk_cache/blockfile/in_flight_backend_io.cc
@@ -8,6 +8,7 @@
#include "base/bind_helpers.h"
#include "base/compiler_specific.h"
#include "base/logging.h"
+#include "base/profiler/scoped_profile.h"
#include "base/single_thread_task_runner.h"
#include "net/base/net_errors.h"
#include "net/disk_cache/blockfile/backend_impl.h"
@@ -64,8 +65,14 @@
if (result() == net::OK) {
static_cast<EntryImpl*>(*entry_ptr_)->OnEntryCreated(backend_);
- if (cancel)
+ if (cancel) {
+ // TODO(vadimt): Remove ScopedProfile below once crbug.com/422516 is
+ // fixed.
+ tracked_objects::ScopedProfile tracking_profile(
+ FROM_HERE_WITH_EXPLICIT_FUNCTION("422516 BackendIO::OnDone"));
+
(*entry_ptr_)->Close();
+ }
}
}
@@ -496,8 +503,14 @@
BackendIO* op = static_cast<BackendIO*>(operation);
op->OnDone(cancel);
- if (!op->callback().is_null() && (!cancel || op->IsEntryOperation()))
+ if (!op->callback().is_null() && (!cancel || op->IsEntryOperation())) {
+ // TODO(vadimt): Remove ScopedProfile below once crbug.com/422516 is fixed.
+ tracked_objects::ScopedProfile tracking_profile(
+ FROM_HERE_WITH_EXPLICIT_FUNCTION(
+ "422516 InFlightBackendIO::OnOperationComplete"));
+
op->callback().Run(op->result());
+ }
}
void InFlightBackendIO::PostOperation(BackendIO* operation) {
diff --git a/net/disk_cache/blockfile/in_flight_backend_io.h b/net/disk_cache/blockfile/in_flight_backend_io.h
index 5d8e435..4b10405 100644
--- a/net/disk_cache/blockfile/in_flight_backend_io.h
+++ b/net/disk_cache/blockfile/in_flight_backend_io.h
@@ -205,7 +205,7 @@
protected:
virtual void OnOperationComplete(BackgroundIO* operation,
- bool cancel) OVERRIDE;
+ bool cancel) override;
private:
void PostOperation(BackendIO* operation);
diff --git a/net/disk_cache/blockfile/in_flight_io.cc b/net/disk_cache/blockfile/in_flight_io.cc
index 9ada7c5..176cf87 100644
--- a/net/disk_cache/blockfile/in_flight_io.cc
+++ b/net/disk_cache/blockfile/in_flight_io.cc
@@ -7,6 +7,7 @@
#include "base/bind.h"
#include "base/location.h"
#include "base/logging.h"
+#include "base/profiler/scoped_profile.h"
#include "base/single_thread_task_runner.h"
#include "base/task_runner.h"
#include "base/thread_task_runner_handle.h"
@@ -87,6 +88,10 @@
// Runs on the primary thread.
void InFlightIO::InvokeCallback(BackgroundIO* operation, bool cancel_task) {
{
+ // TODO(vadimt): Remove ScopedProfile below once crbug.com/422516 is fixed.
+ tracked_objects::ScopedProfile tracking_profile(
+ FROM_HERE_WITH_EXPLICIT_FUNCTION("422516 InFlightIO::InvokeCallback"));
+
// http://crbug.com/74623
base::ThreadRestrictions::ScopedAllowWait allow_wait;
operation->io_completed()->Wait();
diff --git a/net/disk_cache/blockfile/index_table_v3_unittest.cc b/net/disk_cache/blockfile/index_table_v3_unittest.cc
index b7a93a2..7f68ee3 100644
--- a/net/disk_cache/blockfile/index_table_v3_unittest.cc
+++ b/net/disk_cache/blockfile/index_table_v3_unittest.cc
@@ -35,12 +35,12 @@
bool grow_called() const { return grow_called_; }
int buffer_len() const { return buffer_len_; }
- virtual void GrowIndex() OVERRIDE { grow_called_ = true; }
- virtual void SaveIndex(net::IOBuffer* buffer, int buffer_len) OVERRIDE {
+ virtual void GrowIndex() override { grow_called_ = true; }
+ virtual void SaveIndex(net::IOBuffer* buffer, int buffer_len) override {
buffer_len_ = buffer_len;
}
- virtual void DeleteCell(EntryCell cell) OVERRIDE {}
- virtual void FixCell(EntryCell cell) OVERRIDE {}
+ virtual void DeleteCell(EntryCell cell) override {}
+ virtual void FixCell(EntryCell cell) override {}
private:
bool grow_called_;
diff --git a/net/disk_cache/blockfile/mapped_file_unittest.cc b/net/disk_cache/blockfile/mapped_file_unittest.cc
index 8b3a1d0..8093e9a 100644
--- a/net/disk_cache/blockfile/mapped_file_unittest.cc
+++ b/net/disk_cache/blockfile/mapped_file_unittest.cc
@@ -23,7 +23,7 @@
}
virtual ~FileCallbackTest() {}
- virtual void OnFileIOComplete(int bytes_copied) OVERRIDE;
+ virtual void OnFileIOComplete(int bytes_copied) override;
private:
int id_;
@@ -48,9 +48,9 @@
virtual ~TestFileBlock() {}
// FileBlock interface.
- virtual void* buffer() const OVERRIDE { return const_cast<char*>(buffer_); }
- virtual size_t size() const OVERRIDE { return sizeof(buffer_); }
- virtual int offset() const OVERRIDE { return 1024; }
+ virtual void* buffer() const override { return const_cast<char*>(buffer_); }
+ virtual size_t size() const override { return sizeof(buffer_); }
+ virtual int offset() const override { return 1024; }
private:
char buffer_[20];
diff --git a/net/disk_cache/blockfile/sparse_control.cc b/net/disk_cache/blockfile/sparse_control.cc
index e251d84..ddb57b6 100644
--- a/net/disk_cache/blockfile/sparse_control.cc
+++ b/net/disk_cache/blockfile/sparse_control.cc
@@ -56,7 +56,7 @@
ChildrenDeleter(disk_cache::BackendImpl* backend, const std::string& name)
: backend_(backend->GetWeakPtr()), name_(name), signature_(0) {}
- virtual void OnFileIOComplete(int bytes_copied) OVERRIDE;
+ virtual void OnFileIOComplete(int bytes_copied) override;
// Two ways of deleting the children: if we have the children map, use Start()
// directly, otherwise pass the data address to ReadData().
diff --git a/net/disk_cache/blockfile/sparse_control_v3.cc b/net/disk_cache/blockfile/sparse_control_v3.cc
index 66a60a2..cba0ed5 100644
--- a/net/disk_cache/blockfile/sparse_control_v3.cc
+++ b/net/disk_cache/blockfile/sparse_control_v3.cc
@@ -56,7 +56,7 @@
ChildrenDeleter(disk_cache::BackendImpl* backend, const std::string& name)
: backend_(backend->GetWeakPtr()), name_(name), signature_(0) {}
- virtual void OnFileIOComplete(int bytes_copied) OVERRIDE;
+ virtual void OnFileIOComplete(int bytes_copied) override;
// Two ways of deleting the children: if we have the children map, use Start()
// directly, otherwise pass the data address to ReadData().
diff --git a/net/disk_cache/cache_creator.cc b/net/disk_cache/cache_creator.cc
index 8c4400c..becb31c 100644
--- a/net/disk_cache/cache_creator.cc
+++ b/net/disk_cache/cache_creator.cc
@@ -4,6 +4,7 @@
#include "base/files/file_path.h"
#include "base/metrics/field_trial.h"
+#include "base/profiler/scoped_profile.h"
#include "base/single_thread_task_runner.h"
#include "base/strings/stringprintf.h"
#include "net/base/cache_type.h"
@@ -139,6 +140,10 @@
// If the initialization of the cache fails, and |force| is true, we will
// discard the whole cache and create a new one.
void CacheCreator::OnIOComplete(int result) {
+ // TODO(vadimt): Remove ScopedProfile below once crbug.com/422516 is fixed.
+ tracked_objects::ScopedProfile tracking_profile(
+ FROM_HERE_WITH_EXPLICIT_FUNCTION("422516 CacheCreator::OnIOComplete"));
+
if (result == net::OK || !force_ || retry_)
return DoCallback(result);
diff --git a/net/disk_cache/cache_util.cc b/net/disk_cache/cache_util.cc
index ea39df0..1671138 100644
--- a/net/disk_cache/cache_util.cc
+++ b/net/disk_cache/cache_util.cc
@@ -145,15 +145,12 @@
if (available < 0)
return kDefaultCacheSize;
- int64 max_size = PreferredCacheSizeInternal(available);
-
// Limit cache size to somewhat less than kint32max to avoid potential
// integer overflows in cache backend implementations.
- DCHECK(kDefaultCacheSize * 4 < kint32max);
- if (max_size > kDefaultCacheSize * 4)
- max_size = kDefaultCacheSize * 4;
-
- return implicit_cast<int32>(max_size);
+ DCHECK_LT(kDefaultCacheSize * 4, kint32max);
+ return static_cast<int32>(std::min(
+ PreferredCacheSizeInternal(available),
+ static_cast<int64>(kDefaultCacheSize * 4)));
}
} // namespace disk_cache
diff --git a/net/disk_cache/disk_cache_test_base.h b/net/disk_cache/disk_cache_test_base.h
index 225d37f..ce36f92 100644
--- a/net/disk_cache/disk_cache_test_base.h
+++ b/net/disk_cache/disk_cache_test_base.h
@@ -46,7 +46,7 @@
// Deletes the contents of |cache_path_|.
bool CleanupCacheDir();
- virtual void TearDown() OVERRIDE;
+ virtual void TearDown() override;
base::FilePath cache_path_;
@@ -154,7 +154,7 @@
void AddDelay();
// DiskCacheTest:
- virtual void TearDown() OVERRIDE;
+ virtual void TearDown() override;
// cache_ will always have a valid object, regardless of how the cache was
// initialized. The implementation pointers can be NULL.
diff --git a/net/disk_cache/entry_unittest.cc b/net/disk_cache/entry_unittest.cc
index afe93ac..a3a7747 100644
--- a/net/disk_cache/entry_unittest.cc
+++ b/net/disk_cache/entry_unittest.cc
@@ -2063,7 +2063,7 @@
}
private:
- virtual void SetResult(int result) OVERRIDE {
+ virtual void SetResult(int result) override {
cache_.reset();
TestCompletionCallback::SetResult(result);
}
diff --git a/net/disk_cache/memory/mem_backend_impl.cc b/net/disk_cache/memory/mem_backend_impl.cc
index 848ef98..3a90075 100644
--- a/net/disk_cache/memory/mem_backend_impl.cc
+++ b/net/disk_cache/memory/mem_backend_impl.cc
@@ -188,7 +188,7 @@
}
virtual int OpenNextEntry(Entry** next_entry,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
if (!backend_)
return net::ERR_FAILED;
diff --git a/net/disk_cache/memory/mem_backend_impl.h b/net/disk_cache/memory/mem_backend_impl.h
index 10946c5..46505ea 100644
--- a/net/disk_cache/memory/mem_backend_impl.h
+++ b/net/disk_cache/memory/mem_backend_impl.h
@@ -63,24 +63,24 @@
void RemoveFromRankingList(MemEntryImpl* entry);
// Backend interface.
- virtual net::CacheType GetCacheType() const OVERRIDE;
- virtual int32 GetEntryCount() const OVERRIDE;
+ virtual net::CacheType GetCacheType() const override;
+ virtual int32 GetEntryCount() const override;
virtual int OpenEntry(const std::string& key, Entry** entry,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int CreateEntry(const std::string& key, Entry** entry,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int DoomEntry(const std::string& key,
- const CompletionCallback& callback) OVERRIDE;
- virtual int DoomAllEntries(const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual int DoomAllEntries(const CompletionCallback& callback) override;
virtual int DoomEntriesBetween(base::Time initial_time,
base::Time end_time,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int DoomEntriesSince(base::Time initial_time,
- const CompletionCallback& callback) OVERRIDE;
- virtual scoped_ptr<Iterator> CreateIterator() OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual scoped_ptr<Iterator> CreateIterator() override;
virtual void GetStats(
- std::vector<std::pair<std::string, std::string> >* stats) OVERRIDE {}
- virtual void OnExternalCacheHit(const std::string& key) OVERRIDE;
+ std::vector<std::pair<std::string, std::string> >* stats) override {}
+ virtual void OnExternalCacheHit(const std::string& key) override;
private:
class MemIterator;
diff --git a/net/disk_cache/memory/mem_entry_impl.h b/net/disk_cache/memory/mem_entry_impl.h
index aec8d22..d31e14a 100644
--- a/net/disk_cache/memory/mem_entry_impl.h
+++ b/net/disk_cache/memory/mem_entry_impl.h
@@ -87,26 +87,26 @@
}
// Entry interface.
- virtual void Doom() OVERRIDE;
- virtual void Close() OVERRIDE;
- virtual std::string GetKey() const OVERRIDE;
- virtual base::Time GetLastUsed() const OVERRIDE;
- virtual base::Time GetLastModified() const OVERRIDE;
- virtual int32 GetDataSize(int index) const OVERRIDE;
+ virtual void Doom() override;
+ virtual void Close() override;
+ virtual std::string GetKey() const override;
+ virtual base::Time GetLastUsed() const override;
+ virtual base::Time GetLastModified() const override;
+ virtual int32 GetDataSize(int index) const override;
virtual int ReadData(int index, int offset, IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int WriteData(int index, int offset, IOBuffer* buf, int buf_len,
const CompletionCallback& callback,
- bool truncate) OVERRIDE;
+ bool truncate) override;
virtual int ReadSparseData(int64 offset, IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int WriteSparseData(int64 offset, IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int GetAvailableRange(int64 offset, int len, int64* start,
- const CompletionCallback& callback) OVERRIDE;
- virtual bool CouldBeSparse() const OVERRIDE;
- virtual void CancelSparseIO() OVERRIDE {}
- virtual int ReadyForSparseIO(const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual bool CouldBeSparse() const override;
+ virtual void CancelSparseIO() override {}
+ virtual int ReadyForSparseIO(const CompletionCallback& callback) override;
private:
typedef base::hash_map<int, MemEntryImpl*> EntryMap;
diff --git a/net/disk_cache/simple/simple_backend_impl.cc b/net/disk_cache/simple/simple_backend_impl.cc
index b0cbd52..32b074a 100644
--- a/net/disk_cache/simple/simple_backend_impl.cc
+++ b/net/disk_cache/simple/simple_backend_impl.cc
@@ -467,7 +467,7 @@
return DoomEntriesBetween(initial_time, Time(), callback);
}
-class SimpleBackendImpl::SimpleIterator FINAL : public Iterator {
+class SimpleBackendImpl::SimpleIterator final : public Iterator {
public:
explicit SimpleIterator(base::WeakPtr<SimpleBackendImpl> backend)
: backend_(backend),
@@ -476,7 +476,7 @@
// From Backend::Iterator:
virtual int OpenNextEntry(Entry** next_entry,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
CompletionCallback open_next_entry_impl =
base::Bind(&SimpleIterator::OpenNextEntryImpl,
weak_factory_.GetWeakPtr(), next_entry, callback);
diff --git a/net/disk_cache/simple/simple_backend_impl.h b/net/disk_cache/simple/simple_backend_impl.h
index 48c422f..e5a50da 100644
--- a/net/disk_cache/simple/simple_backend_impl.h
+++ b/net/disk_cache/simple/simple_backend_impl.h
@@ -85,27 +85,27 @@
// SimpleIndexDelegate:
virtual void DoomEntries(std::vector<uint64>* entry_hashes,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
// Backend:
- virtual net::CacheType GetCacheType() const OVERRIDE;
- virtual int32 GetEntryCount() const OVERRIDE;
+ virtual net::CacheType GetCacheType() const override;
+ virtual int32 GetEntryCount() const override;
virtual int OpenEntry(const std::string& key, Entry** entry,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int CreateEntry(const std::string& key, Entry** entry,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int DoomEntry(const std::string& key,
- const CompletionCallback& callback) OVERRIDE;
- virtual int DoomAllEntries(const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual int DoomAllEntries(const CompletionCallback& callback) override;
virtual int DoomEntriesBetween(base::Time initial_time,
base::Time end_time,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int DoomEntriesSince(base::Time initial_time,
- const CompletionCallback& callback) OVERRIDE;
- virtual scoped_ptr<Iterator> CreateIterator() OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual scoped_ptr<Iterator> CreateIterator() override;
virtual void GetStats(
- std::vector<std::pair<std::string, std::string> >* stats) OVERRIDE;
- virtual void OnExternalCacheHit(const std::string& key) OVERRIDE;
+ std::vector<std::pair<std::string, std::string> >* stats) override;
+ virtual void OnExternalCacheHit(const std::string& key) override;
private:
class SimpleIterator;
diff --git a/net/disk_cache/simple/simple_entry_impl.h b/net/disk_cache/simple/simple_entry_impl.h
index 2dfb757..7c11b96 100644
--- a/net/disk_cache/simple/simple_entry_impl.h
+++ b/net/disk_cache/simple/simple_entry_impl.h
@@ -80,38 +80,38 @@
void SetKey(const std::string& key);
// From Entry:
- virtual void Doom() OVERRIDE;
- virtual void Close() OVERRIDE;
- virtual std::string GetKey() const OVERRIDE;
- virtual base::Time GetLastUsed() const OVERRIDE;
- virtual base::Time GetLastModified() const OVERRIDE;
- virtual int32 GetDataSize(int index) const OVERRIDE;
+ virtual void Doom() override;
+ virtual void Close() override;
+ virtual std::string GetKey() const override;
+ virtual base::Time GetLastUsed() const override;
+ virtual base::Time GetLastModified() const override;
+ virtual int32 GetDataSize(int index) const override;
virtual int ReadData(int stream_index,
int offset,
net::IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int WriteData(int stream_index,
int offset,
net::IOBuffer* buf,
int buf_len,
const CompletionCallback& callback,
- bool truncate) OVERRIDE;
+ bool truncate) override;
virtual int ReadSparseData(int64 offset,
net::IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int WriteSparseData(int64 offset,
net::IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int GetAvailableRange(int64 offset,
int len,
int64* start,
- const CompletionCallback& callback) OVERRIDE;
- virtual bool CouldBeSparse() const OVERRIDE;
- virtual void CancelSparseIO() OVERRIDE;
- virtual int ReadyForSparseIO(const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual bool CouldBeSparse() const override;
+ virtual void CancelSparseIO() override;
+ virtual int ReadyForSparseIO(const CompletionCallback& callback) override;
private:
class ScopedOperationRunner;
diff --git a/net/disk_cache/simple/simple_index.cc b/net/disk_cache/simple/simple_index.cc
index 02afe2d..ca4d58e 100644
--- a/net/disk_cache/simple/simple_index.cc
+++ b/net/disk_cache/simple/simple_index.cc
@@ -16,6 +16,7 @@
#include "base/logging.h"
#include "base/message_loop/message_loop.h"
#include "base/metrics/field_trial.h"
+#include "base/numerics/safe_conversions.h"
#include "base/pickle.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_tokenizer.h"
@@ -103,15 +104,8 @@
return;
}
- const base::TimeDelta since_unix_epoch =
- last_used_time - base::Time::UnixEpoch();
- const int64 seconds_since_unix_epoch = since_unix_epoch.InSeconds();
- DCHECK_LE(implicit_cast<int64>(std::numeric_limits<uint32>::min()),
- seconds_since_unix_epoch);
- DCHECK_GE(implicit_cast<int64>(std::numeric_limits<uint32>::max()),
- seconds_since_unix_epoch);
-
- last_used_time_seconds_since_epoch_ = seconds_since_unix_epoch;
+ last_used_time_seconds_since_epoch_ = base::checked_cast<uint32>(
+ (last_used_time - base::Time::UnixEpoch()).InSeconds());
// Avoid accidental nullity.
if (last_used_time_seconds_since_epoch_ == 0)
last_used_time_seconds_since_epoch_ = 1;
diff --git a/net/disk_cache/simple/simple_index.h b/net/disk_cache/simple/simple_index.h
index 7b5f543..2b7e1cd 100644
--- a/net/disk_cache/simple/simple_index.h
+++ b/net/disk_cache/simple/simple_index.h
@@ -62,11 +62,11 @@
private:
friend class SimpleIndexFileTest;
- // When adding new members here, you should update the Serialize() and
- // Deserialize() methods.
-
+ // There are tens of thousands of instances of EntryMetadata in memory, so the
+ // size of each entry matters. Even when the values used to set these members
+ // are originally calculated as >32-bit types, the actual necessary size for
+ // each shouldn't exceed 32 bits, so we use 32-bit types here.
uint32 last_used_time_seconds_since_epoch_;
-
int32 entry_size_; // Storage size in bytes.
};
COMPILE_ASSERT(sizeof(EntryMetadata) == 8, metadata_size);
diff --git a/net/disk_cache/simple/simple_index_unittest.cc b/net/disk_cache/simple/simple_index_unittest.cc
index 0afbaa2..0bb10d3 100644
--- a/net/disk_cache/simple/simple_index_unittest.cc
+++ b/net/disk_cache/simple/simple_index_unittest.cc
@@ -60,7 +60,7 @@
virtual void LoadIndexEntries(
base::Time cache_last_modified,
const base::Closure& callback,
- SimpleIndexLoadResult* out_load_result) OVERRIDE {
+ SimpleIndexLoadResult* out_load_result) override {
load_callback_ = callback;
load_result_ = out_load_result;
++load_index_entries_calls_;
@@ -69,7 +69,7 @@
virtual void WriteToDisk(const SimpleIndex::EntrySet& entry_set,
uint64 cache_size,
const base::TimeTicks& start,
- bool app_on_background) OVERRIDE {
+ bool app_on_background) override {
disk_writes_++;
disk_write_entry_set_ = entry_set;
}
@@ -102,7 +102,7 @@
base::StringPrintf("key%d", static_cast<int>(hash_index)));
}
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
scoped_ptr<MockSimpleIndexFile> index_file(new MockSimpleIndexFile());
index_file_ = index_file->AsWeakPtr();
index_.reset(new SimpleIndex(NULL, this, net::DISK_CACHE,
@@ -121,7 +121,7 @@
// From SimpleIndexDelegate:
virtual void DoomEntries(std::vector<uint64>* entry_hashes,
- const net::CompletionCallback& callback) OVERRIDE {
+ const net::CompletionCallback& callback) override {
std::for_each(entry_hashes->begin(), entry_hashes->end(),
std::bind1st(std::mem_fun(&SimpleIndex::Remove),
index_.get()));
diff --git a/net/disk_cache/simple/simple_net_log_parameters.cc b/net/disk_cache/simple/simple_net_log_parameters.cc
index 9acd663..4756c83 100644
--- a/net/disk_cache/simple/simple_net_log_parameters.cc
+++ b/net/disk_cache/simple/simple_net_log_parameters.cc
@@ -17,7 +17,7 @@
base::Value* NetLogSimpleEntryConstructionCallback(
const disk_cache::SimpleEntryImpl* entry,
- net::NetLog::LogLevel log_level ALLOW_UNUSED) {
+ net::NetLog::LogLevel log_level) {
base::DictionaryValue* dict = new base::DictionaryValue();
dict->SetString("entry_hash",
base::StringPrintf("%#016" PRIx64, entry->entry_hash()));
diff --git a/net/disk_cache/simple/simple_synchronous_entry.cc b/net/disk_cache/simple/simple_synchronous_entry.cc
index 1e7b9aa..c50c9a3 100644
--- a/net/disk_cache/simple/simple_synchronous_entry.cc
+++ b/net/disk_cache/simple/simple_synchronous_entry.cc
@@ -14,6 +14,7 @@
#include "base/files/file_util.h"
#include "base/hash.h"
#include "base/location.h"
+#include "base/numerics/safe_conversions.h"
#include "base/sha1.h"
#include "base/strings/stringprintf.h"
#include "net/base/io_buffer.h"
@@ -73,7 +74,7 @@
void RecordSyncOpenResult(net::CacheType cache_type,
OpenEntryResult result,
bool had_index) {
- DCHECK_GT(OPEN_ENTRY_MAX, result);
+ DCHECK_LT(result, OPEN_ENTRY_MAX);
SIMPLE_CACHE_UMA(ENUMERATION,
"SyncOpenResult", cache_type, result, OPEN_ENTRY_MAX);
if (had_index) {
@@ -104,8 +105,8 @@
}
bool CanOmitEmptyFile(int file_index) {
- DCHECK_LE(0, file_index);
- DCHECK_GT(disk_cache::kSimpleEntryFileCount, file_index);
+ DCHECK_GE(file_index, 0);
+ DCHECK_LT(file_index, disk_cache::kSimpleEntryFileCount);
return file_index == disk_cache::simple_util::GetFileIndexFromStreamIndex(2);
}
@@ -284,7 +285,7 @@
int file_index = GetFileIndexFromStreamIndex(in_entry_op.index);
// Zero-length reads and reads to the empty streams of omitted files should
// be handled in the SimpleEntryImpl.
- DCHECK_LT(0, in_entry_op.buf_len);
+ DCHECK_GT(in_entry_op.buf_len, 0);
DCHECK(!empty_file_omitted_[file_index]);
File* file = const_cast<File*>(&files_[file_index]);
int bytes_read =
@@ -408,19 +409,17 @@
SparseRange* found_range = &it->second;
DCHECK_EQ(it->first, found_range->offset);
if (found_range->offset + found_range->length > offset) {
- DCHECK_LE(0, found_range->length);
- DCHECK_GE(kint32max, found_range->length);
- DCHECK_LE(0, offset - found_range->offset);
- DCHECK_GE(kint32max, offset - found_range->offset);
- int range_len_after_offset = found_range->length -
- (offset - found_range->offset);
- DCHECK_LE(0, range_len_after_offset);
+ DCHECK_GE(found_range->length, 0);
+ DCHECK_LE(found_range->length, kint32max);
+ DCHECK_GE(offset - found_range->offset, 0);
+ DCHECK_LE(offset - found_range->offset, kint32max);
+ int net_offset = static_cast<int>(offset - found_range->offset);
+ int range_len_after_offset =
+ static_cast<int>(found_range->length - net_offset);
+ DCHECK_GE(range_len_after_offset, 0);
int len_to_read = std::min(buf_len, range_len_after_offset);
- if (!ReadSparseRange(found_range,
- offset - found_range->offset,
- len_to_read,
- buf)) {
+ if (!ReadSparseRange(found_range, net_offset, len_to_read, buf)) {
*out_result = net::ERR_CACHE_READ_FAILURE;
return;
}
@@ -436,8 +435,7 @@
it->second.offset == offset + read_so_far) {
SparseRange* found_range = &it->second;
DCHECK_EQ(it->first, found_range->offset);
- int range_len = (found_range->length > kint32max) ?
- kint32max : found_range->length;
+ int range_len = base::saturated_cast<int>(found_range->length);
int len_to_read = std::min(buf_len - read_so_far, range_len);
if (!ReadSparseRange(found_range, 0, len_to_read, buf + read_so_far)) {
*out_result = net::ERR_CACHE_READ_FAILURE;
@@ -484,19 +482,17 @@
--it;
SparseRange* found_range = &it->second;
if (found_range->offset + found_range->length > offset) {
- DCHECK_LE(0, found_range->length);
- DCHECK_GE(kint32max, found_range->length);
- DCHECK_LE(0, offset - found_range->offset);
- DCHECK_GE(kint32max, offset - found_range->offset);
- int range_len_after_offset = found_range->length -
- (offset - found_range->offset);
- DCHECK_LE(0, range_len_after_offset);
+ DCHECK_GE(found_range->length, 0);
+ DCHECK_LE(found_range->length, kint32max);
+ DCHECK_GE(offset - found_range->offset, 0);
+ DCHECK_LE(offset - found_range->offset, kint32max);
+ int net_offset = static_cast<int>(offset - found_range->offset);
+ int range_len_after_offset =
+ static_cast<int>(found_range->length - net_offset);
+ DCHECK_GE(range_len_after_offset, 0);
int len_to_write = std::min(buf_len, range_len_after_offset);
- if (!WriteSparseRange(found_range,
- offset - found_range->offset,
- len_to_write,
- buf)) {
+ if (!WriteSparseRange(found_range, net_offset, len_to_write, buf)) {
*out_result = net::ERR_CACHE_WRITE_FAILURE;
return;
}
@@ -510,7 +506,8 @@
it->second.offset < offset + buf_len) {
SparseRange* found_range = &it->second;
if (offset + written_so_far < found_range->offset) {
- int len_to_append = found_range->offset - (offset + written_so_far);
+ int len_to_append =
+ static_cast<int>(found_range->offset - (offset + written_so_far));
if (!AppendSparseRange(offset + written_so_far,
len_to_append,
buf + written_so_far)) {
@@ -520,8 +517,7 @@
written_so_far += len_to_append;
appended_so_far += len_to_append;
}
- int range_len = (found_range->length > kint32max) ?
- kint32max : found_range->length;
+ int range_len = base::saturated_cast<int>(found_range->length);
int len_to_write = std::min(buf_len - written_so_far, range_len);
if (!WriteSparseRange(found_range,
0,
@@ -567,7 +563,7 @@
SparseRangeIterator it = sparse_ranges_.lower_bound(offset);
int64 start = offset;
- int avail_so_far = 0;
+ int64 avail_so_far = 0;
if (it != sparse_ranges_.end() && it->second.offset < offset + len)
start = it->second.offset;
@@ -589,9 +585,9 @@
++it;
}
- int len_from_start = len - (start - offset);
+ int64 len_from_start = len - (start - offset);
*out_start = start;
- *out_result = std::min(avail_so_far, len_from_start);
+ *out_result = static_cast<int>(std::min(avail_so_far, len_from_start));
}
void SimpleSynchronousEntry::CheckEOFRecord(int index,
@@ -680,7 +676,8 @@
const int64 cluster_loss = file_size % 4096 ? 4096 - file_size % 4096 : 0;
SIMPLE_CACHE_UMA(PERCENTAGE,
"LastClusterLossPercent", cache_type_,
- cluster_loss * 100 / (cluster_loss + file_size));
+ static_cast<base::HistogramBase::Sample>(
+ cluster_loss * 100 / (cluster_loss + file_size)));
}
if (sparse_file_open())
@@ -825,7 +822,7 @@
// 0, stream 1 and one EOF record. The exact distribution of sizes between
// stream 1 and stream 0 is only determined after reading the EOF record
// for stream 0 in ReadAndValidateStream0.
- out_entry_stat->set_data_size(i + 1, file_info.size);
+ out_entry_stat->set_data_size(i + 1, static_cast<int>(file_info.size));
}
SIMPLE_CACHE_UMA(CUSTOM_COUNTS,
"SyncOpenEntryAge", cache_type_,
@@ -1159,7 +1156,7 @@
void SimpleSynchronousEntry::RecordSyncCreateResult(CreateEntryResult result,
bool had_index) {
- DCHECK_GT(CREATE_ENTRY_MAX, result);
+ DCHECK_LT(result, CREATE_ENTRY_MAX);
SIMPLE_CACHE_UMA(ENUMERATION,
"SyncCreateResult", cache_type_, result, CREATE_ENTRY_MAX);
if (had_index) {
@@ -1256,7 +1253,7 @@
bool SimpleSynchronousEntry::ScanSparseFile(int32* out_sparse_data_size) {
DCHECK(sparse_file_open());
- int32 sparse_data_size = 0;
+ int64 sparse_data_size = 0;
SimpleFileHeader header;
int header_read_result =
@@ -1307,11 +1304,11 @@
range_header_offset += sizeof(range_header) + range.length;
- DCHECK_LE(sparse_data_size, sparse_data_size + range.length);
+ DCHECK_GE(sparse_data_size + range.length, sparse_data_size);
sparse_data_size += range.length;
}
- *out_sparse_data_size = sparse_data_size;
+ *out_sparse_data_size = static_cast<int32>(sparse_data_size);
sparse_tail_offset_ = range_header_offset;
return true;
@@ -1321,8 +1318,8 @@
int offset, int len, char* buf) {
DCHECK(range);
DCHECK(buf);
- DCHECK_GE(range->length, offset);
- DCHECK_GE(range->length, offset + len);
+ DCHECK_LE(offset, range->length);
+ DCHECK_LE(offset + len, range->length);
int bytes_read = sparse_file_.Read(range->file_offset + offset, buf, len);
if (bytes_read < len) {
@@ -1350,8 +1347,8 @@
const char* buf) {
DCHECK(range);
DCHECK(buf);
- DCHECK_GE(range->length, offset);
- DCHECK_GE(range->length, offset + len);
+ DCHECK_LE(offset, range->length);
+ DCHECK_LE(offset + len, range->length);
uint32 new_crc32 = 0;
if (offset == 0 && len == range->length) {
@@ -1390,8 +1387,8 @@
bool SimpleSynchronousEntry::AppendSparseRange(int64 offset,
int len,
const char* buf) {
- DCHECK_LE(0, offset);
- DCHECK_LT(0, len);
+ DCHECK_GE(offset, 0);
+ DCHECK_GT(len, 0);
DCHECK(buf);
uint32 data_crc32 = crc32(crc32(0L, Z_NULL, 0),
diff --git a/net/disk_cache/simple/simple_util.cc b/net/disk_cache/simple/simple_util.cc
index 844b695..55f309e 100644
--- a/net/disk_cache/simple/simple_util.cc
+++ b/net/disk_cache/simple/simple_util.cc
@@ -9,6 +9,7 @@
#include "base/files/file_util.h"
#include "base/format_macros.h"
#include "base/logging.h"
+#include "base/numerics/safe_conversions.h"
#include "base/sha1.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/stringprintf.h"
@@ -97,8 +98,7 @@
int32 GetDataSizeFromKeyAndFileSize(const std::string& key, int64 file_size) {
int64 data_size = file_size - key.size() - sizeof(SimpleFileHeader) -
sizeof(SimpleFileEOF);
- DCHECK_GE(implicit_cast<int64>(std::numeric_limits<int32>::max()), data_size);
- return data_size;
+ return base::checked_cast<int32>(data_size);
}
int64 GetFileSizeFromKeyAndDataSize(const std::string& key, int32 data_size) {
diff --git a/net/dns/address_sorter_posix.h b/net/dns/address_sorter_posix.h
index 1c88ad2..ce3ffdb 100644
--- a/net/dns/address_sorter_posix.h
+++ b/net/dns/address_sorter_posix.h
@@ -65,13 +65,13 @@
// AddressSorter:
virtual void Sort(const AddressList& list,
- const CallbackType& callback) const OVERRIDE;
+ const CallbackType& callback) const override;
private:
friend class AddressSorterPosixTest;
// NetworkChangeNotifier::IPAddressObserver:
- virtual void OnIPAddressChanged() OVERRIDE;
+ virtual void OnIPAddressChanged() override;
// Fills |info| with values for |address| from policy tables.
void FillPolicy(const IPAddressNumber& address,
diff --git a/net/dns/address_sorter_posix_unittest.cc b/net/dns/address_sorter_posix_unittest.cc
index dea7ade..9039850 100644
--- a/net/dns/address_sorter_posix_unittest.cc
+++ b/net/dns/address_sorter_posix_unittest.cc
@@ -35,34 +35,34 @@
virtual ~TestUDPClientSocket() {}
- virtual int Read(IOBuffer*, int, const CompletionCallback&) OVERRIDE {
+ virtual int Read(IOBuffer*, int, const CompletionCallback&) override {
NOTIMPLEMENTED();
return OK;
}
- virtual int Write(IOBuffer*, int, const CompletionCallback&) OVERRIDE {
+ virtual int Write(IOBuffer*, int, const CompletionCallback&) override {
NOTIMPLEMENTED();
return OK;
}
- virtual int SetReceiveBufferSize(int32) OVERRIDE {
+ virtual int SetReceiveBufferSize(int32) override {
return OK;
}
- virtual int SetSendBufferSize(int32) OVERRIDE {
+ virtual int SetSendBufferSize(int32) override {
return OK;
}
- virtual void Close() OVERRIDE {}
- virtual int GetPeerAddress(IPEndPoint* address) const OVERRIDE {
+ virtual void Close() override {}
+ virtual int GetPeerAddress(IPEndPoint* address) const override {
NOTIMPLEMENTED();
return OK;
}
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE {
+ virtual int GetLocalAddress(IPEndPoint* address) const override {
if (!connected_)
return ERR_UNEXPECTED;
*address = local_endpoint_;
return OK;
}
- virtual int Connect(const IPEndPoint& remote) OVERRIDE {
+ virtual int Connect(const IPEndPoint& remote) override {
if (connected_)
return ERR_UNEXPECTED;
AddressMapping::const_iterator it = mapping_->find(remote.address());
@@ -73,7 +73,7 @@
return OK;
}
- virtual const BoundNetLog& NetLog() const OVERRIDE {
+ virtual const BoundNetLog& NetLog() const override {
return net_log_;
}
@@ -96,13 +96,13 @@
DatagramSocket::BindType,
const RandIntCallback&,
NetLog*,
- const NetLog::Source&) OVERRIDE {
+ const NetLog::Source&) override {
return scoped_ptr<DatagramClientSocket>(new TestUDPClientSocket(&mapping_));
}
virtual scoped_ptr<StreamSocket> CreateTransportClientSocket(
const AddressList&,
NetLog*,
- const NetLog::Source&) OVERRIDE {
+ const NetLog::Source&) override {
NOTIMPLEMENTED();
return scoped_ptr<StreamSocket>();
}
@@ -110,11 +110,11 @@
scoped_ptr<ClientSocketHandle>,
const HostPortPair&,
const SSLConfig&,
- const SSLClientSocketContext&) OVERRIDE {
+ const SSLClientSocketContext&) override {
NOTIMPLEMENTED();
return scoped_ptr<SSLClientSocket>();
}
- virtual void ClearSSLSessionCache() OVERRIDE {
+ virtual void ClearSSLSessionCache() override {
NOTIMPLEMENTED();
}
diff --git a/net/dns/address_sorter_win.cc b/net/dns/address_sorter_win.cc
index 813bd93..079ba6a 100644
--- a/net/dns/address_sorter_win.cc
+++ b/net/dns/address_sorter_win.cc
@@ -31,7 +31,7 @@
// AddressSorter:
virtual void Sort(const AddressList& list,
- const CallbackType& callback) const OVERRIDE {
+ const CallbackType& callback) const override {
DCHECK(!list.empty());
scoped_refptr<Job> job = new Job(list, callback);
}
@@ -160,7 +160,7 @@
// AddressSorter:
virtual void Sort(const AddressList& list,
- const CallbackType& callback) const OVERRIDE {
+ const CallbackType& callback) const override {
AddressList list_ipv4;
AddressList list_ipv6;
for (size_t i = 0; i < list.size(); ++i) {
diff --git a/net/dns/dns_client.cc b/net/dns/dns_client.cc
index 9e29ca4..de96c02 100644
--- a/net/dns/dns_client.cc
+++ b/net/dns/dns_client.cc
@@ -24,7 +24,7 @@
: address_sorter_(AddressSorter::CreateAddressSorter()),
net_log_(net_log) {}
- virtual void SetConfig(const DnsConfig& config) OVERRIDE {
+ virtual void SetConfig(const DnsConfig& config) override {
factory_.reset();
session_ = NULL;
if (config.IsValid() && !config.unhandled_options) {
@@ -40,15 +40,15 @@
}
}
- virtual const DnsConfig* GetConfig() const OVERRIDE {
+ virtual const DnsConfig* GetConfig() const override {
return session_.get() ? &session_->config() : NULL;
}
- virtual DnsTransactionFactory* GetTransactionFactory() OVERRIDE {
+ virtual DnsTransactionFactory* GetTransactionFactory() override {
return session_.get() ? factory_.get() : NULL;
}
- virtual AddressSorter* GetAddressSorter() OVERRIDE {
+ virtual AddressSorter* GetAddressSorter() override {
return address_sorter_.get();
}
diff --git a/net/dns/dns_config_service_posix.cc b/net/dns/dns_config_service_posix.cc
index 2c298dd..c0664eb 100644
--- a/net/dns/dns_config_service_posix.cc
+++ b/net/dns/dns_config_service_posix.cc
@@ -74,7 +74,7 @@
}
virtual void OnNetworkChanged(NetworkChangeNotifier::ConnectionType type)
- OVERRIDE {
+ override {
if (!callback_.is_null() && type != NetworkChangeNotifier::CONNECTION_NONE)
callback_.Run(true);
}
@@ -263,7 +263,7 @@
explicit ConfigReader(DnsConfigServicePosix* service)
: service_(service), success_(false) {}
- virtual void DoWork() OVERRIDE {
+ virtual void DoWork() override {
base::TimeTicks start_time = base::TimeTicks::Now();
ConfigParsePosixResult result = ReadDnsConfig(&dns_config_);
switch (result) {
@@ -285,7 +285,7 @@
base::TimeTicks::Now() - start_time);
}
- virtual void OnWorkFinished() OVERRIDE {
+ virtual void OnWorkFinished() override {
DCHECK(!IsCancelled());
if (success_) {
service_->OnConfigRead(dns_config_);
@@ -314,7 +314,7 @@
private:
virtual ~HostsReader() {}
- virtual void DoWork() OVERRIDE {
+ virtual void DoWork() override {
base::TimeTicks start_time = base::TimeTicks::Now();
success_ = ParseHostsFile(path_, &hosts_);
UMA_HISTOGRAM_BOOLEAN("AsyncDNS.HostParseResult", success_);
@@ -322,7 +322,7 @@
base::TimeTicks::Now() - start_time);
}
- virtual void OnWorkFinished() OVERRIDE {
+ virtual void OnWorkFinished() override {
if (success_) {
service_->OnHostsRead(hosts_);
} else {
diff --git a/net/dns/dns_config_service_posix.h b/net/dns/dns_config_service_posix.h
index ef28154..598d6ad 100644
--- a/net/dns/dns_config_service_posix.h
+++ b/net/dns/dns_config_service_posix.h
@@ -27,8 +27,8 @@
protected:
// DnsConfigService:
- virtual void ReadNow() OVERRIDE;
- virtual bool StartWatching() OVERRIDE;
+ virtual void ReadNow() override;
+ virtual bool StartWatching() override;
private:
class Watcher;
diff --git a/net/dns/dns_config_service_unittest.cc b/net/dns/dns_config_service_unittest.cc
index e71baef..0239f80 100644
--- a/net/dns/dns_config_service_unittest.cc
+++ b/net/dns/dns_config_service_unittest.cc
@@ -121,8 +121,8 @@
protected:
class TestDnsConfigService : public DnsConfigService {
public:
- virtual void ReadNow() OVERRIDE {}
- virtual bool StartWatching() OVERRIDE { return true; }
+ virtual void ReadNow() override {}
+ virtual bool StartWatching() override { return true; }
// Expose the protected methods to this test suite.
void InvalidateConfig() {
@@ -176,7 +176,7 @@
return hosts;
}
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
quit_on_config_ = false;
service_.reset(new TestDnsConfigService());
diff --git a/net/dns/dns_config_service_win.cc b/net/dns/dns_config_service_win.cc
index ec7e6f2..dd3ee3d 100644
--- a/net/dns/dns_config_service_win.cc
+++ b/net/dns/dns_config_service_win.cc
@@ -312,7 +312,7 @@
return true;
}
- virtual void OnObjectSignaled(HANDLE object) OVERRIDE {
+ virtual void OnObjectSignaled(HANDLE object) override {
// TODO(vadimt): Remove ScopedProfile below once crbug.com/418183 is fixed.
tracked_objects::ScopedProfile tracking_profile(
FROM_HERE_WITH_EXPLICIT_FUNCTION(
@@ -609,7 +609,7 @@
}
// NetworkChangeNotifier::IPAddressObserver:
- virtual void OnIPAddressChanged() OVERRIDE {
+ virtual void OnIPAddressChanged() override {
// Need to update non-loopback IP of local host.
service_->OnHostsChanged(true);
}
@@ -635,7 +635,7 @@
private:
virtual ~ConfigReader() {}
- virtual void DoWork() OVERRIDE {
+ virtual void DoWork() override {
// Should be called on WorkerPool.
base::TimeTicks start_time = base::TimeTicks::Now();
DnsSystemSettings settings = {};
@@ -651,7 +651,7 @@
base::TimeTicks::Now() - start_time);
}
- virtual void OnWorkFinished() OVERRIDE {
+ virtual void OnWorkFinished() override {
DCHECK(loop()->BelongsToCurrentThread());
DCHECK(!IsCancelled());
if (success_) {
@@ -685,7 +685,7 @@
private:
virtual ~HostsReader() {}
- virtual void DoWork() OVERRIDE {
+ virtual void DoWork() override {
base::TimeTicks start_time = base::TimeTicks::Now();
HostsParseWinResult result = HOSTS_PARSE_WIN_UNREADABLE_HOSTS_FILE;
if (ParseHostsFile(path_, &hosts_))
@@ -698,7 +698,7 @@
base::TimeTicks::Now() - start_time);
}
- virtual void OnWorkFinished() OVERRIDE {
+ virtual void OnWorkFinished() override {
DCHECK(loop()->BelongsToCurrentThread());
if (success_) {
service_->OnHostsRead(hosts_);
diff --git a/net/dns/dns_config_service_win.h b/net/dns/dns_config_service_win.h
index d26aed5..c28d863 100644
--- a/net/dns/dns_config_service_win.h
+++ b/net/dns/dns_config_service_win.h
@@ -125,8 +125,8 @@
class HostsReader;
// DnsConfigService:
- virtual void ReadNow() OVERRIDE;
- virtual bool StartWatching() OVERRIDE;
+ virtual void ReadNow() override;
+ virtual bool StartWatching() override;
void OnConfigChanged(bool succeeded);
void OnHostsChanged(bool succeeded);
diff --git a/net/dns/dns_session_unittest.cc b/net/dns/dns_session_unittest.cc
index ed726f2..e6f1230 100644
--- a/net/dns/dns_session_unittest.cc
+++ b/net/dns/dns_session_unittest.cc
@@ -30,11 +30,11 @@
DatagramSocket::BindType bind_type,
const RandIntCallback& rand_int_cb,
net::NetLog* net_log,
- const net::NetLog::Source& source) OVERRIDE;
+ const net::NetLog::Source& source) override;
virtual scoped_ptr<StreamSocket> CreateTransportClientSocket(
const AddressList& addresses,
- NetLog*, const NetLog::Source&) OVERRIDE {
+ NetLog*, const NetLog::Source&) override {
NOTIMPLEMENTED();
return scoped_ptr<StreamSocket>();
}
@@ -43,12 +43,12 @@
scoped_ptr<ClientSocketHandle> transport_socket,
const HostPortPair& host_and_port,
const SSLConfig& ssl_config,
- const SSLClientSocketContext& context) OVERRIDE {
+ const SSLClientSocketContext& context) override {
NOTIMPLEMENTED();
return scoped_ptr<SSLClientSocket>();
}
- virtual void ClearSSLSessionCache() OVERRIDE {
+ virtual void ClearSSLSessionCache() override {
NOTIMPLEMENTED();
}
@@ -92,19 +92,19 @@
virtual void Initialize(
const std::vector<IPEndPoint>* nameservers,
- NetLog* net_log) OVERRIDE {
+ NetLog* net_log) override {
InitializeInternal(nameservers, net_log);
}
virtual scoped_ptr<DatagramClientSocket> AllocateSocket(
- unsigned server_index) OVERRIDE {
+ unsigned server_index) override {
test_->OnSocketAllocated(server_index);
return CreateConnectedSocket(server_index);
}
virtual void FreeSocket(
unsigned server_index,
- scoped_ptr<DatagramClientSocket> socket) OVERRIDE {
+ scoped_ptr<DatagramClientSocket> socket) override {
test_->OnSocketFreed(server_index);
}
diff --git a/net/dns/dns_socket_pool.cc b/net/dns/dns_socket_pool.cc
index b446fa0..09aca5a 100644
--- a/net/dns/dns_socket_pool.cc
+++ b/net/dns/dns_socket_pool.cc
@@ -97,18 +97,18 @@
virtual void Initialize(
const std::vector<IPEndPoint>* nameservers,
- NetLog* net_log) OVERRIDE {
+ NetLog* net_log) override {
InitializeInternal(nameservers, net_log);
}
virtual scoped_ptr<DatagramClientSocket> AllocateSocket(
- unsigned server_index) OVERRIDE {
+ unsigned server_index) override {
return CreateConnectedSocket(server_index);
}
virtual void FreeSocket(
unsigned server_index,
- scoped_ptr<DatagramClientSocket> socket) OVERRIDE {
+ scoped_ptr<DatagramClientSocket> socket) override {
}
private:
@@ -131,14 +131,14 @@
virtual void Initialize(
const std::vector<IPEndPoint>* nameservers,
- NetLog* net_log) OVERRIDE;
+ NetLog* net_log) override;
virtual scoped_ptr<DatagramClientSocket> AllocateSocket(
- unsigned server_index) OVERRIDE;
+ unsigned server_index) override;
virtual void FreeSocket(
unsigned server_index,
- scoped_ptr<DatagramClientSocket> socket) OVERRIDE;
+ scoped_ptr<DatagramClientSocket> socket) override;
private:
void FillPool(unsigned server_index, unsigned size);
diff --git a/net/dns/dns_test_util.cc b/net/dns/dns_test_util.cc
index 01acb34..6327ed2 100644
--- a/net/dns/dns_test_util.cc
+++ b/net/dns/dns_test_util.cc
@@ -27,7 +27,7 @@
public:
virtual ~MockAddressSorter() {}
virtual void Sort(const AddressList& list,
- const CallbackType& callback) const OVERRIDE {
+ const CallbackType& callback) const override {
// Do nothing.
callback.Run(true, list);
}
@@ -60,15 +60,15 @@
}
}
- virtual const std::string& GetHostname() const OVERRIDE {
+ virtual const std::string& GetHostname() const override {
return hostname_;
}
- virtual uint16 GetType() const OVERRIDE {
+ virtual uint16 GetType() const override {
return qtype_;
}
- virtual void Start() OVERRIDE {
+ virtual void Start() override {
EXPECT_FALSE(started_);
started_ = true;
if (delayed_)
@@ -172,7 +172,7 @@
const std::string& hostname,
uint16 qtype,
const DnsTransactionFactory::CallbackType& callback,
- const BoundNetLog&) OVERRIDE {
+ const BoundNetLog&) override {
MockTransaction* transaction =
new MockTransaction(rules_, hostname, qtype, callback);
if (transaction->delayed())
diff --git a/net/dns/dns_test_util.h b/net/dns/dns_test_util.h
index d0b8e81..5b363c7 100644
--- a/net/dns/dns_test_util.h
+++ b/net/dns/dns_test_util.h
@@ -211,10 +211,10 @@
virtual ~MockDnsClient();
// DnsClient interface:
- virtual void SetConfig(const DnsConfig& config) OVERRIDE;
- virtual const DnsConfig* GetConfig() const OVERRIDE;
- virtual DnsTransactionFactory* GetTransactionFactory() OVERRIDE;
- virtual AddressSorter* GetAddressSorter() OVERRIDE;
+ virtual void SetConfig(const DnsConfig& config) override;
+ virtual const DnsConfig* GetConfig() const override;
+ virtual DnsTransactionFactory* GetTransactionFactory() override;
+ virtual AddressSorter* GetAddressSorter() override;
// Completes all DnsTransactions that were delayed by a rule.
void CompleteDelayedTransactions();
diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
index 0424d48..32b5602 100644
--- a/net/dns/dns_transaction.cc
+++ b/net/dns/dns_transaction.cc
@@ -141,7 +141,7 @@
query_(query.Pass()) {}
// DnsAttempt:
- virtual int Start(const CompletionCallback& callback) OVERRIDE {
+ virtual int Start(const CompletionCallback& callback) override {
DCHECK_EQ(STATE_NONE, next_state_);
callback_ = callback;
start_time_ = base::TimeTicks::Now();
@@ -149,16 +149,16 @@
return DoLoop(OK);
}
- virtual const DnsQuery* GetQuery() const OVERRIDE {
+ virtual const DnsQuery* GetQuery() const override {
return query_.get();
}
- virtual const DnsResponse* GetResponse() const OVERRIDE {
+ virtual const DnsResponse* GetResponse() const override {
const DnsResponse* resp = response_.get();
return (resp != NULL && resp->IsValid()) ? resp : NULL;
}
- virtual const BoundNetLog& GetSocketNetLog() const OVERRIDE {
+ virtual const BoundNetLog& GetSocketNetLog() const override {
return socket_lease_->socket()->NetLog();
}
@@ -306,7 +306,7 @@
response_length_(0) {}
// DnsAttempt:
- virtual int Start(const CompletionCallback& callback) OVERRIDE {
+ virtual int Start(const CompletionCallback& callback) override {
DCHECK_EQ(STATE_NONE, next_state_);
callback_ = callback;
start_time_ = base::TimeTicks::Now();
@@ -320,16 +320,16 @@
return DoLoop(rv);
}
- virtual const DnsQuery* GetQuery() const OVERRIDE {
+ virtual const DnsQuery* GetQuery() const override {
return query_.get();
}
- virtual const DnsResponse* GetResponse() const OVERRIDE {
+ virtual const DnsResponse* GetResponse() const override {
const DnsResponse* resp = response_.get();
return (resp != NULL && resp->IsValid()) ? resp : NULL;
}
- virtual const BoundNetLog& GetSocketNetLog() const OVERRIDE {
+ virtual const BoundNetLog& GetSocketNetLog() const override {
return socket_->NetLog();
}
@@ -574,17 +574,17 @@
} // otherwise logged in DoCallback or Start
}
- virtual const std::string& GetHostname() const OVERRIDE {
+ virtual const std::string& GetHostname() const override {
DCHECK(CalledOnValidThread());
return hostname_;
}
- virtual uint16 GetType() const OVERRIDE {
+ virtual uint16 GetType() const override {
DCHECK(CalledOnValidThread());
return qtype_;
}
- virtual void Start() OVERRIDE {
+ virtual void Start() override {
DCHECK(!callback_.is_null());
DCHECK(attempts_.empty());
net_log_.BeginEvent(NetLog::TYPE_DNS_TRANSACTION,
@@ -972,7 +972,7 @@
const std::string& hostname,
uint16 qtype,
const CallbackType& callback,
- const BoundNetLog& net_log) OVERRIDE {
+ const BoundNetLog& net_log) override {
return scoped_ptr<DnsTransaction>(new DnsTransactionImpl(
session_.get(), hostname, qtype, callback, net_log));
}
diff --git a/net/dns/dns_transaction_unittest.cc b/net/dns/dns_transaction_unittest.cc
index af073ac..908f915 100644
--- a/net/dns/dns_transaction_unittest.cc
+++ b/net/dns/dns_transaction_unittest.cc
@@ -153,7 +153,7 @@
: MockUDPClientSocket(data, net_log) {
}
virtual ~FailingUDPClientSocket() {}
- virtual int Connect(const IPEndPoint& endpoint) OVERRIDE {
+ virtual int Connect(const IPEndPoint& endpoint) override {
return ERR_CONNECTION_REFUSED;
}
@@ -170,7 +170,7 @@
: MockUDPClientSocket(data, net_log), factory_(factory) {
}
virtual ~TestUDPClientSocket() {}
- virtual int Connect(const IPEndPoint& endpoint) OVERRIDE;
+ virtual int Connect(const IPEndPoint& endpoint) override;
private:
TestSocketFactory* factory_;
@@ -188,7 +188,7 @@
DatagramSocket::BindType bind_type,
const RandIntCallback& rand_int_cb,
net::NetLog* net_log,
- const net::NetLog::Source& source) OVERRIDE {
+ const net::NetLog::Source& source) override {
if (fail_next_socket_) {
fail_next_socket_ = false;
return scoped_ptr<DatagramClientSocket>(
@@ -441,7 +441,7 @@
}
}
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
// By default set one server,
ConfigureNumServers(1);
// and no retransmissions,
@@ -451,7 +451,7 @@
ConfigureFactory();
}
- virtual void TearDown() OVERRIDE {
+ virtual void TearDown() override {
// Check that all socket data was at least written to.
for (size_t i = 0; i < socket_data_.size(); ++i) {
EXPECT_TRUE(socket_data_[i]->was_written()) << i;
diff --git a/net/dns/host_resolver_impl.cc b/net/dns/host_resolver_impl.cc
index 201bba4..5632ef9 100644
--- a/net/dns/host_resolver_impl.cc
+++ b/net/dns/host_resolver_impl.cc
@@ -1424,7 +1424,7 @@
}
// PriorityDispatch::Job:
- virtual void Start() OVERRIDE {
+ virtual void Start() override {
DCHECK_LE(num_occupied_job_slots_, 1u);
handle_.Reset();
@@ -1590,7 +1590,7 @@
virtual void OnDnsTaskComplete(base::TimeTicks start_time,
int net_error,
const AddressList& addr_list,
- base::TimeDelta ttl) OVERRIDE {
+ base::TimeDelta ttl) override {
DCHECK(is_dns_running());
base::TimeDelta duration = base::TimeTicks::Now() - start_time;
@@ -1625,7 +1625,7 @@
bounded_ttl);
}
- virtual void OnFirstDnsTransactionComplete() OVERRIDE {
+ virtual void OnFirstDnsTransactionComplete() override {
DCHECK(dns_task_->needs_two_transactions());
DCHECK_EQ(dns_task_->needs_another_transaction(), is_queued());
// No longer need to occupy two dispatcher slots.
diff --git a/net/dns/host_resolver_impl.h b/net/dns/host_resolver_impl.h
index 7a0fb57..edd64fc 100644
--- a/net/dns/host_resolver_impl.h
+++ b/net/dns/host_resolver_impl.h
@@ -129,16 +129,16 @@
AddressList* addresses,
const CompletionCallback& callback,
RequestHandle* out_req,
- const BoundNetLog& source_net_log) OVERRIDE;
+ const BoundNetLog& source_net_log) override;
virtual int ResolveFromCache(const RequestInfo& info,
AddressList* addresses,
- const BoundNetLog& source_net_log) OVERRIDE;
- virtual void CancelRequest(RequestHandle req) OVERRIDE;
- virtual void SetDefaultAddressFamily(AddressFamily address_family) OVERRIDE;
- virtual AddressFamily GetDefaultAddressFamily() const OVERRIDE;
- virtual void SetDnsClientEnabled(bool enabled) OVERRIDE;
- virtual HostCache* GetHostCache() OVERRIDE;
- virtual base::Value* GetDnsConfigAsValue() const OVERRIDE;
+ const BoundNetLog& source_net_log) override;
+ virtual void CancelRequest(RequestHandle req) override;
+ virtual void SetDefaultAddressFamily(AddressFamily address_family) override;
+ virtual AddressFamily GetDefaultAddressFamily() const override;
+ virtual void SetDnsClientEnabled(bool enabled) override;
+ virtual HostCache* GetHostCache() override;
+ virtual base::Value* GetDnsConfigAsValue() const override;
void set_proc_params_for_test(const ProcTaskParams& proc_params) {
proc_params_ = proc_params;
@@ -220,10 +220,10 @@
void TryServingAllJobsFromHosts();
// NetworkChangeNotifier::IPAddressObserver:
- virtual void OnIPAddressChanged() OVERRIDE;
+ virtual void OnIPAddressChanged() override;
// NetworkChangeNotifier::DNSObserver:
- virtual void OnDNSChanged() OVERRIDE;
+ virtual void OnDNSChanged() override;
// True if have a DnsClient with a valid DnsConfig.
bool HaveDnsConfig() const;
diff --git a/net/dns/host_resolver_impl_unittest.cc b/net/dns/host_resolver_impl_unittest.cc
index 89112de..dadc03d 100644
--- a/net/dns/host_resolver_impl_unittest.cc
+++ b/net/dns/host_resolver_impl_unittest.cc
@@ -129,7 +129,7 @@
AddressFamily address_family,
HostResolverFlags host_resolver_flags,
AddressList* addrlist,
- int* os_error) OVERRIDE {
+ int* os_error) override {
base::AutoLock lock(lock_);
capture_list_.push_back(ResolveKey(hostname, address_family));
++num_requests_waiting_;
@@ -365,7 +365,7 @@
AddressFamily address_family,
HostResolverFlags host_resolver_flags,
AddressList* addrlist,
- int* os_error) OVERRIDE {
+ int* os_error) override {
bool wait_for_right_attempt_to_complete = true;
{
base::AutoLock auto_lock(lock_);
@@ -460,11 +460,11 @@
};
// testing::Test implementation:
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
CreateResolver();
}
- virtual void TearDown() OVERRIDE {
+ virtual void TearDown() override {
if (resolver_.get())
EXPECT_EQ(0u, resolver_->num_running_dispatcher_jobs_for_tests());
EXPECT_FALSE(proc_->HasBlockedRequests());
@@ -732,7 +732,7 @@
TEST_F(HostResolverImplTest, CancelWithinCallback) {
struct MyHandler : public Handler {
- virtual void Handle(Request* req) OVERRIDE {
+ virtual void Handle(Request* req) override {
// Port 80 is the first request that the callback will be invoked for.
// While we are executing within that callback, cancel the other requests
// in the job and start another request.
@@ -761,7 +761,7 @@
TEST_F(HostResolverImplTest, DeleteWithinCallback) {
struct MyHandler : public Handler {
- virtual void Handle(Request* req) OVERRIDE {
+ virtual void Handle(Request* req) override {
EXPECT_EQ("a", req->info().hostname());
EXPECT_EQ(80, req->info().port());
@@ -787,7 +787,7 @@
TEST_F(HostResolverImplTest, DeleteWithinAbortedCallback) {
struct MyHandler : public Handler {
- virtual void Handle(Request* req) OVERRIDE {
+ virtual void Handle(Request* req) override {
EXPECT_EQ("a", req->info().hostname());
EXPECT_EQ(80, req->info().port());
@@ -827,7 +827,7 @@
TEST_F(HostResolverImplTest, StartWithinCallback) {
struct MyHandler : public Handler {
- virtual void Handle(Request* req) OVERRIDE {
+ virtual void Handle(Request* req) override {
if (req->index() == 0) {
// On completing the first request, start another request for "a".
// Since caching is disabled, this will result in another async request.
@@ -858,7 +858,7 @@
TEST_F(HostResolverImplTest, BypassCache) {
struct MyHandler : public Handler {
- virtual void Handle(Request* req) OVERRIDE {
+ virtual void Handle(Request* req) override {
if (req->index() == 0) {
// On completing the first request, start another request for "a".
// Since caching is enabled, this should complete synchronously.
@@ -956,7 +956,7 @@
// will not be aborted.
TEST_F(HostResolverImplTest, AbortOnlyExistingRequestsOnIPAddressChange) {
struct MyHandler : public Handler {
- virtual void Handle(Request* req) OVERRIDE {
+ virtual void Handle(Request* req) override {
// Start new request for a different hostname to ensure that the order
// of jobs in HostResolverImpl is not stable.
std::string hostname;
@@ -1339,7 +1339,7 @@
protected:
// testing::Test implementation:
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
AddDnsRule("nx", dns_protocol::kTypeA, MockDnsClientRule::FAIL, false);
AddDnsRule("nx", dns_protocol::kTypeAAAA, MockDnsClientRule::FAIL, false);
AddDnsRule("ok", dns_protocol::kTypeA, MockDnsClientRule::OK, false);
@@ -1381,7 +1381,7 @@
// HostResolverImplTest implementation:
virtual void CreateResolverWithLimitsAndParams(
size_t max_concurrent_resolves,
- const HostResolverImpl::ProcTaskParams& params) OVERRIDE {
+ const HostResolverImpl::ProcTaskParams& params) override {
HostResolverImpl::Options options = DefaultOptions();
options.max_concurrent_resolves = max_concurrent_resolves;
resolver_.reset(new HostResolverImpl(options, NULL));
diff --git a/net/dns/host_resolver_proc.h b/net/dns/host_resolver_proc.h
index 014a720..695e3bc 100644
--- a/net/dns/host_resolver_proc.h
+++ b/net/dns/host_resolver_proc.h
@@ -99,7 +99,7 @@
AddressFamily address_family,
HostResolverFlags host_resolver_flags,
AddressList* addr_list,
- int* os_error) OVERRIDE;
+ int* os_error) override;
protected:
virtual ~SystemHostResolverProc();
diff --git a/net/dns/mapped_host_resolver.h b/net/dns/mapped_host_resolver.h
index c03a2a6..6d4ab92 100644
--- a/net/dns/mapped_host_resolver.h
+++ b/net/dns/mapped_host_resolver.h
@@ -50,14 +50,14 @@
AddressList* addresses,
const CompletionCallback& callback,
RequestHandle* out_req,
- const BoundNetLog& net_log) OVERRIDE;
+ const BoundNetLog& net_log) override;
virtual int ResolveFromCache(const RequestInfo& info,
AddressList* addresses,
- const BoundNetLog& net_log) OVERRIDE;
- virtual void CancelRequest(RequestHandle req) OVERRIDE;
- virtual void SetDnsClientEnabled(bool enabled) OVERRIDE;
- virtual HostCache* GetHostCache() OVERRIDE;
- virtual base::Value* GetDnsConfigAsValue() const OVERRIDE;
+ const BoundNetLog& net_log) override;
+ virtual void CancelRequest(RequestHandle req) override;
+ virtual void SetDnsClientEnabled(bool enabled) override;
+ virtual HostCache* GetHostCache() override;
+ virtual base::Value* GetDnsConfigAsValue() const override;
private:
// Modify the request |info| according to |rules_|. Returns either OK or
diff --git a/net/dns/mdns_client_impl.h b/net/dns/mdns_client_impl.h
index 6051511..b6f8b93 100644
--- a/net/dns/mdns_client_impl.h
+++ b/net/dns/mdns_client_impl.h
@@ -29,7 +29,7 @@
virtual ~MDnsSocketFactoryImpl() {};
virtual void CreateSockets(
- ScopedVector<DatagramServerSocket>* sockets) OVERRIDE;
+ ScopedVector<DatagramServerSocket>* sockets) override;
private:
DISALLOW_COPY_AND_ASSIGN(MDnsSocketFactoryImpl);
@@ -128,9 +128,9 @@
std::vector<const RecordParsed*>* records) const;
// Parse the response and alert relevant listeners.
- virtual void HandlePacket(DnsResponse* response, int bytes_read) OVERRIDE;
+ virtual void HandlePacket(DnsResponse* response, int bytes_read) override;
- virtual void OnConnectionError(int error) OVERRIDE;
+ virtual void OnConnectionError(int error) override;
private:
typedef std::pair<std::string, uint16> ListenerKey;
@@ -176,17 +176,17 @@
virtual scoped_ptr<MDnsListener> CreateListener(
uint16 rrtype,
const std::string& name,
- MDnsListener::Delegate* delegate) OVERRIDE;
+ MDnsListener::Delegate* delegate) override;
virtual scoped_ptr<MDnsTransaction> CreateTransaction(
uint16 rrtype,
const std::string& name,
int flags,
- const MDnsTransaction::ResultCallback& callback) OVERRIDE;
+ const MDnsTransaction::ResultCallback& callback) override;
- virtual bool StartListening(MDnsSocketFactory* socket_factory) OVERRIDE;
- virtual void StopListening() OVERRIDE;
- virtual bool IsListening() const OVERRIDE;
+ virtual bool StartListening(MDnsSocketFactory* socket_factory) override;
+ virtual void StopListening() override;
+ virtual bool IsListening() const override;
Core* core() { return core_.get(); }
@@ -207,14 +207,14 @@
virtual ~MDnsListenerImpl();
// MDnsListener implementation:
- virtual bool Start() OVERRIDE;
+ virtual bool Start() override;
// Actively refresh any received records.
- virtual void SetActiveRefresh(bool active_refresh) OVERRIDE;
+ virtual void SetActiveRefresh(bool active_refresh) override;
- virtual const std::string& GetName() const OVERRIDE;
+ virtual const std::string& GetName() const override;
- virtual uint16 GetType() const OVERRIDE;
+ virtual uint16 GetType() const override;
MDnsListener::Delegate* delegate() { return delegate_; }
@@ -255,17 +255,17 @@
virtual ~MDnsTransactionImpl();
// MDnsTransaction implementation:
- virtual bool Start() OVERRIDE;
+ virtual bool Start() override;
- virtual const std::string& GetName() const OVERRIDE;
- virtual uint16 GetType() const OVERRIDE;
+ virtual const std::string& GetName() const override;
+ virtual uint16 GetType() const override;
// MDnsListener::Delegate implementation:
virtual void OnRecordUpdate(MDnsListener::UpdateType update,
- const RecordParsed* record) OVERRIDE;
- virtual void OnNsecRecord(const std::string& name, unsigned type) OVERRIDE;
+ const RecordParsed* record) override;
+ virtual void OnNsecRecord(const std::string& name, unsigned type) override;
- virtual void OnCachePurged() OVERRIDE;
+ virtual void OnCachePurged() override;
private:
bool is_active() { return !callback_.is_null(); }
diff --git a/net/dns/mdns_client_unittest.cc b/net/dns/mdns_client_unittest.cc
index a7a3c03..4b2e7d5 100644
--- a/net/dns/mdns_client_unittest.cc
+++ b/net/dns/mdns_client_unittest.cc
@@ -391,7 +391,7 @@
class MDnsTest : public ::testing::Test {
public:
- virtual void SetUp() OVERRIDE;
+ virtual void SetUp() override;
void DeleteTransaction();
void DeleteBothListeners();
void RunFor(base::TimeDelta time_period);
@@ -1057,7 +1057,7 @@
class SimpleMockSocketFactory : public MDnsSocketFactory {
public:
virtual void CreateSockets(
- ScopedVector<DatagramServerSocket>* sockets) OVERRIDE {
+ ScopedVector<DatagramServerSocket>* sockets) override {
sockets->clear();
sockets->swap(sockets_);
}
@@ -1088,7 +1088,7 @@
protected:
// Follow successful connection initialization.
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
socket_ipv4_ = new MockMDnsDatagramServerSocket(ADDRESS_FAMILY_IPV4);
socket_ipv6_ = new MockMDnsDatagramServerSocket(ADDRESS_FAMILY_IPV6);
factory_.PushSocket(socket_ipv6_);
@@ -1160,7 +1160,7 @@
class MDnsConnectionSendTest : public MDnsConnectionTest {
protected:
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
MDnsConnectionTest::SetUp();
EXPECT_CALL(*socket_ipv4_, RecvFrom(_, _, _, _))
.WillOnce(Return(ERR_IO_PENDING));
diff --git a/net/dns/mock_host_resolver.h b/net/dns/mock_host_resolver.h
index 3593fbd..9d5339f 100644
--- a/net/dns/mock_host_resolver.h
+++ b/net/dns/mock_host_resolver.h
@@ -79,12 +79,12 @@
AddressList* addresses,
const CompletionCallback& callback,
RequestHandle* out_req,
- const BoundNetLog& net_log) OVERRIDE;
+ const BoundNetLog& net_log) override;
virtual int ResolveFromCache(const RequestInfo& info,
AddressList* addresses,
- const BoundNetLog& net_log) OVERRIDE;
- virtual void CancelRequest(RequestHandle req) OVERRIDE;
- virtual HostCache* GetHostCache() OVERRIDE;
+ const BoundNetLog& net_log) override;
+ virtual void CancelRequest(RequestHandle req) override;
+ virtual HostCache* GetHostCache() override;
// Resolves all pending requests. It is only valid to invoke this if
// set_ondemand_mode was set before. The requests are resolved asynchronously,
@@ -206,7 +206,7 @@
AddressFamily address_family,
HostResolverFlags host_resolver_flags,
AddressList* addrlist,
- int* os_error) OVERRIDE;
+ int* os_error) override;
private:
struct Rule;
@@ -228,11 +228,11 @@
AddressList* addresses,
const CompletionCallback& callback,
RequestHandle* out_req,
- const BoundNetLog& net_log) OVERRIDE;
+ const BoundNetLog& net_log) override;
virtual int ResolveFromCache(const RequestInfo& info,
AddressList* addresses,
- const BoundNetLog& net_log) OVERRIDE;
- virtual void CancelRequest(RequestHandle req) OVERRIDE {}
+ const BoundNetLog& net_log) override;
+ virtual void CancelRequest(RequestHandle req) override {}
};
// This class sets the default HostResolverProc for a particular scope. The
diff --git a/net/dns/mock_mdns_socket_factory.h b/net/dns/mock_mdns_socket_factory.h
index 1ecc4be..6278661 100644
--- a/net/dns/mock_mdns_socket_factory.h
+++ b/net/dns/mock_mdns_socket_factory.h
@@ -27,7 +27,7 @@
const CompletionCallback& callback));
virtual int SendTo(IOBuffer* buf, int buf_len, const IPEndPoint& address,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
MOCK_METHOD3(SendToInternal, int(const std::string& packet,
const std::string address,
@@ -39,7 +39,7 @@
MOCK_METHOD0(Close, void());
MOCK_CONST_METHOD1(GetPeerAddress, int(IPEndPoint* address));
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE;
+ virtual int GetLocalAddress(IPEndPoint* address) const override;
MOCK_CONST_METHOD0(NetLog, const BoundNetLog&());
MOCK_METHOD0(AllowAddressReuse, void());
@@ -75,7 +75,7 @@
virtual ~MockMDnsSocketFactory();
virtual void CreateSockets(
- ScopedVector<DatagramServerSocket>* sockets) OVERRIDE;
+ ScopedVector<DatagramServerSocket>* sockets) override;
void SimulateReceive(const uint8* packet, int size);
diff --git a/net/dns/notify_watcher_mac.h b/net/dns/notify_watcher_mac.h
index 01375d5..0951c2f 100644
--- a/net/dns/notify_watcher_mac.h
+++ b/net/dns/notify_watcher_mac.h
@@ -31,8 +31,8 @@
private:
// MessageLoopForIO::Watcher:
- virtual void OnFileCanReadWithoutBlocking(int fd) OVERRIDE;
- virtual void OnFileCanWriteWithoutBlocking(int fd) OVERRIDE {}
+ virtual void OnFileCanReadWithoutBlocking(int fd) override;
+ virtual void OnFileCanWriteWithoutBlocking(int fd) override {}
int notify_fd_;
int notify_token_;
diff --git a/net/dns/record_rdata.h b/net/dns/record_rdata.h
index def8e33..09a082f 100644
--- a/net/dns/record_rdata.h
+++ b/net/dns/record_rdata.h
@@ -48,8 +48,8 @@
static scoped_ptr<SrvRecordRdata> Create(const base::StringPiece& data,
const DnsRecordParser& parser);
- virtual bool IsEqual(const RecordRdata* other) const OVERRIDE;
- virtual uint16 Type() const OVERRIDE;
+ virtual bool IsEqual(const RecordRdata* other) const override;
+ virtual uint16 Type() const override;
uint16 priority() const { return priority_; }
uint16 weight() const { return weight_; }
@@ -78,8 +78,8 @@
virtual ~ARecordRdata();
static scoped_ptr<ARecordRdata> Create(const base::StringPiece& data,
const DnsRecordParser& parser);
- virtual bool IsEqual(const RecordRdata* other) const OVERRIDE;
- virtual uint16 Type() const OVERRIDE;
+ virtual bool IsEqual(const RecordRdata* other) const override;
+ virtual uint16 Type() const override;
const IPAddressNumber& address() const { return address_; }
@@ -100,8 +100,8 @@
virtual ~AAAARecordRdata();
static scoped_ptr<AAAARecordRdata> Create(const base::StringPiece& data,
const DnsRecordParser& parser);
- virtual bool IsEqual(const RecordRdata* other) const OVERRIDE;
- virtual uint16 Type() const OVERRIDE;
+ virtual bool IsEqual(const RecordRdata* other) const override;
+ virtual uint16 Type() const override;
const IPAddressNumber& address() const { return address_; }
@@ -122,8 +122,8 @@
virtual ~CnameRecordRdata();
static scoped_ptr<CnameRecordRdata> Create(const base::StringPiece& data,
const DnsRecordParser& parser);
- virtual bool IsEqual(const RecordRdata* other) const OVERRIDE;
- virtual uint16 Type() const OVERRIDE;
+ virtual bool IsEqual(const RecordRdata* other) const override;
+ virtual uint16 Type() const override;
std::string cname() const { return cname_; }
@@ -144,8 +144,8 @@
virtual ~PtrRecordRdata();
static scoped_ptr<PtrRecordRdata> Create(const base::StringPiece& data,
const DnsRecordParser& parser);
- virtual bool IsEqual(const RecordRdata* other) const OVERRIDE;
- virtual uint16 Type() const OVERRIDE;
+ virtual bool IsEqual(const RecordRdata* other) const override;
+ virtual uint16 Type() const override;
std::string ptrdomain() const { return ptrdomain_; }
@@ -167,8 +167,8 @@
virtual ~TxtRecordRdata();
static scoped_ptr<TxtRecordRdata> Create(const base::StringPiece& data,
const DnsRecordParser& parser);
- virtual bool IsEqual(const RecordRdata* other) const OVERRIDE;
- virtual uint16 Type() const OVERRIDE;
+ virtual bool IsEqual(const RecordRdata* other) const override;
+ virtual uint16 Type() const override;
const std::vector<std::string>& texts() const { return texts_; }
@@ -191,8 +191,8 @@
virtual ~NsecRecordRdata();
static scoped_ptr<NsecRecordRdata> Create(const base::StringPiece& data,
const DnsRecordParser& parser);
- virtual bool IsEqual(const RecordRdata* other) const OVERRIDE;
- virtual uint16 Type() const OVERRIDE;
+ virtual bool IsEqual(const RecordRdata* other) const override;
+ virtual uint16 Type() const override;
// Length of the bitmap in bits.
unsigned bitmap_length() const { return bitmap_.size() * 8; }
diff --git a/net/dns/serial_worker_unittest.cc b/net/dns/serial_worker_unittest.cc
index 442526f..c670a75 100644
--- a/net/dns/serial_worker_unittest.cc
+++ b/net/dns/serial_worker_unittest.cc
@@ -21,11 +21,11 @@
public:
explicit TestSerialWorker(SerialWorkerTest* t)
: test_(t) {}
- virtual void DoWork() OVERRIDE {
+ virtual void DoWork() override {
ASSERT_TRUE(test_);
test_->OnWork();
}
- virtual void OnWorkFinished() OVERRIDE {
+ virtual void OnWorkFinished() override {
ASSERT_TRUE(test_);
test_->OnWorkFinished();
}
@@ -96,12 +96,12 @@
}
// test::Test methods
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
message_loop_ = base::MessageLoop::current();
worker_ = new TestSerialWorker(this);
}
- virtual void TearDown() OVERRIDE {
+ virtual void TearDown() override {
// Cancel the worker to catch if it makes a late DoWork call.
worker_->Cancel();
// Check if OnWork is stalled.
diff --git a/net/dns/single_request_host_resolver_unittest.cc b/net/dns/single_request_host_resolver_unittest.cc
index cc20bf3..7b09193 100644
--- a/net/dns/single_request_host_resolver_unittest.cc
+++ b/net/dns/single_request_host_resolver_unittest.cc
@@ -35,7 +35,7 @@
AddressList* addresses,
const CompletionCallback& callback,
RequestHandle* out_req,
- const BoundNetLog& net_log) OVERRIDE {
+ const BoundNetLog& net_log) override {
EXPECT_FALSE(has_outstanding_request());
outstanding_request_ = reinterpret_cast<RequestHandle>(0x1234);
*out_req = outstanding_request_;
@@ -47,12 +47,12 @@
virtual int ResolveFromCache(const RequestInfo& info,
AddressList* addresses,
- const BoundNetLog& net_log) OVERRIDE {
+ const BoundNetLog& net_log) override {
NOTIMPLEMENTED();
return ERR_UNEXPECTED;
}
- virtual void CancelRequest(RequestHandle req) OVERRIDE {
+ virtual void CancelRequest(RequestHandle req) override {
EXPECT_TRUE(has_outstanding_request());
EXPECT_EQ(req, outstanding_request_);
outstanding_request_ = NULL;
diff --git a/net/extras/sqlite/sqlite_channel_id_store.h b/net/extras/sqlite/sqlite_channel_id_store.h
index 9d032a3..e743ba6 100644
--- a/net/extras/sqlite/sqlite_channel_id_store.h
+++ b/net/extras/sqlite/sqlite_channel_id_store.h
@@ -36,12 +36,12 @@
const scoped_refptr<base::SequencedTaskRunner>& background_task_runner);
// DefaultChannelIDStore::PersistentStore:
- virtual void Load(const LoadedCallback& loaded_callback) OVERRIDE;
+ virtual void Load(const LoadedCallback& loaded_callback) override;
virtual void AddChannelID(
- const DefaultChannelIDStore::ChannelID& channel_id) OVERRIDE;
+ const DefaultChannelIDStore::ChannelID& channel_id) override;
virtual void DeleteChannelID(
- const DefaultChannelIDStore::ChannelID& channel_id) OVERRIDE;
- virtual void SetForceKeepSessionState() OVERRIDE;
+ const DefaultChannelIDStore::ChannelID& channel_id) override;
+ virtual void SetForceKeepSessionState() override;
// Delete channel ids from servers in |server_identifiers|.
void DeleteAllInList(const std::list<std::string>& server_identifiers);
diff --git a/net/filter/gzip_filter.h b/net/filter/gzip_filter.h
index 0ae284a..07b7821 100644
--- a/net/filter/gzip_filter.h
+++ b/net/filter/gzip_filter.h
@@ -49,7 +49,7 @@
// return. For example, the internal zlib may process some pre-filter data
// but not produce output yet.
virtual FilterStatus ReadFilteredData(char* dest_buffer,
- int* dest_len) OVERRIDE;
+ int* dest_len) override;
private:
enum DecodingStatus {
diff --git a/net/filter/mock_filter_context.h b/net/filter/mock_filter_context.h
index a68f456..bdef812 100644
--- a/net/filter/mock_filter_context.h
+++ b/net/filter/mock_filter_context.h
@@ -41,37 +41,37 @@
// of those interfaces as coding errors.
void NukeUnstableInterfaces();
- virtual bool GetMimeType(std::string* mime_type) const OVERRIDE;
+ virtual bool GetMimeType(std::string* mime_type) const override;
// What URL was used to access this data?
// Return false if gurl is not present.
- virtual bool GetURL(GURL* gurl) const OVERRIDE;
+ virtual bool GetURL(GURL* gurl) const override;
// What Content-Disposition did the server supply for this data?
// Return false if Content-Disposition was not present.
- virtual bool GetContentDisposition(std::string* disposition) const OVERRIDE;
+ virtual bool GetContentDisposition(std::string* disposition) const override;
// What was this data requested from a server?
- virtual base::Time GetRequestTime() const OVERRIDE;
+ virtual base::Time GetRequestTime() const override;
// Is data supplied from cache, or fresh across the net?
- virtual bool IsCachedContent() const OVERRIDE;
+ virtual bool IsCachedContent() const override;
// Is this a download?
- virtual bool IsDownload() const OVERRIDE;
+ virtual bool IsDownload() const override;
// Was this data flagged as a response to a request with an SDCH dictionary?
- virtual bool SdchResponseExpected() const OVERRIDE;
+ virtual bool SdchResponseExpected() const override;
// How many bytes were fed to filter(s) so far?
- virtual int64 GetByteReadCount() const OVERRIDE;
+ virtual int64 GetByteReadCount() const override;
- virtual int GetResponseCode() const OVERRIDE;
+ virtual int GetResponseCode() const override;
// The URLRequestContext associated with the request.
- virtual const URLRequestContext* GetURLRequestContext() const OVERRIDE;
+ virtual const URLRequestContext* GetURLRequestContext() const override;
- virtual void RecordPacketStats(StatisticSelector statistic) const OVERRIDE {}
+ virtual void RecordPacketStats(StatisticSelector statistic) const override {}
private:
int buffer_size_;
diff --git a/net/filter/sdch_filter.h b/net/filter/sdch_filter.h
index 3cea340..861a9ae 100644
--- a/net/filter/sdch_filter.h
+++ b/net/filter/sdch_filter.h
@@ -41,7 +41,7 @@
// destination buffer. Upon exit, *dest_len is the actual number of chars
// written into the destination buffer.
virtual FilterStatus ReadFilteredData(char* dest_buffer,
- int* dest_len) OVERRIDE;
+ int* dest_len) override;
private:
// Internal status. Once we enter an error state, we stop processing data.
diff --git a/net/ftp/ftp_network_layer.h b/net/ftp/ftp_network_layer.h
index 6040d02..6242f74 100644
--- a/net/ftp/ftp_network_layer.h
+++ b/net/ftp/ftp_network_layer.h
@@ -24,8 +24,8 @@
static FtpTransactionFactory* CreateFactory(HostResolver* host_resolver);
// FtpTransactionFactory methods:
- virtual FtpTransaction* CreateTransaction() OVERRIDE;
- virtual void Suspend(bool suspend) OVERRIDE;
+ virtual FtpTransaction* CreateTransaction() override;
+ virtual void Suspend(bool suspend) override;
private:
scoped_refptr<FtpNetworkSession> session_;
diff --git a/net/ftp/ftp_network_transaction.h b/net/ftp/ftp_network_transaction.h
index 5eb6aae..ee0f28a 100644
--- a/net/ftp/ftp_network_transaction.h
+++ b/net/ftp/ftp_network_transaction.h
@@ -38,14 +38,14 @@
// FtpTransaction methods:
virtual int Start(const FtpRequestInfo* request_info,
const CompletionCallback& callback,
- const BoundNetLog& net_log) OVERRIDE;
+ const BoundNetLog& net_log) override;
virtual int RestartWithAuth(const AuthCredentials& credentials,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int Read(IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE;
- virtual const FtpResponseInfo* GetResponseInfo() const OVERRIDE;
- virtual LoadState GetLoadState() const OVERRIDE;
- virtual uint64 GetUploadProgress() const OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual const FtpResponseInfo* GetResponseInfo() const override;
+ virtual LoadState GetLoadState() const override;
+ virtual uint64 GetUploadProgress() const override;
private:
FRIEND_TEST_ALL_PREFIXES(FtpNetworkTransactionTest,
diff --git a/net/ftp/ftp_network_transaction_unittest.cc b/net/ftp/ftp_network_transaction_unittest.cc
index c058d38..de407d5 100644
--- a/net/ftp/ftp_network_transaction_unittest.cc
+++ b/net/ftp/ftp_network_transaction_unittest.cc
@@ -63,7 +63,7 @@
Init();
}
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE {
+ virtual MockWriteResult OnWrite(const std::string& data) override {
if (InjectFault())
return MockWriteResult(ASYNC, data.length());
switch (state()) {
@@ -131,7 +131,7 @@
return state_;
}
- virtual void Reset() OVERRIDE {
+ virtual void Reset() override {
DynamicSocketDataProvider::Reset();
Init();
}
@@ -205,7 +205,7 @@
FtpSocketDataProviderDirectoryListing() {
}
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE {
+ virtual MockWriteResult OnWrite(const std::string& data) override {
if (InjectFault())
return MockWriteResult(ASYNC, data.length());
switch (state()) {
@@ -232,7 +232,7 @@
FtpSocketDataProviderDirectoryListingWithPasvFallback() {
}
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE {
+ virtual MockWriteResult OnWrite(const std::string& data) override {
if (InjectFault())
return MockWriteResult(ASYNC, data.length());
switch (state()) {
@@ -258,7 +258,7 @@
FtpSocketDataProviderDirectoryListingZeroSize() {
}
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE {
+ virtual MockWriteResult OnWrite(const std::string& data) override {
if (InjectFault())
return MockWriteResult(ASYNC, data.length());
switch (state()) {
@@ -278,7 +278,7 @@
FtpSocketDataProviderVMSDirectoryListing() {
}
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE {
+ virtual MockWriteResult OnWrite(const std::string& data) override {
if (InjectFault())
return MockWriteResult(ASYNC, data.length());
switch (state()) {
@@ -312,7 +312,7 @@
FtpSocketDataProviderVMSDirectoryListingRootDirectory() {
}
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE {
+ virtual MockWriteResult OnWrite(const std::string& data) override {
if (InjectFault())
return MockWriteResult(ASYNC, data.length());
switch (state()) {
@@ -348,7 +348,7 @@
FtpSocketDataProviderFileDownloadWithFileTypecode() {
}
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE {
+ virtual MockWriteResult OnWrite(const std::string& data) override {
if (InjectFault())
return MockWriteResult(ASYNC, data.length());
switch (state()) {
@@ -371,7 +371,7 @@
FtpSocketDataProviderFileDownload() {
}
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE {
+ virtual MockWriteResult OnWrite(const std::string& data) override {
if (InjectFault())
return MockWriteResult(ASYNC, data.length());
switch (state()) {
@@ -398,7 +398,7 @@
FtpSocketDataProviderFileNotFound() {
}
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE {
+ virtual MockWriteResult OnWrite(const std::string& data) override {
if (InjectFault())
return MockWriteResult(ASYNC, data.length());
switch (state()) {
@@ -428,7 +428,7 @@
FtpSocketDataProviderFileDownloadWithPasvFallback() {
}
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE {
+ virtual MockWriteResult OnWrite(const std::string& data) override {
if (InjectFault())
return MockWriteResult(ASYNC, data.length());
switch (state()) {
@@ -453,7 +453,7 @@
FtpSocketDataProviderFileDownloadZeroSize() {
}
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE {
+ virtual MockWriteResult OnWrite(const std::string& data) override {
if (InjectFault())
return MockWriteResult(ASYNC, data.length());
switch (state()) {
@@ -479,7 +479,7 @@
FtpSocketDataProviderFileDownloadCWD451() {
}
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE {
+ virtual MockWriteResult OnWrite(const std::string& data) override {
if (InjectFault())
return MockWriteResult(ASYNC, data.length());
switch (state()) {
@@ -501,7 +501,7 @@
FtpSocketDataProviderVMSFileDownload() {
}
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE {
+ virtual MockWriteResult OnWrite(const std::string& data) override {
if (InjectFault())
return MockWriteResult(ASYNC, data.length());
switch (state()) {
@@ -536,7 +536,7 @@
FtpSocketDataProviderEscaping() {
}
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE {
+ virtual MockWriteResult OnWrite(const std::string& data) override {
if (InjectFault())
return MockWriteResult(ASYNC, data.length());
switch (state()) {
@@ -565,7 +565,7 @@
FtpSocketDataProviderFileDownloadTransferStarting() {
}
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE {
+ virtual MockWriteResult OnWrite(const std::string& data) override {
if (InjectFault())
return MockWriteResult(ASYNC, data.length());
switch (state()) {
@@ -589,7 +589,7 @@
FtpSocketDataProviderDirectoryListingTransferStarting() {
}
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE {
+ virtual MockWriteResult OnWrite(const std::string& data) override {
if (InjectFault())
return MockWriteResult(ASYNC, data.length());
switch (state()) {
@@ -614,7 +614,7 @@
FtpSocketDataProviderFileDownloadInvalidResponse() {
}
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE {
+ virtual MockWriteResult OnWrite(const std::string& data) override {
if (InjectFault())
return MockWriteResult(ASYNC, data.length());
switch (state()) {
@@ -648,7 +648,7 @@
epsv_response_length_(epsv_response_length),
expected_state_(expected_state) {}
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE {
+ virtual MockWriteResult OnWrite(const std::string& data) override {
if (InjectFault())
return MockWriteResult(ASYNC, data.length());
switch (state()) {
@@ -676,7 +676,7 @@
expected_state_(expected_state) {
}
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE {
+ virtual MockWriteResult OnWrite(const std::string& data) override {
if (InjectFault())
return MockWriteResult(ASYNC, data.length());
switch (state()) {
@@ -701,7 +701,7 @@
expected_state_(expected_state) {
}
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE {
+ virtual MockWriteResult OnWrite(const std::string& data) override {
if (InjectFault())
return MockWriteResult(ASYNC, data.length());
switch (state()) {
@@ -728,7 +728,7 @@
expected_password_(expected_password) {
}
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE {
+ virtual MockWriteResult OnWrite(const std::string& data) override {
if (InjectFault())
return MockWriteResult(ASYNC, data.length());
switch (state()) {
@@ -755,7 +755,7 @@
FtpSocketDataProviderCloseConnection() {
}
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE {
+ virtual MockWriteResult OnWrite(const std::string& data) override {
if (InjectFault())
return MockWriteResult(ASYNC, data.length());
switch (state()) {
diff --git a/net/http/disk_cache_based_quic_server_info.h b/net/http/disk_cache_based_quic_server_info.h
index b0bb15c..7707037 100644
--- a/net/http/disk_cache_based_quic_server_info.h
+++ b/net/http/disk_cache_based_quic_server_info.h
@@ -31,11 +31,11 @@
HttpCache* http_cache);
// QuicServerInfo implementation.
- virtual void Start() OVERRIDE;
- virtual int WaitForDataReady(const CompletionCallback& callback) OVERRIDE;
- virtual bool IsDataReady() OVERRIDE;
- virtual bool IsReadyToPersist() OVERRIDE;
- virtual void Persist() OVERRIDE;
+ virtual void Start() override;
+ virtual int WaitForDataReady(const CompletionCallback& callback) override;
+ virtual bool IsDataReady() override;
+ virtual bool IsReadyToPersist() override;
+ virtual void Persist() override;
private:
struct CacheOperationDataShim;
diff --git a/net/http/failing_http_transaction_factory.cc b/net/http/failing_http_transaction_factory.cc
index 23a184f..0b97aa2 100644
--- a/net/http/failing_http_transaction_factory.cc
+++ b/net/http/failing_http_transaction_factory.cc
@@ -34,38 +34,38 @@
// HttpTransaction
virtual int Start(const HttpRequestInfo* request_info,
const CompletionCallback& callback,
- const BoundNetLog& net_log) OVERRIDE;
+ const BoundNetLog& net_log) override;
virtual int RestartIgnoringLastError(
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int RestartWithCertificate(
X509Certificate* client_cert,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int RestartWithAuth(
const AuthCredentials& credentials,
- const CompletionCallback& callback) OVERRIDE;
- virtual bool IsReadyToRestartForAuth() OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual bool IsReadyToRestartForAuth() override;
virtual int Read(IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE;
- virtual void StopCaching() OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual void StopCaching() override;
virtual bool GetFullRequestHeaders(
- HttpRequestHeaders* headers) const OVERRIDE;
- virtual int64 GetTotalReceivedBytes() const OVERRIDE;
- virtual void DoneReading() OVERRIDE;
- virtual const HttpResponseInfo* GetResponseInfo() const OVERRIDE;
- virtual LoadState GetLoadState() const OVERRIDE;
- virtual UploadProgress GetUploadProgress() const OVERRIDE;
+ HttpRequestHeaders* headers) const override;
+ virtual int64 GetTotalReceivedBytes() const override;
+ virtual void DoneReading() override;
+ virtual const HttpResponseInfo* GetResponseInfo() const override;
+ virtual LoadState GetLoadState() const override;
+ virtual UploadProgress GetUploadProgress() const override;
virtual void SetQuicServerInfo(
- net::QuicServerInfo* quic_server_info) OVERRIDE;
+ net::QuicServerInfo* quic_server_info) override;
virtual bool GetLoadTimingInfo(
- LoadTimingInfo* load_timing_info) const OVERRIDE;
- virtual void SetPriority(RequestPriority priority) OVERRIDE;
+ LoadTimingInfo* load_timing_info) const override;
+ virtual void SetPriority(RequestPriority priority) override;
virtual void SetWebSocketHandshakeStreamCreateHelper(
- WebSocketHandshakeStreamBase::CreateHelper* create_helper) OVERRIDE;
+ WebSocketHandshakeStreamBase::CreateHelper* create_helper) override;
virtual void SetBeforeNetworkStartCallback(
- const BeforeNetworkStartCallback& callback) OVERRIDE;
+ const BeforeNetworkStartCallback& callback) override;
virtual void SetBeforeProxyHeadersSentCallback(
- const BeforeProxyHeadersSentCallback& callback) OVERRIDE;
- virtual int ResumeNetworkStart() OVERRIDE;
+ const BeforeProxyHeadersSentCallback& callback) override;
+ virtual int ResumeNetworkStart() override;
private:
Error error_;
diff --git a/net/http/failing_http_transaction_factory.h b/net/http/failing_http_transaction_factory.h
index 84d87a7..8a785f5 100644
--- a/net/http/failing_http_transaction_factory.h
+++ b/net/http/failing_http_transaction_factory.h
@@ -28,9 +28,9 @@
// HttpTransactionFactory:
virtual int CreateTransaction(
RequestPriority priority,
- scoped_ptr<HttpTransaction>* trans) OVERRIDE;
- virtual HttpCache* GetCache() OVERRIDE;
- virtual HttpNetworkSession* GetSession() OVERRIDE;
+ scoped_ptr<HttpTransaction>* trans) override;
+ virtual HttpCache* GetCache() override;
+ virtual HttpNetworkSession* GetSession() override;
private:
HttpNetworkSession* session_;
diff --git a/net/http/http_auth_cache_unittest.cc b/net/http/http_auth_cache_unittest.cc
index e925c71..4002bab 100644
--- a/net/http/http_auth_cache_unittest.cc
+++ b/net/http/http_auth_cache_unittest.cc
@@ -33,19 +33,19 @@
}
virtual HttpAuth::AuthorizationResult HandleAnotherChallenge(
- HttpAuthChallengeTokenizer* challenge) OVERRIDE {
+ HttpAuthChallengeTokenizer* challenge) override {
return HttpAuth::AUTHORIZATION_RESULT_REJECT;
}
protected:
- virtual bool Init(HttpAuthChallengeTokenizer* challenge) OVERRIDE {
+ virtual bool Init(HttpAuthChallengeTokenizer* challenge) override {
return false; // Unused.
}
virtual int GenerateAuthTokenImpl(const AuthCredentials*,
const HttpRequestInfo*,
const CompletionCallback& callback,
- std::string* auth_token) OVERRIDE {
+ std::string* auth_token) override {
*auth_token = "mock-credentials";
return OK;
}
diff --git a/net/http/http_auth_controller_unittest.cc b/net/http/http_auth_controller_unittest.cc
index 1a59b8d..306cabd 100644
--- a/net/http/http_auth_controller_unittest.cc
+++ b/net/http/http_auth_controller_unittest.cc
@@ -128,7 +128,7 @@
}
protected:
- virtual bool Init(HttpAuthChallengeTokenizer* challenge) OVERRIDE {
+ virtual bool Init(HttpAuthChallengeTokenizer* challenge) override {
HttpAuthHandlerMock::Init(challenge);
set_allows_default_credentials(true);
set_allows_explicit_credentials(false);
@@ -146,7 +146,7 @@
virtual int GenerateAuthTokenImpl(const AuthCredentials* credentials,
const HttpRequestInfo* request,
const CompletionCallback& callback,
- std::string* auth_token) OVERRIDE {
+ std::string* auth_token) override {
int result =
HttpAuthHandlerMock::GenerateAuthTokenImpl(credentials,
request, callback,
diff --git a/net/http/http_auth_filter.h b/net/http/http_auth_filter.h
index 9f09ac1..419b8af 100644
--- a/net/http/http_auth_filter.h
+++ b/net/http/http_auth_filter.h
@@ -46,7 +46,7 @@
const ProxyBypassRules& rules() const { return rules_; }
// HttpAuthFilter methods:
- virtual bool IsValid(const GURL& url, HttpAuth::Target target) const OVERRIDE;
+ virtual bool IsValid(const GURL& url, HttpAuth::Target target) const override;
private:
// Installs the whitelist.
diff --git a/net/http/http_auth_gssapi_posix.h b/net/http/http_auth_gssapi_posix.h
index 2e7b99b..41a1805 100644
--- a/net/http/http_auth_gssapi_posix.h
+++ b/net/http/http_auth_gssapi_posix.h
@@ -112,30 +112,30 @@
virtual ~GSSAPISharedLibrary();
// GSSAPILibrary methods:
- virtual bool Init() OVERRIDE;
+ virtual bool Init() override;
virtual OM_uint32 import_name(
OM_uint32* minor_status,
const gss_buffer_t input_name_buffer,
const gss_OID input_name_type,
- gss_name_t* output_name) OVERRIDE;
+ gss_name_t* output_name) override;
virtual OM_uint32 release_name(
OM_uint32* minor_status,
- gss_name_t* input_name) OVERRIDE;
+ gss_name_t* input_name) override;
virtual OM_uint32 release_buffer(
OM_uint32* minor_status,
- gss_buffer_t buffer) OVERRIDE;
+ gss_buffer_t buffer) override;
virtual OM_uint32 display_name(
OM_uint32* minor_status,
const gss_name_t input_name,
gss_buffer_t output_name_buffer,
- gss_OID* output_name_type) OVERRIDE;
+ gss_OID* output_name_type) override;
virtual OM_uint32 display_status(
OM_uint32* minor_status,
OM_uint32 status_value,
int status_type,
const gss_OID mech_type,
OM_uint32* message_contex,
- gss_buffer_t status_string) OVERRIDE;
+ gss_buffer_t status_string) override;
virtual OM_uint32 init_sec_context(
OM_uint32* minor_status,
const gss_cred_id_t initiator_cred_handle,
@@ -149,18 +149,18 @@
gss_OID* actual_mech_type,
gss_buffer_t output_token,
OM_uint32* ret_flags,
- OM_uint32* time_rec) OVERRIDE;
+ OM_uint32* time_rec) override;
virtual OM_uint32 wrap_size_limit(
OM_uint32* minor_status,
const gss_ctx_id_t context_handle,
int conf_req_flag,
gss_qop_t qop_req,
OM_uint32 req_output_size,
- OM_uint32* max_input_size) OVERRIDE;
+ OM_uint32* max_input_size) override;
virtual OM_uint32 delete_sec_context(
OM_uint32* minor_status,
gss_ctx_id_t* context_handle,
- gss_buffer_t output_token) OVERRIDE;
+ gss_buffer_t output_token) override;
virtual OM_uint32 inquire_context(
OM_uint32* minor_status,
const gss_ctx_id_t context_handle,
@@ -170,7 +170,7 @@
gss_OID* mech_type,
OM_uint32* ctx_flags,
int* locally_initiated,
- int* open) OVERRIDE;
+ int* open) override;
private:
typedef typeof(&gss_import_name) gss_import_name_type;
diff --git a/net/http/http_auth_handler_basic.h b/net/http/http_auth_handler_basic.h
index 5d786f9..f718786 100644
--- a/net/http/http_auth_handler_basic.h
+++ b/net/http/http_auth_handler_basic.h
@@ -28,19 +28,19 @@
CreateReason reason,
int digest_nonce_count,
const BoundNetLog& net_log,
- scoped_ptr<HttpAuthHandler>* handler) OVERRIDE;
+ scoped_ptr<HttpAuthHandler>* handler) override;
};
virtual HttpAuth::AuthorizationResult HandleAnotherChallenge(
- HttpAuthChallengeTokenizer* challenge) OVERRIDE;
+ HttpAuthChallengeTokenizer* challenge) override;
protected:
- virtual bool Init(HttpAuthChallengeTokenizer* challenge) OVERRIDE;
+ virtual bool Init(HttpAuthChallengeTokenizer* challenge) override;
virtual int GenerateAuthTokenImpl(const AuthCredentials* credentials,
const HttpRequestInfo* request,
const CompletionCallback& callback,
- std::string* auth_token) OVERRIDE;
+ std::string* auth_token) override;
private:
virtual ~HttpAuthHandlerBasic() {}
diff --git a/net/http/http_auth_handler_digest.h b/net/http/http_auth_handler_digest.h
index 6a960d9..ca148fe 100644
--- a/net/http/http_auth_handler_digest.h
+++ b/net/http/http_auth_handler_digest.h
@@ -38,7 +38,7 @@
class DynamicNonceGenerator : public NonceGenerator {
public:
DynamicNonceGenerator();
- virtual std::string GenerateNonce() const OVERRIDE;
+ virtual std::string GenerateNonce() const override;
private:
DISALLOW_COPY_AND_ASSIGN(DynamicNonceGenerator);
};
@@ -49,7 +49,7 @@
public:
explicit FixedNonceGenerator(const std::string& nonce);
- virtual std::string GenerateNonce() const OVERRIDE;
+ virtual std::string GenerateNonce() const override;
private:
const std::string nonce_;
@@ -71,22 +71,22 @@
CreateReason reason,
int digest_nonce_count,
const BoundNetLog& net_log,
- scoped_ptr<HttpAuthHandler>* handler) OVERRIDE;
+ scoped_ptr<HttpAuthHandler>* handler) override;
private:
scoped_ptr<const NonceGenerator> nonce_generator_;
};
virtual HttpAuth::AuthorizationResult HandleAnotherChallenge(
- HttpAuthChallengeTokenizer* challenge) OVERRIDE;
+ HttpAuthChallengeTokenizer* challenge) override;
protected:
- virtual bool Init(HttpAuthChallengeTokenizer* challenge) OVERRIDE;
+ virtual bool Init(HttpAuthChallengeTokenizer* challenge) override;
virtual int GenerateAuthTokenImpl(const AuthCredentials* credentials,
const HttpRequestInfo* request,
const CompletionCallback& callback,
- std::string* auth_token) OVERRIDE;
+ std::string* auth_token) override;
private:
FRIEND_TEST_ALL_PREFIXES(HttpAuthHandlerDigestTest, ParseChallenge);
diff --git a/net/http/http_auth_handler_factory.h b/net/http/http_auth_handler_factory.h
index e712aaf..efb432a 100644
--- a/net/http/http_auth_handler_factory.h
+++ b/net/http/http_auth_handler_factory.h
@@ -189,7 +189,7 @@
CreateReason reason,
int digest_nonce_count,
const BoundNetLog& net_log,
- scoped_ptr<HttpAuthHandler>* handler) OVERRIDE;
+ scoped_ptr<HttpAuthHandler>* handler) override;
private:
typedef std::map<std::string, HttpAuthHandlerFactory*> FactoryMap;
diff --git a/net/http/http_auth_handler_factory_unittest.cc b/net/http/http_auth_handler_factory_unittest.cc
index 06e8933..9860623 100644
--- a/net/http/http_auth_handler_factory_unittest.cc
+++ b/net/http/http_auth_handler_factory_unittest.cc
@@ -27,7 +27,7 @@
CreateReason reason,
int nonce_count,
const BoundNetLog& net_log,
- scoped_ptr<HttpAuthHandler>* handler) OVERRIDE {
+ scoped_ptr<HttpAuthHandler>* handler) override {
handler->reset();
return return_code_;
}
diff --git a/net/http/http_auth_handler_mock.h b/net/http/http_auth_handler_mock.h
index fd9885b..b903e8c 100644
--- a/net/http/http_auth_handler_mock.h
+++ b/net/http/http_auth_handler_mock.h
@@ -49,7 +49,7 @@
CreateReason reason,
int nonce_count,
const BoundNetLog& net_log,
- scoped_ptr<HttpAuthHandler>* handler) OVERRIDE;
+ scoped_ptr<HttpAuthHandler>* handler) override;
private:
ScopedVector<HttpAuthHandler> handlers_[HttpAuth::AUTH_NUM_TARGETS];
@@ -88,18 +88,18 @@
// HttpAuthHandler:
virtual HttpAuth::AuthorizationResult HandleAnotherChallenge(
- HttpAuthChallengeTokenizer* challenge) OVERRIDE;
- virtual bool NeedsIdentity() OVERRIDE;
- virtual bool AllowsDefaultCredentials() OVERRIDE;
- virtual bool AllowsExplicitCredentials() OVERRIDE;
+ HttpAuthChallengeTokenizer* challenge) override;
+ virtual bool NeedsIdentity() override;
+ virtual bool AllowsDefaultCredentials() override;
+ virtual bool AllowsExplicitCredentials() override;
protected:
- virtual bool Init(HttpAuthChallengeTokenizer* challenge) OVERRIDE;
+ virtual bool Init(HttpAuthChallengeTokenizer* challenge) override;
virtual int GenerateAuthTokenImpl(const AuthCredentials* credentials,
const HttpRequestInfo* request,
const CompletionCallback& callback,
- std::string* auth_token) OVERRIDE;
+ std::string* auth_token) override;
private:
void OnResolveCanonicalName();
diff --git a/net/http/http_auth_handler_negotiate.h b/net/http/http_auth_handler_negotiate.h
index 90bd16c..8ff9244 100644
--- a/net/http/http_auth_handler_negotiate.h
+++ b/net/http/http_auth_handler_negotiate.h
@@ -76,7 +76,7 @@
CreateReason reason,
int digest_nonce_count,
const BoundNetLog& net_log,
- scoped_ptr<HttpAuthHandler>* handler) OVERRIDE;
+ scoped_ptr<HttpAuthHandler>* handler) override;
private:
bool disable_cname_lookup_;
@@ -107,18 +107,18 @@
// HttpAuthHandler:
virtual HttpAuth::AuthorizationResult HandleAnotherChallenge(
- HttpAuthChallengeTokenizer* challenge) OVERRIDE;
- virtual bool NeedsIdentity() OVERRIDE;
- virtual bool AllowsDefaultCredentials() OVERRIDE;
- virtual bool AllowsExplicitCredentials() OVERRIDE;
+ HttpAuthChallengeTokenizer* challenge) override;
+ virtual bool NeedsIdentity() override;
+ virtual bool AllowsDefaultCredentials() override;
+ virtual bool AllowsExplicitCredentials() override;
protected:
- virtual bool Init(HttpAuthChallengeTokenizer* challenge) OVERRIDE;
+ virtual bool Init(HttpAuthChallengeTokenizer* challenge) override;
virtual int GenerateAuthTokenImpl(const AuthCredentials* credentials,
const HttpRequestInfo* request,
const CompletionCallback& callback,
- std::string* auth_token) OVERRIDE;
+ std::string* auth_token) override;
private:
enum State {
diff --git a/net/http/http_auth_handler_ntlm.h b/net/http/http_auth_handler_ntlm.h
index 9e2abc6..5a998ac 100644
--- a/net/http/http_auth_handler_ntlm.h
+++ b/net/http/http_auth_handler_ntlm.h
@@ -48,7 +48,7 @@
CreateReason reason,
int digest_nonce_count,
const BoundNetLog& net_log,
- scoped_ptr<HttpAuthHandler>* handler) OVERRIDE;
+ scoped_ptr<HttpAuthHandler>* handler) override;
#if defined(NTLM_SSPI)
// Set the SSPILibrary to use. Typically the only callers which need to use
// this are unit tests which pass in a mocked-out version of the SSPI
@@ -104,24 +104,24 @@
URLSecurityManager* url_security_manager);
#endif
- virtual bool NeedsIdentity() OVERRIDE;
+ virtual bool NeedsIdentity() override;
- virtual bool AllowsDefaultCredentials() OVERRIDE;
+ virtual bool AllowsDefaultCredentials() override;
virtual HttpAuth::AuthorizationResult HandleAnotherChallenge(
- HttpAuthChallengeTokenizer* challenge) OVERRIDE;
+ HttpAuthChallengeTokenizer* challenge) override;
protected:
// This function acquires a credentials handle in the SSPI implementation.
// It does nothing in the portable implementation.
int InitializeBeforeFirstChallenge();
- virtual bool Init(HttpAuthChallengeTokenizer* tok) OVERRIDE;
+ virtual bool Init(HttpAuthChallengeTokenizer* tok) override;
virtual int GenerateAuthTokenImpl(const AuthCredentials* credentials,
const HttpRequestInfo* request,
const CompletionCallback& callback,
- std::string* auth_token) OVERRIDE;
+ std::string* auth_token) override;
private:
virtual ~HttpAuthHandlerNTLM();
diff --git a/net/http/http_basic_stream.h b/net/http/http_basic_stream.h
index 00253c3..541994d 100644
--- a/net/http/http_basic_stream.h
+++ b/net/http/http_basic_stream.h
@@ -36,49 +36,49 @@
virtual int InitializeStream(const HttpRequestInfo* request_info,
RequestPriority priority,
const BoundNetLog& net_log,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int SendRequest(const HttpRequestHeaders& headers,
HttpResponseInfo* response,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
- virtual UploadProgress GetUploadProgress() const OVERRIDE;
+ virtual UploadProgress GetUploadProgress() const override;
- virtual int ReadResponseHeaders(const CompletionCallback& callback) OVERRIDE;
+ virtual int ReadResponseHeaders(const CompletionCallback& callback) override;
virtual int ReadResponseBody(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
- virtual void Close(bool not_reusable) OVERRIDE;
+ virtual void Close(bool not_reusable) override;
- virtual HttpStream* RenewStreamForAuth() OVERRIDE;
+ virtual HttpStream* RenewStreamForAuth() override;
- virtual bool IsResponseBodyComplete() const OVERRIDE;
+ virtual bool IsResponseBodyComplete() const override;
- virtual bool CanFindEndOfResponse() const OVERRIDE;
+ virtual bool CanFindEndOfResponse() const override;
- virtual bool IsConnectionReused() const OVERRIDE;
+ virtual bool IsConnectionReused() const override;
- virtual void SetConnectionReused() OVERRIDE;
+ virtual void SetConnectionReused() override;
- virtual bool IsConnectionReusable() const OVERRIDE;
+ virtual bool IsConnectionReusable() const override;
- virtual int64 GetTotalReceivedBytes() const OVERRIDE;
+ virtual int64 GetTotalReceivedBytes() const override;
virtual bool GetLoadTimingInfo(
- LoadTimingInfo* load_timing_info) const OVERRIDE;
+ LoadTimingInfo* load_timing_info) const override;
- virtual void GetSSLInfo(SSLInfo* ssl_info) OVERRIDE;
+ virtual void GetSSLInfo(SSLInfo* ssl_info) override;
virtual void GetSSLCertRequestInfo(
- SSLCertRequestInfo* cert_request_info) OVERRIDE;
+ SSLCertRequestInfo* cert_request_info) override;
- virtual bool IsSpdyHttpStream() const OVERRIDE;
+ virtual bool IsSpdyHttpStream() const override;
- virtual void Drain(HttpNetworkSession* session) OVERRIDE;
+ virtual void Drain(HttpNetworkSession* session) override;
- virtual void SetPriority(RequestPriority priority) OVERRIDE;
+ virtual void SetPriority(RequestPriority priority) override;
private:
HttpStreamParser* parser() const { return state_.parser(); }
diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc
index cbf2615..1c8e62a 100644
--- a/net/http/http_cache.cc
+++ b/net/http/http_cache.cc
@@ -23,6 +23,7 @@
#include "base/metrics/field_trial.h"
#include "base/metrics/histogram.h"
#include "base/pickle.h"
+#include "base/profiler/scoped_profile.h"
#include "base/stl_util.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
@@ -286,7 +287,7 @@
}
virtual QuicServerInfo* GetForServer(
- const QuicServerId& server_id) OVERRIDE {
+ const QuicServerId& server_id) override {
return new DiskCacheBasedQuicServerInfo(server_id, http_cache_);
}
@@ -1355,6 +1356,11 @@
void HttpCache::OnPendingOpComplete(const base::WeakPtr<HttpCache>& cache,
PendingOp* pending_op,
int rv) {
+ // TODO(vadimt): Remove ScopedProfile below once crbug.com/422516 is fixed.
+ tracked_objects::ScopedProfile tracking_profile(
+ FROM_HERE_WITH_EXPLICIT_FUNCTION(
+ "422516 HttpCache::OnPendingOpComplete"));
+
if (cache.get()) {
cache->OnIOComplete(rv, pending_op);
} else {
diff --git a/net/http/http_cache.h b/net/http/http_cache.h
index 3f59839..5e6851f 100644
--- a/net/http/http_cache.h
+++ b/net/http/http_cache.h
@@ -116,7 +116,7 @@
// BackendFactory implementation.
virtual int CreateBackend(NetLog* net_log,
scoped_ptr<disk_cache::Backend>* backend,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
private:
CacheType type_;
@@ -214,9 +214,9 @@
// HttpTransactionFactory implementation:
virtual int CreateTransaction(RequestPriority priority,
- scoped_ptr<HttpTransaction>* trans) OVERRIDE;
- virtual HttpCache* GetCache() OVERRIDE;
- virtual HttpNetworkSession* GetSession() OVERRIDE;
+ scoped_ptr<HttpTransaction>* trans) override;
+ virtual HttpCache* GetCache() override;
+ virtual HttpNetworkSession* GetSession() override;
base::WeakPtr<HttpCache> GetWeakPtr() { return weak_factory_.GetWeakPtr(); }
diff --git a/net/http/http_cache_transaction.cc b/net/http/http_cache_transaction.cc
index 5e90131..ddd0481 100644
--- a/net/http/http_cache_transaction.cc
+++ b/net/http/http_cache_transaction.cc
@@ -21,6 +21,7 @@
#include "base/metrics/field_trial.h"
#include "base/metrics/histogram.h"
#include "base/metrics/sparse_histogram.h"
+#include "base/profiler/scoped_profile.h"
#include "base/rand_util.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_piece.h"
@@ -2944,6 +2945,10 @@
}
void HttpCache::Transaction::OnIOComplete(int result) {
+ // TODO(vadimt): Remove ScopedProfile below once crbug.com/422516 is fixed.
+ tracked_objects::ScopedProfile tracking_profile(
+ FROM_HERE_WITH_EXPLICIT_FUNCTION("422516 Transaction::OnIOComplete"));
+
DoLoop(result);
}
diff --git a/net/http/http_cache_transaction.h b/net/http/http_cache_transaction.h
index b63e859..cc1f467 100644
--- a/net/http/http_cache_transaction.h
+++ b/net/http/http_cache_transaction.h
@@ -112,37 +112,37 @@
// HttpTransaction methods:
virtual int Start(const HttpRequestInfo* request_info,
const CompletionCallback& callback,
- const BoundNetLog& net_log) OVERRIDE;
+ const BoundNetLog& net_log) override;
virtual int RestartIgnoringLastError(
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int RestartWithCertificate(
X509Certificate* client_cert,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int RestartWithAuth(const AuthCredentials& credentials,
- const CompletionCallback& callback) OVERRIDE;
- virtual bool IsReadyToRestartForAuth() OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual bool IsReadyToRestartForAuth() override;
virtual int Read(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
- virtual void StopCaching() OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual void StopCaching() override;
virtual bool GetFullRequestHeaders(
- HttpRequestHeaders* headers) const OVERRIDE;
- virtual int64 GetTotalReceivedBytes() const OVERRIDE;
- virtual void DoneReading() OVERRIDE;
- virtual const HttpResponseInfo* GetResponseInfo() const OVERRIDE;
- virtual LoadState GetLoadState() const OVERRIDE;
- virtual UploadProgress GetUploadProgress(void) const OVERRIDE;
- virtual void SetQuicServerInfo(QuicServerInfo* quic_server_info) OVERRIDE;
+ HttpRequestHeaders* headers) const override;
+ virtual int64 GetTotalReceivedBytes() const override;
+ virtual void DoneReading() override;
+ virtual const HttpResponseInfo* GetResponseInfo() const override;
+ virtual LoadState GetLoadState() const override;
+ virtual UploadProgress GetUploadProgress(void) const override;
+ virtual void SetQuicServerInfo(QuicServerInfo* quic_server_info) override;
virtual bool GetLoadTimingInfo(
- LoadTimingInfo* load_timing_info) const OVERRIDE;
- virtual void SetPriority(RequestPriority priority) OVERRIDE;
+ LoadTimingInfo* load_timing_info) const override;
+ virtual void SetPriority(RequestPriority priority) override;
virtual void SetWebSocketHandshakeStreamCreateHelper(
- net::WebSocketHandshakeStreamBase::CreateHelper* create_helper) OVERRIDE;
+ net::WebSocketHandshakeStreamBase::CreateHelper* create_helper) override;
virtual void SetBeforeNetworkStartCallback(
- const BeforeNetworkStartCallback& callback) OVERRIDE;
+ const BeforeNetworkStartCallback& callback) override;
virtual void SetBeforeProxyHeadersSentCallback(
- const BeforeProxyHeadersSentCallback& callback) OVERRIDE;
- virtual int ResumeNetworkStart() OVERRIDE;
+ const BeforeProxyHeadersSentCallback& callback) override;
+ virtual int ResumeNetworkStart() override;
private:
static const size_t kNumValidationHeaders = 2;
diff --git a/net/http/http_cache_unittest.cc b/net/http/http_cache_unittest.cc
index a7a04f1..0b05057 100644
--- a/net/http/http_cache_unittest.cc
+++ b/net/http/http_cache_unittest.cc
@@ -14,6 +14,7 @@
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "net/base/cache_type.h"
+#include "net/base/elements_upload_data_stream.h"
#include "net/base/host_port_pair.h"
#include "net/base/load_flags.h"
#include "net/base/load_timing_info.h"
@@ -21,7 +22,6 @@
#include "net/base/net_errors.h"
#include "net/base/net_log_unittest.h"
#include "net/base/upload_bytes_element_reader.h"
-#include "net/base/upload_data_stream.h"
#include "net/cert/cert_status_flags.h"
#include "net/disk_cache/disk_cache.h"
#include "net/http/http_byte_range.h"
@@ -498,12 +498,12 @@
public:
virtual ~FakeWebSocketHandshakeStreamCreateHelper() {}
virtual net::WebSocketHandshakeStreamBase* CreateBasicStream(
- scoped_ptr<net::ClientSocketHandle> connect, bool using_proxy) OVERRIDE {
+ scoped_ptr<net::ClientSocketHandle> connect, bool using_proxy) override {
return NULL;
}
virtual net::WebSocketHandshakeStreamBase* CreateSpdyStream(
const base::WeakPtr<net::SpdySession>& session,
- bool use_relative_url) OVERRIDE {
+ bool use_relative_url) override {
return NULL;
}
};
@@ -2774,7 +2774,8 @@
ScopedVector<net::UploadElementReader> element_readers;
element_readers.push_back(new net::UploadBytesElementReader("hello", 5));
- net::UploadDataStream upload_data_stream(element_readers.Pass(), kUploadId);
+ net::ElementsUploadDataStream upload_data_stream(element_readers.Pass(),
+ kUploadId);
MockHttpRequest request(transaction);
request.upload_data_stream = &upload_data_stream;
@@ -2805,7 +2806,8 @@
ScopedVector<net::UploadElementReader> element_readers;
element_readers.push_back(new net::UploadBytesElementReader("hello", 5));
- net::UploadDataStream upload_data_stream(element_readers.Pass(), kUploadId);
+ net::ElementsUploadDataStream upload_data_stream(element_readers.Pass(),
+ kUploadId);
MockHttpRequest request(transaction);
request.upload_data_stream = &upload_data_stream;
@@ -2824,7 +2826,7 @@
ScopedVector<net::UploadElementReader> element_readers;
element_readers.push_back(new net::UploadBytesElementReader("hello", 5));
- net::UploadDataStream upload_data_stream(element_readers.Pass(), 1);
+ net::ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 1);
MockTransaction transaction(kSimplePOST_Transaction);
MockHttpRequest req1(transaction);
@@ -2863,7 +2865,7 @@
ScopedVector<net::UploadElementReader> element_readers;
element_readers.push_back(new net::UploadBytesElementReader("hello", 5));
- net::UploadDataStream upload_data_stream(element_readers.Pass(), 1);
+ net::ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 1);
transaction.method = "POST";
transaction.status = "HTTP/1.1 205 No Content";
@@ -2902,7 +2904,7 @@
ScopedVector<net::UploadElementReader> element_readers;
element_readers.push_back(new net::UploadBytesElementReader("hello", 5));
- net::UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ net::ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
transaction.method = "POST";
transaction.status = "HTTP/1.1 205 No Content";
@@ -2933,7 +2935,7 @@
ScopedVector<net::UploadElementReader> element_readers;
element_readers.push_back(new net::UploadBytesElementReader("hello", 5));
- net::UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ net::ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
MockTransaction transaction(kSimplePOST_Transaction);
AddMockTransaction(&transaction);
@@ -2962,7 +2964,7 @@
ScopedVector<net::UploadElementReader> element_readers;
element_readers.push_back(new net::UploadBytesElementReader("hello", 5));
- net::UploadDataStream upload_data_stream(element_readers.Pass(), 1);
+ net::ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 1);
transaction.method = "POST";
transaction.status = "HTTP/1.1 100 Continue";
@@ -3273,7 +3275,7 @@
ScopedVector<net::UploadElementReader> element_readers;
element_readers.push_back(new net::UploadBytesElementReader("hello", 5));
- net::UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ net::ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
MockHttpRequest request(transaction);
request.upload_data_stream = &upload_data_stream;
@@ -3302,7 +3304,7 @@
ScopedVector<net::UploadElementReader> element_readers;
element_readers.push_back(new net::UploadBytesElementReader("hello", 5));
- net::UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ net::ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
transaction.method = "PUT";
MockHttpRequest req2(transaction);
@@ -3338,7 +3340,7 @@
ScopedVector<net::UploadElementReader> element_readers;
element_readers.push_back(new net::UploadBytesElementReader("hello", 5));
- net::UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ net::ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
transaction.method = "PUT";
transaction.status = "HTTP/1.1 305 Use Proxy";
@@ -3376,7 +3378,7 @@
ScopedVector<net::UploadElementReader> element_readers;
element_readers.push_back(new net::UploadBytesElementReader("hello", 5));
- net::UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ net::ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
transaction.method = "PUT";
transaction.status = "HTTP/1.1 404 Not Found";
@@ -3406,7 +3408,7 @@
ScopedVector<net::UploadElementReader> element_readers;
element_readers.push_back(new net::UploadBytesElementReader("hello", 5));
- net::UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ net::ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
MockHttpRequest request(transaction);
request.upload_data_stream = &upload_data_stream;
@@ -3435,7 +3437,7 @@
ScopedVector<net::UploadElementReader> element_readers;
element_readers.push_back(new net::UploadBytesElementReader("hello", 5));
- net::UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ net::ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
transaction.method = "DELETE";
MockHttpRequest req2(transaction);
@@ -7290,3 +7292,46 @@
RemoveMockTransaction(&transaction);
}
+
+// Makes sure that a request stops using the cache when the response headers
+// with "Cache-Control: no-store" arrives. That means that another request for
+// the same URL can be processed before the response body of the original
+// request arrives.
+TEST(HttpCache, NoStoreResponseShouldNotBlockFollowingRequests) {
+ MockHttpCache cache;
+ ScopedMockTransaction mock_transaction(kSimpleGET_Transaction);
+ mock_transaction.response_headers = "Cache-Control: no-store\n";
+ MockHttpRequest request(mock_transaction);
+
+ scoped_ptr<Context> first(new Context);
+ first->result = cache.CreateTransaction(&first->trans);
+ ASSERT_EQ(net::OK, first->result);
+ EXPECT_EQ(net::LOAD_STATE_IDLE, first->trans->GetLoadState());
+ first->result = first->trans->Start(
+ &request, first->callback.callback(), net::BoundNetLog());
+ EXPECT_EQ(net::LOAD_STATE_WAITING_FOR_CACHE, first->trans->GetLoadState());
+
+ base::MessageLoop::current()->RunUntilIdle();
+ EXPECT_EQ(net::LOAD_STATE_IDLE, first->trans->GetLoadState());
+ ASSERT_TRUE(first->trans->GetResponseInfo());
+ EXPECT_TRUE(first->trans->GetResponseInfo()->headers->HasHeaderValue(
+ "Cache-Control", "no-store"));
+ // Here we have read the response header but not read the response body yet.
+
+ // Let us create the second (read) transaction.
+ scoped_ptr<Context> second(new Context);
+ second->result = cache.CreateTransaction(&second->trans);
+ ASSERT_EQ(net::OK, second->result);
+ EXPECT_EQ(net::LOAD_STATE_IDLE, second->trans->GetLoadState());
+ second->result = second->trans->Start(
+ &request, second->callback.callback(), net::BoundNetLog());
+
+ // Here the second transaction proceeds without reading the first body.
+ EXPECT_EQ(net::LOAD_STATE_WAITING_FOR_CACHE, second->trans->GetLoadState());
+ base::MessageLoop::current()->RunUntilIdle();
+ EXPECT_EQ(net::LOAD_STATE_IDLE, second->trans->GetLoadState());
+ ASSERT_TRUE(second->trans->GetResponseInfo());
+ EXPECT_TRUE(second->trans->GetResponseInfo()->headers->HasHeaderValue(
+ "Cache-Control", "no-store"));
+ ReadAndVerifyTransaction(second->trans.get(), kSimpleGET_Transaction);
+}
diff --git a/net/http/http_network_layer.h b/net/http/http_network_layer.h
index fc94d0a..58b02f2 100644
--- a/net/http/http_network_layer.h
+++ b/net/http/http_network_layer.h
@@ -44,13 +44,13 @@
// HttpTransactionFactory methods:
virtual int CreateTransaction(RequestPriority priority,
- scoped_ptr<HttpTransaction>* trans) OVERRIDE;
- virtual HttpCache* GetCache() OVERRIDE;
- virtual HttpNetworkSession* GetSession() OVERRIDE;
+ scoped_ptr<HttpTransaction>* trans) override;
+ virtual HttpCache* GetCache() override;
+ virtual HttpNetworkSession* GetSession() override;
// base::PowerObserver methods:
- virtual void OnSuspend() OVERRIDE;
- virtual void OnResume() OVERRIDE;
+ virtual void OnSuspend() override;
+ virtual void OnResume() override;
private:
const scoped_refptr<HttpNetworkSession> session_;
diff --git a/net/http/http_network_transaction.h b/net/http/http_network_transaction.h
index 895ecc3..57ebdf7 100644
--- a/net/http/http_network_transaction.h
+++ b/net/http/http_network_transaction.h
@@ -47,63 +47,63 @@
// HttpTransaction methods:
virtual int Start(const HttpRequestInfo* request_info,
const CompletionCallback& callback,
- const BoundNetLog& net_log) OVERRIDE;
+ const BoundNetLog& net_log) override;
virtual int RestartIgnoringLastError(
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int RestartWithCertificate(
X509Certificate* client_cert,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int RestartWithAuth(const AuthCredentials& credentials,
- const CompletionCallback& callback) OVERRIDE;
- virtual bool IsReadyToRestartForAuth() OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual bool IsReadyToRestartForAuth() override;
virtual int Read(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
- virtual void StopCaching() OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual void StopCaching() override;
virtual bool GetFullRequestHeaders(
- HttpRequestHeaders* headers) const OVERRIDE;
- virtual int64 GetTotalReceivedBytes() const OVERRIDE;
- virtual void DoneReading() OVERRIDE;
- virtual const HttpResponseInfo* GetResponseInfo() const OVERRIDE;
- virtual LoadState GetLoadState() const OVERRIDE;
- virtual UploadProgress GetUploadProgress() const OVERRIDE;
- virtual void SetQuicServerInfo(QuicServerInfo* quic_server_info) OVERRIDE;
+ HttpRequestHeaders* headers) const override;
+ virtual int64 GetTotalReceivedBytes() const override;
+ virtual void DoneReading() override;
+ virtual const HttpResponseInfo* GetResponseInfo() const override;
+ virtual LoadState GetLoadState() const override;
+ virtual UploadProgress GetUploadProgress() const override;
+ virtual void SetQuicServerInfo(QuicServerInfo* quic_server_info) override;
virtual bool GetLoadTimingInfo(
- LoadTimingInfo* load_timing_info) const OVERRIDE;
- virtual void SetPriority(RequestPriority priority) OVERRIDE;
+ LoadTimingInfo* load_timing_info) const override;
+ virtual void SetPriority(RequestPriority priority) override;
virtual void SetWebSocketHandshakeStreamCreateHelper(
- WebSocketHandshakeStreamBase::CreateHelper* create_helper) OVERRIDE;
+ WebSocketHandshakeStreamBase::CreateHelper* create_helper) override;
virtual void SetBeforeNetworkStartCallback(
- const BeforeNetworkStartCallback& callback) OVERRIDE;
+ const BeforeNetworkStartCallback& callback) override;
virtual void SetBeforeProxyHeadersSentCallback(
- const BeforeProxyHeadersSentCallback& callback) OVERRIDE;
- virtual int ResumeNetworkStart() OVERRIDE;
+ const BeforeProxyHeadersSentCallback& callback) override;
+ virtual int ResumeNetworkStart() override;
// HttpStreamRequest::Delegate methods:
virtual void OnStreamReady(const SSLConfig& used_ssl_config,
const ProxyInfo& used_proxy_info,
- HttpStreamBase* stream) OVERRIDE;
+ HttpStreamBase* stream) override;
virtual void OnWebSocketHandshakeStreamReady(
const SSLConfig& used_ssl_config,
const ProxyInfo& used_proxy_info,
- WebSocketHandshakeStreamBase* stream) OVERRIDE;
+ WebSocketHandshakeStreamBase* stream) override;
virtual void OnStreamFailed(int status,
- const SSLConfig& used_ssl_config) OVERRIDE;
+ const SSLConfig& used_ssl_config) override;
virtual void OnCertificateError(int status,
const SSLConfig& used_ssl_config,
- const SSLInfo& ssl_info) OVERRIDE;
+ const SSLInfo& ssl_info) override;
virtual void OnNeedsProxyAuth(
const HttpResponseInfo& response_info,
const SSLConfig& used_ssl_config,
const ProxyInfo& used_proxy_info,
- HttpAuthController* auth_controller) OVERRIDE;
+ HttpAuthController* auth_controller) override;
virtual void OnNeedsClientAuth(const SSLConfig& used_ssl_config,
- SSLCertRequestInfo* cert_info) OVERRIDE;
+ SSLCertRequestInfo* cert_info) override;
virtual void OnHttpsProxyTunnelResponse(const HttpResponseInfo& response_info,
const SSLConfig& used_ssl_config,
const ProxyInfo& used_proxy_info,
- HttpStreamBase* stream) OVERRIDE;
+ HttpStreamBase* stream) override;
private:
friend class HttpNetworkTransactionSSLTest;
diff --git a/net/http/http_network_transaction_ssl_unittest.cc b/net/http/http_network_transaction_ssl_unittest.cc
index ab7eadf..7b95f79 100644
--- a/net/http/http_network_transaction_ssl_unittest.cc
+++ b/net/http/http_network_transaction_ssl_unittest.cc
@@ -31,7 +31,7 @@
ssl_config_.version_max = SSL_PROTOCOL_VERSION_TLS1;
}
- virtual void GetSSLConfig(SSLConfig* config) OVERRIDE {
+ virtual void GetSSLConfig(SSLConfig* config) override {
*config = ssl_config_;
}
@@ -48,7 +48,7 @@
ssl_config_.version_max = SSL_PROTOCOL_VERSION_TLS1_1;
}
- virtual void GetSSLConfig(SSLConfig* config) OVERRIDE {
+ virtual void GetSSLConfig(SSLConfig* config) override {
*config = ssl_config_;
}
diff --git a/net/http/http_network_transaction_unittest.cc b/net/http/http_network_transaction_unittest.cc
index ce61d6e..7531c91 100644
--- a/net/http/http_network_transaction_unittest.cc
+++ b/net/http/http_network_transaction_unittest.cc
@@ -22,7 +22,9 @@
#include "base/test/test_file_util.h"
#include "net/base/auth.h"
#include "net/base/capturing_net_log.h"
+#include "net/base/chunked_upload_data_stream.h"
#include "net/base/completion_callback.h"
+#include "net/base/elements_upload_data_stream.h"
#include "net/base/load_timing_info.h"
#include "net/base/load_timing_info_test_util.h"
#include "net/base/net_log.h"
@@ -31,7 +33,6 @@
#include "net/base/test_completion_callback.h"
#include "net/base/test_data_directory.h"
#include "net/base/upload_bytes_element_reader.h"
-#include "net/base/upload_data_stream.h"
#include "net/base/upload_file_element_reader.h"
#include "net/cert/mock_cert_verifier.h"
#include "net/dns/host_cache.h"
@@ -1111,7 +1112,7 @@
TEST_P(HttpNetworkTransactionTest, Ignores100) {
ScopedVector<UploadElementReader> element_readers;
element_readers.push_back(new UploadBytesElementReader("foo", 3));
- UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
HttpRequestInfo request;
request.method = "POST";
@@ -5016,7 +5017,7 @@
TEST_P(HttpNetworkTransactionTest, ResendRequestOnWriteBodyError) {
ScopedVector<UploadElementReader> element_readers;
element_readers.push_back(new UploadBytesElementReader("foo", 3));
- UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
HttpRequestInfo request[2];
// Transaction 1: a GET request that succeeds. The socket is recycled
@@ -8102,7 +8103,7 @@
0,
kuint64max,
base::Time()));
- UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
HttpRequestInfo request;
request.method = "POST";
@@ -8159,7 +8160,7 @@
0,
kuint64max,
base::Time()));
- UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
HttpRequestInfo request;
request.method = "POST";
@@ -8198,15 +8199,15 @@
const CompletionCallback& callback() const { return callback_; }
// UploadElementReader overrides:
- virtual int Init(const CompletionCallback& callback) OVERRIDE {
+ virtual int Init(const CompletionCallback& callback) override {
callback_ = callback;
return ERR_IO_PENDING;
}
- virtual uint64 GetContentLength() const OVERRIDE { return 0; }
- virtual uint64 BytesRemaining() const OVERRIDE { return 0; }
+ virtual uint64 GetContentLength() const override { return 0; }
+ virtual uint64 BytesRemaining() const override { return 0; }
virtual int Read(IOBuffer* buf,
int buf_length,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return ERR_FAILED;
}
@@ -8217,7 +8218,7 @@
FakeUploadElementReader* fake_reader = new FakeUploadElementReader;
ScopedVector<UploadElementReader> element_readers;
element_readers.push_back(fake_reader);
- UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
HttpRequestInfo request;
request.method = "POST";
@@ -9105,7 +9106,7 @@
ProxyInfo* results,
const CompletionCallback& callback,
RequestHandle* request,
- const BoundNetLog& net_log) OVERRIDE {
+ const BoundNetLog& net_log) override {
ProxyServer proxy_server(ProxyServer::SCHEME_HTTP,
HostPortPair("myproxy", 80));
results->UseProxyServer(proxy_server);
@@ -9113,21 +9114,21 @@
return OK;
}
- virtual void CancelRequest(RequestHandle request) OVERRIDE {
+ virtual void CancelRequest(RequestHandle request) override {
NOTREACHED();
}
- virtual LoadState GetLoadState(RequestHandle request) const OVERRIDE {
+ virtual LoadState GetLoadState(RequestHandle request) const override {
NOTREACHED();
return LOAD_STATE_IDLE;
}
- virtual void CancelSetPacScript() OVERRIDE {
+ virtual void CancelSetPacScript() override {
NOTREACHED();
}
virtual int SetPacScript(const scoped_refptr<ProxyResolverScriptData>&,
- const CompletionCallback& /*callback*/) OVERRIDE {
+ const CompletionCallback& /*callback*/) override {
return OK;
}
@@ -10069,7 +10070,7 @@
virtual int GenerateAuthTokenImpl(const AuthCredentials* credentials,
const HttpRequestInfo* request,
const CompletionCallback& callback,
- std::string* auth_token) OVERRIDE {
+ std::string* auth_token) override {
*url_ = request->url;
return HttpAuthHandlerMock::GenerateAuthTokenImpl(
credentials, request, callback, auth_token);
@@ -11166,21 +11167,21 @@
AddressList* addresses,
const CompletionCallback& callback,
RequestHandle* out_req,
- const BoundNetLog& net_log) OVERRIDE {
+ const BoundNetLog& net_log) override {
return host_resolver_.Resolve(
info, priority, addresses, callback, out_req, net_log);
}
virtual int ResolveFromCache(const RequestInfo& info,
AddressList* addresses,
- const BoundNetLog& net_log) OVERRIDE {
+ const BoundNetLog& net_log) override {
int rv = host_resolver_.ResolveFromCache(info, addresses, net_log);
if (rv == OK && info.host_port_pair().Equals(host_port_))
host_resolver_.GetHostCache()->clear();
return rv;
}
- virtual void CancelRequest(RequestHandle req) OVERRIDE {
+ virtual void CancelRequest(RequestHandle req) override {
host_resolver_.CancelRequest(req);
}
@@ -12212,83 +12213,83 @@
virtual int InitializeStream(const HttpRequestInfo* request_info,
RequestPriority priority,
const BoundNetLog& net_log,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return ERR_IO_PENDING;
}
virtual int SendRequest(const HttpRequestHeaders& request_headers,
HttpResponseInfo* response,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
ADD_FAILURE();
return ERR_UNEXPECTED;
}
- virtual int ReadResponseHeaders(const CompletionCallback& callback) OVERRIDE {
+ virtual int ReadResponseHeaders(const CompletionCallback& callback) override {
ADD_FAILURE();
return ERR_UNEXPECTED;
}
virtual int ReadResponseBody(IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
ADD_FAILURE();
return ERR_UNEXPECTED;
}
- virtual void Close(bool not_reusable) OVERRIDE {}
+ virtual void Close(bool not_reusable) override {}
- virtual bool IsResponseBodyComplete() const OVERRIDE {
+ virtual bool IsResponseBodyComplete() const override {
ADD_FAILURE();
return false;
}
- virtual bool CanFindEndOfResponse() const OVERRIDE {
+ virtual bool CanFindEndOfResponse() const override {
return false;
}
- virtual bool IsConnectionReused() const OVERRIDE {
+ virtual bool IsConnectionReused() const override {
ADD_FAILURE();
return false;
}
- virtual void SetConnectionReused() OVERRIDE {
+ virtual void SetConnectionReused() override {
ADD_FAILURE();
}
- virtual bool IsConnectionReusable() const OVERRIDE {
+ virtual bool IsConnectionReusable() const override {
ADD_FAILURE();
return false;
}
- virtual int64 GetTotalReceivedBytes() const OVERRIDE {
+ virtual int64 GetTotalReceivedBytes() const override {
ADD_FAILURE();
return 0;
}
virtual bool GetLoadTimingInfo(
- LoadTimingInfo* load_timing_info) const OVERRIDE {
+ LoadTimingInfo* load_timing_info) const override {
ADD_FAILURE();
return false;
}
- virtual void GetSSLInfo(SSLInfo* ssl_info) OVERRIDE {
+ virtual void GetSSLInfo(SSLInfo* ssl_info) override {
ADD_FAILURE();
}
virtual void GetSSLCertRequestInfo(
- SSLCertRequestInfo* cert_request_info) OVERRIDE {
+ SSLCertRequestInfo* cert_request_info) override {
ADD_FAILURE();
}
- virtual bool IsSpdyHttpStream() const OVERRIDE {
+ virtual bool IsSpdyHttpStream() const override {
ADD_FAILURE();
return false;
}
- virtual void Drain(HttpNetworkSession* session) OVERRIDE {
+ virtual void Drain(HttpNetworkSession* session) override {
ADD_FAILURE();
}
- virtual void SetPriority(RequestPriority priority) OVERRIDE {
+ virtual void SetPriority(RequestPriority priority) override {
priority_ = priority;
}
@@ -12337,29 +12338,29 @@
}
virtual int RestartTunnelWithProxyAuth(
- const AuthCredentials& credentials) OVERRIDE {
+ const AuthCredentials& credentials) override {
ADD_FAILURE();
return ERR_UNEXPECTED;
}
- virtual LoadState GetLoadState() const OVERRIDE {
+ virtual LoadState GetLoadState() const override {
ADD_FAILURE();
return LoadState();
}
- virtual void SetPriority(RequestPriority priority) OVERRIDE {
+ virtual void SetPriority(RequestPriority priority) override {
priority_ = priority;
}
- virtual bool was_npn_negotiated() const OVERRIDE {
+ virtual bool was_npn_negotiated() const override {
return false;
}
- virtual NextProto protocol_negotiated() const OVERRIDE {
+ virtual NextProto protocol_negotiated() const override {
return kProtoUnknown;
}
- virtual bool using_spdy() const OVERRIDE {
+ virtual bool using_spdy() const override {
return false;
}
@@ -12389,7 +12390,7 @@
const SSLConfig& server_ssl_config,
const SSLConfig& proxy_ssl_config,
HttpStreamRequest::Delegate* delegate,
- const BoundNetLog& net_log) OVERRIDE {
+ const BoundNetLog& net_log) override {
FakeStreamRequest* fake_request = new FakeStreamRequest(priority, delegate);
last_stream_request_ = fake_request->AsWeakPtr();
return fake_request;
@@ -12402,7 +12403,7 @@
const SSLConfig& proxy_ssl_config,
HttpStreamRequest::Delegate* delegate,
WebSocketHandshakeStreamBase::CreateHelper* create_helper,
- const BoundNetLog& net_log) OVERRIDE {
+ const BoundNetLog& net_log) override {
FakeStreamRequest* fake_request =
new FakeStreamRequest(priority, delegate, create_helper);
last_stream_request_ = fake_request->AsWeakPtr();
@@ -12413,11 +12414,11 @@
const HttpRequestInfo& info,
RequestPriority priority,
const SSLConfig& server_ssl_config,
- const SSLConfig& proxy_ssl_config) OVERRIDE {
+ const SSLConfig& proxy_ssl_config) override {
ADD_FAILURE();
}
- virtual const HostMappingRules* GetHostMappingRules() const OVERRIDE {
+ virtual const HostMappingRules* GetHostMappingRules() const override {
ADD_FAILURE();
return NULL;
}
@@ -12435,14 +12436,14 @@
public:
virtual WebSocketHandshakeStreamBase* CreateBasicStream(
scoped_ptr<ClientSocketHandle> connection,
- bool using_proxy) OVERRIDE {
+ bool using_proxy) override {
NOTREACHED();
return NULL;
}
virtual WebSocketHandshakeStreamBase* CreateSpdyStream(
const base::WeakPtr<SpdySession>& session,
- bool use_relative_url) OVERRIDE {
+ bool use_relative_url) override {
NOTREACHED();
return NULL;
};
@@ -12731,7 +12732,7 @@
TEST_P(HttpNetworkTransactionTest, PostReadsErrorResponseAfterReset) {
ScopedVector<UploadElementReader> element_readers;
element_readers.push_back(new UploadBytesElementReader("foo", 3));
- UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
HttpRequestInfo request;
request.method = "POST";
@@ -12838,7 +12839,7 @@
ScopedVector<UploadElementReader> element_readers;
element_readers.push_back(new UploadBytesElementReader("foo", 3));
- UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
HttpRequestInfo request2;
request2.method = "POST";
@@ -12870,7 +12871,7 @@
PostReadsErrorResponseAfterResetPartialBodySent) {
ScopedVector<UploadElementReader> element_readers;
element_readers.push_back(new UploadBytesElementReader("foo", 3));
- UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
HttpRequestInfo request;
request.method = "POST";
@@ -12925,7 +12926,7 @@
TEST_P(HttpNetworkTransactionTest, ChunkedPostReadsErrorResponseAfterReset) {
ScopedVector<UploadElementReader> element_readers;
element_readers.push_back(new UploadBytesElementReader("foo", 3));
- UploadDataStream upload_data_stream(UploadDataStream::CHUNKED, 0);
+ ChunkedUploadDataStream upload_data_stream(0);
HttpRequestInfo request;
request.method = "POST";
@@ -12964,7 +12965,7 @@
// the test more future proof.
base::RunLoop().RunUntilIdle();
- upload_data_stream.AppendChunk("last chunk", 10, true);
+ upload_data_stream.AppendData("last chunk", 10, true);
rv = callback.WaitForResult();
EXPECT_EQ(OK, rv);
@@ -12984,7 +12985,7 @@
TEST_P(HttpNetworkTransactionTest, PostReadsErrorResponseAfterResetAnd100) {
ScopedVector<UploadElementReader> element_readers;
element_readers.push_back(new UploadBytesElementReader("foo", 3));
- UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
HttpRequestInfo request;
request.method = "POST";
@@ -13037,7 +13038,7 @@
TEST_P(HttpNetworkTransactionTest, PostIgnoresNonErrorResponseAfterReset) {
ScopedVector<UploadElementReader> element_readers;
element_readers.push_back(new UploadBytesElementReader("foo", 3));
- UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
HttpRequestInfo request;
request.method = "POST";
@@ -13082,7 +13083,7 @@
PostIgnoresNonErrorResponseAfterResetAnd100) {
ScopedVector<UploadElementReader> element_readers;
element_readers.push_back(new UploadBytesElementReader("foo", 3));
- UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
HttpRequestInfo request;
request.method = "POST";
@@ -13128,7 +13129,7 @@
TEST_P(HttpNetworkTransactionTest, PostIgnoresHttp09ResponseAfterReset) {
ScopedVector<UploadElementReader> element_readers;
element_readers.push_back(new UploadBytesElementReader("foo", 3));
- UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
HttpRequestInfo request;
request.method = "POST";
@@ -13171,7 +13172,7 @@
TEST_P(HttpNetworkTransactionTest, PostIgnoresPartial400HeadersAfterReset) {
ScopedVector<UploadElementReader> element_readers;
element_readers.push_back(new UploadBytesElementReader("foo", 3));
- UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
HttpRequestInfo request;
request.method = "POST";
diff --git a/net/http/http_proxy_client_socket.h b/net/http/http_proxy_client_socket.h
index 6761621..87eeda4 100644
--- a/net/http/http_proxy_client_socket.h
+++ b/net/http/http_proxy_client_socket.h
@@ -55,39 +55,39 @@
virtual ~HttpProxyClientSocket();
// ProxyClientSocket implementation.
- virtual const HttpResponseInfo* GetConnectResponseInfo() const OVERRIDE;
- virtual HttpStream* CreateConnectResponseStream() OVERRIDE;
- virtual int RestartWithAuth(const CompletionCallback& callback) OVERRIDE;
+ virtual const HttpResponseInfo* GetConnectResponseInfo() const override;
+ virtual HttpStream* CreateConnectResponseStream() override;
+ virtual int RestartWithAuth(const CompletionCallback& callback) override;
virtual const scoped_refptr<HttpAuthController>& GetAuthController() const
- OVERRIDE;
- virtual bool IsUsingSpdy() const OVERRIDE;
- virtual NextProto GetProtocolNegotiated() const OVERRIDE;
+ override;
+ virtual bool IsUsingSpdy() const override;
+ virtual NextProto GetProtocolNegotiated() const override;
// StreamSocket implementation.
- virtual int Connect(const CompletionCallback& callback) OVERRIDE;
- virtual void Disconnect() OVERRIDE;
- virtual bool IsConnected() const OVERRIDE;
- virtual bool IsConnectedAndIdle() const OVERRIDE;
- virtual const BoundNetLog& NetLog() const OVERRIDE;
- virtual void SetSubresourceSpeculation() OVERRIDE;
- virtual void SetOmniboxSpeculation() OVERRIDE;
- virtual bool WasEverUsed() const OVERRIDE;
- virtual bool UsingTCPFastOpen() const OVERRIDE;
- virtual bool WasNpnNegotiated() const OVERRIDE;
- virtual NextProto GetNegotiatedProtocol() const OVERRIDE;
- virtual bool GetSSLInfo(SSLInfo* ssl_info) OVERRIDE;
+ virtual int Connect(const CompletionCallback& callback) override;
+ virtual void Disconnect() override;
+ virtual bool IsConnected() const override;
+ virtual bool IsConnectedAndIdle() const override;
+ virtual const BoundNetLog& NetLog() const override;
+ virtual void SetSubresourceSpeculation() override;
+ virtual void SetOmniboxSpeculation() override;
+ virtual bool WasEverUsed() const override;
+ virtual bool UsingTCPFastOpen() const override;
+ virtual bool WasNpnNegotiated() const override;
+ virtual NextProto GetNegotiatedProtocol() const override;
+ virtual bool GetSSLInfo(SSLInfo* ssl_info) override;
// Socket implementation.
virtual int Read(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int Write(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
- virtual int SetReceiveBufferSize(int32 size) OVERRIDE;
- virtual int SetSendBufferSize(int32 size) OVERRIDE;
- virtual int GetPeerAddress(IPEndPoint* address) const OVERRIDE;
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual int SetReceiveBufferSize(int32 size) override;
+ virtual int SetSendBufferSize(int32 size) override;
+ virtual int GetPeerAddress(IPEndPoint* address) const override;
+ virtual int GetLocalAddress(IPEndPoint* address) const override;
private:
enum State {
diff --git a/net/http/http_proxy_client_socket_pool.h b/net/http/http_proxy_client_socket_pool.h
index 7ce0f37..9dac090 100644
--- a/net/http/http_proxy_client_socket_pool.h
+++ b/net/http/http_proxy_client_socket_pool.h
@@ -114,9 +114,9 @@
virtual ~HttpProxyConnectJob();
// ConnectJob methods.
- virtual LoadState GetLoadState() const OVERRIDE;
+ virtual LoadState GetLoadState() const override;
- virtual void GetAdditionalErrorState(ClientSocketHandle* handle) OVERRIDE;
+ virtual void GetAdditionalErrorState(ClientSocketHandle* handle) override;
private:
enum State {
@@ -157,7 +157,7 @@
// that the tunnel needs authentication credentials, the socket will be
// returned in this case, and must be release back to the pool; or
// a standard net error code will be returned.
- virtual int ConnectInternal() OVERRIDE;
+ virtual int ConnectInternal() override;
scoped_refptr<HttpProxySocketParams> params_;
TransportClientSocketPool* const transport_pool_;
@@ -205,51 +205,51 @@
RequestPriority priority,
ClientSocketHandle* handle,
const CompletionCallback& callback,
- const BoundNetLog& net_log) OVERRIDE;
+ const BoundNetLog& net_log) override;
virtual void RequestSockets(const std::string& group_name,
const void* params,
int num_sockets,
- const BoundNetLog& net_log) OVERRIDE;
+ const BoundNetLog& net_log) override;
virtual void CancelRequest(const std::string& group_name,
- ClientSocketHandle* handle) OVERRIDE;
+ ClientSocketHandle* handle) override;
virtual void ReleaseSocket(const std::string& group_name,
scoped_ptr<StreamSocket> socket,
- int id) OVERRIDE;
+ int id) override;
- virtual void FlushWithError(int error) OVERRIDE;
+ virtual void FlushWithError(int error) override;
- virtual void CloseIdleSockets() OVERRIDE;
+ virtual void CloseIdleSockets() override;
- virtual int IdleSocketCount() const OVERRIDE;
+ virtual int IdleSocketCount() const override;
virtual int IdleSocketCountInGroup(
- const std::string& group_name) const OVERRIDE;
+ const std::string& group_name) const override;
virtual LoadState GetLoadState(
const std::string& group_name,
- const ClientSocketHandle* handle) const OVERRIDE;
+ const ClientSocketHandle* handle) const override;
virtual base::DictionaryValue* GetInfoAsValue(
const std::string& name,
const std::string& type,
- bool include_nested_pools) const OVERRIDE;
+ bool include_nested_pools) const override;
- virtual base::TimeDelta ConnectionTimeout() const OVERRIDE;
+ virtual base::TimeDelta ConnectionTimeout() const override;
- virtual ClientSocketPoolHistograms* histograms() const OVERRIDE;
+ virtual ClientSocketPoolHistograms* histograms() const override;
// LowerLayeredPool implementation.
- virtual bool IsStalled() const OVERRIDE;
+ virtual bool IsStalled() const override;
- virtual void AddHigherLayeredPool(HigherLayeredPool* higher_pool) OVERRIDE;
+ virtual void AddHigherLayeredPool(HigherLayeredPool* higher_pool) override;
- virtual void RemoveHigherLayeredPool(HigherLayeredPool* higher_pool) OVERRIDE;
+ virtual void RemoveHigherLayeredPool(HigherLayeredPool* higher_pool) override;
// HigherLayeredPool implementation.
- virtual bool CloseOneIdleConnection() OVERRIDE;
+ virtual bool CloseOneIdleConnection() override;
private:
typedef ClientSocketPoolBase<HttpProxySocketParams> PoolBase;
@@ -267,9 +267,9 @@
virtual scoped_ptr<ConnectJob> NewConnectJob(
const std::string& group_name,
const PoolBase::Request& request,
- ConnectJob::Delegate* delegate) const OVERRIDE;
+ ConnectJob::Delegate* delegate) const override;
- virtual base::TimeDelta ConnectionTimeout() const OVERRIDE;
+ virtual base::TimeDelta ConnectionTimeout() const override;
private:
TransportClientSocketPool* const transport_pool_;
diff --git a/net/http/http_proxy_client_socket_pool_unittest.cc b/net/http/http_proxy_client_socket_pool_unittest.cc
index c6433af..98b7322 100644
--- a/net/http/http_proxy_client_socket_pool_unittest.cc
+++ b/net/http/http_proxy_client_socket_pool_unittest.cc
@@ -66,7 +66,7 @@
on_tunnel_headers_received_called_(false) {
}
- virtual ~TestProxyDelegate() OVERRIDE {
+ virtual ~TestProxyDelegate() override {
}
bool on_before_tunnel_request_called() const {
@@ -92,21 +92,21 @@
virtual void OnResolveProxy(const GURL& url,
int load_flags,
const ProxyService& proxy_service,
- ProxyInfo* result) OVERRIDE {
+ ProxyInfo* result) override {
}
virtual void OnFallback(const ProxyServer& bad_proxy,
- int net_error) OVERRIDE {
+ int net_error) override {
}
virtual void OnBeforeSendHeaders(URLRequest* request,
const ProxyInfo& proxy_info,
- HttpRequestHeaders* headers) OVERRIDE {
+ HttpRequestHeaders* headers) override {
}
virtual void OnBeforeTunnelRequest(
const net::HostPortPair& proxy_server,
- net::HttpRequestHeaders* extra_headers) OVERRIDE {
+ net::HttpRequestHeaders* extra_headers) override {
on_before_tunnel_request_called_ = true;
if (extra_headers) {
extra_headers->SetHeader("Foo", proxy_server.ToString());
@@ -116,7 +116,7 @@
virtual void OnTunnelHeadersReceived(
const net::HostPortPair& origin,
const net::HostPortPair& proxy_server,
- const net::HttpResponseHeaders& response_headers) OVERRIDE {
+ const net::HttpResponseHeaders& response_headers) override {
on_tunnel_headers_received_called_ = true;
on_tunnel_headers_received_origin_ = origin;
on_tunnel_headers_received_proxy_server_ = proxy_server;
diff --git a/net/http/http_response_body_drainer_unittest.cc b/net/http/http_response_body_drainer_unittest.cc
index 5aa0bff..5a8713c 100644
--- a/net/http/http_response_body_drainer_unittest.cc
+++ b/net/http/http_response_body_drainer_unittest.cc
@@ -80,53 +80,53 @@
virtual int InitializeStream(const HttpRequestInfo* request_info,
RequestPriority priority,
const BoundNetLog& net_log,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return ERR_UNEXPECTED;
}
virtual int SendRequest(const HttpRequestHeaders& request_headers,
HttpResponseInfo* response,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return ERR_UNEXPECTED;
}
- virtual UploadProgress GetUploadProgress() const OVERRIDE {
+ virtual UploadProgress GetUploadProgress() const override {
return UploadProgress();
}
- virtual int ReadResponseHeaders(const CompletionCallback& callback) OVERRIDE {
+ virtual int ReadResponseHeaders(const CompletionCallback& callback) override {
return ERR_UNEXPECTED;
}
- virtual bool CanFindEndOfResponse() const OVERRIDE { return true; }
- virtual bool IsConnectionReused() const OVERRIDE { return false; }
- virtual void SetConnectionReused() OVERRIDE {}
- virtual bool IsConnectionReusable() const OVERRIDE { return false; }
- virtual int64 GetTotalReceivedBytes() const OVERRIDE { return 0; }
- virtual void GetSSLInfo(SSLInfo* ssl_info) OVERRIDE {}
+ virtual bool CanFindEndOfResponse() const override { return true; }
+ virtual bool IsConnectionReused() const override { return false; }
+ virtual void SetConnectionReused() override {}
+ virtual bool IsConnectionReusable() const override { return false; }
+ virtual int64 GetTotalReceivedBytes() const override { return 0; }
+ virtual void GetSSLInfo(SSLInfo* ssl_info) override {}
virtual void GetSSLCertRequestInfo(
- SSLCertRequestInfo* cert_request_info) OVERRIDE {}
+ SSLCertRequestInfo* cert_request_info) override {}
// Mocked API
virtual int ReadResponseBody(IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE;
- virtual void Close(bool not_reusable) OVERRIDE {
+ const CompletionCallback& callback) override;
+ virtual void Close(bool not_reusable) override {
CHECK(!closed_);
closed_ = true;
result_waiter_->set_result(not_reusable);
}
- virtual HttpStream* RenewStreamForAuth() OVERRIDE {
+ virtual HttpStream* RenewStreamForAuth() override {
return NULL;
}
- virtual bool IsResponseBodyComplete() const OVERRIDE { return is_complete_; }
+ virtual bool IsResponseBodyComplete() const override { return is_complete_; }
- virtual bool IsSpdyHttpStream() const OVERRIDE { return false; }
+ virtual bool IsSpdyHttpStream() const override { return false; }
virtual bool GetLoadTimingInfo(
- LoadTimingInfo* load_timing_info) const OVERRIDE { return false; }
+ LoadTimingInfo* load_timing_info) const override { return false; }
- virtual void Drain(HttpNetworkSession*) OVERRIDE {}
+ virtual void Drain(HttpNetworkSession*) override {}
- virtual void SetPriority(RequestPriority priority) OVERRIDE {}
+ virtual void SetPriority(RequestPriority priority) override {}
// Methods to tweak/observer mock behavior:
void set_stall_reads_forever() { stall_reads_forever_ = true; }
diff --git a/net/http/http_server_properties_impl.h b/net/http/http_server_properties_impl.h
index 03bb75f..b68db36 100644
--- a/net/http/http_server_properties_impl.h
+++ b/net/http/http_server_properties_impl.h
@@ -69,95 +69,95 @@
// -----------------------------
// Gets a weak pointer for this object.
- virtual base::WeakPtr<HttpServerProperties> GetWeakPtr() OVERRIDE;
+ virtual base::WeakPtr<HttpServerProperties> GetWeakPtr() override;
// Deletes all data.
- virtual void Clear() OVERRIDE;
+ virtual void Clear() override;
// Returns true if |server| supports SPDY.
- virtual bool SupportsSpdy(const HostPortPair& server) OVERRIDE;
+ virtual bool SupportsSpdy(const HostPortPair& server) override;
// Add |server| into the persistent store.
virtual void SetSupportsSpdy(const HostPortPair& server,
- bool support_spdy) OVERRIDE;
+ bool support_spdy) override;
// Returns true if |server| has an Alternate-Protocol header.
- virtual bool HasAlternateProtocol(const HostPortPair& server) OVERRIDE;
+ virtual bool HasAlternateProtocol(const HostPortPair& server) override;
// Returns the Alternate-Protocol and port for |server|.
// HasAlternateProtocol(server) must be true.
virtual AlternateProtocolInfo GetAlternateProtocol(
- const HostPortPair& server) OVERRIDE;
+ const HostPortPair& server) override;
// Sets the Alternate-Protocol for |server|.
virtual void SetAlternateProtocol(
const HostPortPair& server,
uint16 alternate_port,
AlternateProtocol alternate_protocol,
- double probability) OVERRIDE;
+ double probability) override;
// Sets the Alternate-Protocol for |server| to be BROKEN.
- virtual void SetBrokenAlternateProtocol(const HostPortPair& server) OVERRIDE;
+ virtual void SetBrokenAlternateProtocol(const HostPortPair& server) override;
// Returns true if Alternate-Protocol for |server| was recently BROKEN.
virtual bool WasAlternateProtocolRecentlyBroken(
- const HostPortPair& server) OVERRIDE;
+ const HostPortPair& server) override;
// Confirms that Alternate-Protocol for |server| is working.
- virtual void ConfirmAlternateProtocol(const HostPortPair& server) OVERRIDE;
+ virtual void ConfirmAlternateProtocol(const HostPortPair& server) override;
// Clears the Alternate-Protocol for |server|.
- virtual void ClearAlternateProtocol(const HostPortPair& server) OVERRIDE;
+ virtual void ClearAlternateProtocol(const HostPortPair& server) override;
// Returns all Alternate-Protocol mappings.
- virtual const AlternateProtocolMap& alternate_protocol_map() const OVERRIDE;
+ virtual const AlternateProtocolMap& alternate_protocol_map() const override;
virtual void SetAlternateProtocolExperiment(
- AlternateProtocolExperiment experiment) OVERRIDE;
+ AlternateProtocolExperiment experiment) override;
virtual void SetAlternateProtocolProbabilityThreshold(
- double threshold) OVERRIDE;
+ double threshold) override;
virtual AlternateProtocolExperiment GetAlternateProtocolExperiment()
- const OVERRIDE;
+ const override;
// Gets a reference to the SettingsMap stored for a host.
// If no settings are stored, returns an empty SettingsMap.
virtual const SettingsMap& GetSpdySettings(
- const HostPortPair& host_port_pair) OVERRIDE;
+ const HostPortPair& host_port_pair) override;
// Saves an individual SPDY setting for a host. Returns true if SPDY setting
// is to be persisted.
virtual bool SetSpdySetting(const HostPortPair& host_port_pair,
SpdySettingsIds id,
SpdySettingsFlags flags,
- uint32 value) OVERRIDE;
+ uint32 value) override;
// Clears all entries in |spdy_settings_map_| for a host.
- virtual void ClearSpdySettings(const HostPortPair& host_port_pair) OVERRIDE;
+ virtual void ClearSpdySettings(const HostPortPair& host_port_pair) override;
// Clears all entries in |spdy_settings_map_|.
- virtual void ClearAllSpdySettings() OVERRIDE;
+ virtual void ClearAllSpdySettings() override;
// Returns all persistent SPDY settings.
- virtual const SpdySettingsMap& spdy_settings_map() const OVERRIDE;
+ virtual const SpdySettingsMap& spdy_settings_map() const override;
// Methods for SupportsQuic.
virtual SupportsQuic GetSupportsQuic(
- const HostPortPair& host_port_pair) const OVERRIDE;
+ const HostPortPair& host_port_pair) const override;
virtual void SetSupportsQuic(const HostPortPair& host_port_pair,
bool used_quic,
- const std::string& address) OVERRIDE;
+ const std::string& address) override;
- virtual const SupportsQuicMap& supports_quic_map() const OVERRIDE;
+ virtual const SupportsQuicMap& supports_quic_map() const override;
// Methods for NetworkStats.
virtual void SetServerNetworkStats(const HostPortPair& host_port_pair,
- NetworkStats stats) OVERRIDE;
+ NetworkStats stats) override;
virtual const NetworkStats* GetServerNetworkStats(
- const HostPortPair& host_port_pair) const OVERRIDE;
+ const HostPortPair& host_port_pair) const override;
private:
// |spdy_servers_map_| has flattened representation of servers (host, port)
diff --git a/net/http/http_server_properties_manager.h b/net/http/http_server_properties_manager.h
index 6c2a8f8..bcfe320 100644
--- a/net/http/http_server_properties_manager.h
+++ b/net/http/http_server_properties_manager.h
@@ -78,96 +78,96 @@
// ----------------------------------
// Gets a weak pointer for this object.
- virtual base::WeakPtr<HttpServerProperties> GetWeakPtr() OVERRIDE;
+ virtual base::WeakPtr<HttpServerProperties> GetWeakPtr() override;
// Deletes all data. Works asynchronously.
- virtual void Clear() OVERRIDE;
+ virtual void Clear() override;
// Returns true if |server| supports SPDY. Should only be called from IO
// thread.
- virtual bool SupportsSpdy(const HostPortPair& server) OVERRIDE;
+ virtual bool SupportsSpdy(const HostPortPair& server) override;
// Add |server| as the SPDY server which supports SPDY protocol into the
// persisitent store. Should only be called from IO thread.
virtual void SetSupportsSpdy(const HostPortPair& server,
- bool support_spdy) OVERRIDE;
+ bool support_spdy) override;
// Returns true if |server| has an Alternate-Protocol header.
- virtual bool HasAlternateProtocol(const HostPortPair& server) OVERRIDE;
+ virtual bool HasAlternateProtocol(const HostPortPair& server) override;
// Returns the Alternate-Protocol and port for |server|.
// HasAlternateProtocol(server) must be true.
virtual AlternateProtocolInfo GetAlternateProtocol(
- const HostPortPair& server) OVERRIDE;
+ const HostPortPair& server) override;
// Sets the Alternate-Protocol for |server|.
virtual void SetAlternateProtocol(
const HostPortPair& server,
uint16 alternate_port,
AlternateProtocol alternate_protocol,
- double alternate_probability) OVERRIDE;
+ double alternate_probability) override;
// Sets the Alternate-Protocol for |server| to be BROKEN.
- virtual void SetBrokenAlternateProtocol(const HostPortPair& server) OVERRIDE;
+ virtual void SetBrokenAlternateProtocol(const HostPortPair& server) override;
// Returns true if Alternate-Protocol for |server| was recently BROKEN.
virtual bool WasAlternateProtocolRecentlyBroken(
- const HostPortPair& server) OVERRIDE;
+ const HostPortPair& server) override;
// Confirms that Alternate-Protocol for |server| is working.
- virtual void ConfirmAlternateProtocol(const HostPortPair& server) OVERRIDE;
+ virtual void ConfirmAlternateProtocol(const HostPortPair& server) override;
// Clears the Alternate-Protocol for |server|.
- virtual void ClearAlternateProtocol(const HostPortPair& server) OVERRIDE;
+ virtual void ClearAlternateProtocol(const HostPortPair& server) override;
// Returns all Alternate-Protocol mappings.
- virtual const AlternateProtocolMap& alternate_protocol_map() const OVERRIDE;
+ virtual const AlternateProtocolMap& alternate_protocol_map() const override;
virtual void SetAlternateProtocolExperiment(
- AlternateProtocolExperiment experiment) OVERRIDE;
+ AlternateProtocolExperiment experiment) override;
virtual void SetAlternateProtocolProbabilityThreshold(
- double threshold) OVERRIDE;
+ double threshold) override;
virtual AlternateProtocolExperiment GetAlternateProtocolExperiment()
- const OVERRIDE;
+ const override;
// Gets a reference to the SettingsMap stored for a host.
// If no settings are stored, returns an empty SettingsMap.
virtual const SettingsMap& GetSpdySettings(
- const HostPortPair& host_port_pair) OVERRIDE;
+ const HostPortPair& host_port_pair) override;
// Saves an individual SPDY setting for a host. Returns true if SPDY setting
// is to be persisted.
virtual bool SetSpdySetting(const HostPortPair& host_port_pair,
SpdySettingsIds id,
SpdySettingsFlags flags,
- uint32 value) OVERRIDE;
+ uint32 value) override;
// Clears all SPDY settings for a host.
- virtual void ClearSpdySettings(const HostPortPair& host_port_pair) OVERRIDE;
+ virtual void ClearSpdySettings(const HostPortPair& host_port_pair) override;
// Clears all SPDY settings for all hosts.
- virtual void ClearAllSpdySettings() OVERRIDE;
+ virtual void ClearAllSpdySettings() override;
// Returns all SPDY persistent settings.
- virtual const SpdySettingsMap& spdy_settings_map() const OVERRIDE;
+ virtual const SpdySettingsMap& spdy_settings_map() const override;
// Methods for SupportsQuic.
virtual SupportsQuic GetSupportsQuic(
- const HostPortPair& host_port_pair) const OVERRIDE;
+ const HostPortPair& host_port_pair) const override;
virtual void SetSupportsQuic(const HostPortPair& host_port_pair,
bool used_quic,
- const std::string& address) OVERRIDE;
+ const std::string& address) override;
- virtual const SupportsQuicMap& supports_quic_map() const OVERRIDE;
+ virtual const SupportsQuicMap& supports_quic_map() const override;
virtual void SetServerNetworkStats(const HostPortPair& host_port_pair,
- NetworkStats stats) OVERRIDE;
+ NetworkStats stats) override;
virtual const NetworkStats* GetServerNetworkStats(
- const HostPortPair& host_port_pair) const OVERRIDE;
+ const HostPortPair& host_port_pair) const override;
protected:
// --------------------
diff --git a/net/http/http_server_properties_manager_unittest.cc b/net/http/http_server_properties_manager_unittest.cc
index 012a46d..dbbfc2d 100644
--- a/net/http/http_server_properties_manager_unittest.cc
+++ b/net/http/http_server_properties_manager_unittest.cc
@@ -44,7 +44,7 @@
// Post tasks without a delay during tests.
virtual void StartPrefsUpdateTimerOnNetworkThread(
- base::TimeDelta delay) OVERRIDE {
+ base::TimeDelta delay) override {
HttpServerPropertiesManager::StartPrefsUpdateTimerOnNetworkThread(
base::TimeDelta());
}
@@ -55,7 +55,7 @@
// Post tasks without a delay during tests.
virtual void StartCacheUpdateTimerOnPrefThread(
- base::TimeDelta delay) OVERRIDE {
+ base::TimeDelta delay) override {
HttpServerPropertiesManager::StartCacheUpdateTimerOnPrefThread(
base::TimeDelta());
}
@@ -88,7 +88,7 @@
protected:
HttpServerPropertiesManagerTest() {}
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
pref_service_.registry()->RegisterDictionaryPref(kTestHttpServerProperties);
http_server_props_manager_.reset(
new StrictMock<TestingHttpServerPropertiesManager>(
@@ -99,7 +99,7 @@
base::RunLoop().RunUntilIdle();
}
- virtual void TearDown() OVERRIDE {
+ virtual void TearDown() override {
if (http_server_props_manager_.get())
http_server_props_manager_->ShutdownOnPrefThread();
base::RunLoop().RunUntilIdle();
diff --git a/net/http/http_stream_factory_impl.h b/net/http/http_stream_factory_impl.h
index 7df0a67..91a59c2 100644
--- a/net/http/http_stream_factory_impl.h
+++ b/net/http/http_stream_factory_impl.h
@@ -38,7 +38,7 @@
const SSLConfig& server_ssl_config,
const SSLConfig& proxy_ssl_config,
HttpStreamRequest::Delegate* delegate,
- const BoundNetLog& net_log) OVERRIDE;
+ const BoundNetLog& net_log) override;
virtual HttpStreamRequest* RequestWebSocketHandshakeStream(
const HttpRequestInfo& info,
@@ -47,14 +47,14 @@
const SSLConfig& proxy_ssl_config,
HttpStreamRequest::Delegate* delegate,
WebSocketHandshakeStreamBase::CreateHelper* create_helper,
- const BoundNetLog& net_log) OVERRIDE;
+ const BoundNetLog& net_log) override;
virtual void PreconnectStreams(int num_streams,
const HttpRequestInfo& info,
RequestPriority priority,
const SSLConfig& server_ssl_config,
- const SSLConfig& proxy_ssl_config) OVERRIDE;
- virtual const HostMappingRules* GetHostMappingRules() const OVERRIDE;
+ const SSLConfig& proxy_ssl_config) override;
+ virtual const HostMappingRules* GetHostMappingRules() const override;
size_t num_orphaned_jobs() const { return orphaned_job_set_.size(); }
diff --git a/net/http/http_stream_factory_impl_request.h b/net/http/http_stream_factory_impl_request.h
index eafc138..3ab7d95 100644
--- a/net/http/http_stream_factory_impl_request.h
+++ b/net/http/http_stream_factory_impl_request.h
@@ -99,12 +99,12 @@
// HttpStreamRequest methods.
virtual int RestartTunnelWithProxyAuth(
- const AuthCredentials& credentials) OVERRIDE;
- virtual void SetPriority(RequestPriority priority) OVERRIDE;
- virtual LoadState GetLoadState() const OVERRIDE;
- virtual bool was_npn_negotiated() const OVERRIDE;
- virtual NextProto protocol_negotiated() const OVERRIDE;
- virtual bool using_spdy() const OVERRIDE;
+ const AuthCredentials& credentials) override;
+ virtual void SetPriority(RequestPriority priority) override;
+ virtual LoadState GetLoadState() const override;
+ virtual bool was_npn_negotiated() const override;
+ virtual NextProto protocol_negotiated() const override;
+ virtual bool using_spdy() const override;
private:
// Used to orphan all jobs in |jobs_| other than |job| which becomes "bound"
diff --git a/net/http/http_stream_factory_impl_request_unittest.cc b/net/http/http_stream_factory_impl_request_unittest.cc
index eea2a1b..422abd0 100644
--- a/net/http/http_stream_factory_impl_request_unittest.cc
+++ b/net/http/http_stream_factory_impl_request_unittest.cc
@@ -34,28 +34,28 @@
virtual void OnStreamReady(
const SSLConfig& used_ssl_config,
const ProxyInfo& used_proxy_info,
- HttpStreamBase* stream) OVERRIDE {}
+ HttpStreamBase* stream) override {}
virtual void OnWebSocketHandshakeStreamReady(
const SSLConfig& used_ssl_config,
const ProxyInfo& used_proxy_info,
- WebSocketHandshakeStreamBase* stream) OVERRIDE {}
+ WebSocketHandshakeStreamBase* stream) override {}
virtual void OnStreamFailed(
int status,
- const SSLConfig& used_ssl_config) OVERRIDE {}
+ const SSLConfig& used_ssl_config) override {}
virtual void OnCertificateError(
int status,
const SSLConfig& used_ssl_config,
- const SSLInfo& ssl_info) OVERRIDE {}
+ const SSLInfo& ssl_info) override {}
virtual void OnNeedsProxyAuth(const HttpResponseInfo& proxy_response,
const SSLConfig& used_ssl_config,
const ProxyInfo& used_proxy_info,
- HttpAuthController* auth_controller) OVERRIDE {}
+ HttpAuthController* auth_controller) override {}
virtual void OnNeedsClientAuth(const SSLConfig& used_ssl_config,
- SSLCertRequestInfo* cert_info) OVERRIDE {}
+ SSLCertRequestInfo* cert_info) override {}
virtual void OnHttpsProxyTunnelResponse(const HttpResponseInfo& response_info,
const SSLConfig& used_ssl_config,
const ProxyInfo& used_proxy_info,
- HttpStreamBase* stream) OVERRIDE {}
+ HttpStreamBase* stream) override {}
};
} // namespace
diff --git a/net/http/http_stream_factory_impl_unittest.cc b/net/http/http_stream_factory_impl_unittest.cc
index c56abfd..a93e9b0 100644
--- a/net/http/http_stream_factory_impl_unittest.cc
+++ b/net/http/http_stream_factory_impl_unittest.cc
@@ -62,41 +62,41 @@
virtual int InitializeStream(const HttpRequestInfo* request_info,
RequestPriority priority,
const BoundNetLog& net_log,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return ERR_IO_PENDING;
}
virtual int SendRequest(const HttpRequestHeaders& request_headers,
HttpResponseInfo* response,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return ERR_IO_PENDING;
}
- virtual int ReadResponseHeaders(const CompletionCallback& callback) OVERRIDE {
+ virtual int ReadResponseHeaders(const CompletionCallback& callback) override {
return ERR_IO_PENDING;
}
virtual int ReadResponseBody(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return ERR_IO_PENDING;
}
- virtual void Close(bool not_reusable) OVERRIDE {}
- virtual bool IsResponseBodyComplete() const OVERRIDE { return false; }
- virtual bool CanFindEndOfResponse() const OVERRIDE { return false; }
- virtual bool IsConnectionReused() const OVERRIDE { return false; }
- virtual void SetConnectionReused() OVERRIDE {}
- virtual bool IsConnectionReusable() const OVERRIDE { return false; }
- virtual int64 GetTotalReceivedBytes() const OVERRIDE { return 0; }
+ virtual void Close(bool not_reusable) override {}
+ virtual bool IsResponseBodyComplete() const override { return false; }
+ virtual bool CanFindEndOfResponse() const override { return false; }
+ virtual bool IsConnectionReused() const override { return false; }
+ virtual void SetConnectionReused() override {}
+ virtual bool IsConnectionReusable() const override { return false; }
+ virtual int64 GetTotalReceivedBytes() const override { return 0; }
virtual bool GetLoadTimingInfo(LoadTimingInfo* load_timing_info) const
- OVERRIDE {
+ override {
return false;
}
- virtual void GetSSLInfo(SSLInfo* ssl_info) OVERRIDE {}
+ virtual void GetSSLInfo(SSLInfo* ssl_info) override {}
virtual void GetSSLCertRequestInfo(
- SSLCertRequestInfo* cert_request_info) OVERRIDE {}
- virtual bool IsSpdyHttpStream() const OVERRIDE { return false; }
- virtual void Drain(HttpNetworkSession* session) OVERRIDE {}
- virtual void SetPriority(RequestPriority priority) OVERRIDE {}
+ SSLCertRequestInfo* cert_request_info) override {}
+ virtual bool IsSpdyHttpStream() const override { return false; }
+ virtual void Drain(HttpNetworkSession* session) override {}
+ virtual void SetPriority(RequestPriority priority) override {}
- virtual scoped_ptr<WebSocketStream> Upgrade() OVERRIDE {
+ virtual scoped_ptr<WebSocketStream> Upgrade() override {
return scoped_ptr<WebSocketStream>();
}
@@ -124,7 +124,7 @@
private:
// HttpStreamFactoryImpl methods.
- virtual void OnPreconnectsCompleteInternal() OVERRIDE {
+ virtual void OnPreconnectsCompleteInternal() override {
preconnect_done_ = true;
if (waiting_for_preconnect_)
base::MessageLoop::current()->Quit();
@@ -145,7 +145,7 @@
virtual void OnStreamReady(
const SSLConfig& used_ssl_config,
const ProxyInfo& used_proxy_info,
- HttpStreamBase* stream) OVERRIDE {
+ HttpStreamBase* stream) override {
stream_done_ = true;
if (waiting_for_stream_)
base::MessageLoop::current()->Quit();
@@ -157,7 +157,7 @@
virtual void OnWebSocketHandshakeStreamReady(
const SSLConfig& used_ssl_config,
const ProxyInfo& used_proxy_info,
- WebSocketHandshakeStreamBase* stream) OVERRIDE {
+ WebSocketHandshakeStreamBase* stream) override {
stream_done_ = true;
if (waiting_for_stream_)
base::MessageLoop::current()->Quit();
@@ -168,25 +168,25 @@
virtual void OnStreamFailed(
int status,
- const SSLConfig& used_ssl_config) OVERRIDE {}
+ const SSLConfig& used_ssl_config) override {}
virtual void OnCertificateError(
int status,
const SSLConfig& used_ssl_config,
- const SSLInfo& ssl_info) OVERRIDE {}
+ const SSLInfo& ssl_info) override {}
virtual void OnNeedsProxyAuth(const HttpResponseInfo& proxy_response,
const SSLConfig& used_ssl_config,
const ProxyInfo& used_proxy_info,
- HttpAuthController* auth_controller) OVERRIDE {}
+ HttpAuthController* auth_controller) override {}
virtual void OnNeedsClientAuth(const SSLConfig& used_ssl_config,
- SSLCertRequestInfo* cert_info) OVERRIDE {}
+ SSLCertRequestInfo* cert_info) override {}
virtual void OnHttpsProxyTunnelResponse(const HttpResponseInfo& response_info,
const SSLConfig& used_ssl_config,
const ProxyInfo& used_proxy_info,
- HttpStreamBase* stream) OVERRIDE {}
+ HttpStreamBase* stream) override {}
void WaitForStream() {
while (!stream_done_) {
@@ -264,13 +264,13 @@
virtual WebSocketHandshakeStreamBase* CreateBasicStream(
scoped_ptr<ClientSocketHandle> connection,
- bool using_proxy) OVERRIDE {
+ bool using_proxy) override {
return new WebSocketBasicHandshakeStream(connection.Pass());
}
virtual WebSocketHandshakeStreamBase* CreateSpdyStream(
const base::WeakPtr<SpdySession>& spdy_session,
- bool use_relative_url) OVERRIDE {
+ bool use_relative_url) override {
return new WebSocketSpdyHandshakeStream(spdy_session);
}
};
@@ -329,7 +329,7 @@
RequestPriority priority,
ClientSocketHandle* handle,
const CompletionCallback& callback,
- const BoundNetLog& net_log) OVERRIDE {
+ const BoundNetLog& net_log) override {
ADD_FAILURE();
return ERR_UNEXPECTED;
}
@@ -337,38 +337,38 @@
virtual void RequestSockets(const std::string& group_name,
const void* socket_params,
int num_sockets,
- const BoundNetLog& net_log) OVERRIDE {
+ const BoundNetLog& net_log) override {
last_num_streams_ = num_sockets;
}
virtual void CancelRequest(const std::string& group_name,
- ClientSocketHandle* handle) OVERRIDE {
+ ClientSocketHandle* handle) override {
ADD_FAILURE();
}
virtual void ReleaseSocket(const std::string& group_name,
scoped_ptr<StreamSocket> socket,
- int id) OVERRIDE {
+ int id) override {
ADD_FAILURE();
}
- virtual void CloseIdleSockets() OVERRIDE {
+ virtual void CloseIdleSockets() override {
ADD_FAILURE();
}
- virtual int IdleSocketCount() const OVERRIDE {
+ virtual int IdleSocketCount() const override {
ADD_FAILURE();
return 0;
}
virtual int IdleSocketCountInGroup(
- const std::string& group_name) const OVERRIDE {
+ const std::string& group_name) const override {
ADD_FAILURE();
return 0;
}
virtual LoadState GetLoadState(
const std::string& group_name,
- const ClientSocketHandle* handle) const OVERRIDE {
+ const ClientSocketHandle* handle) const override {
ADD_FAILURE();
return LOAD_STATE_IDLE;
}
- virtual base::TimeDelta ConnectionTimeout() const OVERRIDE {
+ virtual base::TimeDelta ConnectionTimeout() const override {
return base::TimeDelta();
}
diff --git a/net/http/http_stream_parser.cc b/net/http/http_stream_parser.cc
index 86b188b..4a60a6b 100644
--- a/net/http/http_stream_parser.cc
+++ b/net/http/http_stream_parser.cc
@@ -7,6 +7,7 @@
#include "base/bind.h"
#include "base/compiler_specific.h"
#include "base/logging.h"
+#include "base/profiler/scoped_profile.h"
#include "base/strings/string_util.h"
#include "base/values.h"
#include "net/base/io_buffer.h"
@@ -357,6 +358,11 @@
}
void HttpStreamParser::OnIOComplete(int result) {
+ // TODO(vadimt): Remove ScopedProfile below once crbug.com/418183 is fixed.
+ tracked_objects::ScopedProfile tracking_profile(
+ FROM_HERE_WITH_EXPLICIT_FUNCTION(
+ "418183 DidCompleteReadWrite => HttpStreamParser::OnIOComplete"));
+
result = DoLoop(result);
// The client callback can do anything, including destroying this class,
diff --git a/net/http/http_stream_parser_unittest.cc b/net/http/http_stream_parser_unittest.cc
index 38279a4..ef83638 100644
--- a/net/http/http_stream_parser_unittest.cc
+++ b/net/http/http_stream_parser_unittest.cc
@@ -15,11 +15,12 @@
#include "base/run_loop.h"
#include "base/strings/string_piece.h"
#include "base/strings/stringprintf.h"
+#include "net/base/chunked_upload_data_stream.h"
+#include "net/base/elements_upload_data_stream.h"
#include "net/base/io_buffer.h"
#include "net/base/net_errors.h"
#include "net/base/test_completion_callback.h"
#include "net/base/upload_bytes_element_reader.h"
-#include "net/base/upload_data_stream.h"
#include "net/base/upload_file_element_reader.h"
#include "net/http/http_request_headers.h"
#include "net/http/http_request_info.h"
@@ -106,7 +107,7 @@
TEST(HttpStreamParser, ShouldMergeRequestHeadersAndBody_EmptyBody) {
ScopedVector<UploadElementReader> element_readers;
scoped_ptr<UploadDataStream> body(
- new UploadDataStream(element_readers.Pass(), 0));
+ new ElementsUploadDataStream(element_readers.Pass(), 0));
ASSERT_EQ(OK, body->Init(CompletionCallback()));
// Shouldn't be merged if upload data is empty.
ASSERT_FALSE(HttpStreamParser::ShouldMergeRequestHeadersAndBody(
@@ -115,10 +116,9 @@
TEST(HttpStreamParser, ShouldMergeRequestHeadersAndBody_ChunkedBody) {
const std::string payload = "123";
- scoped_ptr<UploadDataStream> body(
- new UploadDataStream(UploadDataStream::CHUNKED, 0));
- body->AppendChunk(payload.data(), payload.size(), true);
- ASSERT_EQ(OK, body->Init(CompletionCallback()));
+ scoped_ptr<ChunkedUploadDataStream> body(new ChunkedUploadDataStream(0));
+ body->AppendData(payload.data(), payload.size(), true);
+ ASSERT_EQ(OK, body->Init(TestCompletionCallback().callback()));
// Shouldn't be merged if upload data carries chunked data.
ASSERT_FALSE(HttpStreamParser::ShouldMergeRequestHeadersAndBody(
"some header", body.get()));
@@ -143,7 +143,7 @@
base::Time()));
scoped_ptr<UploadDataStream> body(
- new UploadDataStream(element_readers.Pass(), 0));
+ new ElementsUploadDataStream(element_readers.Pass(), 0));
TestCompletionCallback callback;
ASSERT_EQ(ERR_IO_PENDING, body->Init(callback.callback()));
ASSERT_EQ(OK, callback.WaitForResult());
@@ -162,7 +162,7 @@
payload.data(), payload.size()));
scoped_ptr<UploadDataStream> body(
- new UploadDataStream(element_readers.Pass(), 0));
+ new ElementsUploadDataStream(element_readers.Pass(), 0));
ASSERT_EQ(OK, body->Init(CompletionCallback()));
// Yes, should be merged if the in-memory body is small here.
ASSERT_TRUE(HttpStreamParser::ShouldMergeRequestHeadersAndBody(
@@ -176,7 +176,7 @@
payload.data(), payload.size()));
scoped_ptr<UploadDataStream> body(
- new UploadDataStream(element_readers.Pass(), 0));
+ new ElementsUploadDataStream(element_readers.Pass(), 0));
ASSERT_EQ(OK, body->Init(CompletionCallback()));
// Shouldn't be merged if the in-memory body is large here.
ASSERT_FALSE(HttpStreamParser::ShouldMergeRequestHeadersAndBody(
@@ -218,9 +218,9 @@
MockRead(SYNCHRONOUS, 0, 8), // EOF
};
- UploadDataStream upload_stream(UploadDataStream::CHUNKED, 0);
- upload_stream.AppendChunk(kChunk1, arraysize(kChunk1) - 1, false);
- ASSERT_EQ(OK, upload_stream.Init(CompletionCallback()));
+ ChunkedUploadDataStream upload_stream(0);
+ upload_stream.AppendData(kChunk1, arraysize(kChunk1) - 1, false);
+ ASSERT_EQ(OK, upload_stream.Init(TestCompletionCallback().callback()));
DeterministicSocketData data(reads, arraysize(reads),
writes, arraysize(writes));
@@ -267,7 +267,7 @@
// Now append another chunk (while the first write is still pending), which
// should not confuse the state machine.
- upload_stream.AppendChunk(kChunk2, arraysize(kChunk2) - 1, false);
+ upload_stream.AppendData(kChunk2, arraysize(kChunk2) - 1, false);
ASSERT_FALSE(callback.have_result());
// Complete writing the first chunk, which should then enqueue the second
@@ -284,7 +284,7 @@
// Add the final chunk. This will enqueue another write, but it will not
// complete due to the async nature.
- upload_stream.AppendChunk(kChunk3, arraysize(kChunk3) - 1, true);
+ upload_stream.AppendData(kChunk3, arraysize(kChunk3) - 1, true);
ASSERT_FALSE(callback.have_result());
// Finalize writing the last chunk, which will enqueue the trailer.
diff --git a/net/http/http_transaction_test_util.h b/net/http/http_transaction_test_util.h
index b8663c6..e0f5bda 100644
--- a/net/http/http_transaction_test_util.h
+++ b/net/http/http_transaction_test_util.h
@@ -172,57 +172,57 @@
virtual int Start(const net::HttpRequestInfo* request,
const net::CompletionCallback& callback,
- const net::BoundNetLog& net_log) OVERRIDE;
+ const net::BoundNetLog& net_log) override;
virtual int RestartIgnoringLastError(
- const net::CompletionCallback& callback) OVERRIDE;
+ const net::CompletionCallback& callback) override;
virtual int RestartWithCertificate(
net::X509Certificate* client_cert,
- const net::CompletionCallback& callback) OVERRIDE;
+ const net::CompletionCallback& callback) override;
virtual int RestartWithAuth(
const net::AuthCredentials& credentials,
- const net::CompletionCallback& callback) OVERRIDE;
+ const net::CompletionCallback& callback) override;
- virtual bool IsReadyToRestartForAuth() OVERRIDE;
+ virtual bool IsReadyToRestartForAuth() override;
virtual int Read(net::IOBuffer* buf, int buf_len,
- const net::CompletionCallback& callback) OVERRIDE;
+ const net::CompletionCallback& callback) override;
- virtual void StopCaching() OVERRIDE;
+ virtual void StopCaching() override;
virtual bool GetFullRequestHeaders(
- net::HttpRequestHeaders* headers) const OVERRIDE;
+ net::HttpRequestHeaders* headers) const override;
- virtual int64 GetTotalReceivedBytes() const OVERRIDE;
+ virtual int64 GetTotalReceivedBytes() const override;
- virtual void DoneReading() OVERRIDE;
+ virtual void DoneReading() override;
- virtual const net::HttpResponseInfo* GetResponseInfo() const OVERRIDE;
+ virtual const net::HttpResponseInfo* GetResponseInfo() const override;
- virtual net::LoadState GetLoadState() const OVERRIDE;
+ virtual net::LoadState GetLoadState() const override;
- virtual net::UploadProgress GetUploadProgress() const OVERRIDE;
+ virtual net::UploadProgress GetUploadProgress() const override;
virtual void SetQuicServerInfo(
- net::QuicServerInfo* quic_server_info) OVERRIDE;
+ net::QuicServerInfo* quic_server_info) override;
virtual bool GetLoadTimingInfo(
- net::LoadTimingInfo* load_timing_info) const OVERRIDE;
+ net::LoadTimingInfo* load_timing_info) const override;
- virtual void SetPriority(net::RequestPriority priority) OVERRIDE;
+ virtual void SetPriority(net::RequestPriority priority) override;
virtual void SetWebSocketHandshakeStreamCreateHelper(
- CreateHelper* create_helper) OVERRIDE;
+ CreateHelper* create_helper) override;
virtual void SetBeforeNetworkStartCallback(
- const BeforeNetworkStartCallback& callback) OVERRIDE;
+ const BeforeNetworkStartCallback& callback) override;
virtual void SetBeforeProxyHeadersSentCallback(
- const BeforeProxyHeadersSentCallback& callback) OVERRIDE;
+ const BeforeProxyHeadersSentCallback& callback) override;
- virtual int ResumeNetworkStart() OVERRIDE;
+ virtual int ResumeNetworkStart() override;
CreateHelper* websocket_handshake_stream_create_helper() {
return websocket_handshake_stream_create_helper_;
@@ -292,9 +292,9 @@
// net::HttpTransactionFactory:
virtual int CreateTransaction(
net::RequestPriority priority,
- scoped_ptr<net::HttpTransaction>* trans) OVERRIDE;
- virtual net::HttpCache* GetCache() OVERRIDE;
- virtual net::HttpNetworkSession* GetSession() OVERRIDE;
+ scoped_ptr<net::HttpTransaction>* trans) override;
+ virtual net::HttpCache* GetCache() override;
+ virtual net::HttpNetworkSession* GetSession() override;
private:
int transaction_count_;
diff --git a/net/http/mock_allow_url_security_manager.h b/net/http/mock_allow_url_security_manager.h
index 8fbe2c5..3e19f9b 100644
--- a/net/http/mock_allow_url_security_manager.h
+++ b/net/http/mock_allow_url_security_manager.h
@@ -16,8 +16,8 @@
MockAllowURLSecurityManager();
virtual ~MockAllowURLSecurityManager();
- virtual bool CanUseDefaultCredentials(const GURL& auth_origin) const OVERRIDE;
- virtual bool CanDelegate(const GURL& auth_origin) const OVERRIDE;
+ virtual bool CanUseDefaultCredentials(const GURL& auth_origin) const override;
+ virtual bool CanDelegate(const GURL& auth_origin) const override;
private:
DISALLOW_COPY_AND_ASSIGN(MockAllowURLSecurityManager);
diff --git a/net/http/mock_gssapi_library_posix.h b/net/http/mock_gssapi_library_posix.h
index faecdd4..cbd35e5 100644
--- a/net/http/mock_gssapi_library_posix.h
+++ b/net/http/mock_gssapi_library_posix.h
@@ -122,32 +122,32 @@
// Initializes the library, including any necessary dynamic libraries.
// This is done separately from construction (which happens at startup time)
// in order to delay work until the class is actually needed.
- virtual bool Init() OVERRIDE;
+ virtual bool Init() override;
// These methods match the ones in the GSSAPI library.
virtual OM_uint32 import_name(
OM_uint32* minor_status,
const gss_buffer_t input_name_buffer,
const gss_OID input_name_type,
- gss_name_t* output_name) OVERRIDE;
+ gss_name_t* output_name) override;
virtual OM_uint32 release_name(
OM_uint32* minor_status,
- gss_name_t* input_name) OVERRIDE;
+ gss_name_t* input_name) override;
virtual OM_uint32 release_buffer(
OM_uint32* minor_status,
- gss_buffer_t buffer) OVERRIDE;
+ gss_buffer_t buffer) override;
virtual OM_uint32 display_name(
OM_uint32* minor_status,
const gss_name_t input_name,
gss_buffer_t output_name_buffer,
- gss_OID* output_name_type) OVERRIDE;
+ gss_OID* output_name_type) override;
virtual OM_uint32 display_status(
OM_uint32* minor_status,
OM_uint32 status_value,
int status_type,
const gss_OID mech_type,
OM_uint32* message_contex,
- gss_buffer_t status_string) OVERRIDE;
+ gss_buffer_t status_string) override;
virtual OM_uint32 init_sec_context(
OM_uint32* minor_status,
const gss_cred_id_t initiator_cred_handle,
@@ -161,18 +161,18 @@
gss_OID* actual_mech_type,
gss_buffer_t output_token,
OM_uint32* ret_flags,
- OM_uint32* time_rec) OVERRIDE;
+ OM_uint32* time_rec) override;
virtual OM_uint32 wrap_size_limit(
OM_uint32* minor_status,
const gss_ctx_id_t context_handle,
int conf_req_flag,
gss_qop_t qop_req,
OM_uint32 req_output_size,
- OM_uint32* max_input_size) OVERRIDE;
+ OM_uint32* max_input_size) override;
virtual OM_uint32 delete_sec_context(
OM_uint32* minor_status,
gss_ctx_id_t* context_handle,
- gss_buffer_t output_token) OVERRIDE;
+ gss_buffer_t output_token) override;
virtual OM_uint32 inquire_context(
OM_uint32* minor_status,
const gss_ctx_id_t context_handle,
@@ -182,7 +182,7 @@
gss_OID* mech_type,
OM_uint32* ctx_flags,
int* locally_initiated,
- int* open) OVERRIDE;
+ int* open) override;
private:
FRIEND_TEST_ALL_PREFIXES(HttpAuthGSSAPIPOSIXTest, GSSAPICycle);
diff --git a/net/http/mock_http_cache.cc b/net/http/mock_http_cache.cc
index cbae9b8..325454e 100644
--- a/net/http/mock_http_cache.cc
+++ b/net/http/mock_http_cache.cc
@@ -460,7 +460,7 @@
class MockDiskCache::NotImplementedIterator : public Iterator {
public:
virtual int OpenNextEntry(disk_cache::Entry** next_entry,
- const net::CompletionCallback& callback) OVERRIDE {
+ const net::CompletionCallback& callback) override {
return net::ERR_NOT_IMPLEMENTED;
}
};
diff --git a/net/http/mock_http_cache.h b/net/http/mock_http_cache.h
index ab63b11..9b2caf5 100644
--- a/net/http/mock_http_cache.h
+++ b/net/http/mock_http_cache.h
@@ -25,29 +25,29 @@
bool is_doomed() const { return doomed_; }
- virtual void Doom() OVERRIDE;
- virtual void Close() OVERRIDE;
- virtual std::string GetKey() const OVERRIDE;
- virtual base::Time GetLastUsed() const OVERRIDE;
- virtual base::Time GetLastModified() const OVERRIDE;
- virtual int32 GetDataSize(int index) const OVERRIDE;
+ virtual void Doom() override;
+ virtual void Close() override;
+ virtual std::string GetKey() const override;
+ virtual base::Time GetLastUsed() const override;
+ virtual base::Time GetLastModified() const override;
+ virtual int32 GetDataSize(int index) const override;
virtual int ReadData(int index, int offset, net::IOBuffer* buf, int buf_len,
- const net::CompletionCallback& callback) OVERRIDE;
+ const net::CompletionCallback& callback) override;
virtual int WriteData(int index, int offset, net::IOBuffer* buf, int buf_len,
const net::CompletionCallback& callback,
- bool truncate) OVERRIDE;
+ bool truncate) override;
virtual int ReadSparseData(int64 offset, net::IOBuffer* buf, int buf_len,
- const net::CompletionCallback& callback) OVERRIDE;
+ const net::CompletionCallback& callback) override;
virtual int WriteSparseData(
int64 offset, net::IOBuffer* buf, int buf_len,
- const net::CompletionCallback& callback) OVERRIDE;
+ const net::CompletionCallback& callback) override;
virtual int GetAvailableRange(
int64 offset, int len, int64* start,
- const net::CompletionCallback& callback) OVERRIDE;
- virtual bool CouldBeSparse() const OVERRIDE;
- virtual void CancelSparseIO() OVERRIDE;
+ const net::CompletionCallback& callback) override;
+ virtual bool CouldBeSparse() const override;
+ virtual void CancelSparseIO() override;
virtual int ReadyForSparseIO(
- const net::CompletionCallback& completion_callback) OVERRIDE;
+ const net::CompletionCallback& completion_callback) override;
// Fail most subsequent requests.
void set_fail_requests() { fail_requests_ = true; }
@@ -98,26 +98,26 @@
MockDiskCache();
virtual ~MockDiskCache();
- virtual net::CacheType GetCacheType() const OVERRIDE;
- virtual int32 GetEntryCount() const OVERRIDE;
+ virtual net::CacheType GetCacheType() const override;
+ virtual int32 GetEntryCount() const override;
virtual int OpenEntry(const std::string& key, disk_cache::Entry** entry,
- const net::CompletionCallback& callback) OVERRIDE;
+ const net::CompletionCallback& callback) override;
virtual int CreateEntry(const std::string& key, disk_cache::Entry** entry,
- const net::CompletionCallback& callback) OVERRIDE;
+ const net::CompletionCallback& callback) override;
virtual int DoomEntry(const std::string& key,
- const net::CompletionCallback& callback) OVERRIDE;
- virtual int DoomAllEntries(const net::CompletionCallback& callback) OVERRIDE;
+ const net::CompletionCallback& callback) override;
+ virtual int DoomAllEntries(const net::CompletionCallback& callback) override;
virtual int DoomEntriesBetween(
base::Time initial_time,
base::Time end_time,
- const net::CompletionCallback& callback) OVERRIDE;
+ const net::CompletionCallback& callback) override;
virtual int DoomEntriesSince(
base::Time initial_time,
- const net::CompletionCallback& callback) OVERRIDE;
- virtual scoped_ptr<Iterator> CreateIterator() OVERRIDE;
+ const net::CompletionCallback& callback) override;
+ virtual scoped_ptr<Iterator> CreateIterator() override;
virtual void GetStats(
- std::vector<std::pair<std::string, std::string> >* stats) OVERRIDE;
- virtual void OnExternalCacheHit(const std::string& key) OVERRIDE;
+ std::vector<std::pair<std::string, std::string> >* stats) override;
+ virtual void OnExternalCacheHit(const std::string& key) override;
// Returns number of times a cache entry was successfully opened.
int open_count() const { return open_count_; }
@@ -158,7 +158,7 @@
public:
virtual int CreateBackend(net::NetLog* net_log,
scoped_ptr<disk_cache::Backend>* backend,
- const net::CompletionCallback& callback) OVERRIDE;
+ const net::CompletionCallback& callback) override;
};
class MockHttpCache {
@@ -211,14 +211,14 @@
// This version of the disk cache doesn't invoke CreateEntry callbacks.
class MockDiskCacheNoCB : public MockDiskCache {
virtual int CreateEntry(const std::string& key, disk_cache::Entry** entry,
- const net::CompletionCallback& callback) OVERRIDE;
+ const net::CompletionCallback& callback) override;
};
class MockBackendNoCbFactory : public net::HttpCache::BackendFactory {
public:
virtual int CreateBackend(net::NetLog* net_log,
scoped_ptr<disk_cache::Backend>* backend,
- const net::CompletionCallback& callback) OVERRIDE;
+ const net::CompletionCallback& callback) override;
};
// This backend factory allows us to control the backend instantiation.
@@ -229,7 +229,7 @@
virtual int CreateBackend(net::NetLog* net_log,
scoped_ptr<disk_cache::Backend>* backend,
- const net::CompletionCallback& callback) OVERRIDE;
+ const net::CompletionCallback& callback) override;
// Completes the backend creation. Any blocked call will be notified via the
// provided callback.
diff --git a/net/http/partial_data.cc b/net/http/partial_data.cc
index c7cde99..a453ba4 100644
--- a/net/http/partial_data.cc
+++ b/net/http/partial_data.cc
@@ -8,6 +8,7 @@
#include "base/bind_helpers.h"
#include "base/format_macros.h"
#include "base/logging.h"
+#include "base/profiler/scoped_profile.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
@@ -89,6 +90,11 @@
}
void PartialData::Core::OnIOComplete(int result) {
+ // TODO(vadimt): Remove ScopedProfile below once crbug.com/422516 is fixed.
+ tracked_objects::ScopedProfile tracking_profile(
+ FROM_HERE_WITH_EXPLICIT_FUNCTION(
+ "422516 PartialData::Core::OnIOComplete"));
+
if (owner_)
owner_->GetAvailableRangeCompleted(result, start_);
delete this;
diff --git a/net/http/proxy_connect_redirect_http_stream.h b/net/http/proxy_connect_redirect_http_stream.h
index f848c64..ddaf9b7 100644
--- a/net/http/proxy_connect_redirect_http_stream.h
+++ b/net/http/proxy_connect_redirect_http_stream.h
@@ -28,44 +28,44 @@
virtual int InitializeStream(const HttpRequestInfo* request_info,
RequestPriority priority,
const BoundNetLog& net_log,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int SendRequest(const HttpRequestHeaders& request_headers,
HttpResponseInfo* response,
- const CompletionCallback& callback) OVERRIDE;
- virtual int ReadResponseHeaders(const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual int ReadResponseHeaders(const CompletionCallback& callback) override;
virtual int ReadResponseBody(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
// This function may be called.
- virtual void Close(bool not_reusable) OVERRIDE;
+ virtual void Close(bool not_reusable) override;
- virtual bool IsResponseBodyComplete() const OVERRIDE;
+ virtual bool IsResponseBodyComplete() const override;
// This function may be called.
- virtual bool CanFindEndOfResponse() const OVERRIDE;
+ virtual bool CanFindEndOfResponse() const override;
- virtual bool IsConnectionReused() const OVERRIDE;
- virtual void SetConnectionReused() OVERRIDE;
- virtual bool IsConnectionReusable() const OVERRIDE;
+ virtual bool IsConnectionReused() const override;
+ virtual void SetConnectionReused() override;
+ virtual bool IsConnectionReusable() const override;
- virtual int64 GetTotalReceivedBytes() const OVERRIDE;
+ virtual int64 GetTotalReceivedBytes() const override;
// This function may be called.
virtual bool GetLoadTimingInfo(
- LoadTimingInfo* load_timing_info) const OVERRIDE;
+ LoadTimingInfo* load_timing_info) const override;
- virtual void GetSSLInfo(SSLInfo* ssl_info) OVERRIDE;
+ virtual void GetSSLInfo(SSLInfo* ssl_info) override;
virtual void GetSSLCertRequestInfo(
- SSLCertRequestInfo* cert_request_info) OVERRIDE;
- virtual bool IsSpdyHttpStream() const OVERRIDE;
- virtual void Drain(HttpNetworkSession* session) OVERRIDE;
+ SSLCertRequestInfo* cert_request_info) override;
+ virtual bool IsSpdyHttpStream() const override;
+ virtual void Drain(HttpNetworkSession* session) override;
// This function may be called.
- virtual void SetPriority(RequestPriority priority) OVERRIDE;
+ virtual void SetPriority(RequestPriority priority) override;
- virtual UploadProgress GetUploadProgress() const OVERRIDE;
- virtual HttpStream* RenewStreamForAuth() OVERRIDE;
+ virtual UploadProgress GetUploadProgress() const override;
+ virtual HttpStream* RenewStreamForAuth() override;
private:
bool has_load_timing_info_;
diff --git a/net/http/transport_security_persister.h b/net/http/transport_security_persister.h
index 79a0d7a..5081c38 100644
--- a/net/http/transport_security_persister.h
+++ b/net/http/transport_security_persister.h
@@ -65,7 +65,7 @@
virtual ~TransportSecurityPersister();
// Called by the TransportSecurityState when it changes its state.
- virtual void StateIsDirty(TransportSecurityState*) OVERRIDE;
+ virtual void StateIsDirty(TransportSecurityState*) override;
// ImportantFileWriter::DataSerializer:
//
@@ -97,7 +97,7 @@
// The reason for hashing them is so that the stored state does not
// trivially reveal a user's browsing history to an attacker reading the
// serialized state on disk.
- virtual bool SerializeData(std::string* data) OVERRIDE;
+ virtual bool SerializeData(std::string* data) override;
// Clears any existing non-static entries, and then re-populates
// |transport_security_state_|.
diff --git a/net/http/transport_security_persister_unittest.cc b/net/http/transport_security_persister_unittest.cc
index f4d49f7..b8dad5a 100644
--- a/net/http/transport_security_persister_unittest.cc
+++ b/net/http/transport_security_persister_unittest.cc
@@ -27,7 +27,7 @@
base::MessageLoopForIO::current()->RunUntilIdle();
}
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
persister_.reset(new TransportSecurityPersister(
&state_,
diff --git a/net/http/transport_security_state_static.h b/net/http/transport_security_state_static.h
index f1bec20..edbe166 100644
--- a/net/http/transport_security_state_static.h
+++ b/net/http/transport_security_state_static.h
@@ -672,1327 +672,1368 @@
// value has the MSB set then it represents a literal leaf value. Otherwise
// it's a pointer to the n'th element of the array.
static const uint8 kHSTSHuffmanTree[] = {
- 0xad, 0xf9, 0x00, 0xf7, 0x01, 0xec, 0x02, 0x80,
- 0xb3, 0xb1, 0xf1, 0x04, 0xb4, 0x05, 0x06, 0xf8,
- 0xf6, 0x07, 0xeb, 0x08, 0xed, 0x09, 0xe1, 0x0a,
- 0xe2, 0xe8, 0xe3, 0x0c, 0xe7, 0x0d, 0x0b, 0x0e,
- 0x03, 0x0f, 0xee, 0xf3, 0xb9, 0xb6, 0x12, 0xb7,
- 0xb5, 0x13, 0xb0, 0x14, 0x15, 0xb2, 0x16, 0xea,
- 0xfa, 0x17, 0x18, 0xe6, 0x19, 0xf5, 0xae, 0x1a,
- 0x11, 0x1b, 0xff, 0x1c, 0xf4, 0xe9, 0xe5, 0x1e,
- 0xe4, 0xf0, 0x20, 0xf2, 0x21, 0xef, 0x1f, 0x22,
- 0x1d, 0x23, 0x10, 0x24,
+ 0xf0, 0xf7, 0x00, 0xec, 0x01, 0x80, 0xb3, 0xb0,
+ 0x03, 0xf1, 0xb4, 0x04, 0x05, 0xf8, 0xf6, 0x06,
+ 0xeb, 0x07, 0xed, 0x08, 0xe1, 0x09, 0xe2, 0xe8,
+ 0xe3, 0x0b, 0xe7, 0x0c, 0x0a, 0x0d, 0x02, 0x0e,
+ 0xf3, 0xee, 0xb9, 0xb6, 0x11, 0xb7, 0xb5, 0x12,
+ 0xb1, 0x13, 0x14, 0xb2, 0x15, 0xea, 0xfa, 0x16,
+ 0x17, 0xe6, 0xf5, 0x18, 0xae, 0x19, 0x10, 0x1a,
+ 0xff, 0x1b, 0xf4, 0xe9, 0xe5, 0x1d, 0xad, 0xf9,
+ 0xe4, 0x1f, 0x20, 0xf2, 0x21, 0xef, 0x1e, 0x22,
+ 0x1c, 0x23, 0x0f, 0x24,
};
static const uint8 kPreloadedHSTSData[] = {
0xfe, 0xb6, 0x0b, 0x7f, 0xb1, 0xa2, 0x25, 0x9f,
0x0b, 0x7f, 0xb1, 0xa2, 0x2d, 0x9b, 0x1f, 0x2a,
- 0x48, 0x54, 0xb9, 0x13, 0x4b, 0xc8, 0xb4, 0xfe,
- 0xd6, 0x0f, 0x2a, 0xdd, 0x4a, 0xb1, 0xa8, 0x9f,
- 0x9d, 0x4d, 0xae, 0xc5, 0x8e, 0x84, 0x3f, 0x3f,
- 0x43, 0x95, 0xb1, 0x31, 0x05, 0xf8, 0x78, 0x4f,
- 0xeb, 0x60, 0xb7, 0xfb, 0x1a, 0x2a, 0x29, 0xf0,
- 0xb7, 0xfb, 0x1a, 0x2b, 0xd9, 0xf6, 0xee, 0x1a,
- 0xf7, 0x8e, 0x95, 0xb0, 0xf7, 0x04, 0xc2, 0x7f,
- 0xeb, 0x7b, 0xad, 0x82, 0xdf, 0xec, 0x68, 0x91,
- 0xa7, 0xff, 0x59, 0x5e, 0xeb, 0x60, 0xb7, 0xfb,
- 0x1a, 0x27, 0x89, 0xff, 0xd6, 0x57, 0xba, 0xd8,
- 0x2d, 0xfe, 0xc6, 0x89, 0xfe, 0x7f, 0xf5, 0x95,
- 0xee, 0xb6, 0x0b, 0x7f, 0xb1, 0xa2, 0x86, 0x9f,
- 0xfd, 0x65, 0x7b, 0xad, 0x82, 0xdf, 0xec, 0x68,
- 0xa2, 0x27, 0xfd, 0xee, 0xb6, 0x0b, 0x7f, 0xb1,
- 0xa2, 0x91, 0x9f, 0xff, 0xb3, 0x8a, 0x20, 0x36,
- 0xd7, 0x7f, 0x9a, 0xd5, 0x39, 0x2a, 0x56, 0x52,
- 0x29, 0x17, 0xd1, 0xa7, 0xfe, 0xb7, 0xba, 0xd8,
- 0x2d, 0xfe, 0xc6, 0x89, 0x42, 0x1e, 0x5c, 0xe9,
- 0x74, 0x69, 0x6c, 0x62, 0x30, 0x97, 0x51, 0x35,
- 0x13, 0x39, 0x52, 0x5e, 0x94, 0xaa, 0xa5, 0x7c,
- 0x3d, 0xae, 0x0b, 0x27, 0xff, 0x59, 0x5e, 0xeb,
- 0x60, 0xb7, 0xfb, 0x1a, 0x27, 0x39, 0xff, 0xd6,
- 0x57, 0xba, 0xd8, 0x2d, 0xfe, 0xc6, 0x8a, 0x26,
- 0x7f, 0xe1, 0x75, 0xa9, 0xba, 0xac, 0xed, 0xf2,
- 0x74, 0x0a, 0x3a, 0xea, 0xa5, 0x7a, 0x94, 0xfe,
- 0xb6, 0x0b, 0x7f, 0xb1, 0xa2, 0x1c, 0x9f, 0x0b,
- 0x7f, 0xb1, 0xa2, 0x2f, 0x9f, 0x7e, 0x9c, 0x97,
- 0x4a, 0x95, 0xb0, 0xf6, 0x3a, 0x61, 0x3f, 0xfa,
- 0xca, 0xf7, 0x5b, 0x05, 0xbf, 0xd8, 0xd1, 0x32,
- 0x4f, 0xeb, 0x60, 0xb7, 0xfb, 0x1a, 0x2d, 0xe9,
- 0xff, 0xd6, 0x57, 0xba, 0xd8, 0x2d, 0xfe, 0xc6,
- 0x8a, 0x4e, 0x11, 0x39, 0x97, 0x42, 0x4f, 0x09,
- 0xea, 0xa4, 0xb8, 0xee, 0x7f, 0x5b, 0x05, 0xbf,
- 0xd8, 0xd1, 0x0e, 0xcf, 0xfe, 0xb2, 0xbd, 0xd6,
- 0xc1, 0x6f, 0xf6, 0x34, 0x4b, 0x13, 0xfa, 0xd8,
- 0x2d, 0xfe, 0xc6, 0x88, 0xc2, 0x7f, 0xeb, 0x7b,
- 0xad, 0x82, 0xdf, 0xec, 0x68, 0x8f, 0x67, 0xf5,
- 0xb0, 0x5b, 0xfd, 0x8d, 0x16, 0x1c, 0xfe, 0xb6,
- 0x0b, 0x7f, 0xb1, 0xa2, 0xe7, 0x84, 0x4e, 0x29,
- 0xe3, 0xb7, 0x29, 0x6c, 0xed, 0x49, 0x9a, 0x3b,
- 0x9f, 0xd6, 0xc1, 0x6f, 0xf6, 0x34, 0x43, 0xd3,
- 0xe1, 0x6f, 0xf6, 0x34, 0x44, 0xd3, 0x69, 0x47,
- 0x4f, 0xfe, 0xca, 0x02, 0xf5, 0x53, 0x6f, 0xe9,
- 0x14, 0x74, 0x3e, 0x7c, 0x54, 0x16, 0x9e, 0xd5,
- 0xfe, 0x09, 0xa2, 0x17, 0x95, 0xb1, 0x1c, 0xb5,
- 0x84, 0x95, 0xe4, 0x73, 0xda, 0xa6, 0xf4, 0x74,
- 0xff, 0xed, 0xac, 0xec, 0x7d, 0xc0, 0x2b, 0xff,
- 0xa7, 0x4d, 0xf7, 0x07, 0x4a, 0xe5, 0xc4, 0x43,
- 0x50, 0x8b, 0xd3, 0x27, 0xd4, 0xfd, 0x7b, 0x8e,
- 0x9e, 0xdd, 0x77, 0xc9, 0xd3, 0x82, 0x10, 0x95,
- 0x3e, 0xfe, 0xea, 0x98, 0x55, 0x8b, 0xc9, 0xf7,
- 0xe9, 0x6c, 0xd1, 0xd1, 0xc2, 0x26, 0xf9, 0x3f,
- 0xe9, 0xac, 0xff, 0xdc, 0xed, 0x60, 0x28, 0x9b,
- 0x1b, 0xee, 0x67, 0x4f, 0xfb, 0x77, 0x53, 0xa9,
- 0x54, 0xda, 0x8e, 0x9f, 0xb1, 0x75, 0xee, 0xca,
- 0x9d, 0x3d, 0x9c, 0x63, 0xc7, 0x46, 0x27, 0x9f,
- 0xb8, 0x60, 0xac, 0x65, 0x44, 0xce, 0x9f, 0xe8,
- 0xbe, 0x7e, 0xc0, 0xa6, 0x71, 0xb3, 0xa7, 0xff,
- 0xff, 0x77, 0xaf, 0xa5, 0xde, 0xe7, 0x14, 0xda,
- 0xc0, 0x57, 0x1f, 0x70, 0xe0, 0x4e, 0x9f, 0x6f,
- 0x57, 0xa3, 0xc7, 0x4f, 0xe7, 0xdd, 0x5b, 0xb7,
- 0xa3, 0xe7, 0x4f, 0xef, 0x0d, 0xeb, 0x26, 0xbc,
- 0xe8, 0xd9, 0xf5, 0xf4, 0xe2, 0x11, 0x33, 0x4c,
- 0x7e, 0x18, 0x4a, 0x4d, 0x7b, 0x8e, 0x9d, 0xfa,
- 0xa9, 0xd3, 0x5e, 0xf1, 0xd3, 0xc9, 0xdd, 0x2c,
- 0xe3, 0x66, 0x23, 0x73, 0xff, 0xeb, 0xd3, 0x40,
- 0x76, 0xfb, 0x80, 0x33, 0x4b, 0xf9, 0xa3, 0xa7,
- 0xfe, 0xa2, 0x5d, 0x03, 0x5d, 0xfd, 0x26, 0x8e,
- 0x9f, 0xc0, 0x3e, 0xed, 0xd2, 0xf5, 0x1d, 0x1c,
- 0x9f, 0xef, 0x51, 0xa7, 0xfc, 0x2b, 0x01, 0x54,
- 0xdb, 0xdf, 0xa3, 0xa1, 0x0f, 0x8e, 0xf2, 0x39,
- 0xff, 0xff, 0xeb, 0xfb, 0x51, 0xea, 0x2c, 0x00,
- 0x3a, 0xdb, 0xb1, 0xfd, 0x62, 0xee, 0xe5, 0x4e,
- 0x92, 0x1d, 0x3f, 0x9d, 0xe3, 0xba, 0xa3, 0xe7,
- 0x4f, 0xff, 0xff, 0xed, 0xf3, 0x5e, 0xe7, 0xbe,
- 0x07, 0x14, 0xbc, 0x0e, 0xe3, 0xee, 0xcb, 0xde,
- 0xee, 0x7b, 0xe7, 0x4e, 0xff, 0x63, 0x45, 0x31,
- 0x18, 0x8b, 0xe6, 0x84, 0xc4, 0xff, 0xb3, 0xaf,
- 0xba, 0xba, 0x41, 0x58, 0xe9, 0xf3, 0xfd, 0xc5,
- 0xd8, 0x74, 0x6c, 0xfa, 0x3c, 0xfe, 0x7f, 0xbd,
- 0x5c, 0x51, 0x1e, 0xc0, 0x9d, 0x3f, 0xff, 0xbb,
- 0x8d, 0xad, 0x26, 0xaa, 0xb7, 0x70, 0x20, 0x22,
- 0xf7, 0x3a, 0x7f, 0xcc, 0x8a, 0xa6, 0x57, 0x37,
- 0xd3, 0xa1, 0x11, 0x47, 0x46, 0x79, 0xf0, 0xa2,
- 0xe4, 0x13, 0xa7, 0xef, 0xe8, 0x1c, 0x27, 0x4e,
- 0x8c, 0x3f, 0x6d, 0x91, 0x5e, 0x4d, 0x0f, 0x2e,
- 0xcb, 0x70, 0x95, 0x74, 0xe1, 0xa3, 0x3f, 0x7c,
- 0x8b, 0x70, 0x84, 0x58, 0x3c, 0x61, 0xe0, 0xa8,
- 0x47, 0x74, 0x87, 0x51, 0xa9, 0x4f, 0x67, 0x6e,
- 0xdc, 0xce, 0x9f, 0xff, 0xff, 0x53, 0x7a, 0xa6,
- 0x0a, 0x2e, 0x01, 0x57, 0xdc, 0x01, 0x8f, 0xbb,
- 0x2f, 0xef, 0x35, 0x3a, 0x5a, 0xda, 0x2d, 0x6a,
- 0x4f, 0x3f, 0xfe, 0xcc, 0xa6, 0xda, 0x98, 0x05,
- 0x6f, 0xa2, 0x5c, 0xce, 0x9f, 0xfa, 0xbe, 0xf8,
- 0x0a, 0x4c, 0xee, 0x97, 0xce, 0x96, 0xfa, 0x8a,
- 0x1d, 0x2c, 0xcf, 0x9c, 0x8f, 0xba, 0xa7, 0x4f,
- 0xff, 0xff, 0xfb, 0x3b, 0x74, 0x0d, 0xd2, 0xfb,
- 0x2d, 0xbd, 0x22, 0xbb, 0xf7, 0x69, 0xbb, 0x65,
- 0x1f, 0xe5, 0x38, 0x2a, 0x7f, 0xff, 0xe6, 0xd8,
- 0x78, 0xbc, 0x40, 0xbd, 0x1e, 0xab, 0x52, 0xfa,
- 0x3f, 0xe1, 0x3a, 0x6b, 0xde, 0x7d, 0x34, 0x5d,
- 0x94, 0x56, 0x14, 0xb0, 0x8a, 0x9f, 0x69, 0x0c,
- 0xae, 0xc6, 0xdd, 0x3f, 0xf9, 0x4c, 0x05, 0x3d,
- 0xd8, 0xaf, 0xef, 0x27, 0x4f, 0xff, 0xb7, 0xdd,
- 0x53, 0x2e, 0x34, 0xb6, 0x5c, 0xff, 0xbc, 0x9d,
- 0x3f, 0xf2, 0x75, 0xee, 0xe2, 0xea, 0xde, 0x8f,
- 0x9d, 0x15, 0x45, 0x35, 0xeb, 0xd3, 0xd9, 0xac,
- 0x5e, 0x8e, 0x9c, 0xbf, 0x94, 0x3a, 0x6c, 0xe0,
- 0xe8, 0x79, 0x36, 0xd7, 0x43, 0xc2, 0xa4, 0x9a,
- 0x25, 0x5c, 0x3d, 0x3f, 0x70, 0x9d, 0xa7, 0xb8,
- 0xe9, 0xc9, 0xc2, 0x1d, 0x3f, 0x96, 0x76, 0x6a,
- 0xbe, 0xb0, 0x07, 0x90, 0xa2, 0xd9, 0xfa, 0xe2,
- 0x9f, 0x73, 0x4e, 0x4e, 0x9f, 0xc2, 0xb7, 0x72,
- 0x9f, 0xa3, 0xa3, 0x0f, 0x9b, 0x66, 0x93, 0xf2,
- 0x73, 0x9a, 0x05, 0xe3, 0xa1, 0xc7, 0xa1, 0xd2,
- 0x19, 0xff, 0xff, 0x6b, 0xbf, 0xcd, 0x5e, 0xcd,
- 0xf7, 0x5d, 0xc5, 0xc0, 0x54, 0x3d, 0x3a, 0x7f,
- 0xdb, 0xc5, 0x80, 0xaa, 0x53, 0xee, 0x67, 0x4f,
- 0xef, 0x7e, 0xb4, 0xcf, 0x13, 0xa3, 0x83, 0xf4,
- 0xd2, 0x1c, 0x94, 0x74, 0xee, 0xe7, 0x07, 0x42,
- 0x1a, 0xc7, 0xc4, 0x27, 0xe7, 0xeb, 0x99, 0xdb,
- 0xa7, 0x4f, 0x28, 0x14, 0xe4, 0xe8, 0xc3, 0xd2,
- 0xd9, 0x7c, 0x22, 0x79, 0x39, 0x0e, 0x6d, 0xa7,
- 0x8b, 0x9c, 0xfe, 0xd6, 0xde, 0xca, 0x5f, 0xa3,
- 0xa7, 0xb1, 0xf4, 0x58, 0xe9, 0xfa, 0x9e, 0xe5,
- 0x0e, 0xce, 0x9f, 0x6f, 0x91, 0xc7, 0xce, 0x8b,
- 0xa8, 0xab, 0xd9, 0xaf, 0x24, 0x57, 0x96, 0x4f,
- 0xff, 0xc2, 0xea, 0x62, 0xd4, 0x4e, 0xdd, 0xee,
- 0x6a, 0x97, 0x9d, 0x3f, 0xff, 0xb7, 0x8f, 0xba,
- 0xba, 0xa2, 0x29, 0x37, 0xc0, 0x08, 0xbd, 0xce,
- 0x9f, 0xff, 0xff, 0x5f, 0xd0, 0x03, 0xef, 0xb8,
- 0x7f, 0x90, 0x2b, 0x7a, 0x3f, 0x4c, 0xdf, 0x72,
- 0xe9, 0xd3, 0xff, 0xeb, 0xc4, 0x73, 0x55, 0xa6,
- 0xf0, 0x0a, 0x72, 0x87, 0x46, 0x23, 0x86, 0x90,
- 0x8b, 0x9f, 0xfe, 0x75, 0xc5, 0x31, 0x3a, 0xb7,
- 0x73, 0x55, 0xf3, 0xa7, 0xff, 0xdc, 0x62, 0x80,
- 0xb8, 0xd2, 0x55, 0x67, 0x78, 0xbc, 0x74, 0xff,
- 0x67, 0x5e, 0x03, 0x9f, 0xf5, 0x8e, 0x9f, 0xf5,
- 0x6f, 0xe8, 0x15, 0xbd, 0x7e, 0xf1, 0x3a, 0x7f,
- 0xf3, 0xc0, 0x56, 0x97, 0x81, 0xaa, 0xd5, 0x04,
- 0xe9, 0xff, 0xff, 0x63, 0xf5, 0xde, 0x04, 0x0a,
- 0x66, 0xab, 0x8f, 0x01, 0x9b, 0xe0, 0xe8, 0xc4,
- 0x5f, 0x6d, 0x3a, 0x1e, 0x56, 0xfe, 0xd1, 0xa5,
- 0x3e, 0x4f, 0xb5, 0x25, 0x2d, 0xd4, 0xef, 0x51,
- 0x82, 0x4f, 0xfb, 0xc6, 0x99, 0xa4, 0xee, 0xf9,
- 0x3a, 0x7f, 0xb0, 0x2f, 0xba, 0xa0, 0x6b, 0x67,
- 0x4f, 0xff, 0xf9, 0x19, 0x14, 0x02, 0xd4, 0xdf,
- 0x78, 0x00, 0x16, 0xee, 0x53, 0x0e, 0x86, 0x47,
- 0x3f, 0x4f, 0x6e, 0x0e, 0xe7, 0xb7, 0xad, 0xa1,
- 0xd3, 0xff, 0xff, 0xf6, 0x91, 0x5d, 0xdd, 0xda,
- 0x7a, 0xc0, 0x76, 0xfb, 0x80, 0x31, 0xf7, 0x65,
- 0xfd, 0xe6, 0xa7, 0x43, 0x91, 0x6f, 0xb2, 0x18,
- 0x45, 0xe4, 0x3c, 0x97, 0xbb, 0xb8, 0xd6, 0xbe,
- 0x1d, 0x33, 0xda, 0xaf, 0xf2, 0x74, 0xff, 0xd4,
- 0xd8, 0x1b, 0x1b, 0xde, 0xf1, 0x63, 0xa7, 0xed,
- 0x78, 0xf5, 0xfd, 0x9d, 0x18, 0x89, 0x4b, 0xa4,
- 0x5a, 0x45, 0x9e, 0x06, 0xff, 0xa9, 0xd3, 0xff,
- 0xf6, 0xc4, 0x0c, 0xde, 0x76, 0xed, 0x37, 0x8a,
- 0xc6, 0x3a, 0x7f, 0xff, 0xb6, 0xf0, 0xa2, 0xab,
- 0x7a, 0x00, 0x82, 0x9c, 0x51, 0x14, 0x74, 0x62,
- 0x30, 0x85, 0x6e, 0x7f, 0xff, 0xf0, 0x8e, 0xde,
- 0x02, 0x99, 0xae, 0xa2, 0xd4, 0xc7, 0x91, 0xfd,
- 0x5e, 0xc7, 0x4f, 0xff, 0xfc, 0x97, 0x68, 0x80,
- 0x77, 0x2f, 0xba, 0x03, 0xee, 0xae, 0xfa, 0x0a,
- 0x3c, 0x74, 0xf9, 0xfa, 0xef, 0x3a, 0x74, 0x62,
- 0x29, 0x2f, 0x7c, 0x8d, 0xa6, 0x85, 0x48, 0xc7,
- 0xe7, 0xfb, 0xb7, 0xad, 0xdc, 0xa7, 0xe8, 0xe9,
- 0xfe, 0xe2, 0x88, 0x1e, 0x29, 0xea, 0x3a, 0x7f,
- 0xff, 0xbc, 0x69, 0x9a, 0xde, 0x75, 0xea, 0xa6,
- 0x77, 0x8a, 0x21, 0xd3, 0xda, 0x01, 0xe1, 0x3a,
- 0x1f, 0x44, 0x47, 0xb2, 0xcf, 0xcb, 0x3e, 0xeb,
- 0xd3, 0x47, 0x4f, 0xf5, 0x3d, 0x5d, 0xca, 0x7e,
- 0x8e, 0x84, 0x3e, 0x7a, 0x98, 0x4f, 0xd9, 0xa1,
- 0x1c, 0x71, 0xd3, 0xf7, 0x72, 0x9d, 0xc6, 0x3a,
- 0x7b, 0xb9, 0x50, 0x16, 0x3d, 0x5d, 0x15, 0x47,
- 0x0a, 0xf1, 0x1a, 0x36, 0x3d, 0x95, 0x09, 0xd5,
- 0x21, 0x85, 0xa8, 0x45, 0x2e, 0x76, 0x9f, 0xfb,
- 0xbd, 0xc0, 0x07, 0x29, 0xdc, 0x58, 0xe8, 0x45,
- 0xd6, 0x4c, 0x9c, 0xa9, 0xf7, 0x79, 0xf7, 0x51,
- 0x5f, 0xc1, 0xd3, 0xfb, 0x16, 0xa6, 0x69, 0x38,
- 0x3a, 0x7f, 0xff, 0xfa, 0x99, 0xaa, 0xfa, 0xc0,
- 0x77, 0x1f, 0x76, 0x5e, 0xf7, 0x73, 0x8a, 0x6d,
- 0x63, 0xa6, 0xbe, 0xe9, 0xd0, 0x28, 0x9d, 0xd4,
- 0x21, 0x27, 0xec, 0x7b, 0xb8, 0xfd, 0x4e, 0x9f,
- 0xfc, 0x2f, 0xba, 0xb8, 0xa7, 0xd2, 0x94, 0x43,
- 0xa5, 0x53, 0xa2, 0xf3, 0xda, 0x05, 0x2a, 0x7f,
- 0x22, 0xbb, 0x94, 0xfd, 0x1d, 0x3f, 0xff, 0xed,
- 0x75, 0x39, 0x7d, 0xd5, 0xbd, 0x35, 0xdc, 0xe3,
- 0x78, 0x2b, 0x1d, 0x1b, 0x54, 0xd6, 0xb1, 0x3f,
- 0xc3, 0x43, 0xa4, 0xf5, 0x84, 0x45, 0xe4, 0x80,
- 0x98, 0xcf, 0x9d, 0xb1, 0xc7, 0xce, 0x9f, 0x65,
- 0x5e, 0xc0, 0x9d, 0x0f, 0x9e, 0x75, 0x09, 0xe7,
- 0xff, 0xdb, 0x7b, 0x1b, 0x8a, 0x6f, 0x2e, 0x81,
- 0x76, 0xf4, 0x3a, 0x7a, 0xe3, 0x59, 0x43, 0xa7,
- 0xff, 0xfe, 0xb8, 0x7d, 0xde, 0xf8, 0x1d, 0xbe,
- 0xe0, 0x0c, 0x7d, 0xd9, 0x7f, 0x79, 0xa9, 0xd0,
- 0xf2, 0x29, 0x70, 0x92, 0x7f, 0xff, 0xfc, 0x8f,
- 0xd6, 0xf4, 0x7c, 0x0a, 0x67, 0x00, 0x77, 0x2f,
- 0xba, 0x05, 0x79, 0xe7, 0x7a, 0x3a, 0x7c, 0x9d,
- 0x7f, 0xde, 0x3a, 0x7f, 0xff, 0xff, 0xf6, 0x2b,
- 0x19, 0x28, 0x8a, 0xd6, 0x56, 0xa8, 0x22, 0x9d,
- 0xc7, 0xb2, 0xfa, 0xde, 0xb7, 0x51, 0x47, 0x4f,
- 0xf7, 0x39, 0xc7, 0x72, 0x9f, 0xa3, 0xa7, 0xfe,
- 0x7d, 0x2e, 0xdc, 0x5f, 0x9d, 0x58, 0x15, 0x1d,
- 0x3f, 0xfd, 0x9a, 0xe3, 0x33, 0x9a, 0x80, 0x35,
- 0xe2, 0xa7, 0x42, 0x2b, 0x7a, 0xc2, 0x3d, 0xc6,
- 0x02, 0x24, 0x6a, 0x84, 0x85, 0x0a, 0x3e, 0x14,
- 0x7d, 0x39, 0xaa, 0x6c, 0xee, 0x00, 0x58, 0xe9,
- 0xff, 0xe7, 0xdd, 0xd4, 0x01, 0x5d, 0x4b, 0xba,
- 0xdb, 0xc7, 0x46, 0x1f, 0xa6, 0xc7, 0xe7, 0xe7,
- 0x96, 0x72, 0xf0, 0x5e, 0x3a, 0x7c, 0xad, 0xf1,
- 0x9c, 0x1d, 0x25, 0x8e, 0x99, 0x14, 0x74, 0xb4,
- 0x74, 0x09, 0xa5, 0xf1, 0x58, 0xe0, 0xf5, 0x68,
- 0x6d, 0x3d, 0xaa, 0xfb, 0xe7, 0x4c, 0xb7, 0x9d,
- 0x3f, 0xa9, 0xb1, 0x7d, 0xdd, 0x43, 0xa2, 0xe4,
- 0x26, 0x80, 0x86, 0x98, 0xfd, 0xb2, 0x35, 0x11,
- 0x5e, 0x2d, 0x3f, 0xab, 0xb7, 0xc3, 0xfd, 0xe4,
- 0xe9, 0xff, 0xf2, 0x0a, 0x36, 0x29, 0x19, 0xdb,
- 0xad, 0xea, 0x3a, 0x16, 0x44, 0x3a, 0xf9, 0xac,
- 0xee, 0xf2, 0x87, 0x4a, 0xcb, 0xc7, 0x55, 0xf0,
- 0x92, 0x82, 0x1e, 0x5d, 0xe2, 0x36, 0x0c, 0x9d,
- 0xc9, 0x69, 0x7d, 0x8f, 0xc7, 0x53, 0xb8, 0x4d,
- 0xad, 0x18, 0x18, 0xc7, 0xd6, 0xa8, 0x75, 0xd2,
- 0x7a, 0x13, 0xe1, 0xc7, 0xd9, 0xd9, 0x5a, 0xca,
- 0xa3, 0xd4, 0xe1, 0xd2, 0xe8, 0xc0, 0x17, 0xe3,
- 0x61, 0x06, 0x1c, 0x97, 0x04, 0xf3, 0xfa, 0xd8,
- 0x2d, 0xfe, 0xc6, 0x8a, 0x76, 0x7c, 0x2d, 0xfe,
- 0xc6, 0x8a, 0x8e, 0x7f, 0xde, 0xeb, 0x60, 0xb7,
- 0xfb, 0x1a, 0x26, 0x89, 0x5b, 0x0f, 0xd9, 0x46,
- 0x13, 0xfa, 0xd8, 0x2d, 0xfe, 0xc6, 0x8a, 0xbe,
- 0x7c, 0x2d, 0xfe, 0xc6, 0x8a, 0xda, 0x7f, 0x9d,
- 0x6c, 0x16, 0xff, 0x63, 0x44, 0x83, 0x2b, 0x61,
- 0xf8, 0xf9, 0x84, 0xff, 0xd6, 0xf7, 0x5b, 0x05,
- 0xbf, 0xd8, 0xd1, 0x21, 0xcf, 0x85, 0xbf, 0xd8,
- 0xd1, 0x62, 0x4f, 0xfc, 0x99, 0x5c, 0xef, 0x1b,
- 0xe5, 0x3a, 0x74, 0xee, 0xa3, 0xc7, 0x49, 0xdd,
- 0x3e, 0x0b, 0xd1, 0x27, 0x2f, 0xef, 0x93, 0xa7,
- 0xde, 0xe0, 0x68, 0x87, 0x4f, 0xd5, 0xa8, 0xec,
- 0x37, 0x33, 0xa3, 0x67, 0xb1, 0xe4, 0xf3, 0xfb,
- 0x94, 0xcd, 0x6f, 0xa1, 0x2a, 0x31, 0x38, 0x57,
- 0xe1, 0x21, 0xb2, 0x9a, 0x3c, 0x72, 0x43, 0x3f,
- 0xf5, 0x36, 0x9a, 0xa7, 0xdd, 0xce, 0xf2, 0x74,
- 0xff, 0xfe, 0xd6, 0xbd, 0xd5, 0xce, 0xa2, 0xbf,
- 0x35, 0xa4, 0x51, 0xd3, 0xff, 0xd8, 0xfb, 0xb5,
- 0x7b, 0xd6, 0xa7, 0xab, 0x75, 0x3a, 0x6a, 0x5b,
- 0x11, 0xef, 0xb4, 0x6e, 0xaf, 0x45, 0x93, 0x83,
- 0x48, 0xd2, 0x27, 0xf5, 0xb0, 0x5b, 0xfd, 0x8d,
- 0x16, 0x6c, 0xff, 0xeb, 0x2b, 0xdd, 0x6c, 0x16,
- 0xff, 0x63, 0x45, 0x01, 0x30, 0x15, 0x3a, 0x79,
- 0xbf, 0xd8, 0xd1, 0x6f, 0xcf, 0xc0, 0xeb, 0xdb,
- 0xc4, 0xe8, 0x13, 0xd6, 0xe4, 0xae, 0x7d, 0xa7,
- 0x54, 0x1a, 0x9d, 0x3f, 0x91, 0x70, 0x3a, 0xea,
- 0x72, 0x74, 0xee, 0xe3, 0x8e, 0x95, 0x9c, 0x98,
- 0x4e, 0x36, 0x89, 0x15, 0x0a, 0x74, 0x6d, 0x3f,
- 0xef, 0x75, 0xb0, 0x5b, 0xfd, 0x8d, 0x14, 0xa4,
- 0xff, 0x3a, 0xd8, 0x2d, 0xfe, 0xc6, 0x89, 0x3a,
- 0x56, 0x52, 0x21, 0xfd, 0x1a, 0x11, 0xdb, 0x13,
- 0x3d, 0x19, 0x07, 0x16, 0xae, 0xe7, 0x23, 0x92,
- 0x68, 0x58, 0xec, 0x9e, 0xe7, 0x0a, 0xc5, 0x89,
- 0x95, 0x2d, 0x52, 0x85, 0x3c, 0x9d, 0xd6, 0x35,
- 0xb5, 0xd0, 0xd6, 0x9f, 0x0b, 0x7f, 0xb1, 0xa2,
- 0x1f, 0x9f, 0xf7, 0xba, 0xd8, 0x2d, 0xfe, 0xc6,
- 0x89, 0x4e, 0x56, 0xc3, 0xf6, 0x51, 0x84, 0xfe,
- 0xb6, 0x0b, 0x7f, 0xb1, 0xa2, 0x27, 0x9f, 0xd6,
- 0xc1, 0x6f, 0xf6, 0x34, 0x46, 0x33, 0xff, 0xac,
- 0xaf, 0x75, 0xb0, 0x5b, 0xfd, 0x8d, 0x13, 0xcc,
- 0x22, 0x3b, 0xde, 0x27, 0x71, 0xdd, 0x0e, 0xe7,
- 0xc2, 0xdf, 0xec, 0x68, 0x88, 0x27, 0xfd, 0xee,
- 0xb6, 0x0b, 0x7f, 0xb1, 0xa2, 0x54, 0x95, 0xb0,
- 0xfd, 0x94, 0x61, 0x3f, 0xad, 0x82, 0xdf, 0xec,
- 0x68, 0x8a, 0x27, 0xf5, 0xb0, 0x5b, 0xfd, 0x8d,
- 0x11, 0x94, 0xff, 0xeb, 0x2b, 0xdd, 0x6c, 0x16,
- 0xff, 0x63, 0x44, 0xcb, 0x3f, 0xad, 0x82, 0xdf,
- 0xec, 0x68, 0xa9, 0x27, 0xf5, 0xb0, 0x5b, 0xfd,
- 0x8d, 0x15, 0xd4, 0xfe, 0xb6, 0x0b, 0x7f, 0xb1,
- 0xa2, 0xc5, 0x9f, 0xf9, 0x5e, 0xeb, 0x60, 0xb7,
- 0xfb, 0x1a, 0x27, 0xa9, 0xfe, 0x0d, 0xbd, 0x36,
- 0xbf, 0xbb, 0x83, 0xa2, 0xc8, 0x8a, 0x44, 0xc9,
- 0xfa, 0xe4, 0xf9, 0xad, 0xdf, 0x53, 0xa7, 0x85,
- 0x5a, 0x7c, 0xe9, 0xcd, 0x94, 0x2a, 0x7f, 0xfe,
- 0xa7, 0x7e, 0xee, 0xc5, 0x1c, 0xec, 0xaf, 0x3c,
- 0xa1, 0xd3, 0xff, 0xf0, 0xee, 0xe3, 0xd5, 0x64,
- 0x11, 0xdd, 0xc3, 0x5e, 0xf1, 0xd3, 0xe6, 0xdd,
- 0x01, 0x51, 0xd3, 0xff, 0xbe, 0xbd, 0xce, 0x6d,
- 0x4d, 0xb7, 0x89, 0xd3, 0xed, 0x51, 0x14, 0xc7,
- 0x4f, 0xfe, 0xe8, 0x08, 0x9d, 0x45, 0x00, 0x05,
- 0x17, 0xce, 0x9f, 0xeb, 0xfe, 0xbf, 0x4b, 0xfa,
- 0xf1, 0xd1, 0xb4, 0xf7, 0x45, 0x75, 0x4c, 0x14,
- 0x28, 0xea, 0x46, 0x89, 0xae, 0x13, 0xe7, 0x77,
- 0xf4, 0x6a, 0x85, 0xa7, 0x77, 0x75, 0x3a, 0x41,
- 0xb9, 0x4f, 0x11, 0x0a, 0x27, 0x85, 0x77, 0xa8,
- 0xe8, 0xc3, 0xce, 0xd9, 0x64, 0xff, 0xb7, 0x4f,
- 0xd2, 0x2d, 0x5d, 0xa8, 0xe9, 0xfb, 0x7d, 0xbb,
- 0xbc, 0xa9, 0xd3, 0xdd, 0xe0, 0x0b, 0xa7, 0x4f,
- 0xd9, 0x50, 0xff, 0x5e, 0x3a, 0x3c, 0xf4, 0xfa,
- 0x4d, 0x3e, 0xbe, 0xed, 0x78, 0x43, 0xa3, 0x11,
- 0x9d, 0xb8, 0x41, 0x50, 0x86, 0x7f, 0xff, 0xf5,
- 0x13, 0x62, 0x28, 0x0e, 0xb7, 0xdb, 0xdd, 0x95,
- 0xe2, 0xff, 0x17, 0x1d, 0x3e, 0x7b, 0x81, 0xd8,
- 0x4e, 0x9f, 0xb8, 0xf1, 0xe5, 0x7f, 0x0e, 0x9f,
- 0xf7, 0x76, 0xed, 0x53, 0x07, 0x75, 0x3a, 0x7f,
- 0xdf, 0x9c, 0xa7, 0x7f, 0x8c, 0xba, 0x74, 0x38,
- 0xff, 0x79, 0x3e, 0x9e, 0xbe, 0xb4, 0x51, 0xd3,
- 0xf5, 0xf5, 0xd5, 0x73, 0x47, 0x4e, 0x08, 0x42,
- 0x54, 0xff, 0xed, 0x6f, 0x55, 0xa6, 0xd7, 0xc1,
- 0x14, 0x71, 0x56, 0x2f, 0x23, 0x68, 0xa7, 0xbd,
- 0x2a, 0x1c, 0xa9, 0x83, 0x1e, 0x76, 0x52, 0x30,
- 0xad, 0xe9, 0x1e, 0xa1, 0x95, 0x35, 0xdc, 0x3a,
- 0x7c, 0x1d, 0x23, 0xe1, 0x3a, 0x7f, 0x27, 0x8d,
- 0x03, 0xfc, 0x15, 0x30, 0x42, 0x54, 0x70, 0x78,
- 0xe1, 0x31, 0x9e, 0xae, 0xb7, 0x73, 0x2a, 0xc6,
- 0x8e, 0x7f, 0xf5, 0xf5, 0xaf, 0x1d, 0x4e, 0x28,
- 0x9a, 0xa9, 0xd3, 0xfe, 0xd6, 0xc7, 0xf9, 0xb8,
- 0xd6, 0x50, 0xe8, 0x72, 0x23, 0xb6, 0x9b, 0x3e,
- 0xc7, 0xb3, 0x62, 0x74, 0xfd, 0xa4, 0x1e, 0x33,
- 0xa7, 0x4f, 0xee, 0x28, 0x9d, 0x0f, 0xbe, 0x74,
- 0xff, 0xff, 0xb6, 0xaf, 0xeb, 0xee, 0xb0, 0x73,
- 0x6b, 0xb3, 0xb9, 0xc7, 0xb8, 0xf1, 0x7a, 0xc2,
- 0x23, 0x73, 0xcb, 0x2f, 0x34, 0x9f, 0xfe, 0xcd,
- 0x57, 0x16, 0xa2, 0x2e, 0xca, 0x51, 0x0e, 0x9f,
- 0xff, 0xff, 0x6f, 0x1f, 0xae, 0xf0, 0x20, 0x63,
- 0xee, 0xae, 0xf5, 0x5d, 0xbf, 0xc7, 0x17, 0xbc,
- 0x74, 0x75, 0x1b, 0xba, 0x50, 0x9b, 0x61, 0x3a,
- 0x60, 0x79, 0x3a, 0x16, 0x35, 0xdc, 0x8b, 0x4e,
- 0x77, 0xf0, 0x74, 0xc1, 0x09, 0xd1, 0xb3, 0xd5,
- 0xa9, 0x18, 0x47, 0x27, 0x68, 0x1e, 0x4a, 0xb1,
- 0xaf, 0x9f, 0xff, 0xfd, 0xa4, 0xe2, 0x97, 0xfd,
- 0xd5, 0x7f, 0x19, 0x9d, 0xbb, 0x5a, 0xe7, 0x79,
- 0x3a, 0x1f, 0x45, 0x66, 0xcb, 0xa7, 0xfb, 0x35,
- 0x44, 0x1d, 0x63, 0x1d, 0x39, 0x05, 0x63, 0xa3,
- 0x13, 0xf5, 0xf8, 0xe0, 0x7a, 0x48, 0xbe, 0x6b,
- 0x3e, 0xee, 0x6b, 0xee, 0x0e, 0x9f, 0xfb, 0x04,
- 0x71, 0x6a, 0x65, 0x7f, 0xa7, 0x4f, 0xee, 0xa0,
- 0xde, 0xd4, 0x43, 0xa7, 0xdb, 0xbb, 0x4f, 0x71,
- 0xd3, 0xf6, 0xd1, 0x4f, 0x60, 0x4e, 0x98, 0x21,
- 0x3a, 0x18, 0xfb, 0x04, 0xa4, 0x25, 0xb3, 0xfd,
- 0x8b, 0x7a, 0xde, 0xfb, 0xaa, 0x55, 0x8d, 0x6c,
- 0xff, 0xec, 0xef, 0x39, 0x4d, 0xbf, 0x5a, 0x5f,
- 0x53, 0xa7, 0xee, 0xff, 0x3c, 0x67, 0x4e, 0x9c,
- 0x10, 0x84, 0xa9, 0xff, 0x90, 0x7b, 0x7f, 0x83,
- 0x8b, 0x22, 0x8e, 0xb1, 0x79, 0x17, 0x34, 0xff,
- 0x96, 0x86, 0x55, 0x52, 0xb4, 0x9a, 0x14, 0xa9,
- 0xde, 0x2f, 0x1e, 0x41, 0x29, 0xe7, 0x63, 0xee,
- 0x3c, 0x82, 0x53, 0xab, 0xbe, 0x0f, 0x20, 0x94,
- 0xc1, 0x09, 0xe4, 0x12, 0x86, 0x45, 0x22, 0xc5,
- 0x1a, 0x2f, 0x09, 0x54, 0xfd, 0xfd, 0xe7, 0xbf,
- 0xa2, 0xc8, 0x25, 0x63, 0x7b, 0x3c, 0xbf, 0x9f,
- 0x43, 0xa5, 0x97, 0x33, 0xed, 0xe5, 0x2a, 0x7f,
- 0x2c, 0xeb, 0xde, 0xd6, 0xde, 0x2a, 0x7f, 0x6d,
- 0xd7, 0xfd, 0x69, 0xb3, 0xa4, 0xe2, 0xa7, 0x78,
- 0xbc, 0x54, 0x15, 0x08, 0x6d, 0x58, 0x41, 0x43,
- 0x73, 0xdd, 0x4e, 0x58, 0xab, 0x1a, 0xc8, 0x44,
- 0x63, 0x64, 0x25, 0x67, 0xaf, 0xf1, 0x71, 0xd2,
- 0x51, 0xd3, 0x63, 0xb8, 0x36, 0x2b, 0x10, 0xcf,
- 0x83, 0x8b, 0x6d, 0x47, 0x4f, 0xcc, 0x8b, 0x39,
- 0x39, 0x2a, 0x5b, 0x3a, 0x7f, 0x9e, 0xbd, 0xdc,
- 0x52, 0xff, 0xe9, 0xd3, 0xf6, 0xd1, 0x4f, 0x60,
- 0x4e, 0x9f, 0x63, 0xca, 0xc5, 0x1d, 0x3a, 0xbb,
- 0x13, 0xa3, 0xa7, 0x85, 0xa2, 0x79, 0xfb, 0xbf,
- 0xcf, 0x37, 0xd4, 0xe9, 0xfb, 0x77, 0x41, 0x45,
- 0x5b, 0x84, 0xc3, 0xb0, 0x40, 0x4f, 0x6a, 0xdf,
- 0xa2, 0x28, 0xc4, 0xf4, 0xf6, 0x51, 0xd8, 0xce,
- 0xe7, 0xbb, 0x8f, 0x5e, 0x74, 0x39, 0x5e, 0xde,
- 0x16, 0x52, 0x1f, 0xdd, 0x57, 0xac, 0xa0, 0x1d,
- 0x1b, 0x4e, 0x08, 0x42, 0x54, 0xe1, 0x72, 0x15,
- 0x62, 0xf2, 0x7e, 0x79, 0x67, 0x2f, 0x05, 0xe3,
- 0xa7, 0xa9, 0xef, 0x84, 0xe9, 0xf3, 0xc3, 0xb4,
- 0x51, 0xd3, 0xff, 0xc8, 0x0e, 0xba, 0x9c, 0xfe,
- 0xb9, 0x07, 0xae, 0x3a, 0x2e, 0x42, 0x34, 0x36,
- 0x69, 0xe4, 0x5a, 0x27, 0x9c, 0xed, 0xf4, 0xe9,
- 0xfb, 0x48, 0xb7, 0x6f, 0xa9, 0xd0, 0xe3, 0xcb,
- 0xd0, 0xe4, 0xeb, 0xef, 0x5e, 0x8e, 0x9b, 0xec,
- 0xbd, 0x9b, 0x77, 0x4b, 0x92, 0x36, 0xb9, 0x30,
- 0x89, 0x23, 0xf7, 0x7a, 0x1f, 0x2e, 0x21, 0xe2,
- 0x30, 0xdc, 0x95, 0x29, 0x75, 0x85, 0x85, 0xf7,
- 0x09, 0x25, 0xa1, 0x88, 0x24, 0x6a, 0x8c, 0x0a,
- 0x92, 0xc0, 0x7d, 0x17, 0xa5, 0x35, 0x94, 0x7f,
- 0xa9, 0xd7, 0xeb, 0xe1, 0x00, 0xbf, 0x0f, 0x90,
- 0x61, 0x1b, 0x70, 0x45, 0x3f, 0xfa, 0xca, 0xf7,
- 0x5b, 0x05, 0xbf, 0xd8, 0xd1, 0x45, 0x4f, 0xeb,
- 0x60, 0xb7, 0xfb, 0x1a, 0x2e, 0x89, 0xff, 0xad,
- 0xee, 0xb6, 0x0b, 0x7f, 0xb1, 0xa2, 0x4b, 0x9f,
- 0xd6, 0xc1, 0x6f, 0xf6, 0x34, 0x5e, 0x50, 0x8d,
- 0xe4, 0x1b, 0xc4, 0xee, 0x3b, 0xc3, 0xb6, 0x52,
- 0x58, 0xed, 0x47, 0x74, 0x86, 0x2f, 0x6b, 0x79,
- 0x6a, 0xc7, 0x5f, 0xa5, 0x2b, 0xce, 0xd7, 0x26,
- 0x4f, 0xfe, 0xb2, 0xbd, 0xd6, 0xc1, 0x6f, 0xf6,
- 0x34, 0x4b, 0x33, 0xcd, 0xfe, 0xc6, 0x88, 0xce,
- 0x7e, 0xda, 0x29, 0xec, 0x09, 0xd3, 0x75, 0xc7,
- 0x49, 0x47, 0x4f, 0xb6, 0x34, 0xfb, 0x09, 0xe9,
- 0xa8, 0xb4, 0x11, 0x69, 0xfb, 0xdd, 0xb1, 0xf1,
- 0x3a, 0x75, 0x51, 0xf3, 0xa0, 0x53, 0x0f, 0x53,
- 0xf7, 0x52, 0xf4, 0x55, 0x3f, 0xf6, 0xb6, 0x3f,
- 0xc8, 0x0f, 0xb9, 0x14, 0x74, 0xfb, 0xa8, 0xea,
- 0xf9, 0xd1, 0xb3, 0xec, 0x5c, 0x8d, 0x3f, 0xf6,
- 0x2b, 0x5b, 0x0d, 0x52, 0x9f, 0x73, 0x3a, 0x7f,
- 0xd4, 0x4d, 0xd3, 0x69, 0xd5, 0xaf, 0x3a, 0x56,
- 0xc4, 0xd5, 0x16, 0x85, 0x4f, 0x49, 0x2a, 0x8f,
+ 0x48, 0x54, 0x80, 0x26, 0x94, 0x02, 0xd3, 0xfb,
+ 0x58, 0x20, 0x56, 0xe8, 0x55, 0x8d, 0x34, 0xfc,
+ 0xea, 0xed, 0x76, 0x2c, 0x74, 0x21, 0xf9, 0x7a,
+ 0x14, 0xad, 0x89, 0x86, 0xaf, 0xc3, 0xb6, 0x7f,
+ 0x5b, 0x05, 0xbf, 0xd8, 0xd1, 0x51, 0x4f, 0x85,
+ 0xbf, 0xd8, 0xd1, 0x5e, 0xcf, 0xb7, 0x78, 0xd7,
+ 0x3c, 0x74, 0xad, 0x87, 0xb8, 0x26, 0x13, 0xff,
+ 0x5b, 0xdd, 0x6c, 0x16, 0xff, 0x63, 0x44, 0x8d,
0x3f, 0xfa, 0xca, 0xf7, 0x5b, 0x05, 0xbf, 0xd8,
- 0xd1, 0x34, 0xcf, 0xfe, 0xb2, 0xbd, 0xd6, 0xc1,
- 0x6f, 0xf6, 0x34, 0x4e, 0x33, 0xff, 0xac, 0xaf,
- 0x75, 0xb0, 0x5b, 0xfd, 0x8d, 0x14, 0x0c, 0xf8,
- 0x5b, 0xfd, 0x8d, 0x17, 0x04, 0xc9, 0xb3, 0xa7,
- 0xf7, 0x5c, 0x9b, 0xe3, 0x14, 0x74, 0xad, 0x87,
- 0xf1, 0x43, 0x0b, 0xc5, 0x67, 0xf6, 0xec, 0x0a,
- 0x73, 0x81, 0x3a, 0x7f, 0x9d, 0x6c, 0x16, 0xff,
- 0x63, 0x44, 0x93, 0x2b, 0x50, 0xfd, 0x7c, 0xd2,
- 0x1e, 0x5d, 0x3d, 0x74, 0xab, 0x56, 0x49, 0x59,
- 0x4b, 0x95, 0x2a, 0xc3, 0x2b, 0x50, 0xaa, 0x9f,
- 0xf5, 0xdf, 0xb6, 0x0b, 0x7f, 0xb1, 0xa2, 0xd4,
- 0x9f, 0xf7, 0xba, 0xd8, 0x2d, 0xfe, 0xc6, 0x89,
- 0x56, 0x0e, 0x95, 0xae, 0xa2, 0x61, 0x49, 0x17,
- 0x08, 0xd3, 0xfa, 0xd8, 0x2d, 0xfe, 0xc6, 0x88,
- 0xa6, 0x7f, 0x5b, 0x05, 0xbf, 0xd8, 0xd1, 0x1a,
- 0x4f, 0xeb, 0x60, 0xb7, 0xfb, 0x1a, 0x29, 0xf9,
- 0xff, 0xd6, 0x57, 0xba, 0xd8, 0x2d, 0xfe, 0xc6,
- 0x89, 0xaa, 0x7f, 0x5b, 0x05, 0xbf, 0xd8, 0xd1,
- 0x5d, 0xcf, 0x37, 0xfb, 0x1a, 0x2b, 0xe9, 0xc1,
- 0x08, 0x4a, 0x97, 0x4a, 0xb1, 0x79, 0x02, 0x7c,
- 0xca, 0x47, 0x9c, 0xe4, 0x7c, 0xe9, 0xff, 0x65,
- 0x03, 0xfa, 0xaa, 0x63, 0xc7, 0x4f, 0xfb, 0xf6,
- 0x38, 0xf6, 0xdd, 0x9c, 0x1d, 0x2b, 0x62, 0x2e,
- 0x16, 0x21, 0xe8, 0xe5, 0x4f, 0x67, 0xff, 0x59,
- 0x5e, 0xeb, 0x60, 0xb7, 0xfb, 0x1a, 0x27, 0xb9,
- 0xfd, 0x6c, 0x16, 0xff, 0x63, 0x45, 0xc3, 0x3f,
- 0xf5, 0xbd, 0xd6, 0xc1, 0x6f, 0xf6, 0x34, 0x49,
- 0xf0, 0x8a, 0xec, 0xde, 0x3b, 0x71, 0xdd, 0xd3,
- 0xb6, 0x3b, 0x59, 0x48, 0x63, 0x59, 0xa2, 0x1d,
- 0x54, 0x97, 0x1d, 0xcf, 0xeb, 0x60, 0xb7, 0xfb,
- 0x1a, 0x22, 0xa9, 0xfd, 0x6c, 0x16, 0xff, 0x63,
- 0x45, 0x33, 0x3f, 0xfa, 0xca, 0xf7, 0x5b, 0x05,
- 0xbf, 0xd8, 0xd1, 0x33, 0xcf, 0xfe, 0xb2, 0xbd,
- 0xd6, 0xc1, 0x6f, 0xf6, 0x34, 0x51, 0xb0, 0xf2,
- 0x63, 0x5c, 0x1d, 0xdd, 0x3b, 0xd2, 0x94, 0xff,
- 0xd6, 0xf7, 0x5b, 0x05, 0xbf, 0xd8, 0xd1, 0x1d,
- 0x4f, 0xdb, 0xce, 0xf1, 0x8f, 0x1d, 0x3e, 0x16,
- 0xff, 0x63, 0x45, 0x35, 0x3f, 0x6d, 0x14, 0xf6,
- 0x04, 0xe9, 0xff, 0xec, 0xd5, 0x31, 0xc3, 0xfd,
- 0xd5, 0x3d, 0xc7, 0x4c, 0x9c, 0x9d, 0x3f, 0xd5,
- 0xf7, 0xd1, 0xb6, 0xd6, 0x14, 0x48, 0x74, 0xb4,
- 0x14, 0xd9, 0x5b, 0x84, 0xd2, 0xf0, 0xbb, 0x50,
- 0xc0, 0x9f, 0x0b, 0x7f, 0xb1, 0xa2, 0xaa, 0x9f,
- 0xf7, 0xba, 0xd8, 0x2d, 0xfe, 0xc6, 0x89, 0xb6,
- 0x56, 0xc3, 0xf6, 0x51, 0x84, 0xfe, 0xb6, 0x0b,
- 0x7f, 0xb1, 0xa2, 0xbf, 0x9f, 0xd6, 0xc1, 0x6f,
- 0xf6, 0x34, 0x58, 0xd3, 0xe1, 0x6f, 0xf6, 0x34,
- 0x5a, 0xb3, 0xfe, 0xf7, 0x5b, 0x05, 0xbf, 0xd8,
- 0xd1, 0x41, 0x4a, 0xd8, 0x7e, 0xca, 0x30, 0x9f,
- 0xd6, 0xc1, 0x6f, 0xf6, 0x34, 0x5c, 0x53, 0xfa,
- 0xd8, 0x2d, 0xfe, 0xc6, 0x8b, 0xa6, 0x7f, 0xfd,
- 0xdf, 0xb6, 0x9d, 0x82, 0x3e, 0xe7, 0xb0, 0x27,
- 0x4f, 0xd7, 0x2f, 0x72, 0x9f, 0xa3, 0xa7, 0x9b,
- 0xfd, 0x8d, 0x12, 0x64, 0xff, 0x0e, 0x3f, 0xad,
- 0x7b, 0xaa, 0x74, 0x09, 0xf1, 0xa8, 0xae, 0x7e,
- 0xe3, 0x9b, 0x96, 0xbc, 0xaf, 0x9d, 0x3e, 0xcd,
- 0x6d, 0x5e, 0x74, 0xff, 0xfb, 0xd8, 0x52, 0x9d,
- 0xcd, 0x65, 0x82, 0x10, 0x95, 0x0e, 0x3f, 0x8d,
- 0x13, 0x4f, 0xfe, 0xbf, 0xbf, 0xa4, 0x1a, 0xd1,
- 0x3b, 0xa3, 0xa7, 0x04, 0x21, 0x2a, 0x7e, 0x1f,
- 0x79, 0x5b, 0xa9, 0x56, 0x2f, 0x27, 0xd8, 0xa1,
- 0xcb, 0x99, 0xd3, 0xfe, 0x52, 0x35, 0x3b, 0x7e,
- 0x92, 0xa7, 0x4f, 0xf6, 0x7f, 0x20, 0x67, 0x1e,
- 0xe3, 0xa7, 0xff, 0x7b, 0xd4, 0xda, 0x77, 0x16,
- 0xd8, 0xec, 0xe8, 0xc4, 0x60, 0xe8, 0xf8, 0x27,
- 0x33, 0xf5, 0xcf, 0xb9, 0x4f, 0xd1, 0xd3, 0xda,
- 0x7b, 0x38, 0x3a, 0x7f, 0xb7, 0x74, 0x11, 0xe5,
- 0x5b, 0xa9, 0xd0, 0xb1, 0xf0, 0x2f, 0x91, 0xce,
- 0x08, 0x42, 0x74, 0xff, 0xfb, 0x15, 0xae, 0xa7,
- 0x39, 0xc5, 0x71, 0x48, 0xc5, 0x58, 0xbc, 0x8c,
- 0x4c, 0xd7, 0x70, 0x90, 0xa2, 0x14, 0xfe, 0x11,
- 0xf1, 0xea, 0x38, 0xe9, 0x9d, 0x65, 0xe2, 0xe6,
- 0xde, 0x42, 0x52, 0xe9, 0x0b, 0xf0, 0xb1, 0x58,
- 0x8b, 0xd9, 0x7a, 0x79, 0x58, 0x75, 0x6a, 0x36,
- 0x40, 0x4d, 0x67, 0xd8, 0xa1, 0xcb, 0x99, 0xd3,
- 0xff, 0x65, 0x3a, 0x8f, 0x03, 0x4a, 0x7d, 0xcc,
- 0xe9, 0xfb, 0xda, 0xc1, 0x08, 0x4e, 0x95, 0x99,
- 0x7a, 0x0b, 0xe7, 0x4b, 0xbb, 0x0b, 0x6a, 0x94,
- 0xae, 0x49, 0x87, 0x32, 0xb6, 0xf8, 0x8e, 0x5d,
- 0xf8, 0x59, 0x09, 0x3a, 0x8e, 0xf9, 0x85, 0x8d,
- 0x49, 0xf4, 0x77, 0x7c, 0xf5, 0xec, 0xfe, 0xb6,
- 0x0b, 0x7f, 0xb1, 0xa2, 0x35, 0x9f, 0x0b, 0x7f,
- 0xb1, 0xa2, 0xa5, 0x9b, 0xd8, 0xd1, 0x0d, 0x4a,
- 0xd8, 0x7a, 0x3e, 0x61, 0x3f, 0xf5, 0xbd, 0xd6,
- 0xc1, 0x6f, 0xf6, 0x34, 0x47, 0xd3, 0xfa, 0xd8,
- 0x2d, 0xfe, 0xc6, 0x8b, 0x1e, 0x7e, 0xb9, 0x7b,
- 0x94, 0xfd, 0x1d, 0x3f, 0xdd, 0xfe, 0x6b, 0xfa,
- 0xd7, 0x9d, 0x3d, 0xca, 0xb6, 0x27, 0x4f, 0xff,
- 0xf2, 0x0f, 0x73, 0x8c, 0xa5, 0x36, 0xd4, 0xde,
- 0xab, 0xef, 0x9d, 0x1b, 0x44, 0x45, 0x08, 0xa7,
- 0xc2, 0xdf, 0xec, 0x68, 0xb4, 0x27, 0xe5, 0xc0,
- 0xeb, 0xa9, 0xc9, 0xd3, 0xe4, 0xd6, 0x51, 0x0e,
- 0x9f, 0xfe, 0xcd, 0x57, 0x16, 0xa2, 0x2e, 0xca,
- 0x51, 0x0e, 0x87, 0x8f, 0xd7, 0xa4, 0xb0, 0x88,
- 0xc9, 0xc8, 0x53, 0x4f, 0xf7, 0x73, 0x35, 0x4f,
- 0xed, 0xd3, 0xa7, 0xf6, 0x51, 0x6d, 0xd3, 0x6a,
- 0x3a, 0x7f, 0x3b, 0x06, 0xbd, 0x47, 0x8e, 0x9f,
- 0xec, 0xc0, 0xe3, 0x36, 0x04, 0xe8, 0xc4, 0x4d,
- 0x3e, 0x69, 0x53, 0x29, 0xec, 0xa7, 0xe8, 0xe9,
- 0xfd, 0x77, 0x7d, 0xbd, 0xd9, 0x53, 0xa5, 0x65,
- 0xe2, 0xb8, 0xc4, 0x31, 0xe2, 0x18, 0x18, 0x47,
- 0x48, 0x7c, 0xd4, 0x9b, 0x50, 0xd3, 0x5f, 0x30,
- 0x04, 0x82, 0x7e, 0xb8, 0xdf, 0x1d, 0x45, 0x8e,
- 0x9e, 0xca, 0x7e, 0x8e, 0x95, 0xcb, 0x87, 0xa5,
- 0xd3, 0x29, 0xf0, 0xb7, 0xfb, 0x1a, 0x2d, 0x69,
- 0xff, 0x7b, 0xad, 0x82, 0xdf, 0xec, 0x68, 0xa0,
- 0xe5, 0x65, 0xe2, 0x28, 0xb0, 0xb1, 0x46, 0x13,
- 0xff, 0xac, 0xaf, 0x75, 0xb0, 0x5b, 0xfd, 0x8d,
- 0x14, 0x5c, 0xfe, 0xb6, 0x0b, 0x7f, 0xb1, 0xa2,
- 0xea, 0x87, 0x2f, 0x8d, 0xb4, 0x23, 0x36, 0x4c,
- 0xa4, 0xca, 0x4b, 0xc7, 0xe6, 0x39, 0x0a, 0x9c,
- 0xe9, 0x4a, 0x7c, 0x2d, 0xfe, 0xc6, 0x88, 0x86,
- 0x75, 0x33, 0x83, 0xa5, 0x6c, 0x3c, 0xc7, 0xcc,
- 0x27, 0xf5, 0xb0, 0x5b, 0xfd, 0x8d, 0x11, 0xb4,
- 0xfe, 0xb6, 0x0b, 0x7f, 0xb1, 0xa2, 0x9b, 0x9f,
- 0xd6, 0xc1, 0x6f, 0xf6, 0x34, 0x54, 0x13, 0xfa,
- 0xd8, 0x2d, 0xfe, 0xc6, 0x8a, 0x9a, 0x7c, 0x2d,
- 0xfe, 0xc6, 0x8a, 0xc2, 0x7d, 0xb0, 0xf1, 0x78,
- 0x9d, 0x3f, 0xce, 0xb6, 0x0b, 0x7f, 0xb1, 0xa2,
- 0x3f, 0x9d, 0x88, 0xf1, 0xd2, 0xb6, 0x22, 0xd5,
- 0x8c, 0x3c, 0xa7, 0xa8, 0x33, 0xff, 0xac, 0xaf,
- 0x75, 0xb0, 0x5b, 0xfd, 0x8d, 0x13, 0x7c, 0xff,
- 0xca, 0xf7, 0x5b, 0x05, 0xbf, 0xd8, 0xd1, 0x3f,
- 0x4f, 0xcb, 0xde, 0xe4, 0x5c, 0xab, 0xf8, 0xf9,
- 0xd3, 0xff, 0xc8, 0x88, 0x88, 0x88, 0x88, 0x8f,
- 0xd4, 0xe9, 0xf0, 0xed, 0xef, 0x51, 0x53, 0x04,
- 0x25, 0x46, 0x1b, 0xd0, 0x93, 0xca, 0xf2, 0xac,
- 0x68, 0x21, 0x11, 0x8f, 0x58, 0x53, 0x4f, 0xc3,
- 0xed, 0x4d, 0x89, 0xd3, 0xcf, 0x2b, 0x6e, 0x3a,
- 0x7f, 0x51, 0x15, 0x6e, 0x79, 0x43, 0xa4, 0x28,
- 0x7a, 0xfb, 0x23, 0x9d, 0xcd, 0x70, 0xe9, 0xea,
- 0xeb, 0x6b, 0x1d, 0x08, 0x98, 0x6e, 0xc9, 0xc6,
- 0x10, 0x3d, 0x26, 0xd0, 0xe4, 0xf7, 0xac, 0x0a,
- 0x8e, 0x9b, 0xfa, 0x74, 0x09, 0xb8, 0x51, 0x1c,
- 0xe0, 0x84, 0x27, 0x4f, 0x3d, 0xdd, 0xa1, 0x56,
- 0x2f, 0x27, 0x9f, 0xd6, 0xd8, 0xe8, 0x44, 0x47,
- 0xd0, 0xf2, 0xf3, 0x19, 0xff, 0x9e, 0xbf, 0x9c,
- 0xed, 0xeb, 0x26, 0xbc, 0xe9, 0xe4, 0xd5, 0x58,
- 0xd1, 0x07, 0x40, 0x9f, 0xae, 0x92, 0x26, 0x1e,
- 0x0e, 0x98, 0x21, 0x3a, 0x1c, 0x6b, 0x02, 0x2d,
- 0x3d, 0x54, 0xda, 0xe2, 0xac, 0x68, 0x67, 0xd5,
- 0x07, 0x8e, 0x6a, 0x74, 0x6c, 0xf7, 0x81, 0x33,
- 0x9c, 0x10, 0x84, 0xa8, 0x2a, 0xc5, 0xe4, 0xf6,
- 0xc3, 0xb5, 0x8a, 0x86, 0x37, 0x9b, 0x19, 0x8d,
- 0xa6, 0xcf, 0x48, 0x66, 0x75, 0xee, 0x7b, 0x8f,
- 0xef, 0x27, 0x4f, 0xfc, 0x9d, 0xe7, 0xa8, 0xfa,
- 0xc9, 0xde, 0x4e, 0x8e, 0x4f, 0xaa, 0xa4, 0x73,
- 0xf2, 0xc9, 0x83, 0x4d, 0x9d, 0x3f, 0x6b, 0x16,
- 0xea, 0x28, 0xf1, 0x01, 0x4f, 0xbf, 0xbc, 0x51,
- 0x0d, 0x10, 0x15, 0x8d, 0xd4, 0xf9, 0x39, 0xdb,
- 0xf5, 0x3a, 0x7f, 0x0a, 0xd5, 0xdf, 0x75, 0xb3,
- 0xa7, 0x9f, 0xe4, 0x50, 0xa9, 0x82, 0x12, 0xa1,
- 0x0d, 0xc0, 0x48, 0xa7, 0xef, 0x17, 0x3b, 0xbb,
- 0x2a, 0xc6, 0x82, 0x11, 0x3b, 0xec, 0x23, 0xdb,
- 0x37, 0x51, 0x34, 0x53, 0x7c, 0x23, 0x27, 0xd7,
- 0xea, 0xff, 0x04, 0xd1, 0x03, 0xcf, 0xfa, 0x97,
- 0xbc, 0x80, 0x26, 0x93, 0x83, 0xa7, 0x78, 0xbc,
- 0x74, 0xc1, 0x09, 0xd3, 0xf8, 0x77, 0x8b, 0x81,
- 0x75, 0x98, 0xd8, 0x84, 0x6e, 0x49, 0xc2, 0x2f,
- 0x45, 0xca, 0x7f, 0xf6, 0x29, 0x5e, 0xec, 0x16,
- 0xff, 0x63, 0x44, 0x31, 0x14, 0x3f, 0x9e, 0x94,
- 0x4f, 0xd8, 0x2d, 0xfe, 0xc6, 0x88, 0x2a, 0x7b,
- 0x55, 0x4e, 0x4a, 0x9d, 0xe2, 0xf1, 0x53, 0xd7,
- 0xf7, 0xee, 0x95, 0x3f, 0xb6, 0xf6, 0x6a, 0xa9,
- 0xc9, 0x50, 0x54, 0xfd, 0x8c, 0x94, 0x45, 0x15,
- 0x30, 0x42, 0x54, 0xfd, 0xd4, 0xeb, 0xdb, 0x12,
- 0xa3, 0x13, 0x0c, 0x62, 0x25, 0x0d, 0xd0, 0x93,
- 0x93, 0x4e, 0x85, 0x04, 0xa8, 0x11, 0x69, 0xb6,
- 0x25, 0x58, 0xfc, 0xa5, 0xee, 0x4f, 0x66, 0x91,
- 0xd9, 0xcf, 0xf9, 0x1d, 0xfd, 0xca, 0x8a, 0x54,
- 0xe9, 0xff, 0x26, 0xa8, 0x8b, 0xb8, 0x4e, 0x50,
- 0xe9, 0xff, 0xf9, 0x6f, 0xf7, 0x7d, 0x00, 0xc7,
- 0xaf, 0xd5, 0xfe, 0x09, 0xa2, 0xfb, 0x9f, 0x6f,
- 0x5d, 0xc7, 0x1d, 0x3f, 0xee, 0xed, 0xda, 0xa6,
- 0x0e, 0xea, 0x74, 0xfe, 0xd7, 0x20, 0xf5, 0xd4,
- 0xc3, 0xc4, 0x03, 0x3b, 0xc5, 0xc7, 0x88, 0x06,
- 0x30, 0xfa, 0x6f, 0x42, 0x9b, 0xdc, 0x78, 0x80,
- 0x67, 0xbf, 0xaf, 0xb8, 0xf1, 0x00, 0xcf, 0xed,
- 0xb5, 0x33, 0x9e, 0x50, 0xf1, 0x00, 0xce, 0xdf,
- 0x78, 0x3c, 0x40, 0x31, 0xc2, 0x2e, 0xd4, 0x45,
- 0x42, 0xf5, 0xc8, 0x13, 0x85, 0x34, 0x78, 0x80,
- 0x60, 0xf1, 0x00, 0xcc, 0x8a, 0x3c, 0x40, 0x31,
- 0xc1, 0xb9, 0xd8, 0xbc, 0xf6, 0xd5, 0xc2, 0x1e,
- 0x20, 0x19, 0xda, 0xf6, 0x3c, 0x40, 0x33, 0xfe,
- 0xef, 0xba, 0xd4, 0xdb, 0x78, 0x9e, 0x20, 0x19,
- 0xbf, 0x83, 0xc4, 0x03, 0x3f, 0xbb, 0xe1, 0xad,
- 0x53, 0x93, 0xc4, 0x03, 0x3e, 0xdd, 0xdf, 0xef,
- 0x27, 0x88, 0x06, 0x6d, 0xd4, 0xf1, 0x00, 0xc0,
- 0x9e, 0xd6, 0x8d, 0xe7, 0xda, 0xea, 0x3e, 0xe3,
- 0x44, 0x03, 0x37, 0x28, 0x78, 0x80, 0x6c, 0x6d,
- 0x67, 0xdb, 0x45, 0x7f, 0x07, 0x88, 0x06, 0x7a,
- 0xff, 0xeb, 0x1e, 0x20, 0x19, 0xc8, 0x2c, 0x78,
- 0x80, 0x67, 0xfd, 0x8f, 0xd7, 0x84, 0xce, 0xf3,
- 0x53, 0xc4, 0x03, 0x3e, 0xbf, 0xdc, 0xe4, 0x3c,
- 0x40, 0x31, 0x88, 0x81, 0xa2, 0x6c, 0xc3, 0xc9,
- 0xe2, 0x01, 0x87, 0x2a, 0x94, 0xe0, 0x8f, 0x21,
- 0x35, 0xb5, 0x6a, 0x19, 0xf2, 0x69, 0x52, 0xed,
- 0x42, 0x9e, 0xf2, 0x29, 0xf6, 0x6a, 0xbe, 0xf9,
- 0xe2, 0x01, 0x9f, 0xdc, 0x23, 0x2c, 0x29, 0xa3,
- 0xc4, 0x03, 0xc1, 0xb4, 0x9c, 0x28, 0x13, 0xc4,
- 0x03, 0x0c, 0x7e, 0xe2, 0xa1, 0x3d, 0xbe, 0xba,
- 0xa7, 0x88, 0x06, 0x7e, 0xf5, 0x9d, 0x8f, 0xb8,
- 0xf1, 0x00, 0xc6, 0x22, 0x2b, 0x92, 0x0b, 0xcb,
- 0xe7, 0xff, 0x7b, 0xdc, 0x51, 0x2b, 0x6a, 0xde,
- 0x3c, 0x9e, 0x20, 0x19, 0x87, 0x93, 0xc4, 0x03,
- 0x3e, 0xfd, 0x57, 0x6f, 0x9e, 0x20, 0x19, 0xfb,
- 0x7d, 0xbd, 0xd9, 0x53, 0xc4, 0x03, 0x08, 0x89,
- 0x3e, 0x91, 0xe8, 0xd6, 0x38, 0x5f, 0xe0, 0xc8,
- 0x6e, 0xac, 0x80, 0x2c, 0x14, 0x22, 0xf2, 0xfe,
- 0x49, 0xeb, 0x2b, 0x77, 0x51, 0xe0, 0xaf, 0x98,
- 0x83, 0x0e, 0xd9, 0xdf, 0xec, 0x68, 0x80, 0x6c,
- 0x8b, 0x69, 0xeb, 0xb7, 0x25, 0xc2, 0x8e, 0x9b,
- 0x94, 0x2a, 0x57, 0x4a, 0x9d, 0x44, 0x78, 0xe9,
- 0x82, 0x12, 0xa3, 0x67, 0xb5, 0x73, 0x16, 0x58,
- 0x48, 0x23, 0x93, 0x95, 0xba, 0x95, 0x63, 0xc1,
- 0x9e, 0xd5, 0x6e, 0x2f, 0x3a, 0x1e, 0x65, 0x5b,
- 0x38, 0x9d, 0xa9, 0x27, 0xbb, 0x38, 0xe6, 0x18,
- 0xe0, 0x96, 0xcf, 0xc2, 0xb3, 0x90, 0x5e, 0x3a,
- 0x7f, 0xce, 0xa8, 0x1d, 0xc5, 0x20, 0xdd, 0x3a,
- 0x7e, 0x04, 0x23, 0xbc, 0xa1, 0x53, 0xcb, 0x53,
- 0xd6, 0x3a, 0x7d, 0x8b, 0x39, 0x1f, 0x3a, 0x7b,
- 0x3a, 0x8e, 0x2a, 0x04, 0xfa, 0xfa, 0x47, 0x70,
- 0x51, 0x08, 0x99, 0xb6, 0x16, 0xd1, 0x03, 0xe1,
- 0x31, 0x3d, 0xbe, 0xea, 0xa7, 0x4e, 0xbd, 0x7a,
- 0xa9, 0xd3, 0xff, 0x6a, 0xb9, 0xc2, 0x3f, 0x5c,
- 0x7f, 0x47, 0x42, 0x1f, 0x47, 0x91, 0x4f, 0xbd,
- 0x77, 0x1c, 0x21, 0xd3, 0x56, 0xa7, 0x4e, 0x08,
- 0x42, 0x74, 0xdc, 0xf9, 0x56, 0x2f, 0x20, 0x4f,
- 0x5e, 0xa6, 0x53, 0xbf, 0x9c, 0x2a, 0x1c, 0x8b,
- 0xd5, 0x42, 0x05, 0x7c, 0x86, 0x7f, 0x6b, 0xb8,
- 0xff, 0x20, 0xb8, 0xe9, 0xfe, 0xee, 0x2e, 0xcb,
- 0x04, 0x21, 0x2a, 0x72, 0xbf, 0x47, 0x45, 0x0f,
- 0x55, 0x71, 0xd4, 0x22, 0x39, 0xf6, 0x71, 0xf0,
- 0x8b, 0x9a, 0x9e, 0x74, 0xcb, 0x54, 0xe9, 0xfa,
- 0xd8, 0xbb, 0x7d, 0xe3, 0x0d, 0x60, 0x22, 0xb3,
- 0xdc, 0x65, 0x3c, 0xe9, 0xff, 0x93, 0x3a, 0xea,
- 0x67, 0x7a, 0x81, 0x3a, 0x5b, 0x14, 0x55, 0x75,
- 0x1f, 0x44, 0x30, 0xf3, 0x69, 0x42, 0xe8, 0xdb,
- 0x78, 0x8f, 0xee, 0xe9, 0x7b, 0x1d, 0xed, 0x00,
- 0x69, 0x64, 0x54, 0x8e, 0x87, 0x94, 0x0e, 0xc2,
- 0x2b, 0x51, 0xe2, 0x2e, 0x8c, 0x26, 0x7e, 0xef,
- 0x39, 0xc7, 0xb8, 0xe9, 0xf0, 0x2b, 0x39, 0x2e,
- 0x65, 0x46, 0x1e, 0xd8, 0x25, 0xd3, 0xff, 0x86,
- 0xef, 0x6f, 0xf0, 0x72, 0xbb, 0x4e, 0x9d, 0x20,
- 0x4d, 0x10, 0x2c, 0xb4, 0x6a, 0x05, 0x25, 0xbd,
- 0x1b, 0xb0, 0x8f, 0x4f, 0xfb, 0x6b, 0xf4, 0xd8,
- 0x36, 0xe7, 0x94, 0x2a, 0x7f, 0xf6, 0xab, 0xef,
- 0x80, 0xa4, 0xce, 0xe9, 0x7c, 0xe8, 0x44, 0x49,
- 0xed, 0x16, 0x73, 0xdd, 0x71, 0xd0, 0x89, 0xc0,
- 0x2a, 0x10, 0xf4, 0x85, 0xd5, 0xe4, 0x53, 0xf9,
- 0xcb, 0x67, 0x7e, 0x98, 0x74, 0xff, 0xe1, 0x6e,
- 0xe2, 0xee, 0xe2, 0x0a, 0x54, 0xe9, 0xfd, 0xeb,
- 0x53, 0x15, 0x95, 0x3a, 0x30, 0xfe, 0x57, 0x23,
- 0xcf, 0xff, 0xc8, 0x1a, 0xe9, 0xf6, 0xdd, 0x00,
- 0xb8, 0xca, 0x6d, 0x47, 0x46, 0xd1, 0x07, 0xa2,
- 0x39, 0xdc, 0x78, 0x9d, 0x3e, 0xe7, 0xfb, 0x97,
- 0x07, 0x42, 0x1e, 0x2d, 0xe3, 0x73, 0xc8, 0xa7,
- 0xd6, 0x3a, 0x11, 0x3d, 0xb7, 0x46, 0x5d, 0x56,
- 0x8d, 0x11, 0x4f, 0x73, 0xef, 0xd4, 0xe9, 0x82,
- 0x13, 0xa2, 0xa6, 0xe4, 0x24, 0x73, 0xf5, 0x77,
- 0x4f, 0xca, 0x15, 0x63, 0x43, 0x38, 0x21, 0x09,
- 0x53, 0xce, 0xd6, 0x31, 0x56, 0x2f, 0x27, 0xd9,
- 0xc6, 0xf9, 0xa9, 0xd2, 0xf1, 0x3d, 0x8e, 0x97,
- 0xcf, 0xdd, 0x7e, 0xab, 0x66, 0x8e, 0x9f, 0x3d,
- 0x73, 0xde, 0x3e, 0x74, 0xff, 0xb1, 0xb8, 0xc1,
- 0x0f, 0xd1, 0x63, 0xa6, 0x73, 0xc5, 0x43, 0xe7,
- 0xa9, 0xd3, 0xd8, 0x14, 0x52, 0x7c, 0x20, 0x61,
- 0x13, 0x1f, 0xc2, 0x6f, 0x86, 0x9c, 0xff, 0xae,
- 0xa3, 0xfd, 0x4a, 0x52, 0xf6, 0x3a, 0x7e, 0xef,
- 0xdd, 0xa7, 0xb8, 0xe9, 0xc1, 0x08, 0x4a, 0x9c,
- 0x0a, 0x72, 0x55, 0x8b, 0xc9, 0xfe, 0xef, 0xf2,
- 0x03, 0x93, 0x97, 0xce, 0x8e, 0x11, 0xe6, 0xa4,
- 0x1e, 0x52, 0xb4, 0x59, 0x38, 0x21, 0x09, 0x62,
- 0x10, 0x9f, 0x0b, 0x7f, 0xb1, 0x62, 0x10, 0xb1,
- 0xa9, 0x9c, 0x10, 0x84, 0xb1, 0x07, 0xc1, 0x62,
- 0x0f, 0xb1, 0xa9, 0x99, 0x15, 0x88, 0x90, 0x66,
- 0x99, 0xf6, 0x93, 0x48, 0xa3, 0xa7, 0xbb, 0xb4,
- 0xba, 0x74, 0xe0, 0x53, 0x93, 0xa1, 0xe3, 0xc0,
- 0x51, 0x1c, 0xf9, 0x92, 0x88, 0xa2, 0xa7, 0xdd,
- 0xfe, 0xf7, 0x0a, 0x9b, 0x18, 0xa9, 0x82, 0x12,
- 0xa3, 0x0f, 0xd6, 0xa4, 0xba, 0x26, 0x08, 0xa4,
- 0xfe, 0xe8, 0x29, 0xcd, 0x32, 0xe0, 0xab, 0x1b,
- 0xb8, 0x44, 0xe0, 0x36, 0xcd, 0xf0, 0xd3, 0x9f,
- 0xfd, 0x44, 0xe6, 0xb9, 0x9c, 0x7f, 0x7e, 0xe9,
- 0xd3, 0xfa, 0xa0, 0xaa, 0xa1, 0xf7, 0xce, 0x84,
- 0x56, 0xb1, 0xb8, 0x7c, 0x0c, 0x75, 0x9e, 0x69,
- 0x54, 0xb9, 0xc1, 0x08, 0x4a, 0x9f, 0x3b, 0x9f,
- 0xef, 0x05, 0x58, 0xbc, 0x9f, 0xfe, 0xeb, 0xe0,
- 0x3f, 0xca, 0x75, 0xbd, 0xee, 0xf9, 0xd3, 0xff,
- 0xe7, 0x62, 0x5b, 0x8e, 0xa5, 0xed, 0x97, 0x76,
- 0x27, 0x4f, 0x6f, 0x8c, 0x51, 0xd0, 0x89, 0x81,
- 0xb8, 0xe3, 0xd4, 0xef, 0x56, 0x9f, 0xf5, 0x6a,
- 0x83, 0xa4, 0xb7, 0x1b, 0x3a, 0x7f, 0xdd, 0xf5,
- 0xa9, 0xe2, 0x3b, 0xe0, 0xe8, 0xd9, 0xfe, 0x28,
- 0xfa, 0x7e, 0xf1, 0xe3, 0x33, 0xa7, 0x4f, 0xff,
- 0x66, 0xab, 0x8b, 0x51, 0x17, 0x65, 0x28, 0x87,
- 0x4f, 0xed, 0x2f, 0x75, 0xba, 0xbd, 0x9e, 0xbc,
- 0xe8, 0xe1, 0x17, 0xdd, 0x2b, 0xd2, 0x84, 0xff,
- 0xfe, 0xee, 0xb2, 0x9b, 0x4d, 0x6f, 0x94, 0x75,
- 0x82, 0x10, 0x95, 0x3d, 0xc6, 0x65, 0xd2, 0xa7,
- 0x3b, 0xb7, 0x9a, 0x21, 0x99, 0xc1, 0x08, 0x4a,
- 0x9d, 0x9d, 0x62, 0xac, 0x5e, 0x4f, 0xfb, 0x1e,
- 0xce, 0x3d, 0xdd, 0x47, 0x8e, 0x8e, 0x4f, 0xa3,
- 0xa5, 0x30, 0x89, 0xab, 0x3c, 0xc4, 0xf9, 0x18,
- 0xc2, 0xba, 0x7b, 0x7a, 0xda, 0x1d, 0x3f, 0xaf,
- 0xc1, 0xe7, 0x9d, 0xf4, 0xe9, 0xff, 0xf2, 0x3b,
- 0x7c, 0x50, 0x1a, 0xe0, 0xb7, 0xfb, 0x1a, 0x20,
- 0xc8, 0xa2, 0x25, 0x74, 0x6b, 0x3f, 0x97, 0xf2,
- 0xab, 0xf8, 0x28, 0x74, 0x39, 0x30, 0xfd, 0xc2,
- 0xdb, 0x44, 0x73, 0xff, 0xc9, 0xd7, 0x80, 0x5b,
- 0x7d, 0xce, 0x33, 0xb7, 0x4e, 0x9c, 0x82, 0xb1,
- 0xd0, 0x8b, 0x8b, 0xf9, 0x0e, 0x0d, 0xc7, 0x0f,
- 0xf1, 0xa9, 0x5e, 0x6c, 0xbe, 0xab, 0x3f, 0xb5,
- 0xb5, 0xdb, 0xd3, 0x90, 0xa9, 0x28, 0xe9, 0xfd,
- 0x5c, 0xed, 0xd1, 0x4b, 0x6c, 0xf1, 0x41, 0x35,
- 0x9e, 0x1b, 0xdf, 0x71, 0xd3, 0xfb, 0xae, 0xee,
- 0x29, 0x18, 0xe9, 0xca, 0xe3, 0x0e, 0x84, 0x3f,
- 0x0c, 0x23, 0xf3, 0x19, 0xff, 0x5f, 0xaa, 0x82,
- 0x3c, 0xab, 0x75, 0x3a, 0x7f, 0xe4, 0xef, 0xd1,
- 0x39, 0xb0, 0xd6, 0xa5, 0x47, 0x08, 0x85, 0x52,
- 0x14, 0xfa, 0x9b, 0xdb, 0xf5, 0x3a, 0x6e, 0x50,
- 0xe9, 0xf8, 0x7f, 0xa0, 0xa7, 0x27, 0x4d, 0xe2,
- 0x74, 0xb6, 0x73, 0x16, 0x92, 0x63, 0xa4, 0xa3,
- 0xa7, 0x62, 0xfd, 0xb6, 0x89, 0x41, 0x16, 0xa2,
- 0x0f, 0x8f, 0x02, 0x1f, 0x3f, 0xfe, 0xbd, 0x00,
- 0xf1, 0x1f, 0xe5, 0x2c, 0x10, 0x84, 0xe8, 0x72,
- 0xb0, 0x0e, 0x21, 0x79, 0xb8, 0x58, 0xac, 0x49,
- 0xd8, 0x5e, 0xe9, 0x76, 0x7f, 0x27, 0x75, 0xfd,
- 0xbf, 0x0e, 0x9f, 0xc2, 0xee, 0xed, 0xd4, 0xc3,
- 0xa7, 0xd9, 0xce, 0x62, 0xc7, 0x4f, 0xd5, 0xc5,
- 0xdd, 0x47, 0xce, 0x92, 0x62, 0x22, 0x3a, 0x65,
- 0xa2, 0x79, 0xeb, 0xfc, 0x5c, 0x74, 0xf2, 0x5e,
- 0xbd, 0x54, 0xa9, 0xf3, 0xac, 0x10, 0x84, 0xe8,
- 0xe9, 0xe7, 0xde, 0x4f, 0x1c, 0x22, 0x4f, 0x1c,
- 0x21, 0x49, 0xd2, 0x73, 0x0b, 0xab, 0xe1, 0x8f,
- 0x3f, 0x0d, 0xfc, 0xe7, 0x58, 0xe9, 0xee, 0x38,
- 0x45, 0xc7, 0x4f, 0xff, 0x92, 0x88, 0xa6, 0x4d,
- 0x60, 0xb7, 0xfb, 0x1a, 0x2f, 0x89, 0xfc, 0x1f,
- 0xd5, 0x53, 0x1e, 0x3a, 0x7f, 0xfe, 0xcd, 0x02,
- 0xe4, 0x5d, 0xbe, 0xf2, 0x3b, 0x45, 0x61, 0x53,
- 0x6b, 0x0e, 0x9f, 0x0e, 0xde, 0xf5, 0x1a, 0x61,
- 0x39, 0xed, 0x5e, 0x9e, 0x69, 0x84, 0xe6, 0xe5,
- 0x0d, 0x40, 0x9c, 0xfe, 0xef, 0xdd, 0xd2, 0x0f,
- 0x26, 0xa0, 0x4e, 0x7f, 0x57, 0x29, 0xba, 0xde,
- 0xf1, 0xa6, 0x13, 0x9b, 0x38, 0x34, 0xc2, 0x73,
- 0x04, 0x27, 0x98, 0x4e, 0x31, 0x34, 0xe7, 0xcd,
- 0x36, 0x5c, 0xa2, 0x3a, 0xa0, 0xae, 0x42, 0x09,
- 0x1c, 0xb4, 0x59, 0x84, 0xec, 0x7c, 0xf2, 0xdb,
- 0xe9, 0xfc, 0x06, 0x3c, 0xa8, 0xaa, 0xa8, 0x6d,
- 0x4a, 0x55, 0x8e, 0x15, 0xb2, 0x31, 0x2d, 0x16,
- 0xf5, 0x2a, 0xe2, 0x7d, 0xc6, 0x0e, 0xee, 0x9d,
- 0x3e, 0xee, 0x03, 0x8b, 0x1d, 0x3f, 0xb9, 0x07,
- 0xae, 0x5f, 0xf7, 0x8e, 0x8e, 0x9f, 0x0e, 0x8a,
- 0x21, 0x17, 0x20, 0xf2, 0x5c, 0x8e, 0xd1, 0xbe,
- 0x11, 0x53, 0xff, 0x95, 0xaa, 0xef, 0xaf, 0xbb,
- 0x5b, 0xae, 0xce, 0x9f, 0xff, 0xdd, 0xc7, 0xf2,
- 0xbf, 0xda, 0x6d, 0x35, 0x4b, 0xfd, 0x47, 0x4e,
- 0x1a, 0xd4, 0xf1, 0x01, 0xcf, 0xff, 0xdb, 0xd0,
- 0x22, 0x94, 0x40, 0x30, 0x5b, 0xfd, 0x8d, 0x10,
- 0x1d, 0x8d, 0x44, 0xff, 0xff, 0xbb, 0xee, 0xce,
- 0xac, 0xec, 0x7d, 0xc0, 0xa7, 0x36, 0x08, 0x42,
- 0x54, 0xfe, 0x4c, 0x16, 0xff, 0x63, 0x44, 0x13,
- 0x3f, 0xc9, 0xac, 0x16, 0xff, 0x63, 0x45, 0xf3,
- 0x3e, 0xda, 0xee, 0xe5, 0x78, 0x3f, 0xa6, 0x3a,
- 0x9f, 0xf3, 0xde, 0xfa, 0xfe, 0x6b, 0xbe, 0xb8,
- 0xe9, 0xc1, 0x08, 0x4a, 0x9f, 0xb5, 0x4c, 0x6f,
- 0x12, 0xac, 0x5e, 0x43, 0xc8, 0x99, 0xeb, 0x04,
- 0xff, 0xcf, 0x29, 0x1f, 0xaf, 0x71, 0xe0, 0x5c,
- 0x74, 0xff, 0xf0, 0x2f, 0xf4, 0x06, 0xa6, 0xf9,
- 0xe5, 0x05, 0xc7, 0x4e, 0x08, 0x42, 0x54, 0xfe,
- 0x07, 0x94, 0xee, 0x3f, 0xa2, 0xac, 0x5e, 0x4f,
- 0xff, 0xcb, 0xd0, 0x0d, 0x4d, 0xf1, 0xc6, 0x04,
- 0x0d, 0x57, 0x1e, 0x3a, 0x5f, 0x44, 0x54, 0xde,
- 0x89, 0x0e, 0x55, 0x11, 0xb8, 0x6d, 0x09, 0x22,
- 0x92, 0x35, 0x18, 0xcc, 0xff, 0xb3, 0x48, 0x35,
- 0xa2, 0x77, 0x47, 0x88, 0x22, 0x7f, 0x26, 0x0b,
- 0x7f, 0xb1, 0xa2, 0x08, 0xb1, 0xe4, 0xcf, 0xee,
- 0xfd, 0x04, 0x76, 0x13, 0xa3, 0x93, 0xfc, 0xea,
- 0x5c, 0xff, 0x27, 0x74, 0x0e, 0x53, 0xdf, 0x3a,
- 0x7f, 0xfb, 0xc3, 0xac, 0xa2, 0x6f, 0x5d, 0xca,
- 0x6c, 0xe8, 0x72, 0x21, 0xfa, 0x73, 0x3f, 0xb4,
- 0x0a, 0xaa, 0x1f, 0x7c, 0xe9, 0xed, 0xad, 0xb0,
- 0x9d, 0x3f, 0xfe, 0xbd, 0xee, 0xa6, 0x52, 0xc9,
- 0xac, 0xa5, 0xe2, 0x74, 0xfb, 0x35, 0x50, 0x6b,
- 0xc1, 0xfc, 0x82, 0x47, 0x3f, 0x35, 0x36, 0xbf,
- 0xbb, 0xa7, 0x4f, 0xca, 0x4b, 0x9d, 0x31, 0xe3,
- 0xa3, 0x83, 0xe3, 0xd9, 0x94, 0xe1, 0x06, 0xa7,
- 0x4f, 0xfb, 0xfa, 0xd8, 0x2d, 0xfe, 0xc6, 0x88,
- 0x46, 0x10, 0xf8, 0x6f, 0x1c, 0x9f, 0xfc, 0x98,
- 0xf8, 0x3a, 0xdf, 0x6f, 0x76, 0x54, 0xe9, 0xff,
- 0xef, 0xf7, 0x81, 0xca, 0x7a, 0xac, 0x10, 0x84,
- 0xe9, 0x67, 0x08, 0x9c, 0x59, 0x32, 0x70, 0x42,
- 0x12, 0xa7, 0xfb, 0x39, 0xf1, 0xc5, 0xd9, 0xc1,
- 0x56, 0x2f, 0x26, 0x08, 0x4a, 0x9c, 0x10, 0x84,
- 0xa9, 0xfb, 0xde, 0xe2, 0x89, 0x52, 0xac, 0x5e,
- 0x47, 0x51, 0x6e, 0x14, 0x85, 0xf3, 0x29, 0xf3,
- 0x6f, 0x80, 0x54, 0x55, 0x8d, 0x9c, 0xe0, 0x84,
- 0x25, 0x4e, 0xaa, 0x09, 0x56, 0x2f, 0x25, 0xce,
- 0xcf, 0xfb, 0x4a, 0xb3, 0xf7, 0x1d, 0x47, 0x7b,
- 0x1d, 0x3f, 0x81, 0x1e, 0x36, 0xb9, 0x38, 0x3a,
- 0x7f, 0x6a, 0x98, 0xbb, 0x35, 0x53, 0xa0, 0x51,
- 0x2f, 0x42, 0xce, 0x9b, 0xc2, 0x23, 0xbf, 0x21,
- 0x81, 0x39, 0xfb, 0x93, 0xaf, 0x73, 0xa7, 0xff,
- 0x65, 0xcf, 0xfb, 0xce, 0x32, 0x51, 0x14, 0x74,
- 0xfc, 0xdb, 0xad, 0x36, 0xb1, 0x53, 0xfc, 0x07,
- 0x71, 0xf7, 0x57, 0x77, 0x4e, 0x9e, 0x4f, 0x52,
- 0xe2, 0xa7, 0x04, 0x21, 0x2a, 0x7f, 0xf8, 0x14,
- 0xe7, 0x33, 0xba, 0xa6, 0xd3, 0xaf, 0x15, 0x62,
- 0xf2, 0x58, 0xc8, 0x9e, 0x51, 0xf4, 0x22, 0x74,
- 0xce, 0x2b, 0x7d, 0x2f, 0x65, 0xd4, 0x86, 0xdc,
- 0xff, 0xf9, 0x58, 0xc9, 0xdf, 0xd5, 0x78, 0xbf,
- 0xc5, 0xc7, 0x4f, 0x93, 0x55, 0x5d, 0x87, 0x42,
- 0x1f, 0xe6, 0x95, 0x27, 0xff, 0xb6, 0xbb, 0x3b,
- 0xc7, 0x7c, 0x39, 0xdf, 0xba, 0x74, 0xff, 0xff,
- 0x71, 0x4d, 0x87, 0x2e, 0x36, 0xaf, 0xd5, 0x6f,
- 0x76, 0x3f, 0xa3, 0xa3, 0x11, 0x81, 0xea, 0x70,
- 0x8c, 0xf7, 0x07, 0x93, 0x5d, 0x08, 0x9e, 0x1d,
- 0x32, 0x5b, 0x96, 0xe3, 0x1b, 0x5a, 0x15, 0x42,
- 0x46, 0xa8, 0x57, 0x52, 0x14, 0xbc, 0xc2, 0x13,
- 0xb0, 0xbe, 0xac, 0xa9, 0xdd, 0x47, 0x99, 0x7c,
- 0x33, 0x03, 0x0e, 0x19, 0xcb, 0x93, 0xa7, 0x4f,
- 0xff, 0x67, 0x6d, 0xab, 0xbb, 0x7e, 0xb4, 0xce,
- 0x7c, 0xe9, 0x3e, 0xe3, 0xf0, 0xe0, 0x76, 0x7e,
- 0xa2, 0xdb, 0xa6, 0xd4, 0x74, 0xff, 0xba, 0x9a,
- 0xa7, 0xf3, 0xef, 0xd4, 0xe9, 0xff, 0xab, 0xfb,
- 0x1c, 0x7e, 0xc1, 0x08, 0x4e, 0x9f, 0xfe, 0xea,
- 0x38, 0x00, 0x75, 0xbe, 0xde, 0xec, 0xa9, 0xd1,
- 0x89, 0x82, 0xb1, 0x7d, 0x0f, 0xf9, 0x44, 0x9f,
- 0xc9, 0xd7, 0x77, 0x33, 0x93, 0xa7, 0xf3, 0xb0,
- 0x6b, 0xd4, 0x78, 0xe9, 0xff, 0xe4, 0x5c, 0x83,
- 0x60, 0x75, 0xdc, 0x7b, 0x62, 0x7b, 0xbd, 0xe7,
- 0xff, 0xb3, 0x49, 0xd6, 0xcd, 0x53, 0x63, 0xcb,
- 0x1d, 0x3e, 0xfa, 0xe7, 0x74, 0x74, 0xed, 0x7d,
- 0xcc, 0xe9, 0xfd, 0xaa, 0x6e, 0xdc, 0xfe, 0xce,
- 0x87, 0x93, 0x24, 0xe1, 0x7b, 0xa9, 0xba, 0x26,
- 0xbc, 0x7e, 0x7f, 0xfe, 0xee, 0x56, 0xf0, 0x32,
- 0x9f, 0xdc, 0x59, 0xc8, 0xf9, 0xd3, 0xfe, 0xca,
- 0xdf, 0x82, 0xdf, 0xec, 0x68, 0x81, 0xa7, 0xd9,
- 0xaa, 0x7b, 0x80, 0x45, 0x27, 0x57, 0x67, 0xff,
- 0xff, 0xec, 0xd5, 0x3f, 0xb7, 0x40, 0xa8, 0xff,
- 0xe9, 0x76, 0x70, 0x06, 0x2b, 0xfa, 0xfb, 0x8f,
- 0x10, 0x5c, 0xff, 0xbf, 0xee, 0xb7, 0xf0, 0x05,
- 0xd0, 0x9e, 0x20, 0xb9, 0xff, 0xa9, 0xba, 0x6d,
- 0x3b, 0xa0, 0x2e, 0x84, 0xf1, 0x05, 0xcf, 0xe4,
- 0xdf, 0x74, 0x05, 0xd0, 0x9e, 0x20, 0xb9, 0xf9,
- 0x59, 0xc0, 0x17, 0x42, 0x78, 0x82, 0xe7, 0xff,
- 0xfb, 0xfb, 0xdd, 0xa8, 0x0a, 0xb5, 0x36, 0x3b,
- 0xba, 0xf6, 0x04, 0xf1, 0x05, 0xcc, 0xf8, 0x1c,
- 0x27, 0x38, 0xc9, 0xe2, 0xab, 0xe8, 0x7d, 0x3e,
- 0x8a, 0x2a, 0x8e, 0xec, 0xa3, 0x79, 0xef, 0x1e,
- 0x7c, 0xe9, 0xff, 0xa9, 0xba, 0x6d, 0x3b, 0xa0,
- 0x2e, 0x84, 0xf1, 0x05, 0xcf, 0xf2, 0xd5, 0x6d,
- 0xbc, 0x05, 0xd0, 0x9e, 0x20, 0xb9, 0xf6, 0xaa,
- 0x8a, 0x01, 0x91, 0x40, 0x0a, 0xac, 0xff, 0xe0,
- 0x1a, 0x9b, 0x64, 0xd5, 0x40, 0xba, 0x13, 0xc4,
- 0x17, 0x3f, 0xff, 0xf7, 0x7b, 0xb5, 0x01, 0x7e,
- 0x01, 0x56, 0xa6, 0xc7, 0x77, 0x5e, 0xc0, 0x9e,
- 0x20, 0xb8, 0xc4, 0xc8, 0x1f, 0x41, 0xf5, 0xa9,
- 0xfe, 0xa6, 0xc7, 0x77, 0x5e, 0xc0, 0x9e, 0x20,
- 0xb9, 0xff, 0xef, 0xf7, 0xdd, 0x5a, 0x6f, 0x8e,
- 0x10, 0x50, 0xa9, 0xff, 0x63, 0x9d, 0x7d, 0x47,
- 0xaf, 0x2f, 0x9e, 0x20, 0xb8, 0x64, 0x74, 0x0a,
- 0x45, 0x54, 0x27, 0xfc, 0xdb, 0x1d, 0x7f, 0x35,
- 0x00, 0x27, 0x88, 0x2e, 0x7e, 0xa6, 0xe9, 0x4d,
- 0xf2, 0x68, 0x02, 0xe7, 0xd9, 0xc8, 0x17, 0x42,
- 0x78, 0x82, 0xe6, 0xcd, 0x31, 0xfa, 0x50, 0xf2,
- 0x1f, 0x47, 0x65, 0x61, 0x81, 0x3f, 0x2b, 0x38,
- 0x02, 0xe8, 0x4f, 0x10, 0x5c, 0xff, 0x9a, 0x9b,
- 0x1d, 0xdd, 0x7b, 0x02, 0x78, 0x82, 0xe6, 0xc0,
- 0x3d, 0x11, 0x75, 0x3e, 0x9f, 0xd7, 0xed, 0x5f,
- 0xd7, 0xdc, 0x78, 0x82, 0xe7, 0xfd, 0x9b, 0x5d,
- 0x9d, 0xce, 0x3d, 0xc7, 0x88, 0x2d, 0x47, 0x85,
- 0x1c, 0x2e, 0xdf, 0xf2, 0x59, 0xd8, 0xf8, 0x2b,
- 0x18, 0xc6, 0xa3, 0x1a, 0xbe, 0x16, 0x81, 0x70,
- 0x9f, 0x73, 0x5e, 0x79, 0x43, 0x44, 0x17, 0x64,
- 0x40, 0xcf, 0xfb, 0x1d, 0x4f, 0x75, 0xc5, 0xc5,
- 0xef, 0x1d, 0x3f, 0x87, 0xb9, 0xc5, 0x2f, 0x09,
- 0xd3, 0xe7, 0xf5, 0xe3, 0xc9, 0xd3, 0xf6, 0x3d,
- 0xf4, 0x4b, 0x99, 0xd1, 0xb4, 0x46, 0x79, 0xa7,
- 0x4a, 0x27, 0x78, 0xbc, 0x74, 0xdc, 0xa1, 0xd3,
- 0xdb, 0x45, 0x61, 0xd0, 0x74, 0xfd, 0xf7, 0x74,
- 0x83, 0xc9, 0xd1, 0xc1, 0xb8, 0xe8, 0x54, 0xff,
- 0xfe, 0x4d, 0xf1, 0xd4, 0xbd, 0xb5, 0x8d, 0xc2,
- 0x30, 0x2a, 0x3a, 0x6e, 0x50, 0xe9, 0x92, 0xe9,
- 0xd3, 0xfd, 0x9a, 0xaa, 0x28, 0x1c, 0x58, 0xe9,
- 0xfd, 0x5c, 0xa6, 0xeb, 0x7b, 0xc7, 0x4c, 0x10,
- 0x95, 0x3f, 0xdd, 0xc5, 0xde, 0xea, 0xef, 0x83,
- 0xa1, 0x93, 0xf8, 0xd8, 0xd8, 0x8b, 0x29, 0x62,
- 0x84, 0x5c, 0xb0, 0xaf, 0x42, 0xdd, 0x17, 0xa9,
- 0xc8, 0x4d, 0x41, 0x16, 0x9c, 0x10, 0x84, 0xa9,
- 0x28, 0xab, 0x17, 0x93, 0xef, 0x5b, 0xfc, 0x4a,
- 0xb2, 0x36, 0x41, 0x85, 0xd4, 0xfe, 0x7f, 0x49,
- 0x94, 0xc7, 0x8e, 0x84, 0x6c, 0x63, 0x32, 0x32,
- 0xfb, 0xa7, 0xaf, 0x99, 0x6e, 0x35, 0x6a, 0x43,
- 0xcb, 0xe9, 0x21, 0xdd, 0x49, 0xac, 0x34, 0xaf,
- 0x96, 0x00, 0xb9, 0x2a, 0x7b, 0x19, 0x34, 0x74,
- 0xf6, 0x2b, 0x34, 0x74, 0xf7, 0xbc, 0x0b, 0x8e,
- 0x84, 0x3e, 0x27, 0xc7, 0xee, 0x08, 0x27, 0xee,
- 0xdf, 0xc2, 0xbd, 0xc7, 0x4f, 0xff, 0x3e, 0xee,
- 0xa0, 0x0a, 0xea, 0x5d, 0xd6, 0xde, 0x3a, 0x11,
- 0x10, 0x9b, 0x2f, 0x9e, 0x03, 0xc0, 0x04, 0xe9,
- 0xf9, 0xe5, 0x9c, 0xbc, 0x17, 0x8e, 0x99, 0xcf,
- 0x1d, 0x3e, 0xa6, 0x6d, 0xd5, 0x3a, 0x7f, 0xfa,
- 0x88, 0x0d, 0xb5, 0xdf, 0xe6, 0xb5, 0x4e, 0x4a,
- 0x9f, 0xdc, 0xe0, 0xb7, 0xfb, 0x1e, 0x20, 0x48,
- 0x72, 0x2d, 0x78, 0x27, 0x15, 0x29, 0xed, 0x3d,
- 0xfd, 0x3a, 0x79, 0xfa, 0xfe, 0x8e, 0x8c, 0x3c,
- 0x4a, 0x11, 0x4f, 0xee, 0xf8, 0x6b, 0x54, 0xe4,
- 0xe9, 0xc1, 0x08, 0x4f, 0x87, 0xd4, 0xef, 0xef,
- 0x05, 0xc3, 0xea, 0xc6, 0xa6, 0x38, 0x44, 0xaf,
- 0x2b, 0x93, 0xff, 0xec, 0xee, 0xee, 0xda, 0xba,
- 0xa5, 0xfe, 0xe7, 0x21, 0xd0, 0xf1, 0xfe, 0xdd,
- 0x25, 0x8b, 0x90, 0xab, 0x31, 0xc6, 0x99, 0x0c,
- 0xcd, 0xba, 0x7c, 0x66, 0x73, 0xed, 0xe9, 0x35,
- 0x52, 0xa7, 0x99, 0x35, 0x52, 0xa6, 0x08, 0x4a,
- 0x87, 0x1e, 0xee, 0x13, 0x84, 0x82, 0x6c, 0x09,
- 0x56, 0x35, 0xd3, 0xff, 0xec, 0xd2, 0x36, 0x67,
- 0x75, 0x4d, 0xa7, 0x5e, 0x3a, 0x39, 0x3f, 0x80,
- 0x92, 0xcf, 0xff, 0xe4, 0x5d, 0xbe, 0xf2, 0x06,
- 0xab, 0x8d, 0x4f, 0xee, 0xaa, 0x74, 0xfe, 0x59,
- 0xf7, 0x52, 0xf4, 0x13, 0xa7, 0x3b, 0xc4, 0xe9,
- 0xf3, 0xb3, 0x59, 0xc1, 0x52, 0xda, 0xc7, 0x83,
- 0xa1, 0xa9, 0xb9, 0x43, 0xa6, 0xe5, 0x0e, 0x9f,
- 0xbb, 0x7b, 0xb3, 0xb6, 0xd9, 0xac, 0xe4, 0x5a,
- 0x7f, 0xed, 0x53, 0x14, 0x0a, 0x73, 0x8f, 0xe8,
- 0xe9, 0xfc, 0xfb, 0x6c, 0x41, 0x4e, 0x0e, 0x9e,
- 0xe5, 0x5e, 0xea, 0x9f, 0xd6, 0x91, 0xa7, 0x2f,
- 0xe3, 0xe7, 0x42, 0x1e, 0xcf, 0x9d, 0x4e, 0x08,
- 0x42, 0x54, 0xfc, 0x99, 0x77, 0xb7, 0xd4, 0xab,
- 0x17, 0x93, 0xc1, 0xfe, 0xb8, 0xe9, 0x9a, 0x87,
- 0x4e, 0x08, 0x42, 0x54, 0xfd, 0xbf, 0xbb, 0x4d,
- 0xe8, 0xab, 0x17, 0x93, 0xec, 0xe7, 0x31, 0x63,
- 0xa5, 0x50, 0x11, 0x2c, 0x26, 0x3d, 0x3e, 0x9e,
- 0xdf, 0x6f, 0x77, 0x08, 0xed, 0xc8, 0x5b, 0xc2,
- 0x2e, 0x09, 0xb8, 0x8f, 0x19, 0x2e, 0xbb, 0x0a,
- 0xad, 0x23, 0x19, 0xa9, 0xe6, 0xa3, 0x2b, 0x9f,
- 0x91, 0x42, 0x3f, 0xa3, 0xa7, 0xff, 0xb6, 0xa7,
- 0xdd, 0x50, 0x33, 0xbd, 0xcd, 0xf2, 0x74, 0x50,
- 0xff, 0x74, 0x55, 0x2b, 0x2f, 0x67, 0xe7, 0xd6,
- 0x49, 0x42, 0xcf, 0x46, 0x2a, 0xe9, 0x41, 0x9c,
- 0x4a, 0x5e, 0xca, 0xd3, 0xf6, 0xec, 0x66, 0xcd,
- 0x1d, 0x13, 0xf2, 0x88, 0xf7, 0x09, 0xd5, 0xa3,
- 0xcf, 0x19, 0xc7, 0xe5, 0x46, 0xe7, 0x49, 0xd1,
- 0x8f, 0x97, 0x63, 0xcc, 0xa0, 0xee, 0xce, 0x60,
- 0x56, 0x9f, 0x73, 0xaa, 0xcc, 0x76, 0xf8, 0xca,
- 0x17, 0x42, 0xd8, 0x24, 0x4b, 0xf2, 0xbc, 0x01,
- 0x9d, 0x71, 0xb8, 0x87, 0xe4, 0x59, 0xfa, 0x8c,
- 0x1d, 0x7d, 0x04, 0x53, 0xfa, 0xd8, 0x2d, 0xfe,
- 0xc6, 0x8b, 0x8e, 0x7f, 0x5b, 0x05, 0xbf, 0xd8,
- 0xd1, 0x75, 0xcf, 0xfd, 0x6f, 0x75, 0xb0, 0x5b,
- 0xfd, 0x8d, 0x12, 0x8c, 0x23, 0xf6, 0xc1, 0xb8,
- 0xa3, 0x83, 0xbb, 0xa7, 0x6c, 0x77, 0xb8, 0x78,
- 0x5c, 0xd0, 0x3e, 0xfa, 0xa0, 0xaa, 0x6d, 0xa3,
- 0xbb, 0x83, 0xb9, 0xff, 0xd6, 0x57, 0xba, 0xd8,
- 0x2d, 0xfe, 0xc6, 0x89, 0x6a, 0x7c, 0x2d, 0xfe,
- 0xc6, 0x88, 0xde, 0x7f, 0xde, 0xeb, 0x60, 0xb7,
- 0xfb, 0x1a, 0x25, 0xf9, 0x5b, 0x0f, 0xd9, 0x46,
- 0x13, 0xfa, 0xd8, 0x2d, 0xfe, 0xc6, 0x8a, 0xae,
- 0x7f, 0xae, 0xe7, 0x71, 0xfd, 0x7a, 0x8e, 0x9b,
- 0x8d, 0x9d, 0x3f, 0x60, 0xb7, 0xfb, 0x1a, 0x24,
- 0x08, 0x00, 0xf3, 0x2c, 0x2f, 0x3e, 0xaf, 0xf7,
- 0xdf, 0x3a, 0x1c, 0x79, 0x4f, 0x91, 0xc5, 0xd4,
- 0x79, 0xfc, 0x34, 0x27, 0xfe, 0xee, 0x3d, 0x65,
- 0xf4, 0xef, 0x73, 0x47, 0x45, 0x8f, 0xc0, 0x4a,
- 0x67, 0xf5, 0xb0, 0x5b, 0xfd, 0x8d, 0x16, 0x44,
- 0xfe, 0xb6, 0x0b, 0x7f, 0xb1, 0xa2, 0xd7, 0x9f,
- 0xd6, 0xc1, 0x6f, 0xf6, 0x34, 0x5c, 0x93, 0xe1,
- 0x6f, 0xf6, 0x34, 0x5d, 0x93, 0xfe, 0xf7, 0x5b,
- 0x05, 0xbf, 0xd8, 0xd1, 0x47, 0x4a, 0xd8, 0x7e,
- 0xca, 0x30, 0x9f, 0x0b, 0x7f, 0xb1, 0xa2, 0x95,
- 0x9f, 0xff, 0xfe, 0xa2, 0x3c, 0x94, 0xda, 0xef,
- 0xe2, 0x9b, 0xb3, 0x53, 0x6b, 0x51, 0x1e, 0xc3,
- 0xa7, 0xd6, 0x57, 0xba, 0xd8, 0x8b, 0x25, 0x8c,
- 0x21, 0xe5, 0xce, 0xe7, 0x43, 0x21, 0xf2, 0x7d,
- 0xc7, 0x3c, 0xa2, 0x1e, 0x4e, 0xea, 0x77, 0xa8,
- 0x58, 0xae, 0x86, 0xcc, 0xff, 0x3a, 0xd8, 0x2d,
- 0xfe, 0xc6, 0x88, 0xe2, 0x7f, 0xb7, 0x6c, 0x16,
- 0xff, 0x63, 0x45, 0x6b, 0x2b, 0x7a, 0x20, 0xb4,
- 0x83, 0x3f, 0xfa, 0xca, 0xf7, 0x5b, 0x05, 0xbf,
- 0xd8, 0xd1, 0x2d, 0xcd, 0x8f, 0x9d, 0x3f, 0xb8,
- 0xc5, 0x29, 0x37, 0x53, 0xa1, 0xf3, 0xc9, 0xd8,
- 0xb4, 0xea, 0x70, 0xe3, 0xa7, 0x39, 0x4c, 0x74,
- 0x1a, 0x21, 0xb9, 0xff, 0x7b, 0xad, 0x82, 0xdf,
- 0xec, 0x68, 0x98, 0x27, 0x0d, 0xfc, 0x95, 0x2b,
- 0x22, 0x35, 0x5e, 0x23, 0xe0, 0x75, 0x86, 0xd4,
- 0x2f, 0xa4, 0x69, 0xca, 0xbc, 0x4a, 0x9f, 0xf7,
- 0xba, 0xd8, 0x2d, 0xfe, 0xc6, 0x89, 0x8e, 0x56,
- 0xd9, 0xf1, 0x28, 0x72, 0x7e, 0x4a, 0x81, 0xac,
- 0xa1, 0xd3, 0xff, 0xff, 0xce, 0xad, 0x32, 0xf0,
- 0xd6, 0x98, 0xd9, 0x50, 0x31, 0xf7, 0x57, 0x7d,
- 0xd9, 0xd3, 0xcd, 0xfe, 0xc6, 0x8a, 0xc6, 0x7f,
- 0xcb, 0xf9, 0xae, 0xe5, 0xe9, 0xdd, 0x1d, 0x17,
- 0x53, 0x19, 0x7c, 0xb4, 0x61, 0x01, 0xa2, 0xb9,
- 0xff, 0xc9, 0xdd, 0x5d, 0xbd, 0x3b, 0x8c, 0x82,
- 0x74, 0xff, 0xb3, 0x8a, 0x65, 0x5f, 0x72, 0x50,
- 0xe9, 0xff, 0xff, 0xbb, 0x7b, 0xd8, 0xc0, 0x76,
- 0xfb, 0x80, 0x31, 0xf7, 0x65, 0xfd, 0xe6, 0xa7,
- 0x4f, 0xeb, 0x90, 0xf2, 0xce, 0x5e, 0x0b, 0xc7,
- 0x4e, 0xa6, 0xed, 0x89, 0xc5, 0x32, 0x2d, 0x12,
- 0x74, 0x7e, 0xbe, 0xfb, 0x35, 0xeb, 0x1d, 0x3e,
- 0xfe, 0xbd, 0x7d, 0x4e, 0x8e, 0x9e, 0x0d, 0x46,
- 0x27, 0xc1, 0xad, 0x53, 0x93, 0xa7, 0xc8, 0xee,
- 0x6f, 0x71, 0xd3, 0x93, 0xae, 0x3a, 0x16, 0x3c,
- 0x4d, 0x14, 0xcf, 0xc8, 0xac, 0xee, 0xee, 0x9d,
- 0x2a, 0x9d, 0x1b, 0x37, 0xde, 0x5d, 0x37, 0x28,
- 0x54, 0xc1, 0x09, 0x51, 0xb3, 0x58, 0x11, 0x69,
- 0xfd, 0xee, 0xee, 0x6a, 0x9b, 0x2a, 0xc6, 0x86,
- 0x7b, 0x8f, 0x7e, 0xa7, 0x4e, 0x4e, 0xac, 0x74,
- 0xdd, 0x43, 0xa1, 0x63, 0x62, 0x23, 0x93, 0xc3,
- 0xce, 0x5c, 0x1d, 0x38, 0x11, 0xba, 0x74, 0x22,
- 0x2d, 0xf1, 0x53, 0x64, 0x34, 0x24, 0x9a, 0x9a,
- 0x3a, 0x70, 0x42, 0x12, 0xa7, 0xfe, 0xc6, 0xe1,
- 0x1e, 0x07, 0x29, 0xef, 0x95, 0x62, 0xf2, 0x7e,
- 0xbd, 0x5b, 0xd7, 0x3e, 0x74, 0xfe, 0x6d, 0xd7,
- 0xb8, 0xbb, 0xce, 0x9b, 0x34, 0x74, 0x3e, 0x79,
- 0x14, 0x33, 0x9f, 0xfe, 0xd6, 0xeb, 0x4c, 0xe3,
- 0xb8, 0xbb, 0xb9, 0x53, 0xa5, 0x64, 0x5c, 0x02,
- 0xe0, 0x8b, 0x1b, 0x05, 0x85, 0x4d, 0xb4, 0x87,
- 0xcf, 0x9d, 0xf4, 0xca, 0xaa, 0x9a, 0x77, 0x04,
- 0x8e, 0x7c, 0x2d, 0xfe, 0xc6, 0x8a, 0xde, 0x7f,
- 0xde, 0xeb, 0x60, 0xb7, 0xfb, 0x1a, 0x27, 0x09,
- 0x5b, 0x0f, 0xd9, 0x46, 0x13, 0xe1, 0x6f, 0xf6,
- 0x34, 0x5a, 0x33, 0xd8, 0xb6, 0xee, 0x9d, 0x2b,
- 0x61, 0xea, 0x50, 0xc2, 0x79, 0xbf, 0xd8, 0xd1,
- 0x6d, 0x4f, 0xd4, 0x45, 0x26, 0xf8, 0x3a, 0x6b,
- 0x60, 0x9e, 0xc6, 0x8a, 0xe7, 0xf5, 0xb0, 0x5b,
- 0xfd, 0x8d, 0x17, 0x2c, 0xfe, 0xb6, 0x0b, 0x7f,
- 0xb1, 0xa2, 0xed, 0x84, 0x66, 0x3c, 0xbc, 0x50,
- 0xe8, 0xdc, 0x38, 0x85, 0xfd, 0xd9, 0x59, 0x7b,
- 0x9c, 0xa1, 0xb9, 0xc6, 0x35, 0x47, 0xbe, 0xbf,
- 0xd4, 0xb3, 0x47, 0x73, 0xfa, 0xd8, 0x2d, 0xfe,
- 0xc6, 0x8a, 0x9e, 0x79, 0xbf, 0xd8, 0xd1, 0x5c,
- 0xcf, 0xeb, 0x60, 0xb7, 0xfb, 0x1a, 0x2c, 0xe8,
- 0x13, 0xe6, 0xa1, 0x5c, 0xff, 0x3a, 0xd8, 0x2d,
- 0xfe, 0xc6, 0x89, 0x0a, 0x79, 0x7b, 0x51, 0x14,
- 0x74, 0xfe, 0xca, 0x56, 0xb8, 0x2f, 0x1d, 0x2b,
- 0x62, 0x2e, 0xfc, 0x86, 0xa8, 0x3a, 0x27, 0x9f,
- 0xfd, 0x65, 0x7b, 0xad, 0x82, 0xdf, 0xec, 0x68,
- 0x9f, 0x21, 0x93, 0xef, 0xb9, 0xc6, 0xb9, 0x44,
- 0x19, 0xf0, 0xb7, 0xfb, 0x1a, 0x2b, 0x29, 0xff,
- 0x7b, 0xad, 0x82, 0xdf, 0xec, 0x68, 0x9b, 0xa6,
- 0xdd, 0xb0, 0xfd, 0x94, 0x61, 0x3f, 0xfa, 0xca,
- 0xf7, 0x5b, 0x05, 0xbf, 0xd8, 0xd1, 0x2b, 0x4f,
- 0x85, 0xbf, 0xd8, 0xd1, 0x2e, 0x4f, 0x2e, 0xdf,
- 0x50, 0xe9, 0xf5, 0x95, 0xee, 0xb6, 0x1e, 0x9f,
- 0x98, 0x4f, 0xfd, 0x6f, 0x75, 0xb0, 0x5b, 0xfd,
- 0x8d, 0x11, 0xdc, 0xff, 0x6a, 0x98, 0xeb, 0x7f,
- 0x6a, 0x74, 0xfc, 0xbc, 0xea, 0x36, 0x74, 0xe9,
- 0xfa, 0xe5, 0xee, 0x53, 0xf4, 0x74, 0xf8, 0x5b,
- 0xfd, 0x8d, 0x15, 0x0c, 0xfb, 0x29, 0xac, 0x78,
- 0xe9, 0x5a, 0xe5, 0x45, 0xba, 0xf0, 0xbf, 0x0c,
- 0x74, 0x61, 0x3e, 0x16, 0xff, 0x63, 0x45, 0x51,
- 0x3f, 0xef, 0x75, 0xb0, 0x5b, 0xfd, 0x8d, 0x13,
- 0x5c, 0xad, 0x87, 0xec, 0xa3, 0x09, 0xfd, 0x6c,
- 0x16, 0xff, 0x63, 0x45, 0x59, 0x3f, 0xf5, 0xbd,
- 0xd6, 0xc1, 0x6f, 0xf6, 0x34, 0x48, 0x93, 0xe1,
- 0x6f, 0xf6, 0x34, 0x5a, 0x53, 0xfe, 0xf7, 0x5b,
- 0x05, 0xbf, 0xd8, 0xd1, 0x3e, 0xca, 0xd8, 0x7e,
- 0xca, 0x30, 0x9f, 0xfd, 0x65, 0x7b, 0xad, 0x82,
- 0xdf, 0xec, 0x68, 0xa1, 0x27, 0xd4, 0xdb, 0xc8,
- 0x27, 0x4f, 0x85, 0xbf, 0xd8, 0xd1, 0x47, 0xcf,
- 0xff, 0xd9, 0xc5, 0x10, 0x1b, 0x6b, 0xbf, 0xcd,
- 0x6a, 0x9c, 0x95, 0x3e, 0xb2, 0xbd, 0xd6, 0x44,
- 0x5a, 0xe1, 0x3a, 0xf9, 0x84, 0x22, 0xeb, 0xf3,
- 0xd0, 0xa5, 0x71, 0xee, 0x26, 0x5d, 0x87, 0x7b,
- 0x43, 0x05, 0xf2, 0x75, 0x8e, 0xe9, 0x0c, 0x2e,
- 0x49, 0xf5, 0x18, 0x3c, 0xfe, 0xb6, 0x0b, 0x7f,
- 0xb1, 0xa2, 0x22, 0x9f, 0xb0, 0x5b, 0xfd, 0x8d,
- 0x11, 0x5c, 0xff, 0x5c, 0xed, 0x82, 0xdf, 0xec,
- 0x68, 0xae, 0x22, 0xc7, 0xf5, 0xe6, 0xb3, 0xd9,
- 0x4f, 0xd1, 0xd3, 0xfb, 0x36, 0x3c, 0xf3, 0x7d,
- 0x4e, 0x95, 0xcb, 0xd3, 0xd5, 0xa9, 0x04, 0xff,
- 0xdf, 0xb7, 0x6f, 0xba, 0xbe, 0x83, 0x87, 0x4f,
- 0xb3, 0x7c, 0x0e, 0x1d, 0x3b, 0x55, 0xdd, 0x0f,
- 0xab, 0x48, 0x93, 0xe1, 0x6f, 0xf6, 0x34, 0x53,
- 0xd0, 0xbc, 0x47, 0xda, 0x42, 0x5f, 0x0d, 0x27,
- 0xff, 0x7b, 0xad, 0xc7, 0x7c, 0x35, 0xaa, 0x72,
- 0x74, 0x59, 0x10, 0x5c, 0x1b, 0xce, 0xb7, 0x18,
- 0x74, 0xf9, 0x1d, 0xcd, 0xee, 0x3a, 0x79, 0xbf,
- 0xd8, 0xd1, 0x59, 0xc2, 0xc7, 0xa8, 0x25, 0x33,
- 0xf3, 0xca, 0x4e, 0xba, 0xa7, 0x4e, 0x47, 0xb6,
- 0x74, 0xfb, 0x5c, 0x83, 0xd7, 0x1d, 0x3e, 0xc5,
- 0x9e, 0xbf, 0x93, 0xa5, 0x6c, 0x46, 0x08, 0x91,
- 0x50, 0xbb, 0xc7, 0x01, 0x2a, 0x9f, 0xfa, 0xde,
- 0xeb, 0x60, 0xb7, 0xfb, 0x1a, 0x24, 0x59, 0xfd,
- 0x6c, 0x16, 0xff, 0x63, 0x45, 0x93, 0x3f, 0xad,
- 0x82, 0xdf, 0xec, 0x68, 0xb6, 0x27, 0xf5, 0xb0,
- 0x5b, 0xfd, 0x8d, 0x16, 0xdc, 0xff, 0x97, 0x8b,
- 0xcb, 0x92, 0xd5, 0x33, 0xa9, 0xc9, 0xd3, 0xf2,
- 0x75, 0xdc, 0x5e, 0xa3, 0xa7, 0xc2, 0xdf, 0xec,
- 0x68, 0xbc, 0x27, 0xb4, 0xbf, 0x94, 0x3a, 0x7d,
- 0x9d, 0xe6, 0xe1, 0x0e, 0x9f, 0x20, 0x37, 0xfd,
- 0x4e, 0x9d, 0xa4, 0xe4, 0xe9, 0x5a, 0xe4, 0xd4,
- 0xcf, 0xde, 0x4e, 0xc2, 0xf7, 0xcc, 0x39, 0x24,
- 0xe9, 0x56, 0x8a, 0x27, 0xc2, 0xdf, 0xec, 0x68,
- 0xbd, 0x27, 0xfd, 0xdf, 0xd3, 0x92, 0xee, 0xb6,
- 0xf1, 0xd3, 0xec, 0x55, 0x3f, 0x83, 0xa5, 0x6c,
- 0x44, 0xc0, 0x26, 0x17, 0x08, 0x30, 0x8b, 0xf9,
- 0xcf, 0x42, 0xd7, 0x23, 0xf3, 0x62, 0x4d, 0xc6,
- 0x62, 0x29, 0xca, 0x4c, 0xe4, 0xef, 0xa7, 0x77,
- 0xc6, 0xf4, 0x18, 0xc3, 0xa7, 0xb2, 0x9f, 0xa3,
- 0xa7, 0xf6, 0x6c, 0x79, 0xe6, 0xfa, 0x9d, 0x2b,
- 0x97, 0xa7, 0xab, 0x52, 0x09, 0xf0, 0xb7, 0xfb,
- 0x1a, 0x22, 0x39, 0xff, 0xea, 0x5f, 0x5a, 0xe2,
- 0xbb, 0x8b, 0x80, 0x45, 0xee, 0x74, 0xff, 0x9c,
- 0x8f, 0x0e, 0x6b, 0x5b, 0xd1, 0xd3, 0x3c, 0xa2,
- 0xa6, 0x08, 0x4a, 0x9f, 0xf9, 0xd6, 0x6a, 0x6d,
- 0x6a, 0x23, 0xd6, 0xe4, 0xd6, 0x84, 0x5e, 0x7f,
- 0x65, 0xcf, 0xb9, 0x4f, 0xd1, 0xd3, 0xff, 0xf3,
- 0x58, 0x7f, 0xbb, 0xd5, 0x85, 0x35, 0xdf, 0xe4,
- 0xe8, 0x5e, 0x2a, 0x0d, 0xc2, 0xd6, 0x30, 0x7d,
- 0x67, 0xda, 0xf4, 0xbc, 0xb8, 0xd6, 0x7c, 0x2d,
- 0xfe, 0xc6, 0x88, 0xba, 0x7d, 0xae, 0x41, 0xeb,
- 0x8b, 0x67, 0xb4, 0xad, 0x87, 0xcf, 0xe6, 0x11,
- 0x64, 0x7b, 0xba, 0x1a, 0x33, 0xff, 0x2b, 0xdd,
- 0x6c, 0x16, 0xff, 0x63, 0x44, 0xcd, 0x39, 0xf4,
- 0xa9, 0xd3, 0x9b, 0x6a, 0x3a, 0x7f, 0xf6, 0x5c,
- 0x6f, 0x5b, 0x6d, 0xf1, 0xac, 0x63, 0xa7, 0xff,
- 0xdc, 0x6f, 0xaf, 0x65, 0x77, 0xf4, 0xb0, 0x42,
- 0x12, 0xa7, 0x9b, 0xfd, 0x8d, 0x16, 0x7c, 0xff,
- 0xf6, 0xc6, 0x9e, 0x06, 0x2e, 0xee, 0x57, 0x3a,
- 0x74, 0xe0, 0x84, 0x25, 0x4f, 0xfb, 0xdd, 0x5e,
- 0xe3, 0x71, 0x82, 0x55, 0x8b, 0xc9, 0xfe, 0x4a,
- 0x6f, 0x8e, 0xff, 0xac, 0x74, 0xff, 0x6f, 0xbc,
- 0x03, 0xc5, 0xfa, 0xa9, 0xd0, 0xc9, 0xd8, 0x8a,
- 0xc5, 0x0a, 0xf9, 0x6c, 0xd2, 0x5a, 0xe3, 0x99,
- 0xff, 0xff, 0xfb, 0x33, 0x9a, 0xe6, 0x76, 0xe8,
- 0x23, 0xd4, 0xca, 0x5a, 0xbd, 0xc7, 0x95, 0x8a,
- 0x3a, 0x75, 0x51, 0xe3, 0xa7, 0x2f, 0xe5, 0x0e,
- 0x87, 0x23, 0x12, 0xb0, 0x8a, 0xd0, 0xe4, 0xf3,
- 0xfc, 0xde, 0xc7, 0x4f, 0xa9, 0xd4, 0xc1, 0x32,
- 0x7f, 0xdb, 0x17, 0x60, 0xbd, 0x7f, 0xf0, 0x68,
- 0x83, 0x6c, 0x69, 0x67, 0xde, 0xdb, 0x52, 0x1d,
- 0x3f, 0x3a, 0x9d, 0xf7, 0xf4, 0x74, 0xb1, 0x8f,
- 0x4f, 0xa4, 0xb3, 0xff, 0xfe, 0xf0, 0xeb, 0x29,
- 0xa4, 0xce, 0xbf, 0xac, 0x1d, 0xbd, 0xea, 0x3a,
- 0x1c, 0x9a, 0x06, 0x42, 0xbf, 0xa4, 0xd3, 0xf0,
- 0xe7, 0x15, 0xa2, 0x1d, 0x3f, 0xff, 0xaf, 0xef,
- 0xdd, 0x00, 0x1e, 0xfe, 0xab, 0xb7, 0xe9, 0xb0,
- 0x9d, 0x3f, 0xff, 0xd5, 0xaa, 0x0e, 0x92, 0xca,
- 0xcd, 0x54, 0x1a, 0xfb, 0xb0, 0xe9, 0xea, 0x66,
- 0xd7, 0x1d, 0x1b, 0x44, 0x45, 0x19, 0x66, 0x55,
- 0xca, 0x68, 0xbf, 0x27, 0xfe, 0x76, 0xaf, 0x73,
- 0x95, 0xad, 0x22, 0x8e, 0x9f, 0xfb, 0x79, 0xdc,
- 0xca, 0x80, 0xea, 0xa8, 0xe8, 0x7d, 0x11, 0x55,
- 0x46, 0x9e, 0xef, 0x51, 0x8e, 0x84, 0x4c, 0x67,
- 0x82, 0x3c, 0x85, 0x97, 0x92, 0x4f, 0xff, 0xfd,
- 0x70, 0x94, 0xda, 0xac, 0xb3, 0xbc, 0x41, 0xa6,
- 0xdf, 0xab, 0x6d, 0xe3, 0xa7, 0xd7, 0xe5, 0x77,
- 0xd3, 0xa7, 0xc8, 0x0d, 0xff, 0x53, 0xa6, 0x5e,
- 0x94, 0x74, 0xff, 0xff, 0xa9, 0xb7, 0xf5, 0x8f,
- 0xe8, 0x45, 0x35, 0xc8, 0x3d, 0x75, 0x30, 0xe9,
- 0xc1, 0x08, 0x4a, 0x9e, 0xe3, 0x8f, 0xe9, 0x56,
- 0x2f, 0x21, 0x11, 0xb0, 0xc3, 0x7b, 0x84, 0x5c,
- 0xff, 0xd9, 0xd7, 0xf5, 0x83, 0xb7, 0xbd, 0x47,
- 0x4f, 0xb3, 0x4e, 0x55, 0x0e, 0x84, 0x3e, 0xba,
- 0xa2, 0x4d, 0xcd, 0x0e, 0x9f, 0x9e, 0x59, 0xcb,
- 0xc1, 0x78, 0xe9, 0xfd, 0x76, 0x99, 0xaa, 0x6f,
- 0x47, 0x4d, 0xb1, 0x3a, 0x2e, 0x41, 0xff, 0x6c,
- 0xd2, 0x86, 0xb3, 0xff, 0xb8, 0xe1, 0x38, 0x14,
- 0xd6, 0xdb, 0x7c, 0x1d, 0x2b, 0x2f, 0x66, 0x59,
- 0x85, 0xc9, 0x0e, 0x70, 0x37, 0x91, 0xfe, 0xbf,
- 0x18, 0xee, 0xcd, 0x56, 0x8e, 0x24, 0x4d, 0x54,
- 0x59, 0x49, 0x41, 0x3e, 0x83, 0xcb, 0xcf, 0x4a,
- 0x2b, 0x18, 0x06, 0xa1, 0x3c, 0x12, 0x15, 0xf8,
- 0x4a, 0x82, 0x6b, 0x16, 0x66, 0x5a, 0x52, 0x96,
- 0xf9, 0x3f, 0xfa, 0xca, 0xf7, 0x5b, 0x05, 0xbf,
- 0xd8, 0xd1, 0x36, 0x4f, 0xeb, 0x60, 0xb7, 0xfb,
- 0x1a, 0x2a, 0xd9, 0xfc, 0xe7, 0x5f, 0xae, 0xa3,
- 0x8e, 0x9e, 0xca, 0x7e, 0x8e, 0x95, 0xcb, 0x87,
- 0xa9, 0xd3, 0x49, 0xf0, 0xb7, 0xfb, 0x1a, 0x2b,
- 0x49, 0xff, 0xe6, 0x41, 0xce, 0x7d, 0x5e, 0xe4,
- 0xdb, 0x1d, 0x3f, 0xfc, 0xea, 0xe7, 0x51, 0x5f,
- 0x9a, 0xd2, 0x28, 0xe9, 0xb5, 0xa4, 0x44, 0xc7,
- 0xa5, 0xcf, 0xe4, 0x5c, 0x0e, 0xba, 0x9c, 0x9d,
- 0x3f, 0x3d, 0x94, 0xde, 0x28, 0xe9, 0xfe, 0xcb,
- 0x8e, 0xa0, 0x5f, 0x75, 0x4e, 0x9f, 0xce, 0xcd,
- 0x7f, 0x79, 0xbc, 0xe9, 0x59, 0x78, 0x9f, 0xa6,
- 0x16, 0x6e, 0x19, 0x14, 0x2d, 0xf3, 0x6e, 0x96,
- 0xe8, 0xf2, 0x7f, 0x5b, 0x05, 0xbf, 0xd8, 0xd1,
- 0x60, 0x4f, 0x85, 0xbf, 0xd8, 0xd1, 0x3a, 0xcf,
- 0xff, 0xea, 0x23, 0xdc, 0x62, 0xad, 0x5a, 0xe5,
- 0x37, 0x5b, 0xde, 0x3a, 0x7d, 0x65, 0x7b, 0xad,
- 0x88, 0x95, 0x58, 0xc2, 0x7c, 0x2d, 0xfe, 0xc6,
- 0x8b, 0x66, 0x7f, 0xdc, 0xa5, 0x6d, 0x4d, 0xb7,
- 0x89, 0xd2, 0xb6, 0x1f, 0x6f, 0x98, 0x4f, 0x37,
- 0xfb, 0x1a, 0x2e, 0x69, 0x28, 0xe9, 0xad, 0x82,
- 0x6e, 0xc2, 0x57, 0x3f, 0xad, 0x82, 0xdf, 0xec,
- 0x68, 0xbb, 0xe7, 0xad, 0x77, 0x8e, 0x4e, 0x84,
- 0x6c, 0xaf, 0x72, 0x99, 0xb8, 0xc6, 0x0f, 0xa9,
- 0x6e, 0x54, 0x18, 0xb9, 0x2a, 0x1a, 0x1c, 0xc2,
- 0xb6, 0xac, 0x3a, 0x2b, 0x04, 0xee, 0x7f, 0x75,
- 0xec, 0xb8, 0xd2, 0x5d, 0x3a, 0x7c, 0x2d, 0xfe,
- 0xc6, 0x89, 0x5e, 0x7e, 0xa7, 0x17, 0xf8, 0xb8,
- 0xe9, 0xde, 0xeb, 0x22, 0x25, 0xb0, 0xe2, 0xa6,
- 0x13, 0xb4, 0x9c, 0x15, 0x3f, 0xfa, 0x9f, 0xbd,
- 0x23, 0xb6, 0x2f, 0x5f, 0xc9, 0x53, 0xfb, 0xda,
- 0xdc, 0x0a, 0xf5, 0x64, 0x3e, 0x8a, 0x8e, 0x4a,
- 0xca, 0x47, 0xaa, 0xe8, 0x53, 0xcf, 0xfe, 0xb2,
- 0xbd, 0xd6, 0xc1, 0x6f, 0xf6, 0x34, 0x4c, 0x33,
- 0xff, 0xf6, 0x58, 0x11, 0xfe, 0x6d, 0x77, 0x4e,
- 0x0a, 0x55, 0xc7, 0x4f, 0xfd, 0x72, 0xe3, 0xee,
- 0xbf, 0xf5, 0xd4, 0x71, 0xd3, 0xfd, 0xd4, 0xf7,
- 0xb5, 0x77, 0xc4, 0xe9, 0xf9, 0x49, 0x9d, 0xd2,
- 0xf9, 0xd3, 0xe4, 0xce, 0xe9, 0x7c, 0xe9, 0xfa,
- 0x9b, 0xd5, 0x7d, 0xf0, 0x0f, 0x61, 0x45, 0xf3,
- 0xff, 0xfe, 0xee, 0x06, 0xe3, 0x59, 0x40, 0x3b,
- 0x8f, 0x6f, 0x3a, 0xfb, 0xaa, 0x74, 0xfc, 0xb8,
- 0x1d, 0x75, 0x39, 0x3a, 0x7f, 0xf2, 0x6b, 0x94,
- 0x76, 0x3f, 0xa7, 0xaf, 0x09, 0xd0, 0x87, 0xfd,
- 0xb3, 0x19, 0xfa, 0xbb, 0xba, 0xaf, 0xd1, 0xd3,
- 0xff, 0xfe, 0x1c, 0x5c, 0x9d, 0xd0, 0x00, 0xf5,
- 0x29, 0xfb, 0xd2, 0x6a, 0xa7, 0x4b, 0x1f, 0x44,
- 0xe8, 0x97, 0xcf, 0x78, 0x3c, 0x61, 0xd2, 0xb2,
- 0xf1, 0x58, 0xd7, 0x09, 0x4d, 0x09, 0x15, 0x91,
- 0xe9, 0x0f, 0x0e, 0xc2, 0xfa, 0xf2, 0x89, 0xf0,
- 0xb7, 0xfb, 0x1a, 0x2a, 0xe9, 0xfe, 0x75, 0xb0,
- 0x5b, 0xfd, 0x8d, 0x11, 0xe4, 0xad, 0x87, 0xe3,
- 0xe6, 0x13, 0xfa, 0xd8, 0x2d, 0xfe, 0xc6, 0x8b,
- 0x06, 0x7f, 0x5b, 0x05, 0xbf, 0xd8, 0xd1, 0x65,
- 0x4f, 0xeb, 0x60, 0xb7, 0xfb, 0x1a, 0x2d, 0x39,
- 0xe6, 0xff, 0x63, 0x45, 0xb9, 0x3f, 0xf2, 0x60,
- 0xe7, 0x40, 0xa6, 0x3e, 0x13, 0xa0, 0x4f, 0xba,
- 0xa5, 0x73, 0xfe, 0xf7, 0x5b, 0x05, 0xbf, 0xd8,
- 0xd1, 0x43, 0xcf, 0xdd, 0x5e, 0x60, 0xa5, 0x4e,
- 0x9f, 0xff, 0xb3, 0x8a, 0x20, 0x36, 0xd7, 0x7f,
- 0x9a, 0xd5, 0x39, 0x2a, 0x56, 0xc4, 0x7a, 0x28,
- 0x86, 0xf4, 0x65, 0xf2, 0xf9, 0xfd, 0x6c, 0x16,
- 0xff, 0x63, 0x45, 0xe7, 0x08, 0xbf, 0x4c, 0xe3,
- 0x0e, 0x14, 0xb2, 0x5b, 0xc3, 0xf0, 0xf2, 0x12,
- 0x65, 0x1d, 0xd0, 0xef, 0xb1, 0xce, 0xae, 0x46,
- 0x9f, 0xd6, 0xc1, 0x6f, 0xf6, 0x34, 0x52, 0xd3,
- 0xfa, 0xd8, 0x2d, 0xfe, 0xc6, 0x8b, 0x0a, 0x7f,
- 0x5b, 0x05, 0xbf, 0xd8, 0xd1, 0x65, 0xcf, 0xfe,
- 0xb2, 0xbd, 0xd6, 0xc1, 0x6f, 0xf6, 0x34, 0x51,
- 0x93, 0xfa, 0xc8, 0xb9, 0x05, 0x39, 0x3a, 0x1c,
- 0x99, 0xb0, 0x9d, 0xa8, 0xee, 0xa7, 0x7a, 0x52,
+ 0xd1, 0x3c, 0x4f, 0xfe, 0xb2, 0xbd, 0xd6, 0xc1,
+ 0x6f, 0xf6, 0x34, 0x4f, 0xf3, 0xff, 0xac, 0xaf,
+ 0x75, 0xb0, 0x5b, 0xfd, 0x8d, 0x14, 0x34, 0xff,
+ 0xeb, 0x2b, 0xdd, 0x6c, 0x16, 0xff, 0x63, 0x45,
+ 0x11, 0x3f, 0xef, 0x75, 0xb0, 0x5b, 0xfd, 0x8d,
+ 0x14, 0x8c, 0xff, 0xfd, 0x9c, 0x55, 0x39, 0xdb,
+ 0x5d, 0xf0, 0x52, 0x88, 0x02, 0xa5, 0x65, 0x22,
+ 0x8d, 0x7d, 0x1a, 0x7f, 0xeb, 0x7b, 0xad, 0x82,
+ 0xdf, 0xec, 0x68, 0x94, 0x21, 0xe5, 0xce, 0x57,
+ 0x46, 0x90, 0xc6, 0x23, 0x09, 0x75, 0x13, 0x55,
+ 0x30, 0x0a, 0x4b, 0xda, 0x95, 0x14, 0xae, 0x87,
+ 0xad, 0xe1, 0x64, 0xff, 0xeb, 0x2b, 0xdd, 0x6c,
+ 0x16, 0xff, 0x63, 0x44, 0xe7, 0x3f, 0xfa, 0xca,
+ 0xf7, 0x5b, 0x05, 0xbf, 0xd8, 0xd1, 0x44, 0xcf,
+ 0xfc, 0x2e, 0xb5, 0x77, 0x45, 0x9d, 0xb0, 0x1d,
+ 0x02, 0x8e, 0xaa, 0x29, 0x5c, 0xa5, 0x3f, 0xad,
+ 0x82, 0xdf, 0xec, 0x68, 0x87, 0x27, 0xc2, 0xdf,
+ 0xec, 0x68, 0x8b, 0xe7, 0xdf, 0xa7, 0x25, 0xf2,
+ 0xa5, 0x6c, 0x3d, 0x8e, 0x98, 0x4f, 0xfe, 0xb2,
+ 0xbd, 0xd6, 0xc1, 0x6f, 0xf6, 0x34, 0x4c, 0x93,
+ 0xfa, 0xd8, 0x2d, 0xfe, 0xc6, 0x8b, 0x7a, 0x7f,
+ 0xf5, 0x95, 0xee, 0xb6, 0x0b, 0x7f, 0xb1, 0xa2,
+ 0x93, 0x84, 0x4e, 0x65, 0xd0, 0x93, 0xc2, 0x7a,
+ 0x29, 0x2e, 0x3b, 0x9f, 0xd6, 0xc1, 0x6f, 0xf6,
+ 0x34, 0x43, 0xb3, 0xff, 0xac, 0xaf, 0x75, 0xb0,
+ 0x5b, 0xfd, 0x8d, 0x12, 0xc4, 0xfe, 0xb6, 0x0b,
+ 0x7f, 0xb1, 0xa2, 0x30, 0x9f, 0xfa, 0xde, 0xeb,
+ 0x60, 0xb7, 0xfb, 0x1a, 0x23, 0xd9, 0xfd, 0x6c,
+ 0x16, 0xff, 0x63, 0x45, 0x87, 0x3f, 0xad, 0x82,
+ 0xdf, 0xec, 0x68, 0xb9, 0xe1, 0x13, 0x8a, 0x78,
+ 0xed, 0xca, 0x5b, 0x3b, 0x52, 0x66, 0x8e, 0xe7,
+ 0xf5, 0xb0, 0x5b, 0xfd, 0x8d, 0x10, 0xf4, 0xf8,
+ 0x5b, 0xfd, 0x8d, 0x11, 0x34, 0xda, 0x51, 0xd3,
+ 0xff, 0xb2, 0xbc, 0xde, 0xa2, 0x6d, 0xfd, 0x22,
+ 0x8e, 0x87, 0xcf, 0x8e, 0xa2, 0xd3, 0xda, 0xbb,
+ 0xf9, 0x9a, 0x21, 0x79, 0x5b, 0x11, 0xcf, 0x48,
+ 0x49, 0xdc, 0x47, 0x3d, 0xaa, 0xef, 0x47, 0x4f,
+ 0xfe, 0xda, 0xce, 0xc7, 0xdd, 0xc9, 0x5f, 0xfd,
+ 0x3a, 0x6f, 0xbc, 0x3a, 0x57, 0xae, 0x22, 0x1e,
+ 0xa4, 0x5e, 0x9b, 0x3e, 0xaf, 0xeb, 0xdc, 0x74,
+ 0xf6, 0xe9, 0xb0, 0x1d, 0x38, 0x21, 0x09, 0x53,
+ 0xef, 0xee, 0xab, 0x85, 0x58, 0xbc, 0x9f, 0x7e,
+ 0x96, 0xcd, 0x1d, 0x1c, 0x22, 0x68, 0x07, 0xdd,
+ 0x35, 0x9f, 0xf8, 0x1b, 0x5b, 0x95, 0x53, 0x63,
+ 0x75, 0xec, 0xe9, 0xff, 0x6e, 0xfa, 0x75, 0x28,
+ 0x9b, 0x51, 0xd3, 0xf6, 0x2e, 0xb9, 0xd9, 0x43,
+ 0xa7, 0xb3, 0x8c, 0x78, 0xe8, 0xc4, 0xf3, 0x77,
+ 0x0c, 0x05, 0x8c, 0x6a, 0x99, 0xd3, 0xfd, 0x17,
+ 0xcf, 0xd8, 0x14, 0xce, 0x36, 0x74, 0xff, 0xff,
+ 0xee, 0xf5, 0xf4, 0xbf, 0xdc, 0xe2, 0xbb, 0x5b,
+ 0x95, 0x31, 0xf7, 0x0e, 0x04, 0xe9, 0xf6, 0xf5,
+ 0x72, 0x3c, 0x74, 0xfe, 0x7d, 0xd4, 0xbf, 0x72,
+ 0x3e, 0x74, 0xfe, 0xf0, 0xdc, 0xb2, 0x6b, 0xce,
+ 0x8d, 0x9f, 0x5f, 0x4e, 0x21, 0x13, 0x35, 0xc7,
+ 0xf1, 0x84, 0xa4, 0xd7, 0x38, 0xe9, 0xdf, 0xaa,
+ 0x1d, 0x35, 0xcf, 0x1d, 0x3c, 0x9d, 0xd2, 0xce,
+ 0x36, 0x62, 0x37, 0x3f, 0xfe, 0xb9, 0x35, 0xcb,
+ 0xb7, 0x5e, 0x72, 0xcd, 0x2f, 0xe6, 0x8e, 0x9f,
+ 0xfa, 0xa9, 0x7f, 0x96, 0xbb, 0xfa, 0x4d, 0x1d,
+ 0x3f, 0xb9, 0x3e, 0xed, 0xd6, 0xe5, 0x1d, 0x00,
+ 0x3f, 0xfe, 0xa3, 0xcf, 0xf8, 0x56, 0xe5, 0x44,
+ 0xdb, 0xdf, 0xa3, 0xa1, 0x0f, 0x8e, 0xe2, 0x29,
+ 0xff, 0xff, 0xeb, 0xbb, 0x41, 0xea, 0x2d, 0xcb,
+ 0x9e, 0xb6, 0xec, 0x7f, 0x58, 0xbb, 0xb9, 0x43,
+ 0xa4, 0x87, 0x4f, 0xe7, 0x78, 0xee, 0x88, 0xf9,
+ 0xd3, 0xff, 0xff, 0xfb, 0x60, 0xa7, 0x73, 0xdf,
+ 0xe5, 0xc5, 0x6e, 0xe5, 0xdc, 0x7d, 0xd9, 0x73,
+ 0xdd, 0xcf, 0x7c, 0xe9, 0xdf, 0xec, 0x68, 0xa6,
+ 0x23, 0x11, 0x7e, 0xd0, 0x99, 0x9f, 0xf6, 0x75,
+ 0xf7, 0x53, 0x48, 0x2b, 0x1d, 0x3e, 0x7f, 0xb8,
+ 0xbb, 0x0e, 0x8d, 0x9f, 0x47, 0x9f, 0xcf, 0xf7,
+ 0xab, 0x8a, 0xa3, 0xd8, 0x13, 0xa7, 0xff, 0xf7,
+ 0x71, 0xb5, 0xa4, 0xd5, 0x16, 0xee, 0x07, 0x92,
+ 0x5e, 0x83, 0xa7, 0xfc, 0xc8, 0xaa, 0xe5, 0x33,
+ 0x7d, 0x3a, 0x11, 0x14, 0x95, 0x68, 0x9f, 0x0a,
+ 0x2e, 0x41, 0x3a, 0x7e, 0xfe, 0xf2, 0xe1, 0x3a,
+ 0x74, 0x61, 0xfb, 0xec, 0x8a, 0xe2, 0x68, 0x79,
+ 0x76, 0x7f, 0x84, 0xab, 0xe7, 0x0d, 0x1a, 0x1b,
+ 0xe4, 0x5b, 0x84, 0x32, 0xc1, 0xe3, 0x0f, 0x15,
+ 0x42, 0x3b, 0xa4, 0x3a, 0x8d, 0x52, 0x7b, 0x3b,
+ 0x7e, 0xf6, 0x74, 0xff, 0xff, 0xfa, 0xbb, 0xd5,
+ 0x70, 0x51, 0x77, 0x25, 0x5d, 0x79, 0xcb, 0x1f,
+ 0x76, 0x5d, 0xd0, 0x50, 0xe9, 0x6b, 0x68, 0xb6,
+ 0xa1, 0x3c, 0xff, 0xfb, 0x32, 0xbb, 0x6a, 0xe7,
+ 0x2a, 0x5d, 0x54, 0xbd, 0x9d, 0x3f, 0xf5, 0x3d,
+ 0xfe, 0x4a, 0x4c, 0xee, 0x97, 0xce, 0x96, 0xfa,
+ 0x8a, 0x3d, 0x2d, 0x4f, 0x9c, 0x8f, 0xba, 0x87,
+ 0x4f, 0xff, 0xff, 0xfb, 0x3b, 0x7f, 0x96, 0xeb,
+ 0x75, 0x96, 0xde, 0x91, 0x5d, 0xfb, 0xf5, 0xdd,
+ 0xb2, 0xaf, 0x81, 0x38, 0x2a, 0x7f, 0xff, 0xe6,
+ 0xd8, 0x78, 0xb8, 0x79, 0x5c, 0x8f, 0x51, 0xab,
+ 0x75, 0x5f, 0xf0, 0x9d, 0x35, 0xcf, 0x3e, 0x9a,
+ 0x36, 0xca, 0x29, 0x0a, 0x58, 0x45, 0x50, 0x15,
+ 0x86, 0x67, 0x63, 0x6f, 0x9f, 0xfc, 0xa6, 0xe5,
+ 0x5f, 0x76, 0x2b, 0xfa, 0x03, 0xa7, 0xff, 0xdb,
+ 0xee, 0xab, 0x97, 0x9a, 0x5b, 0x2f, 0x7f, 0xd0,
+ 0x1d, 0x3f, 0xf2, 0x75, 0xee, 0xe2, 0xea, 0x5c,
+ 0x8f, 0x9d, 0x14, 0x45, 0x2d, 0xcb, 0xb3, 0xd9,
+ 0xac, 0x5e, 0xce, 0x9c, 0xbf, 0x95, 0x3a, 0x6c,
+ 0xe0, 0xe8, 0x79, 0x36, 0xc7, 0x43, 0xbe, 0x84,
+ 0x9a, 0x25, 0x5c, 0x3d, 0x3f, 0x70, 0x9d, 0xaf,
+ 0xb8, 0xe9, 0xc9, 0xc2, 0x1d, 0x3f, 0x96, 0x76,
+ 0x6a, 0x9e, 0xb7, 0x23, 0xc8, 0x51, 0x6c, 0xfd,
+ 0x79, 0x5f, 0xbd, 0xa0, 0x0e, 0x9f, 0xc2, 0xb7,
+ 0x72, 0xbf, 0xa3, 0xa3, 0x0f, 0x97, 0x66, 0x73,
+ 0xf2, 0x03, 0x35, 0xcd, 0xe3, 0xa1, 0xc7, 0xa1,
+ 0xd2, 0x19, 0xff, 0xff, 0x6b, 0xbe, 0x0a, 0x3d,
+ 0x9b, 0xee, 0xbb, 0x8b, 0xb9, 0x50, 0x3d, 0x3a,
+ 0x7f, 0xdb, 0xc5, 0xb9, 0x51, 0x2b, 0xf7, 0xb3,
+ 0xa7, 0xf7, 0xbf, 0x4a, 0xe7, 0x89, 0xd1, 0xc1,
+ 0xfa, 0xe9, 0x12, 0x4a, 0x3a, 0x77, 0x73, 0x83,
+ 0xa1, 0x0d, 0x63, 0xe2, 0x13, 0xf3, 0xf4, 0xcc,
+ 0xed, 0xf3, 0xa7, 0x95, 0xcd, 0x00, 0x74, 0x61,
+ 0xe9, 0x6c, 0xbe, 0x11, 0x3c, 0xac, 0x87, 0x3e,
+ 0xd3, 0xc5, 0xce, 0x7f, 0x6b, 0x6f, 0x65, 0x6e,
+ 0xd1, 0xd3, 0xd8, 0xfa, 0x2c, 0x74, 0xfd, 0x5f,
+ 0x72, 0x87, 0x67, 0x4f, 0xb6, 0x01, 0xc7, 0xce,
+ 0x8b, 0xe8, 0xaa, 0xd9, 0xa8, 0x08, 0xae, 0x2c,
+ 0x9f, 0xff, 0x85, 0xd5, 0xc5, 0xaa, 0x9d, 0xbf,
+ 0xdc, 0xd5, 0x6e, 0x3a, 0x7f, 0xff, 0x6f, 0x1f,
+ 0x75, 0x35, 0x54, 0x52, 0x6f, 0x8e, 0x49, 0x7a,
+ 0x0e, 0x9f, 0xff, 0xff, 0x5d, 0xde, 0x41, 0xf7,
+ 0xdc, 0x3e, 0x0e, 0x54, 0xb9, 0x1f, 0xae, 0x6f,
+ 0xb9, 0x7c, 0xe9, 0xff, 0xf5, 0xc2, 0x39, 0xaa,
+ 0x57, 0x79, 0xca, 0xa0, 0x43, 0xa3, 0x11, 0xc5,
+ 0x58, 0x46, 0x4f, 0xff, 0x3a, 0xf2, 0xb8, 0x9d,
+ 0x5b, 0xb9, 0xaa, 0x79, 0xd3, 0xff, 0xee, 0x31,
+ 0x5c, 0xaf, 0x34, 0x94, 0x59, 0xde, 0x2f, 0x1d,
+ 0x3f, 0xd9, 0xd7, 0xb9, 0x03, 0xfd, 0x63, 0xa7,
+ 0xfd, 0x4b, 0xbb, 0xca, 0x97, 0x2f, 0xdc, 0x27,
+ 0x4f, 0xfe, 0x7b, 0x95, 0x2b, 0x77, 0x2d, 0x52,
+ 0x88, 0x27, 0x4f, 0xff, 0xfb, 0x1f, 0xa6, 0xf0,
+ 0x3c, 0xab, 0x9a, 0xa6, 0x3d, 0xcb, 0x37, 0xc1,
+ 0xd1, 0x88, 0xc2, 0xda, 0x84, 0x3c, 0xae, 0x1d,
+ 0xa3, 0x4c, 0x7c, 0x9f, 0x6a, 0x4a, 0x5c, 0xa1,
+ 0xde, 0xa3, 0x09, 0x9f, 0xf7, 0x8d, 0x73, 0x49,
+ 0xdd, 0x80, 0xe9, 0xfe, 0xc0, 0xbe, 0xea, 0x72,
+ 0xd6, 0xce, 0x9f, 0xff, 0xf2, 0x32, 0x2b, 0x92,
+ 0xd5, 0xdf, 0x78, 0xe5, 0xcd, 0xbb, 0x95, 0xc3,
+ 0xa1, 0x91, 0xd5, 0xd3, 0xcb, 0xc3, 0xc9, 0xed,
+ 0xeb, 0x68, 0x74, 0xff, 0xff, 0xfd, 0xa4, 0x57,
+ 0x77, 0x7e, 0xbe, 0xb7, 0x2e, 0xdd, 0x79, 0xcb,
+ 0x1f, 0x76, 0x5d, 0xd0, 0x50, 0xe8, 0x72, 0x2e,
+ 0x36, 0x43, 0x08, 0xbc, 0x9f, 0x92, 0xf9, 0x77,
+ 0x1a, 0xef, 0xc3, 0xaa, 0x7b, 0x54, 0xf0, 0x1d,
+ 0x3f, 0xf5, 0x77, 0xcb, 0x63, 0x73, 0xde, 0x2c,
+ 0x74, 0xfd, 0xaf, 0x1e, 0xbf, 0xb3, 0xa3, 0x11,
+ 0x29, 0x7c, 0x87, 0x48, 0xd3, 0xdc, 0xee, 0xfa,
+ 0x1d, 0x3f, 0xff, 0x6c, 0x79, 0x66, 0xf3, 0xb7,
+ 0xeb, 0xbc, 0x56, 0x31, 0xd3, 0xff, 0xfd, 0xb7,
+ 0x85, 0x15, 0x4b, 0x93, 0x92, 0x0a, 0x71, 0x54,
+ 0x51, 0xd1, 0x88, 0xc4, 0x15, 0xc9, 0xff, 0xff,
+ 0xc2, 0x3b, 0x7b, 0x95, 0x73, 0x5d, 0x45, 0xab,
+ 0x8f, 0x23, 0xfa, 0xb9, 0x8e, 0x9f, 0xff, 0xf9,
+ 0x2f, 0xd5, 0x39, 0x77, 0x2e, 0xbf, 0xc9, 0xf7,
+ 0x53, 0x7d, 0xe6, 0x8f, 0x1d, 0x3e, 0x7e, 0x9b,
+ 0xce, 0x9d, 0x18, 0x8a, 0x7b, 0x9f, 0xe3, 0x69,
+ 0xa3, 0x56, 0x32, 0x39, 0xfe, 0xed, 0xcb, 0x77,
+ 0x2b, 0xfa, 0x3a, 0x7f, 0xb8, 0xaa, 0x07, 0x8a,
+ 0xfa, 0x8e, 0x9f, 0xff, 0xef, 0x1a, 0xe6, 0xb7,
+ 0x9d, 0x7a, 0x89, 0x9d, 0xe2, 0xa8, 0x74, 0xf6,
+ 0xb9, 0x3c, 0x27, 0x43, 0xe8, 0x89, 0xf6, 0x59,
+ 0xf9, 0x67, 0xdd, 0x72, 0x68, 0xe9, 0xfe, 0xaf,
+ 0xab, 0xb9, 0x5f, 0xd1, 0xd0, 0x87, 0xcf, 0x43,
+ 0x09, 0xfb, 0x34, 0x23, 0x8e, 0x3a, 0x7e, 0xee,
+ 0x57, 0xb8, 0xc7, 0x4f, 0x77, 0x29, 0xc9, 0x63,
+ 0xd5, 0xd1, 0x54, 0x70, 0xaf, 0x29, 0xa3, 0x67,
+ 0xd9, 0x50, 0x9d, 0x56, 0x18, 0x7a, 0x84, 0x52,
+ 0xe7, 0x69, 0xff, 0xbb, 0xdc, 0xe4, 0x39, 0x5e,
+ 0xe2, 0xc7, 0x42, 0x2e, 0xb7, 0x64, 0xe5, 0x97,
+ 0xbb, 0xcf, 0xba, 0x8a, 0xfe, 0x0e, 0x9f, 0xd8,
+ 0xb5, 0x73, 0x49, 0xc1, 0xd3, 0xff, 0xff, 0xd5,
+ 0xcd, 0x53, 0xd6, 0xe5, 0xdc, 0x7d, 0xd9, 0x73,
+ 0xdd, 0xce, 0x2b, 0xb5, 0x8e, 0x9a, 0xeb, 0xe7,
+ 0x40, 0xa2, 0x7b, 0x50, 0x85, 0x9f, 0xb1, 0xee,
+ 0xe3, 0xf4, 0x3a, 0x7f, 0xf0, 0xbe, 0xea, 0x62,
+ 0x9f, 0x4a, 0xd5, 0x0e, 0x95, 0x0e, 0x8b, 0x8f,
+ 0x6b, 0x9a, 0x54, 0xfe, 0x45, 0x77, 0x2b, 0xfa,
+ 0x3a, 0x7f, 0xff, 0xda, 0xea, 0x01, 0xf7, 0x52,
+ 0xe4, 0xd7, 0x73, 0x8d, 0xe0, 0xac, 0x74, 0x6d,
+ 0x53, 0x62, 0xc4, 0xff, 0x0d, 0x1e, 0x93, 0xd2,
+ 0x11, 0x17, 0x12, 0xf3, 0x31, 0x9f, 0x3b, 0x63,
+ 0x8f, 0x9d, 0x3e, 0xca, 0x3d, 0x81, 0x3a, 0x1f,
+ 0x3c, 0xea, 0x93, 0xcf, 0xff, 0xb6, 0xf6, 0x37,
+ 0x15, 0xde, 0x5f, 0xe5, 0x7e, 0xe4, 0x3a, 0x7a,
+ 0xf3, 0x59, 0x53, 0xa7, 0xff, 0xfe, 0xbc, 0x7d,
+ 0xde, 0xff, 0x2e, 0xdd, 0x79, 0xcb, 0x1f, 0x76,
+ 0x5d, 0xd0, 0x50, 0xe8, 0x79, 0x14, 0xd8, 0x49,
+ 0x3f, 0xff, 0xfe, 0x47, 0xe9, 0x72, 0x3f, 0xca,
+ 0xb9, 0xc7, 0x2e, 0xe5, 0xd7, 0xf9, 0x50, 0x00,
+ 0xde, 0x8e, 0x9f, 0x27, 0x5f, 0xf7, 0x8e, 0x9f,
+ 0xff, 0xff, 0xfd, 0x8a, 0xc6, 0x4a, 0xa2, 0xb5,
+ 0x94, 0xa2, 0x08, 0xa7, 0x71, 0xec, 0xba, 0x97,
+ 0x2d, 0xd4, 0x51, 0xd3, 0xfc, 0x0c, 0xe3, 0xb9,
+ 0x5f, 0xd1, 0xd3, 0xff, 0x3e, 0x97, 0xef, 0x2e,
+ 0xce, 0xad, 0xcd, 0x47, 0x4f, 0xff, 0x66, 0xb8,
+ 0xcc, 0x05, 0x39, 0x0d, 0x38, 0xa1, 0xd0, 0x8a,
+ 0xdf, 0x70, 0x8f, 0x71, 0x81, 0x89, 0x1a, 0xa1,
+ 0x23, 0x52, 0x8f, 0x85, 0x1f, 0x4e, 0x28, 0x9d,
+ 0x3b, 0x8e, 0x4b, 0x1d, 0x3f, 0xfc, 0xfb, 0xba,
+ 0x9c, 0x95, 0xd4, 0xbf, 0xad, 0xbc, 0x74, 0x61,
+ 0xfb, 0x6c, 0x82, 0x7e, 0x79, 0x67, 0x2f, 0x05,
+ 0xe3, 0xa7, 0xca, 0xdf, 0x19, 0xc1, 0xd2, 0x58,
+ 0xe9, 0x91, 0x47, 0x4b, 0x47, 0x40, 0x9a, 0x5f,
+ 0x15, 0x8e, 0x0f, 0x56, 0xa6, 0xd3, 0xda, 0xa7,
+ 0xbe, 0x74, 0xcb, 0x79, 0xd3, 0xfa, 0xbb, 0x17,
+ 0xdd, 0xd4, 0x3a, 0x17, 0xaa, 0x68, 0x08, 0x69,
+ 0x8f, 0xdb, 0x23, 0x51, 0x15, 0xc2, 0xd3, 0xfa,
+ 0x9b, 0x7c, 0x3f, 0xd0, 0x1d, 0x3f, 0xfe, 0x41,
+ 0x46, 0xc5, 0x23, 0x3b, 0x74, 0xb9, 0x47, 0x42,
+ 0xc8, 0x86, 0x5f, 0x34, 0x9d, 0xd0, 0x21, 0xd2,
+ 0xb2, 0xf1, 0xd5, 0x8e, 0xa4, 0xa0, 0x67, 0x97,
+ 0x78, 0x8d, 0x87, 0x27, 0x74, 0x9a, 0x5f, 0x83,
+ 0xf1, 0xd4, 0x6e, 0x13, 0x6b, 0x46, 0x06, 0x31,
+ 0xf6, 0x2a, 0x1d, 0x55, 0x9e, 0x8f, 0xf8, 0x71,
+ 0xf6, 0x76, 0x7e, 0x92, 0xa9, 0x35, 0x38, 0x7c,
+ 0xba, 0x30, 0x25, 0xf8, 0xd8, 0x79, 0xc3, 0x8e,
+ 0xf0, 0x9e, 0x7f, 0x5b, 0x05, 0xbf, 0xd8, 0xd1,
+ 0x4e, 0xcf, 0x85, 0xbf, 0xd8, 0xd1, 0x51, 0xcf,
+ 0xfb, 0xdd, 0x6c, 0x16, 0xff, 0x63, 0x44, 0xd1,
+ 0x2b, 0x61, 0xfb, 0x28, 0xc2, 0x7f, 0x5b, 0x05,
+ 0xbf, 0xd8, 0xd1, 0x57, 0xcf, 0x85, 0xbf, 0xd8,
+ 0xd1, 0x5b, 0x4f, 0xf3, 0xad, 0x82, 0xdf, 0xec,
+ 0x68, 0x90, 0x65, 0x6c, 0x3f, 0x1f, 0x30, 0x9f,
+ 0xfa, 0xde, 0xeb, 0x60, 0xb7, 0xfb, 0x1a, 0x24,
+ 0x39, 0xf0, 0xb7, 0xfb, 0x1a, 0x2c, 0x49, 0xff,
+ 0x93, 0x29, 0x9d, 0xe3, 0x60, 0x4e, 0x9d, 0x3b,
+ 0xa8, 0xf1, 0xd2, 0x77, 0x4f, 0x7e, 0xe4, 0x39,
+ 0xcb, 0xfb, 0x01, 0xd3, 0xef, 0x77, 0x3a, 0xa1,
+ 0xd3, 0xf5, 0x28, 0x3b, 0x0d, 0xec, 0xe8, 0xd9,
+ 0xec, 0xf9, 0x44, 0xfe, 0x02, 0x66, 0xb7, 0xd0,
+ 0x95, 0x18, 0x9c, 0x1b, 0xf0, 0x8f, 0xd9, 0x4d,
+ 0x5e, 0x00, 0x43, 0x3f, 0xf5, 0x76, 0x9a, 0xaf,
+ 0xdf, 0xce, 0x80, 0xe9, 0xff, 0xfd, 0xad, 0x7b,
+ 0xa9, 0x9d, 0x45, 0x7e, 0x6b, 0x48, 0xa3, 0xa7,
+ 0xff, 0xb1, 0xf7, 0x6a, 0xe7, 0xad, 0x5f, 0x56,
+ 0xe8, 0x74, 0xd5, 0xb6, 0x23, 0xdb, 0x68, 0xbd,
+ 0x5e, 0x8b, 0x27, 0x02, 0x91, 0xa3, 0x4f, 0xeb,
+ 0x60, 0xb7, 0xfb, 0x1a, 0x2c, 0xd9, 0xff, 0xd6,
+ 0x57, 0xba, 0xd8, 0x2d, 0xfe, 0xc6, 0x8a, 0x02,
+ 0x6e, 0x54, 0x3a, 0x79, 0xbf, 0xd8, 0xd1, 0x6f,
+ 0xcf, 0xdc, 0xf5, 0xed, 0xe2, 0x74, 0x09, 0xeb,
+ 0x80, 0xae, 0x7d, 0xa7, 0x53, 0x9d, 0x0e, 0x9f,
+ 0xc8, 0xbb, 0x9e, 0xba, 0x80, 0x3a, 0x77, 0x71,
+ 0xc7, 0x4a, 0xce, 0x4c, 0x2f, 0x1b, 0xc4, 0x86,
+ 0xa5, 0x5a, 0x36, 0x9f, 0xf7, 0xba, 0xd8, 0x2d,
+ 0xfe, 0xc6, 0x8a, 0x52, 0x7f, 0x9d, 0x6c, 0x16,
+ 0xff, 0x63, 0x44, 0x9d, 0x2b, 0x29, 0x10, 0xfe,
+ 0x8d, 0x08, 0xed, 0x93, 0x5e, 0x8c, 0x8b, 0x8b,
+ 0x57, 0xbf, 0x91, 0xc9, 0xb4, 0x2c, 0x76, 0x4f,
+ 0x7b, 0x85, 0x62, 0xc4, 0xca, 0x96, 0xa1, 0x52,
+ 0x90, 0x1d, 0xd2, 0x35, 0xd5, 0xd0, 0xd6, 0x9f,
+ 0x0b, 0x7f, 0xb1, 0xa2, 0x1f, 0x9f, 0xf7, 0xba,
+ 0xd8, 0x2d, 0xfe, 0xc6, 0x89, 0x4e, 0x56, 0xc3,
+ 0xf6, 0x51, 0x84, 0xfe, 0xb6, 0x0b, 0x7f, 0xb1,
+ 0xa2, 0x27, 0x9f, 0xd6, 0xc1, 0x6f, 0xf6, 0x34,
+ 0x46, 0x33, 0xff, 0xac, 0xaf, 0x75, 0xb0, 0x5b,
+ 0xfd, 0x8d, 0x13, 0xcc, 0x22, 0x3b, 0xde, 0x27,
+ 0x71, 0xdd, 0x4e, 0xe7, 0xc2, 0xdf, 0xec, 0x68,
+ 0x88, 0x27, 0xfd, 0xee, 0xb6, 0x0b, 0x7f, 0xb1,
+ 0xa2, 0x54, 0x95, 0xb0, 0xfd, 0x94, 0x61, 0x3f,
+ 0xad, 0x82, 0xdf, 0xec, 0x68, 0x8a, 0x27, 0xf5,
+ 0xb0, 0x5b, 0xfd, 0x8d, 0x11, 0x94, 0xff, 0xeb,
+ 0x2b, 0xdd, 0x6c, 0x16, 0xff, 0x63, 0x44, 0xcb,
+ 0x3f, 0xad, 0x82, 0xdf, 0xec, 0x68, 0xa9, 0x27,
+ 0xf5, 0xb0, 0x5b, 0xfd, 0x8d, 0x15, 0xd4, 0xfe,
+ 0xb6, 0x0b, 0x7f, 0xb1, 0xa2, 0xc5, 0x9f, 0xf9,
+ 0x5e, 0xeb, 0x60, 0xb7, 0xfb, 0x1a, 0x27, 0xa9,
+ 0xfe, 0x0d, 0xbd, 0x36, 0xbf, 0xbb, 0xc3, 0xa2,
+ 0xc8, 0x8a, 0x44, 0xc9, 0xfa, 0xf4, 0xf9, 0xad,
+ 0xdd, 0x43, 0xa7, 0x85, 0x5a, 0x7c, 0xe9, 0xcd,
+ 0x95, 0x2a, 0x7f, 0xfe, 0xaf, 0x7e, 0xfe, 0xc5,
+ 0x1c, 0xec, 0xa0, 0x00, 0x87, 0x4f, 0xff, 0xc3,
+ 0xbb, 0xcf, 0x55, 0x90, 0x47, 0x77, 0x8d, 0x73,
+ 0xc7, 0x4f, 0x9b, 0x75, 0xe6, 0xa3, 0xa7, 0xff,
+ 0x7d, 0x3b, 0x80, 0xb5, 0x76, 0xde, 0x27, 0x4f,
+ 0xb5, 0x54, 0x53, 0x1d, 0x3f, 0xfb, 0xbc, 0x91,
+ 0x3a, 0x8a, 0xe5, 0xca, 0xab, 0xe7, 0x4f, 0xf5,
+ 0xdf, 0x4f, 0xad, 0xdd, 0x78, 0xe8, 0xda, 0x7b,
+ 0xc2, 0xb6, 0xa6, 0x0a, 0x94, 0xf5, 0x1f, 0x44,
+ 0xd7, 0x8a, 0x53, 0xbb, 0xfa, 0x35, 0x42, 0xd3,
+ 0xbb, 0xba, 0x1d, 0x20, 0xde, 0xa7, 0x88, 0x85,
+ 0x13, 0xc2, 0xbb, 0xd4, 0x74, 0x61, 0xe7, 0x6c,
+ 0xb2, 0x7f, 0xdb, 0xaf, 0xe9, 0x16, 0xa6, 0xd4,
+ 0x74, 0xfd, 0xbe, 0xdf, 0xde, 0x50, 0xe9, 0xee,
+ 0xf1, 0xca, 0xf9, 0xd3, 0xf6, 0x50, 0x3f, 0xd7,
+ 0x8e, 0x8f, 0x3d, 0x4e, 0x93, 0xcf, 0xae, 0xbf,
+ 0x4e, 0x10, 0xe8, 0xc4, 0x67, 0xee, 0x10, 0x75,
+ 0x21, 0x9f, 0xff, 0xfd, 0x54, 0xd8, 0x8a, 0x73,
+ 0xd6, 0xfb, 0x73, 0xb2, 0x9c, 0x5d, 0xe2, 0xe3,
+ 0xa7, 0xcf, 0x70, 0x3b, 0x09, 0xd3, 0xf7, 0x1e,
+ 0x20, 0x5f, 0xc3, 0xa7, 0xfd, 0xdd, 0xbb, 0x55,
+ 0xc1, 0xdd, 0x0e, 0x9f, 0xf7, 0xe0, 0x13, 0xbf,
+ 0xc6, 0x5f, 0x3a, 0x1c, 0x7f, 0x80, 0x3e, 0x9e,
+ 0xba, 0x95, 0x51, 0xd3, 0xf5, 0xd4, 0xd5, 0x33,
+ 0x47, 0x4e, 0x08, 0x42, 0x54, 0xff, 0xed, 0x6f,
+ 0x54, 0xae, 0xd7, 0xf9, 0x8a, 0x38, 0xab, 0x17,
+ 0x91, 0xb4, 0x54, 0x5c, 0x95, 0x0e, 0x54, 0xbf,
+ 0x8f, 0x5b, 0x29, 0x18, 0x55, 0xf4, 0x8b, 0x50,
+ 0xcb, 0x9a, 0xfe, 0x1d, 0x3e, 0x0e, 0x91, 0xf0,
+ 0x9d, 0x3f, 0x93, 0xc6, 0xa1, 0xfe, 0x0a, 0x98,
+ 0x21, 0x2a, 0x38, 0x3c, 0x70, 0x98, 0xcf, 0x53,
+ 0x5b, 0xbd, 0x95, 0x63, 0x47, 0x3f, 0xfa, 0xea,
+ 0x53, 0x8e, 0xa7, 0x15, 0x4d, 0x50, 0xe9, 0xff,
+ 0x6b, 0x63, 0xe0, 0xbc, 0xd6, 0x54, 0xe8, 0x72,
+ 0x23, 0x76, 0x9b, 0x3e, 0xc7, 0xb3, 0x62, 0x74,
+ 0xfd, 0xa4, 0x1e, 0x33, 0xa7, 0x4f, 0xee, 0x2a,
+ 0x9d, 0x0f, 0xbe, 0x74, 0xff, 0xff, 0xb6, 0xaf,
+ 0xeb, 0xee, 0xb0, 0x73, 0x6b, 0xb3, 0xb9, 0xc7,
+ 0xb8, 0xf1, 0x7a, 0xc2, 0x23, 0x73, 0xcb, 0x2e,
+ 0x34, 0x9f, 0xfe, 0xcd, 0x53, 0x16, 0xaa, 0x2e,
+ 0xca, 0xd5, 0x0e, 0x9f, 0xff, 0xff, 0x6f, 0x1f,
+ 0xa6, 0xf0, 0x3c, 0xb1, 0xf7, 0x53, 0x7a, 0xa6,
+ 0xdf, 0xe3, 0x8b, 0x9e, 0x3a, 0x3a, 0x8d, 0xed,
+ 0x28, 0x4d, 0xb0, 0x9d, 0x37, 0x30, 0x1d, 0x0b,
+ 0x1a, 0xe0, 0x0b, 0x4e, 0x77, 0xf0, 0x74, 0xc1,
+ 0x09, 0xd1, 0xb3, 0xd4, 0xa1, 0x10, 0x47, 0x27,
+ 0x6b, 0x98, 0x0a, 0xb1, 0xaf, 0x9f, 0xff, 0xfd,
+ 0xa4, 0xe2, 0xb7, 0x7d, 0xf5, 0x7f, 0x19, 0x9d,
+ 0xbf, 0x4a, 0x67, 0x40, 0x74, 0x3e, 0x8a, 0xbd,
+ 0x97, 0x4f, 0xf6, 0x6a, 0xa8, 0x3a, 0xc6, 0x3a,
+ 0x72, 0x0a, 0xc7, 0x46, 0x27, 0xe7, 0xf1, 0xbf,
+ 0xf4, 0x91, 0x7c, 0xd6, 0x7d, 0xdc, 0xd7, 0xde,
+ 0x1d, 0x3f, 0xf6, 0x08, 0xe2, 0xd5, 0xca, 0x7f,
+ 0x4e, 0x9f, 0xdd, 0x41, 0xb9, 0xaa, 0x87, 0x4f,
+ 0xb7, 0x7e, 0xbe, 0xe3, 0xa7, 0xed, 0xa2, 0x9e,
+ 0xc0, 0x9d, 0x30, 0x42, 0x74, 0x31, 0xf6, 0x09,
+ 0x48, 0x4b, 0x67, 0xfb, 0x16, 0xf5, 0xbd, 0xf7,
+ 0x50, 0xab, 0x1a, 0xd9, 0xff, 0xd9, 0xd0, 0x65,
+ 0x76, 0xfd, 0x2b, 0x75, 0x0e, 0x9f, 0xbb, 0xe0,
+ 0xe3, 0x3a, 0x74, 0xe0, 0x84, 0x25, 0x4f, 0xfc,
+ 0x83, 0xdb, 0xbf, 0x9e, 0x2c, 0x8a, 0x3a, 0xc5,
+ 0xe4, 0x5e, 0xd3, 0xfd, 0x5a, 0x19, 0x54, 0x4a,
+ 0xd2, 0x60, 0x52, 0x67, 0x78, 0xbc, 0x79, 0x04,
+ 0xa7, 0x9d, 0x8f, 0xb8, 0xf2, 0x09, 0x4e, 0xa6,
+ 0xf8, 0x3c, 0x82, 0x53, 0x04, 0x27, 0x90, 0x4a,
+ 0x19, 0x14, 0x8b, 0x14, 0x68, 0xbc, 0x25, 0x53,
+ 0xf7, 0xf4, 0x1d, 0xfd, 0x16, 0x41, 0x2b, 0x1b,
+ 0xd9, 0xe5, 0xfc, 0xfa, 0x9d, 0x2c, 0xbd, 0x9f,
+ 0x60, 0x12, 0x67, 0xf2, 0xce, 0xb9, 0xed, 0x6d,
+ 0xe2, 0xa7, 0xf6, 0xdd, 0x77, 0xd2, 0xbb, 0x3a,
+ 0x4e, 0x2a, 0x77, 0x8b, 0xc5, 0x41, 0x50, 0x86,
+ 0xd5, 0x84, 0x14, 0x37, 0x3d, 0xd4, 0x03, 0x15,
+ 0x63, 0x59, 0x08, 0x8c, 0x5c, 0x84, 0xac, 0xf5,
+ 0xde, 0x2e, 0x3a, 0x4a, 0x3a, 0x6c, 0x77, 0x06,
+ 0xc5, 0x62, 0x19, 0xf0, 0x71, 0x6d, 0xa8, 0xe9,
+ 0xf9, 0x91, 0x67, 0x20, 0x0a, 0x96, 0xce, 0x9f,
+ 0xe7, 0xae, 0x77, 0x15, 0xbb, 0xfa, 0x74, 0xfd,
+ 0xb4, 0x53, 0xd8, 0x13, 0xa7, 0xd8, 0xf2, 0xb1,
+ 0x47, 0x4e, 0xa6, 0xc4, 0xe8, 0xe9, 0xe1, 0x68,
+ 0x9e, 0x7e, 0xef, 0x80, 0x17, 0x50, 0xe9, 0xfb,
+ 0x77, 0xf9, 0xa2, 0xad, 0xc2, 0x61, 0x98, 0x20,
+ 0x27, 0xb4, 0x6f, 0xd1, 0x14, 0x62, 0x7a, 0x3b,
+ 0x28, 0xec, 0x67, 0x13, 0xdd, 0xc7, 0xae, 0x3a,
+ 0x1c, 0xaf, 0x5f, 0x0a, 0xeb, 0x0f, 0xde, 0xab,
+ 0xd2, 0x3f, 0xfd, 0x1b, 0x4e, 0x08, 0x42, 0x54,
+ 0xe1, 0x72, 0x15, 0x62, 0xf2, 0x7e, 0x79, 0x67,
+ 0x2f, 0x05, 0xe3, 0xa7, 0xab, 0xef, 0x84, 0xe9,
+ 0xf3, 0xc3, 0xb4, 0x51, 0xd3, 0xff, 0xc9, 0xcf,
+ 0x5d, 0x40, 0x7e, 0x81, 0xcf, 0xae, 0x3a, 0x17,
+ 0xaa, 0x34, 0x36, 0x69, 0xe4, 0x5a, 0x27, 0x9c,
+ 0xed, 0xf4, 0xe9, 0xfb, 0x48, 0xb7, 0x6e, 0xa1,
+ 0xd0, 0xe3, 0xcb, 0xd0, 0xe4, 0xeb, 0xae, 0x5e,
+ 0xce, 0x9b, 0xec, 0xbd, 0x1b, 0x76, 0xcb, 0xd2,
+ 0x36, 0xbd, 0x30, 0x89, 0x23, 0xf8, 0x7a, 0x1f,
+ 0x2e, 0x21, 0xe2, 0x30, 0xec, 0x95, 0x27, 0x7d,
+ 0x85, 0x85, 0xf7, 0x09, 0x25, 0xa1, 0x86, 0x24,
+ 0x6a, 0x8c, 0x0a, 0xb2, 0xc0, 0x3d, 0x17, 0xa5,
+ 0x34, 0x94, 0x7d, 0xa9, 0xd7, 0x9b, 0x9f, 0xd7,
+ 0xe1, 0xf3, 0xce, 0x11, 0xb7, 0x84, 0x53, 0xff,
+ 0xac, 0xaf, 0x75, 0xb0, 0x5b, 0xfd, 0x8d, 0x14,
+ 0x54, 0xfe, 0xb6, 0x0b, 0x7f, 0xb1, 0xa2, 0xe8,
0x9f, 0xfa, 0xde, 0xeb, 0x60, 0xb7, 0xfb, 0x1a,
- 0x23, 0x99, 0xff, 0xd6, 0x57, 0xba, 0xd8, 0x2d,
- 0xfe, 0xc6, 0x89, 0xca, 0x7f, 0x5b, 0x05, 0xbf,
- 0xd8, 0xd1, 0x66, 0x4f, 0xeb, 0x60, 0xb7, 0xfb,
- 0x1a, 0x2d, 0xd9, 0xff, 0xd6, 0x57, 0xba, 0xd8,
- 0x2d, 0xfe, 0xc6, 0x8a, 0x42, 0x7f, 0xeb, 0x7b,
- 0xad, 0x82, 0xdf, 0xec, 0x68, 0x94, 0xa1, 0xe4,
- 0xec, 0x96, 0x4c, 0x52, 0x97, 0x4e, 0xf4, 0x77,
- 0x70, 0xa5, 0x3f, 0xef, 0x75, 0xb0, 0x5b, 0xfd,
- 0x8d, 0x13, 0xb4, 0xff, 0xfb, 0x7c, 0x5e, 0xa4,
- 0xb8, 0xfe, 0x3a, 0x9d, 0xc6, 0x3a, 0x65, 0x59,
- 0x48, 0x9f, 0xf4, 0x69, 0xf0, 0xb7, 0xfb, 0x1a,
- 0x22, 0xc9, 0xff, 0x7b, 0xad, 0x82, 0xdf, 0xec,
- 0x68, 0x97, 0x67, 0xff, 0xec, 0xe2, 0x88, 0x0d,
- 0xb5, 0xdf, 0xe6, 0xb5, 0x4e, 0x4a, 0x95, 0xb1,
- 0x1a, 0x8a, 0x30, 0x5f, 0x46, 0x9f, 0xfd, 0x65,
- 0x7b, 0xad, 0x82, 0xdf, 0xec, 0x68, 0x98, 0xa7,
- 0xf5, 0xb0, 0x5b, 0xfd, 0x8d, 0x15, 0x4c, 0xff,
- 0xeb, 0x2b, 0xdd, 0x6c, 0x16, 0xff, 0x63, 0x44,
- 0xe9, 0x3f, 0xb7, 0xe2, 0x8e, 0xf5, 0xc7, 0x4f,
- 0x96, 0x45, 0x92, 0xa7, 0x4f, 0xc1, 0xcd, 0xae,
- 0xce, 0x9d, 0x3d, 0xba, 0x25, 0xb6, 0x7a, 0xd5,
- 0x28, 0x9f, 0xfa, 0xfa, 0xe9, 0x1f, 0xb5, 0xeb,
- 0x6d, 0x47, 0x42, 0x91, 0x05, 0x43, 0x99, 0xff,
- 0x7b, 0xad, 0x82, 0xdf, 0xec, 0x68, 0x9d, 0xe7,
- 0xda, 0xbf, 0xd5, 0xb2, 0xa5, 0x6e, 0x13, 0x9b,
- 0xc8, 0xc2, 0x94, 0x47, 0xe8, 0xd3, 0xff, 0xac,
- 0xaf, 0x75, 0xb0, 0x5b, 0xfd, 0x8d, 0x14, 0x2c,
- 0xff, 0xeb, 0x2b, 0xdd, 0x6c, 0x16, 0xff, 0x63,
- 0x45, 0x25, 0x3f, 0xff, 0xb2, 0xb6, 0x07, 0x16,
- 0xa7, 0xab, 0x54, 0x4d, 0x5e, 0xa3, 0xa1, 0xe5,
- 0xc0, 0x27, 0x1c, 0x32, 0x90, 0x9d, 0xaa, 0x3e,
- 0xde, 0x52, 0x6f, 0x52, 0x5f, 0x52, 0x9f, 0xd6,
- 0xc1, 0x6f, 0xf6, 0x34, 0x44, 0x93, 0xff, 0xac,
- 0xaf, 0x75, 0xb0, 0x5b, 0xfd, 0x8d, 0x12, 0xf4,
- 0xf8, 0x5b, 0xfd, 0x8d, 0x14, 0xbc, 0xfe, 0x4e,
- 0x2e, 0x36, 0xa4, 0xa9, 0xd2, 0xb6, 0x1f, 0x36,
- 0x8c, 0x27, 0xf5, 0xb0, 0x5b, 0xfd, 0x8d, 0x14,
- 0xe4, 0xff, 0xb6, 0x3f, 0x5a, 0x66, 0x75, 0x8e,
- 0x9f, 0xf6, 0x51, 0x07, 0x2c, 0x10, 0x84, 0xa9,
- 0xb6, 0x13, 0xa6, 0x7a, 0xdc, 0x22, 0x35, 0x7c,
- 0xee, 0xe0, 0xf2, 0x7c, 0x2d, 0xfe, 0xc6, 0x8a,
- 0xf2, 0x7f, 0xfe, 0xce, 0x28, 0x80, 0xdb, 0x5d,
- 0xfe, 0x6b, 0x54, 0xe4, 0xa9, 0x5b, 0x11, 0x1c,
- 0xbe, 0x61, 0x3f, 0xf5, 0xbd, 0xd6, 0xc1, 0x6f,
- 0xf6, 0x34, 0x48, 0xf3, 0xb7, 0xca, 0x1d, 0x39,
- 0xb1, 0x45, 0x58, 0xbc, 0x9f, 0x0b, 0x7f, 0xb1,
- 0xa2, 0x48, 0x9e, 0xb7, 0xba, 0xc8, 0x7b, 0x38,
- 0x53, 0x3f, 0xf5, 0xbd, 0xd6, 0xc1, 0x6f, 0xf6,
- 0x34, 0x49, 0x53, 0xe1, 0x6f, 0xf6, 0x34, 0x5e,
- 0x33, 0xf5, 0xfd, 0x7f, 0xdf, 0xa9, 0xd3, 0xea,
- 0xd7, 0x58, 0xc7, 0x4f, 0xf3, 0xad, 0x82, 0xdf,
- 0xec, 0x68, 0x93, 0x65, 0x6c, 0x46, 0x3b, 0xe6,
- 0x02, 0x61, 0xe4, 0xd0, 0x8b, 0xa5, 0x6f, 0x1d,
- 0xba, 0x17, 0x1c, 0x13, 0xee, 0x19, 0x0b, 0x43,
- 0x49, 0x45, 0x74, 0x86, 0x0e, 0x8d, 0xef, 0x8c,
- 0x4e, 0x12, 0x33, 0xea, 0x07, 0xa3, 0x9f, 0x74,
- 0x79, 0x3c, 0x47, 0xb5, 0x96, 0xd9, 0xfa, 0xec,
- 0xa5, 0x76, 0xaf, 0x4d, 0x9f, 0x9e, 0x0b, 0xdc,
- 0xe6, 0x2d, 0xce, 0x3b, 0x05, 0xa9, 0x63, 0xa3,
- 0x3f, 0x70, 0xab, 0xee, 0x55, 0xa4, 0xed, 0x2f,
- 0xd3, 0x65, 0xb9, 0x95, 0x64, 0xbd, 0x42, 0xc3,
- 0xb3, 0xb5, 0x75, 0xa4, 0x43, 0x6a, 0xb6, 0xcd,
- 0xbe, 0x93, 0xce, 0xba, 0x3d, 0x70, 0xc7, 0xf8,
- 0xbf, 0x0f, 0xc0, 0x67, 0x41, 0x2e, 0x27, 0x6a,
- 0x60,
+ 0x24, 0xb9, 0xfd, 0x6c, 0x16, 0xff, 0x63, 0x45,
+ 0xe5, 0x08, 0xde, 0x3b, 0xbc, 0x4e, 0xe3, 0xbc,
+ 0x3b, 0x65, 0x25, 0x8e, 0xd4, 0x77, 0x58, 0x62,
+ 0xf6, 0xb7, 0x8e, 0xa4, 0x75, 0x7a, 0x52, 0xb8,
+ 0xed, 0x72, 0x64, 0xff, 0xeb, 0x2b, 0xdd, 0x6c,
+ 0x16, 0xff, 0x63, 0x44, 0xb3, 0x3c, 0xdf, 0xec,
+ 0x68, 0x8c, 0xe7, 0xed, 0xa2, 0x9e, 0xc0, 0x9d,
+ 0x37, 0x5c, 0x74, 0x94, 0x74, 0xfb, 0x63, 0x5f,
+ 0xb0, 0x9e, 0x9a, 0x8b, 0x79, 0x8b, 0x4f, 0xde,
+ 0xed, 0x8f, 0x89, 0xd3, 0xa8, 0x8f, 0x9d, 0x02,
+ 0x98, 0x82, 0x9f, 0xba, 0x99, 0xa2, 0xa9, 0xff,
+ 0xb5, 0xb1, 0xf0, 0x72, 0x7d, 0xc8, 0xa3, 0xa7,
+ 0xdd, 0x47, 0x53, 0xce, 0x8d, 0x9f, 0x62, 0xe4,
+ 0x69, 0xff, 0xb1, 0x5a, 0xd8, 0x68, 0x95, 0xfb,
+ 0xd9, 0xd3, 0xfe, 0xaa, 0x6e, 0xbb, 0x4e, 0xad,
+ 0x71, 0xd2, 0xb6, 0x26, 0xa8, 0xb4, 0x2a, 0x7a,
+ 0x49, 0x44, 0x79, 0xff, 0xd6, 0x57, 0xba, 0xd8,
+ 0x2d, 0xfe, 0xc6, 0x89, 0xa6, 0x7f, 0xf5, 0x95,
+ 0xee, 0xb6, 0x0b, 0x7f, 0xb1, 0xa2, 0x71, 0x9f,
+ 0xfd, 0x65, 0x7b, 0xad, 0x82, 0xdf, 0xec, 0x68,
+ 0xa0, 0x67, 0xc2, 0xdf, 0xec, 0x68, 0xb8, 0x26,
+ 0x4d, 0x9d, 0x3f, 0xba, 0xe4, 0xdf, 0x18, 0xa3,
+ 0xa5, 0x6c, 0x3f, 0x8a, 0x98, 0x5c, 0x2b, 0x3f,
+ 0xb7, 0x6e, 0x68, 0x0c, 0x09, 0xd3, 0xfc, 0xeb,
+ 0x60, 0xb7, 0xfb, 0x1a, 0x24, 0x99, 0x5a, 0xa7,
+ 0xeb, 0xe6, 0x90, 0xf2, 0xe9, 0xf3, 0xa5, 0x5b,
+ 0x32, 0x4a, 0xca, 0x40, 0x52, 0xa4, 0x32, 0xb5,
+ 0x0a, 0xa9, 0xff, 0x5f, 0xfb, 0x60, 0xb7, 0xfb,
+ 0x1a, 0x2d, 0x49, 0xff, 0x7b, 0xad, 0x82, 0xdf,
+ 0xec, 0x68, 0x95, 0x60, 0xe9, 0x5a, 0xfa, 0x26,
+ 0x14, 0x91, 0x78, 0x8d, 0x3f, 0xad, 0x82, 0xdf,
+ 0xec, 0x68, 0x8a, 0x67, 0xf5, 0xb0, 0x5b, 0xfd,
+ 0x8d, 0x11, 0xa4, 0xfe, 0xb6, 0x0b, 0x7f, 0xb1,
+ 0xa2, 0x9f, 0x9f, 0xfd, 0x65, 0x7b, 0xad, 0x82,
+ 0xdf, 0xec, 0x68, 0x9a, 0xa7, 0xf5, 0xb0, 0x5b,
+ 0xfd, 0x8d, 0x15, 0xdc, 0xf3, 0x7f, 0xb1, 0xa2,
+ 0xbe, 0x9c, 0x10, 0x84, 0xa9, 0x74, 0xab, 0x17,
+ 0x90, 0x27, 0xcc, 0xa4, 0x79, 0xce, 0x47, 0xce,
+ 0x9f, 0xf6, 0x54, 0x3f, 0xaa, 0x26, 0x3c, 0x74,
+ 0xff, 0xbf, 0x63, 0x8f, 0x6d, 0xd9, 0xc1, 0xd2,
+ 0xb6, 0x22, 0xe1, 0x62, 0x1e, 0x8e, 0x50, 0xf6,
+ 0x7f, 0xf5, 0x95, 0xee, 0xb6, 0x0b, 0x7f, 0xb1,
+ 0xa2, 0x7b, 0x9f, 0xd6, 0xc1, 0x6f, 0xf6, 0x34,
+ 0x5c, 0x33, 0xff, 0x5b, 0xdd, 0x6c, 0x16, 0xff,
+ 0x63, 0x44, 0x9f, 0x08, 0xae, 0xcd, 0xe3, 0xb7,
+ 0x1d, 0xdf, 0x3b, 0x63, 0xb5, 0x94, 0x86, 0x35,
+ 0x9a, 0xa1, 0xd1, 0x49, 0x71, 0xdc, 0xfe, 0xb6,
+ 0x0b, 0x7f, 0xb1, 0xa2, 0x2a, 0x9f, 0xd6, 0xc1,
+ 0x6f, 0xf6, 0x34, 0x53, 0x33, 0xff, 0xac, 0xaf,
+ 0x75, 0xb0, 0x5b, 0xfd, 0x8d, 0x13, 0x3c, 0xff,
+ 0xeb, 0x2b, 0xdd, 0x6c, 0x16, 0xff, 0x63, 0x45,
+ 0x1b, 0x0f, 0x26, 0x35, 0xc1, 0xdd, 0xf3, 0xbd,
+ 0x29, 0x4f, 0xfd, 0x6f, 0x75, 0xb0, 0x5b, 0xfd,
+ 0x8d, 0x11, 0xd4, 0xfd, 0xbc, 0xef, 0x18, 0xf1,
+ 0xd3, 0xe1, 0x6f, 0xf6, 0x34, 0x53, 0x53, 0xf6,
+ 0xd1, 0x4f, 0x60, 0x4e, 0x9f, 0xfe, 0xcd, 0x57,
+ 0x1c, 0x3f, 0xdd, 0x57, 0xdc, 0x74, 0xc8, 0x03,
+ 0xa7, 0xfa, 0x9e, 0xfa, 0x36, 0xda, 0xc2, 0x88,
+ 0xfe, 0x96, 0xf3, 0x4d, 0x95, 0xb8, 0x4d, 0x2f,
+ 0x0b, 0xb5, 0x0b, 0xf9, 0xf0, 0xb7, 0xfb, 0x1a,
+ 0x2a, 0xa9, 0xff, 0x7b, 0xad, 0x82, 0xdf, 0xec,
+ 0x68, 0x9b, 0x65, 0x6c, 0x3f, 0x65, 0x18, 0x4f,
+ 0xeb, 0x60, 0xb7, 0xfb, 0x1a, 0x2b, 0xf9, 0xfd,
+ 0x6c, 0x16, 0xff, 0x63, 0x45, 0x8d, 0x3e, 0x16,
+ 0xff, 0x63, 0x45, 0xab, 0x3f, 0xef, 0x75, 0xb0,
+ 0x5b, 0xfd, 0x8d, 0x14, 0x14, 0xad, 0x87, 0xec,
+ 0xa3, 0x09, 0xfd, 0x6c, 0x16, 0xff, 0x63, 0x45,
+ 0xc5, 0x3f, 0xad, 0x82, 0xdf, 0xec, 0x68, 0xba,
+ 0x67, 0xff, 0xdd, 0xfb, 0x69, 0xd8, 0x23, 0xee,
+ 0x7b, 0x02, 0x74, 0xfd, 0x7a, 0xf7, 0x2b, 0xfa,
+ 0x3a, 0x79, 0xbf, 0xd8, 0xd1, 0x26, 0x4f, 0xf0,
+ 0xe3, 0xfa, 0xd7, 0xba, 0x87, 0x40, 0x9f, 0x1a,
+ 0x8a, 0xe7, 0xee, 0x01, 0x7a, 0xd0, 0x0b, 0xe7,
+ 0x4f, 0xb3, 0x5b, 0x57, 0x9d, 0x3f, 0xfe, 0xf6,
+ 0x14, 0xaf, 0x73, 0x59, 0x60, 0x84, 0x25, 0x43,
+ 0x8f, 0xe3, 0x44, 0xd3, 0xff, 0xae, 0xef, 0xe9,
+ 0x06, 0x95, 0x4e, 0xe8, 0xe9, 0xc1, 0x08, 0x4a,
+ 0x9f, 0x87, 0xde, 0x56, 0xe8, 0x55, 0x8b, 0xc9,
+ 0xf6, 0x28, 0x72, 0xf6, 0x74, 0xff, 0x94, 0x8d,
+ 0x5e, 0xdd, 0xa4, 0xa1, 0xd3, 0xfd, 0x9e, 0x0e,
+ 0x59, 0xc7, 0xb8, 0xe9, 0xff, 0xde, 0xf5, 0x76,
+ 0x9d, 0xc5, 0xb6, 0x3b, 0x3a, 0x31, 0x18, 0x3a,
+ 0x3e, 0x09, 0xcc, 0xfd, 0x7b, 0xee, 0x57, 0xf4,
+ 0x74, 0xf6, 0x9e, 0xce, 0x0e, 0x9f, 0xed, 0xdf,
+ 0xe6, 0x20, 0x56, 0xe8, 0x74, 0x2c, 0x7c, 0x0b,
+ 0xe4, 0x73, 0x82, 0x10, 0x9d, 0x3f, 0xfe, 0xc5,
+ 0x6b, 0xa8, 0x0c, 0xe2, 0x98, 0xa4, 0x62, 0xac,
+ 0x5e, 0x46, 0x26, 0x69, 0xb8, 0x48, 0x55, 0x0a,
+ 0x7f, 0x08, 0xf8, 0xf5, 0x1c, 0x74, 0xce, 0xb2,
+ 0xf1, 0x73, 0x63, 0x21, 0x29, 0x7c, 0x85, 0xf8,
+ 0x57, 0xac, 0x45, 0xec, 0xbd, 0x3c, 0xa4, 0x3a,
+ 0xb5, 0x1b, 0x1f, 0x33, 0x59, 0xf6, 0x28, 0x72,
+ 0xf6, 0x74, 0xff, 0xd9, 0x5e, 0xa3, 0xdc, 0xeb,
+ 0x5f, 0xbd, 0x9d, 0x3f, 0x7b, 0x58, 0x21, 0x09,
+ 0xd2, 0xb3, 0x2f, 0x40, 0xfc, 0xe9, 0x5f, 0x61,
+ 0x6f, 0x42, 0x95, 0xc9, 0x50, 0xe6, 0x56, 0xd7,
+ 0x11, 0xcb, 0xbf, 0x0b, 0x21, 0x27, 0x51, 0xd8,
+ 0x21, 0x63, 0x42, 0x7d, 0x1d, 0xdd, 0x3d, 0x79,
+ 0x3f, 0xad, 0x82, 0xdf, 0xec, 0x68, 0x8d, 0x67,
+ 0xc2, 0xdf, 0xec, 0x68, 0xa9, 0x66, 0xf6, 0x34,
+ 0x43, 0x52, 0xb6, 0x1e, 0x8f, 0x98, 0x4f, 0xfd,
+ 0x6f, 0x75, 0xb0, 0x5b, 0xfd, 0x8d, 0x11, 0xf4,
+ 0xfe, 0xb6, 0x0b, 0x7f, 0xb1, 0xa2, 0xc7, 0x9f,
+ 0xaf, 0x5e, 0xe5, 0x7f, 0x47, 0x4f, 0xf7, 0x7c,
+ 0x14, 0xfd, 0x6b, 0xce, 0x9e, 0x02, 0xb6, 0x27,
+ 0x4f, 0xff, 0xf2, 0x0f, 0x73, 0x8c, 0xad, 0x76,
+ 0xd5, 0xde, 0xa9, 0xef, 0x9d, 0x1b, 0x44, 0x3d,
+ 0x48, 0x67, 0xc2, 0xdf, 0xec, 0x68, 0xb4, 0x27,
+ 0xe5, 0xdc, 0xf5, 0xd4, 0x01, 0xd3, 0xe4, 0xd6,
+ 0x55, 0x0e, 0x9f, 0xfe, 0xcd, 0x53, 0x16, 0xaa,
+ 0x2e, 0xca, 0xd5, 0x0e, 0x87, 0x8f, 0xd7, 0xa4,
+ 0xb0, 0x88, 0xc9, 0xc8, 0x53, 0x4f, 0xf7, 0x73,
+ 0x35, 0x5f, 0xed, 0xf3, 0xa7, 0xf6, 0x55, 0x6d,
+ 0xd7, 0x6a, 0x3a, 0x7f, 0x3b, 0x06, 0x9d, 0x47,
+ 0x8e, 0x9f, 0xec, 0xc0, 0xe3, 0x36, 0x04, 0xe8,
+ 0xc4, 0x4d, 0x3e, 0x69, 0x43, 0x29, 0xec, 0xaf,
+ 0xe8, 0xe9, 0xfd, 0x7f, 0x7d, 0xb9, 0xd9, 0x43,
+ 0xa5, 0x65, 0xe2, 0xb8, 0xa4, 0x31, 0xe2, 0x17,
+ 0xd8, 0x47, 0x58, 0x7c, 0xd0, 0x9b, 0x50, 0xd3,
+ 0x5f, 0x30, 0xe6, 0x41, 0x3f, 0x5e, 0x6f, 0x8e,
+ 0xa2, 0xc7, 0x4f, 0x65, 0x7f, 0x47, 0x4a, 0xf5,
+ 0xc3, 0xd2, 0xe9, 0x94, 0xf8, 0x5b, 0xfd, 0x8d,
+ 0x16, 0xb4, 0xff, 0xbd, 0xd6, 0xc1, 0x6f, 0xf6,
+ 0x34, 0x50, 0x72, 0xb2, 0xf1, 0x14, 0x58, 0x58,
+ 0xa3, 0x09, 0xff, 0xd6, 0x57, 0xba, 0xd8, 0x2d,
+ 0xfe, 0xc6, 0x8a, 0x2e, 0x7f, 0x5b, 0x05, 0xbf,
+ 0xd8, 0xd1, 0x75, 0x43, 0x97, 0xc6, 0x9a, 0x11,
+ 0x9b, 0x26, 0x52, 0x65, 0x65, 0xe2, 0x82, 0x39,
+ 0x1a, 0x1c, 0xe9, 0x4a, 0x7c, 0x2d, 0xfe, 0xc6,
+ 0x88, 0x86, 0x75, 0x73, 0x83, 0xa5, 0x6c, 0x3c,
+ 0xc7, 0xcc, 0x27, 0xf5, 0xb0, 0x5b, 0xfd, 0x8d,
+ 0x11, 0xb4, 0xfe, 0xb6, 0x0b, 0x7f, 0xb1, 0xa2,
+ 0x9b, 0x9f, 0xd6, 0xc1, 0x6f, 0xf6, 0x34, 0x54,
+ 0x13, 0xfa, 0xd8, 0x2d, 0xfe, 0xc6, 0x8a, 0x9a,
+ 0x7c, 0x2d, 0xfe, 0xc6, 0x8a, 0xc2, 0x7d, 0xb0,
+ 0xf1, 0x70, 0x9d, 0x3f, 0xce, 0xb6, 0x0b, 0x7f,
+ 0xb1, 0xa2, 0x3f, 0x9d, 0x88, 0xf1, 0xd2, 0xb6,
+ 0x22, 0xd5, 0x8c, 0x3c, 0xa7, 0xa8, 0x33, 0xff,
+ 0xac, 0xaf, 0x75, 0xb0, 0x5b, 0xfd, 0x8d, 0x13,
+ 0x7c, 0xff, 0xca, 0xf7, 0x5b, 0x05, 0xbf, 0xd8,
+ 0xd1, 0x3f, 0x4f, 0xd7, 0xa1, 0x7a, 0xde, 0xab,
+ 0xf8, 0xf9, 0xd3, 0xff, 0xc8, 0x88, 0x88, 0x88,
+ 0x88, 0x8f, 0xd0, 0xe9, 0xf0, 0xed, 0xef, 0x51,
+ 0x53, 0x04, 0x25, 0x46, 0x1b, 0xd0, 0x93, 0xca,
+ 0xe2, 0xac, 0x68, 0x21, 0x11, 0x8f, 0x48, 0x53,
+ 0x4f, 0xc3, 0xed, 0x5d, 0x89, 0xd3, 0xcf, 0x2b,
+ 0x6e, 0x3a, 0x7f, 0x55, 0x15, 0x60, 0x01, 0x0e,
+ 0x90, 0xa1, 0xea, 0xec, 0x8e, 0x70, 0x29, 0x87,
+ 0x4f, 0x53, 0x5b, 0x58, 0xe8, 0x44, 0xc2, 0xb6,
+ 0x4e, 0x2f, 0xfd, 0x26, 0xd0, 0xdc, 0xf7, 0xad,
+ 0xcd, 0x47, 0x4d, 0xfd, 0x3a, 0x04, 0xdc, 0xa8,
+ 0x92, 0x70, 0x42, 0x13, 0xa7, 0x9e, 0xee, 0xd0,
+ 0xab, 0x17, 0x93, 0xcf, 0xeb, 0x6c, 0x74, 0x22,
+ 0x23, 0xea, 0x79, 0x71, 0x8c, 0xff, 0xcf, 0x5c,
+ 0x0c, 0xed, 0xcb, 0x26, 0xbc, 0xe9, 0xe4, 0xd5,
+ 0x18, 0xd1, 0x07, 0x40, 0x9f, 0xa6, 0x91, 0xe6,
+ 0x1e, 0x0e, 0x98, 0x21, 0x3a, 0x1c, 0x6b, 0x02,
+ 0x2d, 0x3d, 0x44, 0xda, 0xe2, 0xac, 0x68, 0x67,
+ 0xd4, 0xe7, 0xc0, 0x28, 0x74, 0x6c, 0xf7, 0xb9,
+ 0x99, 0xce, 0x08, 0x42, 0x54, 0x15, 0x62, 0xf2,
+ 0x7b, 0x61, 0xda, 0xc5, 0x43, 0x1b, 0xcd, 0x8c,
+ 0xc6, 0xd3, 0x68, 0xac, 0x33, 0x3a, 0xf9, 0x3d,
+ 0xc7, 0xf4, 0x07, 0x4f, 0xfc, 0x9d, 0x07, 0x51,
+ 0xf5, 0x93, 0xa0, 0x3a, 0x00, 0x7c, 0xf4, 0x22,
+ 0x9f, 0x96, 0x4c, 0x1a, 0xec, 0xe9, 0xfb, 0x58,
+ 0xb7, 0x51, 0x47, 0x88, 0x0a, 0x7d, 0xfd, 0xe2,
+ 0xa8, 0x68, 0x80, 0xac, 0x6e, 0xa7, 0xc8, 0x0d,
+ 0xbf, 0x43, 0xa7, 0xf0, 0xad, 0x4d, 0xf7, 0x5b,
+ 0x3a, 0x79, 0xf0, 0x0a, 0x15, 0x30, 0x42, 0x54,
+ 0x21, 0xb7, 0x09, 0x0c, 0xfd, 0xe2, 0xe7, 0x77,
+ 0x65, 0x58, 0xd0, 0x42, 0x27, 0x77, 0x84, 0x5b,
+ 0x66, 0xea, 0x26, 0x8a, 0x2e, 0x84, 0x5c, 0xfa,
+ 0xed, 0x5d, 0xfc, 0xcd, 0x10, 0x3c, 0xff, 0xab,
+ 0x73, 0xc9, 0xc9, 0x34, 0x9c, 0x1d, 0x3b, 0xc5,
+ 0xe3, 0xa6, 0x08, 0x4e, 0x9f, 0xc3, 0xbc, 0x5d,
+ 0xcd, 0xd6, 0x63, 0x62, 0x11, 0xb9, 0x27, 0x08,
+ 0xbf, 0x17, 0x39, 0xff, 0xd8, 0xa5, 0x7b, 0xb0,
+ 0x5b, 0xfd, 0x8d, 0x10, 0xc4, 0x54, 0xfe, 0x7a,
+ 0x51, 0x3f, 0x60, 0xb7, 0xfb, 0x1a, 0x20, 0xa9,
+ 0xed, 0x51, 0x00, 0x54, 0xef, 0x17, 0x8a, 0x9e,
+ 0xbb, 0xbf, 0x7c, 0xa9, 0xfd, 0xb7, 0xb3, 0x54,
+ 0x40, 0x15, 0x05, 0x4f, 0xd8, 0xc9, 0x54, 0x51,
+ 0x53, 0x04, 0x25, 0x4f, 0xdd, 0x4e, 0xbd, 0xb1,
+ 0x2a, 0x31, 0x30, 0xa6, 0x21, 0x50, 0xdd, 0x49,
+ 0x00, 0x67, 0xd0, 0xa0, 0x95, 0x73, 0x16, 0x9b,
+ 0x62, 0x55, 0x8f, 0xca, 0x5e, 0xe4, 0xf5, 0xeb,
+ 0x1d, 0x8c, 0xff, 0x91, 0xdf, 0xdc, 0xa0, 0xa5,
+ 0x0e, 0x9f, 0xf2, 0x6a, 0xa8, 0xbb, 0x84, 0x02,
+ 0x1d, 0x3f, 0xff, 0x2d, 0xfe, 0xef, 0xaf, 0x2c,
+ 0x7a, 0xed, 0x5d, 0xfc, 0xcd, 0x17, 0xdc, 0xfb,
+ 0x7a, 0xee, 0x38, 0xe9, 0xff, 0x77, 0x6e, 0xd5,
+ 0x70, 0x77, 0x43, 0xa7, 0xf6, 0x81, 0xcf, 0xae,
+ 0xae, 0x1e, 0x20, 0x19, 0xde, 0x2e, 0x3c, 0x40,
+ 0x31, 0x87, 0xd3, 0x72, 0x14, 0xde, 0xe3, 0xc4,
+ 0x03, 0x3d, 0xfd, 0x7d, 0xc7, 0x88, 0x06, 0x7f,
+ 0x6d, 0xab, 0x80, 0x02, 0x1e, 0x20, 0x19, 0xdb,
+ 0xef, 0x07, 0x88, 0x06, 0x38, 0x45, 0xca, 0x88,
+ 0xaa, 0x5e, 0xb8, 0xfa, 0x70, 0xa6, 0x8f, 0x10,
+ 0x0c, 0x1e, 0x20, 0x19, 0x91, 0x47, 0x88, 0x06,
+ 0x38, 0x37, 0x3b, 0x17, 0x9e, 0xda, 0xb8, 0x43,
+ 0xc4, 0x03, 0x3b, 0x5e, 0xc7, 0x88, 0x06, 0x7f,
+ 0xdd, 0xf7, 0x5a, 0xbb, 0x6f, 0x13, 0xc4, 0x03,
+ 0x37, 0xf0, 0x78, 0x80, 0x67, 0xf7, 0x7c, 0x34,
+ 0xa2, 0x00, 0xf1, 0x00, 0xcf, 0xb7, 0x7f, 0xfa,
+ 0x03, 0xc4, 0x03, 0x36, 0xe8, 0x78, 0x80, 0x60,
+ 0x4f, 0x67, 0x46, 0xd3, 0xed, 0x75, 0x1f, 0x71,
+ 0xa2, 0x01, 0x98, 0x08, 0x78, 0x80, 0x6c, 0x6d,
+ 0x67, 0xdb, 0x45, 0x7f, 0x07, 0x88, 0x06, 0x7a,
+ 0xef, 0xeb, 0x1e, 0x20, 0x19, 0xc8, 0x2c, 0x78,
+ 0x80, 0x67, 0xfd, 0x8f, 0xd3, 0x84, 0xce, 0x82,
+ 0x87, 0x88, 0x06, 0x7d, 0x77, 0xb9, 0xc8, 0x78,
+ 0x80, 0x63, 0x11, 0x01, 0x54, 0xc9, 0x84, 0x07,
+ 0x88, 0x06, 0x1c, 0xaa, 0x3f, 0x82, 0x3c, 0x84,
+ 0xc6, 0xd5, 0xaa, 0x64, 0x03, 0x4a, 0x17, 0x6a,
+ 0x14, 0xd7, 0x11, 0x4f, 0xb3, 0x54, 0xf7, 0xcf,
+ 0x10, 0x0c, 0xfe, 0xe1, 0x19, 0x61, 0x4d, 0x1e,
+ 0x20, 0x1e, 0x0d, 0xa4, 0xe1, 0x40, 0x9e, 0x20,
+ 0x18, 0x63, 0xf7, 0x15, 0x09, 0xed, 0xf5, 0xd4,
+ 0x3c, 0x40, 0x33, 0xf7, 0xac, 0xec, 0x7d, 0xc7,
+ 0x88, 0x06, 0x31, 0x11, 0x40, 0x20, 0xb8, 0xbe,
+ 0x7f, 0xf7, 0xbd, 0xc5, 0x52, 0x96, 0xa5, 0xc2,
+ 0x03, 0xc4, 0x03, 0x30, 0x80, 0xf1, 0x00, 0xcf,
+ 0xbf, 0x54, 0xdb, 0xe7, 0x88, 0x06, 0x7e, 0xdf,
+ 0x6e, 0x76, 0x50, 0xf1, 0x00, 0xc2, 0x22, 0x4b,
+ 0xa4, 0x5a, 0x35, 0x8e, 0x17, 0xf5, 0x72, 0x1b,
+ 0x6b, 0x20, 0x0b, 0x05, 0x48, 0xbc, 0xbc, 0x04,
+ 0xf4, 0x95, 0xb1, 0xa8, 0xf0, 0x17, 0xcc, 0x39,
+ 0xc3, 0xae, 0x77, 0xfb, 0x1a, 0x20, 0x1b, 0x22,
+ 0xda, 0x7a, 0xfd, 0xe9, 0x70, 0xa3, 0xa6, 0x02,
+ 0x15, 0x2b, 0xe5, 0x4e, 0xaa, 0x3c, 0x74, 0xc1,
+ 0x09, 0x51, 0xb3, 0xd9, 0xbd, 0x8a, 0xac, 0x24,
+ 0x11, 0xc9, 0xca, 0xdd, 0x0a, 0xb1, 0xe0, 0xcf,
+ 0x6a, 0x97, 0x97, 0x1d, 0x0f, 0x32, 0xaa, 0x9c,
+ 0x4e, 0xd4, 0x93, 0x2d, 0x9c, 0x02, 0x18, 0xdc,
+ 0xcb, 0x67, 0xe1, 0x59, 0xc8, 0x2f, 0x1d, 0x3f,
+ 0xe7, 0x53, 0x97, 0x71, 0x48, 0x37, 0xce, 0x9f,
+ 0xb9, 0x84, 0x77, 0x95, 0x2a, 0x79, 0x6a, 0xfa,
+ 0xc7, 0x4f, 0xb1, 0x67, 0x23, 0xe7, 0x4f, 0x67,
+ 0x51, 0xc5, 0x40, 0x9f, 0x5f, 0x48, 0xef, 0x0a,
+ 0x21, 0x13, 0x38, 0xc2, 0xda, 0xa0, 0xfc, 0x26,
+ 0x67, 0xb7, 0xdd, 0x50, 0xe9, 0xd7, 0x2f, 0x74,
+ 0x3a, 0x7f, 0xed, 0x53, 0x38, 0x47, 0xe9, 0x8f,
+ 0xe8, 0xe8, 0x43, 0xe8, 0xf2, 0x29, 0xf7, 0xae,
+ 0xe3, 0x84, 0x3a, 0x6a, 0x50, 0xe9, 0xc1, 0x08,
+ 0x4e, 0x98, 0x1e, 0x55, 0x8b, 0xc8, 0x13, 0xd6,
+ 0xa1, 0x94, 0xef, 0x06, 0x15, 0x0e, 0x45, 0xda,
+ 0xa1, 0x00, 0xbe, 0x43, 0x3f, 0xb5, 0xdc, 0x7c,
+ 0x1c, 0xdc, 0x74, 0xff, 0x77, 0x17, 0x65, 0x82,
+ 0x10, 0x95, 0x39, 0x5f, 0xa3, 0xa2, 0xa7, 0xaa,
+ 0xb8, 0xea, 0x11, 0x1c, 0xfb, 0x38, 0xf8, 0x45,
+ 0xcd, 0x5f, 0x3a, 0x65, 0xa8, 0x74, 0xfd, 0x6c,
+ 0x5d, 0xbe, 0xf1, 0x86, 0xb3, 0x98, 0xac, 0xf7,
+ 0x19, 0x5f, 0x3a, 0x7f, 0xe4, 0xce, 0xba, 0xb9,
+ 0xde, 0xa0, 0x4e, 0x96, 0xc5, 0x15, 0x7d, 0x48,
+ 0xd1, 0x0c, 0x3c, 0xda, 0x4c, 0x3a, 0x37, 0x0e,
+ 0x23, 0xf9, 0xbe, 0x5e, 0xc7, 0x7b, 0x3f, 0x1a,
+ 0x58, 0xc5, 0x63, 0xa3, 0x02, 0x07, 0x61, 0x15,
+ 0xa8, 0xf0, 0x97, 0x46, 0x15, 0x3f, 0x74, 0x19,
+ 0xc7, 0xb8, 0xe9, 0xf7, 0x35, 0x9c, 0x97, 0xb2,
+ 0xa3, 0x0f, 0x6f, 0x99, 0x6c, 0xff, 0xe1, 0xbf,
+ 0xdb, 0xbf, 0x9e, 0x53, 0x69, 0xd3, 0xa5, 0xcc,
+ 0xd1, 0x02, 0xcb, 0x46, 0xa0, 0x52, 0x5b, 0xd1,
+ 0xbc, 0x08, 0xfc, 0xff, 0xb6, 0xbf, 0x5d, 0xf3,
+ 0xb0, 0x00, 0x85, 0x4f, 0xfe, 0xd5, 0x3d, 0xfe,
+ 0x4a, 0x4c, 0xee, 0x97, 0xce, 0x84, 0x44, 0x9e,
+ 0xd1, 0x27, 0x3d, 0xd7, 0x1d, 0x08, 0x9c, 0x12,
+ 0xa1, 0x13, 0x58, 0x5d, 0x5c, 0x45, 0x3f, 0x9c,
+ 0xb6, 0x77, 0xeb, 0x87, 0x4f, 0xfe, 0x16, 0xee,
+ 0x2e, 0xee, 0x20, 0xa5, 0x0e, 0x9f, 0xde, 0xb5,
+ 0x71, 0x59, 0x43, 0xa3, 0x0f, 0xe5, 0x72, 0x3c,
+ 0xff, 0xfc, 0x81, 0xa6, 0x9f, 0x6d, 0xd7, 0x95,
+ 0xe6, 0x57, 0x6a, 0x3a, 0x36, 0x88, 0x4d, 0x11,
+ 0xce, 0xe3, 0xc4, 0xe9, 0xf0, 0x3f, 0xb9, 0x78,
+ 0x74, 0x21, 0xe2, 0x5c, 0x37, 0x3c, 0x8a, 0x7d,
+ 0x63, 0xa1, 0x13, 0xdb, 0x74, 0x65, 0xf4, 0x67,
+ 0xd1, 0x14, 0xf0, 0x3d, 0xfa, 0x1d, 0x30, 0x42,
+ 0x74, 0x50, 0xdc, 0x04, 0x8a, 0x7e, 0xa6, 0xeb,
+ 0xf9, 0x52, 0xac, 0x68, 0x67, 0x04, 0x21, 0x2a,
+ 0x79, 0xda, 0xc6, 0x2a, 0xc5, 0xe4, 0xfb, 0x38,
+ 0xd8, 0x28, 0x74, 0xbc, 0x4f, 0x5f, 0xa5, 0xf3,
+ 0xf7, 0x5f, 0xa2, 0xd9, 0xa3, 0xa7, 0xcf, 0x5e,
+ 0xf7, 0x8f, 0x9d, 0x3f, 0xec, 0x6e, 0x30, 0x43,
+ 0xf5, 0x58, 0xe9, 0x9c, 0xf1, 0x50, 0xf9, 0xea,
+ 0x74, 0xf6, 0x05, 0x14, 0x9f, 0x08, 0x18, 0x44,
+ 0xc7, 0xf0, 0x9b, 0xe1, 0xa7, 0x3f, 0xeb, 0xe8,
+ 0xff, 0x52, 0xb5, 0xb9, 0x8e, 0x9f, 0xbb, 0xf7,
+ 0xeb, 0xee, 0x3a, 0x70, 0x42, 0x12, 0xa7, 0x73,
+ 0x40, 0x15, 0x62, 0xf2, 0x7f, 0xbb, 0xe0, 0xe4,
+ 0xe4, 0x03, 0xe7, 0x47, 0x08, 0xf2, 0x52, 0x08,
+ 0x12, 0xb4, 0x59, 0x38, 0x21, 0x09, 0x62, 0x10,
+ 0x9f, 0x0b, 0x7f, 0xb1, 0x62, 0x10, 0xb1, 0xa9,
+ 0x9c, 0x10, 0x84, 0xb1, 0x07, 0xc1, 0x62, 0x0f,
+ 0xb1, 0xa9, 0x99, 0x15, 0x88, 0x90, 0x66, 0x99,
+ 0xf6, 0x93, 0x48, 0xa3, 0xa7, 0xbb, 0xb4, 0xbe,
+ 0x74, 0xee, 0x68, 0x03, 0xa1, 0xe3, 0xc0, 0x51,
+ 0x1c, 0xf9, 0x92, 0xa8, 0xa2, 0xa7, 0xdd, 0xfe,
+ 0xf7, 0x0a, 0x9b, 0x18, 0xa9, 0x82, 0x12, 0xa3,
+ 0x0f, 0xd6, 0x84, 0xba, 0x26, 0x08, 0xa4, 0xfe,
+ 0xef, 0x34, 0x05, 0x72, 0xf0, 0xab, 0x1b, 0xb8,
+ 0x44, 0xe0, 0x36, 0xcd, 0xf0, 0xd3, 0x9f, 0xfd,
+ 0x54, 0x05, 0x33, 0x38, 0xfe, 0xfd, 0xf3, 0xa7,
+ 0xf5, 0x39, 0xaa, 0x81, 0xf7, 0xce, 0x84, 0x56,
+ 0xaf, 0xb8, 0x7b, 0x8c, 0x75, 0x9e, 0x69, 0x44,
+ 0xa9, 0xc1, 0x08, 0x4a, 0x9f, 0x38, 0x1f, 0xde,
+ 0x0a, 0xb1, 0x79, 0x3f, 0xfd, 0xd7, 0xf9, 0x3e,
+ 0x04, 0xeb, 0x7b, 0xdd, 0xf3, 0xa7, 0xff, 0xce,
+ 0xc4, 0xb7, 0x1d, 0x4b, 0x9b, 0x2f, 0xec, 0x4e,
+ 0x9e, 0xdf, 0x18, 0xa3, 0xa1, 0x13, 0x02, 0x71,
+ 0xbf, 0xa9, 0xdc, 0xad, 0x3f, 0xea, 0x51, 0x07,
+ 0x49, 0x6e, 0x36, 0x74, 0xff, 0xbb, 0xeb, 0x57,
+ 0xc4, 0x77, 0xc1, 0xd1, 0xb3, 0xfc, 0x51, 0xf4,
+ 0xfd, 0xe3, 0xc6, 0x67, 0x4e, 0x9f, 0xfe, 0xcd,
+ 0x53, 0x16, 0xaa, 0x2e, 0xca, 0xd5, 0x0e, 0x9f,
+ 0xda, 0xbd, 0x0b, 0x75, 0x7a, 0x3d, 0x71, 0xd1,
+ 0xc2, 0x2f, 0xba, 0x57, 0xa5, 0x09, 0xff, 0xfd,
+ 0xdd, 0x65, 0x76, 0x9a, 0xd8, 0x11, 0xd6, 0x08,
+ 0x42, 0x54, 0xf7, 0x19, 0x97, 0xca, 0x9c, 0xee,
+ 0xdc, 0x68, 0x86, 0x67, 0x04, 0x21, 0x2a, 0x76,
+ 0x75, 0x8a, 0xb1, 0x79, 0x3f, 0xec, 0x7b, 0x38,
+ 0xf7, 0x75, 0x1e, 0x3a, 0x00, 0x7d, 0x1d, 0x29,
+ 0x84, 0x4d, 0x51, 0xe6, 0x17, 0xc8, 0xc6, 0x15,
+ 0xd3, 0xdb, 0xd6, 0xd0, 0xe9, 0xfd, 0x76, 0x08,
+ 0x01, 0xbe, 0x9d, 0x3f, 0xfe, 0x47, 0x6f, 0x8a,
+ 0xf3, 0xa6, 0x0b, 0x7f, 0xb1, 0xa2, 0x0c, 0x8a,
+ 0xa2, 0x53, 0x46, 0x73, 0xf9, 0x7f, 0x28, 0xbf,
+ 0x82, 0x87, 0x43, 0x93, 0x0e, 0xdc, 0x2d, 0x74,
+ 0x47, 0x3f, 0xfc, 0x9d, 0x7b, 0x92, 0xdb, 0xee,
+ 0x71, 0x9d, 0xbe, 0x74, 0xe4, 0x15, 0x8e, 0x84,
+ 0x5c, 0x5d, 0xc8, 0x70, 0x6e, 0x38, 0x5f, 0x8d,
+ 0x46, 0xe3, 0x65, 0xf5, 0x69, 0xfd, 0xad, 0xae,
+ 0xde, 0x9c, 0x85, 0x49, 0x47, 0x4f, 0xea, 0x67,
+ 0x6f, 0x8a, 0x5b, 0x67, 0x8b, 0xcc, 0xd6, 0x78,
+ 0x6e, 0x7d, 0xc7, 0x4f, 0xee, 0xbb, 0xb8, 0xa4,
+ 0x63, 0xa7, 0x2b, 0x8c, 0x3a, 0x10, 0xfc, 0x30,
+ 0x8f, 0xcc, 0x67, 0xfd, 0x76, 0xa9, 0xcc, 0x40,
+ 0xad, 0xd0, 0xe9, 0xff, 0x93, 0xbf, 0x54, 0x05,
+ 0x86, 0x94, 0x2a, 0x38, 0x44, 0x22, 0x90, 0xa7,
+ 0xd5, 0xde, 0xdf, 0xa1, 0xd0, 0x54, 0xfd, 0x4e,
+ 0x68, 0x28, 0xa2, 0xa0, 0xa8, 0x2a, 0x0a, 0x82,
+ 0xa1, 0xc7, 0xbf, 0xb0, 0xa0, 0x16, 0xdc, 0x14,
+ 0xbe, 0x15, 0x78, 0x15, 0x35, 0x70, 0xa9, 0xfb,
+ 0xff, 0x4b, 0x22, 0x8a, 0xe4, 0x5a, 0xc9, 0x7b,
+ 0x2a, 0x0a, 0x82, 0xa1, 0xc5, 0xa6, 0xc2, 0xa0,
+ 0xa8, 0x2a, 0x0a, 0x82, 0xa0, 0xa8, 0x2a, 0x1e,
+ 0x37, 0x9c, 0x05, 0x6c, 0x28, 0x01, 0x54, 0x0a,
+ 0x5c, 0x15, 0x05, 0x41, 0x50, 0xe2, 0xd2, 0x81,
+ 0x50, 0x54, 0x15, 0x05, 0x41, 0x50, 0xe3, 0x50,
+ 0x00, 0xad, 0x05, 0x5e, 0x05, 0x41, 0x50, 0x54,
+ 0x15, 0x05, 0x43, 0xc6, 0xa2, 0xf8, 0x50, 0x85,
+ 0x54, 0x2a, 0x57, 0xca, 0x82, 0xa0, 0xa8, 0x2a,
+ 0x0a, 0x8e, 0x0d, 0x43, 0xe1, 0x40, 0x0a, 0xb8,
+ 0x2a, 0x0a, 0x82, 0xa0, 0xa9, 0xf5, 0x50, 0x14,
+ 0xc2, 0xa0, 0xa8, 0x71, 0xe7, 0x30, 0x55, 0x42,
+ 0xbc, 0x28, 0x04, 0xd2, 0x62, 0xa0, 0xa8, 0x2a,
+ 0x0a, 0x82, 0xa1, 0xc6, 0xa1, 0xf0, 0xad, 0x85,
+ 0x2e, 0x0a, 0x82, 0xa0, 0xa8, 0x2a, 0x0a, 0x87,
+ 0x1a, 0x8e, 0x02, 0xaa, 0x15, 0xd0, 0xa9, 0x54,
+ 0xa8, 0x2a, 0x0a, 0x93, 0x8a, 0x82, 0x9f, 0x2c,
+ 0x20, 0xa8, 0x2a, 0x0a, 0x82, 0xa1, 0xe3, 0xe6,
+ 0x70, 0x55, 0xf1, 0xa6, 0x1a, 0x58, 0x28, 0x01,
+ 0x5a, 0x0a, 0x96, 0x15, 0x05, 0x41, 0x52, 0x71,
+ 0x50, 0x53, 0xe5, 0x84, 0x15, 0x05, 0x42, 0x1e,
+ 0x93, 0x82, 0xb6, 0x34, 0x23, 0x4a, 0x0a, 0x82,
+ 0xa0, 0xa8, 0x2a, 0x0a, 0x82, 0xa1, 0x0d, 0x93,
+ 0xe1, 0x42, 0x14, 0xa0, 0xae, 0x85, 0x41, 0x50,
+ 0x54, 0x15, 0x02, 0x5f, 0x50, 0x2b, 0x41, 0x50,
+ 0x54, 0x15, 0x05, 0x42, 0x8b, 0xee, 0x85, 0x68,
+ 0x2a, 0x4a, 0x2a, 0x0a, 0x82, 0xa0, 0x05, 0xa5,
+ 0xc1, 0x50, 0x54, 0x15, 0x05, 0x41, 0x50, 0x86,
+ 0xa1, 0x60, 0xaa, 0x85, 0x5c, 0x15, 0x08, 0xbf,
+ 0x5a, 0xf3, 0x93, 0x8f, 0x78, 0x29, 0xc5, 0xc6,
+ 0x6d, 0x7d, 0x23, 0x6c, 0xd7, 0xb3, 0xd5, 0x8e,
+ 0x86, 0x11, 0x8a, 0x47, 0xa9, 0xbf, 0xb3, 0x00,
+ 0xf3, 0xae, 0xd4, 0x66, 0xd3, 0x0d, 0xcf, 0x2b,
+ 0x99, 0x42, 0x94, 0xbe, 0x5b, 0xcc, 0x92, 0xf1,
+ 0x26, 0x7c, 0xee, 0xa6, 0x50, 0xab, 0x26, 0xaf,
+ 0x3b, 0x68, 0xa2, 0xa7, 0xb6, 0xde, 0x27, 0x4e,
+ 0xdf, 0x18, 0x74, 0xf3, 0xe9, 0xce, 0xcf, 0xa2,
+ 0x3c, 0x4e, 0x6a, 0x37, 0xa1, 0xf9, 0x80, 0x87,
+ 0x4f, 0xc3, 0xfd, 0xe6, 0x80, 0x3a, 0x6f, 0x13,
+ 0xa5, 0xb3, 0x98, 0xb4, 0x93, 0x1d, 0x25, 0x1d,
+ 0x3b, 0x17, 0xed, 0xb4, 0x49, 0x88, 0xad, 0x50,
+ 0x7c, 0x7b, 0x98, 0x7c, 0xff, 0xfa, 0xe4, 0xe5,
+ 0xe2, 0x3e, 0x04, 0xb0, 0x42, 0x13, 0xa1, 0xcc,
+ 0xd4, 0x9e, 0x21, 0x7b, 0xb8, 0x58, 0x2c, 0x49,
+ 0xf4, 0xa1, 0xbe, 0xc3, 0xab, 0x4b, 0xd3, 0xf9,
+ 0x3b, 0xaf, 0xed, 0xd8, 0x74, 0xfe, 0x17, 0x77,
+ 0x6e, 0xae, 0x1d, 0x3e, 0xc0, 0x66, 0x2c, 0x74,
+ 0xfd, 0x4c, 0x5d, 0xd4, 0x7c, 0xe9, 0x26, 0x22,
+ 0x1f, 0xa6, 0x5a, 0x26, 0x9e, 0xbb, 0xc5, 0xc7,
+ 0x4f, 0x25, 0xcb, 0xdd, 0x0a, 0x9f, 0x3a, 0xc1,
+ 0x08, 0x4e, 0x8e, 0x9e, 0x7d, 0xc4, 0xf1, 0xc2,
+ 0x24, 0xf1, 0xc2, 0x14, 0x9d, 0x18, 0x21, 0x73,
+ 0x74, 0x31, 0xe7, 0xe1, 0xb8, 0x19, 0xd6, 0x3a,
+ 0x7b, 0x8e, 0x11, 0x71, 0xd3, 0xff, 0xe4, 0xaa,
+ 0x29, 0x93, 0x58, 0x2d, 0xfe, 0xc6, 0x8b, 0xe2,
+ 0x7f, 0x07, 0xf5, 0x44, 0xc7, 0x8e, 0x9f, 0xff,
+ 0xb3, 0x5c, 0xdc, 0x8b, 0xb7, 0xd0, 0x0e, 0xd1,
+ 0x58, 0x54, 0xda, 0xc3, 0xa7, 0xc3, 0xb7, 0xbd,
+ 0x46, 0x98, 0x4e, 0x7b, 0x57, 0x27, 0x9a, 0x61,
+ 0x39, 0x80, 0x86, 0xa0, 0x4e, 0x7f, 0x77, 0xef,
+ 0xe9, 0x04, 0x06, 0xa0, 0x4e, 0x7f, 0x53, 0x2b,
+ 0xba, 0x5c, 0xf1, 0xa6, 0x13, 0x9b, 0x38, 0x34,
+ 0xc2, 0x73, 0x04, 0x27, 0x98, 0x4e, 0x31, 0x34,
+ 0xc7, 0xcd, 0x36, 0x5c, 0xa2, 0x2a, 0x20, 0x2e,
+ 0x42, 0x09, 0x1c, 0xb4, 0x59, 0x84, 0xec, 0x7c,
+ 0xf2, 0xdb, 0xe9, 0xfb, 0x06, 0x3c, 0x88, 0xa2,
+ 0xa8, 0x4d, 0x4a, 0x53, 0x8e, 0x15, 0xb1, 0x31,
+ 0x2d, 0x56, 0xf5, 0x2a, 0xda, 0x7d, 0xc6, 0x0e,
+ 0xef, 0x9d, 0x3e, 0xee, 0x73, 0xc5, 0x8e, 0x9f,
+ 0xc0, 0xe7, 0xd7, 0x2f, 0xfb, 0xc7, 0x47, 0x4f,
+ 0x8b, 0x45, 0x30, 0x8b, 0x90, 0x39, 0x2e, 0x3b,
+ 0x68, 0xdf, 0x08, 0xb9, 0xff, 0xca, 0xd5, 0x37,
+ 0xd7, 0xdd, 0xad, 0xd3, 0x67, 0x4f, 0xff, 0xee,
+ 0xe3, 0xf9, 0x4f, 0xed, 0x76, 0x9a, 0xad, 0xde,
+ 0xa3, 0xa7, 0x0d, 0x28, 0x78, 0x80, 0xe7, 0xff,
+ 0xed, 0xeb, 0x98, 0xa5, 0x53, 0x96, 0x0b, 0x7f,
+ 0xb1, 0xa2, 0x03, 0xb1, 0xa8, 0x9f, 0xff, 0xf7,
+ 0x7d, 0xd9, 0xd5, 0x9d, 0x8f, 0xbb, 0x9a, 0x02,
+ 0xc1, 0x08, 0x4a, 0x9f, 0xc9, 0x82, 0xdf, 0xec,
+ 0x68, 0x82, 0x67, 0xf9, 0x35, 0x82, 0xdf, 0xec,
+ 0x68, 0xbe, 0x67, 0xdb, 0x5d, 0xdc, 0xa7, 0x07,
+ 0xf4, 0xc7, 0x53, 0xfe, 0x7b, 0xdf, 0x5f, 0xcd,
+ 0x77, 0xd7, 0x1d, 0x38, 0x21, 0x09, 0x53, 0xf6,
+ 0xab, 0x8d, 0xe2, 0x55, 0x8b, 0xc8, 0x79, 0x13,
+ 0x3d, 0x60, 0x9f, 0xf9, 0xe5, 0x23, 0xf4, 0xee,
+ 0x3d, 0xcd, 0xc7, 0x4f, 0xff, 0x73, 0x7f, 0xbc,
+ 0x9a, 0xbb, 0x00, 0x10, 0x5c, 0x74, 0xe0, 0x84,
+ 0x25, 0x4f, 0xee, 0x60, 0x4e, 0xe3, 0xfa, 0x2a,
+ 0xc5, 0xe4, 0xff, 0xfc, 0xbd, 0xf2, 0x6a, 0xef,
+ 0x8e, 0x30, 0x3c, 0xb5, 0x4c, 0x78, 0xe9, 0x7d,
+ 0x51, 0x57, 0x72, 0x24, 0x39, 0x54, 0x5e, 0xe1,
+ 0xb4, 0x24, 0x8a, 0x49, 0xd4, 0x63, 0x73, 0xfe,
+ 0xcd, 0x20, 0xd2, 0xa9, 0xdd, 0x1e, 0x20, 0x89,
+ 0xfc, 0x98, 0x2d, 0xfe, 0xc6, 0x88, 0x22, 0xc7,
+ 0x93, 0x3f, 0xbb, 0xf5, 0x11, 0xd8, 0x4e, 0x80,
+ 0x1f, 0xe7, 0x52, 0xe7, 0xf9, 0x3b, 0xae, 0x79,
+ 0x5f, 0x7c, 0xe9, 0xff, 0xef, 0x0e, 0xb2, 0xa9,
+ 0xbd, 0x77, 0x2b, 0xb3, 0xa1, 0xc8, 0x88, 0xe9,
+ 0xd4, 0xfe, 0xd7, 0x35, 0x50, 0x3e, 0xf9, 0xd3,
+ 0xdb, 0x5b, 0x61, 0x3a, 0x7f, 0xfd, 0x73, 0xdd,
+ 0x4c, 0xad, 0x93, 0x59, 0x5b, 0x84, 0xe9, 0xf6,
+ 0x6a, 0x9c, 0xe9, 0xc1, 0xfc, 0xf3, 0x23, 0x9f,
+ 0x9a, 0xbb, 0x5f, 0xdd, 0xf3, 0xa7, 0xe5, 0x25,
+ 0xee, 0xb8, 0xf1, 0xd1, 0xc1, 0xf1, 0xec, 0xca,
+ 0x70, 0xf3, 0xa1, 0xd3, 0xfe, 0xfe, 0xb6, 0x0b,
+ 0x7f, 0xb1, 0xa2, 0x11, 0x84, 0x3e, 0x2b, 0x87,
+ 0x67, 0xff, 0x26, 0x3f, 0xcf, 0x5b, 0xed, 0xce,
+ 0xca, 0x1d, 0x3f, 0xfd, 0xfe, 0xf7, 0x3c, 0xaf,
+ 0xaa, 0xc1, 0x08, 0x4e, 0x96, 0x70, 0x89, 0xe5,
+ 0x93, 0x67, 0x04, 0x21, 0x2a, 0x7f, 0xb0, 0x1e,
+ 0x38, 0xbb, 0x38, 0x2a, 0xc5, 0xe4, 0xc1, 0x09,
+ 0x53, 0x82, 0x10, 0x95, 0x3f, 0x7b, 0xdc, 0x55,
+ 0x28, 0x55, 0x8b, 0xc8, 0xea, 0x2d, 0x82, 0x8e,
+ 0xbe, 0x65, 0x3e, 0x6d, 0xf1, 0xcd, 0x45, 0x58,
+ 0xd9, 0xce, 0x08, 0x42, 0x54, 0xea, 0x20, 0x95,
+ 0x62, 0xf2, 0x40, 0xd9, 0xff, 0xe9, 0x5a, 0x7e,
+ 0xe3, 0xa8, 0xef, 0x63, 0xa7, 0xf7, 0x31, 0xe3,
+ 0x6b, 0x93, 0x83, 0xa7, 0xf6, 0xab, 0x8b, 0xb3,
+ 0x54, 0x3a, 0x05, 0x13, 0x15, 0x2c, 0xe9, 0xc4,
+ 0x22, 0x3b, 0xf2, 0x18, 0x13, 0x9f, 0xbd, 0x3d,
+ 0xe8, 0x3a, 0x7f, 0xf6, 0x5e, 0xff, 0xa0, 0xc6,
+ 0x4a, 0xa2, 0x8e, 0x9f, 0x9b, 0x74, 0xae, 0xd6,
+ 0x2a, 0x7f, 0xb9, 0x77, 0x1f, 0x75, 0x37, 0x7c,
+ 0xe9, 0xe4, 0xf5, 0x2e, 0x2a, 0x70, 0x42, 0x12,
+ 0xa7, 0xff, 0xb9, 0xa0, 0x33, 0x3b, 0xaa, 0xed,
+ 0x3a, 0xf1, 0x56, 0x2f, 0x25, 0x8c, 0x89, 0xe5,
+ 0x1f, 0x42, 0x27, 0x4c, 0xe2, 0xb7, 0xd2, 0xb6,
+ 0x5d, 0x58, 0x6e, 0x4f, 0xff, 0x95, 0x8c, 0x9d,
+ 0xfd, 0x53, 0x8b, 0xbc, 0x5c, 0x74, 0xf9, 0x35,
+ 0x45, 0xd8, 0x74, 0x21, 0xfe, 0x69, 0x52, 0x7f,
+ 0xfb, 0x6b, 0xb3, 0xbc, 0x77, 0xc3, 0x9d, 0xfb,
+ 0xe7, 0x4f, 0xff, 0xf7, 0x15, 0xd8, 0x72, 0xf3,
+ 0x6a, 0xfd, 0x52, 0xe7, 0x63, 0xfa, 0x3a, 0x31,
+ 0x18, 0x1e, 0xa7, 0x08, 0xcf, 0x7b, 0x79, 0x35,
+ 0xd0, 0x89, 0xe1, 0xdb, 0x25, 0xba, 0xee, 0x31,
+ 0xb5, 0xa1, 0x54, 0x24, 0x6a, 0x85, 0x7d, 0x61,
+ 0x4e, 0x08, 0x42, 0xf6, 0x18, 0x14, 0x95, 0x3b,
+ 0xa8, 0xf3, 0x2e, 0x86, 0x60, 0x61, 0xc3, 0x39,
+ 0x72, 0x74, 0xe9, 0xff, 0xec, 0xed, 0xb5, 0x7f,
+ 0x6f, 0xd2, 0xb8, 0x0f, 0x3a, 0x4f, 0xb8, 0xfb,
+ 0xf8, 0x1d, 0x9f, 0xaa, 0xb6, 0xeb, 0xb5, 0x1d,
+ 0x3f, 0xee, 0xa6, 0xab, 0xe0, 0xf7, 0xe8, 0x74,
+ 0xff, 0xd4, 0xfd, 0x8e, 0x3f, 0x60, 0x84, 0x27,
+ 0x4f, 0xff, 0x75, 0x1d, 0xcb, 0x9e, 0xb7, 0xdb,
+ 0x9d, 0x94, 0x3a, 0x31, 0x30, 0x66, 0x2f, 0xa9,
+ 0xf0, 0x11, 0x27, 0xf2, 0x75, 0xdd, 0xcc, 0x01,
+ 0xd3, 0xf9, 0xd8, 0x34, 0xea, 0x3c, 0x74, 0xff,
+ 0xf2, 0x2e, 0x41, 0xb7, 0x3d, 0x77, 0x1e, 0xd8,
+ 0x9e, 0xef, 0x79, 0xff, 0xec, 0xd2, 0x75, 0xb3,
+ 0x55, 0xd8, 0x81, 0x8e, 0x9f, 0x7d, 0x33, 0xba,
+ 0x3a, 0x76, 0xbe, 0xf6, 0x74, 0xfe, 0xd5, 0x77,
+ 0x60, 0x7e, 0xce, 0x87, 0x93, 0x23, 0xe1, 0x7f,
+ 0xa9, 0x9a, 0x26, 0xb8, 0x7e, 0x7f, 0xfe, 0xee,
+ 0x52, 0xee, 0x59, 0x5f, 0xee, 0x2c, 0xe4, 0x7c,
+ 0xe9, 0xff, 0x65, 0x2e, 0xc1, 0x6f, 0xf6, 0x34,
+ 0x40, 0xd3, 0xec, 0xd5, 0x7d, 0xdc, 0x91, 0x4b,
+ 0xd5, 0xe9, 0xff, 0xff, 0xfb, 0x35, 0x5f, 0xed,
+ 0xfe, 0x54, 0x1f, 0xfd, 0x2e, 0xce, 0x39, 0x62,
+ 0xbf, 0xaf, 0xb8, 0xf1, 0x05, 0xcf, 0xfb, 0xfe,
+ 0xfb, 0x7f, 0x1c, 0xaf, 0x84, 0xf1, 0x05, 0xcf,
+ 0xfd, 0x5d, 0xd7, 0x69, 0xdd, 0x72, 0xbe, 0x13,
+ 0xc4, 0x17, 0x3f, 0x93, 0x7d, 0xd7, 0x2b, 0xe1,
+ 0x3c, 0x41, 0x73, 0xf2, 0xb3, 0x8e, 0x57, 0xc2,
+ 0x78, 0x82, 0xe7, 0xff, 0xfb, 0xfb, 0xdd, 0xab,
+ 0x95, 0x1a, 0xbb, 0x1d, 0xdf, 0x7b, 0x02, 0x78,
+ 0x82, 0xe6, 0x7f, 0x97, 0x09, 0xd0, 0xb2, 0x80,
+ 0xab, 0x7a, 0x27, 0x4f, 0xe2, 0xaa, 0xa5, 0xbb,
+ 0x28, 0xfa, 0x7b, 0xc4, 0x1e, 0x74, 0xff, 0xd5,
+ 0xdd, 0x76, 0x9d, 0xd7, 0x2b, 0xe1, 0x3c, 0x41,
+ 0x73, 0xfc, 0xb5, 0x1b, 0x6f, 0x72, 0xbe, 0x13,
+ 0xc4, 0x17, 0x3e, 0xd5, 0x11, 0x5c, 0x99, 0x14,
+ 0x5c, 0xd5, 0xa7, 0xff, 0x72, 0x6a, 0xed, 0x93,
+ 0x54, 0xe5, 0x7c, 0x27, 0x88, 0x2e, 0x7f, 0xff,
+ 0xee, 0xf7, 0x6a, 0xe5, 0x76, 0x72, 0xa3, 0x57,
+ 0x63, 0xbb, 0xef, 0x60, 0x4f, 0x10, 0x5c, 0x62,
+ 0x64, 0xcf, 0xa1, 0xfa, 0xe4, 0xff, 0x57, 0x63,
+ 0xbb, 0xef, 0x60, 0x4f, 0x10, 0x5c, 0xff, 0xf7,
+ 0xfb, 0xee, 0xa5, 0x77, 0xc7, 0x08, 0x28, 0x54,
+ 0xff, 0xb1, 0xce, 0xba, 0x83, 0xd7, 0x97, 0xcf,
+ 0x10, 0x5c, 0x32, 0x3a, 0x05, 0x22, 0x8a, 0x13,
+ 0xfe, 0x6d, 0x8e, 0xbc, 0x14, 0xe4, 0x13, 0xc4,
+ 0x17, 0x3f, 0x57, 0x75, 0xae, 0xc0, 0x68, 0x02,
+ 0xe7, 0xd8, 0x0e, 0x57, 0xc2, 0x78, 0x82, 0xe6,
+ 0xcd, 0x31, 0xf9, 0xd4, 0xee, 0x1f, 0x47, 0x5d,
+ 0x21, 0x7f, 0x3f, 0x2b, 0x38, 0xe5, 0x7c, 0x27,
+ 0x88, 0x2e, 0x7f, 0xcd, 0x5d, 0x8e, 0xef, 0xbd,
+ 0x81, 0x3c, 0x41, 0x73, 0x67, 0x2f, 0x44, 0x65,
+ 0x0f, 0xe7, 0xf5, 0xdb, 0x57, 0xf5, 0xf7, 0x1e,
+ 0x20, 0xb9, 0xff, 0x66, 0xd7, 0x67, 0x73, 0x8f,
+ 0x71, 0xe2, 0x0b, 0x51, 0xe1, 0x47, 0x0b, 0xb8,
+ 0xe0, 0x2c, 0xec, 0x7c, 0xf4, 0x8c, 0x63, 0x51,
+ 0x8c, 0xdd, 0x0b, 0x50, 0xb8, 0xcf, 0x81, 0x40,
+ 0x01, 0x0d, 0x10, 0x5d, 0x91, 0x01, 0x3f, 0xec,
+ 0x75, 0x7d, 0xd7, 0x97, 0x97, 0x3c, 0x74, 0xfe,
+ 0x1e, 0xe7, 0x15, 0xb8, 0x27, 0x4f, 0x9f, 0xd7,
+ 0x88, 0x0e, 0x9f, 0xb1, 0xef, 0xaa, 0x5e, 0xce,
+ 0x8d, 0xa2, 0x2f, 0xcd, 0x3a, 0x4f, 0x3b, 0xc5,
+ 0xe3, 0xa6, 0x02, 0x1d, 0x3d, 0xb4, 0x56, 0x1d,
+ 0x07, 0x4f, 0xdf, 0x7f, 0x48, 0x20, 0x3a, 0x38,
+ 0x36, 0xfd, 0x0a, 0x9f, 0xff, 0xc9, 0xbe, 0x3a,
+ 0x97, 0x36, 0xb1, 0xb8, 0x46, 0xe6, 0xa3, 0xa6,
+ 0x02, 0x1d, 0x32, 0x5f, 0x3a, 0x7f, 0xb3, 0x54,
+ 0x45, 0x73, 0xc5, 0x8e, 0x9f, 0xd4, 0xca, 0xee,
+ 0x97, 0x3c, 0x74, 0xc1, 0x09, 0x53, 0xfd, 0xdc,
+ 0x5d, 0xee, 0xa6, 0xf8, 0x3a, 0x19, 0x3f, 0x7d,
+ 0x8d, 0x88, 0xaa, 0x95, 0xea, 0x44, 0x06, 0x25,
+ 0xec, 0x57, 0xa2, 0xf4, 0x3a, 0x09, 0xaf, 0x31,
+ 0x69, 0xc1, 0x08, 0x4a, 0x92, 0x8a, 0xb1, 0x79,
+ 0x3e, 0xf5, 0xbf, 0xc4, 0xab, 0x23, 0x67, 0x9c,
+ 0x2e, 0xa7, 0xf3, 0xfa, 0x4c, 0xae, 0x3c, 0x74,
+ 0x23, 0x63, 0x2f, 0x91, 0x98, 0x5f, 0x3c, 0x7c,
+ 0xc7, 0x71, 0xaa, 0xd6, 0x1e, 0x7f, 0x49, 0x1e,
+ 0xea, 0x35, 0x21, 0xa3, 0x74, 0xaf, 0xf5, 0xc9,
+ 0x73, 0xd8, 0xc9, 0xa3, 0xa7, 0xb1, 0x59, 0xa3,
+ 0xa7, 0xbd, 0xee, 0x6e, 0x3a, 0x10, 0xf8, 0xdf,
+ 0x1f, 0xbc, 0x20, 0x9f, 0xbb, 0x77, 0x0a, 0xf7,
+ 0x1d, 0x3f, 0xfc, 0xfb, 0xba, 0x9c, 0x95, 0xd4,
+ 0xbf, 0xad, 0xbc, 0x74, 0x22, 0x21, 0x76, 0x5f,
+ 0x3d, 0xcb, 0xf9, 0x73, 0x3a, 0x7e, 0x79, 0x67,
+ 0x2f, 0x05, 0xe3, 0xa6, 0x73, 0xc7, 0x4f, 0xab,
+ 0x9b, 0x75, 0x0e, 0x9f, 0xfe, 0xaa, 0x73, 0xb6,
+ 0xbb, 0xe0, 0xa5, 0x10, 0x05, 0x4f, 0xe0, 0x60,
+ 0xb7, 0xfb, 0x1e, 0x20, 0x48, 0x72, 0x2c, 0xf8,
+ 0x27, 0x15, 0x19, 0xed, 0x3d, 0xfd, 0x3a, 0x79,
+ 0xfa, 0x7e, 0x8e, 0x8c, 0x3c, 0x4a, 0x91, 0x4f,
+ 0xee, 0xf8, 0x69, 0x44, 0x01, 0xd3, 0x82, 0x10,
+ 0x9f, 0x0f, 0xa9, 0xdf, 0xde, 0x0b, 0x87, 0xd5,
+ 0x8d, 0x4c, 0x70, 0x89, 0x40, 0x2d, 0xcf, 0xff,
+ 0xb3, 0xbb, 0xbf, 0x6a, 0x6a, 0xb7, 0x7b, 0x9c,
+ 0x87, 0x43, 0xc7, 0xf9, 0x7c, 0x92, 0x17, 0xaa,
+ 0xac, 0x87, 0x1a, 0x64, 0x32, 0xb6, 0xe9, 0xf1,
+ 0x98, 0xcf, 0xb7, 0xa4, 0xd5, 0x0a, 0x9e, 0x64,
+ 0xd5, 0x0a, 0x98, 0x21, 0x2a, 0x1c, 0x7b, 0xb8,
+ 0x4e, 0x12, 0x09, 0xb0, 0x25, 0x58, 0xd7, 0x4f,
+ 0xff, 0xb3, 0x48, 0xd9, 0x9d, 0xd5, 0x76, 0x9d,
+ 0x78, 0xe8, 0x01, 0xfc, 0x04, 0x96, 0x7f, 0xff,
+ 0x22, 0xed, 0xf4, 0x1c, 0xb5, 0x4c, 0x6a, 0xff,
+ 0x75, 0x43, 0xa7, 0xf2, 0xcf, 0xba, 0xb7, 0x20,
+ 0x9d, 0x39, 0xde, 0x27, 0x4f, 0x9d, 0x9a, 0xce,
+ 0x0a, 0x96, 0xd6, 0x3c, 0x1d, 0x0d, 0x4c, 0x04,
+ 0x3a, 0x60, 0x21, 0xd3, 0xf7, 0x6e, 0x76, 0x76,
+ 0xdb, 0x35, 0x40, 0x15, 0x9f, 0xfb, 0x55, 0xc5,
+ 0x73, 0x40, 0x63, 0xfa, 0x3a, 0x7f, 0x3e, 0xdb,
+ 0x1e, 0x69, 0xc1, 0xd3, 0xc0, 0x57, 0xba, 0x87,
+ 0xf7, 0xa4, 0x69, 0xcb, 0xf8, 0xf9, 0xd0, 0x87,
+ 0xb1, 0xe7, 0x33, 0x82, 0x10, 0x95, 0x3f, 0x26,
+ 0x5f, 0xed, 0xd4, 0x2a, 0xc5, 0xe4, 0xf0, 0x7f,
+ 0xae, 0x3a, 0x66, 0xa9, 0xd3, 0x82, 0x10, 0x95,
+ 0x3f, 0x6f, 0xef, 0xd7, 0x7a, 0x2a, 0xc5, 0xe4,
+ 0xfb, 0x01, 0x98, 0xb1, 0xd2, 0xa7, 0x24, 0x4a,
+ 0x89, 0x8f, 0x4f, 0xa7, 0xb7, 0xdb, 0x9d, 0xc2,
+ 0x3b, 0x72, 0x16, 0xd0, 0x8b, 0x81, 0xee, 0x22,
+ 0xc6, 0x4b, 0xee, 0xc2, 0xa7, 0x58, 0xc6, 0x28,
+ 0x79, 0xa8, 0xca, 0xe7, 0xe4, 0x50, 0x8f, 0xe8,
+ 0xe9, 0xff, 0xed, 0xa9, 0xf7, 0x53, 0x96, 0x77,
+ 0xb9, 0xb0, 0x1d, 0x15, 0x3f, 0xdd, 0x15, 0x4a,
+ 0xcb, 0xd1, 0xfc, 0x8a, 0x12, 0x50, 0x9b, 0xd1,
+ 0x88, 0xba, 0x50, 0x67, 0x12, 0x96, 0x32, 0xb4,
+ 0xf4, 0xbf, 0x19, 0xab, 0x47, 0x4a, 0xfc, 0xa2,
+ 0x3d, 0xc2, 0x71, 0x68, 0xf3, 0x86, 0x71, 0xf1,
+ 0x51, 0xb9, 0x56, 0x74, 0x5b, 0xe9, 0xbf, 0x40,
+ 0x94, 0x49, 0xd9, 0xcb, 0xda, 0x53, 0xf1, 0x35,
+ 0x59, 0x93, 0x5d, 0x19, 0x4a, 0xe8, 0x5b, 0x84,
+ 0x89, 0x7e, 0x57, 0x7f, 0x39, 0xd6, 0xdb, 0xc8,
+ 0x7e, 0x45, 0x9f, 0xd2, 0x11, 0xd7, 0xe4, 0xe9,
+ 0x3f, 0xad, 0x82, 0xdf, 0xec, 0x68, 0xb8, 0xe7,
+ 0xf5, 0xb0, 0x5b, 0xfd, 0x8d, 0x17, 0x5c, 0xff,
+ 0xd6, 0xf7, 0x5b, 0x05, 0xbf, 0xd8, 0xd1, 0x28,
+ 0xc2, 0x3f, 0xbe, 0xbb, 0x8a, 0x38, 0x3b, 0xbe,
+ 0x76, 0xc7, 0x7b, 0x87, 0x85, 0xed, 0x03, 0xef,
+ 0xd3, 0x5a, 0x86, 0xda, 0x3b, 0xbc, 0x3b, 0x9f,
+ 0xfd, 0x65, 0x7b, 0xad, 0x82, 0xdf, 0xec, 0x68,
+ 0x96, 0xa7, 0xc2, 0xdf, 0xec, 0x68, 0x8d, 0xe7,
+ 0xfd, 0xee, 0xb6, 0x0b, 0x7f, 0xb1, 0xa2, 0x5f,
+ 0x95, 0xb0, 0xfd, 0x94, 0x61, 0x3f, 0xad, 0x82,
+ 0xdf, 0xec, 0x68, 0xaa, 0xe7, 0xfa, 0xfe, 0x77,
+ 0x1f, 0xd7, 0xa8, 0xe9, 0xb8, 0xd9, 0xd3, 0xf6,
+ 0x0b, 0x7f, 0xb1, 0xa2, 0x40, 0x8e, 0x47, 0x99,
+ 0x61, 0x79, 0xf5, 0x3f, 0xbe, 0xf9, 0xd0, 0xe3,
+ 0xcb, 0x7c, 0x92, 0x2f, 0xa3, 0xd3, 0xe1, 0xa3,
+ 0x3f, 0xf7, 0x71, 0xeb, 0x2f, 0xa7, 0x7b, 0x9a,
+ 0x3a, 0x2c, 0x7e, 0x02, 0x53, 0x3f, 0xad, 0x82,
+ 0xdf, 0xec, 0x68, 0xb2, 0x27, 0xf5, 0xb0, 0x5b,
+ 0xfd, 0x8d, 0x16, 0xbc, 0xfe, 0xb6, 0x0b, 0x7f,
+ 0xb1, 0xa2, 0xe4, 0x9f, 0x0b, 0x7f, 0xb1, 0xa2,
+ 0xec, 0x9f, 0xf7, 0xba, 0xd8, 0x2d, 0xfe, 0xc6,
+ 0x8a, 0x3a, 0x56, 0xc3, 0xf6, 0x51, 0x84, 0xf8,
+ 0x5b, 0xfd, 0x8d, 0x14, 0xac, 0xff, 0xff, 0xf5,
+ 0x51, 0xe4, 0xae, 0xd7, 0x7f, 0x15, 0xdd, 0x9a,
+ 0xbb, 0x5a, 0xa8, 0xf6, 0x1d, 0x3e, 0xb2, 0xbd,
+ 0xd6, 0xc4, 0x59, 0x2c, 0x61, 0x0f, 0x2e, 0x77,
+ 0xba, 0x19, 0x0f, 0x93, 0xee, 0x39, 0xf5, 0x10,
+ 0x80, 0xee, 0x87, 0x7a, 0x85, 0x8a, 0xe8, 0x6c,
+ 0xcf, 0xf3, 0xad, 0x82, 0xdf, 0xec, 0x68, 0x8e,
+ 0x27, 0xfb, 0x76, 0xc1, 0x6f, 0xf6, 0x34, 0x56,
+ 0xb2, 0xb7, 0xa2, 0x0b, 0x48, 0x33, 0xff, 0xac,
+ 0xaf, 0x75, 0xb0, 0x5b, 0xfd, 0x8d, 0x12, 0xdc,
+ 0xd8, 0xf9, 0xd3, 0xfb, 0x8c, 0x52, 0x93, 0x74,
+ 0x3a, 0x1f, 0x3c, 0x9d, 0x8b, 0x4e, 0xaf, 0x0e,
+ 0x3a, 0x73, 0x94, 0xc7, 0x41, 0xa2, 0x1b, 0x9f,
+ 0xf7, 0xba, 0xd8, 0x2d, 0xfe, 0xc6, 0x89, 0x82,
+ 0x70, 0xdc, 0x02, 0xa5, 0x64, 0x46, 0xa3, 0xc4,
+ 0x7c, 0x0e, 0xb0, 0xda, 0x85, 0xf4, 0x8d, 0x39,
+ 0x57, 0x09, 0x53, 0xfe, 0xf7, 0x5b, 0x05, 0xbf,
+ 0xd8, 0xd1, 0x31, 0xca, 0xdb, 0x3e, 0x25, 0x0e,
+ 0x4f, 0xc9, 0x4e, 0x5a, 0xca, 0x9d, 0x3f, 0xff,
+ 0xfc, 0xea, 0x57, 0x2e, 0x0d, 0x2b, 0x8d, 0x94,
+ 0xe5, 0x8f, 0xba, 0x9b, 0xee, 0xce, 0x9e, 0x6f,
+ 0xf6, 0x34, 0x56, 0x33, 0xfe, 0x5f, 0xcd, 0x77,
+ 0x2e, 0x4e, 0xe8, 0xe8, 0xbe, 0x98, 0xdb, 0xe5,
+ 0xc3, 0x08, 0x1d, 0x15, 0xcf, 0xfe, 0x4e, 0xea,
+ 0xfd, 0xc9, 0xdc, 0x64, 0x13, 0xa7, 0xfd, 0x9c,
+ 0x57, 0x28, 0xfb, 0x92, 0xa7, 0x4f, 0xff, 0xfd,
+ 0xdb, 0x9e, 0xc6, 0xe5, 0xdb, 0xaf, 0x39, 0x63,
+ 0xee, 0xcb, 0xba, 0x0a, 0x1d, 0x3f, 0x97, 0xab,
+ 0xcb, 0x39, 0x78, 0x2f, 0x1d, 0x3a, 0xbb, 0xb6,
+ 0x27, 0x16, 0xc8, 0xb5, 0x49, 0xd1, 0xfa, 0xfb,
+ 0xf4, 0xd7, 0x2c, 0x74, 0xfb, 0xfa, 0xf5, 0xd4,
+ 0x3a, 0x3a, 0x78, 0x34, 0x18, 0x9f, 0x06, 0x94,
+ 0x40, 0x1d, 0x3e, 0x47, 0x02, 0xe7, 0x1d, 0x39,
+ 0x3a, 0xe3, 0xa1, 0x63, 0xc3, 0xd1, 0x44, 0xfc,
+ 0x8a, 0xce, 0xee, 0xf9, 0xd2, 0xa1, 0xd1, 0xb3,
+ 0x7d, 0xe5, 0xd3, 0x01, 0x0a, 0x98, 0x21, 0x2a,
+ 0x36, 0x6a, 0xc2, 0x2b, 0x3f, 0xbd, 0xdd, 0xcd,
+ 0x57, 0x65, 0x58, 0xd0, 0xcf, 0x71, 0xef, 0xd0,
+ 0xe9, 0xc9, 0xd5, 0x8e, 0x9b, 0xa8, 0x74, 0x2c,
+ 0x6c, 0x44, 0x72, 0x78, 0x41, 0x97, 0x87, 0x4e,
+ 0xe6, 0x37, 0xce, 0x84, 0x45, 0xbe, 0x2a, 0x6c,
+ 0x86, 0xa4, 0x73, 0x57, 0x47, 0x4e, 0x08, 0x42,
+ 0x54, 0xff, 0xd8, 0xdc, 0x23, 0xdc, 0xf2, 0xbe,
+ 0xf9, 0x56, 0x2f, 0x27, 0xeb, 0x95, 0xbd, 0x03,
+ 0xce, 0x9f, 0xcd, 0xba, 0x77, 0x17, 0x79, 0xd3,
+ 0x66, 0x8e, 0x87, 0xcf, 0x22, 0xa6, 0x73, 0xff,
+ 0xda, 0xdd, 0x2b, 0x9c, 0x77, 0x17, 0x77, 0x28,
+ 0x74, 0xac, 0x8a, 0xff, 0xf8, 0x22, 0xc6, 0xa1,
+ 0x61, 0x53, 0x65, 0x61, 0xf3, 0xe7, 0x7d, 0x32,
+ 0xa2, 0xae, 0x9d, 0xb9, 0x91, 0xcf, 0x85, 0xbf,
+ 0xd8, 0xd1, 0x5b, 0xcf, 0xfb, 0xdd, 0x6c, 0x16,
+ 0xff, 0x63, 0x44, 0xe1, 0x2b, 0x61, 0xfb, 0x28,
+ 0xc2, 0x7c, 0x2d, 0xfe, 0xc6, 0x8b, 0x46, 0x7b,
+ 0x16, 0xdd, 0xf3, 0xa5, 0x6c, 0x3d, 0x4a, 0x98,
+ 0x4f, 0x37, 0xfb, 0x1a, 0x2d, 0xa9, 0xfa, 0xa8,
+ 0xa4, 0xdf, 0x07, 0x4d, 0x6c, 0x13, 0xd8, 0xd1,
+ 0x5c, 0xfe, 0xb6, 0x0b, 0x7f, 0xb1, 0xa2, 0xe5,
+ 0x9f, 0xd6, 0xc1, 0x6f, 0xf6, 0x34, 0x5d, 0xb0,
+ 0x8c, 0xc7, 0x87, 0x8a, 0x1d, 0x1b, 0x7f, 0x10,
+ 0xbf, 0xbf, 0x2b, 0x3b, 0x73, 0x93, 0xd7, 0xb8,
+ 0xc6, 0xaa, 0xf7, 0xd7, 0xfa, 0x16, 0x68, 0xee,
+ 0x7f, 0x5b, 0x05, 0xbf, 0xd8, 0xd1, 0x53, 0xcf,
+ 0x37, 0xfb, 0x1a, 0x2b, 0x99, 0xfd, 0x6c, 0x16,
+ 0xff, 0x63, 0x45, 0x9d, 0x02, 0x7c, 0xd5, 0x2b,
+ 0x9f, 0xe7, 0x5b, 0x05, 0xbf, 0xd8, 0xd1, 0x21,
+ 0x4f, 0x2f, 0x4a, 0xa2, 0x8e, 0x9f, 0xd9, 0x5a,
+ 0x53, 0x05, 0xe3, 0xa5, 0x6c, 0x45, 0xdf, 0x90,
+ 0xd1, 0x07, 0x44, 0xf3, 0xff, 0xac, 0xaf, 0x75,
+ 0xb0, 0x5b, 0xfd, 0x8d, 0x13, 0xe4, 0x32, 0x7d,
+ 0xf7, 0xb8, 0xd7, 0x2a, 0x83, 0x3e, 0x16, 0xff,
+ 0x63, 0x45, 0x65, 0x3f, 0xef, 0x75, 0xb0, 0x5b,
+ 0xfd, 0x8d, 0x13, 0x74, 0xdb, 0xb6, 0x1f, 0xb2,
+ 0x8c, 0x27, 0xff, 0x59, 0x5e, 0xeb, 0x60, 0xb7,
+ 0xfb, 0x1a, 0x25, 0x69, 0xf0, 0xb7, 0xfb, 0x1a,
+ 0x25, 0xc9, 0xe5, 0xdb, 0xea, 0x1d, 0x3e, 0xb2,
+ 0xbd, 0xd6, 0xc3, 0xd3, 0xf3, 0x09, 0xff, 0xad,
+ 0xee, 0xb6, 0x0b, 0x7f, 0xb1, 0xa2, 0x3b, 0x9f,
+ 0xed, 0x57, 0x1d, 0x6f, 0xed, 0x0e, 0x9f, 0x97,
+ 0x9d, 0x46, 0xce, 0x9d, 0x3f, 0x5e, 0xbd, 0xca,
+ 0xfe, 0x8e, 0x9f, 0x0b, 0x7f, 0xb1, 0xa2, 0xa1,
+ 0x9f, 0x65, 0x75, 0x8f, 0x1d, 0x2b, 0x5e, 0xa8,
+ 0xb7, 0x5e, 0x17, 0xe1, 0x8e, 0x8c, 0x27, 0xc2,
+ 0xdf, 0xec, 0x68, 0xaa, 0x27, 0xfd, 0xee, 0xb6,
+ 0x0b, 0x7f, 0xb1, 0xa2, 0x6b, 0x95, 0xb0, 0xfd,
+ 0x94, 0x61, 0x3f, 0xad, 0x82, 0xdf, 0xec, 0x68,
+ 0xab, 0x27, 0xfe, 0xb7, 0xba, 0xd8, 0x2d, 0xfe,
+ 0xc6, 0x89, 0x12, 0x7c, 0x2d, 0xfe, 0xc6, 0x8b,
+ 0x4a, 0x7f, 0xde, 0xeb, 0x60, 0xb7, 0xfb, 0x1a,
+ 0x27, 0xd9, 0x5b, 0x0f, 0xd9, 0x46, 0x13, 0xff,
+ 0xac, 0xaf, 0x75, 0xb0, 0x5b, 0xfd, 0x8d, 0x14,
+ 0x24, 0xfa, 0xbb, 0x79, 0x04, 0xe9, 0xf0, 0xb7,
+ 0xfb, 0x1a, 0x28, 0xf9, 0xff, 0xfb, 0x38, 0xaa,
+ 0x73, 0xb6, 0xbb, 0xe0, 0xa5, 0x10, 0x05, 0x4f,
+ 0xac, 0xaf, 0x75, 0x91, 0x16, 0x98, 0x4e, 0xbe,
+ 0x61, 0x08, 0xba, 0xfa, 0xf4, 0x29, 0x5c, 0x7b,
+ 0x89, 0x97, 0xe1, 0xde, 0xd0, 0xc1, 0x7c, 0x9d,
+ 0x63, 0xba, 0xc3, 0x08, 0x04, 0xfa, 0x8c, 0x1a,
+ 0x7f, 0x5b, 0x05, 0xbf, 0xd8, 0xd1, 0x11, 0x4f,
+ 0xd8, 0x2d, 0xfe, 0xc6, 0x88, 0xae, 0x7f, 0xaf,
+ 0x76, 0xc1, 0x6f, 0xf6, 0x34, 0x57, 0x11, 0x63,
+ 0xfa, 0xf3, 0x59, 0xec, 0xaf, 0xe8, 0xe9, 0xfd,
+ 0x9b, 0x10, 0x02, 0xea, 0x1d, 0x2b, 0xd7, 0xa7,
+ 0xa7, 0x42, 0x09, 0xff, 0xbf, 0x6e, 0xdf, 0x75,
+ 0x75, 0x47, 0x0e, 0x9f, 0x66, 0xf8, 0x1c, 0x3a,
+ 0x76, 0xa9, 0xba, 0x9f, 0x56, 0x91, 0x27, 0xc2,
+ 0xdf, 0xec, 0x68, 0xa7, 0xa1, 0x78, 0x8f, 0xb4,
+ 0x84, 0xbe, 0x1a, 0x4f, 0xfe, 0xf7, 0x5b, 0x8e,
+ 0xf8, 0x69, 0x44, 0x01, 0xd1, 0x64, 0x40, 0xf0,
+ 0x6f, 0x3a, 0xdc, 0x61, 0xd3, 0xe4, 0x70, 0x2e,
+ 0x71, 0xd3, 0xcd, 0xfe, 0xc6, 0x8a, 0xce, 0x16,
+ 0x3d, 0x31, 0x28, 0x9f, 0x9e, 0x52, 0x75, 0xd4,
+ 0x3a, 0x72, 0x3d, 0xb3, 0xa7, 0xda, 0x07, 0x3e,
+ 0xb8, 0xe9, 0xf6, 0x2c, 0xf5, 0xc0, 0x3a, 0x56,
+ 0xc4, 0x60, 0x09, 0x15, 0x4b, 0xbc, 0x73, 0x99,
+ 0x54, 0xff, 0xd6, 0xf7, 0x5b, 0x05, 0xbf, 0xd8,
+ 0xd1, 0x22, 0xcf, 0xeb, 0x60, 0xb7, 0xfb, 0x1a,
+ 0x2c, 0x99, 0xfd, 0x6c, 0x16, 0xff, 0x63, 0x45,
+ 0xb1, 0x3f, 0xad, 0x82, 0xdf, 0xec, 0x68, 0xb6,
+ 0xe7, 0xfc, 0xbc, 0x5e, 0x5e, 0x96, 0xab, 0x9d,
+ 0x40, 0x1d, 0x3f, 0x27, 0x5d, 0xc5, 0xca, 0x3a,
+ 0x7c, 0x2d, 0xfe, 0xc6, 0x8b, 0xc2, 0x7b, 0x4b,
+ 0xf9, 0x53, 0xa7, 0xd9, 0xd0, 0x5e, 0x21, 0xd3,
+ 0xe4, 0xe7, 0x77, 0xd0, 0xe9, 0xda, 0x40, 0x1d,
+ 0x2b, 0x5e, 0x9a, 0x99, 0xeb, 0xc9, 0xb8, 0x5e,
+ 0xf9, 0x80, 0x09, 0x3a, 0x53, 0xa2, 0x99, 0xf0,
+ 0xb7, 0xfb, 0x1a, 0x2f, 0x49, 0xff, 0x77, 0xf4,
+ 0xe4, 0xbf, 0xad, 0xbc, 0x74, 0xfb, 0x15, 0x5f,
+ 0xe0, 0xe9, 0x5b, 0x11, 0x31, 0xcc, 0xc2, 0xf1,
+ 0x06, 0x11, 0x7f, 0x21, 0xe8, 0x5a, 0xe4, 0x7e,
+ 0x0c, 0x49, 0xb8, 0xcb, 0xc5, 0x3d, 0x49, 0x80,
+ 0x3b, 0xe9, 0xdd, 0xd1, 0xbc, 0x06, 0x30, 0xd9,
+ 0xec, 0xaf, 0xe8, 0xe9, 0xfd, 0x9b, 0x10, 0x02,
+ 0xea, 0x1d, 0x2b, 0xd7, 0xa7, 0xa7, 0x42, 0x09,
+ 0xf0, 0xb7, 0xfb, 0x1a, 0x22, 0x39, 0xff, 0xea,
+ 0xdd, 0x4a, 0x62, 0xbb, 0x8b, 0xb9, 0x25, 0xe8,
+ 0x3a, 0x7f, 0xce, 0x47, 0x87, 0x35, 0xad, 0xe8,
+ 0xe9, 0x9e, 0x51, 0x53, 0x04, 0x25, 0x4f, 0xfc,
+ 0xeb, 0x35, 0x76, 0xb5, 0x51, 0xeb, 0x00, 0xd6,
+ 0x84, 0x5e, 0x7f, 0x65, 0xef, 0xb9, 0x5f, 0xd1,
+ 0xd3, 0xff, 0xf3, 0x58, 0x7f, 0xbb, 0xd5, 0x85,
+ 0x35, 0xdf, 0x01, 0xd0, 0xbc, 0x54, 0x19, 0x85,
+ 0xac, 0x60, 0xfa, 0xd7, 0xb5, 0xe9, 0x75, 0x71,
+ 0xac, 0xf8, 0x5b, 0xfd, 0x8d, 0x11, 0x74, 0xfb,
+ 0x40, 0xe7, 0xd7, 0x16, 0xcf, 0x69, 0x5b, 0x0f,
+ 0x9f, 0xcc, 0x22, 0xc8, 0xf7, 0x74, 0x34, 0x67,
+ 0xfe, 0x57, 0xba, 0xd8, 0x2d, 0xfe, 0xc6, 0x89,
+ 0x9a, 0x73, 0xe9, 0x43, 0xa7, 0x36, 0xd4, 0x74,
+ 0xff, 0xec, 0xbc, 0xde, 0xb6, 0xdb, 0xe3, 0x58,
+ 0xc7, 0x4f, 0xff, 0xb8, 0xdf, 0x5e, 0xca, 0x6f,
+ 0xeb, 0x60, 0x84, 0x25, 0x4f, 0x37, 0xfb, 0x1a,
+ 0x2c, 0xf9, 0xff, 0xed, 0x8d, 0x7f, 0x96, 0x2e,
+ 0xee, 0x53, 0x3a, 0x74, 0xe0, 0x84, 0x25, 0x4f,
+ 0xfb, 0xdd, 0x4e, 0xe3, 0x71, 0x82, 0x55, 0x8b,
+ 0xc9, 0xfe, 0x4a, 0xef, 0x8e, 0xff, 0xac, 0x74,
+ 0xff, 0x6f, 0xbc, 0x73, 0xe2, 0xed, 0x50, 0xe8,
+ 0x64, 0xec, 0xc5, 0x62, 0xa5, 0x60, 0x6d, 0xd2,
+ 0x5a, 0xe3, 0x99, 0xff, 0xff, 0xfb, 0x30, 0x14,
+ 0xcc, 0xed, 0xfe, 0x63, 0xd4, 0xca, 0xda, 0x9d,
+ 0xc7, 0x95, 0x8a, 0x3a, 0x75, 0x11, 0xe3, 0xa7,
+ 0x2f, 0xe5, 0x4e, 0x87, 0x23, 0x12, 0x90, 0x8a,
+ 0xd0, 0xe4, 0xf3, 0xe0, 0xb9, 0x8e, 0x9f, 0x57,
+ 0xa9, 0x82, 0x64, 0xff, 0xb6, 0x2e, 0xc1, 0x7a,
+ 0xef, 0xe0, 0xd1, 0x06, 0xd8, 0xd2, 0xcf, 0xbd,
+ 0xb6, 0xa4, 0x3a, 0x7e, 0x75, 0x7b, 0xef, 0xe8,
+ 0xe9, 0x63, 0x1e, 0x9f, 0x49, 0x67, 0xff, 0xfd,
+ 0xe1, 0xd6, 0x57, 0x49, 0x9d, 0x7f, 0x58, 0x3b,
+ 0x7b, 0xd4, 0x74, 0x39, 0x34, 0x0c, 0x85, 0x7f,
+ 0x49, 0xa7, 0xe1, 0xce, 0x29, 0x54, 0x3a, 0x7f,
+ 0xff, 0x5d, 0xdf, 0xbf, 0xcb, 0x9f, 0x7f, 0x54,
+ 0xdb, 0xf5, 0xd8, 0x4e, 0x9f, 0xff, 0xea, 0x51,
+ 0x07, 0x49, 0x65, 0x66, 0xa9, 0xce, 0x9e, 0xec,
+ 0x3a, 0x7a, 0xb9, 0xb5, 0xc7, 0x46, 0xd1, 0x13,
+ 0x56, 0x69, 0x95, 0x7a, 0x9a, 0x2f, 0xc9, 0xff,
+ 0x9d, 0xab, 0x9c, 0xe5, 0x6b, 0x48, 0xa3, 0xa7,
+ 0xfe, 0xde, 0x77, 0x32, 0x9c, 0x9d, 0x45, 0x1d,
+ 0x0f, 0xa2, 0x2e, 0x88, 0xd3, 0xdd, 0xea, 0x31,
+ 0xd0, 0x89, 0x8d, 0x70, 0x47, 0x90, 0xb3, 0xf2,
+ 0x49, 0xff, 0xff, 0xaf, 0x12, 0xbb, 0x55, 0x96,
+ 0x77, 0x8f, 0x3a, 0xed, 0xfa, 0x36, 0xde, 0x3a,
+ 0x7d, 0x76, 0x53, 0x7d, 0x3a, 0x7c, 0x9c, 0xee,
+ 0xfa, 0x1d, 0x32, 0xf6, 0xa3, 0xa7, 0xff, 0xfd,
+ 0x5d, 0xbf, 0xac, 0x7f, 0x42, 0x29, 0xa0, 0x73,
+ 0xeb, 0xab, 0x87, 0x4e, 0x08, 0x42, 0x54, 0xf7,
+ 0x1c, 0x7f, 0x4a, 0xb1, 0x79, 0x08, 0x8d, 0x86,
+ 0x1b, 0xdc, 0x22, 0xe7, 0xfe, 0xce, 0xbf, 0xac,
+ 0x1d, 0xbd, 0xea, 0x3a, 0x7d, 0x9a, 0x72, 0xaa,
+ 0x74, 0x21, 0xf5, 0xd1, 0x12, 0x60, 0x54, 0xe9,
+ 0xf9, 0xe5, 0x9c, 0xbc, 0x17, 0x8e, 0x9f, 0xd7,
+ 0xeb, 0x9a, 0xae, 0xf4, 0x74, 0xdb, 0x13, 0xa1,
+ 0x7a, 0x9f, 0xf6, 0xcd, 0x2a, 0x6b, 0x3f, 0xfb,
+ 0x8e, 0x13, 0x81, 0x4d, 0x6d, 0xb7, 0xc1, 0xd2,
+ 0xb2, 0xf4, 0x65, 0x9a, 0xde, 0x90, 0xe7, 0x03,
+ 0x79, 0x1f, 0xfb, 0xf1, 0x8e, 0x6c, 0xd5, 0x68,
+ 0xe2, 0x04, 0xd5, 0x45, 0x95, 0x94, 0x1b, 0xe8,
+ 0x20, 0x7a, 0xe9, 0x45, 0x23, 0x01, 0xd4, 0x27,
+ 0x82, 0x42, 0xbf, 0x09, 0x4e, 0x66, 0xb1, 0x66,
+ 0x65, 0xcd, 0x69, 0x70, 0x33, 0xff, 0xac, 0xaf,
+ 0x75, 0xb0, 0x5b, 0xfd, 0x8d, 0x13, 0x64, 0xfe,
+ 0xb6, 0x0b, 0x7f, 0xb1, 0xa2, 0xad, 0x9f, 0xce,
+ 0x75, 0xda, 0xea, 0x38, 0xe9, 0xec, 0xaf, 0xe8,
+ 0xe9, 0x5e, 0xb8, 0x7a, 0x9d, 0x34, 0x9f, 0x0b,
+ 0x7f, 0xb1, 0xa2, 0xb4, 0x9f, 0xfe, 0x64, 0x1c,
+ 0x07, 0xab, 0xdc, 0x9b, 0x63, 0xa7, 0xff, 0x9d,
+ 0x4c, 0xea, 0x2b, 0xf3, 0x5a, 0x45, 0x1d, 0x36,
+ 0xb4, 0x88, 0x97, 0xf4, 0xa9, 0xfc, 0x8b, 0xb9,
+ 0xeb, 0xa8, 0x03, 0xa7, 0xe7, 0xb2, 0xbb, 0xc5,
+ 0x1d, 0x3f, 0xd9, 0x79, 0xd4, 0x0b, 0xee, 0xa1,
+ 0xd3, 0xf9, 0xd9, 0xaf, 0xe8, 0x2e, 0x3a, 0x56,
+ 0x5e, 0x27, 0xe5, 0x85, 0x9b, 0x86, 0x3d, 0x4b,
+ 0x7c, 0xdb, 0xa5, 0xba, 0x3c, 0x9f, 0xd6, 0xc1,
+ 0x6f, 0xf6, 0x34, 0x58, 0x13, 0xe1, 0x6f, 0xf6,
+ 0x34, 0x4e, 0xb3, 0xff, 0xfa, 0xa8, 0xf7, 0x18,
+ 0xab, 0x52, 0x99, 0x5d, 0xd2, 0xe7, 0x8e, 0x9f,
+ 0x59, 0x5e, 0xeb, 0x62, 0x25, 0x56, 0x30, 0x9f,
+ 0x0b, 0x7f, 0xb1, 0xa2, 0xd9, 0x9f, 0xf0, 0x12,
+ 0x96, 0xae, 0xdb, 0xc4, 0xe9, 0x5b, 0x0f, 0xb3,
+ 0xcc, 0x27, 0x9b, 0xfd, 0x8d, 0x17, 0x34, 0x94,
+ 0x74, 0xd6, 0xc1, 0x37, 0x61, 0x2b, 0x9f, 0xd6,
+ 0xc1, 0x6f, 0xf6, 0x34, 0x5d, 0xf3, 0xd6, 0xbf,
+ 0xc0, 0x0e, 0x84, 0x6c, 0xaf, 0xb2, 0x99, 0xc2,
+ 0xc6, 0x0f, 0xa9, 0x6e, 0x54, 0x08, 0xb9, 0x2a,
+ 0x1a, 0x00, 0x85, 0x65, 0x18, 0x74, 0x57, 0xcc,
+ 0xee, 0x7f, 0x75, 0xec, 0xbc, 0xd2, 0x5f, 0x3a,
+ 0x7c, 0x2d, 0xfe, 0xc6, 0x89, 0x5e, 0x7e, 0xaf,
+ 0x17, 0x78, 0xb8, 0xe9, 0xde, 0xeb, 0x22, 0x25,
+ 0xb0, 0xe2, 0x86, 0x13, 0xb4, 0x9c, 0x15, 0x3f,
+ 0xfa, 0xbf, 0xbd, 0x23, 0xb6, 0x2f, 0x5c, 0x02,
+ 0xa7, 0xf7, 0xb5, 0xb8, 0x15, 0xee, 0xc8, 0x7c,
+ 0xf4, 0x1c, 0x95, 0x94, 0x8f, 0x45, 0xd0, 0xa6,
+ 0x9f, 0xfd, 0x65, 0x7b, 0xad, 0x82, 0xdf, 0xec,
+ 0x68, 0x98, 0x67, 0xff, 0xec, 0xb7, 0x31, 0xf0,
+ 0x5a, 0xfe, 0x9c, 0x14, 0xa3, 0x8e, 0x9f, 0xfa,
+ 0xf5, 0xc7, 0xdd, 0x77, 0xeb, 0xa8, 0xe3, 0xa7,
+ 0xfb, 0xa9, 0xef, 0x6a, 0xff, 0x89, 0xd3, 0xf2,
+ 0x93, 0x3b, 0xa5, 0xf3, 0xa7, 0xc9, 0x9d, 0xd2,
+ 0xf9, 0xd3, 0xf5, 0x77, 0xaa, 0x7b, 0xfc, 0x8f,
+ 0x61, 0x45, 0xf3, 0xff, 0xfe, 0xee, 0x06, 0xf3,
+ 0x59, 0x5e, 0x5d, 0xc7, 0xb7, 0x9d, 0x7d, 0xd4,
+ 0x3a, 0x7e, 0x5d, 0xcf, 0x5d, 0x40, 0x1d, 0x3f,
+ 0xf9, 0x34, 0x04, 0x76, 0x3f, 0xa7, 0xae, 0x09,
+ 0xd0, 0x87, 0xfb, 0xb3, 0x19, 0xfa, 0x9b, 0xbe,
+ 0xaf, 0xd1, 0xd3, 0xff, 0xfe, 0x1c, 0x5c, 0x9d,
+ 0xd7, 0x2e, 0x7d, 0x4a, 0xfe, 0xf4, 0x9a, 0xa1,
+ 0xd2, 0xc7, 0xd1, 0x3e, 0x25, 0xf3, 0xdf, 0xcf,
+ 0x8c, 0x3a, 0x56, 0x5e, 0x2b, 0x1e, 0xe1, 0x29,
+ 0xa1, 0x22, 0xb2, 0x45, 0x61, 0xe1, 0xd8, 0x60,
+ 0x5c, 0x51, 0x3e, 0x16, 0xff, 0x63, 0x45, 0x5d,
+ 0x3f, 0xce, 0xb6, 0x0b, 0x7f, 0xb1, 0xa2, 0x3c,
+ 0x95, 0xb0, 0xfc, 0x7c, 0xc2, 0x7f, 0x5b, 0x05,
+ 0xbf, 0xd8, 0xd1, 0x60, 0xcf, 0xeb, 0x60, 0xb7,
+ 0xfb, 0x1a, 0x2c, 0xa9, 0xfd, 0x6c, 0x16, 0xff,
+ 0x63, 0x45, 0xa7, 0x3c, 0xdf, 0xec, 0x68, 0xb7,
+ 0x27, 0xfe, 0x4c, 0x1c, 0xef, 0x2a, 0xe3, 0xe1,
+ 0x3a, 0x04, 0xfb, 0xe8, 0x57, 0x3f, 0xef, 0x75,
+ 0xb0, 0x5b, 0xfd, 0x8d, 0x14, 0x3c, 0xfd, 0xd5,
+ 0xe6, 0x0a, 0x50, 0xe9, 0xff, 0xfb, 0x38, 0xaa,
+ 0x73, 0xb6, 0xbb, 0xe0, 0xa5, 0x10, 0x05, 0x4a,
+ 0xd8, 0x8f, 0x35, 0x10, 0xdc, 0x8c, 0xbe, 0x5f,
+ 0x3f, 0xad, 0x82, 0xdf, 0xec, 0x68, 0xbc, 0xe1,
+ 0x17, 0xea, 0x9c, 0x61, 0xc2, 0x96, 0x4b, 0x7c,
+ 0x7e, 0x1e, 0x42, 0x4c, 0xa3, 0xba, 0x9d, 0xf6,
+ 0x39, 0xd5, 0xc8, 0xd3, 0xfa, 0xd8, 0x2d, 0xfe,
+ 0xc6, 0x8a, 0x5a, 0x7f, 0x5b, 0x05, 0xbf, 0xd8,
+ 0xd1, 0x61, 0x4f, 0xeb, 0x60, 0xb7, 0xfb, 0x1a,
+ 0x2c, 0xb9, 0xff, 0xd6, 0x57, 0xba, 0xd8, 0x2d,
+ 0xfe, 0xc6, 0x8a, 0x32, 0x7f, 0x59, 0x17, 0x20,
+ 0xa0, 0x0e, 0x87, 0x26, 0x6a, 0x27, 0x6a, 0x3b,
+ 0xa1, 0xde, 0x94, 0xa7, 0xfe, 0xb7, 0xba, 0xd8,
+ 0x2d, 0xfe, 0xc6, 0x88, 0xe6, 0x7f, 0xf5, 0x95,
+ 0xee, 0xb6, 0x0b, 0x7f, 0xb1, 0xa2, 0x72, 0x9f,
+ 0xd6, 0xc1, 0x6f, 0xf6, 0x34, 0x59, 0x93, 0xfa,
+ 0xd8, 0x2d, 0xfe, 0xc6, 0x8b, 0x76, 0x7f, 0xf5,
+ 0x95, 0xee, 0xb6, 0x0b, 0x7f, 0xb1, 0xa2, 0x90,
+ 0x9f, 0xfa, 0xde, 0xeb, 0x60, 0xb7, 0xfb, 0x1a,
+ 0x25, 0x28, 0x79, 0x3b, 0x25, 0x93, 0x14, 0xa5,
+ 0xd3, 0xbd, 0x1d, 0xde, 0x29, 0x4f, 0xfb, 0xdd,
+ 0x6c, 0x16, 0xff, 0x63, 0x44, 0xed, 0x3f, 0xfe,
+ 0xdf, 0x17, 0x29, 0x2f, 0x3f, 0x8e, 0xa7, 0x71,
+ 0x8e, 0x99, 0x56, 0x52, 0x27, 0xfd, 0x1a, 0x7c,
+ 0x2d, 0xfe, 0xc6, 0x88, 0xb2, 0x7f, 0xde, 0xeb,
+ 0x60, 0xb7, 0xfb, 0x1a, 0x25, 0xd9, 0xff, 0xfb,
+ 0x38, 0xaa, 0x73, 0xb6, 0xbb, 0xe0, 0xa5, 0x10,
+ 0x05, 0x4a, 0xd8, 0x8d, 0x35, 0x18, 0x2f, 0xa3,
+ 0x4f, 0xfe, 0xb2, 0xbd, 0xd6, 0xc1, 0x6f, 0xf6,
+ 0x34, 0x4c, 0x53, 0xfa, 0xd8, 0x2d, 0xfe, 0xc6,
+ 0x8a, 0xa6, 0x7f, 0xf5, 0x95, 0xee, 0xb6, 0x0b,
+ 0x7f, 0xb1, 0xa2, 0x74, 0x9f, 0xdb, 0xf1, 0x47,
+ 0x7a, 0xe3, 0xa7, 0xcb, 0x22, 0xc9, 0x43, 0xa7,
+ 0xe0, 0xe6, 0xd7, 0x67, 0x4e, 0x9e, 0xdd, 0x52,
+ 0xdb, 0x3d, 0x6a, 0x14, 0x4f, 0xfd, 0x75, 0x34,
+ 0x8f, 0xda, 0xe5, 0xb6, 0xa3, 0xa1, 0x48, 0x82,
+ 0xa9, 0xcc, 0xff, 0xbd, 0xd6, 0xc1, 0x6f, 0xf6,
+ 0x34, 0x4e, 0xf3, 0xed, 0x5d, 0xea, 0xd9, 0x52,
+ 0xb7, 0x09, 0xcd, 0xe4, 0x61, 0x4a, 0x23, 0xf4,
+ 0x69, 0xff, 0xd6, 0x57, 0xba, 0xd8, 0x2d, 0xfe,
+ 0xc6, 0x8a, 0x16, 0x7f, 0xf5, 0x95, 0xee, 0xb6,
+ 0x0b, 0x7f, 0xb1, 0xa2, 0x92, 0x9f, 0xff, 0xd9,
+ 0x4b, 0x73, 0xc5, 0xab, 0xea, 0xd5, 0x53, 0x57,
+ 0x28, 0xe8, 0x79, 0x70, 0x0d, 0xc7, 0x0c, 0xa4,
+ 0x27, 0x6a, 0x8f, 0xb4, 0x09, 0x37, 0x29, 0x2f,
+ 0xa9, 0x4f, 0xeb, 0x60, 0xb7, 0xfb, 0x1a, 0x22,
+ 0x49, 0xff, 0xd6, 0x57, 0xba, 0xd8, 0x2d, 0xfe,
+ 0xc6, 0x89, 0x7a, 0x7c, 0x2d, 0xfe, 0xc6, 0x8a,
+ 0x5e, 0x7f, 0x27, 0x17, 0x9b, 0x52, 0x50, 0xe9,
+ 0x5b, 0x0f, 0x9b, 0x46, 0x13, 0xfa, 0xd8, 0x2d,
+ 0xfe, 0xc6, 0x8a, 0x72, 0x7f, 0xdb, 0x1f, 0xa5,
+ 0x73, 0x3a, 0xc7, 0x4f, 0xfb, 0x2a, 0x83, 0x96,
+ 0x08, 0x42, 0x54, 0xdb, 0x09, 0xd3, 0x3d, 0x6e,
+ 0x11, 0x1a, 0xbe, 0x77, 0x78, 0x79, 0x3e, 0x16,
+ 0xff, 0x63, 0x45, 0x79, 0x3f, 0xff, 0x67, 0x15,
+ 0x4e, 0x76, 0xd7, 0x7c, 0x14, 0xa2, 0x00, 0xa9,
+ 0x5b, 0x11, 0x1a, 0xbe, 0x61, 0x3f, 0xf5, 0xbd,
+ 0xd6, 0xc1, 0x6f, 0xf6, 0x34, 0x48, 0xf3, 0xb6,
+ 0x04, 0x3a, 0x73, 0x62, 0x8a, 0xb1, 0x77, 0x3e,
+ 0x16, 0xff, 0x63, 0x44, 0x91, 0x3d, 0x6f, 0x75,
+ 0x90, 0xf6, 0x70, 0xa6, 0x7f, 0xeb, 0x7b, 0xad,
+ 0x82, 0xdf, 0xec, 0x68, 0x92, 0xa7, 0xc2, 0xdf,
+ 0xec, 0x68, 0xbc, 0x67, 0xeb, 0xba, 0xff, 0xbf,
+ 0x43, 0xa7, 0xd4, 0xa6, 0xb1, 0x8e, 0x9f, 0xe7,
+ 0x5b, 0x05, 0xbf, 0xd8, 0xd1, 0x26, 0xca, 0xd8,
+ 0x8c, 0x77, 0xcc, 0x04, 0xc3, 0xc9, 0xa1, 0x17,
+ 0x4a, 0x5e, 0x3b, 0x74, 0x2e, 0x38, 0x27, 0xdc,
+ 0x32, 0x16, 0x86, 0x8a, 0x8a, 0xeb, 0x0c, 0x0d,
+ 0x1b, 0xdd, 0x18, 0x9c, 0x24, 0x69, 0x1f, 0x6f,
+ 0x47, 0x3a, 0xe8, 0xf2, 0x78, 0x8f, 0x6b, 0x2d,
+ 0xb5, 0x2d, 0xf9, 0x4a, 0xcd, 0x5e, 0x95, 0x3f,
+ 0x3c, 0x19, 0xb9, 0xcc, 0x4b, 0xdc, 0x76, 0x0b,
+ 0x52, 0xc7, 0x06, 0x7e, 0xd9, 0x57, 0xf1, 0x51,
+ 0x59, 0xda, 0x6f, 0xa6, 0xca, 0x02, 0x55, 0x92,
+ 0xf7, 0x0b, 0x0e, 0xce, 0xd5, 0x52, 0x90, 0xff,
+ 0xaa, 0xdb, 0x2a, 0xea, 0x4f, 0x52, 0xe8, 0xf5,
+ 0x83, 0x1f, 0xe2, 0xfc, 0x3f, 0x39, 0xce, 0x82,
+ 0x5e, 0x4e, 0xd3, 0x40,
};
-static const unsigned kPreloadedHSTSBits = 83397;
+static const unsigned kPreloadedHSTSBits = 86044;
-static const unsigned kHSTSRootPosition = 82825;
+static const unsigned kHSTSRootPosition = 85472;
#endif // NET_HTTP_TRANSPORT_SECURITY_STATE_STATIC_H_
diff --git a/net/http/transport_security_state_static.json b/net/http/transport_security_state_static.json
index 1f163aa..282cd58 100644
--- a/net/http/transport_security_state_static.json
+++ b/net/http/transport_security_state_static.json
@@ -1262,7 +1262,92 @@
{ "name": "tno.io", "include_subdomains": true, "mode": "force-https" },
{ "name": "translatoruk.co.uk", "include_subdomains": true, "mode": "force-https" },
{ "name": "wepay.in.th", "include_subdomains": true, "mode": "force-https" },
- { "name": "zixiao.wang", "include_subdomains": true, "mode": "force-https" }
+ { "name": "zixiao.wang", "include_subdomains": true, "mode": "force-https" },
+
+ { "name": "at.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "au.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "az.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "be.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "bi.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "br.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "ca.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "cd.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "cg.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "chfr.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "chit.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "ch.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "cl.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "cn.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "co.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "cr.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "ct.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "de.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "dk.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "do.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "en-maktoob.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "espanol.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "es.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "fi.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "fj.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "fr.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "gl.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "gm.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "gr.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "hk.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "hn.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "hu.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "id.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "ie.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "in.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "it.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "kr.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "kz.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "li.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "lt.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "lu.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "lv.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "maktoob.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "malaysia.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "mt.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "mu.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "mw.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "mx.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "ni.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "nl.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "no.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "np.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "nz.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "pa.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "pe.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "ph.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "pk.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "pl.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "pr.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "py.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "qc.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "ro.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "ru.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "rw.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "se.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "sg.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "sv.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "th.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "tr.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "tv.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "tw.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "ua.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "uk.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "uy.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "uz.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "ve.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "vn.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "xa.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "za.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "zh.search.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "login.yahoo.com", "include_subdomains": true, "mode": "force-https" },
+ { "name": "mail.yahoo.com", "include_subdomains": false, "mode": "force-https" },
+ { "name": "edit.yahoo.com", "include_subdomains": true, "mode": "force-https" }
],
// |ReportUMAOnPinFailure| uses these to report which domain was associated
diff --git a/net/http/url_security_manager.h b/net/http/url_security_manager.h
index 4015fc2..2835d89 100644
--- a/net/http/url_security_manager.h
+++ b/net/http/url_security_manager.h
@@ -64,8 +64,8 @@
virtual ~URLSecurityManagerWhitelist();
// URLSecurityManager methods.
- virtual bool CanUseDefaultCredentials(const GURL& auth_origin) const OVERRIDE;
- virtual bool CanDelegate(const GURL& auth_origin) const OVERRIDE;
+ virtual bool CanUseDefaultCredentials(const GURL& auth_origin) const override;
+ virtual bool CanDelegate(const GURL& auth_origin) const override;
private:
scoped_ptr<const HttpAuthFilter> whitelist_default_;
diff --git a/net/net.gypi b/net/net.gypi
index 8ed69df..36aa3e6 100644
--- a/net/net.gypi
+++ b/net/net.gypi
@@ -189,6 +189,8 @@
'base/bandwidth_metrics.cc',
'base/bandwidth_metrics.h',
'base/cache_type.h',
+ 'base/chunked_upload_data_stream.cc',
+ 'base/chunked_upload_data_stream.h',
'base/crypto_module.h',
'base/crypto_module_nss.cc',
'base/crypto_module_openssl.cc',
@@ -198,6 +200,8 @@
'base/directory_lister.h',
'base/dns_reloader.cc',
'base/dns_reloader.h',
+ 'base/elements_upload_data_stream.cc',
+ 'base/elements_upload_data_stream.h',
'base/expiring_cache.h',
'base/file_stream.cc',
'base/file_stream.h',
@@ -1254,9 +1258,11 @@
'base/address_list_unittest.cc',
'base/address_tracker_linux_unittest.cc',
'base/backoff_entry_unittest.cc',
+ 'base/chunked_upload_data_stream_unittest.cc',
'base/data_url_unittest.cc',
'base/directory_lister_unittest.cc',
'base/dns_util_unittest.cc',
+ 'base/elements_upload_data_stream_unittest.cc',
'base/escape_unittest.cc',
'base/expiring_cache_unittest.cc',
'base/file_stream_unittest.cc',
@@ -1285,7 +1291,6 @@
'base/test_completion_callback_unittest.cc',
'base/trace_net_log_observer_unittest.cc',
'base/upload_bytes_element_reader_unittest.cc',
- 'base/upload_data_stream_unittest.cc',
'base/upload_file_element_reader_unittest.cc',
'base/url_util_unittest.cc',
'cert/cert_verify_proc_unittest.cc',
diff --git a/net/net_unittests.isolate b/net/net_unittests.isolate
index dafa0d7..15b3f08 100644
--- a/net/net_unittests.isolate
+++ b/net/net_unittests.isolate
@@ -17,6 +17,8 @@
'<(PRODUCT_DIR)/net_unittests<(EXECUTABLE_SUFFIX)',
'--brave-new-test-launcher',
'--test-launcher-bot-mode',
+ '--asan=<(asan)',
+ '--lsan=<(lsan)',
],
'files': [
'../testing/test_env.py',
diff --git a/net/ocsp/nss_ocsp.cc b/net/ocsp/nss_ocsp.cc
index 1d7fa9d..02eb2c7 100644
--- a/net/ocsp/nss_ocsp.cc
+++ b/net/ocsp/nss_ocsp.cc
@@ -30,12 +30,12 @@
#include "base/synchronization/lock.h"
#include "base/threading/thread_checker.h"
#include "base/time/time.h"
+#include "net/base/elements_upload_data_stream.h"
#include "net/base/host_port_pair.h"
#include "net/base/io_buffer.h"
#include "net/base/load_flags.h"
#include "net/base/request_priority.h"
#include "net/base/upload_bytes_element_reader.h"
-#include "net/base/upload_data_stream.h"
#include "net/http/http_request_headers.h"
#include "net/http/http_response_headers.h"
#include "net/url_request/redirect_info.h"
@@ -285,7 +285,7 @@
virtual void OnReceivedRedirect(URLRequest* request,
const RedirectInfo& redirect_info,
- bool* defer_redirect) OVERRIDE {
+ bool* defer_redirect) override {
DCHECK_EQ(request_.get(), request);
DCHECK_EQ(base::MessageLoopForIO::current(), io_loop_);
@@ -296,7 +296,7 @@
}
}
- virtual void OnResponseStarted(URLRequest* request) OVERRIDE {
+ virtual void OnResponseStarted(URLRequest* request) override {
DCHECK_EQ(request_.get(), request);
DCHECK_EQ(base::MessageLoopForIO::current(), io_loop_);
@@ -311,7 +311,7 @@
}
virtual void OnReadCompleted(URLRequest* request,
- int bytes_read) OVERRIDE {
+ int bytes_read) override {
DCHECK_EQ(request_.get(), request);
DCHECK_EQ(base::MessageLoopForIO::current(), io_loop_);
@@ -411,8 +411,8 @@
scoped_ptr<UploadElementReader> reader(new UploadBytesElementReader(
upload_content_.data(), upload_content_.size()));
- request_->set_upload(make_scoped_ptr(
- UploadDataStream::CreateWithReader(reader.Pass(), 0)));
+ request_->set_upload(
+ ElementsUploadDataStream::CreateWithReader(reader.Pass(), 0));
}
if (!extra_request_headers_.IsEmpty())
request_->SetExtraRequestHeaders(extra_request_headers_);
diff --git a/net/ocsp/nss_ocsp_unittest.cc b/net/ocsp/nss_ocsp_unittest.cc
index 0201ad1..3df446e 100644
--- a/net/ocsp/nss_ocsp_unittest.cc
+++ b/net/ocsp/nss_ocsp_unittest.cc
@@ -49,7 +49,7 @@
// net::URLRequestInterceptor implementation:
virtual net::URLRequestJob* MaybeInterceptRequest(
net::URLRequest* request,
- net::NetworkDelegate* network_delegate) const OVERRIDE {
+ net::NetworkDelegate* network_delegate) const override {
++const_cast<AiaResponseHandler*>(this)->request_count_;
return new net::URLRequestTestJob(
diff --git a/net/proxy/dhcp_proxy_script_adapter_fetcher_win.cc b/net/proxy/dhcp_proxy_script_adapter_fetcher_win.cc
index b50b579..8d41d66 100644
--- a/net/proxy/dhcp_proxy_script_adapter_fetcher_win.cc
+++ b/net/proxy/dhcp_proxy_script_adapter_fetcher_win.cc
@@ -220,7 +220,6 @@
DHCPCAPI_PARAMS_ARRAY send_params = { 0, NULL };
- BYTE option_data[] = { 1, 252 };
DHCPCAPI_PARAMS wpad_params = { 0 };
wpad_params.OptionId = 252;
wpad_params.IsVendor = FALSE; // Surprising, but intentional.
diff --git a/net/proxy/dhcp_proxy_script_adapter_fetcher_win_unittest.cc b/net/proxy/dhcp_proxy_script_adapter_fetcher_win_unittest.cc
index 821e4eb..8e19001 100644
--- a/net/proxy/dhcp_proxy_script_adapter_fetcher_win_unittest.cc
+++ b/net/proxy/dhcp_proxy_script_adapter_fetcher_win_unittest.cc
@@ -51,7 +51,7 @@
fetcher_ = NULL;
}
- virtual ProxyScriptFetcher* ImplCreateScriptFetcher() OVERRIDE {
+ virtual ProxyScriptFetcher* ImplCreateScriptFetcher() override {
// We don't maintain ownership of the fetcher, it is transferred to
// the caller.
fetcher_ = new MockProxyScriptFetcher();
@@ -71,7 +71,7 @@
}
std::string ImplGetPacURLFromDhcp(
- const std::string& adapter_name) OVERRIDE {
+ const std::string& adapter_name) override {
base::ElapsedTimer timer;
test_finished_event_.TimedWait(dhcp_delay_);
return configured_url_;
@@ -82,7 +82,7 @@
std::string configured_url_;
};
- virtual DhcpQuery* ImplCreateDhcpQuery() OVERRIDE {
+ virtual DhcpQuery* ImplCreateDhcpQuery() override {
dhcp_query_ = new DelayingDhcpQuery();
dhcp_query_->dhcp_delay_ = dhcp_delay_;
dhcp_query_->configured_url_ = configured_url_;
@@ -90,7 +90,7 @@
}
// Use a shorter timeout so tests can finish more quickly.
- virtual base::TimeDelta ImplGetTimeout() const OVERRIDE {
+ virtual base::TimeDelta ImplGetTimeout() const override {
return timeout_;
}
@@ -272,7 +272,7 @@
}
// Returns a real proxy script fetcher.
- ProxyScriptFetcher* ImplCreateScriptFetcher() OVERRIDE {
+ ProxyScriptFetcher* ImplCreateScriptFetcher() override {
ProxyScriptFetcher* fetcher =
new ProxyScriptFetcherImpl(url_request_context_);
return fetcher;
diff --git a/net/proxy/dhcp_proxy_script_fetcher.h b/net/proxy/dhcp_proxy_script_fetcher.h
index 0ec2ed4..bb293de 100644
--- a/net/proxy/dhcp_proxy_script_fetcher.h
+++ b/net/proxy/dhcp_proxy_script_fetcher.h
@@ -86,9 +86,9 @@
virtual ~DoNothingDhcpProxyScriptFetcher();
virtual int Fetch(base::string16* utf16_text,
- const CompletionCallback& callback) OVERRIDE;
- virtual void Cancel() OVERRIDE;
- virtual const GURL& GetPacURL() const OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual void Cancel() override;
+ virtual const GURL& GetPacURL() const override;
private:
GURL gurl_;
DISALLOW_COPY_AND_ASSIGN(DoNothingDhcpProxyScriptFetcher);
diff --git a/net/proxy/dhcp_proxy_script_fetcher_win.h b/net/proxy/dhcp_proxy_script_fetcher_win.h
index d6f14f9..1122997 100644
--- a/net/proxy/dhcp_proxy_script_fetcher_win.h
+++ b/net/proxy/dhcp_proxy_script_fetcher_win.h
@@ -39,10 +39,10 @@
// DhcpProxyScriptFetcher implementation.
int Fetch(base::string16* utf16_text,
- const net::CompletionCallback& callback) OVERRIDE;
- void Cancel() OVERRIDE;
- const GURL& GetPacURL() const OVERRIDE;
- std::string GetFetcherName() const OVERRIDE;
+ const net::CompletionCallback& callback) override;
+ void Cancel() override;
+ const GURL& GetPacURL() const override;
+ std::string GetFetcherName() const override;
// Sets |adapter_names| to contain the name of each network adapter on
// this machine that has DHCP enabled and is not a loop-back adapter. Returns
diff --git a/net/proxy/dhcp_proxy_script_fetcher_win_unittest.cc b/net/proxy/dhcp_proxy_script_fetcher_win_unittest.cc
index 743fb26..eb98330 100644
--- a/net/proxy/dhcp_proxy_script_fetcher_win_unittest.cc
+++ b/net/proxy/dhcp_proxy_script_fetcher_win_unittest.cc
@@ -169,13 +169,13 @@
}
std::string ImplGetPacURLFromDhcp(
- const std::string& adapter_name) OVERRIDE {
+ const std::string& adapter_name) override {
base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(20));
return DhcpQuery::ImplGetPacURLFromDhcp(adapter_name);
}
};
- DhcpQuery* ImplCreateDhcpQuery() OVERRIDE {
+ DhcpQuery* ImplCreateDhcpQuery() override {
return new DelayingDhcpQuery();
}
};
@@ -189,7 +189,7 @@
: DhcpProxyScriptFetcherWin(context) {
}
- DhcpProxyScriptAdapterFetcher* ImplCreateAdapterFetcher() OVERRIDE {
+ DhcpProxyScriptAdapterFetcher* ImplCreateAdapterFetcher() override {
return new DelayingDhcpProxyScriptAdapterFetcher(url_request_context(),
GetTaskRunner());
}
@@ -224,25 +224,25 @@
}
void Fetch(const std::string& adapter_name,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
callback_ = callback;
timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(fetch_delay_ms_),
this, &DummyDhcpProxyScriptAdapterFetcher::OnTimer);
}
- void Cancel() OVERRIDE {
+ void Cancel() override {
timer_.Stop();
}
- bool DidFinish() const OVERRIDE {
+ bool DidFinish() const override {
return did_finish_;
}
- int GetResult() const OVERRIDE {
+ int GetResult() const override {
return result_;
}
- base::string16 GetPacScript() const OVERRIDE {
+ base::string16 GetPacScript() const override {
return pac_script_;
}
@@ -280,7 +280,7 @@
}
virtual bool ImplGetCandidateAdapterNames(
- std::set<std::string>* adapter_names) OVERRIDE {
+ std::set<std::string>* adapter_names) override {
adapter_names->insert(
mock_adapter_names_.begin(), mock_adapter_names_.end());
return true;
@@ -324,21 +324,21 @@
PushBackAdapter(adapter_name, adapter_fetcher.release());
}
- DhcpProxyScriptAdapterFetcher* ImplCreateAdapterFetcher() OVERRIDE {
+ DhcpProxyScriptAdapterFetcher* ImplCreateAdapterFetcher() override {
++num_fetchers_created_;
return adapter_fetchers_[next_adapter_fetcher_index_++];
}
- virtual AdapterQuery* ImplCreateAdapterQuery() OVERRIDE {
+ virtual AdapterQuery* ImplCreateAdapterQuery() override {
DCHECK(adapter_query_);
return adapter_query_.get();
}
- base::TimeDelta ImplGetMaxWait() OVERRIDE {
+ base::TimeDelta ImplGetMaxWait() override {
return max_wait_;
}
- void ImplOnGetCandidateAdapterNamesDone() OVERRIDE {
+ void ImplOnGetCandidateAdapterNamesDone() override {
worker_finished_event_.Signal();
}
diff --git a/net/proxy/mock_proxy_resolver.h b/net/proxy/mock_proxy_resolver.h
index 3864d53..5a616dd 100644
--- a/net/proxy/mock_proxy_resolver.h
+++ b/net/proxy/mock_proxy_resolver.h
@@ -77,13 +77,13 @@
ProxyInfo* results,
const net::CompletionCallback& callback,
RequestHandle* request_handle,
- const BoundNetLog& /*net_log*/) OVERRIDE;
- virtual void CancelRequest(RequestHandle request_handle) OVERRIDE;
- virtual LoadState GetLoadState(RequestHandle request_handle) const OVERRIDE;
+ const BoundNetLog& /*net_log*/) override;
+ virtual void CancelRequest(RequestHandle request_handle) override;
+ virtual LoadState GetLoadState(RequestHandle request_handle) const override;
virtual int SetPacScript(
const scoped_refptr<ProxyResolverScriptData>& script_data,
- const net::CompletionCallback& callback) OVERRIDE;
- virtual void CancelSetPacScript() OVERRIDE;
+ const net::CompletionCallback& callback) override;
+ virtual void CancelSetPacScript() override;
const RequestsList& pending_requests() const {
return pending_requests_;
diff --git a/net/proxy/mock_proxy_script_fetcher.h b/net/proxy/mock_proxy_script_fetcher.h
index 81e221f..910c6b2 100644
--- a/net/proxy/mock_proxy_script_fetcher.h
+++ b/net/proxy/mock_proxy_script_fetcher.h
@@ -25,9 +25,9 @@
// ProxyScriptFetcher implementation.
virtual int Fetch(const GURL& url,
base::string16* text,
- const CompletionCallback& callback) OVERRIDE;
- virtual void Cancel() OVERRIDE;
- virtual URLRequestContext* GetRequestContext() const OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual void Cancel() override;
+ virtual URLRequestContext* GetRequestContext() const override;
void NotifyFetchCompletion(int result, const std::string& ascii_text);
const GURL& pending_request_url() const;
diff --git a/net/proxy/multi_threaded_proxy_resolver.cc b/net/proxy/multi_threaded_proxy_resolver.cc
index 4b68321..a2a6515 100644
--- a/net/proxy/multi_threaded_proxy_resolver.cc
+++ b/net/proxy/multi_threaded_proxy_resolver.cc
@@ -175,7 +175,7 @@
}
// Runs on the worker thread.
- virtual void Run(scoped_refptr<base::MessageLoopProxy> origin_loop) OVERRIDE {
+ virtual void Run(scoped_refptr<base::MessageLoopProxy> origin_loop) override {
ProxyResolver* resolver = executor()->resolver();
int rv = resolver->SetPacScript(script_data_, CompletionCallback());
@@ -222,12 +222,12 @@
BoundNetLog* net_log() { return &net_log_; }
- virtual void WaitingForThread() OVERRIDE {
+ virtual void WaitingForThread() override {
was_waiting_for_thread_ = true;
net_log_.BeginEvent(NetLog::TYPE_WAITING_FOR_PROXY_RESOLVER_THREAD);
}
- virtual void FinishedWaitingForThread() OVERRIDE {
+ virtual void FinishedWaitingForThread() override {
DCHECK(executor());
if (was_waiting_for_thread_) {
@@ -240,7 +240,7 @@
}
// Runs on the worker thread.
- virtual void Run(scoped_refptr<base::MessageLoopProxy> origin_loop) OVERRIDE {
+ virtual void Run(scoped_refptr<base::MessageLoopProxy> origin_loop) override {
ProxyResolver* resolver = executor()->resolver();
int rv = resolver->GetProxyForURL(
url_, &results_buf_, CompletionCallback(), NULL, net_log_);
diff --git a/net/proxy/multi_threaded_proxy_resolver.h b/net/proxy/multi_threaded_proxy_resolver.h
index 5c470f4..0a14461 100644
--- a/net/proxy/multi_threaded_proxy_resolver.h
+++ b/net/proxy/multi_threaded_proxy_resolver.h
@@ -95,13 +95,13 @@
ProxyInfo* results,
const CompletionCallback& callback,
RequestHandle* request,
- const BoundNetLog& net_log) OVERRIDE;
- virtual void CancelRequest(RequestHandle request) OVERRIDE;
- virtual LoadState GetLoadState(RequestHandle request) const OVERRIDE;
- virtual void CancelSetPacScript() OVERRIDE;
+ const BoundNetLog& net_log) override;
+ virtual void CancelRequest(RequestHandle request) override;
+ virtual LoadState GetLoadState(RequestHandle request) const override;
+ virtual void CancelSetPacScript() override;
virtual int SetPacScript(
const scoped_refptr<ProxyResolverScriptData>& script_data,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
private:
class Executor;
diff --git a/net/proxy/multi_threaded_proxy_resolver_unittest.cc b/net/proxy/multi_threaded_proxy_resolver_unittest.cc
index e1c9e90..d2e465c 100644
--- a/net/proxy/multi_threaded_proxy_resolver_unittest.cc
+++ b/net/proxy/multi_threaded_proxy_resolver_unittest.cc
@@ -40,7 +40,7 @@
ProxyInfo* results,
const CompletionCallback& callback,
RequestHandle* request,
- const BoundNetLog& net_log) OVERRIDE {
+ const BoundNetLog& net_log) override {
if (resolve_latency_ != base::TimeDelta())
base::PlatformThread::Sleep(resolve_latency_);
@@ -58,22 +58,22 @@
return request_count_++;
}
- virtual void CancelRequest(RequestHandle request) OVERRIDE {
+ virtual void CancelRequest(RequestHandle request) override {
NOTREACHED();
}
- virtual LoadState GetLoadState(RequestHandle request) const OVERRIDE {
+ virtual LoadState GetLoadState(RequestHandle request) const override {
NOTREACHED();
return LOAD_STATE_IDLE;
}
- virtual void CancelSetPacScript() OVERRIDE {
+ virtual void CancelSetPacScript() override {
NOTREACHED();
}
virtual int SetPacScript(
const scoped_refptr<ProxyResolverScriptData>& script_data,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
CheckIsOnWorkerThread();
last_script_data_ = script_data;
return OK;
@@ -137,7 +137,7 @@
ProxyInfo* results,
const CompletionCallback& callback,
RequestHandle* request,
- const BoundNetLog& net_log) OVERRIDE {
+ const BoundNetLog& net_log) override {
if (should_block_) {
blocked_.Signal();
unblocked_.Wait();
@@ -164,27 +164,27 @@
ProxyInfo* results,
const CompletionCallback& callback,
RequestHandle* request,
- const BoundNetLog& net_log) OVERRIDE {
+ const BoundNetLog& net_log) override {
return impl_->GetProxyForURL(
query_url, results, callback, request, net_log);
}
- virtual void CancelRequest(RequestHandle request) OVERRIDE {
+ virtual void CancelRequest(RequestHandle request) override {
impl_->CancelRequest(request);
}
- virtual LoadState GetLoadState(RequestHandle request) const OVERRIDE {
+ virtual LoadState GetLoadState(RequestHandle request) const override {
NOTREACHED();
return LOAD_STATE_IDLE;
}
- virtual void CancelSetPacScript() OVERRIDE {
+ virtual void CancelSetPacScript() override {
impl_->CancelSetPacScript();
}
virtual int SetPacScript(
const scoped_refptr<ProxyResolverScriptData>& script_data,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return impl_->SetPacScript(script_data, callback);
}
@@ -200,7 +200,7 @@
: ProxyResolverFactory(resolver->expects_pac_bytes()),
resolver_(resolver) {}
- virtual ProxyResolver* CreateProxyResolver() OVERRIDE {
+ virtual ProxyResolver* CreateProxyResolver() override {
return new ForwardingProxyResolver(resolver_);
}
@@ -217,7 +217,7 @@
STLDeleteElements(&resolvers_);
}
- virtual ProxyResolver* CreateProxyResolver() OVERRIDE {
+ virtual ProxyResolver* CreateProxyResolver() override {
BlockableProxyResolver* resolver = new BlockableProxyResolver;
resolvers_.push_back(resolver);
return new ForwardingProxyResolver(resolver);
diff --git a/net/proxy/network_delegate_error_observer.h b/net/proxy/network_delegate_error_observer.h
index e4b03aa..70a2bed 100644
--- a/net/proxy/network_delegate_error_observer.h
+++ b/net/proxy/network_delegate_error_observer.h
@@ -28,7 +28,7 @@
// ProxyResolverErrorObserver implementation.
virtual void OnPACScriptError(int line_number, const base::string16& error)
- OVERRIDE;
+ override;
private:
class Core;
diff --git a/net/proxy/network_delegate_error_observer_unittest.cc b/net/proxy/network_delegate_error_observer_unittest.cc
index 1f6330f..8547761 100644
--- a/net/proxy/network_delegate_error_observer_unittest.cc
+++ b/net/proxy/network_delegate_error_observer_unittest.cc
@@ -27,62 +27,62 @@
// net::NetworkDelegate implementation.
virtual int OnBeforeURLRequest(URLRequest* request,
const CompletionCallback& callback,
- GURL* new_url) OVERRIDE {
+ GURL* new_url) override {
return OK;
}
virtual int OnBeforeSendHeaders(URLRequest* request,
const CompletionCallback& callback,
- HttpRequestHeaders* headers) OVERRIDE {
+ HttpRequestHeaders* headers) override {
return OK;
}
virtual void OnSendHeaders(URLRequest* request,
- const HttpRequestHeaders& headers) OVERRIDE {}
+ const HttpRequestHeaders& headers) override {}
virtual int OnHeadersReceived(
URLRequest* request,
const CompletionCallback& callback,
const HttpResponseHeaders* original_response_headers,
scoped_refptr<HttpResponseHeaders>* override_response_headers,
- GURL* allowed_unsafe_redirect_url) OVERRIDE {
+ GURL* allowed_unsafe_redirect_url) override {
return net::OK;
}
virtual void OnBeforeRedirect(URLRequest* request,
- const GURL& new_location) OVERRIDE {}
- virtual void OnResponseStarted(URLRequest* request) OVERRIDE {}
+ const GURL& new_location) override {}
+ virtual void OnResponseStarted(URLRequest* request) override {}
virtual void OnRawBytesRead(const URLRequest& request,
- int bytes_read) OVERRIDE {}
- virtual void OnCompleted(URLRequest* request, bool started) OVERRIDE {}
- virtual void OnURLRequestDestroyed(URLRequest* request) OVERRIDE {}
+ int bytes_read) override {}
+ virtual void OnCompleted(URLRequest* request, bool started) override {}
+ virtual void OnURLRequestDestroyed(URLRequest* request) override {}
virtual void OnPACScriptError(int line_number,
- const base::string16& error) OVERRIDE {
+ const base::string16& error) override {
got_pac_error_ = true;
}
virtual AuthRequiredResponse OnAuthRequired(
URLRequest* request,
const AuthChallengeInfo& auth_info,
const AuthCallback& callback,
- AuthCredentials* credentials) OVERRIDE {
+ AuthCredentials* credentials) override {
return AUTH_REQUIRED_RESPONSE_NO_ACTION;
}
virtual bool OnCanGetCookies(const URLRequest& request,
- const CookieList& cookie_list) OVERRIDE {
+ const CookieList& cookie_list) override {
return true;
}
virtual bool OnCanSetCookie(const URLRequest& request,
const std::string& cookie_line,
- CookieOptions* options) OVERRIDE {
+ CookieOptions* options) override {
return true;
}
virtual bool OnCanAccessFile(const net::URLRequest& request,
- const base::FilePath& path) const OVERRIDE {
+ const base::FilePath& path) const override {
return true;
}
- virtual bool OnCanThrottleRequest(const URLRequest& request) const OVERRIDE {
+ virtual bool OnCanThrottleRequest(const URLRequest& request) const override {
return false;
}
virtual int OnBeforeSocketStreamConnect(
SocketStream* stream,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return OK;
}
diff --git a/net/proxy/polling_proxy_config_service.h b/net/proxy/polling_proxy_config_service.h
index f5f5117..dc0db48 100644
--- a/net/proxy/polling_proxy_config_service.h
+++ b/net/proxy/polling_proxy_config_service.h
@@ -20,10 +20,10 @@
class NET_EXPORT_PRIVATE PollingProxyConfigService : public ProxyConfigService {
public:
// ProxyConfigService implementation:
- virtual void AddObserver(Observer* observer) OVERRIDE;
- virtual void RemoveObserver(Observer* observer) OVERRIDE;
- virtual ConfigAvailability GetLatestProxyConfig(ProxyConfig* config) OVERRIDE;
- virtual void OnLazyPoll() OVERRIDE;
+ virtual void AddObserver(Observer* observer) override;
+ virtual void RemoveObserver(Observer* observer) override;
+ virtual ConfigAvailability GetLatestProxyConfig(ProxyConfig* config) override;
+ virtual void OnLazyPoll() override;
protected:
// Function for retrieving the current proxy configuration.
diff --git a/net/proxy/proxy_bypass_rules.cc b/net/proxy/proxy_bypass_rules.cc
index 239a2fe..debb2e8 100644
--- a/net/proxy/proxy_bypass_rules.cc
+++ b/net/proxy/proxy_bypass_rules.cc
@@ -27,7 +27,7 @@
optional_port_(optional_port) {
}
- virtual bool Matches(const GURL& url) const OVERRIDE {
+ virtual bool Matches(const GURL& url) const override {
if (optional_port_ != -1 && url.EffectiveIntPort() != optional_port_)
return false; // Didn't match port expectation.
@@ -40,7 +40,7 @@
hostname_pattern_);
}
- virtual std::string ToString() const OVERRIDE {
+ virtual std::string ToString() const override {
std::string str;
if (!optional_scheme_.empty())
base::StringAppendF(&str, "%s://", optional_scheme_.c_str());
@@ -50,7 +50,7 @@
return str;
}
- virtual Rule* Clone() const OVERRIDE {
+ virtual Rule* Clone() const override {
return new HostnamePatternRule(optional_scheme_,
hostname_pattern_,
optional_port_);
@@ -64,18 +64,18 @@
class BypassLocalRule : public ProxyBypassRules::Rule {
public:
- virtual bool Matches(const GURL& url) const OVERRIDE {
+ virtual bool Matches(const GURL& url) const override {
const std::string& host = url.host();
if (host == "127.0.0.1" || host == "[::1]")
return true;
return host.find('.') == std::string::npos;
}
- virtual std::string ToString() const OVERRIDE {
+ virtual std::string ToString() const override {
return "<local>";
}
- virtual Rule* Clone() const OVERRIDE {
+ virtual Rule* Clone() const override {
return new BypassLocalRule();
}
};
@@ -96,7 +96,7 @@
prefix_length_in_bits_(prefix_length_in_bits) {
}
- virtual bool Matches(const GURL& url) const OVERRIDE {
+ virtual bool Matches(const GURL& url) const override {
if (!url.HostIsIPAddress())
return false;
@@ -113,11 +113,11 @@
prefix_length_in_bits_);
}
- virtual std::string ToString() const OVERRIDE {
+ virtual std::string ToString() const override {
return description_;
}
- virtual Rule* Clone() const OVERRIDE {
+ virtual Rule* Clone() const override {
return new BypassIPBlockRule(description_,
optional_scheme_,
ip_prefix_,
diff --git a/net/proxy/proxy_config_service_android.cc b/net/proxy/proxy_config_service_android.cc
index d27bc5a..f1a0b6c 100644
--- a/net/proxy/proxy_config_service_android.cc
+++ b/net/proxy/proxy_config_service_android.cc
@@ -6,6 +6,7 @@
#include <sys/system_properties.h>
+#include "base/android/jni_array.h"
#include "base/android/jni_string.h"
#include "base/basictypes.h"
#include "base/bind.h"
@@ -162,6 +163,7 @@
void CreateStaticProxyConfig(const std::string& host,
int port,
const std::string& pac_url,
+ const std::vector<std::string>& exclusion_list,
ProxyConfig* config) {
if (!pac_url.empty()) {
config->set_pac_url(GURL(pac_url));
@@ -169,6 +171,16 @@
} else if (port != 0) {
std::string rules = base::StringPrintf("%s:%d", host.c_str(), port);
config->proxy_rules().ParseFromString(rules);
+ config->proxy_rules().bypass_rules.Clear();
+
+ std::vector<std::string>::const_iterator it;
+ for (it = exclusion_list.begin(); it != exclusion_list.end(); ++it) {
+ std::string pattern;
+ base::TrimWhitespaceASCII(*it, base::TRIM_ALL, &pattern);
+ if (pattern.empty())
+ continue;
+ config->proxy_rules().bypass_rules.AddRuleForHostname("", pattern, -1);
+ }
} else {
*config = ProxyConfig::CreateDirect();
}
@@ -255,10 +267,11 @@
// Called on the JNI thread.
void ProxySettingsChangedTo(const std::string& host,
int port,
- const std::string& pac_url) {
+ const std::string& pac_url,
+ const std::vector<std::string>& exclusion_list) {
DCHECK(OnJNIThread());
ProxyConfig proxy_config;
- CreateStaticProxyConfig(host, port, pac_url, &proxy_config);
+ CreateStaticProxyConfig(host, port, pac_url, exclusion_list, &proxy_config);
network_task_runner_->PostTask(
FROM_HERE,
base::Bind(
@@ -277,15 +290,19 @@
jobject jself,
jstring jhost,
jint jport,
- jstring jpac_url) OVERRIDE {
+ jstring jpac_url,
+ jobjectArray jexclusion_list) override {
std::string host = ConvertJavaStringToUTF8(env, jhost);
std::string pac_url;
if (jpac_url)
ConvertJavaStringToUTF8(env, jpac_url, &pac_url);
- delegate_->ProxySettingsChangedTo(host, jport, pac_url);
+ std::vector<std::string> exclusion_list;
+ base::android::AppendJavaStringArrayToStringVector(
+ env, jexclusion_list, &exclusion_list);
+ delegate_->ProxySettingsChangedTo(host, jport, pac_url, exclusion_list);
}
- virtual void ProxySettingsChanged(JNIEnv* env, jobject self) OVERRIDE {
+ virtual void ProxySettingsChanged(JNIEnv* env, jobject self) override {
delegate_->ProxySettingsChanged();
}
diff --git a/net/proxy/proxy_config_service_android.h b/net/proxy/proxy_config_service_android.h
index ee54b94..d642d37 100644
--- a/net/proxy/proxy_config_service_android.h
+++ b/net/proxy/proxy_config_service_android.h
@@ -42,11 +42,13 @@
// changed. The string and int arguments (the host/port pair for the proxy)
// are either a host/port pair or ("", 0) to indicate "no proxy".
// The third argument indicates the PAC url.
+ // The fourth argument is the proxy exclusion list.
virtual void ProxySettingsChangedTo(JNIEnv*,
jobject,
jstring,
jint,
- jstring) = 0;
+ jstring,
+ jobjectArray) = 0;
// Called from Java (on JNI thread) to signal that the proxy settings have
// changed. New proxy settings are fetched from the system property store.
@@ -64,9 +66,9 @@
// ProxyConfigService:
// Called only on the network thread.
- virtual void AddObserver(Observer* observer) OVERRIDE;
- virtual void RemoveObserver(Observer* observer) OVERRIDE;
- virtual ConfigAvailability GetLatestProxyConfig(ProxyConfig* config) OVERRIDE;
+ virtual void AddObserver(Observer* observer) override;
+ virtual void RemoveObserver(Observer* observer) override;
+ virtual ConfigAvailability GetLatestProxyConfig(ProxyConfig* config) override;
private:
friend class ProxyConfigServiceAndroidTestBase;
diff --git a/net/proxy/proxy_config_service_android_unittest.cc b/net/proxy/proxy_config_service_android_unittest.cc
index 03324b9..41f2387 100644
--- a/net/proxy/proxy_config_service_android_unittest.cc
+++ b/net/proxy/proxy_config_service_android_unittest.cc
@@ -25,7 +25,7 @@
// ProxyConfigService::Observer:
virtual void OnProxyConfigChanged(
const ProxyConfig& config,
- ProxyConfigService::ConfigAvailability availability) OVERRIDE {
+ ProxyConfigService::ConfigAvailability availability) override {
config_ = config;
availability_ = availability;
}
@@ -62,12 +62,12 @@
virtual ~ProxyConfigServiceAndroidTestBase() {}
// testing::Test:
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
message_loop_->RunUntilIdle();
service_.AddObserver(&observer_);
}
- virtual void TearDown() OVERRIDE {
+ virtual void TearDown() override {
service_.RemoveObserver(&observer_);
}
diff --git a/net/proxy/proxy_config_service_fixed.h b/net/proxy/proxy_config_service_fixed.h
index b5f30e3..14185c6 100644
--- a/net/proxy/proxy_config_service_fixed.h
+++ b/net/proxy/proxy_config_service_fixed.h
@@ -19,9 +19,9 @@
virtual ~ProxyConfigServiceFixed();
// ProxyConfigService methods:
- virtual void AddObserver(Observer* observer) OVERRIDE {}
- virtual void RemoveObserver(Observer* observer) OVERRIDE {}
- virtual ConfigAvailability GetLatestProxyConfig(ProxyConfig* config) OVERRIDE;
+ virtual void AddObserver(Observer* observer) override {}
+ virtual void RemoveObserver(Observer* observer) override {}
+ virtual ConfigAvailability GetLatestProxyConfig(ProxyConfig* config) override;
private:
ProxyConfig pc_;
diff --git a/net/proxy/proxy_config_service_linux.cc b/net/proxy/proxy_config_service_linux.cc
index 4e9065e..145312e 100644
--- a/net/proxy/proxy_config_service_linux.cc
+++ b/net/proxy/proxy_config_service_linux.cc
@@ -235,7 +235,7 @@
virtual bool Init(
const scoped_refptr<base::SingleThreadTaskRunner>& glib_task_runner,
const scoped_refptr<base::SingleThreadTaskRunner>& file_task_runner)
- OVERRIDE {
+ override {
DCHECK(glib_task_runner->BelongsToCurrentThread());
DCHECK(!client_);
DCHECK(!task_runner_.get());
@@ -273,7 +273,7 @@
return true;
}
- virtual void ShutDown() OVERRIDE {
+ virtual void ShutDown() override {
if (client_) {
DCHECK(task_runner_->BelongsToCurrentThread());
// We must explicitly disable gconf notifications here, because the gconf
@@ -291,7 +291,7 @@
}
virtual bool SetUpNotifications(
- ProxyConfigServiceLinux::Delegate* delegate) OVERRIDE {
+ ProxyConfigServiceLinux::Delegate* delegate) override {
DCHECK(client_);
DCHECK(task_runner_->BelongsToCurrentThread());
GError* error = NULL;
@@ -321,15 +321,15 @@
}
virtual const scoped_refptr<base::SingleThreadTaskRunner>&
- GetNotificationTaskRunner() OVERRIDE {
+ GetNotificationTaskRunner() override {
return task_runner_;
}
- virtual ProxyConfigSource GetConfigSource() OVERRIDE {
+ virtual ProxyConfigSource GetConfigSource() override {
return PROXY_CONFIG_SOURCE_GCONF;
}
- virtual bool GetString(StringSetting key, std::string* result) OVERRIDE {
+ virtual bool GetString(StringSetting key, std::string* result) override {
switch (key) {
case PROXY_MODE:
return GetStringByPath("/system/proxy/mode", result);
@@ -346,7 +346,7 @@
}
return false; // Placate compiler.
}
- virtual bool GetBool(BoolSetting key, bool* result) OVERRIDE {
+ virtual bool GetBool(BoolSetting key, bool* result) override {
switch (key) {
case PROXY_USE_HTTP_PROXY:
return GetBoolByPath("/system/http_proxy/use_http_proxy", result);
@@ -357,7 +357,7 @@
}
return false; // Placate compiler.
}
- virtual bool GetInt(IntSetting key, int* result) OVERRIDE {
+ virtual bool GetInt(IntSetting key, int* result) override {
switch (key) {
case PROXY_HTTP_PORT:
return GetIntByPath("/system/http_proxy/port", result);
@@ -371,7 +371,7 @@
return false; // Placate compiler.
}
virtual bool GetStringList(StringListSetting key,
- std::vector<std::string>* result) OVERRIDE {
+ std::vector<std::string>* result) override {
switch (key) {
case PROXY_IGNORE_HOSTS:
return GetStringListByPath("/system/http_proxy/ignore_hosts", result);
@@ -379,12 +379,12 @@
return false; // Placate compiler.
}
- virtual bool BypassListIsReversed() OVERRIDE {
+ virtual bool BypassListIsReversed() override {
// This is a KDE-specific setting.
return false;
}
- virtual bool MatchHostsUsingSuffixMatching() OVERRIDE {
+ virtual bool MatchHostsUsingSuffixMatching() override {
return false;
}
@@ -568,7 +568,7 @@
virtual bool Init(
const scoped_refptr<base::SingleThreadTaskRunner>& glib_task_runner,
const scoped_refptr<base::SingleThreadTaskRunner>& file_task_runner)
- OVERRIDE {
+ override {
DCHECK(glib_task_runner->BelongsToCurrentThread());
DCHECK(!client_);
DCHECK(!task_runner_.get());
@@ -589,7 +589,7 @@
return true;
}
- virtual void ShutDown() OVERRIDE {
+ virtual void ShutDown() override {
if (client_) {
DCHECK(task_runner_->BelongsToCurrentThread());
// This also disables gsettings notifications.
@@ -605,7 +605,7 @@
}
virtual bool SetUpNotifications(
- ProxyConfigServiceLinux::Delegate* delegate) OVERRIDE {
+ ProxyConfigServiceLinux::Delegate* delegate) override {
DCHECK(client_);
DCHECK(task_runner_->BelongsToCurrentThread());
notify_delegate_ = delegate;
@@ -628,15 +628,15 @@
}
virtual const scoped_refptr<base::SingleThreadTaskRunner>&
- GetNotificationTaskRunner() OVERRIDE {
+ GetNotificationTaskRunner() override {
return task_runner_;
}
- virtual ProxyConfigSource GetConfigSource() OVERRIDE {
+ virtual ProxyConfigSource GetConfigSource() override {
return PROXY_CONFIG_SOURCE_GSETTINGS;
}
- virtual bool GetString(StringSetting key, std::string* result) OVERRIDE {
+ virtual bool GetString(StringSetting key, std::string* result) override {
DCHECK(client_);
switch (key) {
case PROXY_MODE:
@@ -654,7 +654,7 @@
}
return false; // Placate compiler.
}
- virtual bool GetBool(BoolSetting key, bool* result) OVERRIDE {
+ virtual bool GetBool(BoolSetting key, bool* result) override {
DCHECK(client_);
switch (key) {
case PROXY_USE_HTTP_PROXY:
@@ -672,7 +672,7 @@
}
return false; // Placate compiler.
}
- virtual bool GetInt(IntSetting key, int* result) OVERRIDE {
+ virtual bool GetInt(IntSetting key, int* result) override {
DCHECK(client_);
switch (key) {
case PROXY_HTTP_PORT:
@@ -687,7 +687,7 @@
return false; // Placate compiler.
}
virtual bool GetStringList(StringListSetting key,
- std::vector<std::string>* result) OVERRIDE {
+ std::vector<std::string>* result) override {
DCHECK(client_);
switch (key) {
case PROXY_IGNORE_HOSTS:
@@ -696,12 +696,12 @@
return false; // Placate compiler.
}
- virtual bool BypassListIsReversed() OVERRIDE {
+ virtual bool BypassListIsReversed() override {
// This is a KDE-specific setting.
return false;
}
- virtual bool MatchHostsUsingSuffixMatching() OVERRIDE {
+ virtual bool MatchHostsUsingSuffixMatching() override {
return false;
}
@@ -932,7 +932,7 @@
virtual bool Init(
const scoped_refptr<base::SingleThreadTaskRunner>& glib_task_runner,
const scoped_refptr<base::SingleThreadTaskRunner>& file_task_runner)
- OVERRIDE {
+ override {
// This has to be called on the UI thread (http://crbug.com/69057).
base::ThreadRestrictions::ScopedAllowIO allow_io;
DCHECK(inotify_fd_ < 0);
@@ -956,7 +956,7 @@
return true;
}
- virtual void ShutDown() OVERRIDE {
+ virtual void ShutDown() override {
if (inotify_fd_ >= 0) {
ResetCachedSettings();
inotify_watcher_.StopWatchingFileDescriptor();
@@ -966,7 +966,7 @@
}
virtual bool SetUpNotifications(
- ProxyConfigServiceLinux::Delegate* delegate) OVERRIDE {
+ ProxyConfigServiceLinux::Delegate* delegate) override {
DCHECK(inotify_fd_ >= 0);
DCHECK(file_task_runner_->BelongsToCurrentThread());
// We can't just watch the kioslaverc file directly, since KDE will write
@@ -990,41 +990,41 @@
}
virtual const scoped_refptr<base::SingleThreadTaskRunner>&
- GetNotificationTaskRunner() OVERRIDE {
+ GetNotificationTaskRunner() override {
return file_task_runner_;
}
// Implement base::MessagePumpLibevent::Watcher.
- virtual void OnFileCanReadWithoutBlocking(int fd) OVERRIDE {
+ virtual void OnFileCanReadWithoutBlocking(int fd) override {
DCHECK_EQ(fd, inotify_fd_);
DCHECK(file_task_runner_->BelongsToCurrentThread());
OnChangeNotification();
}
- virtual void OnFileCanWriteWithoutBlocking(int fd) OVERRIDE {
+ virtual void OnFileCanWriteWithoutBlocking(int fd) override {
NOTREACHED();
}
- virtual ProxyConfigSource GetConfigSource() OVERRIDE {
+ virtual ProxyConfigSource GetConfigSource() override {
return PROXY_CONFIG_SOURCE_KDE;
}
- virtual bool GetString(StringSetting key, std::string* result) OVERRIDE {
+ virtual bool GetString(StringSetting key, std::string* result) override {
string_map_type::iterator it = string_table_.find(key);
if (it == string_table_.end())
return false;
*result = it->second;
return true;
}
- virtual bool GetBool(BoolSetting key, bool* result) OVERRIDE {
+ virtual bool GetBool(BoolSetting key, bool* result) override {
// We don't ever have any booleans.
return false;
}
- virtual bool GetInt(IntSetting key, int* result) OVERRIDE {
+ virtual bool GetInt(IntSetting key, int* result) override {
// We don't ever have any integers. (See AddProxy() below about ports.)
return false;
}
virtual bool GetStringList(StringListSetting key,
- std::vector<std::string>* result) OVERRIDE {
+ std::vector<std::string>* result) override {
strings_map_type::iterator it = strings_table_.find(key);
if (it == strings_table_.end())
return false;
@@ -1032,11 +1032,11 @@
return true;
}
- virtual bool BypassListIsReversed() OVERRIDE {
+ virtual bool BypassListIsReversed() override {
return reversed_bypass_list_;
}
- virtual bool MatchHostsUsingSuffixMatching() OVERRIDE {
+ virtual bool MatchHostsUsingSuffixMatching() override {
return true;
}
diff --git a/net/proxy/proxy_config_service_linux.h b/net/proxy/proxy_config_service_linux.h
index fa7bd45..a8438c2 100644
--- a/net/proxy/proxy_config_service_linux.h
+++ b/net/proxy/proxy_config_service_linux.h
@@ -296,10 +296,10 @@
// ProxyConfigService methods:
// Called from IO thread.
- virtual void AddObserver(Observer* observer) OVERRIDE;
- virtual void RemoveObserver(Observer* observer) OVERRIDE;
+ virtual void AddObserver(Observer* observer) override;
+ virtual void RemoveObserver(Observer* observer) override;
virtual ProxyConfigService::ConfigAvailability GetLatestProxyConfig(
- ProxyConfig* config) OVERRIDE;
+ ProxyConfig* config) override;
private:
scoped_refptr<Delegate> delegate_;
diff --git a/net/proxy/proxy_config_service_linux_unittest.cc b/net/proxy/proxy_config_service_linux_unittest.cc
index 5ca0fdc..cfb0cff 100644
--- a/net/proxy/proxy_config_service_linux_unittest.cc
+++ b/net/proxy/proxy_config_service_linux_unittest.cc
@@ -107,7 +107,7 @@
}
// Begin base::Environment implementation.
- virtual bool GetVar(const char* variable_name, std::string* result) OVERRIDE {
+ virtual bool GetVar(const char* variable_name, std::string* result) override {
std::map<std::string, const char**>::iterator it =
table.find(variable_name);
if (it != table.end() && *(it->second) != NULL) {
@@ -119,12 +119,12 @@
}
virtual bool SetVar(const char* variable_name, const std::string& new_value)
- OVERRIDE {
+ override {
ADD_FAILURE();
return false;
}
- virtual bool UnSetVar(const char* variable_name) OVERRIDE {
+ virtual bool UnSetVar(const char* variable_name) override {
ADD_FAILURE();
return false;
}
@@ -178,28 +178,28 @@
virtual bool Init(
const scoped_refptr<base::SingleThreadTaskRunner>& glib_task_runner,
const scoped_refptr<base::SingleThreadTaskRunner>& file_task_runner)
- OVERRIDE {
+ override {
task_runner_ = glib_task_runner;
return true;
}
- virtual void ShutDown() OVERRIDE {}
+ virtual void ShutDown() override {}
virtual bool SetUpNotifications(ProxyConfigServiceLinux::Delegate* delegate)
- OVERRIDE {
+ override {
return true;
}
virtual const scoped_refptr<base::SingleThreadTaskRunner>&
- GetNotificationTaskRunner() OVERRIDE {
+ GetNotificationTaskRunner() override {
return task_runner_;
}
- virtual ProxyConfigSource GetConfigSource() OVERRIDE {
+ virtual ProxyConfigSource GetConfigSource() override {
return PROXY_CONFIG_SOURCE_TEST;
}
- virtual bool GetString(StringSetting key, std::string* result) OVERRIDE {
+ virtual bool GetString(StringSetting key, std::string* result) override {
const char* value = strings_table.Get(key);
if (value) {
*result = value;
@@ -208,7 +208,7 @@
return false;
}
- virtual bool GetBool(BoolSetting key, bool* result) OVERRIDE {
+ virtual bool GetBool(BoolSetting key, bool* result) override {
BoolSettingValue value = bools_table.Get(key);
switch (value) {
case UNSET:
@@ -222,24 +222,24 @@
return true;
}
- virtual bool GetInt(IntSetting key, int* result) OVERRIDE {
+ virtual bool GetInt(IntSetting key, int* result) override {
// We don't bother to distinguish unset keys from 0 values.
*result = ints_table.Get(key);
return true;
}
virtual bool GetStringList(StringListSetting key,
- std::vector<std::string>* result) OVERRIDE {
+ std::vector<std::string>* result) override {
*result = string_lists_table.Get(key);
// We don't bother to distinguish unset keys from empty lists.
return !result->empty();
}
- virtual bool BypassListIsReversed() OVERRIDE {
+ virtual bool BypassListIsReversed() override {
return false;
}
- virtual bool MatchHostsUsingSuffixMatching() OVERRIDE {
+ virtual bool MatchHostsUsingSuffixMatching() override {
return false;
}
@@ -355,7 +355,7 @@
// must use the same test fixture class (also "ProxyConfigServiceLinuxTest").
class ProxyConfigServiceLinuxTest : public PlatformTest {
protected:
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
PlatformTest::SetUp();
// Set up a temporary KDE home directory.
std::string prefix("ProxyConfigServiceLinuxTest_user_home");
@@ -372,7 +372,7 @@
kioslaverc4_ = kde4_config_.Append(FILE_PATH_LITERAL("kioslaverc"));
}
- virtual void TearDown() OVERRIDE {
+ virtual void TearDown() override {
// Delete the temporary KDE home directory.
base::DeleteFile(user_home_, true);
PlatformTest::TearDown();
diff --git a/net/proxy/proxy_config_service_mac.h b/net/proxy/proxy_config_service_mac.h
index 6c11c6f..6c60daf 100644
--- a/net/proxy/proxy_config_service_mac.h
+++ b/net/proxy/proxy_config_service_mac.h
@@ -31,9 +31,9 @@
public:
// ProxyConfigService implementation:
- virtual void AddObserver(Observer* observer) OVERRIDE;
- virtual void RemoveObserver(Observer* observer) OVERRIDE;
- virtual ConfigAvailability GetLatestProxyConfig(ProxyConfig* config) OVERRIDE;
+ virtual void AddObserver(Observer* observer) override;
+ virtual void RemoveObserver(Observer* observer) override;
+ virtual ConfigAvailability GetLatestProxyConfig(ProxyConfig* config) override;
private:
class Helper;
@@ -46,10 +46,10 @@
: proxy_config_service_(proxy_config_service) {}
// NetworkConfigWatcherMac::Delegate implementation:
- virtual void StartReachabilityNotifications() OVERRIDE {}
+ virtual void StartReachabilityNotifications() override {}
virtual void SetDynamicStoreNotificationKeys(
- SCDynamicStoreRef store) OVERRIDE;
- virtual void OnNetworkConfigChange(CFArrayRef changed_keys) OVERRIDE;
+ SCDynamicStoreRef store) override;
+ virtual void OnNetworkConfigChange(CFArrayRef changed_keys) override;
private:
ProxyConfigServiceMac* const proxy_config_service_;
diff --git a/net/proxy/proxy_config_service_win.h b/net/proxy/proxy_config_service_win.h
index aa91b68..62f1f12 100644
--- a/net/proxy/proxy_config_service_win.h
+++ b/net/proxy/proxy_config_service_win.h
@@ -47,7 +47,7 @@
virtual ~ProxyConfigServiceWin();
// Overrides a function from PollingProxyConfigService.
- virtual void AddObserver(Observer* observer) OVERRIDE;
+ virtual void AddObserver(Observer* observer) override;
private:
FRIEND_TEST_ALL_PREFIXES(ProxyConfigServiceWinTest, SetFromIEConfig);
@@ -63,7 +63,7 @@
// ObjectWatcher::Delegate methods:
// This is called whenever one of the registry keys we are watching change.
- virtual void OnObjectSignaled(HANDLE object) OVERRIDE;
+ virtual void OnObjectSignaled(HANDLE object) override;
static void GetCurrentProxyConfig(ProxyConfig* config);
diff --git a/net/proxy/proxy_resolver_mac.h b/net/proxy/proxy_resolver_mac.h
index 24eb10d..c732988 100644
--- a/net/proxy/proxy_resolver_mac.h
+++ b/net/proxy/proxy_resolver_mac.h
@@ -25,17 +25,17 @@
ProxyInfo* results,
const net::CompletionCallback& callback,
RequestHandle* request,
- const BoundNetLog& net_log) OVERRIDE;
+ const BoundNetLog& net_log) override;
- virtual void CancelRequest(RequestHandle request) OVERRIDE;
+ virtual void CancelRequest(RequestHandle request) override;
- virtual LoadState GetLoadState(RequestHandle request) const OVERRIDE;
+ virtual LoadState GetLoadState(RequestHandle request) const override;
- virtual void CancelSetPacScript() OVERRIDE;
+ virtual void CancelSetPacScript() override;
virtual int SetPacScript(
const scoped_refptr<ProxyResolverScriptData>& script_data,
- const net::CompletionCallback& /*callback*/) OVERRIDE;
+ const net::CompletionCallback& /*callback*/) override;
private:
scoped_refptr<ProxyResolverScriptData> script_data_;
diff --git a/net/proxy/proxy_resolver_perftest.cc b/net/proxy/proxy_resolver_perftest.cc
index 3d7854c..061c13e 100644
--- a/net/proxy/proxy_resolver_perftest.cc
+++ b/net/proxy/proxy_resolver_perftest.cc
@@ -199,20 +199,20 @@
public:
MockJSBindings() {}
- virtual void Alert(const base::string16& message) OVERRIDE {
+ virtual void Alert(const base::string16& message) override {
CHECK(false);
}
virtual bool ResolveDns(const std::string& host,
ResolveDnsOperation op,
std::string* output,
- bool* terminate) OVERRIDE {
+ bool* terminate) override {
CHECK(false);
return false;
}
virtual void OnError(int line_number,
- const base::string16& message) OVERRIDE {
+ const base::string16& message) override {
CHECK(false);
}
};
diff --git a/net/proxy/proxy_resolver_v8.cc b/net/proxy/proxy_resolver_v8.cc
index 37f31bf..dc224cd 100644
--- a/net/proxy/proxy_resolver_v8.cc
+++ b/net/proxy/proxy_resolver_v8.cc
@@ -93,11 +93,11 @@
const scoped_refptr<ProxyResolverScriptData>& script_data)
: script_data_(script_data) {}
- virtual const uint16_t* data() const OVERRIDE {
+ virtual const uint16_t* data() const override {
return reinterpret_cast<const uint16*>(script_data_->utf16().data());
}
- virtual size_t length() const OVERRIDE {
+ virtual size_t length() const override {
return script_data_->utf16().size();
}
@@ -107,7 +107,8 @@
};
// External string wrapper so V8 can access a string literal.
-class V8ExternalASCIILiteral : public v8::String::ExternalAsciiStringResource {
+class V8ExternalASCIILiteral
+ : public v8::String::ExternalOneByteStringResource {
public:
// |ascii| must be a NULL-terminated C string, and must remain valid
// throughout this object's lifetime.
@@ -116,11 +117,11 @@
DCHECK(base::IsStringASCII(ascii));
}
- virtual const char* data() const OVERRIDE {
+ virtual const char* data() const override {
return ascii_;
}
- virtual size_t length() const OVERRIDE {
+ virtual size_t length() const override {
return length_;
}
diff --git a/net/proxy/proxy_resolver_v8.h b/net/proxy/proxy_resolver_v8.h
index c754e31..38b958d 100644
--- a/net/proxy/proxy_resolver_v8.h
+++ b/net/proxy/proxy_resolver_v8.h
@@ -86,13 +86,13 @@
ProxyInfo* results,
const net::CompletionCallback& /*callback*/,
RequestHandle* /*request*/,
- const BoundNetLog& net_log) OVERRIDE;
- virtual void CancelRequest(RequestHandle request) OVERRIDE;
- virtual LoadState GetLoadState(RequestHandle request) const OVERRIDE;
- virtual void CancelSetPacScript() OVERRIDE;
+ const BoundNetLog& net_log) override;
+ virtual void CancelRequest(RequestHandle request) override;
+ virtual LoadState GetLoadState(RequestHandle request) const override;
+ virtual void CancelSetPacScript() override;
virtual int SetPacScript(
const scoped_refptr<ProxyResolverScriptData>& script_data,
- const net::CompletionCallback& /*callback*/) OVERRIDE;
+ const net::CompletionCallback& /*callback*/) override;
// Create an isolate to use for the proxy resolver. If the embedder invokes
// this method multiple times, it must be invoked in a thread safe manner,
diff --git a/net/proxy/proxy_resolver_v8_tracing.cc b/net/proxy/proxy_resolver_v8_tracing.cc
index b7cb185..b5e934b 100644
--- a/net/proxy/proxy_resolver_v8_tracing.cc
+++ b/net/proxy/proxy_resolver_v8_tracing.cc
@@ -148,9 +148,9 @@
virtual bool ResolveDns(const std::string& host,
ResolveDnsOperation op,
std::string* output,
- bool* terminate) OVERRIDE;
- virtual void Alert(const base::string16& message) OVERRIDE;
- virtual void OnError(int line_number, const base::string16& error) OVERRIDE;
+ bool* terminate) override;
+ virtual void Alert(const base::string16& message) override;
+ virtual void OnError(int line_number, const base::string16& error) override;
bool ResolveDnsBlocking(const std::string& host,
ResolveDnsOperation op,
diff --git a/net/proxy/proxy_resolver_v8_tracing.h b/net/proxy/proxy_resolver_v8_tracing.h
index d738a09..92eac03 100644
--- a/net/proxy/proxy_resolver_v8_tracing.h
+++ b/net/proxy/proxy_resolver_v8_tracing.h
@@ -49,13 +49,13 @@
ProxyInfo* results,
const CompletionCallback& callback,
RequestHandle* request,
- const BoundNetLog& net_log) OVERRIDE;
- virtual void CancelRequest(RequestHandle request) OVERRIDE;
- virtual LoadState GetLoadState(RequestHandle request) const OVERRIDE;
- virtual void CancelSetPacScript() OVERRIDE;
+ const BoundNetLog& net_log) override;
+ virtual void CancelRequest(RequestHandle request) override;
+ virtual LoadState GetLoadState(RequestHandle request) const override;
+ virtual void CancelSetPacScript() override;
virtual int SetPacScript(
const scoped_refptr<ProxyResolverScriptData>& script_data,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
private:
class Job;
diff --git a/net/proxy/proxy_resolver_v8_tracing_unittest.cc b/net/proxy/proxy_resolver_v8_tracing_unittest.cc
index b5ea3e8..a6e38cb 100644
--- a/net/proxy/proxy_resolver_v8_tracing_unittest.cc
+++ b/net/proxy/proxy_resolver_v8_tracing_unittest.cc
@@ -31,7 +31,7 @@
class ProxyResolverV8TracingTest : public testing::Test {
public:
- virtual void TearDown() OVERRIDE {
+ virtual void TearDown() override {
// Drain any pending messages, which may be left over from cancellation.
// This way they get reliably run as part of the current test, rather than
// spilling into the next test's execution.
@@ -71,7 +71,7 @@
MockErrorObserver() : event_(true, false) {}
virtual void OnPACScriptError(int line_number,
- const base::string16& error) OVERRIDE {
+ const base::string16& error) override {
{
base::AutoLock l(lock_);
output += base::StringPrintf("Error: line %d: %s\n", line_number,
@@ -768,7 +768,7 @@
AddressList* addresses,
const CompletionCallback& callback,
RequestHandle* out_req,
- const BoundNetLog& net_log) OVERRIDE {
+ const BoundNetLog& net_log) override {
EXPECT_FALSE(callback.is_null());
EXPECT_TRUE(out_req);
@@ -791,12 +791,12 @@
virtual int ResolveFromCache(const RequestInfo& info,
AddressList* addresses,
- const BoundNetLog& net_log) OVERRIDE {
+ const BoundNetLog& net_log) override {
NOTREACHED();
return ERR_DNS_CACHE_MISS;
}
- virtual void CancelRequest(RequestHandle req) OVERRIDE {
+ virtual void CancelRequest(RequestHandle req) override {
EXPECT_EQ(reinterpret_cast<RequestHandle*>(1), req);
num_cancelled_requests_++;
}
diff --git a/net/proxy/proxy_resolver_v8_unittest.cc b/net/proxy/proxy_resolver_v8_unittest.cc
index b0f2d17..d0d01d9 100644
--- a/net/proxy/proxy_resolver_v8_unittest.cc
+++ b/net/proxy/proxy_resolver_v8_unittest.cc
@@ -26,7 +26,7 @@
MockJSBindings() : my_ip_address_count(0), my_ip_address_ex_count(0),
should_terminate(false) {}
- virtual void Alert(const base::string16& message) OVERRIDE {
+ virtual void Alert(const base::string16& message) override {
VLOG(1) << "PAC-alert: " << message; // Helpful when debugging.
alerts.push_back(base::UTF16ToUTF8(message));
}
@@ -34,7 +34,7 @@
virtual bool ResolveDns(const std::string& host,
ResolveDnsOperation op,
std::string* output,
- bool* terminate) OVERRIDE {
+ bool* terminate) override {
*terminate = should_terminate;
if (op == MY_IP_ADDRESS) {
@@ -66,7 +66,7 @@
}
virtual void OnError(int line_number,
- const base::string16& message) OVERRIDE {
+ const base::string16& message) override {
// Helpful when debugging.
VLOG(1) << "PAC-error: [" << line_number << "] " << message;
diff --git a/net/proxy/proxy_resolver_winhttp.h b/net/proxy/proxy_resolver_winhttp.h
index 62b5643..caa7a9f 100644
--- a/net/proxy/proxy_resolver_winhttp.h
+++ b/net/proxy/proxy_resolver_winhttp.h
@@ -25,16 +25,16 @@
ProxyInfo* results,
const net::CompletionCallback& /*callback*/,
RequestHandle* /*request*/,
- const BoundNetLog& /*net_log*/) OVERRIDE;
- virtual void CancelRequest(RequestHandle request) OVERRIDE;
+ const BoundNetLog& /*net_log*/) override;
+ virtual void CancelRequest(RequestHandle request) override;
- virtual LoadState GetLoadState(RequestHandle request) const OVERRIDE;
+ virtual LoadState GetLoadState(RequestHandle request) const override;
- virtual void CancelSetPacScript() OVERRIDE;
+ virtual void CancelSetPacScript() override;
virtual int SetPacScript(
const scoped_refptr<ProxyResolverScriptData>& script_data,
- const net::CompletionCallback& /*callback*/) OVERRIDE;
+ const net::CompletionCallback& /*callback*/) override;
private:
bool OpenWinHttpSession();
diff --git a/net/proxy/proxy_script_decider_unittest.cc b/net/proxy/proxy_script_decider_unittest.cc
index c50b31e..880a187 100644
--- a/net/proxy/proxy_script_decider_unittest.cc
+++ b/net/proxy/proxy_script_decider_unittest.cc
@@ -107,7 +107,7 @@
// ProxyScriptFetcher implementation.
virtual int Fetch(const GURL& url,
base::string16* text,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
const Rules::Rule& rule = rules_->GetRuleByUrl(url);
int rv = rule.fetch_error;
EXPECT_NE(ERR_UNEXPECTED, rv);
@@ -116,9 +116,9 @@
return rv;
}
- virtual void Cancel() OVERRIDE {}
+ virtual void Cancel() override {}
- virtual URLRequestContext* GetRequestContext() const OVERRIDE {
+ virtual URLRequestContext* GetRequestContext() const override {
return request_context_;
}
@@ -134,9 +134,9 @@
virtual ~MockDhcpProxyScriptFetcher();
virtual int Fetch(base::string16* utf16_text,
- const CompletionCallback& callback) OVERRIDE;
- virtual void Cancel() OVERRIDE;
- virtual const GURL& GetPacURL() const OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual void Cancel() override;
+ virtual const GURL& GetPacURL() const override;
virtual void SetPacURL(const GURL& url);
@@ -310,7 +310,7 @@
: rule_(rules_.AddSuccessRule("http://wpad/wpad.dat")),
fetcher_(&rules_) { }
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
request_context_.set_host_resolver(&resolver_);
fetcher_.SetRequestContext(&request_context_);
config_.set_auto_detect(true);
@@ -643,15 +643,15 @@
}
virtual int Fetch(base::string16* utf16_text,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
*utf16_text = expected_text_;
return OK;
}
- virtual void Cancel() OVERRIDE {
+ virtual void Cancel() override {
}
- virtual const GURL& GetPacURL() const OVERRIDE {
+ virtual const GURL& GetPacURL() const override {
return gurl_;
}
@@ -725,7 +725,7 @@
virtual ~AsyncFailDhcpFetcher() {}
virtual int Fetch(base::string16* utf16_text,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
callback_ = callback;
base::MessageLoop::current()->PostTask(
FROM_HERE,
@@ -733,11 +733,11 @@
return ERR_IO_PENDING;
}
- virtual void Cancel() OVERRIDE {
+ virtual void Cancel() override {
callback_.Reset();
}
- virtual const GURL& GetPacURL() const OVERRIDE {
+ virtual const GURL& GetPacURL() const override {
return dummy_gurl_;
}
diff --git a/net/proxy/proxy_script_fetcher_impl.h b/net/proxy/proxy_script_fetcher_impl.h
index 31e60b4..8cdcf81 100644
--- a/net/proxy/proxy_script_fetcher_impl.h
+++ b/net/proxy/proxy_script_fetcher_impl.h
@@ -46,18 +46,18 @@
// ProxyScriptFetcher methods:
virtual int Fetch(const GURL& url, base::string16* text,
- const net::CompletionCallback& callback) OVERRIDE;
- virtual void Cancel() OVERRIDE;
- virtual URLRequestContext* GetRequestContext() const OVERRIDE;
+ const net::CompletionCallback& callback) override;
+ virtual void Cancel() override;
+ virtual URLRequestContext* GetRequestContext() const override;
// URLRequest::Delegate methods:
virtual void OnAuthRequired(URLRequest* request,
- AuthChallengeInfo* auth_info) OVERRIDE;
+ AuthChallengeInfo* auth_info) override;
virtual void OnSSLCertificateError(URLRequest* request,
const SSLInfo& ssl_info,
- bool is_hsts_ok) OVERRIDE;
- virtual void OnResponseStarted(URLRequest* request) OVERRIDE;
- virtual void OnReadCompleted(URLRequest* request, int num_bytes) OVERRIDE;
+ bool is_hsts_ok) override;
+ virtual void OnResponseStarted(URLRequest* request) override;
+ virtual void OnReadCompleted(URLRequest* request, int num_bytes) override;
private:
enum { kBufSize = 4096 };
diff --git a/net/proxy/proxy_script_fetcher_impl_unittest.cc b/net/proxy/proxy_script_fetcher_impl_unittest.cc
index bc927e0..5eb887e 100644
--- a/net/proxy/proxy_script_fetcher_impl_unittest.cc
+++ b/net/proxy/proxy_script_fetcher_impl_unittest.cc
@@ -117,74 +117,74 @@
private:
virtual int OnBeforeURLRequest(URLRequest* request,
const CompletionCallback& callback,
- GURL* new_url) OVERRIDE {
+ GURL* new_url) override {
EXPECT_TRUE(request->load_flags() & LOAD_DISABLE_CERT_REVOCATION_CHECKING);
return OK;
}
virtual int OnBeforeSendHeaders(URLRequest* request,
const CompletionCallback& callback,
- HttpRequestHeaders* headers) OVERRIDE {
+ HttpRequestHeaders* headers) override {
return OK;
}
virtual void OnSendHeaders(URLRequest* request,
- const HttpRequestHeaders& headers) OVERRIDE {}
+ const HttpRequestHeaders& headers) override {}
virtual int OnHeadersReceived(
URLRequest* request,
const CompletionCallback& callback,
const HttpResponseHeaders* original_response_headers,
scoped_refptr<HttpResponseHeaders>* override_response_headers,
- GURL* allowed_unsafe_redirect_url) OVERRIDE {
+ GURL* allowed_unsafe_redirect_url) override {
return OK;
}
virtual void OnBeforeRedirect(URLRequest* request,
- const GURL& new_location) OVERRIDE {}
+ const GURL& new_location) override {}
- virtual void OnResponseStarted(URLRequest* request) OVERRIDE {}
+ virtual void OnResponseStarted(URLRequest* request) override {}
virtual void OnRawBytesRead(const URLRequest& request,
- int bytes_read) OVERRIDE {}
+ int bytes_read) override {}
- virtual void OnCompleted(URLRequest* request, bool started) OVERRIDE {}
+ virtual void OnCompleted(URLRequest* request, bool started) override {}
- virtual void OnURLRequestDestroyed(URLRequest* request) OVERRIDE {}
+ virtual void OnURLRequestDestroyed(URLRequest* request) override {}
virtual void OnPACScriptError(int line_number,
- const base::string16& error) OVERRIDE {}
+ const base::string16& error) override {}
virtual NetworkDelegate::AuthRequiredResponse OnAuthRequired(
URLRequest* request,
const AuthChallengeInfo& auth_info,
const AuthCallback& callback,
- AuthCredentials* credentials) OVERRIDE {
+ AuthCredentials* credentials) override {
return NetworkDelegate::AUTH_REQUIRED_RESPONSE_NO_ACTION;
}
virtual bool OnCanGetCookies(const URLRequest& request,
- const CookieList& cookie_list) OVERRIDE {
+ const CookieList& cookie_list) override {
return true;
}
virtual bool OnCanSetCookie(const URLRequest& request,
const std::string& cookie_line,
- CookieOptions* options) OVERRIDE {
+ CookieOptions* options) override {
return true;
}
virtual bool OnCanAccessFile(const net::URLRequest& request,
- const base::FilePath& path) const OVERRIDE {
+ const base::FilePath& path) const override {
return true;
}
- virtual bool OnCanThrottleRequest(const URLRequest& request) const OVERRIDE {
+ virtual bool OnCanThrottleRequest(const URLRequest& request) const override {
return false;
}
virtual int OnBeforeSocketStreamConnect(
SocketStream* stream,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return OK;
}
diff --git a/net/proxy/proxy_service.cc b/net/proxy/proxy_service.cc
index 47a4dc2..52e9f7f 100644
--- a/net/proxy/proxy_service.cc
+++ b/net/proxy/proxy_service.cc
@@ -121,7 +121,7 @@
virtual Mode GetNextDelay(int initial_error,
TimeDelta current_delay,
- TimeDelta* next_delay) const OVERRIDE {
+ TimeDelta* next_delay) const override {
if (initial_error != OK) {
// Re-try policy for failures.
const int kDelay1Seconds = 8;
@@ -160,10 +160,10 @@
class ProxyConfigServiceDirect : public ProxyConfigService {
public:
// ProxyConfigService implementation:
- virtual void AddObserver(Observer* observer) OVERRIDE {}
- virtual void RemoveObserver(Observer* observer) OVERRIDE {}
+ virtual void AddObserver(Observer* observer) override {}
+ virtual void RemoveObserver(Observer* observer) override {}
virtual ConfigAvailability GetLatestProxyConfig(ProxyConfig* config)
- OVERRIDE {
+ override {
*config = ProxyConfig::CreateDirect();
config->set_source(PROXY_CONFIG_SOURCE_UNKNOWN);
return CONFIG_VALID;
@@ -180,26 +180,26 @@
ProxyInfo* results,
const CompletionCallback& callback,
RequestHandle* request,
- const BoundNetLog& net_log) OVERRIDE {
+ const BoundNetLog& net_log) override {
return ERR_NOT_IMPLEMENTED;
}
- virtual void CancelRequest(RequestHandle request) OVERRIDE {
+ virtual void CancelRequest(RequestHandle request) override {
NOTREACHED();
}
- virtual LoadState GetLoadState(RequestHandle request) const OVERRIDE {
+ virtual LoadState GetLoadState(RequestHandle request) const override {
NOTREACHED();
return LOAD_STATE_IDLE;
}
- virtual void CancelSetPacScript() OVERRIDE {
+ virtual void CancelSetPacScript() override {
NOTREACHED();
}
virtual int SetPacScript(
const scoped_refptr<ProxyResolverScriptData>& /*script_data*/,
- const CompletionCallback& /*callback*/) OVERRIDE {
+ const CompletionCallback& /*callback*/) override {
return ERR_NOT_IMPLEMENTED;
}
};
@@ -216,27 +216,27 @@
ProxyInfo* results,
const CompletionCallback& callback,
RequestHandle* request,
- const BoundNetLog& net_log) OVERRIDE {
+ const BoundNetLog& net_log) override {
results->UsePacString(pac_string_);
return OK;
}
- virtual void CancelRequest(RequestHandle request) OVERRIDE {
+ virtual void CancelRequest(RequestHandle request) override {
NOTREACHED();
}
- virtual LoadState GetLoadState(RequestHandle request) const OVERRIDE {
+ virtual LoadState GetLoadState(RequestHandle request) const override {
NOTREACHED();
return LOAD_STATE_IDLE;
}
- virtual void CancelSetPacScript() OVERRIDE {
+ virtual void CancelSetPacScript() override {
NOTREACHED();
}
virtual int SetPacScript(
const scoped_refptr<ProxyResolverScriptData>& pac_script,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return OK;
}
@@ -250,7 +250,7 @@
ProxyResolverFactoryForSystem()
: ProxyResolverFactory(false /*expects_pac_bytes*/) {}
- virtual ProxyResolver* CreateProxyResolver() OVERRIDE {
+ virtual ProxyResolver* CreateProxyResolver() override {
DCHECK(IsSupported());
#if defined(OS_WIN)
return new ProxyResolverWinHttp();
@@ -313,10 +313,10 @@
UnsetProxyConfigService() {}
virtual ~UnsetProxyConfigService() {}
- virtual void AddObserver(Observer* observer) OVERRIDE {}
- virtual void RemoveObserver(Observer* observer) OVERRIDE {}
+ virtual void AddObserver(Observer* observer) override {}
+ virtual void RemoveObserver(Observer* observer) override {}
virtual ConfigAvailability GetLatestProxyConfig(
- ProxyConfig* config) OVERRIDE {
+ ProxyConfig* config) override {
return CONFIG_UNSET;
}
};
diff --git a/net/proxy/proxy_service.h b/net/proxy/proxy_service.h
index 9fdcb58..6f32c29 100644
--- a/net/proxy/proxy_service.h
+++ b/net/proxy/proxy_service.h
@@ -356,16 +356,16 @@
// NetworkChangeNotifier::IPAddressObserver
// When this is called, we re-fetch PAC scripts and re-run WPAD.
- virtual void OnIPAddressChanged() OVERRIDE;
+ virtual void OnIPAddressChanged() override;
// NetworkChangeNotifier::DNSObserver
// We respond as above.
- virtual void OnDNSChanged() OVERRIDE;
+ virtual void OnDNSChanged() override;
// ProxyConfigService::Observer
virtual void OnProxyConfigChanged(
const ProxyConfig& config,
- ProxyConfigService::ConfigAvailability availability) OVERRIDE;
+ ProxyConfigService::ConfigAvailability availability) override;
scoped_ptr<ProxyConfigService> config_service_;
scoped_ptr<ProxyResolver> resolver_;
diff --git a/net/proxy/proxy_service_unittest.cc b/net/proxy/proxy_service_unittest.cc
index a222710..12f9af2 100644
--- a/net/proxy/proxy_service_unittest.cc
+++ b/net/proxy/proxy_service_unittest.cc
@@ -38,7 +38,7 @@
ImmediatePollPolicy() {}
virtual Mode GetNextDelay(int error, base::TimeDelta current_delay,
- base::TimeDelta* next_delay) const OVERRIDE {
+ base::TimeDelta* next_delay) const override {
*next_delay = base::TimeDelta::FromMilliseconds(1);
return MODE_USE_TIMER;
}
@@ -54,7 +54,7 @@
NeverPollPolicy() {}
virtual Mode GetNextDelay(int error, base::TimeDelta current_delay,
- base::TimeDelta* next_delay) const OVERRIDE {
+ base::TimeDelta* next_delay) const override {
*next_delay = base::TimeDelta::FromDays(60);
return MODE_USE_TIMER;
}
@@ -69,7 +69,7 @@
ImmediateAfterActivityPollPolicy() {}
virtual Mode GetNextDelay(int error, base::TimeDelta current_delay,
- base::TimeDelta* next_delay) const OVERRIDE {
+ base::TimeDelta* next_delay) const override {
*next_delay = base::TimeDelta();
return MODE_START_AFTER_ACTIVITY;
}
@@ -95,13 +95,13 @@
// are careful to avoid timing problems.
class ProxyServiceTest : public testing::Test {
protected:
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
testing::Test::SetUp();
previous_policy_ =
ProxyService::set_pac_script_poll_policy(&never_poll_policy_);
}
- virtual void TearDown() OVERRIDE {
+ virtual void TearDown() override {
// Restore the original policy.
ProxyService::set_pac_script_poll_policy(previous_policy_);
testing::Test::TearDown();
@@ -127,16 +127,16 @@
config_(ProxyConfig::CreateFromCustomPacURL(GURL(pac_url))) {
}
- virtual void AddObserver(Observer* observer) OVERRIDE {
+ virtual void AddObserver(Observer* observer) override {
observers_.AddObserver(observer);
}
- virtual void RemoveObserver(Observer* observer) OVERRIDE {
+ virtual void RemoveObserver(Observer* observer) override {
observers_.RemoveObserver(observer);
}
virtual ConfigAvailability GetLatestProxyConfig(ProxyConfig* results)
- OVERRIDE {
+ override {
if (availability_ == CONFIG_VALID)
*results = config_;
return availability_;
@@ -168,7 +168,7 @@
virtual void OnResolveProxy(const GURL& url,
int load_flags,
const ProxyService& proxy_service,
- ProxyInfo* result) OVERRIDE {
+ ProxyInfo* result) override {
on_resolve_proxy_called_ = true;
proxy_service_ = &proxy_service;
DCHECK(!add_proxy_ || !remove_proxy_);
@@ -211,7 +211,7 @@
}
virtual void OnProxyFallback(const ProxyServer& proxy_server,
- int net_error) OVERRIDE {
+ int net_error) override {
proxy_server_ = proxy_server;
proxy_fallback_net_error_ = net_error;
on_proxy_fallback_called_ = true;
diff --git a/net/quic/congestion_control/cubic.cc b/net/quic/congestion_control/cubic.cc
index dec529d..22b0a90 100644
--- a/net/quic/congestion_control/cubic.cc
+++ b/net/quic/congestion_control/cubic.cc
@@ -82,8 +82,8 @@
QuicTcpCongestionWindow new_cubic_mode_cwnd,
QuicTcpCongestionWindow new_reno_mode_cwnd) {
- QuicTcpCongestionWindow highest_new_cwnd = std::max(new_cubic_mode_cwnd,
- new_reno_mode_cwnd);
+ QuicTcpCongestionWindow highest_new_cwnd = max(new_cubic_mode_cwnd,
+ new_reno_mode_cwnd);
if (last_congestion_window_ < highest_new_cwnd) {
// cwnd will increase to highest_new_cwnd.
stats_->cwnd_increase_congestion_avoidance +=
diff --git a/net/quic/congestion_control/hybrid_slow_start.cc b/net/quic/congestion_control/hybrid_slow_start.cc
index 2ae3b50..4b1e842 100644
--- a/net/quic/congestion_control/hybrid_slow_start.cc
+++ b/net/quic/congestion_control/hybrid_slow_start.cc
@@ -18,8 +18,8 @@
const uint32 kHybridStartMinSamples = 8;
const int kHybridStartDelayFactorExp = 4; // 2^4 = 16
// The original paper specifies 2 and 8ms, but those have changed over time.
-const int kHybridStartDelayMinThresholdUs = 4000;
-const int kHybridStartDelayMaxThresholdUs = 16000;
+const int64 kHybridStartDelayMinThresholdUs = 4000;
+const int64 kHybridStartDelayMaxThresholdUs = 16000;
HybridSlowStart::HybridSlowStart(const QuicClock* clock)
: clock_(clock),
@@ -116,7 +116,7 @@
// We only need to check this once per round.
if (rtt_sample_count_ == kHybridStartMinSamples) {
// Divide min_rtt by 16 to get a rtt increase threshold for exiting.
- int min_rtt_increase_threshold_us = min_rtt.ToMicroseconds() >>
+ int64 min_rtt_increase_threshold_us = min_rtt.ToMicroseconds() >>
kHybridStartDelayFactorExp;
// Ensure the rtt threshold is never less than 2ms or more than 16ms.
min_rtt_increase_threshold_us = min(min_rtt_increase_threshold_us,
diff --git a/net/quic/congestion_control/pacing_sender.cc b/net/quic/congestion_control/pacing_sender.cc
index 20d2b3b..03e5534 100644
--- a/net/quic/congestion_control/pacing_sender.cc
+++ b/net/quic/congestion_control/pacing_sender.cc
@@ -15,15 +15,12 @@
burst_tokens_(initial_packet_burst),
last_delayed_packet_sent_time_(QuicTime::Zero()),
next_packet_send_time_(QuicTime::Zero()),
- was_last_send_delayed_(false),
- has_valid_rtt_(false) {
+ was_last_send_delayed_(false) {
}
PacingSender::~PacingSender() {}
void PacingSender::SetFromConfig(const QuicConfig& config, bool is_server) {
- // TODO(ianswett): Consider using the suggested RTT for pacing an initial
- // response.
sender_->SetFromConfig(config, is_server);
}
@@ -42,9 +39,6 @@
QuicByteCount bytes_in_flight,
const CongestionVector& acked_packets,
const CongestionVector& lost_packets) {
- if (rtt_updated) {
- has_valid_rtt_ = true;
- }
sender_->OnCongestionEvent(
rtt_updated, bytes_in_flight, acked_packets, lost_packets);
}
@@ -55,11 +49,10 @@
QuicPacketSequenceNumber sequence_number,
QuicByteCount bytes,
HasRetransmittableData has_retransmittable_data) {
- // Only pace data packets once we have an updated RTT.
const bool in_flight =
sender_->OnPacketSent(sent_time, bytes_in_flight, sequence_number,
bytes, has_retransmittable_data);
- if (has_retransmittable_data != HAS_RETRANSMITTABLE_DATA || !has_valid_rtt_) {
+ if (has_retransmittable_data != HAS_RETRANSMITTABLE_DATA) {
return in_flight;
}
if (burst_tokens_ > 0) {
@@ -117,10 +110,6 @@
HasRetransmittableData has_retransmittable_data) const {
QuicTime::Delta time_until_send =
sender_->TimeUntilSend(now, bytes_in_flight, has_retransmittable_data);
- if (!has_valid_rtt_) {
- // Don't pace if we don't have an updated RTT estimate.
- return time_until_send;
- }
if (bytes_in_flight == 0) {
// Add more burst tokens anytime the connection is entering quiescence.
burst_tokens_ = initial_packet_burst_;
@@ -143,6 +132,8 @@
}
// If the next send time is within the alarm granularity, send immediately.
+ // TODO(ianswett): This granularity logic ends up sending more packets than
+ // intended in an effort to make up for lost time that wasn't lost.
if (next_packet_send_time_ > now.Add(alarm_granularity_)) {
DVLOG(1) << "Delaying packet: "
<< next_packet_send_time_.Subtract(now).ToMicroseconds();
diff --git a/net/quic/congestion_control/pacing_sender.h b/net/quic/congestion_control/pacing_sender.h
index f61ae75..e50527d 100644
--- a/net/quic/congestion_control/pacing_sender.h
+++ b/net/quic/congestion_control/pacing_sender.h
@@ -35,34 +35,34 @@
virtual ~PacingSender();
// SendAlgorithmInterface methods.
- virtual void SetFromConfig(const QuicConfig& config, bool is_server) OVERRIDE;
- virtual void SetNumEmulatedConnections(int num_connections) OVERRIDE;
+ virtual void SetFromConfig(const QuicConfig& config, bool is_server) override;
+ virtual void SetNumEmulatedConnections(int num_connections) override;
virtual void OnIncomingQuicCongestionFeedbackFrame(
const QuicCongestionFeedbackFrame& feedback,
- QuicTime feedback_receive_time) OVERRIDE;
+ QuicTime feedback_receive_time) override;
virtual void OnCongestionEvent(bool rtt_updated,
QuicByteCount bytes_in_flight,
const CongestionVector& acked_packets,
- const CongestionVector& lost_packets) OVERRIDE;
+ const CongestionVector& lost_packets) override;
virtual bool OnPacketSent(QuicTime sent_time,
QuicByteCount bytes_in_flight,
QuicPacketSequenceNumber sequence_number,
QuicByteCount bytes,
- HasRetransmittableData is_retransmittable) OVERRIDE;
- virtual void OnRetransmissionTimeout(bool packets_retransmitted) OVERRIDE;
- virtual void RevertRetransmissionTimeout() OVERRIDE;
+ HasRetransmittableData is_retransmittable) override;
+ virtual void OnRetransmissionTimeout(bool packets_retransmitted) override;
+ virtual void RevertRetransmissionTimeout() override;
virtual QuicTime::Delta TimeUntilSend(
QuicTime now,
QuicByteCount bytes_in_flight,
- HasRetransmittableData has_retransmittable_data) const OVERRIDE;
- virtual QuicBandwidth BandwidthEstimate() const OVERRIDE;
- virtual bool HasReliableBandwidthEstimate() const OVERRIDE;
- virtual QuicTime::Delta RetransmissionDelay() const OVERRIDE;
- virtual QuicByteCount GetCongestionWindow() const OVERRIDE;
- virtual bool InSlowStart() const OVERRIDE;
- virtual bool InRecovery() const OVERRIDE;
- virtual QuicByteCount GetSlowStartThreshold() const OVERRIDE;
- virtual CongestionControlType GetCongestionControlType() const OVERRIDE;
+ HasRetransmittableData has_retransmittable_data) const override;
+ virtual QuicBandwidth BandwidthEstimate() const override;
+ virtual bool HasReliableBandwidthEstimate() const override;
+ virtual QuicTime::Delta RetransmissionDelay() const override;
+ virtual QuicByteCount GetCongestionWindow() const override;
+ virtual bool InSlowStart() const override;
+ virtual bool InRecovery() const override;
+ virtual QuicByteCount GetSlowStartThreshold() const override;
+ virtual CongestionControlType GetCongestionControlType() const override;
private:
scoped_ptr<SendAlgorithmInterface> sender_; // Underlying sender.
@@ -73,7 +73,6 @@
QuicTime last_delayed_packet_sent_time_;
QuicTime next_packet_send_time_; // When can the next packet be sent.
mutable bool was_last_send_delayed_; // True when the last send was delayed.
- bool has_valid_rtt_; // True if we have at least one RTT update.
DISALLOW_COPY_AND_ASSIGN(PacingSender);
};
diff --git a/net/quic/congestion_control/pacing_sender_test.cc b/net/quic/congestion_control/pacing_sender_test.cc
index 768cc22..f887c54 100644
--- a/net/quic/congestion_control/pacing_sender_test.cc
+++ b/net/quic/congestion_control/pacing_sender_test.cc
@@ -19,6 +19,7 @@
namespace test {
const QuicByteCount kBytesInFlight = 1024;
+const int kInitialBurstPackets = 10;
class PacingSenderTest : public ::testing::Test {
protected:
@@ -142,11 +143,6 @@
.WillRepeatedly(Return(QuicBandwidth::FromBytesAndTimeDelta(
kMaxPacketSize, QuicTime::Delta::FromMilliseconds(2))));
- // Send a whole pile of packets, and verify that they are not paced.
- for (int i = 0 ; i < 1000; ++i) {
- CheckPacketIsSentImmediately();
- }
-
// Now update the RTT and verify that packets are actually paced.
EXPECT_CALL(*mock_sender_, OnCongestionEvent(true, kBytesInFlight, _, _));
SendAlgorithmInterface::CongestionVector empty_map;
@@ -217,11 +213,6 @@
.WillRepeatedly(Return(QuicBandwidth::FromBytesAndTimeDelta(
kMaxPacketSize, QuicTime::Delta::FromMilliseconds(2))));
- // Send a whole pile of packets, and verify that they are not paced.
- for (int i = 0 ; i < 1000; ++i) {
- CheckPacketIsSentImmediately();
- }
-
// Now update the RTT and verify that packets are actually paced.
EXPECT_CALL(*mock_sender_, OnCongestionEvent(true, kBytesInFlight, _, _));
SendAlgorithmInterface::CongestionVector empty_map;
@@ -296,17 +287,17 @@
pacing_sender_->OnCongestionEvent(true, kBytesInFlight, empty_map, empty_map);
// Send 10 packets, and verify that they are not paced.
- for (int i = 0 ; i < 10; ++i) {
+ for (int i = 0 ; i < kInitialBurstPackets; ++i) {
CheckPacketIsSentImmediately();
}
- CheckPacketIsSentImmediately();
- CheckPacketIsSentImmediately();
- CheckPacketIsSentImmediately();
-
// The first packet was a "make up", then we sent two packets "into the
- // future", so the delay should be 2.
+ // future", so the delay should be 2ms.
+ CheckPacketIsSentImmediately();
+ CheckPacketIsSentImmediately();
+ CheckPacketIsSentImmediately();
CheckPacketIsDelayed(QuicTime::Delta::FromMilliseconds(2));
+
clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(5));
CheckPacketIsSentImmediately();
@@ -321,14 +312,70 @@
pacing_sender_->TimeUntilSend(clock_.Now(),
0,
HAS_RETRANSMITTABLE_DATA));
- for (int i = 0 ; i < 10; ++i) {
+ for (int i = 0 ; i < kInitialBurstPackets; ++i) {
CheckPacketIsSentImmediately();
}
+ // The first packet was a "make up", then we sent two packets "into the
+ // future", so the delay should be 2ms.
CheckPacketIsSentImmediately();
CheckPacketIsSentImmediately();
CheckPacketIsSentImmediately();
+ CheckPacketIsDelayed(QuicTime::Delta::FromMilliseconds(2));
+}
+
+TEST_F(PacingSenderTest, InitialBurstNoRttMeasurement) {
+ pacing_sender_.reset();
+ mock_sender_ = new StrictMock<MockSendAlgorithm>();
+ pacing_sender_.reset(new PacingSender(mock_sender_,
+ QuicTime::Delta::FromMilliseconds(1),
+ 10));
+ // Start the test in slow start.
+ EXPECT_CALL(*mock_sender_, InSlowStart()).WillRepeatedly(Return(true));
+
+ // Configure bandwith of 1 packet per 2 ms, for which the pacing rate
+ // will be 1 packet per 1 ms.
+ EXPECT_CALL(*mock_sender_, BandwidthEstimate())
+ .WillRepeatedly(Return(QuicBandwidth::FromBytesAndTimeDelta(
+ kMaxPacketSize, QuicTime::Delta::FromMilliseconds(2))));
+
+ // Send 10 packets, and verify that they are not paced.
+ for (int i = 0 ; i < kInitialBurstPackets; ++i) {
+ CheckPacketIsSentImmediately();
+ }
+
+ // The first packet was a "make up", then we sent two packets "into the
+ // future", so the delay should be 2ms.
+ CheckPacketIsSentImmediately();
+ CheckPacketIsSentImmediately();
+ CheckPacketIsSentImmediately();
+ CheckPacketIsDelayed(QuicTime::Delta::FromMilliseconds(2));
+
+
+ clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(5));
+ CheckPacketIsSentImmediately();
+ // Next time TimeUntilSend is called with no bytes in flight, the tokens
+ // should be refilled and there should be no delay.
+ EXPECT_CALL(*mock_sender_,
+ TimeUntilSend(clock_.Now(),
+ 0,
+ HAS_RETRANSMITTABLE_DATA)).
+ WillOnce(Return(zero_time_));
+ EXPECT_EQ(zero_time_,
+ pacing_sender_->TimeUntilSend(clock_.Now(),
+ 0,
+ HAS_RETRANSMITTABLE_DATA));
+ // Send 10 packets, and verify that they are not paced.
+ for (int i = 0 ; i < kInitialBurstPackets; ++i) {
+ CheckPacketIsSentImmediately();
+ }
+
+ // The first packet was a "make up", then we sent two packets "into the
+ // future", so the delay should be 2ms.
+ CheckPacketIsSentImmediately();
+ CheckPacketIsSentImmediately();
+ CheckPacketIsSentImmediately();
CheckPacketIsDelayed(QuicTime::Delta::FromMilliseconds(2));
}
diff --git a/net/quic/congestion_control/tcp_cubic_sender.h b/net/quic/congestion_control/tcp_cubic_sender.h
index 8851ac4..dd0df58 100644
--- a/net/quic/congestion_control/tcp_cubic_sender.h
+++ b/net/quic/congestion_control/tcp_cubic_sender.h
@@ -38,34 +38,34 @@
virtual ~TcpCubicSender();
// Start implementation of SendAlgorithmInterface.
- virtual void SetFromConfig(const QuicConfig& config, bool is_server) OVERRIDE;
- virtual void SetNumEmulatedConnections(int num_connections) OVERRIDE;
+ virtual void SetFromConfig(const QuicConfig& config, bool is_server) override;
+ virtual void SetNumEmulatedConnections(int num_connections) override;
virtual void OnIncomingQuicCongestionFeedbackFrame(
const QuicCongestionFeedbackFrame& feedback,
- QuicTime feedback_receive_time) OVERRIDE;
+ QuicTime feedback_receive_time) override;
virtual void OnCongestionEvent(bool rtt_updated,
QuicByteCount bytes_in_flight,
const CongestionVector& acked_packets,
- const CongestionVector& lost_packets) OVERRIDE;
+ const CongestionVector& lost_packets) override;
virtual bool OnPacketSent(QuicTime sent_time,
QuicByteCount bytes_in_flight,
QuicPacketSequenceNumber sequence_number,
QuicByteCount bytes,
- HasRetransmittableData is_retransmittable) OVERRIDE;
- virtual void OnRetransmissionTimeout(bool packets_retransmitted) OVERRIDE;
- virtual void RevertRetransmissionTimeout() OVERRIDE;
+ HasRetransmittableData is_retransmittable) override;
+ virtual void OnRetransmissionTimeout(bool packets_retransmitted) override;
+ virtual void RevertRetransmissionTimeout() override;
virtual QuicTime::Delta TimeUntilSend(
QuicTime now,
QuicByteCount bytes_in_flight,
- HasRetransmittableData has_retransmittable_data) const OVERRIDE;
- virtual QuicBandwidth BandwidthEstimate() const OVERRIDE;
- virtual bool HasReliableBandwidthEstimate() const OVERRIDE;
- virtual QuicTime::Delta RetransmissionDelay() const OVERRIDE;
- virtual QuicByteCount GetCongestionWindow() const OVERRIDE;
- virtual bool InSlowStart() const OVERRIDE;
- virtual bool InRecovery() const OVERRIDE;
- virtual QuicByteCount GetSlowStartThreshold() const OVERRIDE;
- virtual CongestionControlType GetCongestionControlType() const OVERRIDE;
+ HasRetransmittableData has_retransmittable_data) const override;
+ virtual QuicBandwidth BandwidthEstimate() const override;
+ virtual bool HasReliableBandwidthEstimate() const override;
+ virtual QuicTime::Delta RetransmissionDelay() const override;
+ virtual QuicByteCount GetCongestionWindow() const override;
+ virtual bool InSlowStart() const override;
+ virtual bool InRecovery() const override;
+ virtual QuicByteCount GetSlowStartThreshold() const override;
+ virtual CongestionControlType GetCongestionControlType() const override;
// End implementation of SendAlgorithmInterface.
private:
diff --git a/net/quic/congestion_control/tcp_cubic_sender_test.cc b/net/quic/congestion_control/tcp_cubic_sender_test.cc
index 851c1a1..731b8f5 100644
--- a/net/quic/congestion_control/tcp_cubic_sender_test.cc
+++ b/net/quic/congestion_control/tcp_cubic_sender_test.cc
@@ -670,8 +670,8 @@
expected_send_window /= 2;
EXPECT_EQ(expected_send_window, sender_->GetCongestionWindow());
- // No congestion window growth should occur in recovery phase, i.e.,
- // until the currently outstanding 20 packets are acked.
+ // No congestion window growth should occur in recovery phase, i.e., until the
+ // currently outstanding 20 packets are acked.
for (int i = 0; i < 10; ++i) {
// Send our full send window.
SendAvailableSendWindow();
diff --git a/net/quic/congestion_control/tcp_loss_algorithm.cc b/net/quic/congestion_control/tcp_loss_algorithm.cc
index 557681e..b0a5a15 100644
--- a/net/quic/congestion_control/tcp_loss_algorithm.cc
+++ b/net/quic/congestion_control/tcp_loss_algorithm.cc
@@ -46,7 +46,9 @@
}
LOG_IF(DFATAL, it->nack_count == 0)
- << "All packets less than largest observed should have been nacked.";
+ << "All packets less than largest observed should have been nacked."
+ << "sequence_number:" << sequence_number
+ << " largest_observed:" << largest_observed;
if (it->nack_count >= kNumberOfNacksBeforeRetransmission) {
lost_packets.insert(sequence_number);
continue;
diff --git a/net/quic/congestion_control/tcp_loss_algorithm.h b/net/quic/congestion_control/tcp_loss_algorithm.h
index 5f0bcfb..201354b 100644
--- a/net/quic/congestion_control/tcp_loss_algorithm.h
+++ b/net/quic/congestion_control/tcp_loss_algorithm.h
@@ -23,17 +23,17 @@
TCPLossAlgorithm();
virtual ~TCPLossAlgorithm() {}
- virtual LossDetectionType GetLossDetectionType() const OVERRIDE;
+ virtual LossDetectionType GetLossDetectionType() const override;
// Uses nack counts to decide when packets are lost.
virtual SequenceNumberSet DetectLostPackets(
const QuicUnackedPacketMap& unacked_packets,
const QuicTime& time,
QuicPacketSequenceNumber largest_observed,
- const RttStats& rtt_stats) OVERRIDE;
+ const RttStats& rtt_stats) override;
// Returns a non-zero value when the early retransmit timer is active.
- virtual QuicTime GetLossTimeout() const OVERRIDE;
+ virtual QuicTime GetLossTimeout() const override;
private:
QuicTime loss_detection_timeout_;
diff --git a/net/quic/congestion_control/tcp_receiver.h b/net/quic/congestion_control/tcp_receiver.h
index a5e5b1b..89e9186 100644
--- a/net/quic/congestion_control/tcp_receiver.h
+++ b/net/quic/congestion_control/tcp_receiver.h
@@ -25,11 +25,11 @@
// Start implementation of SendAlgorithmInterface.
virtual bool GenerateCongestionFeedback(
- QuicCongestionFeedbackFrame* feedback) OVERRIDE;
+ QuicCongestionFeedbackFrame* feedback) override;
virtual void RecordIncomingPacket(QuicByteCount bytes,
QuicPacketSequenceNumber sequence_number,
- QuicTime timestamp) OVERRIDE;
+ QuicTime timestamp) override;
private:
QuicByteCount receive_window_;
diff --git a/net/quic/congestion_control/time_loss_algorithm.h b/net/quic/congestion_control/time_loss_algorithm.h
index ae37e1e..de517ef 100644
--- a/net/quic/congestion_control/time_loss_algorithm.h
+++ b/net/quic/congestion_control/time_loss_algorithm.h
@@ -23,7 +23,7 @@
TimeLossAlgorithm();
virtual ~TimeLossAlgorithm() {}
- virtual LossDetectionType GetLossDetectionType() const OVERRIDE;
+ virtual LossDetectionType GetLossDetectionType() const override;
// Declares pending packets less than the largest observed lost when it has
// been 1.25 RTT since they were sent. Packets larger than the largest
@@ -32,14 +32,14 @@
const QuicUnackedPacketMap& unacked_packets,
const QuicTime& time,
QuicPacketSequenceNumber largest_observed,
- const RttStats& rtt_stats) OVERRIDE;
+ const RttStats& rtt_stats) override;
// Returns the time the next packet will be lost, or zero if there
// are no nacked pending packets outstanding.
// TODO(ianswett): Ideally the RTT variance and the RTT would be used to
// determine the time a packet is considered lost.
// TODO(ianswett): Consider using Max(1.25 * srtt, 1.125 * last_rtt).
- virtual QuicTime GetLossTimeout() const OVERRIDE;
+ virtual QuicTime GetLossTimeout() const override;
private:
QuicTime loss_detection_timeout_;
diff --git a/net/quic/crypto/aead_base_decrypter.h b/net/quic/crypto/aead_base_decrypter.h
index 6257409..116dbe1 100644
--- a/net/quic/crypto/aead_base_decrypter.h
+++ b/net/quic/crypto/aead_base_decrypter.h
@@ -40,18 +40,18 @@
virtual ~AeadBaseDecrypter();
// QuicDecrypter implementation
- virtual bool SetKey(base::StringPiece key) OVERRIDE;
- virtual bool SetNoncePrefix(base::StringPiece nonce_prefix) OVERRIDE;
+ virtual bool SetKey(base::StringPiece key) override;
+ virtual bool SetNoncePrefix(base::StringPiece nonce_prefix) override;
virtual bool Decrypt(base::StringPiece nonce,
base::StringPiece associated_data,
base::StringPiece ciphertext,
unsigned char* output,
- size_t* output_length) OVERRIDE;
+ size_t* output_length) override;
virtual QuicData* DecryptPacket(QuicPacketSequenceNumber sequence_number,
base::StringPiece associated_data,
- base::StringPiece ciphertext) OVERRIDE;
- virtual base::StringPiece GetKey() const OVERRIDE;
- virtual base::StringPiece GetNoncePrefix() const OVERRIDE;
+ base::StringPiece ciphertext) override;
+ virtual base::StringPiece GetKey() const override;
+ virtual base::StringPiece GetNoncePrefix() const override;
protected:
// Make these constants available to the subclasses so that the subclasses
diff --git a/net/quic/crypto/aead_base_encrypter.h b/net/quic/crypto/aead_base_encrypter.h
index 7138131..89c7a1f 100644
--- a/net/quic/crypto/aead_base_encrypter.h
+++ b/net/quic/crypto/aead_base_encrypter.h
@@ -40,21 +40,21 @@
virtual ~AeadBaseEncrypter();
// QuicEncrypter implementation
- virtual bool SetKey(base::StringPiece key) OVERRIDE;
- virtual bool SetNoncePrefix(base::StringPiece nonce_prefix) OVERRIDE;
+ virtual bool SetKey(base::StringPiece key) override;
+ virtual bool SetNoncePrefix(base::StringPiece nonce_prefix) override;
virtual bool Encrypt(base::StringPiece nonce,
base::StringPiece associated_data,
base::StringPiece plaintext,
- unsigned char* output) OVERRIDE;
+ unsigned char* output) override;
virtual QuicData* EncryptPacket(QuicPacketSequenceNumber sequence_number,
base::StringPiece associated_data,
- base::StringPiece plaintext) OVERRIDE;
- virtual size_t GetKeySize() const OVERRIDE;
- virtual size_t GetNoncePrefixSize() const OVERRIDE;
- virtual size_t GetMaxPlaintextSize(size_t ciphertext_size) const OVERRIDE;
- virtual size_t GetCiphertextSize(size_t plaintext_size) const OVERRIDE;
- virtual base::StringPiece GetKey() const OVERRIDE;
- virtual base::StringPiece GetNoncePrefix() const OVERRIDE;
+ base::StringPiece plaintext) override;
+ virtual size_t GetKeySize() const override;
+ virtual size_t GetNoncePrefixSize() const override;
+ virtual size_t GetMaxPlaintextSize(size_t ciphertext_size) const override;
+ virtual size_t GetCiphertextSize(size_t plaintext_size) const override;
+ virtual base::StringPiece GetKey() const override;
+ virtual base::StringPiece GetNoncePrefix() const override;
protected:
// Make these constants available to the subclasses so that the subclasses
diff --git a/net/quic/crypto/aes_128_gcm_12_decrypter.h b/net/quic/crypto/aes_128_gcm_12_decrypter.h
index 0511c8b..4395dc2 100644
--- a/net/quic/crypto/aes_128_gcm_12_decrypter.h
+++ b/net/quic/crypto/aes_128_gcm_12_decrypter.h
@@ -31,7 +31,7 @@
virtual void FillAeadParams(base::StringPiece nonce,
base::StringPiece associated_data,
size_t auth_tag_size,
- AeadParams* aead_params) const OVERRIDE;
+ AeadParams* aead_params) const override;
#endif
private:
diff --git a/net/quic/crypto/aes_128_gcm_12_encrypter.h b/net/quic/crypto/aes_128_gcm_12_encrypter.h
index 1d8f321..afbeb14 100644
--- a/net/quic/crypto/aes_128_gcm_12_encrypter.h
+++ b/net/quic/crypto/aes_128_gcm_12_encrypter.h
@@ -31,7 +31,7 @@
virtual void FillAeadParams(base::StringPiece nonce,
base::StringPiece associated_data,
size_t auth_tag_size,
- AeadParams* aead_params) const OVERRIDE;
+ AeadParams* aead_params) const override;
#endif
private:
diff --git a/net/quic/crypto/chacha20_poly1305_decrypter.h b/net/quic/crypto/chacha20_poly1305_decrypter.h
index 9d24ba2..e3c3e7f 100644
--- a/net/quic/crypto/chacha20_poly1305_decrypter.h
+++ b/net/quic/crypto/chacha20_poly1305_decrypter.h
@@ -35,7 +35,7 @@
virtual void FillAeadParams(base::StringPiece nonce,
base::StringPiece associated_data,
size_t auth_tag_size,
- AeadParams* aead_params) const OVERRIDE;
+ AeadParams* aead_params) const override;
#endif
private:
diff --git a/net/quic/crypto/chacha20_poly1305_encrypter.h b/net/quic/crypto/chacha20_poly1305_encrypter.h
index 4a68caa..b99fa27 100644
--- a/net/quic/crypto/chacha20_poly1305_encrypter.h
+++ b/net/quic/crypto/chacha20_poly1305_encrypter.h
@@ -35,7 +35,7 @@
virtual void FillAeadParams(base::StringPiece nonce,
base::StringPiece associated_data,
size_t auth_tag_size,
- AeadParams* aead_params) const OVERRIDE;
+ AeadParams* aead_params) const override;
#endif
private:
diff --git a/net/quic/crypto/channel_id_chromium.h b/net/quic/crypto/channel_id_chromium.h
index 08cfff9..72f694d 100644
--- a/net/quic/crypto/channel_id_chromium.h
+++ b/net/quic/crypto/channel_id_chromium.h
@@ -24,8 +24,8 @@
// ChannelIDKey interface
virtual bool Sign(base::StringPiece signed_data,
- std::string* out_signature) const OVERRIDE;
- virtual std::string SerializeKey() const OVERRIDE;
+ std::string* out_signature) const override;
+ virtual std::string SerializeKey() const override;
private:
scoped_ptr<crypto::ECPrivateKey> ec_private_key_;
@@ -42,7 +42,7 @@
virtual QuicAsyncStatus GetChannelIDKey(
const std::string& hostname,
scoped_ptr<ChannelIDKey>* channel_id_key,
- ChannelIDSourceCallback* callback) OVERRIDE;
+ ChannelIDSourceCallback* callback) override;
private:
class Job;
diff --git a/net/quic/crypto/common_cert_set.cc b/net/quic/crypto/common_cert_set.cc
index f631cd6..0d39ecc 100644
--- a/net/quic/crypto/common_cert_set.cc
+++ b/net/quic/crypto/common_cert_set.cc
@@ -69,12 +69,12 @@
class CommonCertSetsQUIC : public CommonCertSets {
public:
// CommonCertSets interface.
- virtual StringPiece GetCommonHashes() const OVERRIDE {
+ virtual StringPiece GetCommonHashes() const override {
return StringPiece(reinterpret_cast<const char*>(kSetHashes),
sizeof(uint64) * arraysize(kSetHashes));
}
- virtual StringPiece GetCert(uint64 hash, uint32 index) const OVERRIDE {
+ virtual StringPiece GetCert(uint64 hash, uint32 index) const override {
for (size_t i = 0; i < arraysize(kSets); i++) {
if (kSets[i].hash == hash) {
if (index < kSets[i].num_certs) {
@@ -90,7 +90,7 @@
}
virtual bool MatchCert(StringPiece cert, StringPiece common_set_hashes,
- uint64* out_hash, uint32* out_index) const OVERRIDE {
+ uint64* out_hash, uint32* out_index) const override {
if (common_set_hashes.size() % sizeof(uint64) != 0) {
return false;
}
diff --git a/net/quic/crypto/crypto_framer.cc b/net/quic/crypto/crypto_framer.cc
index bc5c8b7..3f61115 100644
--- a/net/quic/crypto/crypto_framer.cc
+++ b/net/quic/crypto/crypto_framer.cc
@@ -26,10 +26,10 @@
public:
OneShotVisitor() : error_(false) {}
- virtual void OnError(CryptoFramer* framer) OVERRIDE { error_ = true; }
+ virtual void OnError(CryptoFramer* framer) override { error_ = true; }
virtual void OnHandshakeMessage(
- const CryptoHandshakeMessage& message) OVERRIDE {
+ const CryptoHandshakeMessage& message) override {
out_.reset(new CryptoHandshakeMessage(message));
}
diff --git a/net/quic/crypto/crypto_framer_test.cc b/net/quic/crypto/crypto_framer_test.cc
index 01e9157..f9ea55d 100644
--- a/net/quic/crypto/crypto_framer_test.cc
+++ b/net/quic/crypto/crypto_framer_test.cc
@@ -33,13 +33,13 @@
public:
TestCryptoVisitor() : error_count_(0) {}
- virtual void OnError(CryptoFramer* framer) OVERRIDE {
+ virtual void OnError(CryptoFramer* framer) override {
DLOG(ERROR) << "CryptoFramer Error: " << framer->error();
++error_count_;
}
virtual void OnHandshakeMessage(
- const CryptoHandshakeMessage& message) OVERRIDE {
+ const CryptoHandshakeMessage& message) override {
messages_.push_back(message);
}
diff --git a/net/quic/crypto/crypto_server_test.cc b/net/quic/crypto/crypto_server_test.cc
index bb47cbf..1f3380a 100644
--- a/net/quic/crypto/crypto_server_test.cc
+++ b/net/quic/crypto/crypto_server_test.cc
@@ -156,7 +156,7 @@
}
virtual void RunImpl(const CryptoHandshakeMessage& client_hello,
- const Result& result) OVERRIDE {
+ const Result& result) override {
{
// Ensure that the strike register client lock is not held.
QuicCryptoServerConfigPeer peer(&test_->config_);
diff --git a/net/quic/crypto/curve25519_key_exchange.h b/net/quic/crypto/curve25519_key_exchange.h
index 93288f6..310c614 100644
--- a/net/quic/crypto/curve25519_key_exchange.h
+++ b/net/quic/crypto/curve25519_key_exchange.h
@@ -31,11 +31,11 @@
static std::string NewPrivateKey(QuicRandom* rand);
// KeyExchange interface.
- virtual KeyExchange* NewKeyPair(QuicRandom* rand) const OVERRIDE;
+ virtual KeyExchange* NewKeyPair(QuicRandom* rand) const override;
virtual bool CalculateSharedKey(const base::StringPiece& peer_public_value,
- std::string* shared_key) const OVERRIDE;
- virtual base::StringPiece public_value() const OVERRIDE;
- virtual QuicTag tag() const OVERRIDE;
+ std::string* shared_key) const override;
+ virtual base::StringPiece public_value() const override;
+ virtual QuicTag tag() const override;
private:
Curve25519KeyExchange();
diff --git a/net/quic/crypto/local_strike_register_client.h b/net/quic/crypto/local_strike_register_client.h
index fe8ae93..b121299 100644
--- a/net/quic/crypto/local_strike_register_client.h
+++ b/net/quic/crypto/local_strike_register_client.h
@@ -26,10 +26,10 @@
const uint8 orbit[8],
StrikeRegister::StartupType startup);
- virtual bool IsKnownOrbit(base::StringPiece orbit) const OVERRIDE;
+ virtual bool IsKnownOrbit(base::StringPiece orbit) const override;
virtual void VerifyNonceIsValidAndUnique(base::StringPiece nonce,
QuicWallTime now,
- ResultCallback* cb) OVERRIDE;
+ ResultCallback* cb) override;
private:
mutable base::Lock m_;
diff --git a/net/quic/crypto/local_strike_register_client_test.cc b/net/quic/crypto/local_strike_register_client_test.cc
index 1a3b6f9..70d2428 100644
--- a/net/quic/crypto/local_strike_register_client_test.cc
+++ b/net/quic/crypto/local_strike_register_client_test.cc
@@ -36,7 +36,7 @@
protected:
virtual void RunImpl(bool nonce_is_valid_and_unique,
- InsertStatus nonce_error) OVERRIDE {
+ InsertStatus nonce_error) override {
*called_ = true;
*saved_value_ = nonce_is_valid_and_unique;
*saved_nonce_error_ = nonce_error;
diff --git a/net/quic/crypto/null_decrypter.h b/net/quic/crypto/null_decrypter.h
index 2bc2fe8..03038bd 100644
--- a/net/quic/crypto/null_decrypter.h
+++ b/net/quic/crypto/null_decrypter.h
@@ -22,18 +22,18 @@
virtual ~NullDecrypter() {}
// QuicDecrypter implementation
- virtual bool SetKey(base::StringPiece key) OVERRIDE;
- virtual bool SetNoncePrefix(base::StringPiece nonce_prefix) OVERRIDE;
+ virtual bool SetKey(base::StringPiece key) override;
+ virtual bool SetNoncePrefix(base::StringPiece nonce_prefix) override;
virtual bool Decrypt(base::StringPiece nonce,
base::StringPiece associated_data,
base::StringPiece ciphertext,
unsigned char* output,
- size_t* output_length) OVERRIDE;
+ size_t* output_length) override;
virtual QuicData* DecryptPacket(QuicPacketSequenceNumber sequence_number,
base::StringPiece associated_data,
- base::StringPiece ciphertext) OVERRIDE;
- virtual base::StringPiece GetKey() const OVERRIDE;
- virtual base::StringPiece GetNoncePrefix() const OVERRIDE;
+ base::StringPiece ciphertext) override;
+ virtual base::StringPiece GetKey() const override;
+ virtual base::StringPiece GetNoncePrefix() const override;
private:
bool ReadHash(QuicDataReader* reader, uint128* hash);
diff --git a/net/quic/crypto/null_encrypter.h b/net/quic/crypto/null_encrypter.h
index 1bcdff5..fbd2dff 100644
--- a/net/quic/crypto/null_encrypter.h
+++ b/net/quic/crypto/null_encrypter.h
@@ -20,21 +20,21 @@
virtual ~NullEncrypter() {}
// QuicEncrypter implementation
- virtual bool SetKey(base::StringPiece key) OVERRIDE;
- virtual bool SetNoncePrefix(base::StringPiece nonce_prefix) OVERRIDE;
+ virtual bool SetKey(base::StringPiece key) override;
+ virtual bool SetNoncePrefix(base::StringPiece nonce_prefix) override;
virtual bool Encrypt(base::StringPiece nonce,
base::StringPiece associated_data,
base::StringPiece plaintext,
- unsigned char* output) OVERRIDE;
+ unsigned char* output) override;
virtual QuicData* EncryptPacket(QuicPacketSequenceNumber sequence_number,
base::StringPiece associated_data,
- base::StringPiece plaintext) OVERRIDE;
- virtual size_t GetKeySize() const OVERRIDE;
- virtual size_t GetNoncePrefixSize() const OVERRIDE;
- virtual size_t GetMaxPlaintextSize(size_t ciphertext_size) const OVERRIDE;
- virtual size_t GetCiphertextSize(size_t plaintext_size) const OVERRIDE;
- virtual base::StringPiece GetKey() const OVERRIDE;
- virtual base::StringPiece GetNoncePrefix() const OVERRIDE;
+ base::StringPiece plaintext) override;
+ virtual size_t GetKeySize() const override;
+ virtual size_t GetNoncePrefixSize() const override;
+ virtual size_t GetMaxPlaintextSize(size_t ciphertext_size) const override;
+ virtual size_t GetCiphertextSize(size_t plaintext_size) const override;
+ virtual base::StringPiece GetKey() const override;
+ virtual base::StringPiece GetNoncePrefix() const override;
private:
size_t GetHashLength() const;
diff --git a/net/quic/crypto/p256_key_exchange.h b/net/quic/crypto/p256_key_exchange.h
index ce5a0d4..36ba296 100644
--- a/net/quic/crypto/p256_key_exchange.h
+++ b/net/quic/crypto/p256_key_exchange.h
@@ -38,11 +38,11 @@
static std::string NewPrivateKey();
// KeyExchange interface.
- virtual KeyExchange* NewKeyPair(QuicRandom* rand) const OVERRIDE;
+ virtual KeyExchange* NewKeyPair(QuicRandom* rand) const override;
virtual bool CalculateSharedKey(const base::StringPiece& peer_public_value,
- std::string* shared_key) const OVERRIDE;
- virtual base::StringPiece public_value() const OVERRIDE;
- virtual QuicTag tag() const OVERRIDE;
+ std::string* shared_key) const override;
+ virtual base::StringPiece public_value() const override;
+ virtual QuicTag tag() const override;
private:
enum {
diff --git a/net/quic/crypto/proof_source_chromium.h b/net/quic/crypto/proof_source_chromium.h
index 70ab92d..3d1849e 100644
--- a/net/quic/crypto/proof_source_chromium.h
+++ b/net/quic/crypto/proof_source_chromium.h
@@ -27,7 +27,7 @@
const std::string& server_config,
bool ecdsa_ok,
const std::vector<std::string>** out_certs,
- std::string* out_signature) OVERRIDE;
+ std::string* out_signature) override;
private:
DISALLOW_COPY_AND_ASSIGN(ProofSourceChromium);
diff --git a/net/quic/crypto/proof_test.cc b/net/quic/crypto/proof_test.cc
index 031cba2..0dde97c 100644
--- a/net/quic/crypto/proof_test.cc
+++ b/net/quic/crypto/proof_test.cc
@@ -40,7 +40,7 @@
virtual void Run(bool ok,
const string& error_details,
- scoped_ptr<ProofVerifyDetails>* details) OVERRIDE {
+ scoped_ptr<ProofVerifyDetails>* details) override {
*ok_ = ok;
*error_details_ = error_details;
diff --git a/net/quic/crypto/proof_verifier_chromium.h b/net/quic/crypto/proof_verifier_chromium.h
index 7b305e2..057cc16 100644
--- a/net/quic/crypto/proof_verifier_chromium.h
+++ b/net/quic/crypto/proof_verifier_chromium.h
@@ -30,7 +30,7 @@
public:
// ProofVerifyDetails implementation
- virtual ProofVerifyDetails* Clone() const OVERRIDE;
+ virtual ProofVerifyDetails* Clone() const override;
CertVerifyResult cert_verify_result;
@@ -67,7 +67,7 @@
const ProofVerifyContext* verify_context,
std::string* error_details,
scoped_ptr<ProofVerifyDetails>* verify_details,
- ProofVerifierCallback* callback) OVERRIDE;
+ ProofVerifierCallback* callback) override;
private:
class Job;
diff --git a/net/quic/crypto/quic_crypto_client_config.cc b/net/quic/crypto/quic_crypto_client_config.cc
index 90dc265..1f668af 100644
--- a/net/quic/crypto/quic_crypto_client_config.cc
+++ b/net/quic/crypto/quic_crypto_client_config.cc
@@ -56,7 +56,9 @@
} // namespace
QuicCryptoClientConfig::QuicCryptoClientConfig()
- : disable_ecdsa_(false) {}
+ : disable_ecdsa_(false) {
+ SetDefaults();
+}
QuicCryptoClientConfig::~QuicCryptoClientConfig() {
STLDeleteValues(&cached_states_);
diff --git a/net/quic/crypto/quic_crypto_client_config.h b/net/quic/crypto/quic_crypto_client_config.h
index 39c2508..9fc8ff0 100644
--- a/net/quic/crypto/quic_crypto_client_config.h
+++ b/net/quic/crypto/quic_crypto_client_config.h
@@ -133,9 +133,6 @@
QuicCryptoClientConfig();
~QuicCryptoClientConfig();
- // Sets the members to reasonable, default values.
- void SetDefaults();
-
// LookupOrCreate returns a CachedState for the given |server_id|. If no such
// CachedState currently exists, it will be created and cached.
CachedState* LookupOrCreate(const QuicServerId& server_id);
@@ -269,6 +266,9 @@
private:
typedef std::map<QuicServerId, CachedState*> CachedStateMap;
+ // Sets the members to reasonable, default values.
+ void SetDefaults();
+
// CacheNewServerConfig checks for SCFG, STK, PROF, and CRT tags in |message|,
// verifies them, and stores them in the cached state if they validate.
// This is used on receipt of a REJ from a server, or when a server sends
diff --git a/net/quic/crypto/quic_crypto_client_config_test.cc b/net/quic/crypto/quic_crypto_client_config_test.cc
index b02243b..d2c4920 100644
--- a/net/quic/crypto/quic_crypto_client_config_test.cc
+++ b/net/quic/crypto/quic_crypto_client_config_test.cc
@@ -21,7 +21,7 @@
virtual ~TestProofVerifyDetails() {}
// ProofVerifyDetails implementation
- virtual ProofVerifyDetails* Clone() const OVERRIDE {
+ virtual ProofVerifyDetails* Clone() const override {
return new TestProofVerifyDetails;
}
};
@@ -81,7 +81,6 @@
TEST(QuicCryptoClientConfigTest, PreferAesGcm) {
QuicCryptoClientConfig config;
- config.SetDefaults();
if (config.aead.size() > 1)
EXPECT_NE(kAESG, config.aead[0]);
config.PreferAesGcm();
diff --git a/net/quic/crypto/quic_crypto_server_config.cc b/net/quic/crypto/quic_crypto_server_config.cc
index 6281043..d5a2b75 100644
--- a/net/quic/crypto/quic_crypto_server_config.cc
+++ b/net/quic/crypto/quic_crypto_server_config.cc
@@ -18,6 +18,7 @@
#include "net/quic/crypto/chacha20_poly1305_encrypter.h"
#include "net/quic/crypto/channel_id.h"
#include "net/quic/crypto/crypto_framer.h"
+#include "net/quic/crypto/crypto_handshake_message.h"
#include "net/quic/crypto/crypto_server_config_protobuf.h"
#include "net/quic/crypto/crypto_utils.h"
#include "net/quic/crypto/curve25519_key_exchange.h"
@@ -61,49 +62,6 @@
} // namespace
-// ClientHelloInfo contains information about a client hello message that is
-// only kept for as long as it's being processed.
-struct ClientHelloInfo {
- ClientHelloInfo(const IPEndPoint& in_client_ip, QuicWallTime in_now)
- : client_ip(in_client_ip),
- now(in_now),
- valid_source_address_token(false),
- client_nonce_well_formed(false),
- unique(false) {}
-
- // Inputs to EvaluateClientHello.
- const IPEndPoint client_ip;
- const QuicWallTime now;
-
- // Outputs from EvaluateClientHello.
- bool valid_source_address_token;
- bool client_nonce_well_formed;
- bool unique;
- StringPiece sni;
- StringPiece client_nonce;
- StringPiece server_nonce;
- StringPiece user_agent_id;
-
- // Errors from EvaluateClientHello.
- vector<uint32> reject_reasons;
- COMPILE_ASSERT(sizeof(QuicTag) == sizeof(uint32), header_out_of_sync);
-};
-
-struct ValidateClientHelloResultCallback::Result {
- Result(const CryptoHandshakeMessage& in_client_hello,
- IPEndPoint in_client_ip,
- QuicWallTime in_now)
- : client_hello(in_client_hello),
- info(in_client_ip, in_now),
- error_code(QUIC_NO_ERROR) {
- }
-
- CryptoHandshakeMessage client_hello;
- ClientHelloInfo info;
- QuicErrorCode error_code;
- string error_details;
-};
-
class ValidateClientHelloHelper {
public:
ValidateClientHelloHelper(ValidateClientHelloResultCallback::Result* result,
@@ -150,7 +108,7 @@
protected:
virtual void RunImpl(bool nonce_is_valid_and_unique,
- InsertStatus nonce_error) OVERRIDE {
+ InsertStatus nonce_error) override {
DVLOG(1) << "Using client nonce, unique: " << nonce_is_valid_and_unique
<< " nonce_error: " << nonce_error;
result_->info.unique = nonce_is_valid_and_unique;
@@ -199,12 +157,36 @@
// static
const char QuicCryptoServerConfig::TESTING[] = "secret string for testing";
+ClientHelloInfo::ClientHelloInfo(const IPEndPoint& in_client_ip,
+ QuicWallTime in_now)
+ : client_ip(in_client_ip),
+ now(in_now),
+ valid_source_address_token(false),
+ client_nonce_well_formed(false),
+ unique(false) {
+}
+
+ClientHelloInfo::~ClientHelloInfo() {
+}
+
PrimaryConfigChangedCallback::PrimaryConfigChangedCallback() {
}
PrimaryConfigChangedCallback::~PrimaryConfigChangedCallback() {
}
+ValidateClientHelloResultCallback::Result::Result(
+ const CryptoHandshakeMessage& in_client_hello,
+ IPEndPoint in_client_ip,
+ QuicWallTime in_now)
+ : client_hello(in_client_hello),
+ info(in_client_ip, in_now),
+ error_code(QUIC_NO_ERROR) {
+}
+
+ValidateClientHelloResultCallback::Result::~Result() {
+}
+
ValidateClientHelloResultCallback::ValidateClientHelloResultCallback() {
}
@@ -603,8 +585,9 @@
!info.client_nonce_well_formed ||
!info.unique ||
!requested_config.get()) {
- BuildRejection(
- *primary_config.get(), client_hello, info, rand, params, out);
+ BuildRejection(*primary_config.get(), client_hello, info,
+ validate_chlo_result.cached_network_params, rand, params,
+ out);
return QUIC_NO_ERROR;
}
@@ -773,13 +756,12 @@
(QuicVersionToQuicTag(supported_versions[i]));
}
out->SetVector(kVER, supported_version_tags);
- out->SetStringPiece(
- kSourceAddressTokenTag,
- NewSourceAddressToken(*requested_config.get(),
- client_address,
- rand,
- info.now,
- nullptr));
+ out->SetStringPiece(kSourceAddressTokenTag,
+ NewSourceAddressToken(*requested_config.get(),
+ client_address,
+ rand,
+ info.now,
+ nullptr));
QuicSocketAddressCoder address_coder(client_address);
out->SetStringPiece(kCADR, address_coder.Encode());
out->SetStringPiece(kPUBS, forward_secure_public_value);
@@ -949,8 +931,12 @@
HandshakeFailureReason source_address_token_error;
StringPiece srct;
if (client_hello.GetStringPiece(kSourceAddressTokenTag, &srct)) {
- source_address_token_error = ValidateSourceAddressToken(
- *requested_config.get(), srct, info->client_ip, info->now);
+ source_address_token_error =
+ ValidateSourceAddressToken(*requested_config.get(),
+ srct,
+ info->client_ip,
+ info->now,
+ &client_hello_state->cached_network_params);
info->valid_source_address_token =
(source_address_token_error == HANDSHAKE_OK);
} else {
@@ -1083,6 +1069,7 @@
const Config& config,
const CryptoHandshakeMessage& client_hello,
const ClientHelloInfo& info,
+ const CachedNetworkParameters& cached_network_params,
QuicRandom* rand,
QuicCryptoNegotiatedParameters *params,
CryptoHandshakeMessage* out) const {
@@ -1094,7 +1081,7 @@
info.client_ip,
rand,
info.now,
- nullptr));
+ &cached_network_params));
if (replay_protection_) {
out->SetStringPiece(kServerNonceTag, NewServerNonce(rand, info.now));
}
@@ -1437,7 +1424,8 @@
const Config& config,
StringPiece token,
const IPEndPoint& ip,
- QuicWallTime now) const {
+ QuicWallTime now,
+ CachedNetworkParameters* cached_network_params) const {
string storage;
StringPiece plaintext;
if (!config.source_address_token_boxer->Unbox(token, &storage, &plaintext)) {
@@ -1473,6 +1461,11 @@
return SOURCE_ADDRESS_TOKEN_EXPIRED_FAILURE;
}
+ if (FLAGS_quic_store_cached_network_params_from_chlo &&
+ source_address_token.has_cached_network_parameters()) {
+ *cached_network_params = source_address_token.cached_network_parameters();
+ }
+
return HANDSHAKE_OK;
}
diff --git a/net/quic/crypto/quic_crypto_server_config.h b/net/quic/crypto/quic_crypto_server_config.h
index ef8f6e9..30e0f6d 100644
--- a/net/quic/crypto/quic_crypto_server_config.h
+++ b/net/quic/crypto/quic_crypto_server_config.h
@@ -36,7 +36,29 @@
class StrikeRegister;
class StrikeRegisterClient;
-struct ClientHelloInfo;
+// ClientHelloInfo contains information about a client hello message that is
+// only kept for as long as it's being processed.
+struct ClientHelloInfo {
+ ClientHelloInfo(const IPEndPoint& in_client_ip, QuicWallTime in_now);
+ ~ClientHelloInfo();
+
+ // Inputs to EvaluateClientHello.
+ const IPEndPoint client_ip;
+ const QuicWallTime now;
+
+ // Outputs from EvaluateClientHello.
+ bool valid_source_address_token;
+ bool client_nonce_well_formed;
+ bool unique;
+ base::StringPiece sni;
+ base::StringPiece client_nonce;
+ base::StringPiece server_nonce;
+ base::StringPiece user_agent_id;
+
+ // Errors from EvaluateClientHello.
+ std::vector<uint32> reject_reasons;
+ COMPILE_ASSERT(sizeof(QuicTag) == sizeof(uint32), header_out_of_sync);
+};
namespace test {
class QuicCryptoServerConfigPeer;
@@ -58,7 +80,20 @@
public:
// Opaque token that holds information about the client_hello and
// its validity. Can be interpreted by calling ProcessClientHello.
- struct Result;
+ struct Result {
+ Result(const CryptoHandshakeMessage& in_client_hello,
+ IPEndPoint in_client_ip,
+ QuicWallTime in_now);
+ ~Result();
+
+ CryptoHandshakeMessage client_hello;
+ ClientHelloInfo info;
+ QuicErrorCode error_code;
+ std::string error_details;
+
+ // Populated if the CHLO STK contained a CachedNetworkParameters proto.
+ CachedNetworkParameters cached_network_params;
+ };
ValidateClientHelloResultCallback();
virtual ~ValidateClientHelloResultCallback();
@@ -386,6 +421,7 @@
const Config& config,
const CryptoHandshakeMessage& client_hello,
const ClientHelloInfo& info,
+ const CachedNetworkParameters& cached_network_params,
QuicRandom* rand,
QuicCryptoNegotiatedParameters *params,
CryptoHandshakeMessage* out) const;
@@ -407,10 +443,14 @@
// ValidateSourceAddressToken returns HANDSHAKE_OK if the source address token
// in |token| is a valid and timely token for the IP address |ip| given that
// the current time is |now|. Otherwise it returns the reason for failure.
- HandshakeFailureReason ValidateSourceAddressToken(const Config& config,
- base::StringPiece token,
- const IPEndPoint& ip,
- QuicWallTime now) const;
+ // |cached_network_params| is populated if |token| contains a
+ // CachedNetworkParameters proto.
+ HandshakeFailureReason ValidateSourceAddressToken(
+ const Config& config,
+ base::StringPiece token,
+ const IPEndPoint& ip,
+ QuicWallTime now,
+ CachedNetworkParameters* cached_network_params) const;
// NewServerNonce generates and encrypts a random nonce.
std::string NewServerNonce(QuicRandom* rand, QuicWallTime now) const;
diff --git a/net/quic/crypto/quic_crypto_server_config_test.cc b/net/quic/crypto/quic_crypto_server_config_test.cc
index f44dc5c..59d6cf4 100644
--- a/net/quic/crypto/quic_crypto_server_config_test.cc
+++ b/net/quic/crypto/quic_crypto_server_config_test.cc
@@ -13,6 +13,7 @@
#include "net/quic/crypto/crypto_server_config_protobuf.h"
#include "net/quic/crypto/quic_random.h"
#include "net/quic/crypto/strike_register_client.h"
+#include "net/quic/quic_flags.h"
#include "net/quic/quic_time.h"
#include "net/quic/test_tools/mock_clock.h"
#include "net/quic/test_tools/quic_test_utils.h"
@@ -52,19 +53,37 @@
string NewSourceAddressToken(
string config_id,
- IPEndPoint ip,
+ const IPEndPoint& ip,
QuicRandom* rand,
QuicWallTime now) {
+ return NewSourceAddressToken(config_id, ip, rand, now, NULL);
+ }
+
+ string NewSourceAddressToken(
+ string config_id,
+ const IPEndPoint& ip,
+ QuicRandom* rand,
+ QuicWallTime now,
+ CachedNetworkParameters* cached_network_params) {
return server_config_->NewSourceAddressToken(
- *GetConfig(config_id), ip, rand, now, nullptr);
+ *GetConfig(config_id), ip, rand, now, cached_network_params);
}
HandshakeFailureReason ValidateSourceAddressToken(string config_id,
StringPiece srct,
- IPEndPoint ip,
+ const IPEndPoint& ip,
QuicWallTime now) {
+ return ValidateSourceAddressToken(config_id, srct, ip, now, NULL);
+ }
+
+ HandshakeFailureReason ValidateSourceAddressToken(
+ string config_id,
+ StringPiece srct,
+ const IPEndPoint& ip,
+ QuicWallTime now,
+ CachedNetworkParameters* cached_network_params) {
return server_config_->ValidateSourceAddressToken(
- *GetConfig(config_id), srct, ip, now);
+ *GetConfig(config_id), srct, ip, now, cached_network_params);
}
string NewServerNonce(QuicRandom* rand, QuicWallTime now) const {
@@ -188,7 +207,7 @@
is_known_orbit_called_(false) {
}
- virtual bool IsKnownOrbit(StringPiece orbit) const OVERRIDE {
+ virtual bool IsKnownOrbit(StringPiece orbit) const override {
// Ensure that the strike register client lock is not held.
QuicCryptoServerConfigPeer peer(config_);
base::Lock* m = peer.GetStrikeRegisterClientLock();
@@ -204,7 +223,7 @@
virtual void VerifyNonceIsValidAndUnique(
StringPiece nonce,
QuicWallTime now,
- ResultCallback* cb) OVERRIDE {
+ ResultCallback* cb) override {
LOG(FATAL) << "Not implemented";
}
@@ -241,6 +260,8 @@
}
TEST(QuicCryptoServerConfigTest, SourceAddressTokens) {
+ ValueRestore<bool> old_flag(&FLAGS_quic_store_cached_network_params_from_chlo,
+ true);
const string kPrimary = "<primary>";
const string kOverride = "Config with custom source address token key";
@@ -329,6 +350,21 @@
now = original_time.Subtract(QuicTime::Delta::FromSeconds(3600 * 2));
DCHECK_EQ(SOURCE_ADDRESS_TOKEN_CLOCK_SKEW_FAILURE,
peer.ValidateSourceAddressToken(kPrimary, token4, ip4, now));
+
+ // Make sure that if the source address token contains CachedNetworkParameters
+ // that this gets written to ValidateSourceAddressToken output argument.
+ CachedNetworkParameters cached_network_params_input;
+ cached_network_params_input.set_bandwidth_estimate_bytes_per_second(1234);
+ const string token4_with_cached_network_params = peer.NewSourceAddressToken(
+ kPrimary, ip4, rand, now, &cached_network_params_input);
+
+ CachedNetworkParameters cached_network_params_output;
+ EXPECT_NE(cached_network_params_output, cached_network_params_input);
+ peer.ValidateSourceAddressToken(kPrimary, token4_with_cached_network_params,
+ ip4, now, &cached_network_params_output);
+ // TODO(rtenneti): For server, enable the following check after serialization
+ // of optional CachedNetworkParameters is implemented.
+ // EXPECT_EQ(cached_network_params_output, cached_network_params_input);
}
TEST(QuicCryptoServerConfigTest, ValidateServerNonce) {
diff --git a/net/quic/crypto/quic_random.cc b/net/quic/crypto/quic_random.cc
index 6f46013..bc85c2d 100644
--- a/net/quic/crypto/quic_random.cc
+++ b/net/quic/crypto/quic_random.cc
@@ -17,10 +17,10 @@
static DefaultRandom* GetInstance();
// QuicRandom implementation
- virtual void RandBytes(void* data, size_t len) OVERRIDE;
- virtual uint64 RandUint64() OVERRIDE;
+ virtual void RandBytes(void* data, size_t len) override;
+ virtual uint64 RandUint64() override;
virtual void Reseed(const void* additional_entropy,
- size_t entropy_len) OVERRIDE;
+ size_t entropy_len) override;
private:
DefaultRandom() {};
diff --git a/net/quic/crypto/source_address_token.cc b/net/quic/crypto/source_address_token.cc
index f20c343..7ac43f0 100644
--- a/net/quic/crypto/source_address_token.cc
+++ b/net/quic/crypto/source_address_token.cc
@@ -14,13 +14,39 @@
namespace net {
-CachedNetworkParameters::CachedNetworkParameters() {
+CachedNetworkParameters::CachedNetworkParameters()
+ : bandwidth_estimate_bytes_per_second_(0),
+ max_bandwidth_estimate_bytes_per_second_(0),
+ max_bandwidth_timestamp_seconds_(0),
+ min_rtt_ms_(0),
+ previous_connection_state_(0),
+ timestamp_(0) {
}
CachedNetworkParameters::~CachedNetworkParameters() {
}
-SourceAddressToken::SourceAddressToken() {
+bool CachedNetworkParameters::operator==(
+ const CachedNetworkParameters& other) const {
+ return serving_region_ == other.serving_region_ &&
+ bandwidth_estimate_bytes_per_second_ ==
+ other.bandwidth_estimate_bytes_per_second_ &&
+ max_bandwidth_estimate_bytes_per_second_ ==
+ other.max_bandwidth_estimate_bytes_per_second_ &&
+ max_bandwidth_timestamp_seconds_ ==
+ other.max_bandwidth_timestamp_seconds_ &&
+ min_rtt_ms_ == other.min_rtt_ms_ &&
+ previous_connection_state_ == other.previous_connection_state_ &&
+ timestamp_ == other.timestamp_;
+}
+
+bool CachedNetworkParameters::operator!=(
+ const CachedNetworkParameters& other) const {
+ return !(*this == other);
+}
+
+SourceAddressToken::SourceAddressToken()
+ : has_cached_network_parameters_(false) {
}
SourceAddressToken::~SourceAddressToken() {
diff --git a/net/quic/crypto/source_address_token.h b/net/quic/crypto/source_address_token.h
index 1101351..76c3454 100644
--- a/net/quic/crypto/source_address_token.h
+++ b/net/quic/crypto/source_address_token.h
@@ -28,6 +28,9 @@
CachedNetworkParameters();
~CachedNetworkParameters();
+ bool operator==(const CachedNetworkParameters& other) const;
+ bool operator!=(const CachedNetworkParameters& other) const;
+
std::string serving_region() const {
return serving_region_;
}
@@ -133,6 +136,10 @@
void set_cached_network_parameters(
const CachedNetworkParameters& cached_network_parameters) {
cached_network_parameters_ = cached_network_parameters;
+ has_cached_network_parameters_ = true;
+ }
+ bool has_cached_network_parameters() const {
+ return has_cached_network_parameters_;
}
private:
@@ -146,6 +153,9 @@
// The server can provide estimated network parameters to be used for
// initial parameter selection in future connections.
CachedNetworkParameters cached_network_parameters_;
+ // TODO(rtenneti): Delete |has_cached_network_parameters_| after we convert
+ // SourceAddressToken to protobuf.
+ bool has_cached_network_parameters_;
DISALLOW_COPY_AND_ASSIGN(SourceAddressToken);
};
diff --git a/net/quic/quic_ack_notifier_manager.h b/net/quic/quic_ack_notifier_manager.h
index bf5b345..122bda1 100644
--- a/net/quic/quic_ack_notifier_manager.h
+++ b/net/quic/quic_ack_notifier_manager.h
@@ -10,17 +10,6 @@
#include "base/containers/hash_tables.h"
#include "net/quic/quic_protocol.h"
-#if defined(COMPILER_GCC)
-namespace BASE_HASH_NAMESPACE {
-template<>
-struct hash<net::QuicAckNotifier*> {
- std::size_t operator()(const net::QuicAckNotifier* ptr) const {
- return hash<size_t>()(reinterpret_cast<size_t>(ptr));
- }
-};
-}
-#endif
-
namespace net {
class QuicAckNotifier;
diff --git a/net/quic/quic_alarm_test.cc b/net/quic/quic_alarm_test.cc
index 434bb38..47e23e3 100644
--- a/net/quic/quic_alarm_test.cc
+++ b/net/quic/quic_alarm_test.cc
@@ -32,12 +32,12 @@
}
protected:
- virtual void SetImpl() OVERRIDE {
+ virtual void SetImpl() override {
DCHECK(deadline().IsInitialized());
scheduled_ = true;
}
- virtual void CancelImpl() OVERRIDE {
+ virtual void CancelImpl() override {
DCHECK(!deadline().IsInitialized());
scheduled_ = false;
}
diff --git a/net/quic/quic_client_session.cc b/net/quic/quic_client_session.cc
index 5454c10..b7e8185 100644
--- a/net/quic/quic_client_session.cc
+++ b/net/quic/quic_client_session.cc
@@ -153,7 +153,7 @@
num_total_streams_(0),
task_runner_(task_runner),
net_log_(BoundNetLog::Make(net_log, NetLog::SOURCE_QUIC_SESSION)),
- logger_(new QuicConnectionLogger(net_log_)),
+ logger_(new QuicConnectionLogger(this, net_log_)),
num_packets_read_(0),
going_away_(false),
weak_factory_(this) {
@@ -265,14 +265,14 @@
const QuicConnectionStats stats = connection()->GetStats();
if (stats.max_sequence_reordering == 0)
return;
- const uint64 kMaxReordering = 100;
- uint64 reordering = kMaxReordering;
- if (stats.min_rtt_us > 0 ) {
- reordering =
- GG_UINT64_C(100) * stats.max_time_reordering_us / stats.min_rtt_us;
+ const base::HistogramBase::Sample kMaxReordering = 100;
+ base::HistogramBase::Sample reordering = kMaxReordering;
+ if (stats.min_rtt_us > 0) {
+ reordering = static_cast<base::HistogramBase::Sample>(
+ 100 * stats.max_time_reordering_us / stats.min_rtt_us);
}
UMA_HISTOGRAM_CUSTOM_COUNTS("Net.QuicSession.MaxReorderingTime",
- reordering, 0, kMaxReordering, 50);
+ reordering, 0, kMaxReordering, 50);
if (stats.min_rtt_us > 100 * 1000) {
UMA_HISTOGRAM_CUSTOM_COUNTS("Net.QuicSession.MaxReorderingTimeLongRtt",
reordering, 0, kMaxReordering, 50);
diff --git a/net/quic/quic_client_session.h b/net/quic/quic_client_session.h
index fa712c2..430ef52 100644
--- a/net/quic/quic_client_session.h
+++ b/net/quic/quic_client_session.h
@@ -124,30 +124,30 @@
// QuicSession methods:
virtual void OnStreamFrames(
- const std::vector<QuicStreamFrame>& frames) OVERRIDE;
- virtual QuicReliableClientStream* CreateOutgoingDataStream() OVERRIDE;
- virtual QuicCryptoClientStream* GetCryptoStream() OVERRIDE;
- virtual void CloseStream(QuicStreamId stream_id) OVERRIDE;
+ const std::vector<QuicStreamFrame>& frames) override;
+ virtual QuicReliableClientStream* CreateOutgoingDataStream() override;
+ virtual QuicCryptoClientStream* GetCryptoStream() override;
+ virtual void CloseStream(QuicStreamId stream_id) override;
virtual void SendRstStream(QuicStreamId id,
QuicRstStreamErrorCode error,
- QuicStreamOffset bytes_written) OVERRIDE;
- virtual void OnCryptoHandshakeEvent(CryptoHandshakeEvent event) OVERRIDE;
+ QuicStreamOffset bytes_written) override;
+ virtual void OnCryptoHandshakeEvent(CryptoHandshakeEvent event) override;
virtual void OnCryptoHandshakeMessageSent(
- const CryptoHandshakeMessage& message) OVERRIDE;
+ const CryptoHandshakeMessage& message) override;
virtual void OnCryptoHandshakeMessageReceived(
- const CryptoHandshakeMessage& message) OVERRIDE;
- virtual bool GetSSLInfo(SSLInfo* ssl_info) const OVERRIDE;
+ const CryptoHandshakeMessage& message) override;
+ virtual bool GetSSLInfo(SSLInfo* ssl_info) const override;
// QuicClientSessionBase methods:
virtual void OnProofValid(
- const QuicCryptoClientConfig::CachedState& cached) OVERRIDE;
+ const QuicCryptoClientConfig::CachedState& cached) override;
virtual void OnProofVerifyDetailsAvailable(
- const ProofVerifyDetails& verify_details) OVERRIDE;
+ const ProofVerifyDetails& verify_details) override;
// QuicConnectionVisitorInterface methods:
- virtual void OnConnectionClosed(QuicErrorCode error, bool from_peer) OVERRIDE;
+ virtual void OnConnectionClosed(QuicErrorCode error, bool from_peer) override;
virtual void OnSuccessfulVersionNegotiation(
- const QuicVersion& version) OVERRIDE;
+ const QuicVersion& version) override;
// Performs a crypto handshake with the server.
int CryptoConnect(bool require_confirmation,
@@ -182,7 +182,7 @@
protected:
// QuicSession methods:
- virtual QuicDataStream* CreateIncomingDataStream(QuicStreamId id) OVERRIDE;
+ virtual QuicDataStream* CreateIncomingDataStream(QuicStreamId id) override;
private:
friend class test::QuicClientSessionPeer;
diff --git a/net/quic/quic_client_session_base.h b/net/quic/quic_client_session_base.h
index 834d006..ae0644e 100644
--- a/net/quic/quic_client_session_base.h
+++ b/net/quic/quic_client_session_base.h
@@ -33,7 +33,7 @@
const ProofVerifyDetails& verify_details) = 0;
// Override base class to set FEC policy before any data is sent by client.
- virtual void OnCryptoHandshakeEvent(CryptoHandshakeEvent event) OVERRIDE;
+ virtual void OnCryptoHandshakeEvent(CryptoHandshakeEvent event) override;
private:
DISALLOW_COPY_AND_ASSIGN(QuicClientSessionBase);
diff --git a/net/quic/quic_client_session_test.cc b/net/quic/quic_client_session_test.cc
index 9758ed4..b1cfe3d 100644
--- a/net/quic/quic_client_session_test.cc
+++ b/net/quic/quic_client_session_test.cc
@@ -51,11 +51,9 @@
session_.InitializeSession(QuicServerId(kServerHostname, kServerPort, false,
PRIVACY_MODE_DISABLED),
&crypto_config_, nullptr);
- session_.config()->SetDefaults();
- crypto_config_.SetDefaults();
}
- virtual void TearDown() OVERRIDE {
+ virtual void TearDown() override {
session_.CloseSessionOnError(ERR_ABORTED);
}
diff --git a/net/quic/quic_config.cc b/net/quic/quic_config.cc
index 5330b7c..7b7976c 100644
--- a/net/quic/quic_config.cc
+++ b/net/quic/quic_config.cc
@@ -427,6 +427,7 @@
QuicConfig::QuicConfig()
: max_time_before_crypto_handshake_(QuicTime::Delta::Zero()),
max_idle_time_before_crypto_handshake_(QuicTime::Delta::Zero()),
+ max_undecryptable_packets_(0),
congestion_feedback_(kCGST, PRESENCE_REQUIRED),
connection_options_(kCOPT, PRESENCE_OPTIONAL),
idle_connection_state_lifetime_seconds_(kICSL, PRESENCE_REQUIRED),
@@ -443,6 +444,7 @@
// QUIC_VERSION_19.
initial_session_flow_control_window_bytes_(kCFCW, PRESENCE_OPTIONAL),
socket_receive_buffer_(kSRBF, PRESENCE_OPTIONAL) {
+ SetDefaults();
}
QuicConfig::~QuicConfig() {}
@@ -643,6 +645,7 @@
QuicTime::Delta::FromSeconds(kMaxTimeForCryptoHandshakeSecs);
max_idle_time_before_crypto_handshake_ =
QuicTime::Delta::FromSeconds(kInitialIdleTimeoutSecs);
+ max_undecryptable_packets_ = kDefaultMaxUndecryptablePackets;
SetInitialFlowControlWindowToSend(kDefaultFlowControlSendWindow);
SetInitialStreamFlowControlWindowToSend(kDefaultFlowControlSendWindow);
diff --git a/net/quic/quic_config.h b/net/quic/quic_config.h
index 203eb2e..7be4569 100644
--- a/net/quic/quic_config.h
+++ b/net/quic/quic_config.h
@@ -89,7 +89,7 @@
// Serialises |name_| and value to |out|. If |negotiated_| is true then
// |negotiated_value_| is serialised, otherwise |max_value_| is serialised.
- virtual void ToHandshakeMessage(CryptoHandshakeMessage* out) const OVERRIDE;
+ virtual void ToHandshakeMessage(CryptoHandshakeMessage* out) const override;
// Sets |negotiated_value_| to the minimum of |max_value_| and the
// corresponding value from |peer_hello|. If the corresponding value is
@@ -98,7 +98,7 @@
virtual QuicErrorCode ProcessPeerHello(
const CryptoHandshakeMessage& peer_hello,
HelloType hello_type,
- std::string* error_details) OVERRIDE;
+ std::string* error_details) override;
private:
uint32 max_value_;
@@ -123,7 +123,7 @@
// Serialises |name_| and vector (either possible or negotiated) to |out|. If
// |negotiated_| is true then |negotiated_tag_| is serialised, otherwise
// |possible_values_| is serialised.
- virtual void ToHandshakeMessage(CryptoHandshakeMessage* out) const OVERRIDE;
+ virtual void ToHandshakeMessage(CryptoHandshakeMessage* out) const override;
// Selects the tag common to both tags in |client_hello| for |name_| and
// |possible_values_| with preference to tag in |possible_values_|. The
@@ -131,7 +131,7 @@
virtual QuicErrorCode ProcessPeerHello(
const CryptoHandshakeMessage& peer_hello,
HelloType hello_type,
- std::string* error_details) OVERRIDE;
+ std::string* error_details) override;
private:
// Reads the vector corresponding to |name_| from |msg| into |out|. If the
@@ -166,13 +166,13 @@
void SetReceivedValue(uint32 value);
// If has_send_value is true, serialises |tag_| and |send_value_| to |out|.
- virtual void ToHandshakeMessage(CryptoHandshakeMessage* out) const OVERRIDE;
+ virtual void ToHandshakeMessage(CryptoHandshakeMessage* out) const override;
// Sets |value_| to the corresponding value from |peer_hello_| if it exists.
virtual QuicErrorCode ProcessPeerHello(
const CryptoHandshakeMessage& peer_hello,
HelloType hello_type,
- std::string* error_details) OVERRIDE;
+ std::string* error_details) override;
private:
uint32 send_value_;
@@ -200,13 +200,13 @@
void SetReceivedValue(QuicTag value);
// If has_send_value is true, serialises |tag_| and |send_value_| to |out|.
- virtual void ToHandshakeMessage(CryptoHandshakeMessage* out) const OVERRIDE;
+ virtual void ToHandshakeMessage(CryptoHandshakeMessage* out) const override;
// Sets |value_| to the corresponding value from |client_hello_| if it exists.
virtual QuicErrorCode ProcessPeerHello(
const CryptoHandshakeMessage& peer_hello,
HelloType hello_type,
- std::string* error_details) OVERRIDE;
+ std::string* error_details) override;
private:
QuicTag send_value_;
@@ -235,14 +235,14 @@
// If has_send_value is true, serialises |tag_vector_| and |send_value_| to
// |out|.
- virtual void ToHandshakeMessage(CryptoHandshakeMessage* out) const OVERRIDE;
+ virtual void ToHandshakeMessage(CryptoHandshakeMessage* out) const override;
// Sets |receive_values_| to the corresponding value from |client_hello_| if
// it exists.
virtual QuicErrorCode ProcessPeerHello(
const CryptoHandshakeMessage& peer_hello,
HelloType hello_type,
- std::string* error_details) OVERRIDE;
+ std::string* error_details) override;
private:
QuicTagVector send_values_;
@@ -304,6 +304,14 @@
return max_idle_time_before_crypto_handshake_;
}
+ void set_max_undecryptable_packets(size_t max_undecryptable_packets) {
+ max_undecryptable_packets_ = max_undecryptable_packets;
+ }
+
+ size_t max_undecryptable_packets() const {
+ return max_undecryptable_packets_;
+ }
+
// Sets the peer's default initial congestion window in packets.
void SetInitialCongestionWindowToSend(size_t initial_window);
@@ -362,9 +370,6 @@
bool negotiated() const;
- // SetDefaults sets the members to sensible, default values.
- void SetDefaults();
-
// ToHandshakeMessage serialises the settings in this object as a series of
// tags /value pairs and adds them to |out|.
void ToHandshakeMessage(CryptoHandshakeMessage* out) const;
@@ -378,11 +383,16 @@
private:
friend class test::QuicConfigPeer;
+ // SetDefaults sets the members to sensible, default values.
+ void SetDefaults();
+
// Configurations options that are not negotiated.
// Maximum time the session can be alive before crypto handshake is finished.
QuicTime::Delta max_time_before_crypto_handshake_;
// Maximum idle time before the crypto handshake has completed.
QuicTime::Delta max_idle_time_before_crypto_handshake_;
+ // Maximum number of undecryptable packets stored before CHLO/SHLO.
+ size_t max_undecryptable_packets_;
// Congestion control feedback type.
QuicNegotiableTag congestion_feedback_;
diff --git a/net/quic/quic_config_test.cc b/net/quic/quic_config_test.cc
index 2263e44..914b137 100644
--- a/net/quic/quic_config_test.cc
+++ b/net/quic/quic_config_test.cc
@@ -22,15 +22,10 @@
class QuicConfigTest : public ::testing::Test {
protected:
- QuicConfigTest() {
- config_.SetDefaults();
- }
-
QuicConfig config_;
};
TEST_F(QuicConfigTest, ToHandshakeMessage) {
- config_.SetDefaults();
config_.SetInitialFlowControlWindowToSend(
kInitialSessionFlowControlWindowForTest);
config_.SetInitialStreamFlowControlWindowToSend(
@@ -265,7 +260,6 @@
TEST_F(QuicConfigTest, NoOverLapInCGST) {
QuicConfig server_config;
- server_config.SetDefaults();
QuicTagVector cgst;
cgst.push_back(kTBBR);
server_config.SetCongestionFeedback(cgst, kTBBR);
diff --git a/net/quic/quic_connection.cc b/net/quic/quic_connection.cc
index 8d49010..f684cf2 100644
--- a/net/quic/quic_connection.cc
+++ b/net/quic/quic_connection.cc
@@ -6,6 +6,7 @@
#include <string.h>
#include <sys/types.h>
+
#include <algorithm>
#include <iterator>
#include <limits>
@@ -53,10 +54,6 @@
// that this becomes limiting, we can revisit.
const size_t kMaxFecGroups = 2;
-// Limit the number of undecryptable packets we buffer in
-// expectation of the CHLO/SHLO arriving.
-const size_t kMaxUndecryptablePackets = 10;
-
// Maximum number of acks received before sending an ack in response.
const size_t kMaxPacketsReceivedBeforeAckSend = 20;
@@ -72,7 +69,7 @@
: connection_(connection) {
}
- virtual QuicTime OnAlarm() OVERRIDE {
+ virtual QuicTime OnAlarm() override {
connection_->SendAck();
return QuicTime::Zero();
}
@@ -92,7 +89,7 @@
: connection_(connection) {
}
- virtual QuicTime OnAlarm() OVERRIDE {
+ virtual QuicTime OnAlarm() override {
connection_->OnRetransmissionTimeout();
return QuicTime::Zero();
}
@@ -111,7 +108,7 @@
: connection_(connection) {
}
- virtual QuicTime OnAlarm() OVERRIDE {
+ virtual QuicTime OnAlarm() override {
connection_->WriteIfNotBlocked();
// Never reschedule the alarm, since CanWrite does that.
return QuicTime::Zero();
@@ -129,7 +126,7 @@
: connection_(connection) {
}
- virtual QuicTime OnAlarm() OVERRIDE {
+ virtual QuicTime OnAlarm() override {
connection_->CheckForTimeout();
// Never reschedule the alarm, since CheckForTimeout does that.
return QuicTime::Zero();
@@ -147,7 +144,7 @@
: connection_(connection) {
}
- virtual QuicTime OnAlarm() OVERRIDE {
+ virtual QuicTime OnAlarm() override {
connection_->SendPing();
return QuicTime::Zero();
}
@@ -162,10 +159,10 @@
QuicConnection::QueuedPacket::QueuedPacket(SerializedPacket packet,
EncryptionLevel level)
- : serialized_packet(packet),
- encryption_level(level),
- transmission_type(NOT_RETRANSMISSION),
- original_sequence_number(0) {
+ : serialized_packet(packet),
+ encryption_level(level),
+ transmission_type(NOT_RETRANSMISSION),
+ original_sequence_number(0) {
}
QuicConnection::QueuedPacket::QueuedPacket(
@@ -204,6 +201,7 @@
last_decrypted_packet_level_(ENCRYPTION_NONE),
largest_seen_packet_with_ack_(0),
largest_seen_packet_with_stop_waiting_(0),
+ max_undecryptable_packets_(0),
pending_version_negotiation_packet_(false),
received_packet_manager_(&stats_),
ack_queued_(false),
@@ -271,6 +269,7 @@
SetIdleNetworkTimeout(config.IdleConnectionStateLifetime());
}
sent_packet_manager_.SetFromConfig(config);
+ max_undecryptable_packets_ = config.max_undecryptable_packets();
}
bool QuicConnection::SelectMutualVersion(
@@ -1116,7 +1115,7 @@
// because the CHLO or SHLO packet was lost.
if (framer_.error() == QUIC_DECRYPTION_FAILURE) {
if (encryption_level_ != ENCRYPTION_FORWARD_SECURE &&
- undecryptable_packets_.size() < kMaxUndecryptablePackets) {
+ undecryptable_packets_.size() < max_undecryptable_packets_) {
QueueUndecryptablePacket(packet);
} else if (debug_visitor_.get() != nullptr) {
debug_visitor_->OnUndecryptablePacket();
@@ -1176,8 +1175,7 @@
return;
}
- { // Limit the scope of the bundler.
- // Set |include_ack| to false in bundler; ack inclusion happens elsewhere.
+ { // Limit the scope of the bundler. ACK inclusion happens elsewhere.
ScopedPacketBundler bundler(this, NO_ACK);
visitor_->OnCanWrite();
}
@@ -1322,7 +1320,8 @@
// If the scheduler requires a delay, then we can not send this packet now.
if (!delay.IsZero()) {
send_alarm_->Update(now.Add(delay), QuicTime::Delta::FromMilliseconds(1));
- DVLOG(1) << "Delaying sending.";
+ DVLOG(1) << ENDPOINT << "Delaying sending " << delay.ToMilliseconds()
+ << "ms";
return false;
}
send_alarm_->Cancel();
@@ -1408,15 +1407,6 @@
if (result.error_code == ERR_IO_PENDING) {
DCHECK_EQ(WRITE_STATUS_BLOCKED, result.status);
}
- if (debug_visitor_.get() != nullptr) {
- // Pass the write result to the visitor.
- debug_visitor_->OnPacketSent(sequence_number,
- packet->original_sequence_number,
- packet->encryption_level,
- packet->transmission_type,
- *encrypted,
- result);
- }
if (result.status == WRITE_STATUS_BLOCKED) {
visitor_->OnWriteBlocked();
@@ -1429,6 +1419,15 @@
}
}
QuicTime now = clock_->Now();
+ if (result.status != WRITE_STATUS_ERROR && debug_visitor_.get() != nullptr) {
+ // Pass the write result to the visitor.
+ debug_visitor_->OnPacketSent(packet->serialized_packet,
+ packet->original_sequence_number,
+ packet->encryption_level,
+ packet->transmission_type,
+ *encrypted,
+ now);
+ }
if (packet->transmission_type == NOT_RETRANSMISSION) {
time_of_last_sent_new_packet_ = now;
}
@@ -1857,7 +1856,7 @@
// Adjust the idle timeout on client and server to prevent clients from
// sending requests to servers which have already closed the connection.
if (is_server_) {
- timeout = timeout.Add(QuicTime::Delta::FromSeconds(1));
+ timeout = timeout.Add(QuicTime::Delta::FromSeconds(3));
} else if (timeout > QuicTime::Delta::FromSeconds(1)) {
timeout = timeout.Subtract(QuicTime::Delta::FromSeconds(1));
}
@@ -1895,7 +1894,7 @@
// Adjust the idle timeout on client and server to prevent clients from
// sending requests to servers which have already closed the connection.
if (is_server_) {
- idle_timeout = idle_timeout.Add(QuicTime::Delta::FromSeconds(1));
+ idle_timeout = idle_timeout.Add(QuicTime::Delta::FromSeconds(3));
} else if (idle_timeout > QuicTime::Delta::FromSeconds(1)) {
idle_timeout = idle_timeout.Subtract(QuicTime::Delta::FromSeconds(1));
}
diff --git a/net/quic/quic_connection.h b/net/quic/quic_connection.h
index 0b017b0..fa117f8 100644
--- a/net/quic/quic_connection.h
+++ b/net/quic/quic_connection.h
@@ -124,12 +124,12 @@
virtual ~QuicConnectionDebugVisitor() {}
// Called when a packet has been sent.
- virtual void OnPacketSent(QuicPacketSequenceNumber sequence_number,
+ virtual void OnPacketSent(const SerializedPacket& serialized_packet,
QuicPacketSequenceNumber original_sequence_number,
EncryptionLevel level,
TransmissionType transmission_type,
const QuicEncryptedPacket& packet,
- WriteResult result) {}
+ QuicTime sent_time) {}
// Called when a packet has been received, but before it is
// validated or parsed.
@@ -299,7 +299,7 @@
virtual void SendConnectionCloseWithDetails(QuicErrorCode error,
const std::string& details);
// Notifies the visitor of the close and marks the connection as disconnected.
- virtual void CloseConnection(QuicErrorCode error, bool from_peer) OVERRIDE;
+ virtual void CloseConnection(QuicErrorCode error, bool from_peer) override;
virtual void SendGoAway(QuicErrorCode error,
QuicStreamId last_good_stream_id,
const std::string& reason);
@@ -317,7 +317,7 @@
// QuicBlockedWriterInterface
// Called when the underlying connection becomes writable to allow queued
// writes to happen.
- virtual void OnCanWrite() OVERRIDE;
+ virtual void OnCanWrite() override;
// Called when an error occurs while attempting to write a packet to the
// network.
@@ -335,47 +335,47 @@
}
// From QuicFramerVisitorInterface
- virtual void OnError(QuicFramer* framer) OVERRIDE;
- virtual bool OnProtocolVersionMismatch(QuicVersion received_version) OVERRIDE;
- virtual void OnPacket() OVERRIDE;
+ virtual void OnError(QuicFramer* framer) override;
+ virtual bool OnProtocolVersionMismatch(QuicVersion received_version) override;
+ virtual void OnPacket() override;
virtual void OnPublicResetPacket(
- const QuicPublicResetPacket& packet) OVERRIDE;
+ const QuicPublicResetPacket& packet) override;
virtual void OnVersionNegotiationPacket(
- const QuicVersionNegotiationPacket& packet) OVERRIDE;
- virtual void OnRevivedPacket() OVERRIDE;
+ const QuicVersionNegotiationPacket& packet) override;
+ virtual void OnRevivedPacket() override;
virtual bool OnUnauthenticatedPublicHeader(
- const QuicPacketPublicHeader& header) OVERRIDE;
- virtual bool OnUnauthenticatedHeader(const QuicPacketHeader& header) OVERRIDE;
- virtual void OnDecryptedPacket(EncryptionLevel level) OVERRIDE;
- virtual bool OnPacketHeader(const QuicPacketHeader& header) OVERRIDE;
- virtual void OnFecProtectedPayload(base::StringPiece payload) OVERRIDE;
- virtual bool OnStreamFrame(const QuicStreamFrame& frame) OVERRIDE;
- virtual bool OnAckFrame(const QuicAckFrame& frame) OVERRIDE;
+ const QuicPacketPublicHeader& header) override;
+ virtual bool OnUnauthenticatedHeader(const QuicPacketHeader& header) override;
+ virtual void OnDecryptedPacket(EncryptionLevel level) override;
+ virtual bool OnPacketHeader(const QuicPacketHeader& header) override;
+ virtual void OnFecProtectedPayload(base::StringPiece payload) override;
+ virtual bool OnStreamFrame(const QuicStreamFrame& frame) override;
+ virtual bool OnAckFrame(const QuicAckFrame& frame) override;
virtual bool OnCongestionFeedbackFrame(
- const QuicCongestionFeedbackFrame& frame) OVERRIDE;
- virtual bool OnStopWaitingFrame(const QuicStopWaitingFrame& frame) OVERRIDE;
- virtual bool OnPingFrame(const QuicPingFrame& frame) OVERRIDE;
- virtual bool OnRstStreamFrame(const QuicRstStreamFrame& frame) OVERRIDE;
+ const QuicCongestionFeedbackFrame& frame) override;
+ virtual bool OnStopWaitingFrame(const QuicStopWaitingFrame& frame) override;
+ virtual bool OnPingFrame(const QuicPingFrame& frame) override;
+ virtual bool OnRstStreamFrame(const QuicRstStreamFrame& frame) override;
virtual bool OnConnectionCloseFrame(
- const QuicConnectionCloseFrame& frame) OVERRIDE;
- virtual bool OnGoAwayFrame(const QuicGoAwayFrame& frame) OVERRIDE;
- virtual bool OnWindowUpdateFrame(const QuicWindowUpdateFrame& frame) OVERRIDE;
- virtual bool OnBlockedFrame(const QuicBlockedFrame& frame) OVERRIDE;
- virtual void OnFecData(const QuicFecData& fec) OVERRIDE;
- virtual void OnPacketComplete() OVERRIDE;
+ const QuicConnectionCloseFrame& frame) override;
+ virtual bool OnGoAwayFrame(const QuicGoAwayFrame& frame) override;
+ virtual bool OnWindowUpdateFrame(const QuicWindowUpdateFrame& frame) override;
+ virtual bool OnBlockedFrame(const QuicBlockedFrame& frame) override;
+ virtual void OnFecData(const QuicFecData& fec) override;
+ virtual void OnPacketComplete() override;
// QuicPacketGenerator::DelegateInterface
virtual bool ShouldGeneratePacket(TransmissionType transmission_type,
HasRetransmittableData retransmittable,
- IsHandshake handshake) OVERRIDE;
- virtual QuicAckFrame* CreateAckFrame() OVERRIDE;
- virtual QuicCongestionFeedbackFrame* CreateFeedbackFrame() OVERRIDE;
- virtual QuicStopWaitingFrame* CreateStopWaitingFrame() OVERRIDE;
- virtual void OnSerializedPacket(const SerializedPacket& packet) OVERRIDE;
+ IsHandshake handshake) override;
+ virtual QuicAckFrame* CreateAckFrame() override;
+ virtual QuicCongestionFeedbackFrame* CreateFeedbackFrame() override;
+ virtual QuicStopWaitingFrame* CreateStopWaitingFrame() override;
+ virtual void OnSerializedPacket(const SerializedPacket& packet) override;
// QuicSentPacketManager::NetworkChangeVisitor
virtual void OnCongestionWindowChange(
- QuicByteCount congestion_window) OVERRIDE;
+ QuicByteCount congestion_window) override;
// Called by the crypto stream when the handshake completes. In the server's
// case this is when the SHLO has been ACKed. Clients call this on receipt of
@@ -713,6 +713,9 @@
// sent with the INITIAL encryption and the CHLO message was lost.
std::deque<QuicEncryptedPacket*> undecryptable_packets_;
+ // Maximum number of undecryptable packets the connection will store.
+ size_t max_undecryptable_packets_;
+
// When the version negotiation packet could not be sent because the socket
// was not writable, this is set to true.
bool pending_version_negotiation_packet_;
diff --git a/net/quic/quic_connection_helper.cc b/net/quic/quic_connection_helper.cc
index fefd6fa..83c1648 100644
--- a/net/quic/quic_connection_helper.cc
+++ b/net/quic/quic_connection_helper.cc
@@ -29,7 +29,7 @@
weak_factory_(this) {}
protected:
- virtual void SetImpl() OVERRIDE {
+ virtual void SetImpl() override {
DCHECK(deadline().IsInitialized());
if (task_deadline_.IsInitialized()) {
if (task_deadline_ <= deadline()) {
@@ -54,7 +54,7 @@
task_deadline_ = deadline();
}
- virtual void CancelImpl() OVERRIDE {
+ virtual void CancelImpl() override {
DCHECK(!deadline().IsInitialized());
// Since tasks can not be un-posted, OnAlarm will be invoked which
// will notice that deadline is not Initialized and will do nothing.
diff --git a/net/quic/quic_connection_helper.h b/net/quic/quic_connection_helper.h
index 28cff52..e1754e5 100644
--- a/net/quic/quic_connection_helper.h
+++ b/net/quic/quic_connection_helper.h
@@ -37,9 +37,9 @@
virtual ~QuicConnectionHelper();
// QuicConnectionHelperInterface
- virtual const QuicClock* GetClock() const OVERRIDE;
- virtual QuicRandom* GetRandomGenerator() OVERRIDE;
- virtual QuicAlarm* CreateAlarm(QuicAlarm::Delegate* delegate) OVERRIDE;
+ virtual const QuicClock* GetClock() const override;
+ virtual QuicRandom* GetRandomGenerator() override;
+ virtual QuicAlarm* CreateAlarm(QuicAlarm::Delegate* delegate) override;
private:
base::TaskRunner* task_runner_;
diff --git a/net/quic/quic_connection_helper_test.cc b/net/quic/quic_connection_helper_test.cc
index 638ca46..8a2c931 100644
--- a/net/quic/quic_connection_helper_test.cc
+++ b/net/quic/quic_connection_helper_test.cc
@@ -17,7 +17,7 @@
public:
TestDelegate() : fired_(false) {}
- virtual QuicTime OnAlarm() OVERRIDE {
+ virtual QuicTime OnAlarm() override {
fired_ = true;
return QuicTime::Zero();
}
diff --git a/net/quic/quic_connection_logger.cc b/net/quic/quic_connection_logger.cc
index 4e40417..b5ca18b 100644
--- a/net/quic/quic_connection_logger.cc
+++ b/net/quic/quic_connection_logger.cc
@@ -46,24 +46,22 @@
}
base::Value* NetLogQuicPacketSentCallback(
- QuicPacketSequenceNumber sequence_number,
+ const SerializedPacket& serialized_packet,
QuicPacketSequenceNumber original_sequence_number,
EncryptionLevel level,
TransmissionType transmission_type,
size_t packet_size,
- WriteResult result,
+ QuicTime sent_time,
NetLog::LogLevel /* log_level */) {
base::DictionaryValue* dict = new base::DictionaryValue();
dict->SetInteger("encryption_level", level);
dict->SetInteger("transmission_type", transmission_type);
dict->SetString("packet_sequence_number",
- base::Uint64ToString(sequence_number));
+ base::Uint64ToString(serialized_packet.sequence_number));
dict->SetString("original_sequence_number",
base::Uint64ToString(original_sequence_number));
dict->SetInteger("size", packet_size);
- if (result.status != WRITE_STATUS_OK) {
- dict->SetInteger("net_error", result.error_code);
- }
+ dict->SetInteger("sent_time_us", sent_time.ToDebuggingValue());
return dict;
}
@@ -324,8 +322,10 @@
} // namespace
-QuicConnectionLogger::QuicConnectionLogger(const BoundNetLog& net_log)
+QuicConnectionLogger::QuicConnectionLogger(QuicSession* session,
+ const BoundNetLog& net_log)
: net_log_(net_log),
+ session_(session),
last_received_packet_sequence_number_(0),
last_received_packet_size_(0),
largest_received_packet_sequence_number_(0),
@@ -454,6 +454,10 @@
frame.stop_waiting_frame));
break;
case PING_FRAME:
+ UMA_HISTOGRAM_BOOLEAN("Net.QuicSession.ConnectionFlowControlBlocked",
+ session_->IsConnectionFlowControlBlocked());
+ UMA_HISTOGRAM_BOOLEAN("Net.QuicSession.StreamFlowControlBlocked",
+ session_->IsStreamFlowControlBlocked());
// PingFrame has no contents to log, so just record that it was sent.
net_log_.AddEvent(NetLog::TYPE_QUIC_SESSION_PING_FRAME_SENT);
break;
@@ -463,17 +467,17 @@
}
void QuicConnectionLogger::OnPacketSent(
- QuicPacketSequenceNumber sequence_number,
+ const SerializedPacket& serialized_packet,
QuicPacketSequenceNumber original_sequence_number,
EncryptionLevel level,
TransmissionType transmission_type,
const QuicEncryptedPacket& packet,
- WriteResult result) {
+ QuicTime sent_time) {
net_log_.AddEvent(
NetLog::TYPE_QUIC_SESSION_PACKET_SENT,
- base::Bind(&NetLogQuicPacketSentCallback, sequence_number,
+ base::Bind(&NetLogQuicPacketSentCallback, serialized_packet,
original_sequence_number, level, transmission_type,
- packet.length(), result));
+ packet.length(), sent_time));
}
void QuicConnectionLogger::OnPacketReceived(const IPEndPoint& self_address,
diff --git a/net/quic/quic_connection_logger.h b/net/quic/quic_connection_logger.h
index 7693d79..c714e3b 100644
--- a/net/quic/quic_connection_logger.h
+++ b/net/quic/quic_connection_logger.h
@@ -12,6 +12,7 @@
#include "net/base/network_change_notifier.h"
#include "net/quic/quic_connection.h"
#include "net/quic/quic_protocol.h"
+#include "net/quic/quic_session.h"
namespace net {
namespace test {
@@ -26,51 +27,51 @@
class NET_EXPORT_PRIVATE QuicConnectionLogger
: public QuicConnectionDebugVisitor {
public:
- explicit QuicConnectionLogger(const BoundNetLog& net_log);
+ QuicConnectionLogger(QuicSession* session, const BoundNetLog& net_log);
virtual ~QuicConnectionLogger();
// QuicPacketGenerator::DebugDelegateInterface
- virtual void OnFrameAddedToPacket(const QuicFrame& frame) OVERRIDE;
+ virtual void OnFrameAddedToPacket(const QuicFrame& frame) override;
// QuicConnectionDebugVisitorInterface
- virtual void OnPacketSent(QuicPacketSequenceNumber sequence_number,
+ virtual void OnPacketSent(const SerializedPacket& serialized_packet,
QuicPacketSequenceNumber original_sequence_number,
EncryptionLevel level,
TransmissionType transmission_type,
const QuicEncryptedPacket& packet,
- WriteResult result) OVERRIDE;
+ QuicTime sent_time) override;
virtual void OnPacketReceived(const IPEndPoint& self_address,
const IPEndPoint& peer_address,
- const QuicEncryptedPacket& packet) OVERRIDE;
+ const QuicEncryptedPacket& packet) override;
virtual void OnIncorrectConnectionId(
- QuicConnectionId connection_id) OVERRIDE;
- virtual void OnUndecryptablePacket() OVERRIDE;
+ QuicConnectionId connection_id) override;
+ virtual void OnUndecryptablePacket() override;
virtual void OnDuplicatePacket(QuicPacketSequenceNumber sequence_number)
- OVERRIDE;
- virtual void OnProtocolVersionMismatch(QuicVersion version) OVERRIDE;
- virtual void OnPacketHeader(const QuicPacketHeader& header) OVERRIDE;
- virtual void OnStreamFrame(const QuicStreamFrame& frame) OVERRIDE;
- virtual void OnAckFrame(const QuicAckFrame& frame) OVERRIDE;
+ override;
+ virtual void OnProtocolVersionMismatch(QuicVersion version) override;
+ virtual void OnPacketHeader(const QuicPacketHeader& header) override;
+ virtual void OnStreamFrame(const QuicStreamFrame& frame) override;
+ virtual void OnAckFrame(const QuicAckFrame& frame) override;
virtual void OnCongestionFeedbackFrame(
- const QuicCongestionFeedbackFrame& frame) OVERRIDE;
- virtual void OnStopWaitingFrame(const QuicStopWaitingFrame& frame) OVERRIDE;
- virtual void OnRstStreamFrame(const QuicRstStreamFrame& frame) OVERRIDE;
+ const QuicCongestionFeedbackFrame& frame) override;
+ virtual void OnStopWaitingFrame(const QuicStopWaitingFrame& frame) override;
+ virtual void OnRstStreamFrame(const QuicRstStreamFrame& frame) override;
virtual void OnConnectionCloseFrame(
- const QuicConnectionCloseFrame& frame) OVERRIDE;
- virtual void OnWindowUpdateFrame(const QuicWindowUpdateFrame& frame) OVERRIDE;
- virtual void OnBlockedFrame(const QuicBlockedFrame& frame) OVERRIDE;
- virtual void OnGoAwayFrame(const QuicGoAwayFrame& frame) OVERRIDE;
- virtual void OnPingFrame(const QuicPingFrame& frame) OVERRIDE;
+ const QuicConnectionCloseFrame& frame) override;
+ virtual void OnWindowUpdateFrame(const QuicWindowUpdateFrame& frame) override;
+ virtual void OnBlockedFrame(const QuicBlockedFrame& frame) override;
+ virtual void OnGoAwayFrame(const QuicGoAwayFrame& frame) override;
+ virtual void OnPingFrame(const QuicPingFrame& frame) override;
virtual void OnPublicResetPacket(
- const QuicPublicResetPacket& packet) OVERRIDE;
+ const QuicPublicResetPacket& packet) override;
virtual void OnVersionNegotiationPacket(
- const QuicVersionNegotiationPacket& packet) OVERRIDE;
+ const QuicVersionNegotiationPacket& packet) override;
virtual void OnRevivedPacket(const QuicPacketHeader& revived_header,
- base::StringPiece payload) OVERRIDE;
- virtual void OnConnectionClosed(QuicErrorCode error, bool from_peer) OVERRIDE;
+ base::StringPiece payload) override;
+ virtual void OnConnectionClosed(QuicErrorCode error, bool from_peer) override;
virtual void OnSuccessfulVersionNegotiation(
- const QuicVersion& version) OVERRIDE;
+ const QuicVersion& version) override;
void OnCryptoHandshakeMessageReceived(
const CryptoHandshakeMessage& message);
@@ -119,6 +120,7 @@
void RecordLossHistograms() const;
BoundNetLog net_log_;
+ QuicSession* session_; // Unowned.
// The last packet sequence number received.
QuicPacketSequenceNumber last_received_packet_sequence_number_;
// The size of the most recently received packet.
diff --git a/net/quic/quic_connection_logger_unittest.cc b/net/quic/quic_connection_logger_unittest.cc
index 9f9cd9a..dbba7d7 100644
--- a/net/quic/quic_connection_logger_unittest.cc
+++ b/net/quic/quic_connection_logger_unittest.cc
@@ -19,7 +19,7 @@
class QuicConnectionLoggerTest : public ::testing::Test {
protected:
- QuicConnectionLoggerTest() : logger_(net_log_) {}
+ QuicConnectionLoggerTest() : logger_(nullptr, net_log_) {}
BoundNetLog net_log_;
QuicConnectionLogger logger_;
diff --git a/net/quic/quic_connection_stats.h b/net/quic/quic_connection_stats.h
index 1cb8ca7..c681dea 100644
--- a/net/quic/quic_connection_stats.h
+++ b/net/quic/quic_connection_stats.h
@@ -51,8 +51,8 @@
uint32 rto_count; // Count of times the rto timer fired.
uint32 spurious_rto_count;
- uint32 min_rtt_us; // Minimum RTT in microseconds.
- uint32 srtt_us; // Smoothed RTT in microseconds.
+ int64 min_rtt_us; // Minimum RTT in microseconds.
+ int64 srtt_us; // Smoothed RTT in microseconds.
uint32 max_packet_size; // In bytes.
uint64 estimated_bandwidth; // In bytes per second.
uint32 congestion_window; // In bytes
@@ -64,7 +64,7 @@
// Maximum reordering observed in sequence space.
uint32 max_sequence_reordering;
// Maximum reordering observed in microseconds
- uint32 max_time_reordering_us;
+ int64 max_time_reordering_us;
// The following stats are used only in TcpCubicSender.
// The number of loss events from TCP's perspective. Each loss event includes
diff --git a/net/quic/quic_connection_test.cc b/net/quic/quic_connection_test.cc
index 2869513..b084428 100644
--- a/net/quic/quic_connection_test.cc
+++ b/net/quic/quic_connection_test.cc
@@ -93,15 +93,15 @@
virtual ~TaggingEncrypter() {}
// QuicEncrypter interface.
- virtual bool SetKey(StringPiece key) OVERRIDE { return true; }
- virtual bool SetNoncePrefix(StringPiece nonce_prefix) OVERRIDE {
+ virtual bool SetKey(StringPiece key) override { return true; }
+ virtual bool SetNoncePrefix(StringPiece nonce_prefix) override {
return true;
}
virtual bool Encrypt(StringPiece nonce,
StringPiece associated_data,
StringPiece plaintext,
- unsigned char* output) OVERRIDE {
+ unsigned char* output) override {
memcpy(output, plaintext.data(), plaintext.size());
output += plaintext.size();
memset(output, tag_, kTagSize);
@@ -110,29 +110,29 @@
virtual QuicData* EncryptPacket(QuicPacketSequenceNumber sequence_number,
StringPiece associated_data,
- StringPiece plaintext) OVERRIDE {
+ StringPiece plaintext) override {
const size_t len = plaintext.size() + kTagSize;
uint8* buffer = new uint8[len];
Encrypt(StringPiece(), associated_data, plaintext, buffer);
return new QuicData(reinterpret_cast<char*>(buffer), len, true);
}
- virtual size_t GetKeySize() const OVERRIDE { return 0; }
- virtual size_t GetNoncePrefixSize() const OVERRIDE { return 0; }
+ virtual size_t GetKeySize() const override { return 0; }
+ virtual size_t GetNoncePrefixSize() const override { return 0; }
- virtual size_t GetMaxPlaintextSize(size_t ciphertext_size) const OVERRIDE {
+ virtual size_t GetMaxPlaintextSize(size_t ciphertext_size) const override {
return ciphertext_size - kTagSize;
}
- virtual size_t GetCiphertextSize(size_t plaintext_size) const OVERRIDE {
+ virtual size_t GetCiphertextSize(size_t plaintext_size) const override {
return plaintext_size + kTagSize;
}
- virtual StringPiece GetKey() const OVERRIDE {
+ virtual StringPiece GetKey() const override {
return StringPiece();
}
- virtual StringPiece GetNoncePrefix() const OVERRIDE {
+ virtual StringPiece GetNoncePrefix() const override {
return StringPiece();
}
@@ -153,8 +153,8 @@
virtual ~TaggingDecrypter() {}
// QuicDecrypter interface
- virtual bool SetKey(StringPiece key) OVERRIDE { return true; }
- virtual bool SetNoncePrefix(StringPiece nonce_prefix) OVERRIDE {
+ virtual bool SetKey(StringPiece key) override { return true; }
+ virtual bool SetNoncePrefix(StringPiece nonce_prefix) override {
return true;
}
@@ -162,7 +162,7 @@
StringPiece associated_data,
StringPiece ciphertext,
unsigned char* output,
- size_t* output_length) OVERRIDE {
+ size_t* output_length) override {
if (ciphertext.size() < kTagSize) {
return false;
}
@@ -176,7 +176,7 @@
virtual QuicData* DecryptPacket(QuicPacketSequenceNumber sequence_number,
StringPiece associated_data,
- StringPiece ciphertext) OVERRIDE {
+ StringPiece ciphertext) override {
if (ciphertext.size() < kTagSize) {
return nullptr;
}
@@ -190,8 +190,8 @@
true /* owns buffer */);
}
- virtual StringPiece GetKey() const OVERRIDE { return StringPiece(); }
- virtual StringPiece GetNoncePrefix() const OVERRIDE { return StringPiece(); }
+ virtual StringPiece GetKey() const override { return StringPiece(); }
+ virtual StringPiece GetNoncePrefix() const override { return StringPiece(); }
protected:
virtual uint8 GetTag(StringPiece ciphertext) {
@@ -222,7 +222,7 @@
virtual ~StrictTaggingDecrypter() {}
// TaggingQuicDecrypter
- virtual uint8 GetTag(StringPiece ciphertext) OVERRIDE {
+ virtual uint8 GetTag(StringPiece ciphertext) override {
return tag_;
}
@@ -238,8 +238,8 @@
: QuicAlarm(delegate) {
}
- virtual void SetImpl() OVERRIDE {}
- virtual void CancelImpl() OVERRIDE {}
+ virtual void SetImpl() override {}
+ virtual void CancelImpl() override {}
using QuicAlarm::Fire;
};
@@ -250,15 +250,15 @@
}
// QuicConnectionHelperInterface
- virtual const QuicClock* GetClock() const OVERRIDE {
+ virtual const QuicClock* GetClock() const override {
return clock_;
}
- virtual QuicRandom* GetRandomGenerator() OVERRIDE {
+ virtual QuicRandom* GetRandomGenerator() override {
return random_generator_;
}
- virtual QuicAlarm* CreateAlarm(QuicAlarm::Delegate* delegate) OVERRIDE {
+ virtual QuicAlarm* CreateAlarm(QuicAlarm::Delegate* delegate) override {
return new TestAlarm(delegate);
}
@@ -288,7 +288,7 @@
virtual WriteResult WritePacket(
const char* buffer, size_t buf_len,
const IPAddressNumber& self_address,
- const IPEndPoint& peer_address) OVERRIDE {
+ const IPEndPoint& peer_address) override {
QuicEncryptedPacket packet(buffer, buf_len);
++packets_write_attempts_;
@@ -313,13 +313,13 @@
return WriteResult(WRITE_STATUS_OK, last_packet_size_);
}
- virtual bool IsWriteBlockedDataBuffered() const OVERRIDE {
+ virtual bool IsWriteBlockedDataBuffered() const override {
return is_write_blocked_data_buffered_;
}
- virtual bool IsWriteBlocked() const OVERRIDE { return write_blocked_; }
+ virtual bool IsWriteBlocked() const override { return write_blocked_; }
- virtual void SetWritable() OVERRIDE { write_blocked_ = false; }
+ virtual void SetWritable() override { write_blocked_ = false; }
void BlockOnNextWrite() { block_on_next_write_ = true; }
@@ -591,7 +591,7 @@
: public QuicConnectionDebugVisitor {
public:
virtual void OnRevivedPacket(const QuicPacketHeader& header,
- StringPiece data) OVERRIDE {
+ StringPiece data) override {
revived_header_ = header;
}
@@ -2416,19 +2416,22 @@
}
TEST_P(QuicConnectionTest, BufferNonDecryptablePackets) {
+ // SetFromConfig is always called after construction from InitializeSession.
+ EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
+ QuicConfig config;
+ connection_.SetFromConfig(config);
EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_));
use_tagging_decrypter();
const uint8 tag = 0x07;
framer_.SetEncrypter(ENCRYPTION_INITIAL, new TaggingEncrypter(tag));
- // Process an encrypted packet which can not yet be decrypted
- // which should result in the packet being buffered.
+ // Process an encrypted packet which can not yet be decrypted which should
+ // result in the packet being buffered.
ProcessDataPacketAtLevel(1, 0, kEntropyFlag, ENCRYPTION_INITIAL);
- // Transition to the new encryption state and process another
- // encrypted packet which should result in the original packet being
- // processed.
+ // Transition to the new encryption state and process another encrypted packet
+ // which should result in the original packet being processed.
connection_.SetDecrypter(new StrictTaggingDecrypter(tag),
ENCRYPTION_INITIAL);
connection_.SetDefaultEncryptionLevel(ENCRYPTION_INITIAL);
@@ -2436,12 +2439,44 @@
EXPECT_CALL(visitor_, OnStreamFrames(_)).Times(2);
ProcessDataPacketAtLevel(2, 0, kEntropyFlag, ENCRYPTION_INITIAL);
- // Finally, process a third packet and note that we do not
- // reprocess the buffered packet.
+ // Finally, process a third packet and note that we do not reprocess the
+ // buffered packet.
EXPECT_CALL(visitor_, OnStreamFrames(_)).Times(1);
ProcessDataPacketAtLevel(3, 0, kEntropyFlag, ENCRYPTION_INITIAL);
}
+TEST_P(QuicConnectionTest, Buffer100NonDecryptablePackets) {
+ // SetFromConfig is always called after construction from InitializeSession.
+ EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
+ QuicConfig config;
+ config.set_max_undecryptable_packets(100);
+ connection_.SetFromConfig(config);
+ EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_));
+ use_tagging_decrypter();
+
+ const uint8 tag = 0x07;
+ framer_.SetEncrypter(ENCRYPTION_INITIAL, new TaggingEncrypter(tag));
+
+ // Process an encrypted packet which can not yet be decrypted which should
+ // result in the packet being buffered.
+ for (QuicPacketSequenceNumber i = 1; i <= 100; ++i) {
+ ProcessDataPacketAtLevel(i, 0, kEntropyFlag, ENCRYPTION_INITIAL);
+ }
+
+ // Transition to the new encryption state and process another encrypted packet
+ // which should result in the original packets being processed.
+ connection_.SetDecrypter(new StrictTaggingDecrypter(tag), ENCRYPTION_INITIAL);
+ connection_.SetDefaultEncryptionLevel(ENCRYPTION_INITIAL);
+ connection_.SetEncrypter(ENCRYPTION_INITIAL, new TaggingEncrypter(tag));
+ EXPECT_CALL(visitor_, OnStreamFrames(_)).Times(101);
+ ProcessDataPacketAtLevel(101, 0, kEntropyFlag, ENCRYPTION_INITIAL);
+
+ // Finally, process a third packet and note that we do not reprocess the
+ // buffered packet.
+ EXPECT_CALL(visitor_, OnStreamFrames(_)).Times(1);
+ ProcessDataPacketAtLevel(102, 0, kEntropyFlag, ENCRYPTION_INITIAL);
+}
+
TEST_P(QuicConnectionTest, TestRetransmitOrder) {
QuicByteCount first_packet_size;
EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).WillOnce(
@@ -2682,7 +2717,6 @@
// SetFromConfig sets the initial timeouts before negotiation.
EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
QuicConfig config;
- config.SetDefaults();
connection_.SetFromConfig(config);
// Subtract a second from the idle timeout on the client side.
QuicTime default_timeout = clock_.ApproximateNow().Add(
@@ -2835,7 +2869,6 @@
EXPECT_TRUE(connection_.connected());
EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
QuicConfig config;
- config.SetDefaults();
connection_.SetFromConfig(config);
const QuicTime::Delta initial_idle_timeout =
@@ -3924,12 +3957,12 @@
void(const QuicFrame&));
MOCK_METHOD6(OnPacketSent,
- void(QuicPacketSequenceNumber,
+ void(const SerializedPacket&,
QuicPacketSequenceNumber,
EncryptionLevel,
TransmissionType,
const QuicEncryptedPacket&,
- WriteResult));
+ QuicTime));
MOCK_METHOD3(OnPacketReceived,
void(const IPEndPoint&,
diff --git a/net/quic/quic_crypto_client_stream.h b/net/quic/quic_crypto_client_stream.h
index 96d2556..801c3da 100644
--- a/net/quic/quic_crypto_client_stream.h
+++ b/net/quic/quic_crypto_client_stream.h
@@ -33,7 +33,7 @@
// CryptoFramerVisitorInterface implementation
virtual void OnHandshakeMessage(
- const CryptoHandshakeMessage& message) OVERRIDE;
+ const CryptoHandshakeMessage& message) override;
// Performs a crypto handshake with the server. Returns true if the crypto
// handshake is started successfully.
@@ -62,7 +62,7 @@
virtual ~ChannelIDSourceCallbackImpl();
// ChannelIDSourceCallback interface.
- virtual void Run(scoped_ptr<ChannelIDKey>* channel_id_key) OVERRIDE;
+ virtual void Run(scoped_ptr<ChannelIDKey>* channel_id_key) override;
// Cancel causes any future callbacks to be ignored. It must be called on
// the same thread as the callback will be made on.
@@ -83,7 +83,7 @@
// ProofVerifierCallback interface.
virtual void Run(bool ok,
const string& error_details,
- scoped_ptr<ProofVerifyDetails>* details) OVERRIDE;
+ scoped_ptr<ProofVerifyDetails>* details) override;
// Cancel causes any future callbacks to be ignored. It must be called on
// the same thread as the callback will be made on.
diff --git a/net/quic/quic_crypto_client_stream_test.cc b/net/quic/quic_crypto_client_stream_test.cc
index 5a8b08c..1df2313 100644
--- a/net/quic/quic_crypto_client_stream_test.cc
+++ b/net/quic/quic_crypto_client_stream_test.cc
@@ -34,8 +34,6 @@
stream_(new QuicCryptoClientStream(server_id_, session_.get(), nullptr,
&crypto_config_)) {
session_->SetCryptoStream(stream_.get());
- session_->config()->SetDefaults();
- crypto_config_.SetDefaults();
}
void CompleteCryptoHandshake() {
@@ -127,7 +125,6 @@
&crypto_config_));
session_->SetCryptoStream(stream_.get());
- session_->config()->SetDefaults();
// Advance time 5 years to ensure that we pass the expiry time of the cached
// server config.
diff --git a/net/quic/quic_crypto_server_stream.cc b/net/quic/quic_crypto_server_stream.cc
index eebab90..e912c32 100644
--- a/net/quic/quic_crypto_server_stream.cc
+++ b/net/quic/quic_crypto_server_stream.cc
@@ -11,6 +11,7 @@
#include "net/quic/crypto/quic_crypto_server_config.h"
#include "net/quic/crypto/source_address_token.h"
#include "net/quic/quic_config.h"
+#include "net/quic/quic_flags.h"
#include "net/quic/quic_protocol.h"
#include "net/quic/quic_session.h"
@@ -152,11 +153,12 @@
// Now that the handshake is complete, send an updated server config and
// source-address token to the client.
- SendServerConfigUpdate(nullptr);
+ SendServerConfigUpdate(previous_cached_network_params_.get(), true);
}
void QuicCryptoServerStream::SendServerConfigUpdate(
- const CachedNetworkParameters* cached_network_params) {
+ const CachedNetworkParameters* cached_network_params,
+ bool on_handshake_complete) {
if (session()->connection()->version() <= QUIC_VERSION_21 ||
!handshake_confirmed_) {
return;
@@ -174,7 +176,8 @@
return;
}
- DVLOG(1) << "Server: Sending server config update: "
+ DVLOG(1) << "Server: Sending server config update"
+ << (on_handshake_complete ? " immediately after handshake: " : ": ")
<< server_config_update_message.DebugString();
const QuicData& data = server_config_update_message.GetSerialized();
WriteOrBufferData(string(data.data(), data.length()), false, nullptr);
@@ -221,6 +224,13 @@
const ValidateClientHelloResultCallback::Result& result,
CryptoHandshakeMessage* reply,
string* error_details) {
+ // Store the bandwidth estimate from the client.
+ if (FLAGS_quic_store_cached_network_params_from_chlo &&
+ result.cached_network_params.bandwidth_estimate_bytes_per_second() > 0) {
+ previous_cached_network_params_.reset(
+ new CachedNetworkParameters(result.cached_network_params));
+ }
+
return crypto_config_.ProcessClientHello(
result,
session()->connection()->connection_id(),
diff --git a/net/quic/quic_crypto_server_stream.h b/net/quic/quic_crypto_server_stream.h
index 46ac4f3..5d55564 100644
--- a/net/quic/quic_crypto_server_stream.h
+++ b/net/quic/quic_crypto_server_stream.h
@@ -38,7 +38,7 @@
int num_original_bytes,
int num_retransmitted_packets,
int num_retransmitted_bytes,
- QuicTime::Delta delta_largest_observed) OVERRIDE;
+ QuicTime::Delta delta_largest_observed) override;
private:
virtual ~ServerHelloNotifier() {}
@@ -60,7 +60,7 @@
// CryptoFramerVisitorInterface implementation
virtual void OnHandshakeMessage(
- const CryptoHandshakeMessage& message) OVERRIDE;
+ const CryptoHandshakeMessage& message) override;
// GetBase64SHA256ClientChannelID sets |*output| to the base64 encoded,
// SHA-256 hash of the client's ChannelID key and returns true, if the client
@@ -74,8 +74,11 @@
}
// Sends the latest server config and source-address token to the client.
+ // |on_handshake_complete| is true when this is called immediately after
+ // handshake completes, and should be false for subsequent updates.
virtual void SendServerConfigUpdate(
- const CachedNetworkParameters* cached_network_params);
+ const CachedNetworkParameters* cached_network_params,
+ bool on_handshake_complete);
// Called by the ServerHello AckNotifier once the SHLO has been ACKed by the
// client.
@@ -103,7 +106,7 @@
// From ValidateClientHelloResultCallback
virtual void RunImpl(const CryptoHandshakeMessage& client_hello,
- const Result& result) OVERRIDE;
+ const Result& result) override;
private:
QuicCryptoServerStream* parent_;
@@ -133,6 +136,11 @@
// Number of server config update (SCUP) messages sent by this stream.
int num_server_config_update_messages_sent_;
+ // If the client provides CachedNetworkParameters in the STK in the CHLO, then
+ // store here, and send back in future STKs if we have no better bandwidth
+ // estimate to send.
+ scoped_ptr<CachedNetworkParameters> previous_cached_network_params_;
+
DISALLOW_COPY_AND_ASSIGN(QuicCryptoServerStream);
};
diff --git a/net/quic/quic_crypto_server_stream_test.cc b/net/quic/quic_crypto_server_stream_test.cc
index 6ce059b..38b4a57 100644
--- a/net/quic/quic_crypto_server_stream_test.cc
+++ b/net/quic/quic_crypto_server_stream_test.cc
@@ -61,8 +61,6 @@
QuicRandom::GetInstance()),
stream_(crypto_config_, &session_),
strike_register_client_(nullptr) {
- config_.SetDefaults();
- session_.config()->SetDefaults();
session_.SetCryptoStream(&stream_);
// We advance the clock initially because the default time is zero and the
// strike register worries that we've just overflowed a uint32 time.
@@ -141,11 +139,9 @@
server_conn->AdvanceTime(QuicTime::Delta::FromSeconds(100000));
QuicConfig client_config;
- client_config.SetDefaults();
scoped_ptr<TestClientSession> client_session(
new TestClientSession(client_conn, client_config));
QuicCryptoClientConfig client_crypto_config;
- client_crypto_config.SetDefaults();
QuicServerId server_id(kServerHostname, kServerPort, false,
PRIVACY_MODE_DISABLED);
@@ -277,7 +273,7 @@
TEST_P(QuicCryptoServerStreamTest, OnlySendSCUPAfterHandshakeComplete) {
// An attempt to send a SCUP before completing handshake should fail.
- stream_.SendServerConfigUpdate(nullptr);
+ stream_.SendServerConfigUpdate(nullptr, false);
EXPECT_EQ(0, stream_.num_server_config_update_messages_sent());
}
diff --git a/net/quic/quic_crypto_stream.h b/net/quic/quic_crypto_stream.h
index dc8b227..6698e3e 100644
--- a/net/quic/quic_crypto_stream.h
+++ b/net/quic/quic_crypto_stream.h
@@ -34,13 +34,13 @@
explicit QuicCryptoStream(QuicSession* session);
// CryptoFramerVisitorInterface implementation
- virtual void OnError(CryptoFramer* framer) OVERRIDE;
+ virtual void OnError(CryptoFramer* framer) override;
virtual void OnHandshakeMessage(
- const CryptoHandshakeMessage& message) OVERRIDE;
+ const CryptoHandshakeMessage& message) override;
// ReliableQuicStream implementation
- virtual uint32 ProcessRawData(const char* data, uint32 data_len) OVERRIDE;
- virtual QuicPriority EffectivePriority() const OVERRIDE;
+ virtual uint32 ProcessRawData(const char* data, uint32 data_len) override;
+ virtual QuicPriority EffectivePriority() const override;
// Sends |message| to the peer.
// TODO(wtc): return a success/failure status.
diff --git a/net/quic/quic_crypto_stream_test.cc b/net/quic/quic_crypto_stream_test.cc
index 4ea8f49..e79a1f3 100644
--- a/net/quic/quic_crypto_stream_test.cc
+++ b/net/quic/quic_crypto_stream_test.cc
@@ -30,7 +30,7 @@
}
virtual void OnHandshakeMessage(
- const CryptoHandshakeMessage& message) OVERRIDE {
+ const CryptoHandshakeMessage& message) override {
messages_.push_back(message);
}
diff --git a/net/quic/quic_data_stream.h b/net/quic/quic_data_stream.h
index 1af9004..7cb9816 100644
--- a/net/quic/quic_data_stream.h
+++ b/net/quic/quic_data_stream.h
@@ -57,13 +57,13 @@
virtual ~QuicDataStream();
// ReliableQuicStream implementation
- virtual void OnClose() OVERRIDE;
- virtual uint32 ProcessRawData(const char* data, uint32 data_len) OVERRIDE;
+ virtual void OnClose() override;
+ virtual uint32 ProcessRawData(const char* data, uint32 data_len) override;
// By default, this is the same as priority(), however it allows streams
// to temporarily alter effective priority. For example if a SPDY stream has
// compressed but not written headers it can write the headers with a higher
// priority.
- virtual QuicPriority EffectivePriority() const OVERRIDE;
+ virtual QuicPriority EffectivePriority() const override;
// Overridden by subclasses to process data. The headers will be delivered
// via OnStreamHeaders, so only data will be delivered through this method.
diff --git a/net/quic/quic_data_stream_test.cc b/net/quic/quic_data_stream_test.cc
index 279dcd3..2f6d84e 100644
--- a/net/quic/quic_data_stream_test.cc
+++ b/net/quic/quic_data_stream_test.cc
@@ -40,7 +40,7 @@
: QuicDataStream(id, session),
should_process_data_(should_process_data) {}
- virtual uint32 ProcessData(const char* data, uint32 data_len) OVERRIDE {
+ virtual uint32 ProcessData(const char* data, uint32 data_len) override {
EXPECT_NE(0u, data_len);
DVLOG(1) << "ProcessData data_len: " << data_len;
data_ += string(data, data_len);
diff --git a/net/quic/quic_default_packet_writer.h b/net/quic/quic_default_packet_writer.h
index 15eb0dd..329f7cc 100644
--- a/net/quic/quic_default_packet_writer.h
+++ b/net/quic/quic_default_packet_writer.h
@@ -29,10 +29,10 @@
virtual WriteResult WritePacket(const char* buffer,
size_t buf_len,
const IPAddressNumber& self_address,
- const IPEndPoint& peer_address) OVERRIDE;
- virtual bool IsWriteBlockedDataBuffered() const OVERRIDE;
- virtual bool IsWriteBlocked() const OVERRIDE;
- virtual void SetWritable() OVERRIDE;
+ const IPEndPoint& peer_address) override;
+ virtual bool IsWriteBlockedDataBuffered() const override;
+ virtual bool IsWriteBlocked() const override;
+ virtual void SetWritable() override;
void OnWriteComplete(int rv);
void SetConnection(QuicConnection* connection) {
diff --git a/net/quic/quic_dispatcher.cc b/net/quic/quic_dispatcher.cc
index a72faa6..121e32f 100644
--- a/net/quic/quic_dispatcher.cc
+++ b/net/quic/quic_dispatcher.cc
@@ -28,7 +28,7 @@
: dispatcher_(dispatcher) {
}
- virtual QuicTime OnAlarm() OVERRIDE {
+ virtual QuicTime OnAlarm() override {
dispatcher_->DeleteSessions();
return QuicTime::Zero();
}
@@ -44,23 +44,23 @@
connection_id_(0) {}
// QuicFramerVisitorInterface implementation
- virtual void OnPacket() OVERRIDE {}
+ virtual void OnPacket() override {}
virtual bool OnUnauthenticatedPublicHeader(
- const QuicPacketPublicHeader& header) OVERRIDE {
+ const QuicPacketPublicHeader& header) override {
connection_id_ = header.connection_id;
return dispatcher_->OnUnauthenticatedPublicHeader(header);
}
virtual bool OnUnauthenticatedHeader(
- const QuicPacketHeader& header) OVERRIDE {
+ const QuicPacketHeader& header) override {
dispatcher_->OnUnauthenticatedHeader(header);
return false;
}
- virtual void OnError(QuicFramer* framer) OVERRIDE {
+ virtual void OnError(QuicFramer* framer) override {
DVLOG(1) << QuicUtils::ErrorToString(framer->error());
}
virtual bool OnProtocolVersionMismatch(
- QuicVersion /*received_version*/) OVERRIDE {
+ QuicVersion /*received_version*/) override {
if (dispatcher_->time_wait_list_manager()->IsConnectionIdInTimeWait(
connection_id_)) {
// Keep processing after protocol mismatch - this will be dealt with by
@@ -77,74 +77,74 @@
// false from OnUnauthenticatedHeader(). As a result, we never process the
// payload of the packet.
virtual void OnPublicResetPacket(
- const QuicPublicResetPacket& /*packet*/) OVERRIDE {
+ const QuicPublicResetPacket& /*packet*/) override {
DCHECK(false);
}
virtual void OnVersionNegotiationPacket(
- const QuicVersionNegotiationPacket& /*packet*/) OVERRIDE {
+ const QuicVersionNegotiationPacket& /*packet*/) override {
DCHECK(false);
}
- virtual void OnDecryptedPacket(EncryptionLevel level) OVERRIDE {
+ virtual void OnDecryptedPacket(EncryptionLevel level) override {
DCHECK(false);
}
- virtual bool OnPacketHeader(const QuicPacketHeader& /*header*/) OVERRIDE {
+ virtual bool OnPacketHeader(const QuicPacketHeader& /*header*/) override {
DCHECK(false);
return false;
}
- virtual void OnRevivedPacket() OVERRIDE {
+ virtual void OnRevivedPacket() override {
DCHECK(false);
}
- virtual void OnFecProtectedPayload(StringPiece /*payload*/) OVERRIDE {
+ virtual void OnFecProtectedPayload(StringPiece /*payload*/) override {
DCHECK(false);
}
- virtual bool OnStreamFrame(const QuicStreamFrame& /*frame*/) OVERRIDE {
+ virtual bool OnStreamFrame(const QuicStreamFrame& /*frame*/) override {
DCHECK(false);
return false;
}
- virtual bool OnAckFrame(const QuicAckFrame& /*frame*/) OVERRIDE {
+ virtual bool OnAckFrame(const QuicAckFrame& /*frame*/) override {
DCHECK(false);
return false;
}
virtual bool OnCongestionFeedbackFrame(
- const QuicCongestionFeedbackFrame& /*frame*/) OVERRIDE {
+ const QuicCongestionFeedbackFrame& /*frame*/) override {
DCHECK(false);
return false;
}
virtual bool OnStopWaitingFrame(
- const QuicStopWaitingFrame& /*frame*/) OVERRIDE {
+ const QuicStopWaitingFrame& /*frame*/) override {
DCHECK(false);
return false;
}
- virtual bool OnPingFrame(const QuicPingFrame& /*frame*/) OVERRIDE {
+ virtual bool OnPingFrame(const QuicPingFrame& /*frame*/) override {
DCHECK(false);
return false;
}
- virtual bool OnRstStreamFrame(const QuicRstStreamFrame& /*frame*/) OVERRIDE {
+ virtual bool OnRstStreamFrame(const QuicRstStreamFrame& /*frame*/) override {
DCHECK(false);
return false;
}
virtual bool OnConnectionCloseFrame(
- const QuicConnectionCloseFrame & /*frame*/) OVERRIDE {
+ const QuicConnectionCloseFrame & /*frame*/) override {
DCHECK(false);
return false;
}
- virtual bool OnGoAwayFrame(const QuicGoAwayFrame& /*frame*/) OVERRIDE {
+ virtual bool OnGoAwayFrame(const QuicGoAwayFrame& /*frame*/) override {
DCHECK(false);
return false;
}
virtual bool OnWindowUpdateFrame(const QuicWindowUpdateFrame& /*frame*/)
- OVERRIDE {
+ override {
DCHECK(false);
return false;
}
- virtual bool OnBlockedFrame(const QuicBlockedFrame& frame) OVERRIDE {
+ virtual bool OnBlockedFrame(const QuicBlockedFrame& frame) override {
DCHECK(false);
return false;
}
- virtual void OnFecData(const QuicFecData& /*fec*/) OVERRIDE {
+ virtual void OnFecData(const QuicFecData& /*fec*/) override {
DCHECK(false);
}
- virtual void OnPacketComplete() OVERRIDE {
+ virtual void OnPacketComplete() override {
DCHECK(false);
}
diff --git a/net/quic/quic_dispatcher.h b/net/quic/quic_dispatcher.h
index d07c46c..b4be0ee 100644
--- a/net/quic/quic_dispatcher.h
+++ b/net/quic/quic_dispatcher.h
@@ -64,7 +64,7 @@
virtual QuicPacketWriter* Create(
QuicServerPacketWriter* writer,
- QuicConnection* connection) OVERRIDE;
+ QuicConnection* connection) override;
};
// Ideally we'd have a linked_hash_set: the boolean is unused.
@@ -89,7 +89,7 @@
// an existing session, or passing it to the TimeWaitListManager.
virtual void ProcessPacket(const IPEndPoint& server_address,
const IPEndPoint& client_address,
- const QuicEncryptedPacket& packet) OVERRIDE;
+ const QuicEncryptedPacket& packet) override;
// Returns true if there's anything in the blocked writer list.
virtual bool HasPendingWrites() const;
@@ -99,16 +99,16 @@
// QuicBlockedWriterInterface implementation:
// Called when the socket becomes writable to allow queued writes to happen.
- virtual void OnCanWrite() OVERRIDE;
+ virtual void OnCanWrite() override;
// QuicServerSessionVisitor interface implementation:
// Ensure that the closed connection is cleaned up asynchronously.
virtual void OnConnectionClosed(QuicConnectionId connection_id,
- QuicErrorCode error) OVERRIDE;
+ QuicErrorCode error) override;
// Queues the blocked writer for later resumption.
virtual void OnWriteBlocked(
- QuicBlockedWriterInterface* blocked_writer) OVERRIDE;
+ QuicBlockedWriterInterface* blocked_writer) override;
typedef base::hash_map<QuicConnectionId, QuicSession*> SessionMap;
@@ -185,7 +185,7 @@
PacketWriterFactoryAdapter(QuicDispatcher* dispatcher);
virtual ~PacketWriterFactoryAdapter ();
- virtual QuicPacketWriter* Create(QuicConnection* connection) const OVERRIDE;
+ virtual QuicPacketWriter* Create(QuicConnection* connection) const override;
private:
QuicDispatcher* dispatcher_;
diff --git a/net/quic/quic_end_to_end_unittest.cc b/net/quic/quic_end_to_end_unittest.cc
index a37bd19..b589bc6 100644
--- a/net/quic/quic_end_to_end_unittest.cc
+++ b/net/quic/quic_end_to_end_unittest.cc
@@ -7,6 +7,7 @@
#include "base/memory/scoped_ptr.h"
#include "base/stl_util.h"
#include "base/strings/string_number_conversions.h"
+#include "net/base/elements_upload_data_stream.h"
#include "net/base/test_completion_callback.h"
#include "net/base/upload_bytes_element_reader.h"
#include "net/base/upload_data_stream.h"
@@ -53,16 +54,16 @@
// HttpTransactionFactory methods
virtual int CreateTransaction(RequestPriority priority,
- scoped_ptr<HttpTransaction>* trans) OVERRIDE {
+ scoped_ptr<HttpTransaction>* trans) override {
trans->reset(new HttpNetworkTransaction(priority, session_.get()));
return OK;
}
- virtual HttpCache* GetCache() OVERRIDE {
+ virtual HttpCache* GetCache() override {
return nullptr;
}
- virtual HttpNetworkSession* GetSession() OVERRIDE { return session_.get(); };
+ virtual HttpNetworkSession* GetSession() override { return session_.get(); };
private:
scoped_refptr<HttpNetworkSession> session_;
@@ -132,7 +133,6 @@
net::IPAddressNumber ip;
CHECK(net::ParseIPLiteralToNumber("127.0.0.1", &ip));
server_address_ = IPEndPoint(ip, 0);
- server_config_.SetDefaults();
server_config_.SetInitialFlowControlWindowToSend(
kInitialSessionFlowControlWindowForTest);
server_config_.SetInitialStreamFlowControlWindowToSend(
@@ -189,7 +189,8 @@
element_readers.push_back(
new UploadBytesElementReader(request_body_.data(),
request_body_.length()));
- upload_data_stream_.reset(new UploadDataStream(element_readers.Pass(), 0));
+ upload_data_stream_.reset(
+ new ElementsUploadDataStream(element_readers.Pass(), 0));
request_.method = "POST";
request_.url = GURL("http://www.google.com/");
request_.upload_data_stream = upload_data_stream_.get();
diff --git a/net/quic/quic_flags.cc b/net/quic/quic_flags.cc
index 864e12b..9a49a34 100644
--- a/net/quic/quic_flags.cc
+++ b/net/quic/quic_flags.cc
@@ -46,3 +46,7 @@
// If true, then QUIC connections will set both idle and overall timeouts in a
// single method.
bool FLAGS_quic_unified_timeouts = false;
+
+// If true, store any CachedNetworkParams that are provided in the STK from the
+// CHLO.
+bool FLAGS_quic_store_cached_network_params_from_chlo = false;
diff --git a/net/quic/quic_flags.h b/net/quic/quic_flags.h
index f1fea1e..7693260 100644
--- a/net/quic/quic_flags.h
+++ b/net/quic/quic_flags.h
@@ -18,5 +18,6 @@
NET_EXPORT_PRIVATE extern bool FLAGS_quic_allow_more_open_streams;
NET_EXPORT_PRIVATE extern bool FLAGS_quic_timeouts_only_from_alarms;
NET_EXPORT_PRIVATE extern bool FLAGS_quic_unified_timeouts;
+NET_EXPORT_PRIVATE extern bool FLAGS_quic_store_cached_network_params_from_chlo;
#endif // NET_QUIC_QUIC_FLAGS_H_
diff --git a/net/quic/quic_flow_controller.cc b/net/quic/quic_flow_controller.cc
index b145280..722b243 100644
--- a/net/quic/quic_flow_controller.cc
+++ b/net/quic/quic_flow_controller.cc
@@ -163,10 +163,12 @@
DVLOG(1) << ENDPOINT << "UpdateSendWindowOffset for stream " << id_
<< " with new offset " << new_send_window_offset
- << " , current offset: " << send_window_offset_;
+ << " current offset: " << send_window_offset_
+ << " bytes_sent: " << bytes_sent_;
+ const bool blocked = IsBlocked();
send_window_offset_ = new_send_window_offset;
- return true;
+ return blocked;
}
void QuicFlowController::Disable() {
diff --git a/net/quic/quic_flow_controller.h b/net/quic/quic_flow_controller.h
index e5f5494..0df2b0e 100644
--- a/net/quic/quic_flow_controller.h
+++ b/net/quic/quic_flow_controller.h
@@ -47,8 +47,7 @@
void AddBytesSent(uint64 bytes_sent);
// Set a new send window offset.
- // Returns true if this changes send_window_offset_, and false in the case
- // where |new_send_window| is <= send_window_offset_.
+ // Returns true if this increases send_window_offset_ and is now blocked.
bool UpdateSendWindowOffset(uint64 new_send_window_offset);
// Returns the current available send window.
diff --git a/net/quic/quic_framer_test.cc b/net/quic/quic_framer_test.cc
index 535d31a..9ba0fd6 100644
--- a/net/quic/quic_framer_test.cc
+++ b/net/quic/quic_framer_test.cc
@@ -104,43 +104,43 @@
class TestEncrypter : public QuicEncrypter {
public:
virtual ~TestEncrypter() {}
- virtual bool SetKey(StringPiece key) OVERRIDE {
+ virtual bool SetKey(StringPiece key) override {
return true;
}
- virtual bool SetNoncePrefix(StringPiece nonce_prefix) OVERRIDE {
+ virtual bool SetNoncePrefix(StringPiece nonce_prefix) override {
return true;
}
virtual bool Encrypt(StringPiece nonce,
StringPiece associated_data,
StringPiece plaintext,
- unsigned char* output) OVERRIDE {
+ unsigned char* output) override {
CHECK(false) << "Not implemented";
return false;
}
virtual QuicData* EncryptPacket(QuicPacketSequenceNumber sequence_number,
StringPiece associated_data,
- StringPiece plaintext) OVERRIDE {
+ StringPiece plaintext) override {
sequence_number_ = sequence_number;
associated_data_ = associated_data.as_string();
plaintext_ = plaintext.as_string();
return new QuicData(plaintext.data(), plaintext.length());
}
- virtual size_t GetKeySize() const OVERRIDE {
+ virtual size_t GetKeySize() const override {
return 0;
}
- virtual size_t GetNoncePrefixSize() const OVERRIDE {
+ virtual size_t GetNoncePrefixSize() const override {
return 0;
}
- virtual size_t GetMaxPlaintextSize(size_t ciphertext_size) const OVERRIDE {
+ virtual size_t GetMaxPlaintextSize(size_t ciphertext_size) const override {
return ciphertext_size;
}
- virtual size_t GetCiphertextSize(size_t plaintext_size) const OVERRIDE {
+ virtual size_t GetCiphertextSize(size_t plaintext_size) const override {
return plaintext_size;
}
- virtual StringPiece GetKey() const OVERRIDE {
+ virtual StringPiece GetKey() const override {
return StringPiece();
}
- virtual StringPiece GetNoncePrefix() const OVERRIDE {
+ virtual StringPiece GetNoncePrefix() const override {
return StringPiece();
}
QuicPacketSequenceNumber sequence_number_;
@@ -151,32 +151,32 @@
class TestDecrypter : public QuicDecrypter {
public:
virtual ~TestDecrypter() {}
- virtual bool SetKey(StringPiece key) OVERRIDE {
+ virtual bool SetKey(StringPiece key) override {
return true;
}
- virtual bool SetNoncePrefix(StringPiece nonce_prefix) OVERRIDE {
+ virtual bool SetNoncePrefix(StringPiece nonce_prefix) override {
return true;
}
virtual bool Decrypt(StringPiece nonce,
StringPiece associated_data,
StringPiece ciphertext,
unsigned char* output,
- size_t* output_length) OVERRIDE {
+ size_t* output_length) override {
CHECK(false) << "Not implemented";
return false;
}
virtual QuicData* DecryptPacket(QuicPacketSequenceNumber sequence_number,
StringPiece associated_data,
- StringPiece ciphertext) OVERRIDE {
+ StringPiece ciphertext) override {
sequence_number_ = sequence_number;
associated_data_ = associated_data.as_string();
ciphertext_ = ciphertext.as_string();
return new QuicData(ciphertext.data(), ciphertext.length());
}
- virtual StringPiece GetKey() const OVERRIDE {
+ virtual StringPiece GetKey() const override {
return StringPiece();
}
- virtual StringPiece GetNoncePrefix() const OVERRIDE {
+ virtual StringPiece GetNoncePrefix() const override {
return StringPiece();
}
QuicPacketSequenceNumber sequence_number_;
@@ -207,121 +207,121 @@
STLDeleteElements(&fec_data_);
}
- virtual void OnError(QuicFramer* f) OVERRIDE {
+ virtual void OnError(QuicFramer* f) override {
DVLOG(1) << "QuicFramer Error: " << QuicUtils::ErrorToString(f->error())
<< " (" << f->error() << ")";
++error_count_;
}
- virtual void OnPacket() OVERRIDE {}
+ virtual void OnPacket() override {}
virtual void OnPublicResetPacket(
- const QuicPublicResetPacket& packet) OVERRIDE {
+ const QuicPublicResetPacket& packet) override {
public_reset_packet_.reset(new QuicPublicResetPacket(packet));
}
virtual void OnVersionNegotiationPacket(
- const QuicVersionNegotiationPacket& packet) OVERRIDE {
+ const QuicVersionNegotiationPacket& packet) override {
version_negotiation_packet_.reset(new QuicVersionNegotiationPacket(packet));
}
- virtual void OnRevivedPacket() OVERRIDE {
+ virtual void OnRevivedPacket() override {
++revived_packets_;
}
- virtual bool OnProtocolVersionMismatch(QuicVersion version) OVERRIDE {
+ virtual bool OnProtocolVersionMismatch(QuicVersion version) override {
DVLOG(1) << "QuicFramer Version Mismatch, version: " << version;
++version_mismatch_;
return true;
}
virtual bool OnUnauthenticatedPublicHeader(
- const QuicPacketPublicHeader& header) OVERRIDE {
+ const QuicPacketPublicHeader& header) override {
public_header_.reset(new QuicPacketPublicHeader(header));
return accept_public_header_;
}
virtual bool OnUnauthenticatedHeader(
- const QuicPacketHeader& header) OVERRIDE {
+ const QuicPacketHeader& header) override {
return true;
}
- virtual void OnDecryptedPacket(EncryptionLevel level) OVERRIDE {}
+ virtual void OnDecryptedPacket(EncryptionLevel level) override {}
- virtual bool OnPacketHeader(const QuicPacketHeader& header) OVERRIDE {
+ virtual bool OnPacketHeader(const QuicPacketHeader& header) override {
++packet_count_;
header_.reset(new QuicPacketHeader(header));
return accept_packet_;
}
- virtual bool OnStreamFrame(const QuicStreamFrame& frame) OVERRIDE {
+ virtual bool OnStreamFrame(const QuicStreamFrame& frame) override {
++frame_count_;
stream_frames_.push_back(new QuicStreamFrame(frame));
return true;
}
- virtual void OnFecProtectedPayload(StringPiece payload) OVERRIDE {
+ virtual void OnFecProtectedPayload(StringPiece payload) override {
fec_protected_payload_ = payload.as_string();
}
- virtual bool OnAckFrame(const QuicAckFrame& frame) OVERRIDE {
+ virtual bool OnAckFrame(const QuicAckFrame& frame) override {
++frame_count_;
ack_frames_.push_back(new QuicAckFrame(frame));
return true;
}
virtual bool OnCongestionFeedbackFrame(
- const QuicCongestionFeedbackFrame& frame) OVERRIDE {
+ const QuicCongestionFeedbackFrame& frame) override {
++frame_count_;
congestion_feedback_frames_.push_back(
new QuicCongestionFeedbackFrame(frame));
return true;
}
- virtual bool OnStopWaitingFrame(const QuicStopWaitingFrame& frame) OVERRIDE {
+ virtual bool OnStopWaitingFrame(const QuicStopWaitingFrame& frame) override {
++frame_count_;
stop_waiting_frames_.push_back(new QuicStopWaitingFrame(frame));
return true;
}
- virtual bool OnPingFrame(const QuicPingFrame& frame) OVERRIDE {
+ virtual bool OnPingFrame(const QuicPingFrame& frame) override {
++frame_count_;
ping_frames_.push_back(new QuicPingFrame(frame));
return true;
}
- virtual void OnFecData(const QuicFecData& fec) OVERRIDE {
+ virtual void OnFecData(const QuicFecData& fec) override {
++fec_count_;
fec_data_.push_back(new QuicFecData(fec));
}
- virtual void OnPacketComplete() OVERRIDE {
+ virtual void OnPacketComplete() override {
++complete_packets_;
}
- virtual bool OnRstStreamFrame(const QuicRstStreamFrame& frame) OVERRIDE {
+ virtual bool OnRstStreamFrame(const QuicRstStreamFrame& frame) override {
rst_stream_frame_ = frame;
return true;
}
virtual bool OnConnectionCloseFrame(
- const QuicConnectionCloseFrame& frame) OVERRIDE {
+ const QuicConnectionCloseFrame& frame) override {
connection_close_frame_ = frame;
return true;
}
- virtual bool OnGoAwayFrame(const QuicGoAwayFrame& frame) OVERRIDE {
+ virtual bool OnGoAwayFrame(const QuicGoAwayFrame& frame) override {
goaway_frame_ = frame;
return true;
}
virtual bool OnWindowUpdateFrame(const QuicWindowUpdateFrame& frame)
- OVERRIDE {
+ override {
window_update_frame_ = frame;
return true;
}
- virtual bool OnBlockedFrame(const QuicBlockedFrame& frame) OVERRIDE {
+ virtual bool OnBlockedFrame(const QuicBlockedFrame& frame) override {
blocked_frame_ = frame;
return true;
}
diff --git a/net/quic/quic_headers_stream.cc b/net/quic/quic_headers_stream.cc
index 35dac3f..56b700e 100644
--- a/net/quic/quic_headers_stream.cc
+++ b/net/quic/quic_headers_stream.cc
@@ -30,7 +30,7 @@
SpdyStreamId associated_stream_id,
SpdyPriority priority,
bool fin,
- bool unidirectional) OVERRIDE {
+ bool unidirectional) override {
if (!stream_->IsConnected()) {
return;
}
@@ -48,7 +48,7 @@
stream_->OnSynStream(stream_id, priority, fin);
}
- virtual void OnSynReply(SpdyStreamId stream_id, bool fin) OVERRIDE {
+ virtual void OnSynReply(SpdyStreamId stream_id, bool fin) override {
if (!stream_->IsConnected()) {
return;
}
@@ -58,7 +58,7 @@
virtual bool OnControlFrameHeaderData(SpdyStreamId stream_id,
const char* header_data,
- size_t len) OVERRIDE {
+ size_t len) override {
if (!stream_->IsConnected()) {
return false;
}
@@ -69,7 +69,7 @@
virtual void OnStreamFrameData(SpdyStreamId stream_id,
const char* data,
size_t len,
- bool fin) OVERRIDE {
+ bool fin) override {
if (fin && len == 0) {
// The framer invokes OnStreamFrameData with zero-length data and
// fin = true after processing a SYN_STREAM or SYN_REPLY frame
@@ -79,65 +79,65 @@
CloseConnection("SPDY DATA frame received.");
}
- virtual void OnError(SpdyFramer* framer) OVERRIDE {
+ virtual void OnError(SpdyFramer* framer) override {
CloseConnection("SPDY framing error.");
}
virtual void OnDataFrameHeader(SpdyStreamId stream_id,
size_t length,
- bool fin) OVERRIDE {
+ bool fin) override {
CloseConnection("SPDY DATA frame received.");
}
virtual void OnRstStream(SpdyStreamId stream_id,
- SpdyRstStreamStatus status) OVERRIDE {
+ SpdyRstStreamStatus status) override {
CloseConnection("SPDY RST_STREAM frame received.");
}
virtual void OnSetting(SpdySettingsIds id,
uint8 flags,
- uint32 value) OVERRIDE {
+ uint32 value) override {
CloseConnection("SPDY SETTINGS frame received.");
}
- virtual void OnSettingsAck() OVERRIDE {
+ virtual void OnSettingsAck() override {
CloseConnection("SPDY SETTINGS frame received.");
}
- virtual void OnSettingsEnd() OVERRIDE {
+ virtual void OnSettingsEnd() override {
CloseConnection("SPDY SETTINGS frame received.");
}
- virtual void OnPing(SpdyPingId unique_id, bool is_ack) OVERRIDE {
+ virtual void OnPing(SpdyPingId unique_id, bool is_ack) override {
CloseConnection("SPDY PING frame received.");
}
virtual void OnGoAway(SpdyStreamId last_accepted_stream_id,
- SpdyGoAwayStatus status) OVERRIDE {
+ SpdyGoAwayStatus status) override {
CloseConnection("SPDY GOAWAY frame received.");
}
- virtual void OnHeaders(SpdyStreamId stream_id, bool fin, bool end) OVERRIDE {
+ virtual void OnHeaders(SpdyStreamId stream_id, bool fin, bool end) override {
CloseConnection("SPDY HEADERS frame received.");
}
virtual void OnWindowUpdate(SpdyStreamId stream_id,
- uint32 delta_window_size) OVERRIDE {
+ uint32 delta_window_size) override {
CloseConnection("SPDY WINDOW_UPDATE frame received.");
}
virtual void OnPushPromise(SpdyStreamId stream_id,
SpdyStreamId promised_stream_id,
- bool end) OVERRIDE {
+ bool end) override {
LOG(DFATAL) << "PUSH_PROMISE frame received from a SPDY/3 framer";
CloseConnection("SPDY PUSH_PROMISE frame received.");
}
- virtual void OnContinuation(SpdyStreamId stream_id, bool end) OVERRIDE {
+ virtual void OnContinuation(SpdyStreamId stream_id, bool end) override {
CloseConnection("SPDY CONTINUATION frame received.");
}
- virtual bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) OVERRIDE {
+ virtual bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) override {
CloseConnection("SPDY unknown frame received.");
return false;
}
@@ -146,11 +146,11 @@
virtual void OnSendCompressedFrame(SpdyStreamId stream_id,
SpdyFrameType type,
size_t payload_len,
- size_t frame_len) OVERRIDE {}
+ size_t frame_len) override {}
virtual void OnReceiveCompressedFrame(SpdyStreamId stream_id,
SpdyFrameType type,
- size_t frame_len) OVERRIDE {
+ size_t frame_len) override {
if (stream_->IsConnected()) {
stream_->OnCompressedFrameSize(frame_len);
}
diff --git a/net/quic/quic_headers_stream.h b/net/quic/quic_headers_stream.h
index c3ccbda..fb96ec7 100644
--- a/net/quic/quic_headers_stream.h
+++ b/net/quic/quic_headers_stream.h
@@ -34,8 +34,8 @@
QuicAckNotifier::DelegateInterface* ack_notifier_delegate);
// ReliableQuicStream implementation
- virtual uint32 ProcessRawData(const char* data, uint32 data_len) OVERRIDE;
- virtual QuicPriority EffectivePriority() const OVERRIDE;
+ virtual uint32 ProcessRawData(const char* data, uint32 data_len) override;
+ virtual QuicPriority EffectivePriority() const override;
private:
class SpdyFramerVisitor;
diff --git a/net/quic/quic_http_stream.h b/net/quic/quic_http_stream.h
index 5c60822..44e98e8 100644
--- a/net/quic/quic_http_stream.h
+++ b/net/quic/quic_http_stream.h
@@ -35,41 +35,41 @@
virtual int InitializeStream(const HttpRequestInfo* request_info,
RequestPriority priority,
const BoundNetLog& net_log,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int SendRequest(const HttpRequestHeaders& request_headers,
HttpResponseInfo* response,
- const CompletionCallback& callback) OVERRIDE;
- virtual UploadProgress GetUploadProgress() const OVERRIDE;
- virtual int ReadResponseHeaders(const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual UploadProgress GetUploadProgress() const override;
+ virtual int ReadResponseHeaders(const CompletionCallback& callback) override;
virtual int ReadResponseBody(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
- virtual void Close(bool not_reusable) OVERRIDE;
- virtual HttpStream* RenewStreamForAuth() OVERRIDE;
- virtual bool IsResponseBodyComplete() const OVERRIDE;
- virtual bool CanFindEndOfResponse() const OVERRIDE;
- virtual bool IsConnectionReused() const OVERRIDE;
- virtual void SetConnectionReused() OVERRIDE;
- virtual bool IsConnectionReusable() const OVERRIDE;
- virtual int64 GetTotalReceivedBytes() const OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual void Close(bool not_reusable) override;
+ virtual HttpStream* RenewStreamForAuth() override;
+ virtual bool IsResponseBodyComplete() const override;
+ virtual bool CanFindEndOfResponse() const override;
+ virtual bool IsConnectionReused() const override;
+ virtual void SetConnectionReused() override;
+ virtual bool IsConnectionReusable() const override;
+ virtual int64 GetTotalReceivedBytes() const override;
virtual bool GetLoadTimingInfo(
- LoadTimingInfo* load_timing_info) const OVERRIDE;
- virtual void GetSSLInfo(SSLInfo* ssl_info) OVERRIDE;
+ LoadTimingInfo* load_timing_info) const override;
+ virtual void GetSSLInfo(SSLInfo* ssl_info) override;
virtual void GetSSLCertRequestInfo(
- SSLCertRequestInfo* cert_request_info) OVERRIDE;
- virtual bool IsSpdyHttpStream() const OVERRIDE;
- virtual void Drain(HttpNetworkSession* session) OVERRIDE;
- virtual void SetPriority(RequestPriority priority) OVERRIDE;
+ SSLCertRequestInfo* cert_request_info) override;
+ virtual bool IsSpdyHttpStream() const override;
+ virtual void Drain(HttpNetworkSession* session) override;
+ virtual void SetPriority(RequestPriority priority) override;
// QuicReliableClientStream::Delegate implementation
- virtual int OnDataReceived(const char* data, int length) OVERRIDE;
- virtual void OnClose(QuicErrorCode error) OVERRIDE;
- virtual void OnError(int error) OVERRIDE;
- virtual bool HasSendHeadersComplete() OVERRIDE;
+ virtual int OnDataReceived(const char* data, int length) override;
+ virtual void OnClose(QuicErrorCode error) override;
+ virtual void OnError(int error) override;
+ virtual bool HasSendHeadersComplete() override;
// QuicClientSession::Observer implementation
- virtual void OnCryptoHandshakeConfirmed() OVERRIDE;
- virtual void OnSessionClosed(int error) OVERRIDE;
+ virtual void OnCryptoHandshakeConfirmed() override;
+ virtual void OnSessionClosed(int error) override;
private:
friend class test::QuicHttpStreamPeer;
diff --git a/net/quic/quic_http_stream_test.cc b/net/quic/quic_http_stream_test.cc
index 313e7f5..b6ecc77 100644
--- a/net/quic/quic_http_stream_test.cc
+++ b/net/quic/quic_http_stream_test.cc
@@ -6,10 +6,11 @@
#include <vector>
+#include "net/base/chunked_upload_data_stream.h"
+#include "net/base/elements_upload_data_stream.h"
#include "net/base/net_errors.h"
#include "net/base/test_completion_callback.h"
#include "net/base/upload_bytes_element_reader.h"
-#include "net/base/upload_data_stream.h"
#include "net/http/http_response_headers.h"
#include "net/http/transport_security_state.h"
#include "net/quic/congestion_control/receive_algorithm_interface.h"
@@ -97,7 +98,7 @@
: QuicHttpStream(session) {
}
- virtual int OnDataReceived(const char* data, int length) OVERRIDE {
+ virtual int OnDataReceived(const char* data, int length) override {
Close(false);
return OK;
}
@@ -109,7 +110,7 @@
: socket_(socket) {}
virtual ~TestPacketWriterFactory() {}
- virtual QuicPacketWriter* Create(QuicConnection* connection) const OVERRIDE {
+ virtual QuicPacketWriter* Create(QuicConnection* connection) const override {
return new QuicDefaultPacketWriter(socket_);
}
@@ -224,7 +225,6 @@
connection_->set_visitor(&visitor_);
connection_->SetSendAlgorithm(send_algorithm_);
connection_->SetReceiveAlgorithm(receive_algorithm_);
- crypto_config_.SetDefaults();
session_.reset(
new QuicClientSession(connection_,
scoped_ptr<DatagramClientSocket>(socket),
@@ -489,7 +489,7 @@
ScopedVector<UploadElementReader> element_readers;
element_readers.push_back(
new UploadBytesElementReader(kUploadData, strlen(kUploadData)));
- UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
request_.method = "POST";
request_.url = GURL("http://www.google.com/");
request_.upload_data_stream = &upload_data_stream;
@@ -535,20 +535,21 @@
AddWrite(ConstructAckPacket(4, 3, 1));
Initialize();
- UploadDataStream upload_data_stream(UploadDataStream::CHUNKED, 0);
- upload_data_stream.AppendChunk(kUploadData, chunk_size, false);
+ ChunkedUploadDataStream upload_data_stream(0);
+ upload_data_stream.AppendData(kUploadData, chunk_size, false);
request_.method = "POST";
request_.url = GURL("http://www.google.com/");
request_.upload_data_stream = &upload_data_stream;
- ASSERT_EQ(OK, request_.upload_data_stream->Init(CompletionCallback()));
+ ASSERT_EQ(OK, request_.upload_data_stream->Init(
+ TestCompletionCallback().callback()));
ASSERT_EQ(OK, stream_->InitializeStream(&request_, DEFAULT_PRIORITY,
net_log_, callback_.callback()));
ASSERT_EQ(ERR_IO_PENDING, stream_->SendRequest(headers_, &response_,
callback_.callback()));
- upload_data_stream.AppendChunk(kUploadData, chunk_size, true);
+ upload_data_stream.AppendData(kUploadData, chunk_size, true);
// Ack both packets in the request.
ProcessPacket(ConstructAckPacket(1, 0, 0));
@@ -586,20 +587,21 @@
AddWrite(ConstructAckPacket(4, 3, 1));
Initialize();
- UploadDataStream upload_data_stream(UploadDataStream::CHUNKED, 0);
- upload_data_stream.AppendChunk(kUploadData, chunk_size, false);
+ ChunkedUploadDataStream upload_data_stream(0);
+ upload_data_stream.AppendData(kUploadData, chunk_size, false);
request_.method = "POST";
request_.url = GURL("http://www.google.com/");
request_.upload_data_stream = &upload_data_stream;
- ASSERT_EQ(OK, request_.upload_data_stream->Init(CompletionCallback()));
+ ASSERT_EQ(OK, request_.upload_data_stream->Init(
+ TestCompletionCallback().callback()));
ASSERT_EQ(OK, stream_->InitializeStream(&request_, DEFAULT_PRIORITY,
net_log_, callback_.callback()));
ASSERT_EQ(ERR_IO_PENDING, stream_->SendRequest(headers_, &response_,
callback_.callback()));
- upload_data_stream.AppendChunk(nullptr, 0, true);
+ upload_data_stream.AppendData(nullptr, 0, true);
ProcessPacket(ConstructAckPacket(1, 0, 0));
@@ -634,19 +636,20 @@
AddWrite(ConstructAckPacket(3, 3, 1));
Initialize();
- UploadDataStream upload_data_stream(UploadDataStream::CHUNKED, 0);
+ ChunkedUploadDataStream upload_data_stream(0);
request_.method = "POST";
request_.url = GURL("http://www.google.com/");
request_.upload_data_stream = &upload_data_stream;
- ASSERT_EQ(OK, request_.upload_data_stream->Init(CompletionCallback()));
+ ASSERT_EQ(OK, request_.upload_data_stream->Init(
+ TestCompletionCallback().callback()));
ASSERT_EQ(OK, stream_->InitializeStream(&request_, DEFAULT_PRIORITY,
net_log_, callback_.callback()));
ASSERT_EQ(ERR_IO_PENDING, stream_->SendRequest(headers_, &response_,
callback_.callback()));
- upload_data_stream.AppendChunk(nullptr, 0, true);
+ upload_data_stream.AppendData(nullptr, 0, true);
ProcessPacket(ConstructAckPacket(1, 0, 0));
diff --git a/net/quic/quic_packet_creator.h b/net/quic/quic_packet_creator.h
index 313632e..cb4cb05 100644
--- a/net/quic/quic_packet_creator.h
+++ b/net/quic/quic_packet_creator.h
@@ -38,7 +38,7 @@
// QuicFecBuilderInterface
virtual void OnBuiltFecProtectedPayload(const QuicPacketHeader& header,
- base::StringPiece payload) OVERRIDE;
+ base::StringPiece payload) override;
// Turn on FEC protection for subsequently created packets. FEC should be
// enabled first (max_packets_per_fec_group should be non-zero) for FEC
diff --git a/net/quic/quic_packet_creator_test.cc b/net/quic/quic_packet_creator_test.cc
index c8d5686..0872762 100644
--- a/net/quic/quic_packet_creator_test.cc
+++ b/net/quic/quic_packet_creator_test.cc
@@ -75,7 +75,7 @@
server_framer_.set_visitor(&framer_visitor_);
}
- virtual ~QuicPacketCreatorTest() OVERRIDE {
+ virtual ~QuicPacketCreatorTest() override {
}
void ProcessPacket(QuicPacket* packet) {
diff --git a/net/quic/quic_packet_generator_test.cc b/net/quic/quic_packet_generator_test.cc
index 703fd64..190e8a7 100644
--- a/net/quic/quic_packet_generator_test.cc
+++ b/net/quic/quic_packet_generator_test.cc
@@ -33,7 +33,7 @@
class MockDelegate : public QuicPacketGenerator::DelegateInterface {
public:
MockDelegate() {}
- virtual ~MockDelegate() OVERRIDE {}
+ virtual ~MockDelegate() override {}
MOCK_METHOD3(ShouldGeneratePacket,
bool(TransmissionType transmission_type,
@@ -116,7 +116,7 @@
packet6_(0, PACKET_1BYTE_SEQUENCE_NUMBER, nullptr, 0, nullptr),
packet7_(0, PACKET_1BYTE_SEQUENCE_NUMBER, nullptr, 0, nullptr) {}
- virtual ~QuicPacketGeneratorTest() OVERRIDE {
+ virtual ~QuicPacketGeneratorTest() override {
delete packet_.packet;
delete packet_.retransmittable_frames;
delete packet2_.packet;
diff --git a/net/quic/quic_per_connection_packet_writer.h b/net/quic/quic_per_connection_packet_writer.h
index 9b9b912..4e5e8c8 100644
--- a/net/quic/quic_per_connection_packet_writer.h
+++ b/net/quic/quic_per_connection_packet_writer.h
@@ -32,10 +32,10 @@
virtual WriteResult WritePacket(const char* buffer,
size_t buf_len,
const IPAddressNumber& self_address,
- const IPEndPoint& peer_address) OVERRIDE;
- virtual bool IsWriteBlockedDataBuffered() const OVERRIDE;
- virtual bool IsWriteBlocked() const OVERRIDE;
- virtual void SetWritable() OVERRIDE;
+ const IPEndPoint& peer_address) override;
+ virtual bool IsWriteBlockedDataBuffered() const override;
+ virtual bool IsWriteBlocked() const override;
+ virtual void SetWritable() override;
private:
void OnWriteComplete(WriteResult result);
diff --git a/net/quic/quic_protocol.h b/net/quic/quic_protocol.h
index 6a1bec5..47be63c 100644
--- a/net/quic/quic_protocol.h
+++ b/net/quic/quic_protocol.h
@@ -106,7 +106,7 @@
const QuicStreamId kHeadersStreamId = 3;
// Maximum delayed ack time, in ms.
-const int kMaxDelayedAckTimeMs = 25;
+const int64 kMaxDelayedAckTimeMs = 25;
// The timeout before the handshake succeeds.
const int64 kInitialIdleTimeoutSecs = 5;
@@ -117,6 +117,10 @@
// The default timeout for a connection until the crypto handshake succeeds.
const int64 kMaxTimeForCryptoHandshakeSecs = 10; // 10 secs.
+// Default limit on the number of undecryptable packets the connection buffers
+// before the CHLO/SHLO arrive.
+const size_t kDefaultMaxUndecryptablePackets = 10;
+
// Default ping timeout.
const int64 kPingTimeoutSecs = 15; // 15 secs.
diff --git a/net/quic/quic_received_packet_manager.cc b/net/quic/quic_received_packet_manager.cc
index 255ce4d..187f8e0 100644
--- a/net/quic/quic_received_packet_manager.cc
+++ b/net/quic/quic_received_packet_manager.cc
@@ -167,7 +167,7 @@
uint32 sequence_gap = ack_frame_.largest_observed - sequence_number;
stats_->max_sequence_reordering =
max(stats_->max_sequence_reordering, sequence_gap);
- uint32 reordering_time_us =
+ int64 reordering_time_us =
receipt_time.Subtract(time_largest_observed_).ToMicroseconds();
stats_->max_time_reordering_us = max(stats_->max_time_reordering_us,
reordering_time_us);
@@ -229,14 +229,11 @@
return;
}
- if (approximate_now < time_largest_observed_) {
- // Approximate now may well be "in the past".
- ack_frame->delta_time_largest_observed = QuicTime::Delta::Zero();
- return;
- }
-
+ // Ensure the delta is zero if approximate now is "in the past".
ack_frame->delta_time_largest_observed =
- approximate_now.Subtract(time_largest_observed_);
+ approximate_now < time_largest_observed_ ?
+ QuicTime::Delta::Zero() :
+ approximate_now.Subtract(time_largest_observed_);
// Remove all packets that are too far from largest_observed to express.
received_packet_times_.remove_if(isTooLarge(ack_frame_.largest_observed));
diff --git a/net/quic/quic_received_packet_manager.h b/net/quic/quic_received_packet_manager.h
index 1231891..9eccfe0 100644
--- a/net/quic/quic_received_packet_manager.h
+++ b/net/quic/quic_received_packet_manager.h
@@ -129,7 +129,7 @@
// Called by QuicFramer, when the outgoing ack gets truncated, to recalculate
// the received entropy hash for the truncated ack frame.
virtual QuicPacketEntropyHash EntropyHash(
- QuicPacketSequenceNumber sequence_number) const OVERRIDE;
+ QuicPacketSequenceNumber sequence_number) const override;
// Updates internal state based on |stop_waiting|.
void UpdatePacketInformationSentByPeer(
diff --git a/net/quic/quic_received_packet_manager_test.cc b/net/quic/quic_received_packet_manager_test.cc
index 9e8c128..b64025b 100644
--- a/net/quic/quic_received_packet_manager_test.cc
+++ b/net/quic/quic_received_packet_manager_test.cc
@@ -238,7 +238,7 @@
}
// Reorder by 5 when 2 is received after 7.
EXPECT_EQ(5u, stats_.max_sequence_reordering);
- EXPECT_EQ(0u, stats_.max_time_reordering_us);
+ EXPECT_EQ(0, stats_.max_time_reordering_us);
EXPECT_EQ(2u, stats_.packets_reordered);
}
@@ -285,7 +285,7 @@
// No reordering.
EXPECT_EQ(0u, stats_.max_sequence_reordering);
- EXPECT_EQ(0u, stats_.max_time_reordering_us);
+ EXPECT_EQ(0, stats_.max_time_reordering_us);
EXPECT_EQ(0u, stats_.packets_reordered);
}
@@ -314,6 +314,7 @@
// When UpdateReceivedPacketInfo with a time earlier than the time of the
// largest observed packet, make sure that the delta is 0, not negative.
EXPECT_EQ(QuicTime::Delta::Zero(), ack.delta_time_largest_observed);
+ EXPECT_FALSE(ack.received_packet_times.empty());
QuicTime four_ms = QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(4));
received_manager_.UpdateReceivedPacketInfo(&ack, four_ms);
@@ -330,7 +331,7 @@
2, 0, QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(1)));
EXPECT_EQ(4u, stats_.max_sequence_reordering);
- EXPECT_EQ(1000u, stats_.max_time_reordering_us);
+ EXPECT_EQ(1000, stats_.max_time_reordering_us);
EXPECT_EQ(1u, stats_.packets_reordered);
}
diff --git a/net/quic/quic_reliable_client_stream.h b/net/quic/quic_reliable_client_stream.h
index 2d5b818..065db9e 100644
--- a/net/quic/quic_reliable_client_stream.h
+++ b/net/quic/quic_reliable_client_stream.h
@@ -54,10 +54,10 @@
virtual ~QuicReliableClientStream();
// QuicDataStream
- virtual uint32 ProcessData(const char* data, uint32 data_len) OVERRIDE;
- virtual void OnFinRead() OVERRIDE;
- virtual void OnCanWrite() OVERRIDE;
- virtual QuicPriority EffectivePriority() const OVERRIDE;
+ virtual uint32 ProcessData(const char* data, uint32 data_len) override;
+ virtual void OnFinRead() override;
+ virtual void OnCanWrite() override;
+ virtual QuicPriority EffectivePriority() const override;
// While the server's set_priority shouldn't be called externally, the creator
// of client-side streams should be able to set the priority.
diff --git a/net/quic/quic_sent_packet_manager.cc b/net/quic/quic_sent_packet_manager.cc
index a062827..3e81e74 100644
--- a/net/quic/quic_sent_packet_manager.cc
+++ b/net/quic/quic_sent_packet_manager.cc
@@ -26,17 +26,17 @@
int32 FLAGS_quic_recent_min_rtt_window_s = 60;
namespace {
-static const int kDefaultRetransmissionTimeMs = 500;
+static const int64 kDefaultRetransmissionTimeMs = 500;
// TCP RFC calls for 1 second RTO however Linux differs from this default and
// define the minimum RTO to 200ms, we will use the same until we have data to
// support a higher or lower value.
-static const int kMinRetransmissionTimeMs = 200;
-static const int kMaxRetransmissionTimeMs = 60000;
+static const int64 kMinRetransmissionTimeMs = 200;
+static const int64 kMaxRetransmissionTimeMs = 60000;
static const size_t kMaxRetransmissions = 10;
// Only exponentially back off the handshake timer 5 times due to a timeout.
static const size_t kMaxHandshakeRetransmissionBackoffs = 5;
-static const size_t kMinHandshakeTimeoutMs = 10;
+static const int64 kMinHandshakeTimeoutMs = 10;
// Sends up to two tail loss probes before firing an RTO,
// per draft RFC draft-dukkipati-tcpm-tcp-loss-probe.
@@ -452,7 +452,7 @@
QuicTime::Delta delta_largest_observed) {
QuicPacketSequenceNumber newest_transmission =
info.all_transmissions == nullptr ? sequence_number
- : *info.all_transmissions->rbegin();
+ : *info.all_transmissions->rbegin();
// Remove the most recent packet, if it is pending retransmission.
pending_retransmissions_.erase(newest_transmission);
@@ -503,13 +503,6 @@
DCHECK_LT(0u, sequence_number);
DCHECK(!unacked_packets_.IsUnacked(sequence_number));
LOG_IF(DFATAL, bytes == 0) << "Cannot send empty packets.";
- if (debug_delegate_ != nullptr) {
- debug_delegate_->OnSentPacket(*serialized_packet,
- original_sequence_number,
- sent_time,
- bytes,
- transmission_type);
- }
if (original_sequence_number == 0) {
if (serialized_packet->retransmittable_frames) {
@@ -765,7 +758,7 @@
// of (likely, tail) latency, then consider such a mechanism.
const QuicTime::Delta QuicSentPacketManager::DelayedAckTime() const {
return QuicTime::Delta::FromMilliseconds(min(kMaxDelayedAckTimeMs,
- kMinRetransmissionTimeMs/2));
+ kMinRetransmissionTimeMs / 2));
}
const QuicTime QuicSentPacketManager::GetRetransmissionTime() const {
@@ -808,8 +801,9 @@
const {
// This is equivalent to the TailLossProbeDelay, but slightly more aggressive
// because crypto handshake messages don't incur a delayed ack time.
- int64 delay_ms = max<int64>(kMinHandshakeTimeoutMs,
- 1.5 * rtt_stats_.SmoothedRtt().ToMilliseconds());
+ int64 delay_ms =
+ max(kMinHandshakeTimeoutMs,
+ static_cast<int64>(1.5 * rtt_stats_.SmoothedRtt().ToMilliseconds()));
return QuicTime::Delta::FromMilliseconds(
delay_ms << consecutive_crypto_retransmission_count_);
}
@@ -818,8 +812,9 @@
QuicTime::Delta srtt = rtt_stats_.SmoothedRtt();
if (!unacked_packets_.HasMultipleInFlightPackets()) {
return QuicTime::Delta::Max(
- srtt.Multiply(2), srtt.Multiply(1.5)
- .Add(QuicTime::Delta::FromMilliseconds(kMinRetransmissionTimeMs/2)));
+ srtt.Multiply(2),
+ srtt.Multiply(1.5).Add(
+ QuicTime::Delta::FromMilliseconds(kMinRetransmissionTimeMs / 2)));
}
return QuicTime::Delta::FromMilliseconds(
max(kMinTailLossProbeTimeoutMs,
diff --git a/net/quic/quic_sent_packet_manager.h b/net/quic/quic_sent_packet_manager.h
index 2b5f738..f5be3fd 100644
--- a/net/quic/quic_sent_packet_manager.h
+++ b/net/quic/quic_sent_packet_manager.h
@@ -51,13 +51,6 @@
TransmissionType transmission_type,
QuicByteCount byte_size) {}
- virtual void OnSentPacket(
- const SerializedPacket& packet,
- QuicPacketSequenceNumber original_sequence_number,
- QuicTime sent_time,
- QuicByteCount bytes,
- TransmissionType transmission_type) {}
-
virtual void OnIncomingAck(
const QuicAckFrame& ack_frame,
QuicTime ack_receive_time,
diff --git a/net/quic/quic_sent_packet_manager_test.cc b/net/quic/quic_sent_packet_manager_test.cc
index 42c9a6f..3260ab1 100644
--- a/net/quic/quic_sent_packet_manager_test.cc
+++ b/net/quic/quic_sent_packet_manager_test.cc
@@ -63,7 +63,7 @@
EXPECT_CALL(*send_algorithm_, InRecovery()).Times(AnyNumber());
}
- virtual ~QuicSentPacketManagerTest() OVERRIDE {
+ virtual ~QuicSentPacketManagerTest() override {
STLDeleteElements(&packets_);
}
diff --git a/net/quic/quic_server_bin.cc b/net/quic/quic_server_bin.cc
index 63b85a7..320f3da 100644
--- a/net/quic/quic_server_bin.cc
+++ b/net/quic/quic_server_bin.cc
@@ -55,15 +55,12 @@
}
base::AtExitManager exit_manager;
-
base::MessageLoopForIO message_loop;
net::IPAddressNumber ip;
CHECK(net::ParseIPLiteralToNumber("::", &ip));
net::QuicConfig config;
- config.SetDefaults();
-
net::QuicServer server(config, net::QuicSupportedVersions());
int rc = server.Listen(net::IPEndPoint(ip, FLAGS_port));
diff --git a/net/quic/quic_server_packet_writer.h b/net/quic/quic_server_packet_writer.h
index 417ea8d..15c946b 100644
--- a/net/quic/quic_server_packet_writer.h
+++ b/net/quic/quic_server_packet_writer.h
@@ -41,16 +41,16 @@
void OnWriteComplete(int rv);
// QuicPacketWriter implementation:
- virtual bool IsWriteBlockedDataBuffered() const OVERRIDE;
- virtual bool IsWriteBlocked() const OVERRIDE;
- virtual void SetWritable() OVERRIDE;
+ virtual bool IsWriteBlockedDataBuffered() const override;
+ virtual bool IsWriteBlocked() const override;
+ virtual void SetWritable() override;
protected:
// Do not call WritePacket on its own -- use WritePacketWithCallback
virtual WriteResult WritePacket(const char* buffer,
size_t buf_len,
const IPAddressNumber& self_address,
- const IPEndPoint& peer_address) OVERRIDE;
+ const IPEndPoint& peer_address) override;
private:
UDPServerSocket* socket_;
diff --git a/net/quic/quic_server_session.cc b/net/quic/quic_server_session.cc
index bacd59e..f2967a5 100644
--- a/net/quic/quic_server_session.cc
+++ b/net/quic/quic_server_session.cc
@@ -13,10 +13,9 @@
namespace net {
-QuicServerSession::QuicServerSession(
- const QuicConfig& config,
- QuicConnection* connection,
- QuicServerSessionVisitor* visitor)
+QuicServerSession::QuicServerSession(const QuicConfig& config,
+ QuicConnection* connection,
+ QuicServerSessionVisitor* visitor)
: QuicSession(connection, config),
visitor_(visitor),
bandwidth_estimate_sent_to_client_(QuicBandwidth::Zero()),
@@ -134,7 +133,7 @@
cached_network_params.set_serving_region(serving_region_);
}
- crypto_stream_->SendServerConfigUpdate(&cached_network_params);
+ crypto_stream_->SendServerConfigUpdate(&cached_network_params, false);
last_server_config_update_time_ = now;
}
diff --git a/net/quic/quic_server_session.h b/net/quic/quic_server_session.h
index a2e4feb..80b6443 100644
--- a/net/quic/quic_server_session.h
+++ b/net/quic/quic_server_session.h
@@ -49,12 +49,12 @@
QuicServerSessionVisitor* visitor);
// Override the base class to notify the owner of the connection close.
- virtual void OnConnectionClosed(QuicErrorCode error, bool from_peer) OVERRIDE;
- virtual void OnWriteBlocked() OVERRIDE;
+ virtual void OnConnectionClosed(QuicErrorCode error, bool from_peer) override;
+ virtual void OnWriteBlocked() override;
// Sends a server config update to the client, containing new bandwidth
// estimate.
- virtual void OnCongestionWindowChange(QuicTime now) OVERRIDE;
+ virtual void OnCongestionWindowChange(QuicTime now) override;
virtual ~QuicServerSession();
@@ -65,7 +65,7 @@
}
// Override base class to process FEC config received from client.
- virtual void OnConfigNegotiated() OVERRIDE;
+ virtual void OnConfigNegotiated() override;
void set_serving_region(string serving_region) {
serving_region_ = serving_region;
@@ -73,9 +73,9 @@
protected:
// QuicSession methods:
- virtual QuicDataStream* CreateIncomingDataStream(QuicStreamId id) OVERRIDE;
- virtual QuicDataStream* CreateOutgoingDataStream() OVERRIDE;
- virtual QuicCryptoServerStream* GetCryptoStream() OVERRIDE;
+ virtual QuicDataStream* CreateIncomingDataStream(QuicStreamId id) override;
+ virtual QuicDataStream* CreateOutgoingDataStream() override;
+ virtual QuicCryptoServerStream* GetCryptoStream() override;
// If we should create an incoming stream, returns true. Otherwise
// does error handling, including communicating the error to the client and
diff --git a/net/quic/quic_session.cc b/net/quic/quic_session.cc
index cef5656..3299e71 100644
--- a/net/quic/quic_session.cc
+++ b/net/quic/quic_session.cc
@@ -34,65 +34,65 @@
public:
explicit VisitorShim(QuicSession* session) : session_(session) {}
- virtual void OnStreamFrames(const vector<QuicStreamFrame>& frames) OVERRIDE {
+ virtual void OnStreamFrames(const vector<QuicStreamFrame>& frames) override {
session_->OnStreamFrames(frames);
session_->PostProcessAfterData();
}
- virtual void OnRstStream(const QuicRstStreamFrame& frame) OVERRIDE {
+ virtual void OnRstStream(const QuicRstStreamFrame& frame) override {
session_->OnRstStream(frame);
session_->PostProcessAfterData();
}
- virtual void OnGoAway(const QuicGoAwayFrame& frame) OVERRIDE {
+ virtual void OnGoAway(const QuicGoAwayFrame& frame) override {
session_->OnGoAway(frame);
session_->PostProcessAfterData();
}
virtual void OnWindowUpdateFrames(const vector<QuicWindowUpdateFrame>& frames)
- OVERRIDE {
+ override {
session_->OnWindowUpdateFrames(frames);
session_->PostProcessAfterData();
}
virtual void OnBlockedFrames(const vector<QuicBlockedFrame>& frames)
- OVERRIDE {
+ override {
session_->OnBlockedFrames(frames);
session_->PostProcessAfterData();
}
- virtual void OnCanWrite() OVERRIDE {
+ virtual void OnCanWrite() override {
session_->OnCanWrite();
session_->PostProcessAfterData();
}
- virtual void OnCongestionWindowChange(QuicTime now) OVERRIDE {
+ virtual void OnCongestionWindowChange(QuicTime now) override {
session_->OnCongestionWindowChange(now);
}
virtual void OnSuccessfulVersionNegotiation(
- const QuicVersion& version) OVERRIDE {
+ const QuicVersion& version) override {
session_->OnSuccessfulVersionNegotiation(version);
}
virtual void OnConnectionClosed(
- QuicErrorCode error, bool from_peer) OVERRIDE {
+ QuicErrorCode error, bool from_peer) override {
session_->OnConnectionClosed(error, from_peer);
// The session will go away, so don't bother with cleanup.
}
- virtual void OnWriteBlocked() OVERRIDE {
+ virtual void OnWriteBlocked() override {
session_->OnWriteBlocked();
}
- virtual bool WillingAndAbleToWrite() const OVERRIDE {
+ virtual bool WillingAndAbleToWrite() const override {
return session_->WillingAndAbleToWrite();
}
- virtual bool HasPendingHandshake() const OVERRIDE {
+ virtual bool HasPendingHandshake() const override {
return session_->HasPendingHandshake();
}
- virtual bool HasOpenDataStreams() const OVERRIDE {
+ virtual bool HasOpenDataStreams() const override {
return session_->HasOpenDataStreams();
}
@@ -528,12 +528,12 @@
// Inform all existing streams about the new window.
if (connection_->version() >= QUIC_VERSION_21) {
- GetCryptoStream()->flow_controller()->UpdateSendWindowOffset(new_window);
- headers_stream_->flow_controller()->UpdateSendWindowOffset(new_window);
+ GetCryptoStream()->UpdateSendWindowOffset(new_window);
+ headers_stream_->UpdateSendWindowOffset(new_window);
}
for (DataStreamMap::iterator it = stream_map_.begin();
it != stream_map_.end(); ++it) {
- it->second->flow_controller()->UpdateSendWindowOffset(new_window);
+ it->second->UpdateSendWindowOffset(new_window);
}
}
@@ -782,4 +782,22 @@
}
}
+bool QuicSession::IsConnectionFlowControlBlocked() const {
+ return flow_controller_->IsBlocked();
+}
+
+bool QuicSession::IsStreamFlowControlBlocked() {
+ if (headers_stream_->flow_controller()->IsBlocked() ||
+ GetCryptoStream()->flow_controller()->IsBlocked()) {
+ return true;
+ }
+ for (DataStreamMap::iterator it = stream_map_.begin();
+ it != stream_map_.end(); ++it) {
+ if (it->second->flow_controller()->IsBlocked()) {
+ return true;
+ }
+ }
+ return false;
+}
+
} // namespace net
diff --git a/net/quic/quic_session.h b/net/quic/quic_session.h
index 7a52fba..6414b6d 100644
--- a/net/quic/quic_session.h
+++ b/net/quic/quic_session.h
@@ -59,22 +59,22 @@
// QuicConnectionVisitorInterface methods:
virtual void OnStreamFrames(
- const std::vector<QuicStreamFrame>& frames) OVERRIDE;
- virtual void OnRstStream(const QuicRstStreamFrame& frame) OVERRIDE;
- virtual void OnGoAway(const QuicGoAwayFrame& frame) OVERRIDE;
+ const std::vector<QuicStreamFrame>& frames) override;
+ virtual void OnRstStream(const QuicRstStreamFrame& frame) override;
+ virtual void OnGoAway(const QuicGoAwayFrame& frame) override;
virtual void OnWindowUpdateFrames(
- const std::vector<QuicWindowUpdateFrame>& frames) OVERRIDE;
+ const std::vector<QuicWindowUpdateFrame>& frames) override;
virtual void OnBlockedFrames(
- const std::vector<QuicBlockedFrame>& frames) OVERRIDE;
- virtual void OnConnectionClosed(QuicErrorCode error, bool from_peer) OVERRIDE;
- virtual void OnWriteBlocked() OVERRIDE {}
+ const std::vector<QuicBlockedFrame>& frames) override;
+ virtual void OnConnectionClosed(QuicErrorCode error, bool from_peer) override;
+ virtual void OnWriteBlocked() override {}
virtual void OnSuccessfulVersionNegotiation(
- const QuicVersion& version) OVERRIDE;
- virtual void OnCanWrite() OVERRIDE;
- virtual void OnCongestionWindowChange(QuicTime now) OVERRIDE {}
- virtual bool WillingAndAbleToWrite() const OVERRIDE;
- virtual bool HasPendingHandshake() const OVERRIDE;
- virtual bool HasOpenDataStreams() const OVERRIDE;
+ const QuicVersion& version) override;
+ virtual void OnCanWrite() override;
+ virtual void OnCongestionWindowChange(QuicTime now) override {}
+ virtual bool WillingAndAbleToWrite() const override;
+ virtual bool HasPendingHandshake() const override;
+ virtual bool HasOpenDataStreams() const override;
// Called by the headers stream when headers have been received for a stream.
virtual void OnStreamHeaders(QuicStreamId stream_id,
@@ -206,6 +206,12 @@
QuicFlowController* flow_controller() { return flow_controller_.get(); }
+ // Returns true if connection is flow controller blocked.
+ bool IsConnectionFlowControlBlocked() const;
+
+ // Returns true if any stream is flow controller blocked.
+ bool IsStreamFlowControlBlocked();
+
size_t get_max_open_streams() const { return max_open_streams_; }
protected:
diff --git a/net/quic/quic_session_test.cc b/net/quic/quic_session_test.cc
index a36b77c..770a564 100644
--- a/net/quic/quic_session_test.cc
+++ b/net/quic/quic_session_test.cc
@@ -9,6 +9,8 @@
#include "base/basictypes.h"
#include "base/containers/hash_tables.h"
+#include "base/rand_util.h"
+#include "base/strings/string_number_conversions.h"
#include "net/quic/crypto/crypto_protocol.h"
#include "net/quic/quic_crypto_stream.h"
#include "net/quic/quic_flags.h"
@@ -52,7 +54,7 @@
}
virtual void OnHandshakeMessage(
- const CryptoHandshakeMessage& message) OVERRIDE {
+ const CryptoHandshakeMessage& message) override {
encryption_established_ = true;
handshake_confirmed_ = true;
CryptoHandshakeMessage msg;
@@ -91,7 +93,7 @@
using ReliableQuicStream::CloseWriteSide;
- virtual uint32 ProcessData(const char* data, uint32 data_len) OVERRIDE {
+ virtual uint32 ProcessData(const char* data, uint32 data_len) override {
return data_len;
}
@@ -129,17 +131,17 @@
InitializeSession();
}
- virtual TestCryptoStream* GetCryptoStream() OVERRIDE {
+ virtual TestCryptoStream* GetCryptoStream() override {
return &crypto_stream_;
}
- virtual TestStream* CreateOutgoingDataStream() OVERRIDE {
+ virtual TestStream* CreateOutgoingDataStream() override {
TestStream* stream = new TestStream(GetNextStreamId(), this);
ActivateStream(stream);
return stream;
}
- virtual TestStream* CreateIncomingDataStream(QuicStreamId id) OVERRIDE {
+ virtual TestStream* CreateIncomingDataStream(QuicStreamId id) override {
return new TestStream(id, this);
}
@@ -157,7 +159,7 @@
QuicStreamOffset offset,
bool fin,
FecProtection fec_protection,
- QuicAckNotifier::DelegateInterface* ack_notifier_delegate) OVERRIDE {
+ QuicAckNotifier::DelegateInterface* ack_notifier_delegate) override {
// Always consumes everything.
if (writev_consumes_all_data_) {
return QuicConsumedData(data.TotalBufferSize(), fin);
@@ -534,6 +536,8 @@
// Ensure connection level flow control blockage.
QuicFlowControllerPeer::SetSendWindowOffset(session_.flow_controller(), 0);
EXPECT_TRUE(session_.flow_controller()->IsBlocked());
+ EXPECT_TRUE(session_.IsConnectionFlowControlBlocked());
+ EXPECT_FALSE(session_.IsStreamFlowControlBlocked());
// Mark the crypto and headers streams as write blocked, we expect them to be
// allowed to write later.
@@ -579,11 +583,11 @@
TEST_P(QuicSessionTest, IncreasedTimeoutAfterCryptoHandshake) {
EXPECT_EQ((FLAGS_quic_unified_timeouts ?
- kInitialIdleTimeoutSecs : kDefaultIdleTimeoutSecs) + 1,
+ kInitialIdleTimeoutSecs : kDefaultIdleTimeoutSecs) + 3,
QuicConnectionPeer::GetNetworkTimeout(connection_).ToSeconds());
CryptoHandshakeMessage msg;
session_.GetCryptoStream()->OnHandshakeMessage(msg);
- EXPECT_EQ(kMaximumIdleTimeoutSecs + 1,
+ EXPECT_EQ(kMaximumIdleTimeoutSecs + 3,
QuicConnectionPeer::GetNetworkTimeout(connection_).ToSeconds());
}
@@ -641,9 +645,16 @@
TestStream* stream2 = session_.CreateOutgoingDataStream();
string body(kDefaultFlowControlSendWindow, '.');
EXPECT_FALSE(stream2->flow_controller()->IsBlocked());
+ EXPECT_FALSE(session_.IsConnectionFlowControlBlocked());
+ EXPECT_FALSE(session_.IsStreamFlowControlBlocked());
stream2->SendBody(body, false);
EXPECT_TRUE(stream2->flow_controller()->IsBlocked());
+ EXPECT_TRUE(session_.IsConnectionFlowControlBlocked());
+ EXPECT_TRUE(session_.IsStreamFlowControlBlocked());
+ // The handshake message will call OnCanWrite, so the stream can resume
+ // writing.
+ EXPECT_CALL(*stream2, OnCanWrite());
// Now complete the crypto handshake, resulting in an increased flow control
// send window.
CryptoHandshakeMessage msg;
@@ -651,6 +662,103 @@
// Stream is now unblocked.
EXPECT_FALSE(stream2->flow_controller()->IsBlocked());
+ EXPECT_FALSE(session_.IsConnectionFlowControlBlocked());
+ EXPECT_FALSE(session_.IsStreamFlowControlBlocked());
+}
+
+TEST_P(QuicSessionTest, HandshakeUnblocksFlowControlBlockedCryptoStream) {
+ if (version() <= QUIC_VERSION_19) {
+ return;
+ }
+ // Test that if the crypto stream is flow control blocked, then if the SHLO
+ // contains a larger send window offset, the stream becomes unblocked.
+ session_.set_writev_consumes_all_data(true);
+ TestCryptoStream* crypto_stream = session_.GetCryptoStream();
+ EXPECT_FALSE(crypto_stream->flow_controller()->IsBlocked());
+ EXPECT_FALSE(session_.IsConnectionFlowControlBlocked());
+ EXPECT_FALSE(session_.IsStreamFlowControlBlocked());
+ QuicHeadersStream* headers_stream =
+ QuicSessionPeer::GetHeadersStream(&session_);
+ EXPECT_FALSE(headers_stream->flow_controller()->IsBlocked());
+ EXPECT_FALSE(session_.IsConnectionFlowControlBlocked());
+ EXPECT_FALSE(session_.IsStreamFlowControlBlocked());
+ // Write until the crypto stream is flow control blocked.
+ int i = 0;
+ while (!crypto_stream->flow_controller()->IsBlocked() && i < 1000) {
+ EXPECT_FALSE(session_.IsConnectionFlowControlBlocked());
+ EXPECT_FALSE(session_.IsStreamFlowControlBlocked());
+ QuicConfig config;
+ CryptoHandshakeMessage crypto_message;
+ config.ToHandshakeMessage(&crypto_message);
+ crypto_stream->SendHandshakeMessage(crypto_message);
+ ++i;
+ }
+ EXPECT_TRUE(crypto_stream->flow_controller()->IsBlocked());
+ EXPECT_FALSE(headers_stream->flow_controller()->IsBlocked());
+ EXPECT_FALSE(session_.IsConnectionFlowControlBlocked());
+ EXPECT_TRUE(session_.IsStreamFlowControlBlocked());
+ EXPECT_FALSE(session_.HasDataToWrite());
+ EXPECT_TRUE(crypto_stream->HasBufferedData());
+
+ // The handshake message will call OnCanWrite, so the stream can
+ // resume writing.
+ EXPECT_CALL(*crypto_stream, OnCanWrite());
+ // Now complete the crypto handshake, resulting in an increased flow control
+ // send window.
+ CryptoHandshakeMessage msg;
+ session_.GetCryptoStream()->OnHandshakeMessage(msg);
+
+ // Stream is now unblocked and will no longer have buffered data.
+ EXPECT_FALSE(crypto_stream->flow_controller()->IsBlocked());
+ EXPECT_FALSE(session_.IsConnectionFlowControlBlocked());
+ EXPECT_FALSE(session_.IsStreamFlowControlBlocked());
+}
+
+TEST_P(QuicSessionTest, HandshakeUnblocksFlowControlBlockedHeadersStream) {
+ if (version() <= QUIC_VERSION_19) {
+ return;
+ }
+ // Test that if the header stream is flow control blocked, then if the SHLO
+ // contains a larger send window offset, the stream becomes unblocked.
+ session_.set_writev_consumes_all_data(true);
+ TestCryptoStream* crypto_stream = session_.GetCryptoStream();
+ EXPECT_FALSE(crypto_stream->flow_controller()->IsBlocked());
+ EXPECT_FALSE(session_.IsConnectionFlowControlBlocked());
+ EXPECT_FALSE(session_.IsStreamFlowControlBlocked());
+ QuicHeadersStream* headers_stream =
+ QuicSessionPeer::GetHeadersStream(&session_);
+ EXPECT_FALSE(headers_stream->flow_controller()->IsBlocked());
+ EXPECT_FALSE(session_.IsConnectionFlowControlBlocked());
+ EXPECT_FALSE(session_.IsStreamFlowControlBlocked());
+ QuicStreamId stream_id = 5;
+ // Write until the header stream is flow control blocked.
+ while (!headers_stream->flow_controller()->IsBlocked() && stream_id < 2000) {
+ EXPECT_FALSE(session_.IsConnectionFlowControlBlocked());
+ EXPECT_FALSE(session_.IsStreamFlowControlBlocked());
+ SpdyHeaderBlock headers;
+ headers["header"] = base::Uint64ToString(base::RandUint64()) +
+ base::Uint64ToString(base::RandUint64()) +
+ base::Uint64ToString(base::RandUint64());
+ headers_stream->WriteHeaders(stream_id, headers, true, nullptr);
+ stream_id += 2;
+ }
+ EXPECT_TRUE(headers_stream->flow_controller()->IsBlocked());
+ EXPECT_FALSE(crypto_stream->flow_controller()->IsBlocked());
+ EXPECT_FALSE(session_.IsConnectionFlowControlBlocked());
+ EXPECT_TRUE(session_.IsStreamFlowControlBlocked());
+ EXPECT_FALSE(session_.HasDataToWrite());
+ EXPECT_TRUE(headers_stream->HasBufferedData());
+
+ // Now complete the crypto handshake, resulting in an increased flow control
+ // send window.
+ CryptoHandshakeMessage msg;
+ session_.GetCryptoStream()->OnHandshakeMessage(msg);
+
+ // Stream is now unblocked and will no longer have buffered data.
+ EXPECT_FALSE(headers_stream->flow_controller()->IsBlocked());
+ EXPECT_FALSE(session_.IsConnectionFlowControlBlocked());
+ EXPECT_FALSE(session_.IsStreamFlowControlBlocked());
+ EXPECT_FALSE(headers_stream->HasBufferedData());
}
TEST_P(QuicSessionTest, InvalidFlowControlWindowInHandshake) {
@@ -906,6 +1014,8 @@
QuicFlowControllerPeer::SetSendWindowOffset(headers_stream->flow_controller(),
0);
EXPECT_TRUE(headers_stream->flow_controller()->IsBlocked());
+ EXPECT_FALSE(session_.IsConnectionFlowControlBlocked());
+ EXPECT_TRUE(session_.IsStreamFlowControlBlocked());
// Unblock the headers stream by supplying a WINDOW_UPDATE.
QuicWindowUpdateFrame window_update_frame(headers_stream->id(),
@@ -914,6 +1024,8 @@
frames.push_back(window_update_frame);
session_.OnWindowUpdateFrames(frames);
EXPECT_FALSE(headers_stream->flow_controller()->IsBlocked());
+ EXPECT_FALSE(session_.IsConnectionFlowControlBlocked());
+ EXPECT_FALSE(session_.IsStreamFlowControlBlocked());
}
TEST_P(QuicSessionTest, TooManyUnfinishedStreamsCauseConnectionClose) {
diff --git a/net/quic/quic_spdy_server_stream.h b/net/quic/quic_spdy_server_stream.h
index 3cecb6b..afd1291 100644
--- a/net/quic/quic_spdy_server_stream.h
+++ b/net/quic/quic_spdy_server_stream.h
@@ -31,8 +31,8 @@
// ReliableQuicStream implementation called by the session when there's
// data for us.
- virtual uint32 ProcessData(const char* data, uint32 data_len) OVERRIDE;
- virtual void OnFinRead() OVERRIDE;
+ virtual uint32 ProcessData(const char* data, uint32 data_len) override;
+ virtual void OnFinRead() override;
void ParseRequestHeaders();
diff --git a/net/quic/quic_stream_factory.cc b/net/quic/quic_stream_factory.cc
index ccbca64..687ea4c 100644
--- a/net/quic/quic_stream_factory.cc
+++ b/net/quic/quic_stream_factory.cc
@@ -70,6 +70,8 @@
const int32 kServerSecureInitialCongestionWindow = 32;
// Be conservative, and just use double a typical TCP ICWND for HTTP.
const int32 kServerInecureInitialCongestionWindow = 20;
+// Set the maximum number of undecryptable packets the connection will store.
+const int32 kMaxUndecryptablePackets = 100;
const char kDummyHostname[] = "quic.global.props";
const uint16 kDummyPort = 0;
@@ -90,7 +92,6 @@
QuicConfig InitializeQuicConfig(const QuicTagVector& connection_options) {
QuicConfig config;
- config.SetDefaults();
config.SetIdleConnectionStateLifetime(
QuicTime::Delta::FromSeconds(kIdleConnectionTimeoutSeconds),
QuicTime::Delta::FromSeconds(kIdleConnectionTimeoutSeconds));
@@ -104,7 +105,7 @@
: socket_(socket) {}
virtual ~DefaultPacketWriterFactory() {}
- virtual QuicPacketWriter* Create(QuicConnection* connection) const OVERRIDE;
+ virtual QuicPacketWriter* Create(QuicConnection* connection) const override;
private:
DatagramClientSocket* socket_;
@@ -511,7 +512,6 @@
check_persisted_supports_quic_(true),
weak_factory_(this) {
DCHECK(transport_security_state_);
- crypto_config_.SetDefaults();
crypto_config_.set_user_agent_id(user_agent_id);
crypto_config_.AddCanonicalSuffix(".c.youtube.com");
crypto_config_.AddCanonicalSuffix(".googlevideo.com");
@@ -902,6 +902,7 @@
config.SetInitialCongestionWindowToSend(
server_id.is_https() ? kServerSecureInitialCongestionWindow
: kServerInecureInitialCongestionWindow);
+ config.set_max_undecryptable_packets(kMaxUndecryptablePackets);
config.SetInitialFlowControlWindowToSend(kInitialReceiveWindowSize);
config.SetInitialStreamFlowControlWindowToSend(kInitialReceiveWindowSize);
config.SetInitialSessionFlowControlWindowToSend(kInitialReceiveWindowSize);
diff --git a/net/quic/quic_stream_factory.h b/net/quic/quic_stream_factory.h
index f4aa77e..f962699 100644
--- a/net/quic/quic_stream_factory.h
+++ b/net/quic/quic_stream_factory.h
@@ -147,13 +147,13 @@
// Until the servers support roaming, close all connections when the local
// IP address changes.
- virtual void OnIPAddressChanged() OVERRIDE;
+ virtual void OnIPAddressChanged() override;
// CertDatabase::Observer methods:
// We close all sessions when certificate database is changed.
- virtual void OnCertAdded(const X509Certificate* cert) OVERRIDE;
- virtual void OnCACertChanged(const X509Certificate* cert) OVERRIDE;
+ virtual void OnCertAdded(const X509Certificate* cert) override;
+ virtual void OnCACertChanged(const X509Certificate* cert) override;
bool require_confirmation() const {
return require_confirmation_;
diff --git a/net/quic/quic_stream_sequencer_test.cc b/net/quic/quic_stream_sequencer_test.cc
index c553fe5..8c90c9f 100644
--- a/net/quic/quic_stream_sequencer_test.cc
+++ b/net/quic/quic_stream_sequencer_test.cc
@@ -44,7 +44,7 @@
const string& details));
MOCK_METHOD1(Reset, void(QuicRstStreamErrorCode error));
MOCK_METHOD0(OnCanWrite, void());
- virtual QuicPriority EffectivePriority() const OVERRIDE {
+ virtual QuicPriority EffectivePriority() const override {
return QuicUtils::HighestPriority();
}
virtual bool IsFlowControlEnabled() const {
diff --git a/net/quic/quic_time_wait_list_manager.cc b/net/quic/quic_time_wait_list_manager.cc
index d1f3419..4e069d5 100644
--- a/net/quic/quic_time_wait_list_manager.cc
+++ b/net/quic/quic_time_wait_list_manager.cc
@@ -41,7 +41,7 @@
QuicTimeWaitListManager* time_wait_list_manager)
: time_wait_list_manager_(time_wait_list_manager) {}
- virtual QuicTime OnAlarm() OVERRIDE {
+ virtual QuicTime OnAlarm() override {
time_wait_list_manager_->CleanUpOldConnectionIds();
// Let the time wait manager register the alarm at appropriate time.
return QuicTime::Zero();
diff --git a/net/quic/quic_time_wait_list_manager.h b/net/quic/quic_time_wait_list_manager.h
index 4d7b0c5..13544b7 100644
--- a/net/quic/quic_time_wait_list_manager.h
+++ b/net/quic/quic_time_wait_list_manager.h
@@ -79,7 +79,7 @@
// Called by the dispatcher when the underlying socket becomes writable again,
// since we might need to send pending public reset packets which we didn't
// send because the underlying socket was write blocked.
- virtual void OnCanWrite() OVERRIDE;
+ virtual void OnCanWrite() override;
// Used to delete connection_id entries that have outlived their time wait
// period.
diff --git a/net/quic/reliable_quic_stream.cc b/net/quic/reliable_quic_stream.cc
index a10b0ab..a65203b 100644
--- a/net/quic/reliable_quic_stream.cc
+++ b/net/quic/reliable_quic_stream.cc
@@ -81,7 +81,7 @@
int num_retransmitted_packets,
int num_retransmitted_bytes,
QuicTime::Delta delta_largest_observed)
- OVERRIDE {
+ override {
DCHECK_LT(0, pending_acks_);
--pending_acks_;
num_original_packets_ += num_original_packets;
@@ -106,7 +106,7 @@
protected:
// Delegates are ref counted.
- virtual ~ProxyAckNotifierDelegate() OVERRIDE {
+ virtual ~ProxyAckNotifierDelegate() override {
}
private:
@@ -479,7 +479,6 @@
DLOG(DFATAL) << "Flow control not enabled! " << version();
return;
}
-
if (flow_controller_.UpdateSendWindowOffset(frame.byte_offset)) {
// We can write again!
// TODO(rjshade): This does not respect priorities (e.g. multiple
@@ -533,6 +532,12 @@
}
}
+void ReliableQuicStream::UpdateSendWindowOffset(uint64 new_window) {
+ if (flow_controller_.UpdateSendWindowOffset(new_window)) {
+ OnCanWrite();
+ }
+}
+
bool ReliableQuicStream::IsFlowControlBlocked() {
if (flow_controller_.IsBlocked()) {
return true;
diff --git a/net/quic/reliable_quic_stream.h b/net/quic/reliable_quic_stream.h
index 5b5ae0f..24bc349 100644
--- a/net/quic/reliable_quic_stream.h
+++ b/net/quic/reliable_quic_stream.h
@@ -111,6 +111,10 @@
// WINDOW_UPDATE frame.
void AddBytesConsumed(uint64 bytes);
+ // Updates the flow controller's send window offset and calls OnCanWrite if
+ // it was blocked before.
+ void UpdateSendWindowOffset(uint64 new_offset);
+
// Returns true if the stream is flow control blocked, by the stream flow
// control window or the connection flow control window.
bool IsFlowControlBlocked();
@@ -123,6 +127,9 @@
return fin_received_ || rst_received_;
}
+ // Returns true if the stream has queued data waiting to write.
+ bool HasBufferedData() const;
+
protected:
// Sends as much of 'data' to the connection as the connection will consume,
// and then buffers any remaining data in queued_data_.
@@ -151,8 +158,6 @@
// Close the write side of the socket. Further writes will fail.
void CloseWriteSide();
- bool HasBufferedData() const;
-
bool fin_buffered() const { return fin_buffered_; }
const QuicSession* session() const { return session_; }
diff --git a/net/quic/reliable_quic_stream_test.cc b/net/quic/reliable_quic_stream_test.cc
index 336ea53..713d0e3 100644
--- a/net/quic/reliable_quic_stream_test.cc
+++ b/net/quic/reliable_quic_stream_test.cc
@@ -48,14 +48,14 @@
: ReliableQuicStream(id, session),
should_process_data_(should_process_data) {}
- virtual uint32 ProcessRawData(const char* data, uint32 data_len) OVERRIDE {
+ virtual uint32 ProcessRawData(const char* data, uint32 data_len) override {
EXPECT_NE(0u, data_len);
DVLOG(1) << "ProcessData data_len: " << data_len;
data_ += string(data, data_len);
return should_process_data_ ? data_len : 0;
}
- virtual QuicPriority EffectivePriority() const OVERRIDE {
+ virtual QuicPriority EffectivePriority() const override {
return QuicUtils::HighestPriority();
}
diff --git a/net/quic/test_tools/crypto_test_utils.cc b/net/quic/test_tools/crypto_test_utils.cc
index cf8df9a..9f4dc8b 100644
--- a/net/quic/test_tools/crypto_test_utils.cc
+++ b/net/quic/test_tools/crypto_test_utils.cc
@@ -41,10 +41,10 @@
: error_(false) {
}
- virtual void OnError(CryptoFramer* framer) OVERRIDE { error_ = true; }
+ virtual void OnError(CryptoFramer* framer) override { error_ = true; }
virtual void OnHandshakeMessage(
- const CryptoHandshakeMessage& message) OVERRIDE {
+ const CryptoHandshakeMessage& message) override {
messages_.push_back(message);
}
@@ -143,7 +143,7 @@
virtual QuicAsyncStatus GetChannelIDKey(
const string& hostname,
scoped_ptr<ChannelIDKey>* channel_id_key,
- ChannelIDSourceCallback* callback) OVERRIDE {
+ ChannelIDSourceCallback* callback) override {
// Synchronous mode.
if (!callback) {
return sync_source_->GetChannelIDKey(hostname, channel_id_key, nullptr);
@@ -160,7 +160,7 @@
}
// CallbackSource implementation.
- virtual void RunPendingCallbacks() OVERRIDE {
+ virtual void RunPendingCallbacks() override {
if (callback_.get()) {
callback_->Run(&channel_id_key_);
callback_.reset();
@@ -219,8 +219,6 @@
TestClientSession client_session(client_conn, DefaultQuicConfig());
QuicCryptoClientConfig crypto_config;
- client_session.config()->SetDefaults();
- crypto_config.SetDefaults();
if (!options.dont_verify_certs) {
// TODO(wtc): replace this with ProofVerifierForTesting() when we have
// a working ProofSourceForTesting().
@@ -273,7 +271,6 @@
QuicRandom* rand,
QuicConfig* config,
QuicCryptoServerConfig* crypto_config) {
- config->SetDefaults();
QuicCryptoServerConfig::ConfigOptions options;
options.channel_id_enabled = true;
scoped_ptr<CryptoHandshakeMessage> scfg(
@@ -356,12 +353,12 @@
index_(index) {
}
- virtual StringPiece GetCommonHashes() const OVERRIDE {
+ virtual StringPiece GetCommonHashes() const override {
CHECK(false) << "not implemented";
return StringPiece();
}
- virtual StringPiece GetCert(uint64 hash, uint32 index) const OVERRIDE {
+ virtual StringPiece GetCert(uint64 hash, uint32 index) const override {
if (hash == hash_ && index == index_) {
return cert_;
}
@@ -371,7 +368,7 @@
virtual bool MatchCert(StringPiece cert,
StringPiece common_set_hashes,
uint64* out_hash,
- uint32* out_index) const OVERRIDE {
+ uint32* out_index) const override {
if (cert != cert_) {
return false;
}
diff --git a/net/quic/test_tools/crypto_test_utils_chromium.cc b/net/quic/test_tools/crypto_test_utils_chromium.cc
index e475e56..d5edc6c 100644
--- a/net/quic/test_tools/crypto_test_utils_chromium.cc
+++ b/net/quic/test_tools/crypto_test_utils_chromium.cc
@@ -59,7 +59,7 @@
const std::string& server_config,
bool ecdsa_ok,
const std::vector<std::string>** out_certs,
- std::string* out_signature) OVERRIDE {
+ std::string* out_signature) override {
*out_certs = &certs_;
*out_signature = kSignature;
return true;
@@ -84,7 +84,7 @@
const ProofVerifyContext* verify_context,
std::string* error_details,
scoped_ptr<ProofVerifyDetails>* verify_details,
- ProofVerifierCallback* callback) OVERRIDE {
+ ProofVerifierCallback* callback) override {
error_details->clear();
scoped_ptr<ProofVerifyDetailsChromium> verify_details_chromium(
new ProofVerifyDetailsChromium);
diff --git a/net/quic/test_tools/crypto_test_utils_nss.cc b/net/quic/test_tools/crypto_test_utils_nss.cc
index eaf0ecd..96fdd31 100644
--- a/net/quic/test_tools/crypto_test_utils_nss.cc
+++ b/net/quic/test_tools/crypto_test_utils_nss.cc
@@ -29,7 +29,7 @@
virtual QuicAsyncStatus GetChannelIDKey(
const string& hostname,
scoped_ptr<ChannelIDKey>* channel_id_key,
- ChannelIDSourceCallback* /*callback*/) OVERRIDE {
+ ChannelIDSourceCallback* /*callback*/) override {
channel_id_key->reset(new ChannelIDKeyChromium(HostnameToKey(hostname)));
return QUIC_SUCCESS;
}
diff --git a/net/quic/test_tools/crypto_test_utils_openssl.cc b/net/quic/test_tools/crypto_test_utils_openssl.cc
index 15babd4..4db57b5 100644
--- a/net/quic/test_tools/crypto_test_utils_openssl.cc
+++ b/net/quic/test_tools/crypto_test_utils_openssl.cc
@@ -26,12 +26,12 @@
class TestChannelIDKey : public ChannelIDKey {
public:
explicit TestChannelIDKey(EVP_PKEY* ecdsa_key) : ecdsa_key_(ecdsa_key) {}
- virtual ~TestChannelIDKey() OVERRIDE {}
+ virtual ~TestChannelIDKey() override {}
// ChannelIDKey implementation.
virtual bool Sign(StringPiece signed_data,
- string* out_signature) const OVERRIDE {
+ string* out_signature) const override {
crypto::ScopedEVP_MD_CTX md_ctx(EVP_MD_CTX_create());
if (!md_ctx ||
EVP_DigestSignInit(md_ctx.get(), nullptr, EVP_sha256(), nullptr,
@@ -75,7 +75,7 @@
return true;
}
- virtual string SerializeKey() const OVERRIDE {
+ virtual string SerializeKey() const override {
// i2d_PublicKey will produce an ANSI X9.62 public key which, for a P-256
// key, is 0x04 (meaning uncompressed) followed by the x and y field
// elements as 32-byte, big-endian numbers.
@@ -106,7 +106,7 @@
virtual QuicAsyncStatus GetChannelIDKey(
const string& hostname,
scoped_ptr<ChannelIDKey>* channel_id_key,
- ChannelIDSourceCallback* /*callback*/) OVERRIDE {
+ ChannelIDSourceCallback* /*callback*/) override {
channel_id_key->reset(new TestChannelIDKey(HostnameToKey(hostname)));
return QUIC_SUCCESS;
}
diff --git a/net/quic/test_tools/delayed_verify_strike_register_client.h b/net/quic/test_tools/delayed_verify_strike_register_client.h
index 6ae7ba1..479647b 100644
--- a/net/quic/test_tools/delayed_verify_strike_register_client.h
+++ b/net/quic/test_tools/delayed_verify_strike_register_client.h
@@ -27,7 +27,7 @@
virtual void VerifyNonceIsValidAndUnique(base::StringPiece nonce,
QuicWallTime now,
- ResultCallback* cb) OVERRIDE;
+ ResultCallback* cb) override;
// Start queueing verifications instead of executing them immediately.
void StartDelayingVerification() {
diff --git a/net/quic/test_tools/mock_clock.h b/net/quic/test_tools/mock_clock.h
index d6e490f..4a2a28c 100644
--- a/net/quic/test_tools/mock_clock.h
+++ b/net/quic/test_tools/mock_clock.h
@@ -20,11 +20,11 @@
void AdvanceTime(QuicTime::Delta delta);
- virtual QuicTime Now() const OVERRIDE;
+ virtual QuicTime Now() const override;
- virtual QuicTime ApproximateNow() const OVERRIDE;
+ virtual QuicTime ApproximateNow() const override;
- virtual QuicWallTime WallNow() const OVERRIDE;
+ virtual QuicWallTime WallNow() const override;
base::TimeTicks NowInTicks() const;
diff --git a/net/quic/test_tools/mock_crypto_client_stream.h b/net/quic/test_tools/mock_crypto_client_stream.h
index e940a1e..10803e8 100644
--- a/net/quic/test_tools/mock_crypto_client_stream.h
+++ b/net/quic/test_tools/mock_crypto_client_stream.h
@@ -46,10 +46,10 @@
// CryptoFramerVisitorInterface implementation.
virtual void OnHandshakeMessage(
- const CryptoHandshakeMessage& message) OVERRIDE;
+ const CryptoHandshakeMessage& message) override;
// QuicCryptoClientStream implementation.
- virtual bool CryptoConnect() OVERRIDE;
+ virtual bool CryptoConnect() override;
// Invokes the sessions's CryptoHandshakeEvent method with the specified
// event.
diff --git a/net/quic/test_tools/mock_crypto_client_stream_factory.h b/net/quic/test_tools/mock_crypto_client_stream_factory.h
index 721ec25..5add188 100644
--- a/net/quic/test_tools/mock_crypto_client_stream_factory.h
+++ b/net/quic/test_tools/mock_crypto_client_stream_factory.h
@@ -23,7 +23,7 @@
virtual QuicCryptoClientStream* CreateQuicCryptoClientStream(
const QuicServerId& server_id,
QuicClientSession* session,
- QuicCryptoClientConfig* crypto_config) OVERRIDE;
+ QuicCryptoClientConfig* crypto_config) override;
void set_handshake_mode(
MockCryptoClientStream::HandshakeMode handshake_mode) {
diff --git a/net/quic/test_tools/mock_random.h b/net/quic/test_tools/mock_random.h
index 53b24b7..b04f170 100644
--- a/net/quic/test_tools/mock_random.h
+++ b/net/quic/test_tools/mock_random.h
@@ -18,12 +18,12 @@
// QuicRandom:
// Fills the |data| buffer with a repeating byte, initially 'r'.
- virtual void RandBytes(void* data, size_t len) OVERRIDE;
+ virtual void RandBytes(void* data, size_t len) override;
// Returns base + the current increment.
- virtual uint64 RandUint64() OVERRIDE;
+ virtual uint64 RandUint64() override;
// Does nothing.
virtual void Reseed(const void* additional_entropy,
- size_t entropy_len) OVERRIDE;
+ size_t entropy_len) override;
// ChangeValue increments |increment_|. This causes the value returned by
// |RandUint64| and the byte that |RandBytes| fills with, to change.
diff --git a/net/quic/test_tools/quic_test_utils.cc b/net/quic/test_tools/quic_test_utils.cc
index 0cf13e1..6cdd02a 100644
--- a/net/quic/test_tools/quic_test_utils.cc
+++ b/net/quic/test_tools/quic_test_utils.cc
@@ -37,8 +37,8 @@
: QuicAlarm(delegate) {
}
- virtual void SetImpl() OVERRIDE {}
- virtual void CancelImpl() OVERRIDE {}
+ virtual void SetImpl() override {}
+ virtual void CancelImpl() override {}
};
} // namespace
@@ -229,7 +229,7 @@
virtual ~NiceMockPacketWriterFactory() {}
virtual QuicPacketWriter* Create(
- QuicConnection* /*connection*/) const OVERRIDE {
+ QuicConnection* /*connection*/) const override {
return new testing::NiceMock<MockPacketWriter>();
}
@@ -609,7 +609,6 @@
QuicConfig DefaultQuicConfig() {
QuicConfig config;
- config.SetDefaults();
config.SetInitialFlowControlWindowToSend(
kInitialSessionFlowControlWindowForTest);
config.SetInitialStreamFlowControlWindowToSend(
diff --git a/net/quic/test_tools/quic_test_utils.h b/net/quic/test_tools/quic_test_utils.h
index 4c57a9b..f009641 100644
--- a/net/quic/test_tools/quic_test_utils.h
+++ b/net/quic/test_tools/quic_test_utils.h
@@ -190,35 +190,35 @@
public:
NoOpFramerVisitor() {}
- virtual void OnError(QuicFramer* framer) OVERRIDE {}
- virtual void OnPacket() OVERRIDE {}
+ virtual void OnError(QuicFramer* framer) override {}
+ virtual void OnPacket() override {}
virtual void OnPublicResetPacket(
- const QuicPublicResetPacket& packet) OVERRIDE {}
+ const QuicPublicResetPacket& packet) override {}
virtual void OnVersionNegotiationPacket(
- const QuicVersionNegotiationPacket& packet) OVERRIDE {}
- virtual void OnRevivedPacket() OVERRIDE {}
- virtual bool OnProtocolVersionMismatch(QuicVersion version) OVERRIDE;
- virtual bool OnUnauthenticatedHeader(const QuicPacketHeader& header) OVERRIDE;
+ const QuicVersionNegotiationPacket& packet) override {}
+ virtual void OnRevivedPacket() override {}
+ virtual bool OnProtocolVersionMismatch(QuicVersion version) override;
+ virtual bool OnUnauthenticatedHeader(const QuicPacketHeader& header) override;
virtual bool OnUnauthenticatedPublicHeader(
- const QuicPacketPublicHeader& header) OVERRIDE;
- virtual void OnDecryptedPacket(EncryptionLevel level) OVERRIDE {}
- virtual bool OnPacketHeader(const QuicPacketHeader& header) OVERRIDE;
- virtual void OnFecProtectedPayload(base::StringPiece payload) OVERRIDE {}
- virtual bool OnStreamFrame(const QuicStreamFrame& frame) OVERRIDE;
- virtual bool OnAckFrame(const QuicAckFrame& frame) OVERRIDE;
+ const QuicPacketPublicHeader& header) override;
+ virtual void OnDecryptedPacket(EncryptionLevel level) override {}
+ virtual bool OnPacketHeader(const QuicPacketHeader& header) override;
+ virtual void OnFecProtectedPayload(base::StringPiece payload) override {}
+ virtual bool OnStreamFrame(const QuicStreamFrame& frame) override;
+ virtual bool OnAckFrame(const QuicAckFrame& frame) override;
virtual bool OnCongestionFeedbackFrame(
- const QuicCongestionFeedbackFrame& frame) OVERRIDE;
+ const QuicCongestionFeedbackFrame& frame) override;
virtual bool OnStopWaitingFrame(
- const QuicStopWaitingFrame& frame) OVERRIDE;
- virtual bool OnPingFrame(const QuicPingFrame& frame) OVERRIDE;
- virtual void OnFecData(const QuicFecData& fec) OVERRIDE {}
- virtual bool OnRstStreamFrame(const QuicRstStreamFrame& frame) OVERRIDE;
+ const QuicStopWaitingFrame& frame) override;
+ virtual bool OnPingFrame(const QuicPingFrame& frame) override;
+ virtual void OnFecData(const QuicFecData& fec) override {}
+ virtual bool OnRstStreamFrame(const QuicRstStreamFrame& frame) override;
virtual bool OnConnectionCloseFrame(
- const QuicConnectionCloseFrame& frame) OVERRIDE;
- virtual bool OnGoAwayFrame(const QuicGoAwayFrame& frame) OVERRIDE;
- virtual bool OnWindowUpdateFrame(const QuicWindowUpdateFrame& frame) OVERRIDE;
- virtual bool OnBlockedFrame(const QuicBlockedFrame& frame) OVERRIDE;
- virtual void OnPacketComplete() OVERRIDE {}
+ const QuicConnectionCloseFrame& frame) override;
+ virtual bool OnGoAwayFrame(const QuicGoAwayFrame& frame) override;
+ virtual bool OnWindowUpdateFrame(const QuicWindowUpdateFrame& frame) override;
+ virtual bool OnBlockedFrame(const QuicBlockedFrame& frame) override;
+ virtual void OnPacketComplete() override {}
private:
DISALLOW_COPY_AND_ASSIGN(NoOpFramerVisitor);
@@ -255,9 +255,9 @@
public:
MockHelper();
virtual ~MockHelper();
- virtual const QuicClock* GetClock() const OVERRIDE;
- virtual QuicRandom* GetRandomGenerator() OVERRIDE;
- virtual QuicAlarm* CreateAlarm(QuicAlarm::Delegate* delegate) OVERRIDE;
+ virtual const QuicClock* GetClock() const override;
+ virtual QuicRandom* GetRandomGenerator() override;
+ virtual QuicAlarm* CreateAlarm(QuicAlarm::Delegate* delegate) override;
void AdvanceTime(QuicTime::Delta delta);
private:
@@ -312,7 +312,7 @@
QuicConnection::ProcessUdpPacket(self_address, peer_address, packet);
}
- virtual bool OnProtocolVersionMismatch(QuicVersion version) OVERRIDE {
+ virtual bool OnProtocolVersionMismatch(QuicVersion version) override {
return false;
}
@@ -331,7 +331,7 @@
virtual ~PacketSavingConnection();
- virtual void SendOrQueuePacket(QueuedPacket packet) OVERRIDE;
+ virtual void SendOrQueuePacket(QueuedPacket packet) override;
std::vector<QuicPacket*> packets_;
std::vector<QuicEncryptedPacket*> encrypted_packets_;
@@ -383,7 +383,7 @@
void SetCryptoStream(QuicCryptoStream* stream);
- virtual QuicCryptoStream* GetCryptoStream() OVERRIDE;
+ virtual QuicCryptoStream* GetCryptoStream() override;
private:
QuicCryptoStream* crypto_stream_;
@@ -408,7 +408,7 @@
void SetCryptoStream(QuicCryptoStream* stream);
- virtual QuicCryptoStream* GetCryptoStream() OVERRIDE;
+ virtual QuicCryptoStream* GetCryptoStream() override;
private:
QuicCryptoStream* crypto_stream_;
@@ -496,7 +496,7 @@
virtual ~TestEntropyCalculator();
virtual QuicPacketEntropyHash EntropyHash(
- QuicPacketSequenceNumber sequence_number) const OVERRIDE;
+ QuicPacketSequenceNumber sequence_number) const override;
private:
DISALLOW_COPY_AND_ASSIGN(TestEntropyCalculator);
@@ -554,7 +554,7 @@
virtual ~TestWriterFactory();
virtual QuicPacketWriter* Create(QuicServerPacketWriter* writer,
- QuicConnection* connection) OVERRIDE;
+ QuicConnection* connection) override;
// Calls OnPacketSent on the last QuicConnection to write through one of the
// packet writers created by this factory.
@@ -572,7 +572,7 @@
const char* buffer,
size_t buf_len,
const IPAddressNumber& self_address,
- const IPEndPoint& peer_address) OVERRIDE;
+ const IPEndPoint& peer_address) override;
private:
TestWriterFactory* factory_;
diff --git a/net/quic/test_tools/simple_quic_framer.cc b/net/quic/test_tools/simple_quic_framer.cc
index a08d555..6999cf5 100644
--- a/net/quic/test_tools/simple_quic_framer.cc
+++ b/net/quic/test_tools/simple_quic_framer.cc
@@ -22,48 +22,48 @@
: error_(QUIC_NO_ERROR) {
}
- virtual ~SimpleFramerVisitor() OVERRIDE {
+ virtual ~SimpleFramerVisitor() override {
STLDeleteElements(&stream_data_);
}
- virtual void OnError(QuicFramer* framer) OVERRIDE {
+ virtual void OnError(QuicFramer* framer) override {
error_ = framer->error();
}
- virtual bool OnProtocolVersionMismatch(QuicVersion version) OVERRIDE {
+ virtual bool OnProtocolVersionMismatch(QuicVersion version) override {
return false;
}
- virtual void OnPacket() OVERRIDE {}
+ virtual void OnPacket() override {}
virtual void OnPublicResetPacket(
- const QuicPublicResetPacket& packet) OVERRIDE {
+ const QuicPublicResetPacket& packet) override {
public_reset_packet_.reset(new QuicPublicResetPacket(packet));
}
virtual void OnVersionNegotiationPacket(
- const QuicVersionNegotiationPacket& packet) OVERRIDE {
+ const QuicVersionNegotiationPacket& packet) override {
version_negotiation_packet_.reset(
new QuicVersionNegotiationPacket(packet));
}
- virtual void OnRevivedPacket() OVERRIDE {}
+ virtual void OnRevivedPacket() override {}
virtual bool OnUnauthenticatedPublicHeader(
- const QuicPacketPublicHeader& header) OVERRIDE {
+ const QuicPacketPublicHeader& header) override {
return true;
}
virtual bool OnUnauthenticatedHeader(
- const QuicPacketHeader& header) OVERRIDE {
+ const QuicPacketHeader& header) override {
return true;
}
- virtual void OnDecryptedPacket(EncryptionLevel level) OVERRIDE {}
- virtual bool OnPacketHeader(const QuicPacketHeader& header) OVERRIDE {
+ virtual void OnDecryptedPacket(EncryptionLevel level) override {}
+ virtual bool OnPacketHeader(const QuicPacketHeader& header) override {
has_header_ = true;
header_ = header;
return true;
}
- virtual void OnFecProtectedPayload(StringPiece payload) OVERRIDE {}
+ virtual void OnFecProtectedPayload(StringPiece payload) override {}
- virtual bool OnStreamFrame(const QuicStreamFrame& frame) OVERRIDE {
+ virtual bool OnStreamFrame(const QuicStreamFrame& frame) override {
// Save a copy of the data so it is valid after the packet is processed.
stream_data_.push_back(frame.GetDataAsString());
QuicStreamFrame stream_frame(frame);
@@ -75,61 +75,61 @@
return true;
}
- virtual bool OnAckFrame(const QuicAckFrame& frame) OVERRIDE {
+ virtual bool OnAckFrame(const QuicAckFrame& frame) override {
ack_frames_.push_back(frame);
return true;
}
virtual bool OnCongestionFeedbackFrame(
- const QuicCongestionFeedbackFrame& frame) OVERRIDE {
+ const QuicCongestionFeedbackFrame& frame) override {
feedback_frames_.push_back(frame);
return true;
}
- virtual bool OnStopWaitingFrame(const QuicStopWaitingFrame& frame) OVERRIDE {
+ virtual bool OnStopWaitingFrame(const QuicStopWaitingFrame& frame) override {
stop_waiting_frames_.push_back(frame);
return true;
}
- virtual bool OnPingFrame(const QuicPingFrame& frame) OVERRIDE {
+ virtual bool OnPingFrame(const QuicPingFrame& frame) override {
ping_frames_.push_back(frame);
return true;
}
- virtual void OnFecData(const QuicFecData& fec) OVERRIDE {
+ virtual void OnFecData(const QuicFecData& fec) override {
fec_data_ = fec;
fec_redundancy_ = fec_data_.redundancy.as_string();
fec_data_.redundancy = fec_redundancy_;
}
- virtual bool OnRstStreamFrame(const QuicRstStreamFrame& frame) OVERRIDE {
+ virtual bool OnRstStreamFrame(const QuicRstStreamFrame& frame) override {
rst_stream_frames_.push_back(frame);
return true;
}
virtual bool OnConnectionCloseFrame(
- const QuicConnectionCloseFrame& frame) OVERRIDE {
+ const QuicConnectionCloseFrame& frame) override {
connection_close_frames_.push_back(frame);
return true;
}
- virtual bool OnGoAwayFrame(const QuicGoAwayFrame& frame) OVERRIDE {
+ virtual bool OnGoAwayFrame(const QuicGoAwayFrame& frame) override {
goaway_frames_.push_back(frame);
return true;
}
virtual bool OnWindowUpdateFrame(
- const QuicWindowUpdateFrame& frame) OVERRIDE {
+ const QuicWindowUpdateFrame& frame) override {
window_update_frames_.push_back(frame);
return true;
}
- virtual bool OnBlockedFrame(const QuicBlockedFrame& frame) OVERRIDE {
+ virtual bool OnBlockedFrame(const QuicBlockedFrame& frame) override {
blocked_frames_.push_back(frame);
return true;
}
- virtual void OnPacketComplete() OVERRIDE {}
+ virtual void OnPacketComplete() override {}
const QuicPacketHeader& header() const { return header_; }
const vector<QuicAckFrame>& ack_frames() const { return ack_frames_; }
diff --git a/net/quic/test_tools/test_task_runner.h b/net/quic/test_tools/test_task_runner.h
index e25bf2a..ea6793f 100644
--- a/net/quic/test_tools/test_task_runner.h
+++ b/net/quic/test_tools/test_task_runner.h
@@ -28,8 +28,8 @@
// base::TaskRunner implementation.
virtual bool PostDelayedTask(const tracked_objects::Location& from_here,
const base::Closure& task,
- base::TimeDelta delay) OVERRIDE;
- virtual bool RunsTasksOnCurrentThread() const OVERRIDE;
+ base::TimeDelta delay) override;
+ virtual bool RunsTasksOnCurrentThread() const override;
const std::vector<PostedTask>& GetPostedTasks() const;
diff --git a/net/server/http_server_unittest.cc b/net/server/http_server_unittest.cc
index 216cb03..be0e271 100644
--- a/net/server/http_server_unittest.cc
+++ b/net/server/http_server_unittest.cc
@@ -181,7 +181,7 @@
public:
HttpServerTest() : quit_after_request_count_(0) {}
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
scoped_ptr<ServerSocket> server_socket(
new TCPServerSocket(NULL, net::NetLog::Source()));
server_socket->ListenWithAddressAndPort("127.0.0.1", 0, 1);
@@ -189,26 +189,26 @@
ASSERT_EQ(OK, server_->GetLocalAddress(&server_address_));
}
- virtual void OnConnect(int connection_id) OVERRIDE {}
+ virtual void OnConnect(int connection_id) override {}
virtual void OnHttpRequest(int connection_id,
- const HttpServerRequestInfo& info) OVERRIDE {
+ const HttpServerRequestInfo& info) override {
requests_.push_back(std::make_pair(info, connection_id));
if (requests_.size() == quit_after_request_count_)
run_loop_quit_func_.Run();
}
virtual void OnWebSocketRequest(int connection_id,
- const HttpServerRequestInfo& info) OVERRIDE {
+ const HttpServerRequestInfo& info) override {
NOTREACHED();
}
virtual void OnWebSocketMessage(int connection_id,
- const std::string& data) OVERRIDE {
+ const std::string& data) override {
NOTREACHED();
}
- virtual void OnClose(int connection_id) OVERRIDE {}
+ virtual void OnClose(int connection_id) override {}
bool RunUntilRequestsReceived(size_t count) {
quit_after_request_count_ = count;
@@ -249,17 +249,17 @@
class WebSocketTest : public HttpServerTest {
virtual void OnHttpRequest(int connection_id,
- const HttpServerRequestInfo& info) OVERRIDE {
+ const HttpServerRequestInfo& info) override {
NOTREACHED();
}
virtual void OnWebSocketRequest(int connection_id,
- const HttpServerRequestInfo& info) OVERRIDE {
+ const HttpServerRequestInfo& info) override {
HttpServerTest::OnHttpRequest(connection_id, info);
}
virtual void OnWebSocketMessage(int connection_id,
- const std::string& data) OVERRIDE {
+ const std::string& data) override {
}
};
@@ -409,7 +409,7 @@
: quit_loop_func_(quit_loop_func) {}
virtual ~TestURLFetcherDelegate() {}
- virtual void OnURLFetchComplete(const URLFetcher* source) OVERRIDE {
+ virtual void OnURLFetchComplete(const URLFetcher* source) override {
EXPECT_EQ(HTTP_INTERNAL_SERVER_ERROR, source->GetResponseCode());
quit_loop_func_.Run();
}
@@ -473,10 +473,10 @@
read_buf_len_(0) {}
// StreamSocket
- virtual int Connect(const CompletionCallback& callback) OVERRIDE {
+ virtual int Connect(const CompletionCallback& callback) override {
return ERR_NOT_IMPLEMENTED;
}
- virtual void Disconnect() OVERRIDE {
+ virtual void Disconnect() override {
connected_ = false;
if (!read_callback_.is_null()) {
read_buf_ = NULL;
@@ -484,28 +484,28 @@
base::ResetAndReturn(&read_callback_).Run(ERR_CONNECTION_CLOSED);
}
}
- virtual bool IsConnected() const OVERRIDE { return connected_; }
- virtual bool IsConnectedAndIdle() const OVERRIDE { return IsConnected(); }
- virtual int GetPeerAddress(IPEndPoint* address) const OVERRIDE {
+ virtual bool IsConnected() const override { return connected_; }
+ virtual bool IsConnectedAndIdle() const override { return IsConnected(); }
+ virtual int GetPeerAddress(IPEndPoint* address) const override {
return ERR_NOT_IMPLEMENTED;
}
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE {
+ virtual int GetLocalAddress(IPEndPoint* address) const override {
return ERR_NOT_IMPLEMENTED;
}
- virtual const BoundNetLog& NetLog() const OVERRIDE { return net_log_; }
- virtual void SetSubresourceSpeculation() OVERRIDE {}
- virtual void SetOmniboxSpeculation() OVERRIDE {}
- virtual bool WasEverUsed() const OVERRIDE { return true; }
- virtual bool UsingTCPFastOpen() const OVERRIDE { return false; }
- virtual bool WasNpnNegotiated() const OVERRIDE { return false; }
- virtual NextProto GetNegotiatedProtocol() const OVERRIDE {
+ virtual const BoundNetLog& NetLog() const override { return net_log_; }
+ virtual void SetSubresourceSpeculation() override {}
+ virtual void SetOmniboxSpeculation() override {}
+ virtual bool WasEverUsed() const override { return true; }
+ virtual bool UsingTCPFastOpen() const override { return false; }
+ virtual bool WasNpnNegotiated() const override { return false; }
+ virtual NextProto GetNegotiatedProtocol() const override {
return kProtoUnknown;
}
- virtual bool GetSSLInfo(SSLInfo* ssl_info) OVERRIDE { return false; }
+ virtual bool GetSSLInfo(SSLInfo* ssl_info) override { return false; }
// Socket
virtual int Read(IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
if (!connected_) {
return ERR_SOCKET_NOT_CONNECTED;
}
@@ -523,13 +523,13 @@
return read_len;
}
virtual int Write(IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return ERR_NOT_IMPLEMENTED;
}
- virtual int SetReceiveBufferSize(int32 size) OVERRIDE {
+ virtual int SetReceiveBufferSize(int32 size) override {
return ERR_NOT_IMPLEMENTED;
}
- virtual int SetSendBufferSize(int32 size) OVERRIDE {
+ virtual int SetSendBufferSize(int32 size) override {
return ERR_NOT_IMPLEMENTED;
}
@@ -621,7 +621,7 @@
class CloseOnConnectHttpServerTest : public HttpServerTest {
public:
- virtual void OnConnect(int connection_id) OVERRIDE {
+ virtual void OnConnect(int connection_id) override {
connection_ids_.push_back(connection_id);
server_->Close(connection_id);
}
diff --git a/net/server/web_socket.cc b/net/server/web_socket.cc
index ec0fdac..118cdf8 100644
--- a/net/server/web_socket.cc
+++ b/net/server/web_socket.cc
@@ -54,7 +54,7 @@
return new WebSocketHixie76(server, connection, request, pos);
}
- virtual void Accept(const HttpServerRequestInfo& request) OVERRIDE {
+ virtual void Accept(const HttpServerRequestInfo& request) override {
std::string key1 = request.GetHeaderValue("sec-websocket-key1");
std::string key2 = request.GetHeaderValue("sec-websocket-key2");
@@ -86,7 +86,7 @@
std::string(reinterpret_cast<char*>(digest.a), 16));
}
- virtual ParseResult Read(std::string* message) OVERRIDE {
+ virtual ParseResult Read(std::string* message) override {
DCHECK(message);
HttpConnection::ReadIOBuffer* read_buf = connection_->read_buf();
if (read_buf->StartOfBuffer()[0])
@@ -103,7 +103,7 @@
return FRAME_OK;
}
- virtual void Send(const std::string& message) OVERRIDE {
+ virtual void Send(const std::string& message) override {
char message_start = 0;
char message_end = -1;
server_->SendRaw(connection_->id(), std::string(1, message_start));
@@ -199,7 +199,7 @@
return new WebSocketHybi17(server, connection, request, pos);
}
- virtual void Accept(const HttpServerRequestInfo& request) OVERRIDE {
+ virtual void Accept(const HttpServerRequestInfo& request) override {
static const char* const kWebSocketGuid =
"258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
std::string key = request.GetHeaderValue("sec-websocket-key");
@@ -217,7 +217,7 @@
encoded_hash.c_str()));
}
- virtual ParseResult Read(std::string* message) OVERRIDE {
+ virtual ParseResult Read(std::string* message) override {
HttpConnection::ReadIOBuffer* read_buf = connection_->read_buf();
base::StringPiece frame(read_buf->StartOfBuffer(), read_buf->GetSize());
int bytes_consumed = 0;
@@ -230,7 +230,7 @@
return result;
}
- virtual void Send(const std::string& message) OVERRIDE {
+ virtual void Send(const std::string& message) override {
if (closed_)
return;
server_->SendRaw(connection_->id(),
diff --git a/net/socket/client_socket_factory.cc b/net/socket/client_socket_factory.cc
index 9539145..f372aff 100644
--- a/net/socket/client_socket_factory.cc
+++ b/net/socket/client_socket_factory.cc
@@ -56,11 +56,11 @@
CertDatabase::GetInstance()->RemoveObserver(this);
}
- virtual void OnCertAdded(const X509Certificate* cert) OVERRIDE {
+ virtual void OnCertAdded(const X509Certificate* cert) override {
ClearSSLSessionCache();
}
- virtual void OnCACertChanged(const X509Certificate* cert) OVERRIDE {
+ virtual void OnCACertChanged(const X509Certificate* cert) override {
// Per wtc, we actually only need to flush when trust is reduced.
// Always flush now because OnCACertChanged does not tell us this.
// See comments in ClientSocketPoolManager::OnCACertChanged.
@@ -71,7 +71,7 @@
DatagramSocket::BindType bind_type,
const RandIntCallback& rand_int_cb,
NetLog* net_log,
- const NetLog::Source& source) OVERRIDE {
+ const NetLog::Source& source) override {
return scoped_ptr<DatagramClientSocket>(
new UDPClientSocket(bind_type, rand_int_cb, net_log, source));
}
@@ -79,7 +79,7 @@
virtual scoped_ptr<StreamSocket> CreateTransportClientSocket(
const AddressList& addresses,
NetLog* net_log,
- const NetLog::Source& source) OVERRIDE {
+ const NetLog::Source& source) override {
return scoped_ptr<StreamSocket>(
new TCPClientSocket(addresses, net_log, source));
}
@@ -88,7 +88,7 @@
scoped_ptr<ClientSocketHandle> transport_socket,
const HostPortPair& host_and_port,
const SSLConfig& ssl_config,
- const SSLClientSocketContext& context) OVERRIDE {
+ const SSLClientSocketContext& context) override {
// nss_thread_task_runner_ may be NULL if g_use_dedicated_nss_thread is
// false or if the dedicated NSS thread failed to start. If so, cause NSS
// functions to execute on the current task runner.
@@ -120,7 +120,7 @@
#endif
}
- virtual void ClearSSLSessionCache() OVERRIDE {
+ virtual void ClearSSLSessionCache() override {
SSLClientSocket::ClearSessionCache();
}
diff --git a/net/socket/client_socket_pool.cc b/net/socket/client_socket_pool.cc
index 0eebd11..261e87f 100644
--- a/net/socket/client_socket_pool.cc
+++ b/net/socket/client_socket_pool.cc
@@ -12,10 +12,10 @@
// alive.
// TODO(ziadh): Change this timeout after getting histogram data on how long it
// should be.
-int g_unused_idle_socket_timeout_s = 10;
+int64 g_unused_idle_socket_timeout_s = 10;
// The maximum duration, in seconds, to keep used idle persistent sockets alive.
-int g_used_idle_socket_timeout_s = 300; // 5 minutes
+int64 g_used_idle_socket_timeout_s = 300; // 5 minutes
} // namespace
diff --git a/net/socket/client_socket_pool_base.h b/net/socket/client_socket_pool_base.h
index 8079cd4..e2fde00 100644
--- a/net/socket/client_socket_pool_base.h
+++ b/net/socket/client_socket_pool_base.h
@@ -327,10 +327,10 @@
void EnableConnectBackupJobs();
// ConnectJob::Delegate methods:
- virtual void OnConnectJobComplete(int result, ConnectJob* job) OVERRIDE;
+ virtual void OnConnectJobComplete(int result, ConnectJob* job) override;
// NetworkChangeNotifier::IPAddressObserver methods:
- virtual void OnIPAddressChanged() OVERRIDE;
+ virtual void OnIPAddressChanged() override;
private:
friend class base::RefCounted<ClientSocketPoolBaseHelper>;
@@ -856,7 +856,7 @@
virtual scoped_ptr<ConnectJob> NewConnectJob(
const std::string& group_name,
const internal::ClientSocketPoolBaseHelper::Request& request,
- ConnectJob::Delegate* delegate) const OVERRIDE {
+ ConnectJob::Delegate* delegate) const override {
const Request& casted_request = static_cast<const Request&>(request);
return connect_job_factory_->NewConnectJob(
group_name, casted_request, delegate);
diff --git a/net/socket/client_socket_pool_base_unittest.cc b/net/socket/client_socket_pool_base_unittest.cc
index 5a672b4..3cafc89 100644
--- a/net/socket/client_socket_pool_base_unittest.cc
+++ b/net/socket/client_socket_pool_base_unittest.cc
@@ -130,7 +130,7 @@
// Socket implementation.
virtual int Read(
IOBuffer* /* buf */, int len,
- const CompletionCallback& /* callback */) OVERRIDE {
+ const CompletionCallback& /* callback */) override {
if (has_unread_data_ && len > 0) {
has_unread_data_ = false;
was_used_to_convey_data_ = true;
@@ -141,50 +141,50 @@
virtual int Write(
IOBuffer* /* buf */, int len,
- const CompletionCallback& /* callback */) OVERRIDE {
+ const CompletionCallback& /* callback */) override {
was_used_to_convey_data_ = true;
return len;
}
- virtual int SetReceiveBufferSize(int32 size) OVERRIDE { return OK; }
- virtual int SetSendBufferSize(int32 size) OVERRIDE { return OK; }
+ virtual int SetReceiveBufferSize(int32 size) override { return OK; }
+ virtual int SetSendBufferSize(int32 size) override { return OK; }
// StreamSocket implementation.
- virtual int Connect(const CompletionCallback& callback) OVERRIDE {
+ virtual int Connect(const CompletionCallback& callback) override {
connected_ = true;
return OK;
}
- virtual void Disconnect() OVERRIDE { connected_ = false; }
- virtual bool IsConnected() const OVERRIDE { return connected_; }
- virtual bool IsConnectedAndIdle() const OVERRIDE {
+ virtual void Disconnect() override { connected_ = false; }
+ virtual bool IsConnected() const override { return connected_; }
+ virtual bool IsConnectedAndIdle() const override {
return connected_ && !has_unread_data_;
}
- virtual int GetPeerAddress(IPEndPoint* /* address */) const OVERRIDE {
+ virtual int GetPeerAddress(IPEndPoint* /* address */) const override {
return ERR_UNEXPECTED;
}
- virtual int GetLocalAddress(IPEndPoint* /* address */) const OVERRIDE {
+ virtual int GetLocalAddress(IPEndPoint* /* address */) const override {
return ERR_UNEXPECTED;
}
- virtual const BoundNetLog& NetLog() const OVERRIDE {
+ virtual const BoundNetLog& NetLog() const override {
return net_log_;
}
- virtual void SetSubresourceSpeculation() OVERRIDE {}
- virtual void SetOmniboxSpeculation() OVERRIDE {}
- virtual bool WasEverUsed() const OVERRIDE {
+ virtual void SetSubresourceSpeculation() override {}
+ virtual void SetOmniboxSpeculation() override {}
+ virtual bool WasEverUsed() const override {
return was_used_to_convey_data_;
}
- virtual bool UsingTCPFastOpen() const OVERRIDE { return false; }
- virtual bool WasNpnNegotiated() const OVERRIDE {
+ virtual bool UsingTCPFastOpen() const override { return false; }
+ virtual bool WasNpnNegotiated() const override {
return false;
}
- virtual NextProto GetNegotiatedProtocol() const OVERRIDE {
+ virtual NextProto GetNegotiatedProtocol() const override {
return kProtoUnknown;
}
- virtual bool GetSSLInfo(SSLInfo* ssl_info) OVERRIDE {
+ virtual bool GetSSLInfo(SSLInfo* ssl_info) override {
return false;
}
@@ -207,7 +207,7 @@
DatagramSocket::BindType bind_type,
const RandIntCallback& rand_int_cb,
NetLog* net_log,
- const NetLog::Source& source) OVERRIDE {
+ const NetLog::Source& source) override {
NOTREACHED();
return scoped_ptr<DatagramClientSocket>();
}
@@ -215,7 +215,7 @@
virtual scoped_ptr<StreamSocket> CreateTransportClientSocket(
const AddressList& addresses,
NetLog* /* net_log */,
- const NetLog::Source& /*source*/) OVERRIDE {
+ const NetLog::Source& /*source*/) override {
allocation_count_++;
return scoped_ptr<StreamSocket>();
}
@@ -224,12 +224,12 @@
scoped_ptr<ClientSocketHandle> transport_socket,
const HostPortPair& host_and_port,
const SSLConfig& ssl_config,
- const SSLClientSocketContext& context) OVERRIDE {
+ const SSLClientSocketContext& context) override {
NOTIMPLEMENTED();
return scoped_ptr<SSLClientSocket>();
}
- virtual void ClearSSLSessionCache() OVERRIDE {
+ virtual void ClearSSLSessionCache() override {
NOTIMPLEMENTED();
}
@@ -291,9 +291,9 @@
// From ConnectJob:
- virtual LoadState GetLoadState() const OVERRIDE { return load_state_; }
+ virtual LoadState GetLoadState() const override { return load_state_; }
- virtual void GetAdditionalErrorState(ClientSocketHandle* handle) OVERRIDE {
+ virtual void GetAdditionalErrorState(ClientSocketHandle* handle) override {
if (store_additional_error_state_) {
// Set all of the additional error state fields in some way.
handle->set_is_ssl_error(true);
@@ -306,7 +306,7 @@
private:
// From ConnectJob:
- virtual int ConnectInternal() OVERRIDE {
+ virtual int ConnectInternal() override {
AddressList ignored;
client_socket_factory_->CreateTransportClientSocket(
ignored, NULL, net::NetLog::Source());
@@ -457,7 +457,7 @@
virtual scoped_ptr<ConnectJob> NewConnectJob(
const std::string& group_name,
const TestClientSocketPoolBase::Request& request,
- ConnectJob::Delegate* delegate) const OVERRIDE {
+ ConnectJob::Delegate* delegate) const override {
EXPECT_TRUE(!job_types_ || !job_types_->empty());
TestConnectJob::JobType job_type = job_type_;
if (job_types_ && !job_types_->empty()) {
@@ -473,7 +473,7 @@
net_log_));
}
- virtual base::TimeDelta ConnectionTimeout() const OVERRIDE {
+ virtual base::TimeDelta ConnectionTimeout() const override {
return timeout_duration_;
}
@@ -510,7 +510,7 @@
net::RequestPriority priority,
ClientSocketHandle* handle,
const CompletionCallback& callback,
- const BoundNetLog& net_log) OVERRIDE {
+ const BoundNetLog& net_log) override {
const scoped_refptr<TestSocketParams>* casted_socket_params =
static_cast<const scoped_refptr<TestSocketParams>*>(params);
return base_.RequestSocket(group_name, *casted_socket_params, priority,
@@ -520,7 +520,7 @@
virtual void RequestSockets(const std::string& group_name,
const void* params,
int num_sockets,
- const BoundNetLog& net_log) OVERRIDE {
+ const BoundNetLog& net_log) override {
const scoped_refptr<TestSocketParams>* casted_params =
static_cast<const scoped_refptr<TestSocketParams>*>(params);
@@ -529,65 +529,65 @@
virtual void CancelRequest(
const std::string& group_name,
- ClientSocketHandle* handle) OVERRIDE {
+ ClientSocketHandle* handle) override {
base_.CancelRequest(group_name, handle);
}
virtual void ReleaseSocket(
const std::string& group_name,
scoped_ptr<StreamSocket> socket,
- int id) OVERRIDE {
+ int id) override {
base_.ReleaseSocket(group_name, socket.Pass(), id);
}
- virtual void FlushWithError(int error) OVERRIDE {
+ virtual void FlushWithError(int error) override {
base_.FlushWithError(error);
}
- virtual bool IsStalled() const OVERRIDE {
+ virtual bool IsStalled() const override {
return base_.IsStalled();
}
- virtual void CloseIdleSockets() OVERRIDE {
+ virtual void CloseIdleSockets() override {
base_.CloseIdleSockets();
}
- virtual int IdleSocketCount() const OVERRIDE {
+ virtual int IdleSocketCount() const override {
return base_.idle_socket_count();
}
virtual int IdleSocketCountInGroup(
- const std::string& group_name) const OVERRIDE {
+ const std::string& group_name) const override {
return base_.IdleSocketCountInGroup(group_name);
}
virtual LoadState GetLoadState(
const std::string& group_name,
- const ClientSocketHandle* handle) const OVERRIDE {
+ const ClientSocketHandle* handle) const override {
return base_.GetLoadState(group_name, handle);
}
- virtual void AddHigherLayeredPool(HigherLayeredPool* higher_pool) OVERRIDE {
+ virtual void AddHigherLayeredPool(HigherLayeredPool* higher_pool) override {
base_.AddHigherLayeredPool(higher_pool);
}
virtual void RemoveHigherLayeredPool(
- HigherLayeredPool* higher_pool) OVERRIDE {
+ HigherLayeredPool* higher_pool) override {
base_.RemoveHigherLayeredPool(higher_pool);
}
virtual base::DictionaryValue* GetInfoAsValue(
const std::string& name,
const std::string& type,
- bool include_nested_pools) const OVERRIDE {
+ bool include_nested_pools) const override {
return base_.GetInfoAsValue(name, type);
}
- virtual base::TimeDelta ConnectionTimeout() const OVERRIDE {
+ virtual base::TimeDelta ConnectionTimeout() const override {
return base_.ConnectionTimeout();
}
- virtual ClientSocketPoolHistograms* histograms() const OVERRIDE {
+ virtual ClientSocketPoolHistograms* histograms() const override {
return base_.histograms();
}
@@ -653,7 +653,7 @@
: have_result_(false), waiting_for_result_(false), result_(OK) {}
virtual ~TestConnectJobDelegate() {}
- virtual void OnConnectJobComplete(int result, ConnectJob* job) OVERRIDE {
+ virtual void OnConnectJobComplete(int result, ConnectJob* job) override {
result_ = result;
scoped_ptr<ConnectJob> owned_job(job);
scoped_ptr<StreamSocket> socket = owned_job->PassSocket();
diff --git a/net/socket/client_socket_pool_manager_impl.h b/net/socket/client_socket_pool_manager_impl.h
index 22afbfa..94fd55d 100644
--- a/net/socket/client_socket_pool_manager_impl.h
+++ b/net/socket/client_socket_pool_manager_impl.h
@@ -73,29 +73,29 @@
HttpNetworkSession::SocketPoolType pool_type);
virtual ~ClientSocketPoolManagerImpl();
- virtual void FlushSocketPoolsWithError(int error) OVERRIDE;
- virtual void CloseIdleSockets() OVERRIDE;
+ virtual void FlushSocketPoolsWithError(int error) override;
+ virtual void CloseIdleSockets() override;
- virtual TransportClientSocketPool* GetTransportSocketPool() OVERRIDE;
+ virtual TransportClientSocketPool* GetTransportSocketPool() override;
- virtual SSLClientSocketPool* GetSSLSocketPool() OVERRIDE;
+ virtual SSLClientSocketPool* GetSSLSocketPool() override;
virtual SOCKSClientSocketPool* GetSocketPoolForSOCKSProxy(
- const HostPortPair& socks_proxy) OVERRIDE;
+ const HostPortPair& socks_proxy) override;
virtual HttpProxyClientSocketPool* GetSocketPoolForHTTPProxy(
- const HostPortPair& http_proxy) OVERRIDE;
+ const HostPortPair& http_proxy) override;
virtual SSLClientSocketPool* GetSocketPoolForSSLWithProxy(
- const HostPortPair& proxy_server) OVERRIDE;
+ const HostPortPair& proxy_server) override;
// Creates a Value summary of the state of the socket pools. The caller is
// responsible for deleting the returned value.
- virtual base::Value* SocketPoolInfoToValue() const OVERRIDE;
+ virtual base::Value* SocketPoolInfoToValue() const override;
// CertDatabase::Observer methods:
- virtual void OnCertAdded(const X509Certificate* cert) OVERRIDE;
- virtual void OnCACertChanged(const X509Certificate* cert) OVERRIDE;
+ virtual void OnCertAdded(const X509Certificate* cert) override;
+ virtual void OnCACertChanged(const X509Certificate* cert) override;
private:
typedef internal::OwnedPoolMap<HostPortPair, TransportClientSocketPool*>
diff --git a/net/socket/mock_client_socket_pool_manager.h b/net/socket/mock_client_socket_pool_manager.h
index c2c3792..03930e3 100644
--- a/net/socket/mock_client_socket_pool_manager.h
+++ b/net/socket/mock_client_socket_pool_manager.h
@@ -27,17 +27,17 @@
SSLClientSocketPool* pool);
// ClientSocketPoolManager methods:
- virtual void FlushSocketPoolsWithError(int error) OVERRIDE;
- virtual void CloseIdleSockets() OVERRIDE;
- virtual TransportClientSocketPool* GetTransportSocketPool() OVERRIDE;
- virtual SSLClientSocketPool* GetSSLSocketPool() OVERRIDE;
+ virtual void FlushSocketPoolsWithError(int error) override;
+ virtual void CloseIdleSockets() override;
+ virtual TransportClientSocketPool* GetTransportSocketPool() override;
+ virtual SSLClientSocketPool* GetSSLSocketPool() override;
virtual SOCKSClientSocketPool* GetSocketPoolForSOCKSProxy(
- const HostPortPair& socks_proxy) OVERRIDE;
+ const HostPortPair& socks_proxy) override;
virtual HttpProxyClientSocketPool* GetSocketPoolForHTTPProxy(
- const HostPortPair& http_proxy) OVERRIDE;
+ const HostPortPair& http_proxy) override;
virtual SSLClientSocketPool* GetSocketPoolForSSLWithProxy(
- const HostPortPair& proxy_server) OVERRIDE;
- virtual base::Value* SocketPoolInfoToValue() const OVERRIDE;
+ const HostPortPair& proxy_server) override;
+ virtual base::Value* SocketPoolInfoToValue() const override;
private:
typedef internal::OwnedPoolMap<HostPortPair, TransportClientSocketPool*>
diff --git a/net/socket/next_proto.h b/net/socket/next_proto.h
index 08e6801..e715aca 100644
--- a/net/socket/next_proto.h
+++ b/net/socket/next_proto.h
@@ -14,8 +14,10 @@
// Next Protocol Negotiation (NPN), if successful, results in agreement on an
// application-level string that specifies the application level protocol to
// use over the TLS connection. NextProto enumerates the application level
-// protocols that we recognise. Do not change or reuse values, because they
-// are used to collect statistics on UMA.
+// protocols that we recognize. Do not change or reuse values, because they
+// are used to collect statistics on UMA. Also, values must be in [0,499),
+// because of the way TLS protocol negotiation extension information is added to
+// UMA histogram.
enum NextProto {
kProtoUnknown = 0,
kProtoHTTP11 = 1,
diff --git a/net/socket/socket_libevent.h b/net/socket/socket_libevent.h
index 5950951..a072738 100644
--- a/net/socket/socket_libevent.h
+++ b/net/socket/socket_libevent.h
@@ -81,8 +81,8 @@
private:
// base::MessageLoopForIO::Watcher methods.
- virtual void OnFileCanReadWithoutBlocking(int fd) OVERRIDE;
- virtual void OnFileCanWriteWithoutBlocking(int fd) OVERRIDE;
+ virtual void OnFileCanReadWithoutBlocking(int fd) override;
+ virtual void OnFileCanWriteWithoutBlocking(int fd) override;
int DoAccept(scoped_ptr<SocketLibevent>* socket);
void AcceptCompleted();
diff --git a/net/socket/socket_test_util.h b/net/socket/socket_test_util.h
index 50d28ec..1496aec 100644
--- a/net/socket/socket_test_util.h
+++ b/net/socket/socket_test_util.h
@@ -262,9 +262,9 @@
virtual void CompleteRead() {}
// SocketDataProvider implementation.
- virtual MockRead GetNextRead() OVERRIDE;
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE;
- virtual void Reset() OVERRIDE;
+ virtual MockRead GetNextRead() override;
+ virtual MockWriteResult OnWrite(const std::string& data) override;
+ virtual void Reset() override;
private:
MockRead* reads_;
@@ -292,9 +292,9 @@
void allow_unconsumed_reads(bool allow) { allow_unconsumed_reads_ = allow; }
// SocketDataProvider implementation.
- virtual MockRead GetNextRead() OVERRIDE;
+ virtual MockRead GetNextRead() override;
virtual MockWriteResult OnWrite(const std::string& data) = 0;
- virtual void Reset() OVERRIDE;
+ virtual void Reset() override;
protected:
// The next time there is a read from this socket, it will return |data|.
@@ -376,10 +376,10 @@
void ForceNextRead();
// StaticSocketDataProvider:
- virtual MockRead GetNextRead() OVERRIDE;
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE;
- virtual void Reset() OVERRIDE;
- virtual void CompleteRead() OVERRIDE;
+ virtual MockRead GetNextRead() override;
+ virtual MockWriteResult OnWrite(const std::string& data) override;
+ virtual void Reset() override;
+ virtual void CompleteRead() override;
private:
int write_delay_;
@@ -430,10 +430,10 @@
void EndLoop();
// StaticSocketDataProvider:
- virtual MockRead GetNextRead() OVERRIDE;
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE;
- virtual void Reset() OVERRIDE;
- virtual void CompleteRead() OVERRIDE;
+ virtual MockRead GetNextRead() override;
+ virtual MockWriteResult OnWrite(const std::string& data) override;
+ virtual void Reset() override;
+ virtual void CompleteRead() override;
private:
int sequence_number_;
@@ -560,14 +560,14 @@
// When the socket calls Read(), that calls GetNextRead(), and expects either
// ERR_IO_PENDING or data.
- virtual MockRead GetNextRead() OVERRIDE;
+ virtual MockRead GetNextRead() override;
// When the socket calls Write(), it always completes synchronously. OnWrite()
// checks to make sure the written data matches the expected data. The
// callback will not be invoked until its sequence number is reached.
- virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE;
- virtual void Reset() OVERRIDE;
- virtual void CompleteRead() OVERRIDE {}
+ virtual MockWriteResult OnWrite(const std::string& data) override;
+ virtual void Reset() override;
+ virtual void CompleteRead() override {}
private:
// Invoke the read and write callbacks, if the timing is appropriate.
@@ -654,17 +654,17 @@
DatagramSocket::BindType bind_type,
const RandIntCallback& rand_int_cb,
NetLog* net_log,
- const NetLog::Source& source) OVERRIDE;
+ const NetLog::Source& source) override;
virtual scoped_ptr<StreamSocket> CreateTransportClientSocket(
const AddressList& addresses,
NetLog* net_log,
- const NetLog::Source& source) OVERRIDE;
+ const NetLog::Source& source) override;
virtual scoped_ptr<SSLClientSocket> CreateSSLClientSocket(
scoped_ptr<ClientSocketHandle> transport_socket,
const HostPortPair& host_and_port,
const SSLConfig& ssl_config,
- const SSLClientSocketContext& context) OVERRIDE;
- virtual void ClearSSLSessionCache() OVERRIDE;
+ const SSLClientSocketContext& context) override;
+ virtual void ClearSSLSessionCache() override;
private:
SocketDataProviderArray<SocketDataProvider> mock_data_;
@@ -688,34 +688,34 @@
virtual int Write(IOBuffer* buf,
int buf_len,
const CompletionCallback& callback) = 0;
- virtual int SetReceiveBufferSize(int32 size) OVERRIDE;
- virtual int SetSendBufferSize(int32 size) OVERRIDE;
+ virtual int SetReceiveBufferSize(int32 size) override;
+ virtual int SetSendBufferSize(int32 size) override;
// StreamSocket implementation.
virtual int Connect(const CompletionCallback& callback) = 0;
- virtual void Disconnect() OVERRIDE;
- virtual bool IsConnected() const OVERRIDE;
- virtual bool IsConnectedAndIdle() const OVERRIDE;
- virtual int GetPeerAddress(IPEndPoint* address) const OVERRIDE;
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE;
- virtual const BoundNetLog& NetLog() const OVERRIDE;
- virtual void SetSubresourceSpeculation() OVERRIDE {}
- virtual void SetOmniboxSpeculation() OVERRIDE {}
+ virtual void Disconnect() override;
+ virtual bool IsConnected() const override;
+ virtual bool IsConnectedAndIdle() const override;
+ virtual int GetPeerAddress(IPEndPoint* address) const override;
+ virtual int GetLocalAddress(IPEndPoint* address) const override;
+ virtual const BoundNetLog& NetLog() const override;
+ virtual void SetSubresourceSpeculation() override {}
+ virtual void SetOmniboxSpeculation() override {}
// SSLClientSocket implementation.
- virtual std::string GetSessionCacheKey() const OVERRIDE;
- virtual bool InSessionCache() const OVERRIDE;
- virtual void SetHandshakeCompletionCallback(const base::Closure& cb) OVERRIDE;
+ virtual std::string GetSessionCacheKey() const override;
+ virtual bool InSessionCache() const override;
+ virtual void SetHandshakeCompletionCallback(const base::Closure& cb) override;
virtual void GetSSLCertRequestInfo(SSLCertRequestInfo* cert_request_info)
- OVERRIDE;
+ override;
virtual int ExportKeyingMaterial(const base::StringPiece& label,
bool has_context,
const base::StringPiece& context,
unsigned char* out,
- unsigned int outlen) OVERRIDE;
- virtual int GetTLSUniqueChannelBinding(std::string* out) OVERRIDE;
- virtual NextProtoStatus GetNextProto(std::string* proto) OVERRIDE;
- virtual ChannelIDService* GetChannelIDService() const OVERRIDE;
+ unsigned int outlen) override;
+ virtual int GetTLSUniqueChannelBinding(std::string* out) override;
+ virtual NextProtoStatus GetNextProto(std::string* proto) override;
+ virtual ChannelIDService* GetChannelIDService() const override;
protected:
virtual ~MockClientSocket();
@@ -724,7 +724,7 @@
// SSLClientSocket implementation.
virtual scoped_refptr<X509Certificate> GetUnverifiedServerCertificateChain()
- const OVERRIDE;
+ const override;
// True if Connect completed successfully and Disconnect hasn't been called.
bool connected_;
@@ -752,25 +752,25 @@
// Socket implementation.
virtual int Read(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int Write(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
// StreamSocket implementation.
- virtual int Connect(const CompletionCallback& callback) OVERRIDE;
- virtual void Disconnect() OVERRIDE;
- virtual bool IsConnected() const OVERRIDE;
- virtual bool IsConnectedAndIdle() const OVERRIDE;
- virtual int GetPeerAddress(IPEndPoint* address) const OVERRIDE;
- virtual bool WasEverUsed() const OVERRIDE;
- virtual bool UsingTCPFastOpen() const OVERRIDE;
- virtual bool WasNpnNegotiated() const OVERRIDE;
- virtual bool GetSSLInfo(SSLInfo* ssl_info) OVERRIDE;
+ virtual int Connect(const CompletionCallback& callback) override;
+ virtual void Disconnect() override;
+ virtual bool IsConnected() const override;
+ virtual bool IsConnectedAndIdle() const override;
+ virtual int GetPeerAddress(IPEndPoint* address) const override;
+ virtual bool WasEverUsed() const override;
+ virtual bool UsingTCPFastOpen() const override;
+ virtual bool WasNpnNegotiated() const override;
+ virtual bool GetSSLInfo(SSLInfo* ssl_info) override;
// AsyncSocket:
- virtual void OnReadComplete(const MockRead& data) OVERRIDE;
- virtual void OnConnectComplete(const MockConnect& data) OVERRIDE;
+ virtual void OnReadComplete(const MockRead& data) override;
+ virtual void OnConnectComplete(const MockConnect& data) override;
private:
int CompleteRead();
@@ -854,33 +854,33 @@
virtual ~DeterministicMockUDPClientSocket();
// DeterministicSocketData::Delegate:
- virtual bool WritePending() const OVERRIDE;
- virtual bool ReadPending() const OVERRIDE;
- virtual void CompleteWrite() OVERRIDE;
- virtual int CompleteRead() OVERRIDE;
+ virtual bool WritePending() const override;
+ virtual bool ReadPending() const override;
+ virtual void CompleteWrite() override;
+ virtual int CompleteRead() override;
// Socket implementation.
virtual int Read(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int Write(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
- virtual int SetReceiveBufferSize(int32 size) OVERRIDE;
- virtual int SetSendBufferSize(int32 size) OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual int SetReceiveBufferSize(int32 size) override;
+ virtual int SetSendBufferSize(int32 size) override;
// DatagramSocket implementation.
- virtual void Close() OVERRIDE;
- virtual int GetPeerAddress(IPEndPoint* address) const OVERRIDE;
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE;
- virtual const BoundNetLog& NetLog() const OVERRIDE;
+ virtual void Close() override;
+ virtual int GetPeerAddress(IPEndPoint* address) const override;
+ virtual int GetLocalAddress(IPEndPoint* address) const override;
+ virtual const BoundNetLog& NetLog() const override;
// DatagramClientSocket implementation.
- virtual int Connect(const IPEndPoint& address) OVERRIDE;
+ virtual int Connect(const IPEndPoint& address) override;
// AsyncSocket implementation.
- virtual void OnReadComplete(const MockRead& data) OVERRIDE;
- virtual void OnConnectComplete(const MockConnect& data) OVERRIDE;
+ virtual void OnReadComplete(const MockRead& data) override;
+ virtual void OnConnectComplete(const MockConnect& data) override;
void set_source_port(int port) { source_port_ = port; }
@@ -905,32 +905,32 @@
virtual ~DeterministicMockTCPClientSocket();
// DeterministicSocketData::Delegate:
- virtual bool WritePending() const OVERRIDE;
- virtual bool ReadPending() const OVERRIDE;
- virtual void CompleteWrite() OVERRIDE;
- virtual int CompleteRead() OVERRIDE;
+ virtual bool WritePending() const override;
+ virtual bool ReadPending() const override;
+ virtual void CompleteWrite() override;
+ virtual int CompleteRead() override;
// Socket:
virtual int Write(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int Read(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
// StreamSocket:
- virtual int Connect(const CompletionCallback& callback) OVERRIDE;
- virtual void Disconnect() OVERRIDE;
- virtual bool IsConnected() const OVERRIDE;
- virtual bool IsConnectedAndIdle() const OVERRIDE;
- virtual bool WasEverUsed() const OVERRIDE;
- virtual bool UsingTCPFastOpen() const OVERRIDE;
- virtual bool WasNpnNegotiated() const OVERRIDE;
- virtual bool GetSSLInfo(SSLInfo* ssl_info) OVERRIDE;
+ virtual int Connect(const CompletionCallback& callback) override;
+ virtual void Disconnect() override;
+ virtual bool IsConnected() const override;
+ virtual bool IsConnectedAndIdle() const override;
+ virtual bool WasEverUsed() const override;
+ virtual bool UsingTCPFastOpen() const override;
+ virtual bool WasNpnNegotiated() const override;
+ virtual bool GetSSLInfo(SSLInfo* ssl_info) override;
// AsyncSocket:
- virtual void OnReadComplete(const MockRead& data) OVERRIDE;
- virtual void OnConnectComplete(const MockConnect& data) OVERRIDE;
+ virtual void OnReadComplete(const MockRead& data) override;
+ virtual void OnConnectComplete(const MockConnect& data) override;
private:
DeterministicSocketHelper helper_;
@@ -949,39 +949,39 @@
// Socket implementation.
virtual int Read(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int Write(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
// StreamSocket implementation.
- virtual int Connect(const CompletionCallback& callback) OVERRIDE;
- virtual void Disconnect() OVERRIDE;
- virtual bool IsConnected() const OVERRIDE;
- virtual bool WasEverUsed() const OVERRIDE;
- virtual bool UsingTCPFastOpen() const OVERRIDE;
- virtual int GetPeerAddress(IPEndPoint* address) const OVERRIDE;
- virtual bool WasNpnNegotiated() const OVERRIDE;
- virtual bool GetSSLInfo(SSLInfo* ssl_info) OVERRIDE;
+ virtual int Connect(const CompletionCallback& callback) override;
+ virtual void Disconnect() override;
+ virtual bool IsConnected() const override;
+ virtual bool WasEverUsed() const override;
+ virtual bool UsingTCPFastOpen() const override;
+ virtual int GetPeerAddress(IPEndPoint* address) const override;
+ virtual bool WasNpnNegotiated() const override;
+ virtual bool GetSSLInfo(SSLInfo* ssl_info) override;
// SSLClientSocket implementation.
- virtual std::string GetSessionCacheKey() const OVERRIDE;
- virtual bool InSessionCache() const OVERRIDE;
- virtual void SetHandshakeCompletionCallback(const base::Closure& cb) OVERRIDE;
+ virtual std::string GetSessionCacheKey() const override;
+ virtual bool InSessionCache() const override;
+ virtual void SetHandshakeCompletionCallback(const base::Closure& cb) override;
virtual void GetSSLCertRequestInfo(SSLCertRequestInfo* cert_request_info)
- OVERRIDE;
- virtual NextProtoStatus GetNextProto(std::string* proto) OVERRIDE;
- virtual bool set_was_npn_negotiated(bool negotiated) OVERRIDE;
- virtual void set_protocol_negotiated(NextProto protocol_negotiated) OVERRIDE;
- virtual NextProto GetNegotiatedProtocol() const OVERRIDE;
+ override;
+ virtual NextProtoStatus GetNextProto(std::string* proto) override;
+ virtual bool set_was_npn_negotiated(bool negotiated) override;
+ virtual void set_protocol_negotiated(NextProto protocol_negotiated) override;
+ virtual NextProto GetNegotiatedProtocol() const override;
// This MockSocket does not implement the manual async IO feature.
- virtual void OnReadComplete(const MockRead& data) OVERRIDE;
- virtual void OnConnectComplete(const MockConnect& data) OVERRIDE;
+ virtual void OnReadComplete(const MockRead& data) override;
+ virtual void OnConnectComplete(const MockConnect& data) override;
- virtual bool WasChannelIDSent() const OVERRIDE;
- virtual void set_channel_id_sent(bool channel_id_sent) OVERRIDE;
- virtual ChannelIDService* GetChannelIDService() const OVERRIDE;
+ virtual bool WasChannelIDSent() const override;
+ virtual void set_channel_id_sent(bool channel_id_sent) override;
+ virtual ChannelIDService* GetChannelIDService() const override;
bool reached_connect() const { return reached_connect_; }
@@ -1033,25 +1033,25 @@
// Socket implementation.
virtual int Read(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int Write(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
- virtual int SetReceiveBufferSize(int32 size) OVERRIDE;
- virtual int SetSendBufferSize(int32 size) OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual int SetReceiveBufferSize(int32 size) override;
+ virtual int SetSendBufferSize(int32 size) override;
// DatagramSocket implementation.
- virtual void Close() OVERRIDE;
- virtual int GetPeerAddress(IPEndPoint* address) const OVERRIDE;
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE;
- virtual const BoundNetLog& NetLog() const OVERRIDE;
+ virtual void Close() override;
+ virtual int GetPeerAddress(IPEndPoint* address) const override;
+ virtual int GetLocalAddress(IPEndPoint* address) const override;
+ virtual const BoundNetLog& NetLog() const override;
// DatagramClientSocket implementation.
- virtual int Connect(const IPEndPoint& address) OVERRIDE;
+ virtual int Connect(const IPEndPoint& address) override;
// AsyncSocket implementation.
- virtual void OnReadComplete(const MockRead& data) OVERRIDE;
- virtual void OnConnectComplete(const MockConnect& data) OVERRIDE;
+ virtual void OnReadComplete(const MockRead& data) override;
+ virtual void OnConnectComplete(const MockConnect& data) override;
void set_source_port(int port) { source_port_ = port;}
@@ -1221,13 +1221,13 @@
RequestPriority priority,
ClientSocketHandle* handle,
const CompletionCallback& callback,
- const BoundNetLog& net_log) OVERRIDE;
+ const BoundNetLog& net_log) override;
virtual void CancelRequest(const std::string& group_name,
- ClientSocketHandle* handle) OVERRIDE;
+ ClientSocketHandle* handle) override;
virtual void ReleaseSocket(const std::string& group_name,
scoped_ptr<StreamSocket> socket,
- int id) OVERRIDE;
+ int id) override;
private:
ClientSocketFactory* client_socket_factory_;
@@ -1267,17 +1267,17 @@
DatagramSocket::BindType bind_type,
const RandIntCallback& rand_int_cb,
NetLog* net_log,
- const NetLog::Source& source) OVERRIDE;
+ const NetLog::Source& source) override;
virtual scoped_ptr<StreamSocket> CreateTransportClientSocket(
const AddressList& addresses,
NetLog* net_log,
- const NetLog::Source& source) OVERRIDE;
+ const NetLog::Source& source) override;
virtual scoped_ptr<SSLClientSocket> CreateSSLClientSocket(
scoped_ptr<ClientSocketHandle> transport_socket,
const HostPortPair& host_and_port,
const SSLConfig& ssl_config,
- const SSLClientSocketContext& context) OVERRIDE;
- virtual void ClearSSLSessionCache() OVERRIDE;
+ const SSLClientSocketContext& context) override;
+ virtual void ClearSSLSessionCache() override;
private:
SocketDataProviderArray<DeterministicSocketData> mock_data_;
@@ -1306,13 +1306,13 @@
RequestPriority priority,
ClientSocketHandle* handle,
const CompletionCallback& callback,
- const BoundNetLog& net_log) OVERRIDE;
+ const BoundNetLog& net_log) override;
virtual void CancelRequest(const std::string& group_name,
- ClientSocketHandle* handle) OVERRIDE;
+ ClientSocketHandle* handle) override;
virtual void ReleaseSocket(const std::string& group_name,
scoped_ptr<StreamSocket> socket,
- int id) OVERRIDE;
+ int id) override;
private:
TransportClientSocketPool* const transport_pool_;
diff --git a/net/socket/socks5_client_socket.h b/net/socket/socks5_client_socket.h
index 8da0b4d..5d4e060 100644
--- a/net/socket/socks5_client_socket.h
+++ b/net/socket/socks5_client_socket.h
@@ -43,32 +43,32 @@
// StreamSocket implementation.
// Does the SOCKS handshake and completes the protocol.
- virtual int Connect(const CompletionCallback& callback) OVERRIDE;
- virtual void Disconnect() OVERRIDE;
- virtual bool IsConnected() const OVERRIDE;
- virtual bool IsConnectedAndIdle() const OVERRIDE;
- virtual const BoundNetLog& NetLog() const OVERRIDE;
- virtual void SetSubresourceSpeculation() OVERRIDE;
- virtual void SetOmniboxSpeculation() OVERRIDE;
- virtual bool WasEverUsed() const OVERRIDE;
- virtual bool UsingTCPFastOpen() const OVERRIDE;
- virtual bool WasNpnNegotiated() const OVERRIDE;
- virtual NextProto GetNegotiatedProtocol() const OVERRIDE;
- virtual bool GetSSLInfo(SSLInfo* ssl_info) OVERRIDE;
+ virtual int Connect(const CompletionCallback& callback) override;
+ virtual void Disconnect() override;
+ virtual bool IsConnected() const override;
+ virtual bool IsConnectedAndIdle() const override;
+ virtual const BoundNetLog& NetLog() const override;
+ virtual void SetSubresourceSpeculation() override;
+ virtual void SetOmniboxSpeculation() override;
+ virtual bool WasEverUsed() const override;
+ virtual bool UsingTCPFastOpen() const override;
+ virtual bool WasNpnNegotiated() const override;
+ virtual NextProto GetNegotiatedProtocol() const override;
+ virtual bool GetSSLInfo(SSLInfo* ssl_info) override;
// Socket implementation.
virtual int Read(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int Write(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
- virtual int SetReceiveBufferSize(int32 size) OVERRIDE;
- virtual int SetSendBufferSize(int32 size) OVERRIDE;
+ virtual int SetReceiveBufferSize(int32 size) override;
+ virtual int SetSendBufferSize(int32 size) override;
- virtual int GetPeerAddress(IPEndPoint* address) const OVERRIDE;
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE;
+ virtual int GetPeerAddress(IPEndPoint* address) const override;
+ virtual int GetLocalAddress(IPEndPoint* address) const override;
private:
enum State {
diff --git a/net/socket/socks_client_socket.h b/net/socket/socks_client_socket.h
index 26da332..d480de4 100644
--- a/net/socket/socks_client_socket.h
+++ b/net/socket/socks_client_socket.h
@@ -40,32 +40,32 @@
// StreamSocket implementation.
// Does the SOCKS handshake and completes the protocol.
- virtual int Connect(const CompletionCallback& callback) OVERRIDE;
- virtual void Disconnect() OVERRIDE;
- virtual bool IsConnected() const OVERRIDE;
- virtual bool IsConnectedAndIdle() const OVERRIDE;
- virtual const BoundNetLog& NetLog() const OVERRIDE;
- virtual void SetSubresourceSpeculation() OVERRIDE;
- virtual void SetOmniboxSpeculation() OVERRIDE;
- virtual bool WasEverUsed() const OVERRIDE;
- virtual bool UsingTCPFastOpen() const OVERRIDE;
- virtual bool WasNpnNegotiated() const OVERRIDE;
- virtual NextProto GetNegotiatedProtocol() const OVERRIDE;
- virtual bool GetSSLInfo(SSLInfo* ssl_info) OVERRIDE;
+ virtual int Connect(const CompletionCallback& callback) override;
+ virtual void Disconnect() override;
+ virtual bool IsConnected() const override;
+ virtual bool IsConnectedAndIdle() const override;
+ virtual const BoundNetLog& NetLog() const override;
+ virtual void SetSubresourceSpeculation() override;
+ virtual void SetOmniboxSpeculation() override;
+ virtual bool WasEverUsed() const override;
+ virtual bool UsingTCPFastOpen() const override;
+ virtual bool WasNpnNegotiated() const override;
+ virtual NextProto GetNegotiatedProtocol() const override;
+ virtual bool GetSSLInfo(SSLInfo* ssl_info) override;
// Socket implementation.
virtual int Read(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int Write(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
- virtual int SetReceiveBufferSize(int32 size) OVERRIDE;
- virtual int SetSendBufferSize(int32 size) OVERRIDE;
+ virtual int SetReceiveBufferSize(int32 size) override;
+ virtual int SetSendBufferSize(int32 size) override;
- virtual int GetPeerAddress(IPEndPoint* address) const OVERRIDE;
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE;
+ virtual int GetPeerAddress(IPEndPoint* address) const override;
+ virtual int GetLocalAddress(IPEndPoint* address) const override;
private:
FRIEND_TEST_ALL_PREFIXES(SOCKSClientSocketTest, CompleteHandshake);
diff --git a/net/socket/socks_client_socket_pool.h b/net/socket/socks_client_socket_pool.h
index c6d5c8d..d324f0a 100644
--- a/net/socket/socks_client_socket_pool.h
+++ b/net/socket/socks_client_socket_pool.h
@@ -66,7 +66,7 @@
virtual ~SOCKSConnectJob();
// ConnectJob methods.
- virtual LoadState GetLoadState() const OVERRIDE;
+ virtual LoadState GetLoadState() const override;
private:
enum State {
@@ -90,7 +90,7 @@
// Begins the transport connection and the SOCKS handshake. Returns OK on
// success and ERR_IO_PENDING if it cannot immediately service the request.
// Otherwise, it returns a net error code.
- virtual int ConnectInternal() OVERRIDE;
+ virtual int ConnectInternal() override;
scoped_refptr<SOCKSSocketParams> socks_params_;
TransportClientSocketPool* const transport_pool_;
@@ -125,51 +125,51 @@
RequestPriority priority,
ClientSocketHandle* handle,
const CompletionCallback& callback,
- const BoundNetLog& net_log) OVERRIDE;
+ const BoundNetLog& net_log) override;
virtual void RequestSockets(const std::string& group_name,
const void* params,
int num_sockets,
- const BoundNetLog& net_log) OVERRIDE;
+ const BoundNetLog& net_log) override;
virtual void CancelRequest(const std::string& group_name,
- ClientSocketHandle* handle) OVERRIDE;
+ ClientSocketHandle* handle) override;
virtual void ReleaseSocket(const std::string& group_name,
scoped_ptr<StreamSocket> socket,
- int id) OVERRIDE;
+ int id) override;
- virtual void FlushWithError(int error) OVERRIDE;
+ virtual void FlushWithError(int error) override;
- virtual void CloseIdleSockets() OVERRIDE;
+ virtual void CloseIdleSockets() override;
- virtual int IdleSocketCount() const OVERRIDE;
+ virtual int IdleSocketCount() const override;
virtual int IdleSocketCountInGroup(
- const std::string& group_name) const OVERRIDE;
+ const std::string& group_name) const override;
virtual LoadState GetLoadState(
const std::string& group_name,
- const ClientSocketHandle* handle) const OVERRIDE;
+ const ClientSocketHandle* handle) const override;
virtual base::DictionaryValue* GetInfoAsValue(
const std::string& name,
const std::string& type,
- bool include_nested_pools) const OVERRIDE;
+ bool include_nested_pools) const override;
- virtual base::TimeDelta ConnectionTimeout() const OVERRIDE;
+ virtual base::TimeDelta ConnectionTimeout() const override;
- virtual ClientSocketPoolHistograms* histograms() const OVERRIDE;
+ virtual ClientSocketPoolHistograms* histograms() const override;
// LowerLayeredPool implementation.
- virtual bool IsStalled() const OVERRIDE;
+ virtual bool IsStalled() const override;
- virtual void AddHigherLayeredPool(HigherLayeredPool* higher_pool) OVERRIDE;
+ virtual void AddHigherLayeredPool(HigherLayeredPool* higher_pool) override;
- virtual void RemoveHigherLayeredPool(HigherLayeredPool* higher_pool) OVERRIDE;
+ virtual void RemoveHigherLayeredPool(HigherLayeredPool* higher_pool) override;
// HigherLayeredPool implementation.
- virtual bool CloseOneIdleConnection() OVERRIDE;
+ virtual bool CloseOneIdleConnection() override;
private:
typedef ClientSocketPoolBase<SOCKSSocketParams> PoolBase;
@@ -189,9 +189,9 @@
virtual scoped_ptr<ConnectJob> NewConnectJob(
const std::string& group_name,
const PoolBase::Request& request,
- ConnectJob::Delegate* delegate) const OVERRIDE;
+ ConnectJob::Delegate* delegate) const override;
- virtual base::TimeDelta ConnectionTimeout() const OVERRIDE;
+ virtual base::TimeDelta ConnectionTimeout() const override;
private:
TransportClientSocketPool* const transport_pool_;
diff --git a/net/socket/socks_client_socket_unittest.cc b/net/socket/socks_client_socket_unittest.cc
index c8032e6..e3dc359 100644
--- a/net/socket/socks_client_socket_unittest.cc
+++ b/net/socket/socks_client_socket_unittest.cc
@@ -101,7 +101,7 @@
AddressList* addresses,
const CompletionCallback& callback,
RequestHandle* out_req,
- const BoundNetLog& net_log) OVERRIDE {
+ const BoundNetLog& net_log) override {
DCHECK(addresses);
DCHECK_EQ(false, callback.is_null());
EXPECT_FALSE(HasOutstandingRequest());
@@ -112,12 +112,12 @@
virtual int ResolveFromCache(const RequestInfo& info,
AddressList* addresses,
- const BoundNetLog& net_log) OVERRIDE {
+ const BoundNetLog& net_log) override {
NOTIMPLEMENTED();
return ERR_UNEXPECTED;
}
- virtual void CancelRequest(RequestHandle req) OVERRIDE {
+ virtual void CancelRequest(RequestHandle req) override {
EXPECT_TRUE(HasOutstandingRequest());
EXPECT_EQ(outstanding_request_, req);
outstanding_request_ = NULL;
diff --git a/net/socket/ssl_client_socket.cc b/net/socket/ssl_client_socket.cc
index 4aacbc8..da2d6ba 100644
--- a/net/socket/ssl_client_socket.cc
+++ b/net/socket/ssl_client_socket.cc
@@ -5,6 +5,7 @@
#include "net/socket/ssl_client_socket.h"
#include "base/metrics/histogram.h"
+#include "base/metrics/sparse_histogram.h"
#include "base/strings/string_util.h"
#include "crypto/ec_private_key.h"
#include "net/base/host_port_pair.h"
@@ -19,7 +20,8 @@
protocol_negotiated_(kProtoUnknown),
channel_id_sent_(false),
signed_cert_timestamps_received_(false),
- stapled_ocsp_response_received_(false) {
+ stapled_ocsp_response_received_(false),
+ negotiation_extension_(kExtensionUnknown) {
}
// static
@@ -124,6 +126,11 @@
protocol_negotiated_ = protocol_negotiated;
}
+void SSLClientSocket::set_negotiation_extension(
+ SSLNegotiationExtension negotiation_extension) {
+ negotiation_extension_ = negotiation_extension;
+}
+
bool SSLClientSocket::WasChannelIDSent() const {
return channel_id_sent_;
}
@@ -232,4 +239,30 @@
return wire_protos;
}
+void SSLClientSocket::RecordNegotiationExtension() {
+ if (negotiation_extension_ == kExtensionUnknown)
+ return;
+ std::string proto;
+ SSLClientSocket::NextProtoStatus status = GetNextProto(&proto);
+ if (status == kNextProtoUnsupported)
+ return;
+ // Convert protocol into numerical value for histogram.
+ NextProto protocol_negotiated = SSLClientSocket::NextProtoFromString(proto);
+ base::HistogramBase::Sample sample =
+ static_cast<base::HistogramBase::Sample>(protocol_negotiated);
+ // In addition to the protocol negotiated, we want to record which TLS
+ // extension was used, and in case of NPN, whether there was overlap between
+ // server and client list of supported protocols.
+ if (negotiation_extension_ == kExtensionNPN) {
+ if (status == kNextProtoNoOverlap) {
+ sample += 1000;
+ } else {
+ sample += 500;
+ }
+ } else {
+ DCHECK_EQ(kExtensionALPN, negotiation_extension_);
+ }
+ UMA_HISTOGRAM_SPARSE_SLOWLY("Net.SSLProtocolNegotiation", sample);
+}
+
} // namespace net
diff --git a/net/socket/ssl_client_socket.h b/net/socket/ssl_client_socket.h
index 0e32ed6..8f40f84 100644
--- a/net/socket/ssl_client_socket.h
+++ b/net/socket/ssl_client_socket.h
@@ -79,9 +79,16 @@
// the first protocol in our list.
};
+ // TLS extension used to negotiate protocol.
+ enum SSLNegotiationExtension {
+ kExtensionUnknown,
+ kExtensionALPN,
+ kExtensionNPN,
+ };
+
// StreamSocket:
- virtual bool WasNpnNegotiated() const OVERRIDE;
- virtual NextProto GetNegotiatedProtocol() const OVERRIDE;
+ virtual bool WasNpnNegotiated() const override;
+ virtual NextProto GetNegotiatedProtocol() const override;
// Computes a unique key string for the SSL session cache.
virtual std::string GetSessionCacheKey() const = 0;
@@ -150,6 +157,8 @@
virtual void set_protocol_negotiated(NextProto protocol_negotiated);
+ void set_negotiation_extension(SSLNegotiationExtension negotiation_extension);
+
// Returns the ChannelIDService used by this socket, or NULL if
// channel ids are not supported.
virtual ChannelIDService* GetChannelIDService() const = 0;
@@ -162,6 +171,10 @@
// Public for ssl_client_socket_openssl_unittest.cc.
virtual bool WasChannelIDSent() const;
+ // Record which TLS extension was used to negotiate protocol and protocol
+ // chosen in a UMA histogram.
+ void RecordNegotiationExtension();
+
protected:
virtual void set_channel_id_sent(bool channel_id_sent);
@@ -219,6 +232,8 @@
bool signed_cert_timestamps_received_;
// True if a stapled OCSP response was received.
bool stapled_ocsp_response_received_;
+ // Protocol negotiation extension used.
+ SSLNegotiationExtension negotiation_extension_;
};
} // namespace net
diff --git a/net/socket/ssl_client_socket_nss.cc b/net/socket/ssl_client_socket_nss.cc
index c5869fc..92660d8 100644
--- a/net/socket/ssl_client_socket_nss.cc
+++ b/net/socket/ssl_client_socket_nss.cc
@@ -71,6 +71,7 @@
#include "base/logging.h"
#include "base/memory/singleton.h"
#include "base/metrics/histogram.h"
+#include "base/profiler/scoped_profile.h"
#include "base/single_thread_task_runner.h"
#include "base/stl_util.h"
#include "base/strings/string_number_conversions.h"
@@ -407,6 +408,7 @@
void Reset() {
next_proto_status = SSLClientSocket::kNextProtoUnsupported;
next_proto.clear();
+ negotiation_extension_ = SSLClientSocket::kExtensionUnknown;
channel_id_sent = false;
server_cert_chain.Reset(NULL);
server_cert = NULL;
@@ -421,6 +423,9 @@
SSLClientSocket::NextProtoStatus next_proto_status;
std::string next_proto;
+ // TLS extension used for protocol negotiation.
+ SSLClientSocket::SSLNegotiationExtension negotiation_extension_;
+
// True if a channel ID was sent.
bool channel_id_sent;
@@ -759,6 +764,8 @@
// UpdateNextProto gets any application-layer protocol that may have been
// negotiated by the TLS connection.
void UpdateNextProto();
+ // Record TLS extension used for protocol negotiation (NPN or ALPN).
+ void UpdateExtensionUsed();
////////////////////////////////////////////////////////////////////////////
// Methods that are ONLY called on the network task runner:
@@ -1640,6 +1647,7 @@
UpdateStapledOCSPResponse();
UpdateConnectionStatus();
UpdateNextProto();
+ UpdateExtensionUsed();
// Update the network task runners view of the handshake state whenever
// a handshake has completed.
@@ -2213,6 +2221,10 @@
PostOrRunCallback(
FROM_HERE,
base::Bind(&Core::DidNSSRead, this, rv));
+ // TODO(vadimt): Remove ScopedProfile below once crbug.com/418183 is fixed.
+ tracked_objects::ScopedProfile tracking_profile(
+ FROM_HERE_WITH_EXPLICIT_FUNCTION(
+ "SSLClientSocketNSS::Core::DoReadCallback"));
PostOrRunCallback(
FROM_HERE,
base::Bind(base::ResetAndReturn(&user_read_callback_), rv));
@@ -2491,6 +2503,23 @@
}
}
+void SSLClientSocketNSS::Core::UpdateExtensionUsed() {
+ PRBool negotiated_extension;
+ SECStatus rv = SSL_HandshakeNegotiatedExtension(nss_fd_,
+ ssl_app_layer_protocol_xtn,
+ &negotiated_extension);
+ if (rv == SECSuccess && negotiated_extension) {
+ nss_handshake_state_.negotiation_extension_ = kExtensionALPN;
+ } else {
+ rv = SSL_HandshakeNegotiatedExtension(nss_fd_,
+ ssl_next_proto_nego_xtn,
+ &negotiated_extension);
+ if (rv == SECSuccess && negotiated_extension) {
+ nss_handshake_state_.negotiation_extension_ = kExtensionNPN;
+ }
+ }
+}
+
void SSLClientSocketNSS::Core::RecordChannelIDSupportOnNSSTaskRunner() {
DCHECK(OnNSSTaskRunner());
if (nss_handshake_state_.resumed_handshake)
@@ -2623,6 +2652,11 @@
}
void SSLClientSocketNSS::Core::BufferSendComplete(int result) {
+ // TODO(vadimt): Remove ScopedProfile below once crbug.com/418183 is fixed.
+ tracked_objects::ScopedProfile tracking_profile(
+ FROM_HERE_WITH_EXPLICIT_FUNCTION(
+ "418183 DidCompleteReadWrite => Core::BufferSendComplete"));
+
if (!OnNSSTaskRunner()) {
if (detached_)
return;
@@ -2666,6 +2700,11 @@
void SSLClientSocketNSS::Core::BufferRecvComplete(
IOBuffer* read_buffer,
int result) {
+ // TODO(vadimt): Remove ScopedProfile below once crbug.com/418183 is fixed.
+ tracked_objects::ScopedProfile tracking_profile(
+ FROM_HERE_WITH_EXPLICIT_FUNCTION(
+ "418183 DidCompleteReadWrite => SSLClientSocketNSS::Core::..."));
+
DCHECK(read_buffer);
if (!OnNSSTaskRunner()) {
@@ -3314,6 +3353,11 @@
EnterFunction(result);
if (result == OK) {
+ if (ssl_config_.version_fallback &&
+ ssl_config_.version_max < ssl_config_.version_fallback_min) {
+ return ERR_SSL_FALLBACK_BEYOND_MINIMUM_VERSION;
+ }
+
// SSL handshake is completed. Let's verify the certificate.
GotoState(STATE_VERIFY_CERT);
// Done!
@@ -3323,6 +3367,7 @@
!core_->state().sct_list_from_tls_extension.empty());
set_stapled_ocsp_response_received(
!core_->state().stapled_ocsp_response.empty());
+ set_negotiation_extension(core_->state().negotiation_extension_);
LeaveFunction(result);
return result;
diff --git a/net/socket/ssl_client_socket_nss.h b/net/socket/ssl_client_socket_nss.h
index a2dc610..ccdbb81 100644
--- a/net/socket/ssl_client_socket_nss.h
+++ b/net/socket/ssl_client_socket_nss.h
@@ -68,51 +68,51 @@
virtual ~SSLClientSocketNSS();
// SSLClientSocket implementation.
- virtual std::string GetSessionCacheKey() const OVERRIDE;
- virtual bool InSessionCache() const OVERRIDE;
+ virtual std::string GetSessionCacheKey() const override;
+ virtual bool InSessionCache() const override;
virtual void SetHandshakeCompletionCallback(
- const base::Closure& callback) OVERRIDE;
+ const base::Closure& callback) override;
virtual void GetSSLCertRequestInfo(
- SSLCertRequestInfo* cert_request_info) OVERRIDE;
- virtual NextProtoStatus GetNextProto(std::string* proto) OVERRIDE;
+ SSLCertRequestInfo* cert_request_info) override;
+ virtual NextProtoStatus GetNextProto(std::string* proto) override;
// SSLSocket implementation.
virtual int ExportKeyingMaterial(const base::StringPiece& label,
bool has_context,
const base::StringPiece& context,
unsigned char* out,
- unsigned int outlen) OVERRIDE;
- virtual int GetTLSUniqueChannelBinding(std::string* out) OVERRIDE;
+ unsigned int outlen) override;
+ virtual int GetTLSUniqueChannelBinding(std::string* out) override;
// StreamSocket implementation.
- virtual int Connect(const CompletionCallback& callback) OVERRIDE;
- virtual void Disconnect() OVERRIDE;
- virtual bool IsConnected() const OVERRIDE;
- virtual bool IsConnectedAndIdle() const OVERRIDE;
- virtual int GetPeerAddress(IPEndPoint* address) const OVERRIDE;
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE;
- virtual const BoundNetLog& NetLog() const OVERRIDE;
- virtual void SetSubresourceSpeculation() OVERRIDE;
- virtual void SetOmniboxSpeculation() OVERRIDE;
- virtual bool WasEverUsed() const OVERRIDE;
- virtual bool UsingTCPFastOpen() const OVERRIDE;
- virtual bool GetSSLInfo(SSLInfo* ssl_info) OVERRIDE;
+ virtual int Connect(const CompletionCallback& callback) override;
+ virtual void Disconnect() override;
+ virtual bool IsConnected() const override;
+ virtual bool IsConnectedAndIdle() const override;
+ virtual int GetPeerAddress(IPEndPoint* address) const override;
+ virtual int GetLocalAddress(IPEndPoint* address) const override;
+ virtual const BoundNetLog& NetLog() const override;
+ virtual void SetSubresourceSpeculation() override;
+ virtual void SetOmniboxSpeculation() override;
+ virtual bool WasEverUsed() const override;
+ virtual bool UsingTCPFastOpen() const override;
+ virtual bool GetSSLInfo(SSLInfo* ssl_info) override;
// Socket implementation.
virtual int Read(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int Write(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
- virtual int SetReceiveBufferSize(int32 size) OVERRIDE;
- virtual int SetSendBufferSize(int32 size) OVERRIDE;
- virtual ChannelIDService* GetChannelIDService() const OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual int SetReceiveBufferSize(int32 size) override;
+ virtual int SetSendBufferSize(int32 size) override;
+ virtual ChannelIDService* GetChannelIDService() const override;
protected:
// SSLClientSocket implementation.
virtual scoped_refptr<X509Certificate> GetUnverifiedServerCertificateChain()
- const OVERRIDE;
+ const override;
private:
// Helper class to handle marshalling any NSS interaction to and from the
diff --git a/net/socket/ssl_client_socket_openssl.cc b/net/socket/ssl_client_socket_openssl.cc
index f341a9f..04be988 100644
--- a/net/socket/ssl_client_socket_openssl.cc
+++ b/net/socket/ssl_client_socket_openssl.cc
@@ -907,6 +907,11 @@
<< " is: " << (SSL_session_reused(ssl_) ? "Success" : "Fail");
}
+ if (ssl_config_.version_fallback &&
+ ssl_config_.version_max < ssl_config_.version_fallback_min) {
+ return ERR_SSL_FALLBACK_BEYOND_MINIMUM_VERSION;
+ }
+
// SSL handshake is completed. If NPN wasn't negotiated, see if ALPN was.
if (npn_status_ == kNextProtoUnsupported) {
const uint8_t* alpn_proto = NULL;
@@ -915,6 +920,7 @@
if (alpn_len > 0) {
npn_proto_.assign(reinterpret_cast<const char*>(alpn_proto), alpn_len);
npn_status_ = kNextProtoNegotiated;
+ set_negotiation_extension(kExtensionALPN);
}
}
@@ -1669,6 +1675,7 @@
npn_proto_.assign(reinterpret_cast<const char*>(*out), *outlen);
DVLOG(2) << "next protocol: '" << npn_proto_ << "' status: " << npn_status_;
+ set_negotiation_extension(kExtensionNPN);
return SSL_TLSEXT_ERR_OK;
}
diff --git a/net/socket/ssl_client_socket_openssl.h b/net/socket/ssl_client_socket_openssl.h
index 1465f84..dff457b 100644
--- a/net/socket/ssl_client_socket_openssl.h
+++ b/net/socket/ssl_client_socket_openssl.h
@@ -59,49 +59,49 @@
}
// SSLClientSocket implementation.
- virtual std::string GetSessionCacheKey() const OVERRIDE;
- virtual bool InSessionCache() const OVERRIDE;
+ virtual std::string GetSessionCacheKey() const override;
+ virtual bool InSessionCache() const override;
virtual void SetHandshakeCompletionCallback(
- const base::Closure& callback) OVERRIDE;
+ const base::Closure& callback) override;
virtual void GetSSLCertRequestInfo(
- SSLCertRequestInfo* cert_request_info) OVERRIDE;
- virtual NextProtoStatus GetNextProto(std::string* proto) OVERRIDE;
- virtual ChannelIDService* GetChannelIDService() const OVERRIDE;
+ SSLCertRequestInfo* cert_request_info) override;
+ virtual NextProtoStatus GetNextProto(std::string* proto) override;
+ virtual ChannelIDService* GetChannelIDService() const override;
// SSLSocket implementation.
virtual int ExportKeyingMaterial(const base::StringPiece& label,
bool has_context,
const base::StringPiece& context,
unsigned char* out,
- unsigned int outlen) OVERRIDE;
- virtual int GetTLSUniqueChannelBinding(std::string* out) OVERRIDE;
+ unsigned int outlen) override;
+ virtual int GetTLSUniqueChannelBinding(std::string* out) override;
// StreamSocket implementation.
- virtual int Connect(const CompletionCallback& callback) OVERRIDE;
- virtual void Disconnect() OVERRIDE;
- virtual bool IsConnected() const OVERRIDE;
- virtual bool IsConnectedAndIdle() const OVERRIDE;
- virtual int GetPeerAddress(IPEndPoint* address) const OVERRIDE;
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE;
- virtual const BoundNetLog& NetLog() const OVERRIDE;
- virtual void SetSubresourceSpeculation() OVERRIDE;
- virtual void SetOmniboxSpeculation() OVERRIDE;
- virtual bool WasEverUsed() const OVERRIDE;
- virtual bool UsingTCPFastOpen() const OVERRIDE;
- virtual bool GetSSLInfo(SSLInfo* ssl_info) OVERRIDE;
+ virtual int Connect(const CompletionCallback& callback) override;
+ virtual void Disconnect() override;
+ virtual bool IsConnected() const override;
+ virtual bool IsConnectedAndIdle() const override;
+ virtual int GetPeerAddress(IPEndPoint* address) const override;
+ virtual int GetLocalAddress(IPEndPoint* address) const override;
+ virtual const BoundNetLog& NetLog() const override;
+ virtual void SetSubresourceSpeculation() override;
+ virtual void SetOmniboxSpeculation() override;
+ virtual bool WasEverUsed() const override;
+ virtual bool UsingTCPFastOpen() const override;
+ virtual bool GetSSLInfo(SSLInfo* ssl_info) override;
// Socket implementation.
virtual int Read(IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int Write(IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE;
- virtual int SetReceiveBufferSize(int32 size) OVERRIDE;
- virtual int SetSendBufferSize(int32 size) OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual int SetReceiveBufferSize(int32 size) override;
+ virtual int SetSendBufferSize(int32 size) override;
protected:
// SSLClientSocket implementation.
virtual scoped_refptr<X509Certificate> GetUnverifiedServerCertificateChain()
- const OVERRIDE;
+ const override;
private:
class PeerCertificateChain;
diff --git a/net/socket/ssl_client_socket_pool.cc b/net/socket/ssl_client_socket_pool.cc
index 6356783..a866b6c 100644
--- a/net/socket/ssl_client_socket_pool.cc
+++ b/net/socket/ssl_client_socket_pool.cc
@@ -452,8 +452,10 @@
// GetNextProto will fail and and trigger a NOTREACHED if we pass in a socket
// that hasn't had SSL_ImportFD called on it. If we get a certificate error
// here, then we know that we called SSL_ImportFD.
- if (result == OK || IsCertificateError(result))
+ if (result == OK || IsCertificateError(result)) {
status = ssl_socket_->GetNextProto(&proto);
+ ssl_socket_->RecordNegotiationExtension();
+ }
// If we want spdy over npn, make sure it succeeded.
if (status == SSLClientSocket::kNextProtoNegotiated) {
diff --git a/net/socket/ssl_client_socket_pool.h b/net/socket/ssl_client_socket_pool.h
index efcce77..5854015 100644
--- a/net/socket/ssl_client_socket_pool.h
+++ b/net/socket/ssl_client_socket_pool.h
@@ -197,9 +197,9 @@
virtual ~SSLConnectJob();
// ConnectJob methods.
- virtual LoadState GetLoadState() const OVERRIDE;
+ virtual LoadState GetLoadState() const override;
- virtual void GetAdditionalErrorState(ClientSocketHandle * handle) OVERRIDE;
+ virtual void GetAdditionalErrorState(ClientSocketHandle * handle) override;
private:
enum State {
@@ -242,7 +242,7 @@
// Starts the SSL connection process. Returns OK on success and
// ERR_IO_PENDING if it cannot immediately service the request.
// Otherwise, it returns a net error code.
- virtual int ConnectInternal() OVERRIDE;
+ virtual int ConnectInternal() override;
scoped_refptr<SSLSocketParams> params_;
TransportClientSocketPool* const transport_pool_;
@@ -302,51 +302,51 @@
RequestPriority priority,
ClientSocketHandle* handle,
const CompletionCallback& callback,
- const BoundNetLog& net_log) OVERRIDE;
+ const BoundNetLog& net_log) override;
virtual void RequestSockets(const std::string& group_name,
const void* params,
int num_sockets,
- const BoundNetLog& net_log) OVERRIDE;
+ const BoundNetLog& net_log) override;
virtual void CancelRequest(const std::string& group_name,
- ClientSocketHandle* handle) OVERRIDE;
+ ClientSocketHandle* handle) override;
virtual void ReleaseSocket(const std::string& group_name,
scoped_ptr<StreamSocket> socket,
- int id) OVERRIDE;
+ int id) override;
- virtual void FlushWithError(int error) OVERRIDE;
+ virtual void FlushWithError(int error) override;
- virtual void CloseIdleSockets() OVERRIDE;
+ virtual void CloseIdleSockets() override;
- virtual int IdleSocketCount() const OVERRIDE;
+ virtual int IdleSocketCount() const override;
virtual int IdleSocketCountInGroup(
- const std::string& group_name) const OVERRIDE;
+ const std::string& group_name) const override;
virtual LoadState GetLoadState(
const std::string& group_name,
- const ClientSocketHandle* handle) const OVERRIDE;
+ const ClientSocketHandle* handle) const override;
virtual base::DictionaryValue* GetInfoAsValue(
const std::string& name,
const std::string& type,
- bool include_nested_pools) const OVERRIDE;
+ bool include_nested_pools) const override;
- virtual base::TimeDelta ConnectionTimeout() const OVERRIDE;
+ virtual base::TimeDelta ConnectionTimeout() const override;
- virtual ClientSocketPoolHistograms* histograms() const OVERRIDE;
+ virtual ClientSocketPoolHistograms* histograms() const override;
// LowerLayeredPool implementation.
- virtual bool IsStalled() const OVERRIDE;
+ virtual bool IsStalled() const override;
- virtual void AddHigherLayeredPool(HigherLayeredPool* higher_pool) OVERRIDE;
+ virtual void AddHigherLayeredPool(HigherLayeredPool* higher_pool) override;
- virtual void RemoveHigherLayeredPool(HigherLayeredPool* higher_pool) OVERRIDE;
+ virtual void RemoveHigherLayeredPool(HigherLayeredPool* higher_pool) override;
// HigherLayeredPool implementation.
- virtual bool CloseOneIdleConnection() OVERRIDE;
+ virtual bool CloseOneIdleConnection() override;
// Gets the SSLConnectJobMessenger for the given ssl session |cache_key|. If
// none exits, it creates one and stores it in |messenger_map_|.
@@ -363,7 +363,7 @@
// When the user changes the SSL config, we flush all idle sockets so they
// won't get re-used.
- virtual void OnSSLConfigChanged() OVERRIDE;
+ virtual void OnSSLConfigChanged() override;
class SSLConnectJobFactory : public PoolBase::ConnectJobFactory {
public:
@@ -383,9 +383,9 @@
virtual scoped_ptr<ConnectJob> NewConnectJob(
const std::string& group_name,
const PoolBase::Request& request,
- ConnectJob::Delegate* delegate) const OVERRIDE;
+ ConnectJob::Delegate* delegate) const override;
- virtual base::TimeDelta ConnectionTimeout() const OVERRIDE;
+ virtual base::TimeDelta ConnectionTimeout() const override;
private:
TransportClientSocketPool* const transport_pool_;
diff --git a/net/socket/ssl_client_socket_unittest.cc b/net/socket/ssl_client_socket_unittest.cc
index 4e844cd..40a4d3c 100644
--- a/net/socket/ssl_client_socket_unittest.cc
+++ b/net/socket/ssl_client_socket_unittest.cc
@@ -60,62 +60,62 @@
virtual ~WrappedStreamSocket() {}
// StreamSocket implementation:
- virtual int Connect(const CompletionCallback& callback) OVERRIDE {
+ virtual int Connect(const CompletionCallback& callback) override {
return transport_->Connect(callback);
}
- virtual void Disconnect() OVERRIDE { transport_->Disconnect(); }
- virtual bool IsConnected() const OVERRIDE {
+ virtual void Disconnect() override { transport_->Disconnect(); }
+ virtual bool IsConnected() const override {
return transport_->IsConnected();
}
- virtual bool IsConnectedAndIdle() const OVERRIDE {
+ virtual bool IsConnectedAndIdle() const override {
return transport_->IsConnectedAndIdle();
}
- virtual int GetPeerAddress(IPEndPoint* address) const OVERRIDE {
+ virtual int GetPeerAddress(IPEndPoint* address) const override {
return transport_->GetPeerAddress(address);
}
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE {
+ virtual int GetLocalAddress(IPEndPoint* address) const override {
return transport_->GetLocalAddress(address);
}
- virtual const BoundNetLog& NetLog() const OVERRIDE {
+ virtual const BoundNetLog& NetLog() const override {
return transport_->NetLog();
}
- virtual void SetSubresourceSpeculation() OVERRIDE {
+ virtual void SetSubresourceSpeculation() override {
transport_->SetSubresourceSpeculation();
}
- virtual void SetOmniboxSpeculation() OVERRIDE {
+ virtual void SetOmniboxSpeculation() override {
transport_->SetOmniboxSpeculation();
}
- virtual bool WasEverUsed() const OVERRIDE {
+ virtual bool WasEverUsed() const override {
return transport_->WasEverUsed();
}
- virtual bool UsingTCPFastOpen() const OVERRIDE {
+ virtual bool UsingTCPFastOpen() const override {
return transport_->UsingTCPFastOpen();
}
- virtual bool WasNpnNegotiated() const OVERRIDE {
+ virtual bool WasNpnNegotiated() const override {
return transport_->WasNpnNegotiated();
}
- virtual NextProto GetNegotiatedProtocol() const OVERRIDE {
+ virtual NextProto GetNegotiatedProtocol() const override {
return transport_->GetNegotiatedProtocol();
}
- virtual bool GetSSLInfo(SSLInfo* ssl_info) OVERRIDE {
+ virtual bool GetSSLInfo(SSLInfo* ssl_info) override {
return transport_->GetSSLInfo(ssl_info);
}
// Socket implementation:
virtual int Read(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return transport_->Read(buf, buf_len, callback);
}
virtual int Write(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return transport_->Write(buf, buf_len, callback);
}
- virtual int SetReceiveBufferSize(int32 size) OVERRIDE {
+ virtual int SetReceiveBufferSize(int32 size) override {
return transport_->SetReceiveBufferSize(size);
}
- virtual int SetSendBufferSize(int32 size) OVERRIDE {
+ virtual int SetSendBufferSize(int32 size) override {
return transport_->SetSendBufferSize(size);
}
@@ -137,7 +137,7 @@
// Socket implementation:
virtual int Read(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
// Sets the internal buffer to |size|. This must not be greater than
// the largest value supplied to Read() - that is, it does not handle
@@ -267,10 +267,10 @@
// Socket implementation:
virtual int Read(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int Write(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
// Sets the next Read() call and all future calls to return |error|.
// If there is already a pending asynchronous read, the configured error
@@ -338,10 +338,10 @@
// Socket implementation:
virtual int Read(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int Write(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
// Blocks read results on the socket. Reads will not complete until
// UnblockReadResult() has been called and a result is ready from the
@@ -554,13 +554,13 @@
// Socket implementation:
virtual int Read(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
read_count_++;
return transport_->Read(buf, buf_len, callback);
}
virtual int Write(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
write_count_++;
return transport_->Write(buf, buf_len, callback);
}
@@ -609,26 +609,26 @@
base::Time* expiration_time,
std::string* private_key_result,
std::string* cert_result,
- const GetChannelIDCallback& callback) OVERRIDE {
+ const GetChannelIDCallback& callback) override {
return ERR_UNEXPECTED;
}
virtual void SetChannelID(const std::string& server_identifier,
base::Time creation_time,
base::Time expiration_time,
const std::string& private_key,
- const std::string& cert) OVERRIDE {}
+ const std::string& cert) override {}
virtual void DeleteChannelID(const std::string& server_identifier,
const base::Closure& completion_callback)
- OVERRIDE {}
+ override {}
virtual void DeleteAllCreatedBetween(base::Time delete_begin,
base::Time delete_end,
const base::Closure& completion_callback)
- OVERRIDE {}
- virtual void DeleteAll(const base::Closure& completion_callback) OVERRIDE {}
+ override {}
+ virtual void DeleteAll(const base::Closure& completion_callback) override {}
virtual void GetAllChannelIDs(const GetChannelIDListCallback& callback)
- OVERRIDE {}
- virtual int GetChannelIDCount() OVERRIDE { return 0; }
- virtual void SetForceKeepSessionState() OVERRIDE {}
+ override {}
+ virtual int GetChannelIDCount() override { return 0; }
+ virtual void SetForceKeepSessionState() override {}
};
// A ChannelIDStore that asynchronously returns an error when asked for a
@@ -638,7 +638,7 @@
base::Time* expiration_time,
std::string* private_key_result,
std::string* cert_result,
- const GetChannelIDCallback& callback) OVERRIDE {
+ const GetChannelIDCallback& callback) override {
base::MessageLoop::current()->PostTask(
FROM_HERE, base::Bind(callback, ERR_UNEXPECTED,
server_identifier, base::Time(), "", ""));
@@ -648,19 +648,19 @@
base::Time creation_time,
base::Time expiration_time,
const std::string& private_key,
- const std::string& cert) OVERRIDE {}
+ const std::string& cert) override {}
virtual void DeleteChannelID(const std::string& server_identifier,
const base::Closure& completion_callback)
- OVERRIDE {}
+ override {}
virtual void DeleteAllCreatedBetween(base::Time delete_begin,
base::Time delete_end,
const base::Closure& completion_callback)
- OVERRIDE {}
- virtual void DeleteAll(const base::Closure& completion_callback) OVERRIDE {}
+ override {}
+ virtual void DeleteAll(const base::Closure& completion_callback) override {}
virtual void GetAllChannelIDs(const GetChannelIDListCallback& callback)
- OVERRIDE {}
- virtual int GetChannelIDCount() OVERRIDE { return 0; }
- virtual void SetForceKeepSessionState() OVERRIDE {}
+ override {}
+ virtual int GetChannelIDCount() override { return 0; }
+ virtual void SetForceKeepSessionState() override {}
};
// A mock CTVerifier that records every call to Verify but doesn't verify
diff --git a/net/socket/ssl_server_socket_nss.h b/net/socket/ssl_server_socket_nss.h
index bc5b65d..eddb543 100644
--- a/net/socket/ssl_server_socket_nss.h
+++ b/net/socket/ssl_server_socket_nss.h
@@ -31,39 +31,39 @@
virtual ~SSLServerSocketNSS();
// SSLServerSocket interface.
- virtual int Handshake(const CompletionCallback& callback) OVERRIDE;
+ virtual int Handshake(const CompletionCallback& callback) override;
// SSLSocket interface.
virtual int ExportKeyingMaterial(const base::StringPiece& label,
bool has_context,
const base::StringPiece& context,
unsigned char* out,
- unsigned int outlen) OVERRIDE;
- virtual int GetTLSUniqueChannelBinding(std::string* out) OVERRIDE;
+ unsigned int outlen) override;
+ virtual int GetTLSUniqueChannelBinding(std::string* out) override;
// Socket interface (via StreamSocket).
virtual int Read(IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int Write(IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE;
- virtual int SetReceiveBufferSize(int32 size) OVERRIDE;
- virtual int SetSendBufferSize(int32 size) OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual int SetReceiveBufferSize(int32 size) override;
+ virtual int SetSendBufferSize(int32 size) override;
// StreamSocket implementation.
- virtual int Connect(const CompletionCallback& callback) OVERRIDE;
- virtual void Disconnect() OVERRIDE;
- virtual bool IsConnected() const OVERRIDE;
- virtual bool IsConnectedAndIdle() const OVERRIDE;
- virtual int GetPeerAddress(IPEndPoint* address) const OVERRIDE;
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE;
- virtual const BoundNetLog& NetLog() const OVERRIDE;
- virtual void SetSubresourceSpeculation() OVERRIDE;
- virtual void SetOmniboxSpeculation() OVERRIDE;
- virtual bool WasEverUsed() const OVERRIDE;
- virtual bool UsingTCPFastOpen() const OVERRIDE;
- virtual bool WasNpnNegotiated() const OVERRIDE;
- virtual NextProto GetNegotiatedProtocol() const OVERRIDE;
- virtual bool GetSSLInfo(SSLInfo* ssl_info) OVERRIDE;
+ virtual int Connect(const CompletionCallback& callback) override;
+ virtual void Disconnect() override;
+ virtual bool IsConnected() const override;
+ virtual bool IsConnectedAndIdle() const override;
+ virtual int GetPeerAddress(IPEndPoint* address) const override;
+ virtual int GetLocalAddress(IPEndPoint* address) const override;
+ virtual const BoundNetLog& NetLog() const override;
+ virtual void SetSubresourceSpeculation() override;
+ virtual void SetOmniboxSpeculation() override;
+ virtual bool WasEverUsed() const override;
+ virtual bool UsingTCPFastOpen() const override;
+ virtual bool WasNpnNegotiated() const override;
+ virtual NextProto GetNegotiatedProtocol() const override;
+ virtual bool GetSSLInfo(SSLInfo* ssl_info) override;
private:
enum State {
diff --git a/net/socket/ssl_server_socket_openssl.h b/net/socket/ssl_server_socket_openssl.h
index e1c8aad..379ca57 100644
--- a/net/socket/ssl_server_socket_openssl.h
+++ b/net/socket/ssl_server_socket_openssl.h
@@ -33,39 +33,39 @@
virtual ~SSLServerSocketOpenSSL();
// SSLServerSocket interface.
- virtual int Handshake(const CompletionCallback& callback) OVERRIDE;
+ virtual int Handshake(const CompletionCallback& callback) override;
// SSLSocket interface.
virtual int ExportKeyingMaterial(const base::StringPiece& label,
bool has_context,
const base::StringPiece& context,
unsigned char* out,
- unsigned int outlen) OVERRIDE;
- virtual int GetTLSUniqueChannelBinding(std::string* out) OVERRIDE;
+ unsigned int outlen) override;
+ virtual int GetTLSUniqueChannelBinding(std::string* out) override;
// Socket interface (via StreamSocket).
virtual int Read(IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int Write(IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE;
- virtual int SetReceiveBufferSize(int32 size) OVERRIDE;
- virtual int SetSendBufferSize(int32 size) OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual int SetReceiveBufferSize(int32 size) override;
+ virtual int SetSendBufferSize(int32 size) override;
// StreamSocket implementation.
- virtual int Connect(const CompletionCallback& callback) OVERRIDE;
- virtual void Disconnect() OVERRIDE;
- virtual bool IsConnected() const OVERRIDE;
- virtual bool IsConnectedAndIdle() const OVERRIDE;
- virtual int GetPeerAddress(IPEndPoint* address) const OVERRIDE;
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE;
- virtual const BoundNetLog& NetLog() const OVERRIDE;
- virtual void SetSubresourceSpeculation() OVERRIDE;
- virtual void SetOmniboxSpeculation() OVERRIDE;
- virtual bool WasEverUsed() const OVERRIDE;
- virtual bool UsingTCPFastOpen() const OVERRIDE;
- virtual bool WasNpnNegotiated() const OVERRIDE;
- virtual NextProto GetNegotiatedProtocol() const OVERRIDE;
- virtual bool GetSSLInfo(SSLInfo* ssl_info) OVERRIDE;
+ virtual int Connect(const CompletionCallback& callback) override;
+ virtual void Disconnect() override;
+ virtual bool IsConnected() const override;
+ virtual bool IsConnectedAndIdle() const override;
+ virtual int GetPeerAddress(IPEndPoint* address) const override;
+ virtual int GetLocalAddress(IPEndPoint* address) const override;
+ virtual const BoundNetLog& NetLog() const override;
+ virtual void SetSubresourceSpeculation() override;
+ virtual void SetOmniboxSpeculation() override;
+ virtual bool WasEverUsed() const override;
+ virtual bool UsingTCPFastOpen() const override;
+ virtual bool WasNpnNegotiated() const override;
+ virtual NextProto GetNegotiatedProtocol() const override;
+ virtual bool GetSSLInfo(SSLInfo* ssl_info) override;
private:
enum State {
diff --git a/net/socket/ssl_server_socket_unittest.cc b/net/socket/ssl_server_socket_unittest.cc
index f28d51a..1d70258 100644
--- a/net/socket/ssl_server_socket_unittest.cc
+++ b/net/socket/ssl_server_socket_unittest.cc
@@ -171,81 +171,81 @@
}
virtual int Read(IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
// Read random number of bytes.
buf_len = rand() % buf_len + 1;
return incoming_->Read(buf, buf_len, callback);
}
virtual int Write(IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
// Write random number of bytes.
buf_len = rand() % buf_len + 1;
return outgoing_->Write(buf, buf_len, callback);
}
- virtual int SetReceiveBufferSize(int32 size) OVERRIDE {
+ virtual int SetReceiveBufferSize(int32 size) override {
return OK;
}
- virtual int SetSendBufferSize(int32 size) OVERRIDE {
+ virtual int SetSendBufferSize(int32 size) override {
return OK;
}
- virtual int Connect(const CompletionCallback& callback) OVERRIDE {
+ virtual int Connect(const CompletionCallback& callback) override {
return OK;
}
- virtual void Disconnect() OVERRIDE {
+ virtual void Disconnect() override {
incoming_->Close();
outgoing_->Close();
}
- virtual bool IsConnected() const OVERRIDE {
+ virtual bool IsConnected() const override {
return true;
}
- virtual bool IsConnectedAndIdle() const OVERRIDE {
+ virtual bool IsConnectedAndIdle() const override {
return true;
}
- virtual int GetPeerAddress(IPEndPoint* address) const OVERRIDE {
+ virtual int GetPeerAddress(IPEndPoint* address) const override {
IPAddressNumber ip_address(kIPv4AddressSize);
*address = IPEndPoint(ip_address, 0 /*port*/);
return OK;
}
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE {
+ virtual int GetLocalAddress(IPEndPoint* address) const override {
IPAddressNumber ip_address(4);
*address = IPEndPoint(ip_address, 0);
return OK;
}
- virtual const BoundNetLog& NetLog() const OVERRIDE {
+ virtual const BoundNetLog& NetLog() const override {
return net_log_;
}
- virtual void SetSubresourceSpeculation() OVERRIDE {}
- virtual void SetOmniboxSpeculation() OVERRIDE {}
+ virtual void SetSubresourceSpeculation() override {}
+ virtual void SetOmniboxSpeculation() override {}
- virtual bool WasEverUsed() const OVERRIDE {
+ virtual bool WasEverUsed() const override {
return true;
}
- virtual bool UsingTCPFastOpen() const OVERRIDE {
+ virtual bool UsingTCPFastOpen() const override {
return false;
}
- virtual bool WasNpnNegotiated() const OVERRIDE {
+ virtual bool WasNpnNegotiated() const override {
return false;
}
- virtual NextProto GetNegotiatedProtocol() const OVERRIDE {
+ virtual NextProto GetNegotiatedProtocol() const override {
return kProtoUnknown;
}
- virtual bool GetSSLInfo(SSLInfo* ssl_info) OVERRIDE {
+ virtual bool GetSSLInfo(SSLInfo* ssl_info) override {
return false;
}
diff --git a/net/socket/stream_listen_socket.h b/net/socket/stream_listen_socket.h
index 813d96a..ead35c4 100644
--- a/net/socket/stream_listen_socket.h
+++ b/net/socket/stream_listen_socket.h
@@ -116,8 +116,8 @@
HANDLE socket_event_;
#elif defined(OS_POSIX)
// Called by MessagePumpLibevent when the socket is ready to do I/O.
- virtual void OnFileCanReadWithoutBlocking(int fd) OVERRIDE;
- virtual void OnFileCanWriteWithoutBlocking(int fd) OVERRIDE;
+ virtual void OnFileCanReadWithoutBlocking(int fd) override;
+ virtual void OnFileCanWriteWithoutBlocking(int fd) override;
WaitState wait_state_;
// The socket's libevent wrapper.
base::MessageLoopForIO::FileDescriptorWatcher watcher_;
diff --git a/net/socket/tcp_client_socket.cc b/net/socket/tcp_client_socket.cc
index a16e11e..96402fe 100644
--- a/net/socket/tcp_client_socket.cc
+++ b/net/socket/tcp_client_socket.cc
@@ -6,6 +6,7 @@
#include "base/callback_helpers.h"
#include "base/logging.h"
+#include "base/profiler/scoped_profile.h"
#include "net/base/io_buffer.h"
#include "net/base/ip_endpoint.h"
#include "net/base/net_errors.h"
@@ -306,6 +307,10 @@
if (result > 0)
use_history_.set_was_used_to_convey_data();
+ // TODO(vadimt): Remove ScopedProfile below once crbug.com/418183 is fixed.
+ tracked_objects::ScopedProfile tracking_profile(
+ FROM_HERE_WITH_EXPLICIT_FUNCTION(
+ "TCPClientSocket::DidCompleteReadWrite"));
callback.Run(result);
}
diff --git a/net/socket/tcp_client_socket.h b/net/socket/tcp_client_socket.h
index 9322624..1672a95 100644
--- a/net/socket/tcp_client_socket.h
+++ b/net/socket/tcp_client_socket.h
@@ -38,31 +38,31 @@
int Bind(const IPEndPoint& address);
// StreamSocket implementation.
- virtual int Connect(const CompletionCallback& callback) OVERRIDE;
- virtual void Disconnect() OVERRIDE;
- virtual bool IsConnected() const OVERRIDE;
- virtual bool IsConnectedAndIdle() const OVERRIDE;
- virtual int GetPeerAddress(IPEndPoint* address) const OVERRIDE;
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE;
- virtual const BoundNetLog& NetLog() const OVERRIDE;
- virtual void SetSubresourceSpeculation() OVERRIDE;
- virtual void SetOmniboxSpeculation() OVERRIDE;
- virtual bool WasEverUsed() const OVERRIDE;
- virtual bool UsingTCPFastOpen() const OVERRIDE;
- virtual void EnableTCPFastOpenIfSupported() OVERRIDE;
- virtual bool WasNpnNegotiated() const OVERRIDE;
- virtual NextProto GetNegotiatedProtocol() const OVERRIDE;
- virtual bool GetSSLInfo(SSLInfo* ssl_info) OVERRIDE;
+ virtual int Connect(const CompletionCallback& callback) override;
+ virtual void Disconnect() override;
+ virtual bool IsConnected() const override;
+ virtual bool IsConnectedAndIdle() const override;
+ virtual int GetPeerAddress(IPEndPoint* address) const override;
+ virtual int GetLocalAddress(IPEndPoint* address) const override;
+ virtual const BoundNetLog& NetLog() const override;
+ virtual void SetSubresourceSpeculation() override;
+ virtual void SetOmniboxSpeculation() override;
+ virtual bool WasEverUsed() const override;
+ virtual bool UsingTCPFastOpen() const override;
+ virtual void EnableTCPFastOpenIfSupported() override;
+ virtual bool WasNpnNegotiated() const override;
+ virtual NextProto GetNegotiatedProtocol() const override;
+ virtual bool GetSSLInfo(SSLInfo* ssl_info) override;
// Socket implementation.
// Multiple outstanding requests are not supported.
// Full duplex mode (reading and writing at the same time) is supported.
virtual int Read(IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int Write(IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE;
- virtual int SetReceiveBufferSize(int32 size) OVERRIDE;
- virtual int SetSendBufferSize(int32 size) OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual int SetReceiveBufferSize(int32 size) override;
+ virtual int SetSendBufferSize(int32 size) override;
virtual bool SetKeepAlive(bool enable, int delay);
virtual bool SetNoDelay(bool no_delay);
diff --git a/net/socket/tcp_listen_socket.h b/net/socket/tcp_listen_socket.h
index 54a91de..d726dcc 100644
--- a/net/socket/tcp_listen_socket.h
+++ b/net/socket/tcp_listen_socket.h
@@ -34,7 +34,7 @@
TCPListenSocket(SocketDescriptor s, StreamListenSocket::Delegate* del);
// Implements StreamListenSocket::Accept.
- virtual void Accept() OVERRIDE;
+ virtual void Accept() override;
private:
DISALLOW_COPY_AND_ASSIGN(TCPListenSocket);
@@ -48,7 +48,7 @@
// StreamListenSocketFactory overrides.
virtual scoped_ptr<StreamListenSocket> CreateAndListen(
- StreamListenSocket::Delegate* delegate) const OVERRIDE;
+ StreamListenSocket::Delegate* delegate) const override;
private:
const std::string ip_;
diff --git a/net/socket/tcp_listen_socket_unittest.h b/net/socket/tcp_listen_socket_unittest.h
index 1bc31a8..9393370 100644
--- a/net/socket/tcp_listen_socket_unittest.h
+++ b/net/socket/tcp_listen_socket_unittest.h
@@ -91,10 +91,10 @@
// StreamListenSocket::Delegate:
virtual void DidAccept(StreamListenSocket* server,
- scoped_ptr<StreamListenSocket> connection) OVERRIDE;
+ scoped_ptr<StreamListenSocket> connection) override;
virtual void DidRead(StreamListenSocket* connection, const char* data,
- int len) OVERRIDE;
- virtual void DidClose(StreamListenSocket* sock) OVERRIDE;
+ int len) override;
+ virtual void DidClose(StreamListenSocket* sock) override;
scoped_ptr<base::Thread> thread_;
base::MessageLoopForIO* loop_;
diff --git a/net/socket/tcp_server_socket.h b/net/socket/tcp_server_socket.h
index faff9ad..9fc719a 100644
--- a/net/socket/tcp_server_socket.h
+++ b/net/socket/tcp_server_socket.h
@@ -22,10 +22,10 @@
virtual ~TCPServerSocket();
// net::ServerSocket implementation.
- virtual int Listen(const IPEndPoint& address, int backlog) OVERRIDE;
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE;
+ virtual int Listen(const IPEndPoint& address, int backlog) override;
+ virtual int GetLocalAddress(IPEndPoint* address) const override;
virtual int Accept(scoped_ptr<StreamSocket>* socket,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
private:
// Converts |accepted_socket_| and stores the result in
diff --git a/net/socket/tcp_socket_win.cc b/net/socket/tcp_socket_win.cc
index 62966ec..1598948 100644
--- a/net/socket/tcp_socket_win.cc
+++ b/net/socket/tcp_socket_win.cc
@@ -1035,6 +1035,9 @@
core_->read_buffer_length_ = 0;
DCHECK_NE(rv, ERR_IO_PENDING);
+ // TODO(vadimt): Remove ScopedProfile below once crbug.com/418183 is fixed.
+ tracked_objects::ScopedProfile tracking_profile(
+ FROM_HERE_WITH_EXPLICIT_FUNCTION("TCPSocketWin::DidSignalRead"));
base::ResetAndReturn(&read_callback_).Run(rv);
}
diff --git a/net/socket/tcp_socket_win.h b/net/socket/tcp_socket_win.h
index a5eed41..80174ad 100644
--- a/net/socket/tcp_socket_win.h
+++ b/net/socket/tcp_socket_win.h
@@ -101,7 +101,7 @@
class Core;
// base::ObjectWatcher::Delegate implementation.
- virtual void OnObjectSignaled(HANDLE object) OVERRIDE;
+ virtual void OnObjectSignaled(HANDLE object) override;
int AcceptInternal(scoped_ptr<TCPSocketWin>* socket,
IPEndPoint* address);
diff --git a/net/socket/transport_client_socket_pool.h b/net/socket/transport_client_socket_pool.h
index fce5432..14af726 100644
--- a/net/socket/transport_client_socket_pool.h
+++ b/net/socket/transport_client_socket_pool.h
@@ -167,7 +167,7 @@
virtual ~TransportConnectJob();
// ConnectJob methods.
- virtual LoadState GetLoadState() const OVERRIDE;
+ virtual LoadState GetLoadState() const override;
// Rolls |addrlist| forward until the first IPv4 address, if any.
// WARNING: this method should only be used to implement the prefer-IPv4 hack.
@@ -194,7 +194,7 @@
// Begins the host resolution and the TCP connect. Returns OK on success
// and ERR_IO_PENDING if it cannot immediately service the request.
// Otherwise, it returns a net error code.
- virtual int ConnectInternal() OVERRIDE;
+ virtual int ConnectInternal() override;
TransportConnectJobHelper helper_;
@@ -231,35 +231,35 @@
RequestPriority priority,
ClientSocketHandle* handle,
const CompletionCallback& callback,
- const BoundNetLog& net_log) OVERRIDE;
+ const BoundNetLog& net_log) override;
virtual void RequestSockets(const std::string& group_name,
const void* params,
int num_sockets,
- const BoundNetLog& net_log) OVERRIDE;
+ const BoundNetLog& net_log) override;
virtual void CancelRequest(const std::string& group_name,
- ClientSocketHandle* handle) OVERRIDE;
+ ClientSocketHandle* handle) override;
virtual void ReleaseSocket(const std::string& group_name,
scoped_ptr<StreamSocket> socket,
- int id) OVERRIDE;
- virtual void FlushWithError(int error) OVERRIDE;
- virtual void CloseIdleSockets() OVERRIDE;
- virtual int IdleSocketCount() const OVERRIDE;
+ int id) override;
+ virtual void FlushWithError(int error) override;
+ virtual void CloseIdleSockets() override;
+ virtual int IdleSocketCount() const override;
virtual int IdleSocketCountInGroup(
- const std::string& group_name) const OVERRIDE;
+ const std::string& group_name) const override;
virtual LoadState GetLoadState(
const std::string& group_name,
- const ClientSocketHandle* handle) const OVERRIDE;
+ const ClientSocketHandle* handle) const override;
virtual base::DictionaryValue* GetInfoAsValue(
const std::string& name,
const std::string& type,
- bool include_nested_pools) const OVERRIDE;
- virtual base::TimeDelta ConnectionTimeout() const OVERRIDE;
- virtual ClientSocketPoolHistograms* histograms() const OVERRIDE;
+ bool include_nested_pools) const override;
+ virtual base::TimeDelta ConnectionTimeout() const override;
+ virtual ClientSocketPoolHistograms* histograms() const override;
// HigherLayeredPool implementation.
- virtual bool IsStalled() const OVERRIDE;
- virtual void AddHigherLayeredPool(HigherLayeredPool* higher_pool) OVERRIDE;
- virtual void RemoveHigherLayeredPool(HigherLayeredPool* higher_pool) OVERRIDE;
+ virtual bool IsStalled() const override;
+ virtual void AddHigherLayeredPool(HigherLayeredPool* higher_pool) override;
+ virtual void RemoveHigherLayeredPool(HigherLayeredPool* higher_pool) override;
protected:
// Methods shared with WebSocketTransportClientSocketPool
@@ -287,9 +287,9 @@
virtual scoped_ptr<ConnectJob> NewConnectJob(
const std::string& group_name,
const PoolBase::Request& request,
- ConnectJob::Delegate* delegate) const OVERRIDE;
+ ConnectJob::Delegate* delegate) const override;
- virtual base::TimeDelta ConnectionTimeout() const OVERRIDE;
+ virtual base::TimeDelta ConnectionTimeout() const override;
private:
ClientSocketFactory* const client_socket_factory_;
diff --git a/net/socket/transport_client_socket_pool_test_util.cc b/net/socket/transport_client_socket_pool_test_util.cc
index 98a615d..a56c6b1 100644
--- a/net/socket/transport_client_socket_pool_test_util.cc
+++ b/net/socket/transport_client_socket_pool_test_util.cc
@@ -38,19 +38,19 @@
use_tcp_fastopen_(false) {}
// StreamSocket implementation.
- virtual int Connect(const CompletionCallback& callback) OVERRIDE {
+ virtual int Connect(const CompletionCallback& callback) override {
connected_ = true;
return OK;
}
- virtual void Disconnect() OVERRIDE { connected_ = false; }
- virtual bool IsConnected() const OVERRIDE { return connected_; }
- virtual bool IsConnectedAndIdle() const OVERRIDE { return connected_; }
+ virtual void Disconnect() override { connected_ = false; }
+ virtual bool IsConnected() const override { return connected_; }
+ virtual bool IsConnectedAndIdle() const override { return connected_; }
- virtual int GetPeerAddress(IPEndPoint* address) const OVERRIDE {
+ virtual int GetPeerAddress(IPEndPoint* address) const override {
*address = addrlist_.front();
return OK;
}
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE {
+ virtual int GetLocalAddress(IPEndPoint* address) const override {
if (!connected_)
return ERR_SOCKET_NOT_CONNECTED;
if (addrlist_.front().GetFamily() == ADDRESS_FAMILY_IPV4)
@@ -59,34 +59,34 @@
SetIPv6Address(address);
return OK;
}
- virtual const BoundNetLog& NetLog() const OVERRIDE { return net_log_; }
+ virtual const BoundNetLog& NetLog() const override { return net_log_; }
- virtual void SetSubresourceSpeculation() OVERRIDE {}
- virtual void SetOmniboxSpeculation() OVERRIDE {}
- virtual bool WasEverUsed() const OVERRIDE { return false; }
- virtual void EnableTCPFastOpenIfSupported() OVERRIDE {
+ virtual void SetSubresourceSpeculation() override {}
+ virtual void SetOmniboxSpeculation() override {}
+ virtual bool WasEverUsed() const override { return false; }
+ virtual void EnableTCPFastOpenIfSupported() override {
use_tcp_fastopen_ = true;
}
- virtual bool UsingTCPFastOpen() const OVERRIDE { return use_tcp_fastopen_; }
- virtual bool WasNpnNegotiated() const OVERRIDE { return false; }
- virtual NextProto GetNegotiatedProtocol() const OVERRIDE {
+ virtual bool UsingTCPFastOpen() const override { return use_tcp_fastopen_; }
+ virtual bool WasNpnNegotiated() const override { return false; }
+ virtual NextProto GetNegotiatedProtocol() const override {
return kProtoUnknown;
}
- virtual bool GetSSLInfo(SSLInfo* ssl_info) OVERRIDE { return false; }
+ virtual bool GetSSLInfo(SSLInfo* ssl_info) override { return false; }
// Socket implementation.
virtual int Read(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return ERR_FAILED;
}
virtual int Write(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return ERR_FAILED;
}
- virtual int SetReceiveBufferSize(int32 size) OVERRIDE { return OK; }
- virtual int SetSendBufferSize(int32 size) OVERRIDE { return OK; }
+ virtual int SetReceiveBufferSize(int32 size) override { return OK; }
+ virtual int SetSendBufferSize(int32 size) override { return OK; }
private:
bool connected_;
@@ -105,49 +105,49 @@
use_tcp_fastopen_(false) {}
// StreamSocket implementation.
- virtual int Connect(const CompletionCallback& callback) OVERRIDE {
+ virtual int Connect(const CompletionCallback& callback) override {
return ERR_CONNECTION_FAILED;
}
- virtual void Disconnect() OVERRIDE {}
+ virtual void Disconnect() override {}
- virtual bool IsConnected() const OVERRIDE { return false; }
- virtual bool IsConnectedAndIdle() const OVERRIDE { return false; }
- virtual int GetPeerAddress(IPEndPoint* address) const OVERRIDE {
+ virtual bool IsConnected() const override { return false; }
+ virtual bool IsConnectedAndIdle() const override { return false; }
+ virtual int GetPeerAddress(IPEndPoint* address) const override {
return ERR_UNEXPECTED;
}
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE {
+ virtual int GetLocalAddress(IPEndPoint* address) const override {
return ERR_UNEXPECTED;
}
- virtual const BoundNetLog& NetLog() const OVERRIDE { return net_log_; }
+ virtual const BoundNetLog& NetLog() const override { return net_log_; }
- virtual void SetSubresourceSpeculation() OVERRIDE {}
- virtual void SetOmniboxSpeculation() OVERRIDE {}
- virtual bool WasEverUsed() const OVERRIDE { return false; }
- virtual void EnableTCPFastOpenIfSupported() OVERRIDE {
+ virtual void SetSubresourceSpeculation() override {}
+ virtual void SetOmniboxSpeculation() override {}
+ virtual bool WasEverUsed() const override { return false; }
+ virtual void EnableTCPFastOpenIfSupported() override {
use_tcp_fastopen_ = true;
}
- virtual bool UsingTCPFastOpen() const OVERRIDE { return use_tcp_fastopen_; }
- virtual bool WasNpnNegotiated() const OVERRIDE { return false; }
- virtual NextProto GetNegotiatedProtocol() const OVERRIDE {
+ virtual bool UsingTCPFastOpen() const override { return use_tcp_fastopen_; }
+ virtual bool WasNpnNegotiated() const override { return false; }
+ virtual NextProto GetNegotiatedProtocol() const override {
return kProtoUnknown;
}
- virtual bool GetSSLInfo(SSLInfo* ssl_info) OVERRIDE { return false; }
+ virtual bool GetSSLInfo(SSLInfo* ssl_info) override { return false; }
// Socket implementation.
virtual int Read(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return ERR_FAILED;
}
virtual int Write(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return ERR_FAILED;
}
- virtual int SetReceiveBufferSize(int32 size) OVERRIDE { return OK; }
- virtual int SetSendBufferSize(int32 size) OVERRIDE { return OK; }
+ virtual int SetReceiveBufferSize(int32 size) override { return OK; }
+ virtual int SetSendBufferSize(int32 size) override { return OK; }
private:
const AddressList addrlist_;
@@ -211,21 +211,21 @@
}
// StreamSocket implementation.
- virtual int Connect(const CompletionCallback& callback) OVERRIDE {
+ virtual int Connect(const CompletionCallback& callback) override {
DCHECK(callback_.is_null());
callback_ = callback;
return ERR_IO_PENDING;
}
- virtual void Disconnect() OVERRIDE {}
+ virtual void Disconnect() override {}
- virtual bool IsConnected() const OVERRIDE { return is_connected_; }
- virtual bool IsConnectedAndIdle() const OVERRIDE { return is_connected_; }
- virtual int GetPeerAddress(IPEndPoint* address) const OVERRIDE {
+ virtual bool IsConnected() const override { return is_connected_; }
+ virtual bool IsConnectedAndIdle() const override { return is_connected_; }
+ virtual int GetPeerAddress(IPEndPoint* address) const override {
*address = addrlist_.front();
return OK;
}
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE {
+ virtual int GetLocalAddress(IPEndPoint* address) const override {
if (!is_connected_)
return ERR_SOCKET_NOT_CONNECTED;
if (addrlist_.front().GetFamily() == ADDRESS_FAMILY_IPV4)
@@ -234,35 +234,35 @@
SetIPv6Address(address);
return OK;
}
- virtual const BoundNetLog& NetLog() const OVERRIDE { return net_log_; }
+ virtual const BoundNetLog& NetLog() const override { return net_log_; }
- virtual void SetSubresourceSpeculation() OVERRIDE {}
- virtual void SetOmniboxSpeculation() OVERRIDE {}
- virtual bool WasEverUsed() const OVERRIDE { return false; }
- virtual void EnableTCPFastOpenIfSupported() OVERRIDE {
+ virtual void SetSubresourceSpeculation() override {}
+ virtual void SetOmniboxSpeculation() override {}
+ virtual bool WasEverUsed() const override { return false; }
+ virtual void EnableTCPFastOpenIfSupported() override {
use_tcp_fastopen_ = true;
}
- virtual bool UsingTCPFastOpen() const OVERRIDE { return use_tcp_fastopen_; }
- virtual bool WasNpnNegotiated() const OVERRIDE { return false; }
- virtual NextProto GetNegotiatedProtocol() const OVERRIDE {
+ virtual bool UsingTCPFastOpen() const override { return use_tcp_fastopen_; }
+ virtual bool WasNpnNegotiated() const override { return false; }
+ virtual NextProto GetNegotiatedProtocol() const override {
return kProtoUnknown;
}
- virtual bool GetSSLInfo(SSLInfo* ssl_info) OVERRIDE { return false; }
+ virtual bool GetSSLInfo(SSLInfo* ssl_info) override { return false; }
// Socket implementation.
virtual int Read(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return ERR_FAILED;
}
virtual int Write(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return ERR_FAILED;
}
- virtual int SetReceiveBufferSize(int32 size) OVERRIDE { return OK; }
- virtual int SetSendBufferSize(int32 size) OVERRIDE { return OK; }
+ virtual int SetReceiveBufferSize(int32 size) override { return OK; }
+ virtual int SetSendBufferSize(int32 size) override { return OK; }
private:
void DoCallback() {
diff --git a/net/socket/transport_client_socket_pool_test_util.h b/net/socket/transport_client_socket_pool_test_util.h
index 40ed1d1..b4adb71 100644
--- a/net/socket/transport_client_socket_pool_test_util.h
+++ b/net/socket/transport_client_socket_pool_test_util.h
@@ -73,20 +73,20 @@
DatagramSocket::BindType bind_type,
const RandIntCallback& rand_int_cb,
NetLog* net_log,
- const NetLog::Source& source) OVERRIDE;
+ const NetLog::Source& source) override;
virtual scoped_ptr<StreamSocket> CreateTransportClientSocket(
const AddressList& addresses,
NetLog* /* net_log */,
- const NetLog::Source& /* source */) OVERRIDE;
+ const NetLog::Source& /* source */) override;
virtual scoped_ptr<SSLClientSocket> CreateSSLClientSocket(
scoped_ptr<ClientSocketHandle> transport_socket,
const HostPortPair& host_and_port,
const SSLConfig& ssl_config,
- const SSLClientSocketContext& context) OVERRIDE;
+ const SSLClientSocketContext& context) override;
- virtual void ClearSSLSessionCache() OVERRIDE;
+ virtual void ClearSSLSessionCache() override;
int allocation_count() const { return allocation_count_; }
diff --git a/net/socket/transport_client_socket_unittest.cc b/net/socket/transport_client_socket_unittest.cc
index 5548b27..8bfb674 100644
--- a/net/socket/transport_client_socket_unittest.cc
+++ b/net/socket/transport_client_socket_unittest.cc
@@ -48,18 +48,18 @@
// Implement StreamListenSocket::Delegate methods
virtual void DidAccept(StreamListenSocket* server,
- scoped_ptr<StreamListenSocket> connection) OVERRIDE {
+ scoped_ptr<StreamListenSocket> connection) override {
connected_sock_.reset(
static_cast<TCPListenSocket*>(connection.release()));
}
- virtual void DidRead(StreamListenSocket*, const char* str, int len) OVERRIDE {
+ virtual void DidRead(StreamListenSocket*, const char* str, int len) override {
// TODO(dkegel): this might not be long enough to tickle some bugs.
connected_sock_->Send(kServerReply, arraysize(kServerReply) - 1,
false /* Don't append line feed */);
if (close_server_socket_on_next_send_)
CloseServerSocket();
}
- virtual void DidClose(StreamListenSocket* sock) OVERRIDE {}
+ virtual void DidClose(StreamListenSocket* sock) override {}
// Testcase hooks
virtual void SetUp();
diff --git a/net/socket/unix_domain_client_socket_posix.h b/net/socket/unix_domain_client_socket_posix.h
index d6f2445..e70694a 100644
--- a/net/socket/unix_domain_client_socket_posix.h
+++ b/net/socket/unix_domain_client_socket_posix.h
@@ -41,28 +41,28 @@
SockaddrStorage* address);
// StreamSocket implementation.
- virtual int Connect(const CompletionCallback& callback) OVERRIDE;
- virtual void Disconnect() OVERRIDE;
- virtual bool IsConnected() const OVERRIDE;
- virtual bool IsConnectedAndIdle() const OVERRIDE;
- virtual int GetPeerAddress(IPEndPoint* address) const OVERRIDE;
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE;
- virtual const BoundNetLog& NetLog() const OVERRIDE;
- virtual void SetSubresourceSpeculation() OVERRIDE;
- virtual void SetOmniboxSpeculation() OVERRIDE;
- virtual bool WasEverUsed() const OVERRIDE;
- virtual bool UsingTCPFastOpen() const OVERRIDE;
- virtual bool WasNpnNegotiated() const OVERRIDE;
- virtual NextProto GetNegotiatedProtocol() const OVERRIDE;
- virtual bool GetSSLInfo(SSLInfo* ssl_info) OVERRIDE;
+ virtual int Connect(const CompletionCallback& callback) override;
+ virtual void Disconnect() override;
+ virtual bool IsConnected() const override;
+ virtual bool IsConnectedAndIdle() const override;
+ virtual int GetPeerAddress(IPEndPoint* address) const override;
+ virtual int GetLocalAddress(IPEndPoint* address) const override;
+ virtual const BoundNetLog& NetLog() const override;
+ virtual void SetSubresourceSpeculation() override;
+ virtual void SetOmniboxSpeculation() override;
+ virtual bool WasEverUsed() const override;
+ virtual bool UsingTCPFastOpen() const override;
+ virtual bool WasNpnNegotiated() const override;
+ virtual NextProto GetNegotiatedProtocol() const override;
+ virtual bool GetSSLInfo(SSLInfo* ssl_info) override;
// Socket implementation.
virtual int Read(IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int Write(IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE;
- virtual int SetReceiveBufferSize(int32 size) OVERRIDE;
- virtual int SetSendBufferSize(int32 size) OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual int SetReceiveBufferSize(int32 size) override;
+ virtual int SetSendBufferSize(int32 size) override;
// Releases ownership of underlying SocketDescriptor to caller.
// Internal state is reset so that this object can be used again.
diff --git a/net/socket/unix_domain_listen_socket_posix.h b/net/socket/unix_domain_listen_socket_posix.h
index bbdbf5f..8b9ba8e 100644
--- a/net/socket/unix_domain_listen_socket_posix.h
+++ b/net/socket/unix_domain_listen_socket_posix.h
@@ -64,7 +64,7 @@
bool use_abstract_namespace);
// StreamListenSocket:
- virtual void Accept() OVERRIDE;
+ virtual void Accept() override;
AuthCallback auth_callback_;
@@ -83,7 +83,7 @@
// StreamListenSocketFactory:
virtual scoped_ptr<StreamListenSocket> CreateAndListen(
- StreamListenSocket::Delegate* delegate) const OVERRIDE;
+ StreamListenSocket::Delegate* delegate) const override;
protected:
const std::string path_;
@@ -107,7 +107,7 @@
// UnixDomainListenSocketFactory:
virtual scoped_ptr<StreamListenSocket> CreateAndListen(
- StreamListenSocket::Delegate* delegate) const OVERRIDE;
+ StreamListenSocket::Delegate* delegate) const override;
private:
std::string fallback_path_;
diff --git a/net/socket/unix_domain_listen_socket_posix_unittest.cc b/net/socket/unix_domain_listen_socket_posix_unittest.cc
index 117c5c5..bea60c6 100644
--- a/net/socket/unix_domain_listen_socket_posix_unittest.cc
+++ b/net/socket/unix_domain_listen_socket_posix_unittest.cc
@@ -95,7 +95,7 @@
: event_manager_(event_manager) {}
virtual void DidAccept(StreamListenSocket* server,
- scoped_ptr<StreamListenSocket> connection) OVERRIDE {
+ scoped_ptr<StreamListenSocket> connection) override {
LOG(ERROR) << __PRETTY_FUNCTION__;
connection_ = connection.Pass();
Notify(EVENT_ACCEPT);
@@ -103,7 +103,7 @@
virtual void DidRead(StreamListenSocket* connection,
const char* data,
- int len) OVERRIDE {
+ int len) override {
{
base::AutoLock lock(mutex_);
DCHECK(len);
@@ -112,7 +112,7 @@
Notify(EVENT_READ);
}
- virtual void DidClose(StreamListenSocket* sock) OVERRIDE {
+ virtual void DidClose(StreamListenSocket* sock) override {
Notify(EVENT_CLOSE);
}
@@ -169,12 +169,12 @@
return temp_dir_.path().Append(socket_name);
}
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
event_manager_ = new EventManager();
socket_delegate_.reset(new TestListenSocketDelegate(event_manager_));
}
- virtual void TearDown() OVERRIDE {
+ virtual void TearDown() override {
socket_.reset();
socket_delegate_.reset();
event_manager_ = NULL;
diff --git a/net/socket/unix_domain_server_socket_posix.h b/net/socket/unix_domain_server_socket_posix.h
index 65b3fa1..8fd8b34 100644
--- a/net/socket/unix_domain_server_socket_posix.h
+++ b/net/socket/unix_domain_server_socket_posix.h
@@ -51,13 +51,13 @@
Credentials* credentials);
// ServerSocket implementation.
- virtual int Listen(const IPEndPoint& address, int backlog) OVERRIDE;
+ virtual int Listen(const IPEndPoint& address, int backlog) override;
virtual int ListenWithAddressAndPort(const std::string& unix_domain_path,
int port_unused,
- int backlog) OVERRIDE;
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE;
+ int backlog) override;
+ virtual int GetLocalAddress(IPEndPoint* address) const override;
virtual int Accept(scoped_ptr<StreamSocket>* socket,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
// Accepts an incoming connection on |listen_socket_|, but passes back
// a raw SocketDescriptor instead of a StreamSocket.
diff --git a/net/socket/websocket_endpoint_lock_manager_unittest.cc b/net/socket/websocket_endpoint_lock_manager_unittest.cc
index cfc6cc6..cafd1aa 100644
--- a/net/socket/websocket_endpoint_lock_manager_unittest.cc
+++ b/net/socket/websocket_endpoint_lock_manager_unittest.cc
@@ -22,57 +22,57 @@
FakeStreamSocket() {}
// StreamSocket implementation
- virtual int Connect(const CompletionCallback& callback) OVERRIDE {
+ virtual int Connect(const CompletionCallback& callback) override {
return ERR_FAILED;
}
- virtual void Disconnect() OVERRIDE { return; }
+ virtual void Disconnect() override { return; }
- virtual bool IsConnected() const OVERRIDE { return false; }
+ virtual bool IsConnected() const override { return false; }
- virtual bool IsConnectedAndIdle() const OVERRIDE { return false; }
+ virtual bool IsConnectedAndIdle() const override { return false; }
- virtual int GetPeerAddress(IPEndPoint* address) const OVERRIDE {
+ virtual int GetPeerAddress(IPEndPoint* address) const override {
return ERR_FAILED;
}
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE {
+ virtual int GetLocalAddress(IPEndPoint* address) const override {
return ERR_FAILED;
}
- virtual const BoundNetLog& NetLog() const OVERRIDE { return bound_net_log_; }
+ virtual const BoundNetLog& NetLog() const override { return bound_net_log_; }
- virtual void SetSubresourceSpeculation() OVERRIDE { return; }
- virtual void SetOmniboxSpeculation() OVERRIDE { return; }
+ virtual void SetSubresourceSpeculation() override { return; }
+ virtual void SetOmniboxSpeculation() override { return; }
- virtual bool WasEverUsed() const OVERRIDE { return false; }
+ virtual bool WasEverUsed() const override { return false; }
- virtual bool UsingTCPFastOpen() const OVERRIDE { return false; }
+ virtual bool UsingTCPFastOpen() const override { return false; }
- virtual bool WasNpnNegotiated() const OVERRIDE { return false; }
+ virtual bool WasNpnNegotiated() const override { return false; }
- virtual NextProto GetNegotiatedProtocol() const OVERRIDE {
+ virtual NextProto GetNegotiatedProtocol() const override {
return kProtoUnknown;
}
- virtual bool GetSSLInfo(SSLInfo* ssl_info) OVERRIDE { return false; }
+ virtual bool GetSSLInfo(SSLInfo* ssl_info) override { return false; }
// Socket implementation
virtual int Read(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return ERR_FAILED;
}
virtual int Write(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return ERR_FAILED;
}
- virtual int SetReceiveBufferSize(int32 size) OVERRIDE { return ERR_FAILED; }
+ virtual int SetReceiveBufferSize(int32 size) override { return ERR_FAILED; }
- virtual int SetSendBufferSize(int32 size) OVERRIDE { return ERR_FAILED; }
+ virtual int SetSendBufferSize(int32 size) override { return ERR_FAILED; }
private:
BoundNetLog bound_net_log_;
@@ -84,7 +84,7 @@
public:
FakeWaiter() : called_(false) {}
- virtual void GotEndpointLock() OVERRIDE {
+ virtual void GotEndpointLock() override {
CHECK(!called_);
called_ = true;
}
diff --git a/net/socket/websocket_transport_client_socket_pool.h b/net/socket/websocket_transport_client_socket_pool.h
index 74b8f78..e918354 100644
--- a/net/socket/websocket_transport_client_socket_pool.h
+++ b/net/socket/websocket_transport_client_socket_pool.h
@@ -65,7 +65,7 @@
const BoundNetLog& request_net_log() const { return request_net_log_; }
// ConnectJob methods.
- virtual LoadState GetLoadState() const OVERRIDE;
+ virtual LoadState GetLoadState() const override;
private:
friend class WebSocketTransportConnectSubJob;
@@ -90,7 +90,7 @@
// Begins the host resolution and the TCP connect. Returns OK on success
// and ERR_IO_PENDING if it cannot immediately service the request.
// Otherwise, it returns a net error code.
- virtual int ConnectInternal() OVERRIDE;
+ virtual int ConnectInternal() override;
TransportConnectJobHelper helper_;
@@ -138,33 +138,33 @@
RequestPriority priority,
ClientSocketHandle* handle,
const CompletionCallback& callback,
- const BoundNetLog& net_log) OVERRIDE;
+ const BoundNetLog& net_log) override;
virtual void RequestSockets(const std::string& group_name,
const void* params,
int num_sockets,
- const BoundNetLog& net_log) OVERRIDE;
+ const BoundNetLog& net_log) override;
virtual void CancelRequest(const std::string& group_name,
- ClientSocketHandle* handle) OVERRIDE;
+ ClientSocketHandle* handle) override;
virtual void ReleaseSocket(const std::string& group_name,
scoped_ptr<StreamSocket> socket,
- int id) OVERRIDE;
- virtual void FlushWithError(int error) OVERRIDE;
- virtual void CloseIdleSockets() OVERRIDE;
- virtual int IdleSocketCount() const OVERRIDE;
+ int id) override;
+ virtual void FlushWithError(int error) override;
+ virtual void CloseIdleSockets() override;
+ virtual int IdleSocketCount() const override;
virtual int IdleSocketCountInGroup(
- const std::string& group_name) const OVERRIDE;
+ const std::string& group_name) const override;
virtual LoadState GetLoadState(
const std::string& group_name,
- const ClientSocketHandle* handle) const OVERRIDE;
+ const ClientSocketHandle* handle) const override;
virtual base::DictionaryValue* GetInfoAsValue(
const std::string& name,
const std::string& type,
- bool include_nested_pools) const OVERRIDE;
- virtual base::TimeDelta ConnectionTimeout() const OVERRIDE;
- virtual ClientSocketPoolHistograms* histograms() const OVERRIDE;
+ bool include_nested_pools) const override;
+ virtual base::TimeDelta ConnectionTimeout() const override;
+ virtual ClientSocketPoolHistograms* histograms() const override;
// HigherLayeredPool implementation.
- virtual bool IsStalled() const OVERRIDE;
+ virtual bool IsStalled() const override;
private:
class ConnectJobDelegate : public ConnectJob::Delegate {
@@ -172,7 +172,7 @@
explicit ConnectJobDelegate(WebSocketTransportClientSocketPool* owner);
virtual ~ConnectJobDelegate();
- virtual void OnConnectJobComplete(int result, ConnectJob* job) OVERRIDE;
+ virtual void OnConnectJobComplete(int result, ConnectJob* job) override;
private:
WebSocketTransportClientSocketPool* owner_;
diff --git a/net/socket/websocket_transport_connect_sub_job.h b/net/socket/websocket_transport_connect_sub_job.h
index 79980d2..e6f81e8 100644
--- a/net/socket/websocket_transport_connect_sub_job.h
+++ b/net/socket/websocket_transport_connect_sub_job.h
@@ -47,7 +47,7 @@
scoped_ptr<StreamSocket> PassSocket() { return transport_socket_.Pass(); }
// Implementation of WebSocketEndpointLockManager::EndpointWaiter.
- virtual void GotEndpointLock() OVERRIDE;
+ virtual void GotEndpointLock() override;
private:
enum State {
diff --git a/net/socket_stream/socket_stream_unittest.cc b/net/socket_stream/socket_stream_unittest.cc
index 069f92e..7c4b50e 100644
--- a/net/socket_stream/socket_stream_unittest.cc
+++ b/net/socket_stream/socket_stream_unittest.cc
@@ -90,7 +90,7 @@
virtual int OnStartOpenConnection(
SocketStream* socket,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
connection_callback_ = callback;
events_.push_back(
SocketStreamEvent(SocketStreamEvent::EVENT_START_OPEN_CONNECTION,
@@ -100,7 +100,7 @@
return OK;
}
virtual void OnConnected(SocketStream* socket,
- int num_pending_send_allowed) OVERRIDE {
+ int num_pending_send_allowed) override {
events_.push_back(
SocketStreamEvent(SocketStreamEvent::EVENT_CONNECTED,
socket, num_pending_send_allowed, std::string(),
@@ -109,7 +109,7 @@
on_connected_.Run(&events_.back());
}
virtual void OnSentData(SocketStream* socket,
- int amount_sent) OVERRIDE {
+ int amount_sent) override {
events_.push_back(
SocketStreamEvent(SocketStreamEvent::EVENT_SENT_DATA, socket,
amount_sent, std::string(), NULL, OK));
@@ -117,14 +117,14 @@
on_sent_data_.Run(&events_.back());
}
virtual void OnReceivedData(SocketStream* socket,
- const char* data, int len) OVERRIDE {
+ const char* data, int len) override {
events_.push_back(
SocketStreamEvent(SocketStreamEvent::EVENT_RECEIVED_DATA, socket, len,
std::string(data, len), NULL, OK));
if (!on_received_data_.is_null())
on_received_data_.Run(&events_.back());
}
- virtual void OnClose(SocketStream* socket) OVERRIDE {
+ virtual void OnClose(SocketStream* socket) override {
events_.push_back(
SocketStreamEvent(SocketStreamEvent::EVENT_CLOSE, socket, 0,
std::string(), NULL, OK));
@@ -134,14 +134,14 @@
callback_.Run(OK);
}
virtual void OnAuthRequired(SocketStream* socket,
- AuthChallengeInfo* auth_info) OVERRIDE {
+ AuthChallengeInfo* auth_info) override {
events_.push_back(
SocketStreamEvent(SocketStreamEvent::EVENT_AUTH_REQUIRED, socket, 0,
std::string(), auth_info, OK));
if (!on_auth_required_.is_null())
on_auth_required_.Run(&events_.back());
}
- virtual void OnError(const SocketStream* socket, int error) OVERRIDE {
+ virtual void OnError(const SocketStream* socket, int error) override {
events_.push_back(
SocketStreamEvent(SocketStreamEvent::EVENT_ERROR, NULL, 0,
std::string(), NULL, error));
@@ -198,7 +198,7 @@
virtual ~SelfDeletingDelegate() {}
// Call DetachDelegate(), delete |this|, then run the callback.
- virtual void OnError(const SocketStream* socket, int error) OVERRIDE {
+ virtual void OnError(const SocketStream* socket, int error) override {
// callback_ will be deleted when we delete |this|, so copy it to call it
// afterwards.
CompletionCallback callback = callback_;
@@ -215,17 +215,17 @@
}
virtual void OnConnected(SocketStream* socket, int max_pending_send_allowed)
- OVERRIDE {
+ override {
ADD_FAILURE() << "OnConnected() should not be called";
}
- virtual void OnSentData(SocketStream* socket, int amount_sent) OVERRIDE {
+ virtual void OnSentData(SocketStream* socket, int amount_sent) override {
ADD_FAILURE() << "OnSentData() should not be called";
}
virtual void OnReceivedData(SocketStream* socket, const char* data, int len)
- OVERRIDE {
+ override {
ADD_FAILURE() << "OnReceivedData() should not be called";
}
- virtual void OnClose(SocketStream* socket) OVERRIDE {
+ virtual void OnClose(SocketStream* socket) override {
ADD_FAILURE() << "OnClose() should not be called";
}
@@ -254,7 +254,7 @@
virtual int OnBeforeSocketStreamConnect(
SocketStream* stream,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return before_connect_result_;
}
diff --git a/net/spdy/buffered_spdy_framer.h b/net/spdy/buffered_spdy_framer.h
index 426bc5f..fba98d7 100644
--- a/net/spdy/buffered_spdy_framer.h
+++ b/net/spdy/buffered_spdy_framer.h
@@ -135,41 +135,41 @@
void set_debug_visitor(SpdyFramerDebugVisitorInterface* debug_visitor);
// SpdyFramerVisitorInterface
- virtual void OnError(SpdyFramer* spdy_framer) OVERRIDE;
+ virtual void OnError(SpdyFramer* spdy_framer) override;
virtual void OnSynStream(SpdyStreamId stream_id,
SpdyStreamId associated_stream_id,
SpdyPriority priority,
bool fin,
- bool unidirectional) OVERRIDE;
- virtual void OnSynReply(SpdyStreamId stream_id, bool fin) OVERRIDE;
- virtual void OnHeaders(SpdyStreamId stream_id, bool fin, bool end) OVERRIDE;
+ bool unidirectional) override;
+ virtual void OnSynReply(SpdyStreamId stream_id, bool fin) override;
+ virtual void OnHeaders(SpdyStreamId stream_id, bool fin, bool end) override;
virtual bool OnControlFrameHeaderData(SpdyStreamId stream_id,
const char* header_data,
- size_t len) OVERRIDE;
+ size_t len) override;
virtual void OnStreamFrameData(SpdyStreamId stream_id,
const char* data,
size_t len,
- bool fin) OVERRIDE;
- virtual void OnSettings(bool clear_persisted) OVERRIDE;
+ bool fin) override;
+ virtual void OnSettings(bool clear_persisted) override;
virtual void OnSetting(
- SpdySettingsIds id, uint8 flags, uint32 value) OVERRIDE;
- virtual void OnSettingsAck() OVERRIDE;
- virtual void OnSettingsEnd() OVERRIDE;
- virtual void OnPing(SpdyPingId unique_id, bool is_ack) OVERRIDE;
+ SpdySettingsIds id, uint8 flags, uint32 value) override;
+ virtual void OnSettingsAck() override;
+ virtual void OnSettingsEnd() override;
+ virtual void OnPing(SpdyPingId unique_id, bool is_ack) override;
virtual void OnRstStream(SpdyStreamId stream_id,
- SpdyRstStreamStatus status) OVERRIDE;
+ SpdyRstStreamStatus status) override;
virtual void OnGoAway(SpdyStreamId last_accepted_stream_id,
- SpdyGoAwayStatus status) OVERRIDE;
+ SpdyGoAwayStatus status) override;
virtual void OnWindowUpdate(SpdyStreamId stream_id,
- uint32 delta_window_size) OVERRIDE;
+ uint32 delta_window_size) override;
virtual void OnPushPromise(SpdyStreamId stream_id,
SpdyStreamId promised_stream_id,
- bool end) OVERRIDE;
+ bool end) override;
virtual void OnDataFrameHeader(SpdyStreamId stream_id,
size_t length,
- bool fin) OVERRIDE;
- virtual void OnContinuation(SpdyStreamId stream_id, bool end) OVERRIDE;
- virtual bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) OVERRIDE;
+ bool fin) override;
+ virtual void OnContinuation(SpdyStreamId stream_id, bool end) override;
+ virtual bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) override;
// SpdyFramer methods.
size_t ProcessInput(const char* data, size_t len);
diff --git a/net/spdy/buffered_spdy_framer_unittest.cc b/net/spdy/buffered_spdy_framer_unittest.cc
index 3e106f9..0fc758b 100644
--- a/net/spdy/buffered_spdy_framer_unittest.cc
+++ b/net/spdy/buffered_spdy_framer_unittest.cc
@@ -25,14 +25,14 @@
promised_stream_id_(static_cast<SpdyStreamId>(-1)) {
}
- virtual void OnError(SpdyFramer::SpdyError error_code) OVERRIDE {
+ virtual void OnError(SpdyFramer::SpdyError error_code) override {
LOG(INFO) << "SpdyFramer Error: " << error_code;
error_count_++;
}
virtual void OnStreamError(
SpdyStreamId stream_id,
- const std::string& description) OVERRIDE {
+ const std::string& description) override {
LOG(INFO) << "SpdyFramer Error on stream: " << stream_id << " "
<< description;
error_count_++;
@@ -43,7 +43,7 @@
SpdyPriority priority,
bool fin,
bool unidirectional,
- const SpdyHeaderBlock& headers) OVERRIDE {
+ const SpdyHeaderBlock& headers) override {
header_stream_id_ = stream_id;
EXPECT_NE(header_stream_id_, SpdyFramer::kInvalidStream);
syn_frame_count_++;
@@ -52,7 +52,7 @@
virtual void OnSynReply(SpdyStreamId stream_id,
bool fin,
- const SpdyHeaderBlock& headers) OVERRIDE {
+ const SpdyHeaderBlock& headers) override {
header_stream_id_ = stream_id;
EXPECT_NE(header_stream_id_, SpdyFramer::kInvalidStream);
syn_reply_frame_count_++;
@@ -61,7 +61,7 @@
virtual void OnHeaders(SpdyStreamId stream_id,
bool fin,
- const SpdyHeaderBlock& headers) OVERRIDE {
+ const SpdyHeaderBlock& headers) override {
header_stream_id_ = stream_id;
EXPECT_NE(header_stream_id_, SpdyFramer::kInvalidStream);
headers_frame_count_++;
@@ -70,33 +70,33 @@
virtual void OnDataFrameHeader(SpdyStreamId stream_id,
size_t length,
- bool fin) OVERRIDE {
+ bool fin) override {
ADD_FAILURE() << "Unexpected OnDataFrameHeader call.";
}
virtual void OnStreamFrameData(SpdyStreamId stream_id,
const char* data,
size_t len,
- bool fin) OVERRIDE {
+ bool fin) override {
LOG(FATAL) << "Unexpected OnStreamFrameData call.";
}
- virtual void OnSettings(bool clear_persisted) OVERRIDE {}
+ virtual void OnSettings(bool clear_persisted) override {}
virtual void OnSetting(SpdySettingsIds id,
uint8 flags,
- uint32 value) OVERRIDE {
+ uint32 value) override {
setting_count_++;
}
- virtual void OnPing(SpdyPingId unique_id, bool is_ack) OVERRIDE {}
+ virtual void OnPing(SpdyPingId unique_id, bool is_ack) override {}
virtual void OnRstStream(SpdyStreamId stream_id,
- SpdyRstStreamStatus status) OVERRIDE {
+ SpdyRstStreamStatus status) override {
}
virtual void OnGoAway(SpdyStreamId last_accepted_stream_id,
- SpdyGoAwayStatus status) OVERRIDE {
+ SpdyGoAwayStatus status) override {
}
bool OnCredentialFrameData(const char*, size_t) {
@@ -112,11 +112,11 @@
void OnGoAway(const SpdyFrame& frame) {}
void OnPing(const SpdyFrame& frame) {}
virtual void OnWindowUpdate(SpdyStreamId stream_id,
- uint32 delta_window_size) OVERRIDE {}
+ uint32 delta_window_size) override {}
virtual void OnPushPromise(SpdyStreamId stream_id,
SpdyStreamId promised_stream_id,
- const SpdyHeaderBlock& headers) OVERRIDE {
+ const SpdyHeaderBlock& headers) override {
header_stream_id_ = stream_id;
EXPECT_NE(header_stream_id_, SpdyFramer::kInvalidStream);
push_promise_frame_count_++;
@@ -125,7 +125,7 @@
headers_ = headers;
}
- virtual bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) OVERRIDE {
+ virtual bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) override {
return true;
}
diff --git a/net/spdy/spdy_buffer_producer.h b/net/spdy/spdy_buffer_producer.h
index fe82b1a..d8777af 100644
--- a/net/spdy/spdy_buffer_producer.h
+++ b/net/spdy/spdy_buffer_producer.h
@@ -37,7 +37,7 @@
virtual ~SimpleBufferProducer();
- virtual scoped_ptr<SpdyBuffer> ProduceBuffer() OVERRIDE;
+ virtual scoped_ptr<SpdyBuffer> ProduceBuffer() override;
private:
scoped_ptr<SpdyBuffer> buffer_;
diff --git a/net/spdy/spdy_frame_builder.cc b/net/spdy/spdy_frame_builder.cc
index b491e8b..0b85211 100644
--- a/net/spdy/spdy_frame_builder.cc
+++ b/net/spdy/spdy_frame_builder.cc
@@ -63,8 +63,8 @@
SpdyFrameType type,
uint8 flags) {
DCHECK_GE(SPDY3, version_);
- DCHECK_NE(-1,
- SpdyConstants::SerializeFrameType(version_, type));
+ DCHECK(SpdyConstants::IsValidFrameType(
+ version_, SpdyConstants::SerializeFrameType(version_, type)));
bool success = true;
FlagsAndLength flags_length = CreateFlagsAndLength(
flags, capacity_ - framer.GetControlFrameHeaderSize());
@@ -101,10 +101,10 @@
SpdyFrameType type,
uint8 flags,
SpdyStreamId stream_id) {
- DCHECK(SpdyConstants::IsValidFrameType(version_,
- SpdyConstants::SerializeFrameType(version_, type)));
+ DCHECK(SpdyConstants::IsValidFrameType(
+ version_, SpdyConstants::SerializeFrameType(version_, type)));
DCHECK_EQ(0u, stream_id & ~kStreamIdMask);
- DCHECK_LT(SPDY3, framer.protocol_version());
+ DCHECK_GT(framer.protocol_version(), SPDY3);
bool success = true;
if (length_ > 0) {
// Update length field for previous frame.
@@ -136,7 +136,7 @@
return false;
}
- if (!WriteUInt16(static_cast<int>(value.size())))
+ if (!WriteUInt16(static_cast<uint16>(value.size())))
return false;
return WriteBytes(value.data(), static_cast<uint16>(value.size()));
@@ -168,17 +168,17 @@
bool SpdyFrameBuilder::OverwriteLength(const SpdyFramer& framer,
size_t length) {
- if (version_ <= SPDY3) {
- DCHECK_GE(SpdyConstants::GetFrameMaximumSize(version_) -
- framer.GetFrameMinimumSize(),
- length);
+ if (version_ < SPDY4) {
+ DCHECK_LE(length,
+ SpdyConstants::GetFrameMaximumSize(version_) -
+ framer.GetFrameMinimumSize());
} else {
- DCHECK_GE(SpdyConstants::GetFrameMaximumSize(version_), length);
+ DCHECK_LE(length, SpdyConstants::GetFrameMaximumSize(version_));
}
bool success = false;
const size_t old_length = length_;
- if (version_ <= SPDY3) {
+ if (version_ < SPDY4) {
FlagsAndLength flags_length = CreateFlagsAndLength(
0, // We're not writing over the flags value anyway.
length);
@@ -198,7 +198,7 @@
bool SpdyFrameBuilder::OverwriteFlags(const SpdyFramer& framer,
uint8 flags) {
- DCHECK_LT(SPDY3, framer.protocol_version());
+ DCHECK_GT(framer.protocol_version(), SPDY3);
bool success = false;
const size_t old_length = length_;
// Flags are the fifth octet in the frame prefix.
diff --git a/net/spdy/spdy_framer.cc b/net/spdy/spdy_framer.cc
index edcc82e..fbe3675 100644
--- a/net/spdy/spdy_framer.cc
+++ b/net/spdy/spdy_framer.cc
@@ -675,15 +675,15 @@
new SpdyFrameReader(current_frame_buffer_.get(),
current_frame_buffer_length_));
- uint16 version = 0;
bool is_control_frame = false;
uint16 control_frame_type_field =
- SpdyConstants::DataFrameType(protocol_version());
+ SpdyConstants::DataFrameType(protocol_version());
// ProcessControlFrameHeader() will set current_frame_type_ to the
// correct value if this is a valid control frame.
current_frame_type_ = DATA;
if (protocol_version() <= SPDY3) {
+ uint16 version = 0;
bool successful_read = reader->ReadUInt16(&version);
DCHECK(successful_read);
is_control_frame = (version & kControlFlagMask) != 0;
@@ -700,9 +700,6 @@
<< " (expected " << protocol_version() << ")";
set_error(SPDY_UNSUPPORTED_VERSION);
return 0;
- } else {
- // Convert version from wire format to SpdyMajorVersion.
- version = SpdyConstants::ParseMajorVersion(version);
}
// We check control_frame_type_field's validity in
// ProcessControlFrameHeader().
@@ -722,7 +719,6 @@
remaining_data_length_ = length_field;
current_frame_length_ = remaining_data_length_ + reader->GetBytesConsumed();
} else {
- version = protocol_version();
uint32 length_field = 0;
bool successful_read = reader->ReadUInt24(&length_field);
DCHECK(successful_read);
@@ -1173,9 +1169,9 @@
const SpdyMajorVersion spdy_version,
const SpdyHeaderBlock* headers) {
if (spdy_version < SPDY3) {
- frame->WriteUInt16(headers->size()); // Number of headers.
+ frame->WriteUInt16(headers->size());
} else {
- frame->WriteUInt32(headers->size()); // Number of headers.
+ frame->WriteUInt32(headers->size());
}
SpdyHeaderBlock::const_iterator it;
for (it = headers->begin(); it != headers->end(); ++it) {
@@ -2847,49 +2843,49 @@
SpdySerializedFrame* ReleaseSerializedFrame() { return frame_.release(); }
- virtual void VisitData(const SpdyDataIR& data) OVERRIDE {
+ virtual void VisitData(const SpdyDataIR& data) override {
frame_.reset(framer_->SerializeData(data));
}
- virtual void VisitSynStream(const SpdySynStreamIR& syn_stream) OVERRIDE {
+ virtual void VisitSynStream(const SpdySynStreamIR& syn_stream) override {
frame_.reset(framer_->SerializeSynStream(syn_stream));
}
- virtual void VisitSynReply(const SpdySynReplyIR& syn_reply) OVERRIDE {
+ virtual void VisitSynReply(const SpdySynReplyIR& syn_reply) override {
frame_.reset(framer_->SerializeSynReply(syn_reply));
}
- virtual void VisitRstStream(const SpdyRstStreamIR& rst_stream) OVERRIDE {
+ virtual void VisitRstStream(const SpdyRstStreamIR& rst_stream) override {
frame_.reset(framer_->SerializeRstStream(rst_stream));
}
- virtual void VisitSettings(const SpdySettingsIR& settings) OVERRIDE {
+ virtual void VisitSettings(const SpdySettingsIR& settings) override {
frame_.reset(framer_->SerializeSettings(settings));
}
- virtual void VisitPing(const SpdyPingIR& ping) OVERRIDE {
+ virtual void VisitPing(const SpdyPingIR& ping) override {
frame_.reset(framer_->SerializePing(ping));
}
- virtual void VisitGoAway(const SpdyGoAwayIR& goaway) OVERRIDE {
+ virtual void VisitGoAway(const SpdyGoAwayIR& goaway) override {
frame_.reset(framer_->SerializeGoAway(goaway));
}
- virtual void VisitHeaders(const SpdyHeadersIR& headers) OVERRIDE {
+ virtual void VisitHeaders(const SpdyHeadersIR& headers) override {
frame_.reset(framer_->SerializeHeaders(headers));
}
virtual void VisitWindowUpdate(
- const SpdyWindowUpdateIR& window_update) OVERRIDE {
+ const SpdyWindowUpdateIR& window_update) override {
frame_.reset(framer_->SerializeWindowUpdate(window_update));
}
- virtual void VisitBlocked(const SpdyBlockedIR& blocked) OVERRIDE {
+ virtual void VisitBlocked(const SpdyBlockedIR& blocked) override {
frame_.reset(framer_->SerializeBlocked(blocked));
}
virtual void VisitPushPromise(
- const SpdyPushPromiseIR& push_promise) OVERRIDE {
+ const SpdyPushPromiseIR& push_promise) override {
frame_.reset(framer_->SerializePushPromise(push_promise));
}
virtual void VisitContinuation(
- const SpdyContinuationIR& continuation) OVERRIDE {
+ const SpdyContinuationIR& continuation) override {
frame_.reset(framer_->SerializeContinuation(continuation));
}
- virtual void VisitAltSvc(const SpdyAltSvcIR& altsvc) OVERRIDE {
+ virtual void VisitAltSvc(const SpdyAltSvcIR& altsvc) override {
frame_.reset(framer_->SerializeAltSvc(altsvc));
}
- virtual void VisitPriority(const SpdyPriorityIR& priority) OVERRIDE {
+ virtual void VisitPriority(const SpdyPriorityIR& priority) override {
frame_.reset(framer_->SerializePriority(priority));
}
diff --git a/net/spdy/spdy_framer_test.cc b/net/spdy/spdy_framer_test.cc
index 2676b4d..07b23ac 100644
--- a/net/spdy/spdy_framer_test.cc
+++ b/net/spdy/spdy_framer_test.cc
@@ -82,22 +82,22 @@
buffer_.reset(new char[kMaxDecompressedSize]);
}
- virtual void OnError(SpdyFramer* framer) OVERRIDE { LOG(FATAL); }
+ virtual void OnError(SpdyFramer* framer) override { LOG(FATAL); }
virtual void OnDataFrameHeader(SpdyStreamId stream_id,
size_t length,
- bool fin) OVERRIDE {
+ bool fin) override {
LOG(FATAL) << "Unexpected data frame header";
}
virtual void OnStreamFrameData(SpdyStreamId stream_id,
const char* data,
size_t len,
- bool fin) OVERRIDE {
+ bool fin) override {
LOG(FATAL);
}
virtual bool OnControlFrameHeaderData(SpdyStreamId stream_id,
const char* header_data,
- size_t len) OVERRIDE {
+ size_t len) override {
CHECK(buffer_.get() != NULL);
CHECK_GE(kMaxDecompressedSize, size_ + len);
CHECK(!finished_);
@@ -115,7 +115,7 @@
SpdyStreamId associated_stream_id,
SpdyPriority priority,
bool fin,
- bool unidirectional) OVERRIDE {
+ bool unidirectional) override {
SpdyFramer framer(version_);
framer.set_enable_compression(false);
SpdySynStreamIR syn_stream(stream_id);
@@ -129,7 +129,7 @@
size_ += framer.GetSynStreamMinimumSize();
}
- virtual void OnSynReply(SpdyStreamId stream_id, bool fin) OVERRIDE {
+ virtual void OnSynReply(SpdyStreamId stream_id, bool fin) override {
SpdyFramer framer(version_);
framer.set_enable_compression(false);
SpdyHeadersIR headers(stream_id);
@@ -141,26 +141,26 @@
}
virtual void OnRstStream(SpdyStreamId stream_id,
- SpdyRstStreamStatus status) OVERRIDE {
+ SpdyRstStreamStatus status) override {
LOG(FATAL);
}
virtual void OnSetting(SpdySettingsIds id,
uint8 flags,
- uint32 value) OVERRIDE {
+ uint32 value) override {
LOG(FATAL);
}
- virtual void OnPing(SpdyPingId unique_id, bool is_ack) OVERRIDE {
+ virtual void OnPing(SpdyPingId unique_id, bool is_ack) override {
LOG(FATAL);
}
- virtual void OnSettingsEnd() OVERRIDE { LOG(FATAL); }
+ virtual void OnSettingsEnd() override { LOG(FATAL); }
virtual void OnGoAway(SpdyStreamId last_accepted_stream_id,
- SpdyGoAwayStatus status) OVERRIDE {
+ SpdyGoAwayStatus status) override {
LOG(FATAL);
}
virtual void OnHeaders(SpdyStreamId stream_id,
bool fin,
- bool end) OVERRIDE {
+ bool end) override {
SpdyFramer framer(version_);
framer.set_enable_compression(false);
SpdyHeadersIR headers(stream_id);
@@ -177,7 +177,7 @@
virtual void OnPushPromise(SpdyStreamId stream_id,
SpdyStreamId promised_stream_id,
- bool end) OVERRIDE {
+ bool end) override {
SpdyFramer framer(version_);
framer.set_enable_compression(false);
SpdyPushPromiseIR push_promise(stream_id, promised_stream_id);
@@ -187,19 +187,19 @@
size_ += framer.GetPushPromiseMinimumSize();
}
- virtual void OnContinuation(SpdyStreamId stream_id, bool end) OVERRIDE {
+ virtual void OnContinuation(SpdyStreamId stream_id, bool end) override {
LOG(FATAL);
}
virtual void OnPriority(SpdyStreamId stream_id,
SpdyStreamId parent_stream_id,
uint8 weight,
- bool exclusive) OVERRIDE {
+ bool exclusive) override {
// Do nothing.
}
virtual bool OnUnknownFrame(SpdyStreamId stream_id,
- int frame_type) OVERRIDE {
+ int frame_type) override {
LOG(FATAL);
return false;
}
@@ -210,7 +210,7 @@
}
virtual void OnWindowUpdate(SpdyStreamId stream_id,
- uint32 delta_window_size) OVERRIDE {
+ uint32 delta_window_size) override {
LOG(FATAL);
}
@@ -277,7 +277,7 @@
header_control_type_(DATA),
header_buffer_valid_(false) {}
- virtual void OnError(SpdyFramer* f) OVERRIDE {
+ virtual void OnError(SpdyFramer* f) override {
LOG(INFO) << "SpdyFramer Error: "
<< SpdyFramer::ErrorCodeToString(f->error_code());
++error_count_;
@@ -285,7 +285,7 @@
virtual void OnDataFrameHeader(SpdyStreamId stream_id,
size_t length,
- bool fin) OVERRIDE {
+ bool fin) override {
++data_frame_count_;
header_stream_id_ = stream_id;
}
@@ -293,7 +293,7 @@
virtual void OnStreamFrameData(SpdyStreamId stream_id,
const char* data,
size_t len,
- bool fin) OVERRIDE {
+ bool fin) override {
EXPECT_EQ(header_stream_id_, stream_id);
if (len == 0)
++zero_length_data_frame_count_;
@@ -310,7 +310,7 @@
virtual bool OnControlFrameHeaderData(SpdyStreamId stream_id,
const char* header_data,
- size_t len) OVERRIDE {
+ size_t len) override {
++control_frame_header_data_count_;
CHECK_EQ(header_stream_id_, stream_id);
if (len == 0) {
@@ -339,7 +339,7 @@
SpdyStreamId associated_stream_id,
SpdyPriority priority,
bool fin,
- bool unidirectional) OVERRIDE {
+ bool unidirectional) override {
++syn_frame_count_;
if (framer_.protocol_version() > SPDY3) {
InitHeaderStreaming(HEADERS, stream_id);
@@ -351,7 +351,7 @@
}
}
- virtual void OnSynReply(SpdyStreamId stream_id, bool fin) OVERRIDE {
+ virtual void OnSynReply(SpdyStreamId stream_id, bool fin) override {
++syn_reply_frame_count_;
if (framer_.protocol_version() > SPDY3) {
InitHeaderStreaming(HEADERS, stream_id);
@@ -364,12 +364,12 @@
}
virtual void OnRstStream(SpdyStreamId stream_id,
- SpdyRstStreamStatus status) OVERRIDE {
+ SpdyRstStreamStatus status) override {
++fin_frame_count_;
}
virtual bool OnRstStreamFrameData(const char* rst_stream_data,
- size_t len) OVERRIDE {
+ size_t len) override {
if ((rst_stream_data != NULL) && (len > 0)) {
fin_opaque_data_ += std::string(rst_stream_data, len);
}
@@ -378,30 +378,30 @@
virtual void OnSetting(SpdySettingsIds id,
uint8 flags,
- uint32 value) OVERRIDE {
+ uint32 value) override {
++setting_count_;
}
- virtual void OnSettingsAck() OVERRIDE {
+ virtual void OnSettingsAck() override {
DCHECK_LT(SPDY3, framer_.protocol_version());
++settings_ack_received_;
}
- virtual void OnSettingsEnd() OVERRIDE {
+ virtual void OnSettingsEnd() override {
if (framer_.protocol_version() <= SPDY3) { return; }
++settings_ack_sent_;
}
- virtual void OnPing(SpdyPingId unique_id, bool is_ack) OVERRIDE {
+ virtual void OnPing(SpdyPingId unique_id, bool is_ack) override {
DLOG(FATAL);
}
virtual void OnGoAway(SpdyStreamId last_accepted_stream_id,
- SpdyGoAwayStatus status) OVERRIDE {
+ SpdyGoAwayStatus status) override {
++goaway_count_;
}
- virtual void OnHeaders(SpdyStreamId stream_id, bool fin, bool end) OVERRIDE {
+ virtual void OnHeaders(SpdyStreamId stream_id, bool fin, bool end) override {
++headers_frame_count_;
InitHeaderStreaming(HEADERS, stream_id);
if (fin) {
@@ -410,21 +410,21 @@
}
virtual void OnWindowUpdate(SpdyStreamId stream_id,
- uint32 delta_window_size) OVERRIDE {
+ uint32 delta_window_size) override {
last_window_update_stream_ = stream_id;
last_window_update_delta_ = delta_window_size;
}
virtual void OnPushPromise(SpdyStreamId stream_id,
SpdyStreamId promised_stream_id,
- bool end) OVERRIDE {
+ bool end) override {
++push_promise_frame_count_;
InitHeaderStreaming(PUSH_PROMISE, stream_id);
last_push_promise_stream_ = stream_id;
last_push_promise_promised_stream_ = promised_stream_id;
}
- virtual void OnContinuation(SpdyStreamId stream_id, bool end) OVERRIDE {
+ virtual void OnContinuation(SpdyStreamId stream_id, bool end) override {
++continuation_count_;
}
@@ -433,7 +433,7 @@
uint16 port,
StringPiece protocol_id,
StringPiece host,
- StringPiece origin) OVERRIDE {
+ StringPiece origin) override {
test_altsvc_ir_.set_stream_id(stream_id);
test_altsvc_ir_.set_max_age(max_age);
test_altsvc_ir_.set_port(port);
@@ -448,11 +448,11 @@
virtual void OnPriority(SpdyStreamId stream_id,
SpdyStreamId parent_stream_id,
uint8 weight,
- bool exclusive) OVERRIDE {
+ bool exclusive) override {
++priority_count_;
}
- virtual bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) OVERRIDE {
+ virtual bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) override {
DLOG(INFO) << "Unknown frame type " << frame_type;
return on_unknown_frame_result_;
}
@@ -460,14 +460,14 @@
virtual void OnSendCompressedFrame(SpdyStreamId stream_id,
SpdyFrameType type,
size_t payload_len,
- size_t frame_len) OVERRIDE {
+ size_t frame_len) override {
last_payload_len_ = payload_len;
last_frame_len_ = frame_len;
}
virtual void OnReceiveCompressedFrame(SpdyStreamId stream_id,
SpdyFrameType type,
- size_t frame_len) OVERRIDE {
+ size_t frame_len) override {
last_frame_len_ = frame_len;
}
diff --git a/net/spdy/spdy_http_stream.h b/net/spdy/spdy_http_stream.h
index 0f37c66..fe3c87d 100644
--- a/net/spdy/spdy_http_stream.h
+++ b/net/spdy/spdy_http_stream.h
@@ -44,44 +44,44 @@
virtual int InitializeStream(const HttpRequestInfo* request_info,
RequestPriority priority,
const BoundNetLog& net_log,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int SendRequest(const HttpRequestHeaders& headers,
HttpResponseInfo* response,
- const CompletionCallback& callback) OVERRIDE;
- virtual UploadProgress GetUploadProgress() const OVERRIDE;
- virtual int ReadResponseHeaders(const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual UploadProgress GetUploadProgress() const override;
+ virtual int ReadResponseHeaders(const CompletionCallback& callback) override;
virtual int ReadResponseBody(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
- virtual void Close(bool not_reusable) OVERRIDE;
- virtual HttpStream* RenewStreamForAuth() OVERRIDE;
- virtual bool IsResponseBodyComplete() const OVERRIDE;
- virtual bool CanFindEndOfResponse() const OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual void Close(bool not_reusable) override;
+ virtual HttpStream* RenewStreamForAuth() override;
+ virtual bool IsResponseBodyComplete() const override;
+ virtual bool CanFindEndOfResponse() const override;
// Must not be called if a NULL SpdySession was pssed into the
// constructor.
- virtual bool IsConnectionReused() const OVERRIDE;
+ virtual bool IsConnectionReused() const override;
- virtual void SetConnectionReused() OVERRIDE;
- virtual bool IsConnectionReusable() const OVERRIDE;
- virtual int64 GetTotalReceivedBytes() const OVERRIDE;
+ virtual void SetConnectionReused() override;
+ virtual bool IsConnectionReusable() const override;
+ virtual int64 GetTotalReceivedBytes() const override;
virtual bool GetLoadTimingInfo(
- LoadTimingInfo* load_timing_info) const OVERRIDE;
- virtual void GetSSLInfo(SSLInfo* ssl_info) OVERRIDE;
+ LoadTimingInfo* load_timing_info) const override;
+ virtual void GetSSLInfo(SSLInfo* ssl_info) override;
virtual void GetSSLCertRequestInfo(
- SSLCertRequestInfo* cert_request_info) OVERRIDE;
- virtual bool IsSpdyHttpStream() const OVERRIDE;
- virtual void Drain(HttpNetworkSession* session) OVERRIDE;
- virtual void SetPriority(RequestPriority priority) OVERRIDE;
+ SSLCertRequestInfo* cert_request_info) override;
+ virtual bool IsSpdyHttpStream() const override;
+ virtual void Drain(HttpNetworkSession* session) override;
+ virtual void SetPriority(RequestPriority priority) override;
// SpdyStream::Delegate implementation.
- virtual void OnRequestHeadersSent() OVERRIDE;
+ virtual void OnRequestHeadersSent() override;
virtual SpdyResponseHeadersStatus OnResponseHeadersUpdated(
- const SpdyHeaderBlock& response_headers) OVERRIDE;
- virtual void OnDataReceived(scoped_ptr<SpdyBuffer> buffer) OVERRIDE;
- virtual void OnDataSent() OVERRIDE;
- virtual void OnClose(int status) OVERRIDE;
+ const SpdyHeaderBlock& response_headers) override;
+ virtual void OnDataReceived(scoped_ptr<SpdyBuffer> buffer) override;
+ virtual void OnDataSent() override;
+ virtual void OnClose(int status) override;
private:
// Must be called only when |request_info_| is non-NULL.
diff --git a/net/spdy/spdy_http_stream_unittest.cc b/net/spdy/spdy_http_stream_unittest.cc
index f51133f..f1c1de2 100644
--- a/net/spdy/spdy_http_stream_unittest.cc
+++ b/net/spdy/spdy_http_stream_unittest.cc
@@ -14,10 +14,10 @@
#include "crypto/ec_signature_creator.h"
#include "crypto/signature_creator.h"
#include "net/base/capturing_net_log.h"
+#include "net/base/chunked_upload_data_stream.h"
#include "net/base/load_timing_info.h"
#include "net/base/load_timing_info_test_util.h"
-#include "net/base/upload_data_stream.h"
-#include "net/base/upload_element_reader.h"
+#include "net/base/test_completion_callback.h"
#include "net/cert/asn1_util.h"
#include "net/http/http_request_info.h"
#include "net/http/http_response_headers.h"
@@ -79,7 +79,7 @@
OrderedSocketData* data() { return data_.get(); }
protected:
- virtual void TearDown() OVERRIDE {
+ virtual void TearDown() override {
crypto::ECSignatureCreator::SetFactoryForTesting(NULL);
base::MessageLoop::current()->RunUntilIdle();
}
@@ -338,10 +338,10 @@
key);
EXPECT_EQ(spdy_util_.spdy_version(), session_->GetProtocolVersion());
- UploadDataStream upload_stream(UploadDataStream::CHUNKED, 0);
+ ChunkedUploadDataStream upload_stream(0);
const int kFirstChunkSize = kUploadDataSize/2;
- upload_stream.AppendChunk(kUploadData, kFirstChunkSize, false);
- upload_stream.AppendChunk(kUploadData + kFirstChunkSize,
+ upload_stream.AppendData(kUploadData, kFirstChunkSize, false);
+ upload_stream.AppendData(kUploadData + kFirstChunkSize,
kUploadDataSize - kFirstChunkSize, true);
HttpRequestInfo request;
@@ -349,7 +349,7 @@
request.url = GURL("http://www.google.com/");
request.upload_data_stream = &upload_stream;
- ASSERT_EQ(OK, upload_stream.Init(CompletionCallback()));
+ ASSERT_EQ(OK, upload_stream.Init(TestCompletionCallback().callback()));
TestCompletionCallback callback;
HttpResponseInfo response;
@@ -413,15 +413,15 @@
writes, arraysize(writes),
key);
- UploadDataStream upload_stream(UploadDataStream::CHUNKED, 0);
+ ChunkedUploadDataStream upload_stream(0);
HttpRequestInfo request;
request.method = "POST";
request.url = GURL("http://www.google.com/");
request.upload_data_stream = &upload_stream;
- ASSERT_EQ(OK, upload_stream.Init(CompletionCallback()));
- upload_stream.AppendChunk(kUploadData, kUploadDataSize, false);
+ ASSERT_EQ(OK, upload_stream.Init(TestCompletionCallback().callback()));
+ upload_stream.AppendData(kUploadData, kUploadDataSize, false);
BoundNetLog net_log;
scoped_ptr<SpdyHttpStream> http_stream(new SpdyHttpStream(session_, true));
@@ -443,8 +443,8 @@
EXPECT_EQ(OK, callback.WaitForResult());
// Now append the final two chunks which will enqueue two more writes.
- upload_stream.AppendChunk(kUploadData1, kUploadData1Size, false);
- upload_stream.AppendChunk(kUploadData, kUploadDataSize, true);
+ upload_stream.AppendData(kUploadData1, kUploadData1Size, false);
+ upload_stream.AppendData(kUploadData, kUploadDataSize, true);
// Finish writing all the chunks.
deterministic_data()->RunFor(2);
@@ -512,15 +512,15 @@
writes, arraysize(writes),
key);
- UploadDataStream upload_stream(UploadDataStream::CHUNKED, 0);
+ ChunkedUploadDataStream upload_stream(0);
HttpRequestInfo request;
request.method = "POST";
request.url = GURL("http://www.google.com/");
request.upload_data_stream = &upload_stream;
- ASSERT_EQ(OK, upload_stream.Init(CompletionCallback()));
- upload_stream.AppendChunk(kUploadData, kUploadDataSize, false);
+ ASSERT_EQ(OK, upload_stream.Init(TestCompletionCallback().callback()));
+ upload_stream.AppendData(kUploadData, kUploadDataSize, false);
BoundNetLog net_log;
scoped_ptr<SpdyHttpStream> http_stream(new SpdyHttpStream(session_, true));
@@ -542,7 +542,7 @@
EXPECT_EQ(OK, callback.WaitForResult());
// Now end the stream with an empty data frame and the FIN set.
- upload_stream.AppendChunk(NULL, 0, true);
+ upload_stream.AppendData(NULL, 0, true);
// Finish writing the final frame.
deterministic_data()->RunFor(1);
@@ -597,15 +597,15 @@
writes, arraysize(writes),
key);
- UploadDataStream upload_stream(UploadDataStream::CHUNKED, 0);
+ ChunkedUploadDataStream upload_stream(0);
HttpRequestInfo request;
request.method = "POST";
request.url = GURL("http://www.google.com/");
request.upload_data_stream = &upload_stream;
- ASSERT_EQ(OK, upload_stream.Init(CompletionCallback()));
- upload_stream.AppendChunk("", 0, true);
+ ASSERT_EQ(OK, upload_stream.Init(TestCompletionCallback().callback()));
+ upload_stream.AppendData("", 0, true);
BoundNetLog net_log;
scoped_ptr<SpdyHttpStream> http_stream(new SpdyHttpStream(session_, true));
@@ -727,15 +727,15 @@
writes, arraysize(writes),
key);
- UploadDataStream upload_stream(UploadDataStream::CHUNKED, 0);
+ ChunkedUploadDataStream upload_stream(0);
HttpRequestInfo request;
request.method = "POST";
request.url = GURL("http://www.google.com/");
request.upload_data_stream = &upload_stream;
- ASSERT_EQ(OK, upload_stream.Init(CompletionCallback()));
- upload_stream.AppendChunk(kUploadData, kUploadDataSize, true);
+ ASSERT_EQ(OK, upload_stream.Init(TestCompletionCallback().callback()));
+ upload_stream.AppendData(kUploadData, kUploadDataSize, true);
BoundNetLog net_log;
scoped_ptr<SpdyHttpStream> http_stream(new SpdyHttpStream(session_, true));
diff --git a/net/spdy/spdy_network_transaction_unittest.cc b/net/spdy/spdy_network_transaction_unittest.cc
index 59a2f1b..92188ac 100644
--- a/net/spdy/spdy_network_transaction_unittest.cc
+++ b/net/spdy/spdy_network_transaction_unittest.cc
@@ -15,10 +15,11 @@
#include "base/strings/string_piece.h"
#include "base/test/test_file_util.h"
#include "net/base/auth.h"
+#include "net/base/chunked_upload_data_stream.h"
+#include "net/base/elements_upload_data_stream.h"
#include "net/base/net_log_unittest.h"
#include "net/base/request_priority.h"
#include "net/base/upload_bytes_element_reader.h"
-#include "net/base/upload_data_stream.h"
#include "net/base/upload_file_element_reader.h"
#include "net/http/http_network_session_peer.h"
#include "net/http/http_network_transaction.h"
@@ -120,7 +121,7 @@
}
virtual ~SpdyNetworkTransactionTest() {
- // UploadDataStream posts deletion tasks back to the message loop on
+ // UploadDataStream may post a deletion tasks back to the message loop on
// destruction.
upload_data_stream_.reset();
base::RunLoop().RunUntilIdle();
@@ -456,7 +457,7 @@
element_readers.push_back(
new UploadBytesElementReader(kUploadData, kUploadDataSize));
upload_data_stream_.reset(
- new UploadDataStream(element_readers.Pass(), 0));
+ new ElementsUploadDataStream(element_readers.Pass(), 0));
google_post_request_.method = "POST";
google_post_request_.url = GURL(kDefaultURL);
@@ -481,7 +482,7 @@
kUploadDataSize,
base::Time()));
upload_data_stream_.reset(
- new UploadDataStream(element_readers.Pass(), 0));
+ new ElementsUploadDataStream(element_readers.Pass(), 0));
google_post_request_.method = "POST";
google_post_request_.url = GURL(kDefaultURL);
@@ -509,7 +510,7 @@
kUploadDataSize,
base::Time()));
upload_data_stream_.reset(
- new UploadDataStream(element_readers.Pass(), 0));
+ new ElementsUploadDataStream(element_readers.Pass(), 0));
google_post_request_.method = "POST";
google_post_request_.url = GURL(kDefaultURL);
@@ -542,7 +543,7 @@
kUploadData + kFileRangeOffset + kFileRangeLength,
kUploadDataSize - (kFileRangeOffset + kFileRangeLength)));
upload_data_stream_.reset(
- new UploadDataStream(element_readers.Pass(), 0));
+ new ElementsUploadDataStream(element_readers.Pass(), 0));
google_post_request_.method = "POST";
google_post_request_.url = GURL(kDefaultURL);
@@ -554,12 +555,11 @@
const HttpRequestInfo& CreateChunkedPostRequest() {
if (!google_chunked_post_request_initialized_) {
- upload_data_stream_.reset(
- new UploadDataStream(UploadDataStream::CHUNKED, 0));
+ upload_chunked_data_stream_.reset(new ChunkedUploadDataStream(0));
google_chunked_post_request_.method = "POST";
google_chunked_post_request_.url = GURL(kDefaultURL);
google_chunked_post_request_.upload_data_stream =
- upload_data_stream_.get();
+ upload_chunked_data_stream_.get();
google_chunked_post_request_initialized_ = true;
}
return google_chunked_post_request_;
@@ -688,9 +688,14 @@
callback.WaitForResult();
}
+ ChunkedUploadDataStream* upload_chunked_data_stream() const {
+ return upload_chunked_data_stream_.get();
+ }
+
SpdyTestUtil spdy_util_;
private:
+ scoped_ptr<ChunkedUploadDataStream> upload_chunked_data_stream_;
scoped_ptr<UploadDataStream> upload_data_stream_;
bool google_get_request_initialized_;
bool google_post_request_initialized_;
@@ -774,7 +779,7 @@
// SpdyFramer::ConvertRequestPriorityToSpdyPriority to make
// sure it's being done right.
if (spdy_util_.spdy_version() < SPDY3) {
- switch(p) {
+ switch (p) {
case HIGHEST:
EXPECT_EQ(0, spdy_prio);
break;
@@ -1858,9 +1863,8 @@
// These chunks get merged into a single frame when being sent.
const int kFirstChunkSize = kUploadDataSize/2;
- helper.request().upload_data_stream->AppendChunk(
- kUploadData, kFirstChunkSize, false);
- helper.request().upload_data_stream->AppendChunk(
+ upload_chunked_data_stream()->AppendData(kUploadData, kFirstChunkSize, false);
+ upload_chunked_data_stream()->AppendData(
kUploadData + kFirstChunkSize, kUploadDataSize - kFirstChunkSize, true);
helper.RunToCompletion(&data);
@@ -1898,19 +1902,16 @@
DEFAULT_PRIORITY,
BoundNetLog(), GetParam(), NULL);
- helper.request().upload_data_stream->AppendChunk(
- kUploadData, kUploadDataSize, false);
+ upload_chunked_data_stream()->AppendData(kUploadData, kUploadDataSize, false);
helper.RunPreTestSetup();
helper.AddData(&data);
ASSERT_TRUE(helper.StartDefaultTest());
base::RunLoop().RunUntilIdle();
- helper.request().upload_data_stream->AppendChunk(
- kUploadData, kUploadDataSize, false);
+ upload_chunked_data_stream()->AppendData(kUploadData, kUploadDataSize, false);
base::RunLoop().RunUntilIdle();
- helper.request().upload_data_stream->AppendChunk(
- kUploadData, kUploadDataSize, true);
+ upload_chunked_data_stream()->AppendData(kUploadData, kUploadDataSize, true);
helper.FinishDefaultTest();
helper.VerifyDataConsumed();
@@ -1972,7 +1973,7 @@
BufferedSpdyFramer framer(spdy_util_.spdy_version(), false);
// Create an empty UploadDataStream.
ScopedVector<UploadElementReader> element_readers;
- UploadDataStream stream(element_readers.Pass(), 0);
+ ElementsUploadDataStream stream(element_readers.Pass(), 0);
// Setup the request
HttpRequestInfo request;
@@ -2046,8 +2047,7 @@
EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine());
// Finish sending the request body.
- helper.request().upload_data_stream->AppendChunk(
- kUploadData, kUploadDataSize, true);
+ upload_chunked_data_stream()->AppendData(kUploadData, kUploadDataSize, true);
data.RunFor(2);
std::string response_body;
@@ -4442,7 +4442,7 @@
writes.push_back(CreateMockWrite(*initial_settings_frame));
if (GetParam().protocol >= kProtoSPDY31) {
writes.push_back(CreateMockWrite(*initial_window_update));
- };
+ }
writes.push_back(CreateMockWrite(*settings_frame));
writes.push_back(CreateMockWrite(*req));
@@ -4608,7 +4608,7 @@
};
scoped_ptr<OrderedSocketData> data;
- switch(GetParam().ssl_type) {
+ switch (GetParam().ssl_type) {
case SPDYNOSSL:
data.reset(new OrderedSocketData(reads_SPDYNOSSL,
arraysize(reads_SPDYNOSSL),
@@ -4768,7 +4768,7 @@
};
scoped_ptr<OrderedSocketData> data_proxy;
- switch(GetParam().ssl_type) {
+ switch (GetParam().ssl_type) {
case SPDYNPN:
data_proxy.reset(new OrderedSocketData(reads_SPDYNPN,
arraysize(reads_SPDYNPN),
@@ -5888,7 +5888,7 @@
element_readers.push_back(
new UploadBytesElementReader(content->c_str(), content->size()));
}
- UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
// Setup the request
HttpRequestInfo request;
@@ -6053,7 +6053,7 @@
element_readers.push_back(
new UploadBytesElementReader(content->c_str(), content->size()));
}
- UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
// Setup the request
HttpRequestInfo request;
@@ -6169,7 +6169,7 @@
upload_data_string.append(kUploadData, kUploadDataSize);
element_readers.push_back(new UploadBytesElementReader(
upload_data_string.c_str(), upload_data_string.size()));
- UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
HttpRequestInfo request;
request.method = "POST";
@@ -6286,7 +6286,7 @@
upload_data_string.append(kUploadData, kUploadDataSize);
element_readers.push_back(new UploadBytesElementReader(
upload_data_string.c_str(), upload_data_string.size()));
- UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
HttpRequestInfo request;
request.method = "POST";
@@ -6413,7 +6413,7 @@
upload_data_string.append(kUploadData, kUploadDataSize);
element_readers.push_back(new UploadBytesElementReader(
upload_data_string.c_str(), upload_data_string.size()));
- UploadDataStream upload_data_stream(element_readers.Pass(), 0);
+ ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
HttpRequestInfo request;
request.method = "POST";
diff --git a/net/spdy/spdy_protocol.h b/net/spdy/spdy_protocol.h
index 296ff0a..cb9bdfe 100644
--- a/net/spdy/spdy_protocol.h
+++ b/net/spdy/spdy_protocol.h
@@ -663,7 +663,7 @@
data_ = data;
}
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ virtual void Visit(SpdyFrameVisitor* visitor) const override;
private:
// Used to store data that this SpdyDataIR should own.
@@ -698,7 +698,7 @@
unidirectional_ = unidirectional;
}
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ virtual void Visit(SpdyFrameVisitor* visitor) const override;
private:
SpdyStreamId associated_to_stream_id_;
@@ -713,7 +713,7 @@
explicit SpdySynReplyIR(SpdyStreamId stream_id)
: SpdyFrameWithNameValueBlockIR(stream_id) {}
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ virtual void Visit(SpdyFrameVisitor* visitor) const override;
private:
DISALLOW_COPY_AND_ASSIGN(SpdySynReplyIR);
@@ -739,7 +739,7 @@
description_ = description;
}
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ virtual void Visit(SpdyFrameVisitor* visitor) const override;
private:
SpdyRstStreamStatus status_;
@@ -785,7 +785,7 @@
is_ack_ = is_ack;
}
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ virtual void Visit(SpdyFrameVisitor* visitor) const override;
private:
ValueMap values_;
@@ -804,7 +804,7 @@
bool is_ack() const { return is_ack_; }
void set_is_ack(bool is_ack) { is_ack_ = is_ack; }
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ virtual void Visit(SpdyFrameVisitor* visitor) const override;
private:
SpdyPingId id_;
@@ -832,7 +832,7 @@
const base::StringPiece& description() const;
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ virtual void Visit(SpdyFrameVisitor* visitor) const override;
private:
SpdyStreamId last_good_stream_id_;
@@ -849,7 +849,7 @@
has_priority_(false),
priority_(0) {}
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ virtual void Visit(SpdyFrameVisitor* visitor) const override;
bool has_priority() const { return has_priority_; }
void set_has_priority(bool has_priority) { has_priority_ = has_priority; }
@@ -876,7 +876,7 @@
delta_ = delta;
}
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ virtual void Visit(SpdyFrameVisitor* visitor) const override;
private:
int32 delta_;
@@ -890,7 +890,7 @@
explicit SpdyBlockedIR(SpdyStreamId stream_id)
: SpdyFrameWithStreamIdIR(stream_id) {}
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ virtual void Visit(SpdyFrameVisitor* visitor) const override;
private:
DISALLOW_COPY_AND_ASSIGN(SpdyBlockedIR);
@@ -905,7 +905,7 @@
SpdyStreamId promised_stream_id() const { return promised_stream_id_; }
void set_promised_stream_id(SpdyStreamId id) { promised_stream_id_ = id; }
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ virtual void Visit(SpdyFrameVisitor* visitor) const override;
private:
SpdyStreamId promised_stream_id_;
@@ -921,7 +921,7 @@
: SpdyFrameWithNameValueBlockIR(stream_id),
end_headers_(false) {}
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ virtual void Visit(SpdyFrameVisitor* visitor) const override;
bool end_headers() const { return end_headers_; }
void set_end_headers(bool end_headers) {end_headers_ = end_headers;}
@@ -955,7 +955,7 @@
origin_ = origin;
}
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ virtual void Visit(SpdyFrameVisitor* visitor) const override;
private:
uint32 max_age_;
@@ -980,7 +980,7 @@
bool exclusive() const { return exclusive_; }
void set_exclusive(bool exclusive) { exclusive_ = exclusive; }
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ virtual void Visit(SpdyFrameVisitor* visitor) const override;
private:
SpdyStreamId parent_stream_id_;
diff --git a/net/spdy/spdy_proxy_client_socket.h b/net/spdy/spdy_proxy_client_socket.h
index 7a293a0..3b0736c 100644
--- a/net/spdy/spdy_proxy_client_socket.h
+++ b/net/spdy/spdy_proxy_client_socket.h
@@ -57,47 +57,47 @@
virtual ~SpdyProxyClientSocket();
// ProxyClientSocket methods:
- virtual const HttpResponseInfo* GetConnectResponseInfo() const OVERRIDE;
- virtual HttpStream* CreateConnectResponseStream() OVERRIDE;
+ virtual const HttpResponseInfo* GetConnectResponseInfo() const override;
+ virtual HttpStream* CreateConnectResponseStream() override;
virtual const scoped_refptr<HttpAuthController>& GetAuthController() const
- OVERRIDE;
- virtual int RestartWithAuth(const CompletionCallback& callback) OVERRIDE;
- virtual bool IsUsingSpdy() const OVERRIDE;
- virtual NextProto GetProtocolNegotiated() const OVERRIDE;
+ override;
+ virtual int RestartWithAuth(const CompletionCallback& callback) override;
+ virtual bool IsUsingSpdy() const override;
+ virtual NextProto GetProtocolNegotiated() const override;
// StreamSocket implementation.
- virtual int Connect(const CompletionCallback& callback) OVERRIDE;
- virtual void Disconnect() OVERRIDE;
- virtual bool IsConnected() const OVERRIDE;
- virtual bool IsConnectedAndIdle() const OVERRIDE;
- virtual const BoundNetLog& NetLog() const OVERRIDE;
- virtual void SetSubresourceSpeculation() OVERRIDE;
- virtual void SetOmniboxSpeculation() OVERRIDE;
- virtual bool WasEverUsed() const OVERRIDE;
- virtual bool UsingTCPFastOpen() const OVERRIDE;
- virtual bool WasNpnNegotiated() const OVERRIDE;
- virtual NextProto GetNegotiatedProtocol() const OVERRIDE;
- virtual bool GetSSLInfo(SSLInfo* ssl_info) OVERRIDE;
+ virtual int Connect(const CompletionCallback& callback) override;
+ virtual void Disconnect() override;
+ virtual bool IsConnected() const override;
+ virtual bool IsConnectedAndIdle() const override;
+ virtual const BoundNetLog& NetLog() const override;
+ virtual void SetSubresourceSpeculation() override;
+ virtual void SetOmniboxSpeculation() override;
+ virtual bool WasEverUsed() const override;
+ virtual bool UsingTCPFastOpen() const override;
+ virtual bool WasNpnNegotiated() const override;
+ virtual NextProto GetNegotiatedProtocol() const override;
+ virtual bool GetSSLInfo(SSLInfo* ssl_info) override;
// Socket implementation.
virtual int Read(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int Write(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
- virtual int SetReceiveBufferSize(int32 size) OVERRIDE;
- virtual int SetSendBufferSize(int32 size) OVERRIDE;
- virtual int GetPeerAddress(IPEndPoint* address) const OVERRIDE;
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual int SetReceiveBufferSize(int32 size) override;
+ virtual int SetSendBufferSize(int32 size) override;
+ virtual int GetPeerAddress(IPEndPoint* address) const override;
+ virtual int GetLocalAddress(IPEndPoint* address) const override;
// SpdyStream::Delegate implementation.
- virtual void OnRequestHeadersSent() OVERRIDE;
+ virtual void OnRequestHeadersSent() override;
virtual SpdyResponseHeadersStatus OnResponseHeadersUpdated(
- const SpdyHeaderBlock& response_headers) OVERRIDE;
- virtual void OnDataReceived(scoped_ptr<SpdyBuffer> buffer) OVERRIDE;
- virtual void OnDataSent() OVERRIDE;
- virtual void OnClose(int status) OVERRIDE;
+ const SpdyHeaderBlock& response_headers) override;
+ virtual void OnDataReceived(scoped_ptr<SpdyBuffer> buffer) override;
+ virtual void OnDataSent() override;
+ virtual void OnClose(int status) override;
private:
enum State {
diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc
index d5f04ad..6afa427 100644
--- a/net/spdy/spdy_session.cc
+++ b/net/spdy/spdy_session.cc
@@ -16,6 +16,7 @@
#include "base/metrics/histogram.h"
#include "base/metrics/sparse_histogram.h"
#include "base/metrics/stats_counters.h"
+#include "base/profiler/scoped_profile.h"
#include "base/stl_util.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
@@ -1336,6 +1337,11 @@
}
void SpdySession::PumpReadLoop(ReadState expected_read_state, int result) {
+ // TODO(vadimt): Remove ScopedProfile below once crbug.com/418183 is fixed.
+ tracked_objects::ScopedProfile tracking_profile(
+ FROM_HERE_WITH_EXPLICIT_FUNCTION(
+ "418183 DoReadCallback => SpdySession::PumpReadLoop"));
+
CHECK(!in_io_loop_);
if (availability_state_ == STATE_DRAINING) {
return;
diff --git a/net/spdy/spdy_session.h b/net/spdy/spdy_session.h
index 519d07b..293ed2b 100644
--- a/net/spdy/spdy_session.h
+++ b/net/spdy/spdy_session.h
@@ -517,7 +517,7 @@
base::WeakPtr<SpdySession> GetWeakPtr();
// HigherLayeredPool implementation:
- virtual bool CloseOneIdleConnection() OVERRIDE;
+ virtual bool CloseOneIdleConnection() override;
private:
friend class base::RefCounted<SpdySession>;
@@ -813,55 +813,55 @@
void DeleteExpiredPushedStreams();
// BufferedSpdyFramerVisitorInterface:
- virtual void OnError(SpdyFramer::SpdyError error_code) OVERRIDE;
+ virtual void OnError(SpdyFramer::SpdyError error_code) override;
virtual void OnStreamError(SpdyStreamId stream_id,
- const std::string& description) OVERRIDE;
- virtual void OnPing(SpdyPingId unique_id, bool is_ack) OVERRIDE;
+ const std::string& description) override;
+ virtual void OnPing(SpdyPingId unique_id, bool is_ack) override;
virtual void OnRstStream(SpdyStreamId stream_id,
- SpdyRstStreamStatus status) OVERRIDE;
+ SpdyRstStreamStatus status) override;
virtual void OnGoAway(SpdyStreamId last_accepted_stream_id,
- SpdyGoAwayStatus status) OVERRIDE;
+ SpdyGoAwayStatus status) override;
virtual void OnDataFrameHeader(SpdyStreamId stream_id,
size_t length,
- bool fin) OVERRIDE;
+ bool fin) override;
virtual void OnStreamFrameData(SpdyStreamId stream_id,
const char* data,
size_t len,
- bool fin) OVERRIDE;
- virtual void OnSettings(bool clear_persisted) OVERRIDE;
+ bool fin) override;
+ virtual void OnSettings(bool clear_persisted) override;
virtual void OnSetting(
- SpdySettingsIds id, uint8 flags, uint32 value) OVERRIDE;
+ SpdySettingsIds id, uint8 flags, uint32 value) override;
virtual void OnWindowUpdate(SpdyStreamId stream_id,
- uint32 delta_window_size) OVERRIDE;
+ uint32 delta_window_size) override;
virtual void OnPushPromise(SpdyStreamId stream_id,
SpdyStreamId promised_stream_id,
- const SpdyHeaderBlock& headers) OVERRIDE;
+ const SpdyHeaderBlock& headers) override;
virtual void OnSynStream(SpdyStreamId stream_id,
SpdyStreamId associated_stream_id,
SpdyPriority priority,
bool fin,
bool unidirectional,
- const SpdyHeaderBlock& headers) OVERRIDE;
+ const SpdyHeaderBlock& headers) override;
virtual void OnSynReply(
SpdyStreamId stream_id,
bool fin,
- const SpdyHeaderBlock& headers) OVERRIDE;
+ const SpdyHeaderBlock& headers) override;
virtual void OnHeaders(
SpdyStreamId stream_id,
bool fin,
- const SpdyHeaderBlock& headers) OVERRIDE;
- virtual bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) OVERRIDE;
+ const SpdyHeaderBlock& headers) override;
+ virtual bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) override;
// SpdyFramerDebugVisitorInterface
virtual void OnSendCompressedFrame(
SpdyStreamId stream_id,
SpdyFrameType type,
size_t payload_len,
- size_t frame_len) OVERRIDE;
+ size_t frame_len) override;
virtual void OnReceiveCompressedFrame(
SpdyStreamId stream_id,
SpdyFrameType type,
- size_t frame_len) OVERRIDE;
+ size_t frame_len) override;
// Called when bytes are consumed from a SpdyBuffer for a DATA frame
// that is to be written or is being written. Increases the send
diff --git a/net/spdy/spdy_session_pool.h b/net/spdy/spdy_session_pool.h
index 2fbb030..de2ddfa 100644
--- a/net/spdy/spdy_session_pool.h
+++ b/net/spdy/spdy_session_pool.h
@@ -133,19 +133,19 @@
// We flush all idle sessions and release references to the active ones so
// they won't get re-used. The active ones will either complete successfully
// or error out due to the IP address change.
- virtual void OnIPAddressChanged() OVERRIDE;
+ virtual void OnIPAddressChanged() override;
// SSLConfigService::Observer methods:
// We perform the same flushing as described above when SSL settings change.
- virtual void OnSSLConfigChanged() OVERRIDE;
+ virtual void OnSSLConfigChanged() override;
// CertDatabase::Observer methods:
// We perform the same flushing as described above when certificate database
// is changed.
- virtual void OnCertAdded(const X509Certificate* cert) OVERRIDE;
- virtual void OnCACertChanged(const X509Certificate* cert) OVERRIDE;
+ virtual void OnCertAdded(const X509Certificate* cert) override;
+ virtual void OnCACertChanged(const X509Certificate* cert) override;
private:
friend class SpdySessionPoolPeer; // For testing.
diff --git a/net/spdy/spdy_session_pool_unittest.cc b/net/spdy/spdy_session_pool_unittest.cc
index 16a624b..ece5d34 100644
--- a/net/spdy/spdy_session_pool_unittest.cc
+++ b/net/spdy/spdy_session_pool_unittest.cc
@@ -64,18 +64,18 @@
virtual ~SessionOpeningDelegate() {}
- virtual void OnRequestHeadersSent() OVERRIDE {}
+ virtual void OnRequestHeadersSent() override {}
virtual SpdyResponseHeadersStatus OnResponseHeadersUpdated(
- const SpdyHeaderBlock& response_headers) OVERRIDE {
+ const SpdyHeaderBlock& response_headers) override {
return RESPONSE_HEADERS_ARE_COMPLETE;
}
- virtual void OnDataReceived(scoped_ptr<SpdyBuffer> buffer) OVERRIDE {}
+ virtual void OnDataReceived(scoped_ptr<SpdyBuffer> buffer) override {}
- virtual void OnDataSent() OVERRIDE {}
+ virtual void OnDataSent() override {}
- virtual void OnClose(int status) OVERRIDE {
+ virtual void OnClose(int status) override {
ignore_result(CreateFakeSpdySession(spdy_session_pool_, key_));
}
diff --git a/net/spdy/spdy_session_test_util.h b/net/spdy/spdy_session_test_util.h
index 08a82ee..cc3f136 100644
--- a/net/spdy/spdy_session_test_util.h
+++ b/net/spdy/spdy_session_test_util.h
@@ -29,8 +29,8 @@
virtual ~SpdySessionTestTaskObserver();
// Implements MessageLoop::TaskObserver.
- virtual void WillProcessTask(const base::PendingTask& pending_task) OVERRIDE;
- virtual void DidProcessTask(const base::PendingTask& pending_task) OVERRIDE;
+ virtual void WillProcessTask(const base::PendingTask& pending_task) override;
+ virtual void DidProcessTask(const base::PendingTask& pending_task) override;
// Returns the number of tasks posted by the given function and file.
uint16 executed_count() const { return executed_count_; }
diff --git a/net/spdy/spdy_session_unittest.cc b/net/spdy/spdy_session_unittest.cc
index 938f6e5..914f6fe 100644
--- a/net/spdy/spdy_session_unittest.cc
+++ b/net/spdy/spdy_session_unittest.cc
@@ -121,7 +121,7 @@
HttpNetworkSession::NORMAL_SOCKET_POOL, old_max_group_sockets_);
}
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
g_time_delta = base::TimeDelta();
}
@@ -885,7 +885,7 @@
session->CheckPingStatus(before_ping_time);
EXPECT_EQ(0, session->pings_in_flight());
- EXPECT_GE(session->next_ping_id(), static_cast<uint32>(1));
+ EXPECT_GE(session->next_ping_id(), 1U);
EXPECT_FALSE(session->check_ping_status_pending());
EXPECT_GE(session->last_activity_time(), before_ping_time);
@@ -1302,7 +1302,7 @@
// Send a PING frame.
session->WritePingFrame(1, false);
EXPECT_LT(0, session->pings_in_flight());
- EXPECT_GE(session->next_ping_id(), static_cast<uint32>(1));
+ EXPECT_GE(session->next_ping_id(), 1U);
EXPECT_TRUE(session->check_ping_status_pending());
// Assert session is not closed.
@@ -2305,7 +2305,7 @@
virtual ~SessionClosingDelegate() {}
- virtual void OnClose(int status) OVERRIDE {
+ virtual void OnClose(int status) override {
session_to_close_->CloseSessionOnError(ERR_SPDY_PROTOCOL_ERROR, "Error");
}
@@ -3381,7 +3381,7 @@
virtual ~StreamCreatingDelegate() {}
- virtual void OnClose(int status) OVERRIDE {
+ virtual void OnClose(int status) override {
GURL url(kDefaultURL);
ignore_result(
CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM,
@@ -3661,7 +3661,7 @@
virtual ~DropReceivedDataDelegate() {}
// Drop any received data.
- virtual void OnDataReceived(scoped_ptr<SpdyBuffer> buffer) OVERRIDE {}
+ virtual void OnDataReceived(scoped_ptr<SpdyBuffer> buffer) override {}
};
// Send data back and forth but use a delegate that drops its received
@@ -4249,7 +4249,7 @@
stream_to_close_ = stream_to_close;
}
- virtual void OnDataSent() OVERRIDE {
+ virtual void OnDataSent() override {
test::StreamDelegateWithBody::OnDataSent();
if (stream_to_close_.get()) {
stream_to_close_->Close();
diff --git a/net/spdy/spdy_stream.cc b/net/spdy/spdy_stream.cc
index 3a0d988..6de0a39 100644
--- a/net/spdy/spdy_stream.cc
+++ b/net/spdy/spdy_stream.cc
@@ -63,7 +63,7 @@
virtual ~SynStreamBufferProducer() {}
- virtual scoped_ptr<SpdyBuffer> ProduceBuffer() OVERRIDE {
+ virtual scoped_ptr<SpdyBuffer> ProduceBuffer() override {
if (!stream_.get()) {
NOTREACHED();
return scoped_ptr<SpdyBuffer>();
diff --git a/net/spdy/spdy_stream_test_util.h b/net/spdy/spdy_stream_test_util.h
index 0c0497e..7df12e8 100644
--- a/net/spdy/spdy_stream_test_util.h
+++ b/net/spdy/spdy_stream_test_util.h
@@ -26,12 +26,12 @@
virtual ~ClosingDelegate();
// SpdyStream::Delegate implementation.
- virtual void OnRequestHeadersSent() OVERRIDE;
+ virtual void OnRequestHeadersSent() override;
virtual SpdyResponseHeadersStatus OnResponseHeadersUpdated(
- const SpdyHeaderBlock& response_headers) OVERRIDE;
- virtual void OnDataReceived(scoped_ptr<SpdyBuffer> buffer) OVERRIDE;
- virtual void OnDataSent() OVERRIDE;
- virtual void OnClose(int status) OVERRIDE;
+ const SpdyHeaderBlock& response_headers) override;
+ virtual void OnDataReceived(scoped_ptr<SpdyBuffer> buffer) override;
+ virtual void OnDataSent() override;
+ virtual void OnClose(int status) override;
// Returns whether or not the stream is closed.
bool StreamIsClosed() const { return !stream_.get(); }
@@ -47,12 +47,12 @@
explicit StreamDelegateBase(const base::WeakPtr<SpdyStream>& stream);
virtual ~StreamDelegateBase();
- virtual void OnRequestHeadersSent() OVERRIDE;
+ virtual void OnRequestHeadersSent() override;
virtual SpdyResponseHeadersStatus OnResponseHeadersUpdated(
- const SpdyHeaderBlock& response_headers) OVERRIDE;
- virtual void OnDataReceived(scoped_ptr<SpdyBuffer> buffer) OVERRIDE;
- virtual void OnDataSent() OVERRIDE;
- virtual void OnClose(int status) OVERRIDE;
+ const SpdyHeaderBlock& response_headers) override;
+ virtual void OnDataReceived(scoped_ptr<SpdyBuffer> buffer) override;
+ virtual void OnDataSent() override;
+ virtual void OnClose(int status) override;
// Waits for the stream to be closed and returns the status passed
// to OnClose().
@@ -101,7 +101,7 @@
virtual ~StreamDelegateSendImmediate();
virtual SpdyResponseHeadersStatus OnResponseHeadersUpdated(
- const SpdyHeaderBlock& response_headers) OVERRIDE;
+ const SpdyHeaderBlock& response_headers) override;
private:
base::StringPiece data_;
@@ -114,7 +114,7 @@
base::StringPiece data);
virtual ~StreamDelegateWithBody();
- virtual void OnRequestHeadersSent() OVERRIDE;
+ virtual void OnRequestHeadersSent() override;
private:
scoped_refptr<StringIOBuffer> buf_;
@@ -127,7 +127,7 @@
virtual ~StreamDelegateCloseOnHeaders();
virtual SpdyResponseHeadersStatus OnResponseHeadersUpdated(
- const SpdyHeaderBlock& response_headers) OVERRIDE;
+ const SpdyHeaderBlock& response_headers) override;
};
} // namespace test
diff --git a/net/spdy/spdy_test_util_common.cc b/net/spdy/spdy_test_util_common.cc
index 5de58d6..2e1aba5 100644
--- a/net/spdy/spdy_test_util_common.cc
+++ b/net/spdy/spdy_test_util_common.cc
@@ -214,44 +214,44 @@
return priority_;
}
- virtual void OnError(SpdyFramer::SpdyError error_code) OVERRIDE {}
+ virtual void OnError(SpdyFramer::SpdyError error_code) override {}
virtual void OnStreamError(SpdyStreamId stream_id,
- const std::string& description) OVERRIDE {}
+ const std::string& description) override {}
virtual void OnSynStream(SpdyStreamId stream_id,
SpdyStreamId associated_stream_id,
SpdyPriority priority,
bool fin,
bool unidirectional,
- const SpdyHeaderBlock& headers) OVERRIDE {
+ const SpdyHeaderBlock& headers) override {
priority_ = priority;
}
virtual void OnSynReply(SpdyStreamId stream_id,
bool fin,
- const SpdyHeaderBlock& headers) OVERRIDE {}
+ const SpdyHeaderBlock& headers) override {}
virtual void OnHeaders(SpdyStreamId stream_id,
bool fin,
- const SpdyHeaderBlock& headers) OVERRIDE {}
+ const SpdyHeaderBlock& headers) override {}
virtual void OnDataFrameHeader(SpdyStreamId stream_id,
size_t length,
- bool fin) OVERRIDE {}
+ bool fin) override {}
virtual void OnStreamFrameData(SpdyStreamId stream_id,
const char* data,
size_t len,
- bool fin) OVERRIDE {}
- virtual void OnSettings(bool clear_persisted) OVERRIDE {}
+ bool fin) override {}
+ virtual void OnSettings(bool clear_persisted) override {}
virtual void OnSetting(
- SpdySettingsIds id, uint8 flags, uint32 value) OVERRIDE {}
- virtual void OnPing(SpdyPingId unique_id, bool is_ack) OVERRIDE {}
+ SpdySettingsIds id, uint8 flags, uint32 value) override {}
+ virtual void OnPing(SpdyPingId unique_id, bool is_ack) override {}
virtual void OnRstStream(SpdyStreamId stream_id,
- SpdyRstStreamStatus status) OVERRIDE {}
+ SpdyRstStreamStatus status) override {}
virtual void OnGoAway(SpdyStreamId last_accepted_stream_id,
- SpdyGoAwayStatus status) OVERRIDE {}
+ SpdyGoAwayStatus status) override {}
virtual void OnWindowUpdate(SpdyStreamId stream_id,
- uint32 delta_window_size) OVERRIDE {}
+ uint32 delta_window_size) override {}
virtual void OnPushPromise(SpdyStreamId stream_id,
SpdyStreamId promised_stream_id,
- const SpdyHeaderBlock& headers) OVERRIDE {}
- virtual bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) OVERRIDE {
+ const SpdyHeaderBlock& headers) override {}
+ virtual bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) override {
return false;
}
@@ -616,43 +616,43 @@
virtual ~FakeSpdySessionClientSocket() {}
virtual int Read(IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return read_result_;
}
virtual int Write(IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return ERR_IO_PENDING;
}
// Return kProtoUnknown to use the pool's default protocol.
- virtual NextProto GetNegotiatedProtocol() const OVERRIDE {
+ virtual NextProto GetNegotiatedProtocol() const override {
return kProtoUnknown;
}
// The functions below are not expected to be called.
- virtual int Connect(const CompletionCallback& callback) OVERRIDE {
+ virtual int Connect(const CompletionCallback& callback) override {
ADD_FAILURE();
return ERR_UNEXPECTED;
}
- virtual bool WasEverUsed() const OVERRIDE {
+ virtual bool WasEverUsed() const override {
ADD_FAILURE();
return false;
}
- virtual bool UsingTCPFastOpen() const OVERRIDE {
+ virtual bool UsingTCPFastOpen() const override {
ADD_FAILURE();
return false;
}
- virtual bool WasNpnNegotiated() const OVERRIDE {
+ virtual bool WasNpnNegotiated() const override {
ADD_FAILURE();
return false;
}
- virtual bool GetSSLInfo(SSLInfo* ssl_info) OVERRIDE {
+ virtual bool GetSSLInfo(SSLInfo* ssl_info) override {
ADD_FAILURE();
return false;
}
diff --git a/net/spdy/spdy_test_util_common.h b/net/spdy/spdy_test_util_common.h
index 108e278..897f670 100644
--- a/net/spdy/spdy_test_util_common.h
+++ b/net/spdy/spdy_test_util_common.h
@@ -159,9 +159,9 @@
// crypto::ECSignatureCreator
virtual bool Sign(const uint8* data,
int data_len,
- std::vector<uint8>* signature) OVERRIDE;
+ std::vector<uint8>* signature) override;
virtual bool DecodeSignature(const std::vector<uint8>& signature,
- std::vector<uint8>* out_raw_sig) OVERRIDE;
+ std::vector<uint8>* out_raw_sig) override;
private:
crypto::ECPrivateKey* key_;
@@ -177,7 +177,7 @@
// crypto::ECSignatureCreatorFactory
virtual crypto::ECSignatureCreator* Create(
- crypto::ECPrivateKey* key) OVERRIDE;
+ crypto::ECPrivateKey* key) override;
private:
DISALLOW_COPY_AND_ASSIGN(MockECSignatureCreatorFactory);
diff --git a/net/spdy/spdy_websocket_stream.h b/net/spdy/spdy_websocket_stream.h
index 6998134..66a89e8 100644
--- a/net/spdy/spdy_websocket_stream.h
+++ b/net/spdy/spdy_websocket_stream.h
@@ -75,12 +75,12 @@
void Close();
// SpdyStream::Delegate
- virtual void OnRequestHeadersSent() OVERRIDE;
+ virtual void OnRequestHeadersSent() override;
virtual SpdyResponseHeadersStatus OnResponseHeadersUpdated(
- const SpdyHeaderBlock& response_headers) OVERRIDE;
- virtual void OnDataReceived(scoped_ptr<SpdyBuffer> buffer) OVERRIDE;
- virtual void OnDataSent() OVERRIDE;
- virtual void OnClose(int status) OVERRIDE;
+ const SpdyHeaderBlock& response_headers) override;
+ virtual void OnDataReceived(scoped_ptr<SpdyBuffer> buffer) override;
+ virtual void OnDataSent() override;
+ virtual void OnClose(int status) override;
private:
friend class SpdyWebSocketStreamTest;
diff --git a/net/spdy/spdy_websocket_stream_unittest.cc b/net/spdy/spdy_websocket_stream_unittest.cc
index 5720675..5941bdf 100644
--- a/net/spdy/spdy_websocket_stream_unittest.cc
+++ b/net/spdy/spdy_websocket_stream_unittest.cc
@@ -74,7 +74,7 @@
on_close_ = callback;
}
- virtual void OnCreatedSpdyStream(int result) OVERRIDE {
+ virtual void OnCreatedSpdyStream(int result) override {
events_.push_back(
SpdyWebSocketStreamEvent(SpdyWebSocketStreamEvent::EVENT_CREATED,
SpdyHeaderBlock(),
@@ -83,7 +83,7 @@
if (!on_created_.is_null())
on_created_.Run(&events_.back());
}
- virtual void OnSentSpdyHeaders() OVERRIDE {
+ virtual void OnSentSpdyHeaders() override {
events_.push_back(
SpdyWebSocketStreamEvent(SpdyWebSocketStreamEvent::EVENT_SENT_HEADERS,
SpdyHeaderBlock(),
@@ -93,7 +93,7 @@
on_sent_data_.Run(&events_.back());
}
virtual void OnSpdyResponseHeadersUpdated(
- const SpdyHeaderBlock& response_headers) OVERRIDE {
+ const SpdyHeaderBlock& response_headers) override {
events_.push_back(
SpdyWebSocketStreamEvent(
SpdyWebSocketStreamEvent::EVENT_RECEIVED_HEADER,
@@ -103,7 +103,7 @@
if (!on_received_header_.is_null())
on_received_header_.Run(&events_.back());
}
- virtual void OnSentSpdyData(size_t bytes_sent) OVERRIDE {
+ virtual void OnSentSpdyData(size_t bytes_sent) override {
events_.push_back(
SpdyWebSocketStreamEvent(
SpdyWebSocketStreamEvent::EVENT_SENT_DATA,
@@ -113,7 +113,7 @@
if (!on_sent_data_.is_null())
on_sent_data_.Run(&events_.back());
}
- virtual void OnReceivedSpdyData(scoped_ptr<SpdyBuffer> buffer) OVERRIDE {
+ virtual void OnReceivedSpdyData(scoped_ptr<SpdyBuffer> buffer) override {
std::string buffer_data;
size_t buffer_len = 0;
if (buffer) {
@@ -129,7 +129,7 @@
if (!on_received_data_.is_null())
on_received_data_.Run(&events_.back());
}
- virtual void OnCloseSpdyStream() OVERRIDE {
+ virtual void OnCloseSpdyStream() override {
events_.push_back(
SpdyWebSocketStreamEvent(
SpdyWebSocketStreamEvent::EVENT_CLOSE,
diff --git a/net/spdy/spdy_write_queue_unittest.cc b/net/spdy/spdy_write_queue_unittest.cc
index 2ab415a..cb24d12 100644
--- a/net/spdy/spdy_write_queue_unittest.cc
+++ b/net/spdy/spdy_write_queue_unittest.cc
@@ -59,7 +59,7 @@
base::Bind(RequeingBufferProducer::ConsumeCallback, queue));
}
- virtual scoped_ptr<SpdyBuffer> ProduceBuffer() OVERRIDE {
+ virtual scoped_ptr<SpdyBuffer> ProduceBuffer() override {
return buffer_.Pass();
}
diff --git a/net/ssl/channel_id_service_unittest.cc b/net/ssl/channel_id_service_unittest.cc
index e5f084d..52083e8 100644
--- a/net/ssl/channel_id_service_unittest.cc
+++ b/net/ssl/channel_id_service_unittest.cc
@@ -37,11 +37,11 @@
virtual bool PostDelayedTask(const tracked_objects::Location& from_here,
const base::Closure& task,
- base::TimeDelta delay) OVERRIDE {
+ base::TimeDelta delay) override {
return false;
}
- virtual bool RunsTasksOnCurrentThread() const OVERRIDE { return true; }
+ virtual bool RunsTasksOnCurrentThread() const override { return true; }
protected:
virtual ~FailingTaskRunner() {}
@@ -60,17 +60,17 @@
base::Time* expiration_time,
std::string* private_key_result,
std::string* cert_result,
- const GetChannelIDCallback& callback) OVERRIDE;
+ const GetChannelIDCallback& callback) override;
virtual void SetChannelID(const std::string& server_identifier,
base::Time creation_time,
base::Time expiration_time,
const std::string& private_key,
- const std::string& cert) OVERRIDE {
+ const std::string& cert) override {
channel_id_count_ = 1;
}
- virtual int GetChannelIDCount() OVERRIDE { return channel_id_count_; }
+ virtual int GetChannelIDCount() override { return channel_id_count_; }
void CallGetChannelIDCallbackWithResult(int err,
base::Time expiration_time,
diff --git a/net/ssl/client_cert_store_chromeos.h b/net/ssl/client_cert_store_chromeos.h
index 940888d..f14619a 100644
--- a/net/ssl/client_cert_store_chromeos.h
+++ b/net/ssl/client_cert_store_chromeos.h
@@ -27,14 +27,14 @@
// ClientCertStoreNSS:
virtual void GetClientCerts(const SSLCertRequestInfo& cert_request_info,
CertificateList* selected_certs,
- const base::Closure& callback) OVERRIDE;
+ const base::Closure& callback) override;
protected:
// ClientCertStoreNSS:
virtual void GetClientCertsImpl(CERTCertList* cert_list,
const SSLCertRequestInfo& request,
bool query_nssdb,
- CertificateList* selected_certs) OVERRIDE;
+ CertificateList* selected_certs) override;
private:
void DidGetSystemAndPrivateSlot(const SSLCertRequestInfo* request,
diff --git a/net/ssl/client_cert_store_mac.h b/net/ssl/client_cert_store_mac.h
index b3f7ef3..5c697db 100644
--- a/net/ssl/client_cert_store_mac.h
+++ b/net/ssl/client_cert_store_mac.h
@@ -22,7 +22,7 @@
// ClientCertStore:
virtual void GetClientCerts(const SSLCertRequestInfo& cert_request_info,
CertificateList* selected_certs,
- const base::Closure& callback) OVERRIDE;
+ const base::Closure& callback) override;
private:
friend class ClientCertStoreMacTest;
diff --git a/net/ssl/client_cert_store_nss.h b/net/ssl/client_cert_store_nss.h
index 4e2e1c4..38895aa 100644
--- a/net/ssl/client_cert_store_nss.h
+++ b/net/ssl/client_cert_store_nss.h
@@ -32,7 +32,7 @@
// ClientCertStore:
virtual void GetClientCerts(const SSLCertRequestInfo& cert_request_info,
CertificateList* selected_certs,
- const base::Closure& callback) OVERRIDE;
+ const base::Closure& callback) override;
protected:
// Examines the certificates in |cert_list| to find all certificates that
diff --git a/net/ssl/client_cert_store_win.h b/net/ssl/client_cert_store_win.h
index 785603d..567c267 100644
--- a/net/ssl/client_cert_store_win.h
+++ b/net/ssl/client_cert_store_win.h
@@ -22,7 +22,7 @@
// ClientCertStore:
virtual void GetClientCerts(const SSLCertRequestInfo& cert_request_info,
CertificateList* selected_certs,
- const base::Closure& callback) OVERRIDE;
+ const base::Closure& callback) override;
private:
friend class ClientCertStoreWinTestDelegate;
diff --git a/net/ssl/default_channel_id_store.cc b/net/ssl/default_channel_id_store.cc
index 1dec6c1..4f43fbc 100644
--- a/net/ssl/default_channel_id_store.cc
+++ b/net/ssl/default_channel_id_store.cc
@@ -42,7 +42,7 @@
GetChannelIDTask(const std::string& server_identifier,
const GetChannelIDCallback& callback);
virtual ~GetChannelIDTask();
- virtual void Run(DefaultChannelIDStore* store) OVERRIDE;
+ virtual void Run(DefaultChannelIDStore* store) override;
private:
std::string server_identifier_;
@@ -84,7 +84,7 @@
const std::string& private_key,
const std::string& cert);
virtual ~SetChannelIDTask();
- virtual void Run(DefaultChannelIDStore* store) OVERRIDE;
+ virtual void Run(DefaultChannelIDStore* store) override;
private:
std::string server_identifier_;
@@ -124,7 +124,7 @@
DeleteChannelIDTask(const std::string& server_identifier,
const base::Closure& callback);
virtual ~DeleteChannelIDTask();
- virtual void Run(DefaultChannelIDStore* store) OVERRIDE;
+ virtual void Run(DefaultChannelIDStore* store) override;
private:
std::string server_identifier_;
@@ -159,7 +159,7 @@
base::Time delete_end,
const base::Closure& callback);
virtual ~DeleteAllCreatedBetweenTask();
- virtual void Run(DefaultChannelIDStore* store) OVERRIDE;
+ virtual void Run(DefaultChannelIDStore* store) override;
private:
base::Time delete_begin_;
@@ -195,7 +195,7 @@
public:
explicit GetAllChannelIDsTask(const GetChannelIDListCallback& callback);
virtual ~GetAllChannelIDsTask();
- virtual void Run(DefaultChannelIDStore* store) OVERRIDE;
+ virtual void Run(DefaultChannelIDStore* store) override;
private:
std::string server_identifier_;
diff --git a/net/ssl/default_channel_id_store.h b/net/ssl/default_channel_id_store.h
index 9c307e8..3882c1f 100644
--- a/net/ssl/default_channel_id_store.h
+++ b/net/ssl/default_channel_id_store.h
@@ -49,25 +49,25 @@
base::Time* expiration_time,
std::string* private_key_result,
std::string* cert_result,
- const GetChannelIDCallback& callback) OVERRIDE;
+ const GetChannelIDCallback& callback) override;
virtual void SetChannelID(
const std::string& server_identifier,
base::Time creation_time,
base::Time expiration_time,
const std::string& private_key,
- const std::string& cert) OVERRIDE;
+ const std::string& cert) override;
virtual void DeleteChannelID(
const std::string& server_identifier,
- const base::Closure& callback) OVERRIDE;
+ const base::Closure& callback) override;
virtual void DeleteAllCreatedBetween(
base::Time delete_begin,
base::Time delete_end,
- const base::Closure& callback) OVERRIDE;
- virtual void DeleteAll(const base::Closure& callback) OVERRIDE;
+ const base::Closure& callback) override;
+ virtual void DeleteAll(const base::Closure& callback) override;
virtual void GetAllChannelIDs(
- const GetChannelIDListCallback& callback) OVERRIDE;
- virtual int GetChannelIDCount() OVERRIDE;
- virtual void SetForceKeepSessionState() OVERRIDE;
+ const GetChannelIDListCallback& callback) override;
+ virtual int GetChannelIDCount() override;
+ virtual void SetForceKeepSessionState() override;
private:
class Task;
diff --git a/net/ssl/default_channel_id_store_unittest.cc b/net/ssl/default_channel_id_store_unittest.cc
index b1fe873..9429753 100644
--- a/net/ssl/default_channel_id_store_unittest.cc
+++ b/net/ssl/default_channel_id_store_unittest.cc
@@ -69,12 +69,12 @@
MockPersistentStore();
// DefaultChannelIDStore::PersistentStore implementation.
- virtual void Load(const LoadedCallback& loaded_callback) OVERRIDE;
+ virtual void Load(const LoadedCallback& loaded_callback) override;
virtual void AddChannelID(
- const DefaultChannelIDStore::ChannelID& channel_id) OVERRIDE;
+ const DefaultChannelIDStore::ChannelID& channel_id) override;
virtual void DeleteChannelID(
- const DefaultChannelIDStore::ChannelID& channel_id) OVERRIDE;
- virtual void SetForceKeepSessionState() OVERRIDE;
+ const DefaultChannelIDStore::ChannelID& channel_id) override;
+ virtual void SetForceKeepSessionState() override;
protected:
virtual ~MockPersistentStore();
diff --git a/net/ssl/openssl_client_key_store.cc b/net/ssl/openssl_client_key_store.cc
index b0b5eb3..de65cd9 100644
--- a/net/ssl/openssl_client_key_store.cc
+++ b/net/ssl/openssl_client_key_store.cc
@@ -6,6 +6,7 @@
#include <openssl/evp.h>
#include <openssl/x509.h>
+#include <algorithm>
#include "base/memory/scoped_ptr.h"
#include "base/memory/singleton.h"
@@ -50,15 +51,14 @@
private_key(EVP_PKEY_dup(other.private_key.get())) {
}
-void OpenSSLClientKeyStore::KeyPair::operator=(const KeyPair& other) {
- // Use a temporary ScopedEVP_PKEY because scoped_ptr does not allow resetting
- // to the current value, even though it's safe here.
- crypto::ScopedEVP_PKEY public_key_tmp(EVP_PKEY_dup(other.public_key.get()));
- crypto::ScopedEVP_PKEY private_key_tmp(EVP_PKEY_dup(other.private_key.get()));
- public_key.reset();
- public_key = public_key_tmp.Pass();
- private_key.reset();
- private_key = private_key_tmp.Pass();
+void OpenSSLClientKeyStore::KeyPair::operator=(KeyPair other) {
+ swap(other);
+}
+
+void OpenSSLClientKeyStore::KeyPair::swap(KeyPair& other) {
+ using std::swap;
+ swap(public_key, other.public_key);
+ swap(private_key, other.private_key);
}
int OpenSSLClientKeyStore::FindKeyPairIndex(EVP_PKEY* public_key) {
diff --git a/net/ssl/openssl_client_key_store.h b/net/ssl/openssl_client_key_store.h
index 0cbb23a..6c06148 100644
--- a/net/ssl/openssl_client_key_store.h
+++ b/net/ssl/openssl_client_key_store.h
@@ -73,7 +73,9 @@
public:
explicit KeyPair(EVP_PKEY* pub_key, EVP_PKEY* priv_key);
KeyPair(const KeyPair& other);
- void operator=(const KeyPair& other);
+ // Intentionally pass by value, in order to use the copy-and-swap idiom.
+ void operator=(KeyPair other);
+ void swap(KeyPair& other);
~KeyPair();
crypto::ScopedEVP_PKEY public_key;
diff --git a/net/ssl/ssl_client_auth_cache.h b/net/ssl/ssl_client_auth_cache.h
index 93ad8c0..4ee47ed 100644
--- a/net/ssl/ssl_client_auth_cache.h
+++ b/net/ssl/ssl_client_auth_cache.h
@@ -48,7 +48,7 @@
void Remove(const HostPortPair& server);
// CertDatabase::Observer methods:
- virtual void OnCertAdded(const X509Certificate* cert) OVERRIDE;
+ virtual void OnCertAdded(const X509Certificate* cert) override;
private:
typedef HostPortPair AuthCacheKey;
diff --git a/net/ssl/ssl_config.cc b/net/ssl/ssl_config.cc
index 269934b..b823f6b 100644
--- a/net/ssl/ssl_config.cc
+++ b/net/ssl/ssl_config.cc
@@ -10,6 +10,8 @@
const uint16 kDefaultSSLVersionMax = SSL_PROTOCOL_VERSION_TLS1_2;
+const uint16 kDefaultSSLVersionFallbackMin = SSL_PROTOCOL_VERSION_TLS1;
+
SSLConfig::CertAndStatus::CertAndStatus() : cert_status(0) {}
SSLConfig::CertAndStatus::~CertAndStatus() {}
@@ -19,6 +21,7 @@
rev_checking_required_local_anchors(false),
version_min(kDefaultSSLVersionMin),
version_max(kDefaultSSLVersionMax),
+ version_fallback_min(kDefaultSSLVersionFallbackMin),
channel_id_enabled(true),
false_start_enabled(true),
signed_cert_timestamps_enabled(true),
diff --git a/net/ssl/ssl_config.h b/net/ssl/ssl_config.h
index 2731214..1deaf6e 100644
--- a/net/ssl/ssl_config.h
+++ b/net/ssl/ssl_config.h
@@ -32,6 +32,9 @@
// Default maximum protocol version.
NET_EXPORT extern const uint16 kDefaultSSLVersionMax;
+// Default minimum protocol version that it's acceptable to fallback to.
+NET_EXPORT extern const uint16 kDefaultSSLVersionFallbackMin;
+
// A collection of SSL-related configuration settings.
struct NET_EXPORT SSLConfig {
// Default to revocation checking.
@@ -73,6 +76,12 @@
uint16 version_min;
uint16 version_max;
+ // version_fallback_min contains the minimum version that is acceptable to
+ // fallback to. Versions before this may be tried to see whether they would
+ // have succeeded and thus to give a better message to the user, but the
+ // resulting connection won't be used in these cases.
+ uint16 version_fallback_min;
+
// Presorted list of cipher suites which should be explicitly prevented from
// being used in addition to those disabled by the net built-in policy.
//
diff --git a/net/ssl/ssl_config_service_defaults.h b/net/ssl/ssl_config_service_defaults.h
index 85123da..ff58029 100644
--- a/net/ssl/ssl_config_service_defaults.h
+++ b/net/ssl/ssl_config_service_defaults.h
@@ -18,7 +18,7 @@
SSLConfigServiceDefaults();
// Store default SSL config settings in |config|.
- virtual void GetSSLConfig(SSLConfig* config) OVERRIDE;
+ virtual void GetSSLConfig(SSLConfig* config) override;
private:
virtual ~SSLConfigServiceDefaults();
diff --git a/net/ssl/ssl_config_service_unittest.cc b/net/ssl/ssl_config_service_unittest.cc
index e8a4c33..0d9659c 100644
--- a/net/ssl/ssl_config_service_unittest.cc
+++ b/net/ssl/ssl_config_service_unittest.cc
@@ -19,7 +19,7 @@
explicit MockSSLConfigService(const SSLConfig& config) : config_(config) {}
// SSLConfigService implementation
- virtual void GetSSLConfig(SSLConfig* config) OVERRIDE {
+ virtual void GetSSLConfig(SSLConfig* config) override {
*config = config_;
}
diff --git a/net/test/embedded_test_server/embedded_test_server.cc b/net/test/embedded_test_server/embedded_test_server.cc
index 3d609cc..b266c55 100644
--- a/net/test/embedded_test_server/embedded_test_server.cc
+++ b/net/test/embedded_test_server/embedded_test_server.cc
@@ -32,7 +32,7 @@
: headers_(headers), contents_(contents) {
}
- virtual std::string ToResponseString() const OVERRIDE {
+ virtual std::string ToResponseString() const override {
return headers_ + "\r\n" + contents_;
}
diff --git a/net/test/embedded_test_server/embedded_test_server.h b/net/test/embedded_test_server/embedded_test_server.h
index 82303e5..fc9f554 100644
--- a/net/test/embedded_test_server/embedded_test_server.h
+++ b/net/test/embedded_test_server/embedded_test_server.h
@@ -167,11 +167,11 @@
// StreamListenSocket::Delegate overrides:
virtual void DidAccept(StreamListenSocket* server,
- scoped_ptr<StreamListenSocket> connection) OVERRIDE;
+ scoped_ptr<StreamListenSocket> connection) override;
virtual void DidRead(StreamListenSocket* connection,
const char* data,
- int length) OVERRIDE;
- virtual void DidClose(StreamListenSocket* connection) OVERRIDE;
+ int length) override;
+ virtual void DidClose(StreamListenSocket* connection) override;
HttpConnection* FindConnection(StreamListenSocket* socket);
diff --git a/net/test/embedded_test_server/embedded_test_server_unittest.cc b/net/test/embedded_test_server/embedded_test_server_unittest.cc
index 9823947..9da982c 100644
--- a/net/test/embedded_test_server/embedded_test_server_unittest.cc
+++ b/net/test/embedded_test_server/embedded_test_server_unittest.cc
@@ -49,7 +49,7 @@
io_thread_("io_thread") {
}
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
base::Thread::Options thread_options;
thread_options.message_loop_type = base::MessageLoop::TYPE_IO;
ASSERT_TRUE(io_thread_.StartWithOptions(thread_options));
@@ -61,12 +61,12 @@
ASSERT_TRUE(server_->InitializeAndWaitUntilReady());
}
- virtual void TearDown() OVERRIDE {
+ virtual void TearDown() override {
ASSERT_TRUE(server_->ShutdownAndWaitUntilComplete());
}
// URLFetcherDelegate override.
- virtual void OnURLFetchComplete(const URLFetcher* source) OVERRIDE {
+ virtual void OnURLFetchComplete(const URLFetcher* source) override {
++num_responses_received_;
if (num_responses_received_ == num_responses_expected_)
base::MessageLoop::current()->Quit();
@@ -260,7 +260,7 @@
message_loop_present_on_shutdown_(message_loop_present_on_shutdown) {}
// base::PlatformThread::Delegate:
- virtual void ThreadMain() OVERRIDE {
+ virtual void ThreadMain() override {
scoped_refptr<base::SingleThreadTaskRunner> io_thread_runner;
base::Thread io_thread("io_thread");
base::Thread::Options thread_options;
@@ -298,7 +298,7 @@
}
// URLFetcherDelegate override.
- virtual void OnURLFetchComplete(const URLFetcher* source) OVERRIDE {
+ virtual void OnURLFetchComplete(const URLFetcher* source) override {
base::MessageLoop::current()->Quit();
}
diff --git a/net/test/embedded_test_server/http_response.h b/net/test/embedded_test_server/http_response.h
index 422a525..2172354 100644
--- a/net/test/embedded_test_server/http_response.h
+++ b/net/test/embedded_test_server/http_response.h
@@ -54,7 +54,7 @@
}
// Generates and returns a http response string.
- virtual std::string ToResponseString() const OVERRIDE;
+ virtual std::string ToResponseString() const override;
private:
HttpStatusCode code_;
diff --git a/net/test/net_test_suite.cc b/net/test/net_test_suite.cc
index 175cec2..ed8a103 100644
--- a/net/test/net_test_suite.cc
+++ b/net/test/net_test_suite.cc
@@ -15,7 +15,7 @@
#endif
class StaticReset : public ::testing::EmptyTestEventListener {
- virtual void OnTestStart(const ::testing::TestInfo& test_info) OVERRIDE {
+ virtual void OnTestStart(const ::testing::TestInfo& test_info) override {
net::HttpStreamFactory::ResetStaticSettingsToInit();
}
};
diff --git a/net/test/net_test_suite.h b/net/test/net_test_suite.h
index c8479d7..1a400d4 100644
--- a/net/test/net_test_suite.h
+++ b/net/test/net_test_suite.h
@@ -23,9 +23,9 @@
NetTestSuite(int argc, char** argv);
virtual ~NetTestSuite();
- virtual void Initialize() OVERRIDE;
+ virtual void Initialize() override;
- virtual void Shutdown() OVERRIDE;
+ virtual void Shutdown() override;
protected:
// This constructor is only accessible to specialized net test
diff --git a/net/test/spawned_test_server/local_test_server_posix.cc b/net/test/spawned_test_server/local_test_server_posix.cc
index fdcfdab..64c9b44 100644
--- a/net/test/spawned_test_server/local_test_server_posix.cc
+++ b/net/test/spawned_test_server/local_test_server_posix.cc
@@ -34,7 +34,7 @@
: path_string_(path_string),
port_string_(port_string) {}
- virtual bool Includes(const base::ProcessEntry& entry) const OVERRIDE {
+ virtual bool Includes(const base::ProcessEntry& entry) const override {
if (entry.parent_pid() != 1)
return false;
bool found_path_string = false;
diff --git a/net/test/spawned_test_server/spawner_communicator.cc b/net/test/spawned_test_server/spawner_communicator.cc
index 9aadb87..53484ea 100644
--- a/net/test/spawned_test_server/spawner_communicator.cc
+++ b/net/test/spawned_test_server/spawner_communicator.cc
@@ -12,10 +12,10 @@
#include "base/time/time.h"
#include "base/values.h"
#include "build/build_config.h"
+#include "net/base/elements_upload_data_stream.h"
#include "net/base/net_util.h"
#include "net/base/request_priority.h"
#include "net/base/upload_bytes_element_reader.h"
-#include "net/base/upload_data_stream.h"
#include "net/http/http_response_headers.h"
#include "net/url_request/url_request_test_util.h"
#include "url/gurl.h"
@@ -188,10 +188,10 @@
cur_request_->set_method("POST");
scoped_ptr<UploadElementReader> reader(
UploadOwnedBytesElementReader::CreateWithString(post_data));
- cur_request_->set_upload(make_scoped_ptr(
- UploadDataStream::CreateWithReader(reader.Pass(), 0)));
- net::HttpRequestHeaders headers;
- headers.SetHeader(net::HttpRequestHeaders::kContentType,
+ cur_request_->set_upload(
+ ElementsUploadDataStream::CreateWithReader(reader.Pass(), 0));
+ HttpRequestHeaders headers;
+ headers.SetHeader(HttpRequestHeaders::kContentType,
"application/json");
cur_request_->SetExtraRequestHeaders(headers);
}
diff --git a/net/test/spawned_test_server/spawner_communicator.h b/net/test/spawned_test_server/spawner_communicator.h
index b657ac3..549ad91 100644
--- a/net/test/spawned_test_server/spawner_communicator.h
+++ b/net/test/spawned_test_server/spawner_communicator.h
@@ -100,8 +100,8 @@
std::string* data_received);
// URLRequest::Delegate methods. Called on the IO thread.
- virtual void OnResponseStarted(URLRequest* request) OVERRIDE;
- virtual void OnReadCompleted(URLRequest* request, int num_bytes) OVERRIDE;
+ virtual void OnResponseStarted(URLRequest* request) override;
+ virtual void OnReadCompleted(URLRequest* request, int num_bytes) override;
// Reads Result from the response. Called on the IO thread.
void ReadResult(URLRequest* request);
diff --git a/net/test/url_request/url_request_failed_job.h b/net/test/url_request/url_request_failed_job.h
index 6d3cf2d..ea35116 100644
--- a/net/test/url_request/url_request_failed_job.h
+++ b/net/test/url_request/url_request_failed_job.h
@@ -22,7 +22,7 @@
NetworkDelegate* network_delegate,
int net_error);
- virtual void Start() OVERRIDE;
+ virtual void Start() override;
// Adds the testing URLs to the URLRequestFilter.
static void AddUrlHandler();
diff --git a/net/test/url_request/url_request_mock_http_job.cc b/net/test/url_request/url_request_mock_http_job.cc
index 42af81f..c611f36 100644
--- a/net/test/url_request/url_request_mock_http_job.cc
+++ b/net/test/url_request/url_request_mock_http_job.cc
@@ -42,7 +42,7 @@
// net::URLRequestJobFactory::ProtocolHandler implementation
virtual net::URLRequestJob* MaybeInterceptRequest(
net::URLRequest* request,
- net::NetworkDelegate* network_delegate) const OVERRIDE {
+ net::NetworkDelegate* network_delegate) const override {
return new URLRequestMockHTTPJob(
request,
network_delegate,
diff --git a/net/test/url_request/url_request_mock_http_job.h b/net/test/url_request/url_request_mock_http_job.h
index cb93412..eb68a2d 100644
--- a/net/test/url_request/url_request_mock_http_job.h
+++ b/net/test/url_request/url_request_mock_http_job.h
@@ -34,13 +34,13 @@
const base::FilePath& file_path,
const scoped_refptr<base::TaskRunner>& task_runner);
- virtual void Start() OVERRIDE;
- virtual bool GetMimeType(std::string* mime_type) const OVERRIDE;
- virtual int GetResponseCode() const OVERRIDE;
- virtual bool GetCharset(std::string* charset) OVERRIDE;
- virtual void GetResponseInfo(HttpResponseInfo* info) OVERRIDE;
+ virtual void Start() override;
+ virtual bool GetMimeType(std::string* mime_type) const override;
+ virtual int GetResponseCode() const override;
+ virtual bool GetCharset(std::string* charset) override;
+ virtual void GetResponseInfo(HttpResponseInfo* info) override;
virtual bool IsRedirectResponse(GURL* location,
- int* http_status_code) OVERRIDE;
+ int* http_status_code) override;
// Adds the testing URLs to the URLRequestFilter.
static void AddUrlHandler(
diff --git a/net/tools/balsa/balsa_frame.h b/net/tools/balsa/balsa_frame.h
index 6178d79..73c3dd9 100644
--- a/net/tools/balsa/balsa_frame.h
+++ b/net/tools/balsa/balsa_frame.h
@@ -201,11 +201,11 @@
private:
class DoNothingBalsaVisitor : public BalsaVisitorInterface {
- virtual void ProcessBodyInput(const char *input, size_t size) OVERRIDE {}
- virtual void ProcessBodyData(const char *input, size_t size) OVERRIDE {}
- virtual void ProcessHeaderInput(const char *input, size_t size) OVERRIDE {}
- virtual void ProcessTrailerInput(const char *input, size_t size) OVERRIDE {}
- virtual void ProcessHeaders(const BalsaHeaders& headers) OVERRIDE {}
+ virtual void ProcessBodyInput(const char *input, size_t size) override {}
+ virtual void ProcessBodyData(const char *input, size_t size) override {}
+ virtual void ProcessHeaderInput(const char *input, size_t size) override {}
+ virtual void ProcessTrailerInput(const char *input, size_t size) override {}
+ virtual void ProcessHeaders(const BalsaHeaders& headers) override {}
virtual void ProcessRequestFirstLine(const char* line_input,
size_t line_length,
const char* method_input,
@@ -213,7 +213,7 @@
const char* request_uri_input,
size_t request_uri_length,
const char* version_input,
- size_t version_length) OVERRIDE {}
+ size_t version_length) override {}
virtual void ProcessResponseFirstLine(const char *line_input,
size_t line_length,
const char *version_input,
@@ -221,16 +221,16 @@
const char *status_input,
size_t status_length,
const char *reason_input,
- size_t reason_length) OVERRIDE {}
- virtual void ProcessChunkLength(size_t chunk_length) OVERRIDE {}
+ size_t reason_length) override {}
+ virtual void ProcessChunkLength(size_t chunk_length) override {}
virtual void ProcessChunkExtensions(const char *input,
- size_t size) OVERRIDE {}
- virtual void HeaderDone() OVERRIDE {}
- virtual void MessageDone() OVERRIDE {}
- virtual void HandleHeaderError(BalsaFrame* framer) OVERRIDE {}
- virtual void HandleHeaderWarning(BalsaFrame* framer) OVERRIDE {}
- virtual void HandleChunkingError(BalsaFrame* framer) OVERRIDE {}
- virtual void HandleBodyError(BalsaFrame* framer) OVERRIDE {}
+ size_t size) override {}
+ virtual void HeaderDone() override {}
+ virtual void MessageDone() override {}
+ virtual void HandleHeaderError(BalsaFrame* framer) override {}
+ virtual void HandleHeaderWarning(BalsaFrame* framer) override {}
+ virtual void HandleChunkingError(BalsaFrame* framer) override {}
+ virtual void HandleBodyError(BalsaFrame* framer) override {}
};
bool last_char_was_slash_r_;
diff --git a/net/tools/balsa/balsa_frame_test.cc b/net/tools/balsa/balsa_frame_test.cc
index 2582721..334f5ef 100644
--- a/net/tools/balsa/balsa_frame_test.cc
+++ b/net/tools/balsa/balsa_frame_test.cc
@@ -58,7 +58,7 @@
class BalsaFrameTest : public ::testing::Test {
public:
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
frame_.reset(new BalsaFrame);
frame_headers_.reset(new BalsaHeaders);
visitor_.reset(new Visitor);
diff --git a/net/tools/balsa/balsa_headers_test.cc b/net/tools/balsa/balsa_headers_test.cc
index da2ad19..b1479c6 100644
--- a/net/tools/balsa/balsa_headers_test.cc
+++ b/net/tools/balsa/balsa_headers_test.cc
@@ -19,7 +19,7 @@
class BalsaBufferTest : public ::testing::Test {
public:
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
buffer_.reset(new BalsaBuffer);
anotherBuffer_.reset(new BalsaBuffer);
}
@@ -33,7 +33,7 @@
class BalsaHeadersTest: public ::testing::Test {
public:
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
headers_.reset(new BalsaHeaders);
}
diff --git a/net/tools/balsa/noop_balsa_visitor.h b/net/tools/balsa/noop_balsa_visitor.h
index c0136f1..c47b0b3 100644
--- a/net/tools/balsa/noop_balsa_visitor.h
+++ b/net/tools/balsa/noop_balsa_visitor.h
@@ -19,11 +19,11 @@
NoOpBalsaVisitor() { }
virtual ~NoOpBalsaVisitor() { }
- virtual void ProcessBodyInput(const char* input, size_t size) OVERRIDE { }
- virtual void ProcessBodyData(const char* input, size_t size) OVERRIDE { }
- virtual void ProcessHeaderInput(const char* input, size_t size) OVERRIDE { }
- virtual void ProcessTrailerInput(const char* input, size_t size) OVERRIDE { }
- virtual void ProcessHeaders(const BalsaHeaders& headers) OVERRIDE { }
+ virtual void ProcessBodyInput(const char* input, size_t size) override { }
+ virtual void ProcessBodyData(const char* input, size_t size) override { }
+ virtual void ProcessHeaderInput(const char* input, size_t size) override { }
+ virtual void ProcessTrailerInput(const char* input, size_t size) override { }
+ virtual void ProcessHeaders(const BalsaHeaders& headers) override { }
virtual void ProcessRequestFirstLine(const char* line_input,
size_t line_length,
@@ -32,7 +32,7 @@
const char* request_uri_input,
size_t request_uri_length,
const char* version_input,
- size_t version_length) OVERRIDE { }
+ size_t version_length) override { }
virtual void ProcessResponseFirstLine(const char* line_input,
size_t line_length,
const char* version_input,
@@ -40,16 +40,16 @@
const char* status_input,
size_t status_length,
const char* reason_input,
- size_t reason_length) OVERRIDE { }
- virtual void ProcessChunkLength(size_t chunk_length) OVERRIDE { }
- virtual void ProcessChunkExtensions(const char* input, size_t size) OVERRIDE {
+ size_t reason_length) override { }
+ virtual void ProcessChunkLength(size_t chunk_length) override { }
+ virtual void ProcessChunkExtensions(const char* input, size_t size) override {
}
- virtual void HeaderDone() OVERRIDE { }
- virtual void MessageDone() OVERRIDE { }
- virtual void HandleHeaderError(BalsaFrame* framer) OVERRIDE { }
- virtual void HandleHeaderWarning(BalsaFrame* framer) OVERRIDE { }
- virtual void HandleChunkingError(BalsaFrame* framer) OVERRIDE { }
- virtual void HandleBodyError(BalsaFrame* framer) OVERRIDE { }
+ virtual void HeaderDone() override { }
+ virtual void MessageDone() override { }
+ virtual void HandleHeaderError(BalsaFrame* framer) override { }
+ virtual void HandleHeaderWarning(BalsaFrame* framer) override { }
+ virtual void HandleChunkingError(BalsaFrame* framer) override { }
+ virtual void HandleBodyError(BalsaFrame* framer) override { }
private:
DISALLOW_COPY_AND_ASSIGN(NoOpBalsaVisitor);
diff --git a/net/tools/balsa/simple_buffer.h b/net/tools/balsa/simple_buffer.h
index a550617..d58894e 100644
--- a/net/tools/balsa/simple_buffer.h
+++ b/net/tools/balsa/simple_buffer.h
@@ -32,32 +32,32 @@
// The following functions all override pure virtual functions
// in BufferInterface. See buffer_interface.h for a description
// of what they do.
- virtual int ReadableBytes() const OVERRIDE;
- virtual int BufferSize() const OVERRIDE;
- virtual int BytesFree() const OVERRIDE;
+ virtual int ReadableBytes() const override;
+ virtual int BufferSize() const override;
+ virtual int BytesFree() const override;
- virtual bool Empty() const OVERRIDE;
- virtual bool Full() const OVERRIDE;
+ virtual bool Empty() const override;
+ virtual bool Full() const override;
- virtual int Write(const char* bytes, int size) OVERRIDE;
+ virtual int Write(const char* bytes, int size) override;
- virtual void GetWritablePtr(char **ptr, int* size) const OVERRIDE;
+ virtual void GetWritablePtr(char **ptr, int* size) const override;
- virtual void GetReadablePtr(char **ptr, int* size) const OVERRIDE;
+ virtual void GetReadablePtr(char **ptr, int* size) const override;
- virtual int Read(char* bytes, int size) OVERRIDE;
+ virtual int Read(char* bytes, int size) override;
- virtual void Clear() OVERRIDE;
+ virtual void Clear() override;
// This can be an expensive operation: costing a new/delete, and copying of
// all existing data. Even if the existing buffer does not need to be
// resized, unread data may still need to be non-destructively copied to
// consolidate fragmented free space.
- virtual bool Reserve(int size) OVERRIDE;
+ virtual bool Reserve(int size) override;
- virtual void AdvanceReadablePtr(int amount_to_advance) OVERRIDE;
+ virtual void AdvanceReadablePtr(int amount_to_advance) override;
- virtual void AdvanceWritablePtr(int amount_to_advance) OVERRIDE;
+ virtual void AdvanceWritablePtr(int amount_to_advance) override;
void Swap(SimpleBuffer* other) {
char* tmp = storage_;
diff --git a/net/tools/dump_cache/cache_dumper.h b/net/tools/dump_cache/cache_dumper.h
index 9c5837c..46c3eec 100644
--- a/net/tools/dump_cache/cache_dumper.h
+++ b/net/tools/dump_cache/cache_dumper.h
@@ -48,12 +48,12 @@
explicit CacheDumper(disk_cache::Backend* cache);
virtual int CreateEntry(const std::string& key, disk_cache::Entry** entry,
- const net::CompletionCallback& callback) OVERRIDE;
+ const net::CompletionCallback& callback) override;
virtual int WriteEntry(disk_cache::Entry* entry, int stream, int offset,
net::IOBuffer* buf, int buf_len,
- const net::CompletionCallback& callback) OVERRIDE;
+ const net::CompletionCallback& callback) override;
virtual void CloseEntry(disk_cache::Entry* entry, base::Time last_used,
- base::Time last_modified) OVERRIDE;
+ base::Time last_modified) override;
private:
disk_cache::Backend* cache_;
@@ -65,12 +65,12 @@
explicit DiskDumper(const base::FilePath& path);
virtual int CreateEntry(const std::string& key, disk_cache::Entry** entry,
- const net::CompletionCallback& callback) OVERRIDE;
+ const net::CompletionCallback& callback) override;
virtual int WriteEntry(disk_cache::Entry* entry, int stream, int offset,
net::IOBuffer* buf, int buf_len,
- const net::CompletionCallback& callback) OVERRIDE;
+ const net::CompletionCallback& callback) override;
virtual void CloseEntry(disk_cache::Entry* entry, base::Time last_used,
- base::Time last_modified) OVERRIDE;
+ base::Time last_modified) override;
private:
base::FilePath path_;
diff --git a/net/tools/epoll_server/epoll_server.cc b/net/tools/epoll_server/epoll_server.cc
index a382dba..7ccae1d 100644
--- a/net/tools/epoll_server/epoll_server.cc
+++ b/net/tools/epoll_server/epoll_server.cc
@@ -60,7 +60,7 @@
// Clears the pipe and returns. Used for waking the epoll server up.
class ReadPipeCallback : public EpollCallbackInterface {
public:
- virtual void OnEvent(int fd, EpollEvent* event) OVERRIDE {
+ virtual void OnEvent(int fd, EpollEvent* event) override {
DCHECK(event->in_events == EPOLLIN);
int data;
int data_read = 1;
@@ -69,10 +69,10 @@
data_read = read(fd, &data, sizeof(data));
}
}
- virtual void OnShutdown(EpollServer *eps, int fd) OVERRIDE {}
- virtual void OnRegistration(EpollServer*, int, int) OVERRIDE {}
- virtual void OnModification(int, int) OVERRIDE {} // COV_NF_LINE
- virtual void OnUnregistration(int, bool) OVERRIDE {} // COV_NF_LINE
+ virtual void OnShutdown(EpollServer *eps, int fd) override {}
+ virtual void OnRegistration(EpollServer*, int, int) override {}
+ virtual void OnModification(int, int) override {} // COV_NF_LINE
+ virtual void OnUnregistration(int, bool) override {} // COV_NF_LINE
};
////////////////////////////////////////////////////////////////////////////////
diff --git a/net/tools/epoll_server/epoll_server.h b/net/tools/epoll_server/epoll_server.h
index 8822450..e8f1396 100644
--- a/net/tools/epoll_server/epoll_server.h
+++ b/net/tools/epoll_server/epoll_server.h
@@ -1023,17 +1023,17 @@
// Marks the alarm as unregistered and returns 0. The return value may be
// safely ignored by subclasses.
- virtual int64 OnAlarm() OVERRIDE;
+ virtual int64 OnAlarm() override;
// Marks the alarm as registered, and stores the token.
virtual void OnRegistration(const EpollServer::AlarmRegToken& token,
- EpollServer* eps) OVERRIDE;
+ EpollServer* eps) override;
// Marks the alarm as unregistered.
- virtual void OnUnregistration() OVERRIDE;
+ virtual void OnUnregistration() override;
// Marks the alarm as unregistered.
- virtual void OnShutdown(EpollServer* eps) OVERRIDE;
+ virtual void OnShutdown(EpollServer* eps) override;
// If the alarm was registered, unregister it.
void UnregisterIfRegistered();
diff --git a/net/tools/flip_server/acceptor_thread.h b/net/tools/flip_server/acceptor_thread.h
index bcaa43e..ecb4316 100644
--- a/net/tools/flip_server/acceptor_thread.h
+++ b/net/tools/flip_server/acceptor_thread.h
@@ -52,14 +52,14 @@
// EpollCallbackInteface interface
virtual void OnRegistration(EpollServer* eps,
int fd,
- int event_mask) OVERRIDE {}
- virtual void OnModification(int fd, int event_mask) OVERRIDE {}
- virtual void OnEvent(int fd, EpollEvent* event) OVERRIDE;
- virtual void OnUnregistration(int fd, bool replaced) OVERRIDE {}
- virtual void OnShutdown(EpollServer* eps, int fd) OVERRIDE {}
+ int event_mask) override {}
+ virtual void OnModification(int fd, int event_mask) override {}
+ virtual void OnEvent(int fd, EpollEvent* event) override;
+ virtual void OnUnregistration(int fd, bool replaced) override {}
+ virtual void OnShutdown(EpollServer* eps, int fd) override {}
// SMConnectionPool interface
- virtual void SMConnectionDone(SMConnection* sc) OVERRIDE;
+ virtual void SMConnectionDone(SMConnection* sc) override;
// TODO(mbelshe): figure out if we can move these to private functions.
SMConnection* NewConnection();
@@ -75,7 +75,7 @@
// idle longer than the configured timeout.
void HandleConnectionIdleTimeout();
- virtual void Run() OVERRIDE;
+ virtual void Run() override;
private:
EpollServer epoll_server_;
diff --git a/net/tools/flip_server/http_interface.h b/net/tools/flip_server/http_interface.h
index 30b7979..08a595e 100644
--- a/net/tools/flip_server/http_interface.h
+++ b/net/tools/flip_server/http_interface.h
@@ -32,11 +32,11 @@
private:
// BalsaVisitorInterface:
- virtual void ProcessBodyInput(const char* input, size_t size) OVERRIDE {}
- virtual void ProcessBodyData(const char* input, size_t size) OVERRIDE;
- virtual void ProcessHeaderInput(const char* input, size_t size) OVERRIDE {}
- virtual void ProcessTrailerInput(const char* input, size_t size) OVERRIDE {}
- virtual void ProcessHeaders(const BalsaHeaders& headers) OVERRIDE;
+ virtual void ProcessBodyInput(const char* input, size_t size) override {}
+ virtual void ProcessBodyData(const char* input, size_t size) override;
+ virtual void ProcessHeaderInput(const char* input, size_t size) override {}
+ virtual void ProcessTrailerInput(const char* input, size_t size) override {}
+ virtual void ProcessHeaders(const BalsaHeaders& headers) override;
virtual void ProcessRequestFirstLine(const char* line_input,
size_t line_length,
const char* method_input,
@@ -44,7 +44,7 @@
const char* request_uri_input,
size_t request_uri_length,
const char* version_input,
- size_t version_length) OVERRIDE {}
+ size_t version_length) override {}
virtual void ProcessResponseFirstLine(const char* line_input,
size_t line_length,
const char* version_input,
@@ -52,28 +52,28 @@
const char* status_input,
size_t status_length,
const char* reason_input,
- size_t reason_length) OVERRIDE {}
- virtual void ProcessChunkLength(size_t chunk_length) OVERRIDE {}
- virtual void ProcessChunkExtensions(const char* input, size_t size) OVERRIDE {
+ size_t reason_length) override {}
+ virtual void ProcessChunkLength(size_t chunk_length) override {}
+ virtual void ProcessChunkExtensions(const char* input, size_t size) override {
}
- virtual void HeaderDone() OVERRIDE {}
- virtual void MessageDone() OVERRIDE;
- virtual void HandleHeaderError(BalsaFrame* framer) OVERRIDE;
- virtual void HandleHeaderWarning(BalsaFrame* framer) OVERRIDE {}
- virtual void HandleChunkingError(BalsaFrame* framer) OVERRIDE;
- virtual void HandleBodyError(BalsaFrame* framer) OVERRIDE;
+ virtual void HeaderDone() override {}
+ virtual void MessageDone() override;
+ virtual void HandleHeaderError(BalsaFrame* framer) override;
+ virtual void HandleHeaderWarning(BalsaFrame* framer) override {}
+ virtual void HandleChunkingError(BalsaFrame* framer) override;
+ virtual void HandleBodyError(BalsaFrame* framer) override;
void HandleError();
public:
void AddToOutputOrder(const MemCacheIter& mci);
BalsaFrame* spdy_framer() { return http_framer_; }
- virtual void set_is_request() OVERRIDE {}
+ virtual void set_is_request() override {}
const OutputOrdering& output_ordering() const { return output_ordering_; }
// SMInterface:
virtual void InitSMInterface(SMInterface* sm_spdy_interface,
- int32 server_idx) OVERRIDE;
+ int32 server_idx) override;
virtual void InitSMConnection(SMConnectionPoolInterface* connection_pool,
SMInterface* sm_interface,
EpollServer* epoll_server,
@@ -81,33 +81,33 @@
std::string server_ip,
std::string server_port,
std::string remote_ip,
- bool use_ssl) OVERRIDE;
- virtual size_t ProcessReadInput(const char* data, size_t len) OVERRIDE;
- virtual size_t ProcessWriteInput(const char* data, size_t len) OVERRIDE;
- virtual bool MessageFullyRead() const OVERRIDE;
- virtual void SetStreamID(uint32 stream_id) OVERRIDE;
- virtual bool Error() const OVERRIDE;
- virtual const char* ErrorAsString() const OVERRIDE;
- virtual void Reset() OVERRIDE;
- virtual void ResetForNewInterface(int32 server_idx) OVERRIDE {}
- virtual void ResetForNewConnection() OVERRIDE;
- virtual void Cleanup() OVERRIDE;
- virtual int PostAcceptHook() OVERRIDE;
+ bool use_ssl) override;
+ virtual size_t ProcessReadInput(const char* data, size_t len) override;
+ virtual size_t ProcessWriteInput(const char* data, size_t len) override;
+ virtual bool MessageFullyRead() const override;
+ virtual void SetStreamID(uint32 stream_id) override;
+ virtual bool Error() const override;
+ virtual const char* ErrorAsString() const override;
+ virtual void Reset() override;
+ virtual void ResetForNewInterface(int32 server_idx) override {}
+ virtual void ResetForNewConnection() override;
+ virtual void Cleanup() override;
+ virtual int PostAcceptHook() override;
virtual void NewStream(uint32 stream_id,
uint32 priority,
- const std::string& filename) OVERRIDE;
- virtual void SendEOF(uint32 stream_id) OVERRIDE;
- virtual void SendErrorNotFound(uint32 stream_id) OVERRIDE;
+ const std::string& filename) override;
+ virtual void SendEOF(uint32 stream_id) override;
+ virtual void SendErrorNotFound(uint32 stream_id) override;
virtual size_t SendSynStream(uint32 stream_id,
- const BalsaHeaders& headers) OVERRIDE;
+ const BalsaHeaders& headers) override;
virtual size_t SendSynReply(uint32 stream_id,
- const BalsaHeaders& headers) OVERRIDE;
+ const BalsaHeaders& headers) override;
virtual void SendDataFrame(uint32 stream_id,
const char* data,
int64 len,
uint32 flags,
- bool compress) OVERRIDE;
+ bool compress) override;
private:
void SendEOFImpl(uint32 stream_id);
@@ -121,7 +121,7 @@
uint32 flags,
bool compress);
void EnqueueDataFrame(DataFrame* df);
- virtual void GetOutput() OVERRIDE;
+ virtual void GetOutput() override;
private:
BalsaFrame* http_framer_;
diff --git a/net/tools/flip_server/http_interface_test.cc b/net/tools/flip_server/http_interface_test.cc
index 969607b..9e72279 100644
--- a/net/tools/flip_server/http_interface_test.cc
+++ b/net/tools/flip_server/http_interface_test.cc
@@ -86,7 +86,7 @@
acceptor_.get()));
}
- virtual void TearDown() OVERRIDE {
+ virtual void TearDown() override {
if (acceptor_->listen_fd_ >= 0) {
epoll_server_->UnregisterFD(acceptor_->listen_fd_);
close(acceptor_->listen_fd_);
diff --git a/net/tools/flip_server/mem_cache.h b/net/tools/flip_server/mem_cache.h
index 76ffc95..63befee 100644
--- a/net/tools/flip_server/mem_cache.h
+++ b/net/tools/flip_server/mem_cache.h
@@ -21,11 +21,11 @@
void HandleError() { error_ = true; }
// BalsaVisitorInterface:
- virtual void ProcessBodyInput(const char* input, size_t size) OVERRIDE {}
- virtual void ProcessBodyData(const char* input, size_t size) OVERRIDE;
- virtual void ProcessHeaderInput(const char* input, size_t size) OVERRIDE {}
- virtual void ProcessTrailerInput(const char* input, size_t size) OVERRIDE {}
- virtual void ProcessHeaders(const BalsaHeaders& headers) OVERRIDE {
+ virtual void ProcessBodyInput(const char* input, size_t size) override {}
+ virtual void ProcessBodyData(const char* input, size_t size) override;
+ virtual void ProcessHeaderInput(const char* input, size_t size) override {}
+ virtual void ProcessTrailerInput(const char* input, size_t size) override {}
+ virtual void ProcessHeaders(const BalsaHeaders& headers) override {
// nothing to do here-- we're assuming that the BalsaFrame has
// been handed our headers.
}
@@ -36,7 +36,7 @@
const char* request_uri_input,
size_t request_uri_length,
const char* version_input,
- size_t version_length) OVERRIDE {}
+ size_t version_length) override {}
virtual void ProcessResponseFirstLine(const char* line_input,
size_t line_length,
const char* version_input,
@@ -44,16 +44,16 @@
const char* status_input,
size_t status_length,
const char* reason_input,
- size_t reason_length) OVERRIDE {}
- virtual void ProcessChunkLength(size_t chunk_length) OVERRIDE {}
- virtual void ProcessChunkExtensions(const char* input, size_t size) OVERRIDE {
+ size_t reason_length) override {}
+ virtual void ProcessChunkLength(size_t chunk_length) override {}
+ virtual void ProcessChunkExtensions(const char* input, size_t size) override {
}
- virtual void HeaderDone() OVERRIDE {}
- virtual void MessageDone() OVERRIDE {}
- virtual void HandleHeaderError(BalsaFrame* framer) OVERRIDE;
- virtual void HandleHeaderWarning(BalsaFrame* framer) OVERRIDE;
- virtual void HandleChunkingError(BalsaFrame* framer) OVERRIDE;
- virtual void HandleBodyError(BalsaFrame* framer) OVERRIDE;
+ virtual void HeaderDone() override {}
+ virtual void MessageDone() override {}
+ virtual void HandleHeaderError(BalsaFrame* framer) override;
+ virtual void HandleHeaderWarning(BalsaFrame* framer) override;
+ virtual void HandleChunkingError(BalsaFrame* framer) override;
+ virtual void HandleBodyError(BalsaFrame* framer) override;
BalsaHeaders headers;
std::string body;
diff --git a/net/tools/flip_server/mem_cache_test.cc b/net/tools/flip_server/mem_cache_test.cc
index 5e45bb5..bb01907 100644
--- a/net/tools/flip_server/mem_cache_test.cc
+++ b/net/tools/flip_server/mem_cache_test.cc
@@ -16,7 +16,7 @@
virtual ~MemoryCacheWithFakeReadToString() {}
virtual void ReadToString(const char* filename,
- std::string* output) OVERRIDE {
+ std::string* output) override {
*output = data_map_[filename];
}
diff --git a/net/tools/flip_server/output_ordering.h b/net/tools/flip_server/output_ordering.h
index 596f382..488d2e9 100644
--- a/net/tools/flip_server/output_ordering.h
+++ b/net/tools/flip_server/output_ordering.h
@@ -56,11 +56,11 @@
virtual ~BeginOutputtingAlarm();
// EpollAlarmCallbackInterface:
- virtual int64 OnAlarm() OVERRIDE;
+ virtual int64 OnAlarm() override;
virtual void OnRegistration(const EpollServer::AlarmRegToken& tok,
- EpollServer* eps) OVERRIDE;
- virtual void OnUnregistration() OVERRIDE;
- virtual void OnShutdown(EpollServer* eps) OVERRIDE;
+ EpollServer* eps) override;
+ virtual void OnUnregistration() override;
+ virtual void OnShutdown(EpollServer* eps) override;
private:
OutputOrdering* output_ordering_;
diff --git a/net/tools/flip_server/ring_buffer.h b/net/tools/flip_server/ring_buffer.h
index b129ee8..bb3b39f 100644
--- a/net/tools/flip_server/ring_buffer.h
+++ b/net/tools/flip_server/ring_buffer.h
@@ -38,32 +38,32 @@
// The following functions all override pure virtual functions
// in BufferInterface. See buffer_interface.h for a description
// of what they do if the function isn't documented here.
- virtual int ReadableBytes() const OVERRIDE;
- virtual int BufferSize() const OVERRIDE;
- virtual int BytesFree() const OVERRIDE;
+ virtual int ReadableBytes() const override;
+ virtual int BufferSize() const override;
+ virtual int BytesFree() const override;
- virtual bool Empty() const OVERRIDE;
- virtual bool Full() const OVERRIDE;
+ virtual bool Empty() const override;
+ virtual bool Full() const override;
// returns the number of characters written.
// appends up-to-'size' bytes to the ringbuffer.
- virtual int Write(const char* bytes, int size) OVERRIDE;
+ virtual int Write(const char* bytes, int size) override;
// Stores a pointer into the ring buffer in *ptr, and stores the number of
// characters which are allowed to be written in *size.
// If there are no writable bytes available, then *size will contain 0.
- virtual void GetWritablePtr(char** ptr, int* size) const OVERRIDE;
+ virtual void GetWritablePtr(char** ptr, int* size) const override;
// Stores a pointer into the ring buffer in *ptr, and stores the number of
// characters which are allowed to be read in *size.
// If there are no readable bytes available, then *size will contain 0.
- virtual void GetReadablePtr(char** ptr, int* size) const OVERRIDE;
+ virtual void GetReadablePtr(char** ptr, int* size) const override;
// Returns the number of bytes read into 'bytes'.
- virtual int Read(char* bytes, int size) OVERRIDE;
+ virtual int Read(char* bytes, int size) override;
// Removes all data from the ring buffer.
- virtual void Clear() OVERRIDE;
+ virtual void Clear() override;
// Reserves contiguous writable empty space in the buffer of size bytes.
// Since the point of this class is to have a fixed size buffer, be careful
@@ -76,15 +76,15 @@
// to consolidate fragmented free space. If the size requested is less than
// or equal to BytesFree(), it is guaranteed that the buffer size will not
// change.
- virtual bool Reserve(int size) OVERRIDE;
+ virtual bool Reserve(int size) override;
// Removes the oldest 'amount_to_advance' characters.
// If amount_to_consume > ReadableBytes(), this performs a Clear() instead.
- virtual void AdvanceReadablePtr(int amount_to_advance) OVERRIDE;
+ virtual void AdvanceReadablePtr(int amount_to_advance) override;
// Moves the internal pointers around such that the amount of data specified
// here is expected to already be resident (as if it was Written).
- virtual void AdvanceWritablePtr(int amount_to_advance) OVERRIDE;
+ virtual void AdvanceWritablePtr(int amount_to_advance) override;
protected:
int read_idx() const { return read_idx_; }
diff --git a/net/tools/flip_server/sm_connection.h b/net/tools/flip_server/sm_connection.h
index 2fe3228..5c5a5fd 100644
--- a/net/tools/flip_server/sm_connection.h
+++ b/net/tools/flip_server/sm_connection.h
@@ -57,10 +57,10 @@
std::string server_ip_;
std::string server_port_;
- virtual EpollServer* epoll_server() OVERRIDE;
+ virtual EpollServer* epoll_server() override;
OutputList* output_list() { return &output_list_; }
MemoryCache* memory_cache() { return memory_cache_; }
- virtual void ReadyToSend() OVERRIDE;
+ virtual void ReadyToSend() override;
void EnqueueDataFrame(DataFrame* df);
int fd() const { return fd_; }
@@ -84,14 +84,14 @@
// EpollCallbackInterface interface.
virtual void OnRegistration(EpollServer* eps,
int fd,
- int event_mask) OVERRIDE;
- virtual void OnModification(int fd, int event_mask) OVERRIDE {}
- virtual void OnEvent(int fd, EpollEvent* event) OVERRIDE;
- virtual void OnUnregistration(int fd, bool replaced) OVERRIDE;
- virtual void OnShutdown(EpollServer* eps, int fd) OVERRIDE;
+ int event_mask) override;
+ virtual void OnModification(int fd, int event_mask) override {}
+ virtual void OnEvent(int fd, EpollEvent* event) override;
+ virtual void OnUnregistration(int fd, bool replaced) override;
+ virtual void OnShutdown(EpollServer* eps, int fd) override;
// NotifierInterface interface.
- virtual void Notify() OVERRIDE {}
+ virtual void Notify() override {}
void Cleanup(const char* cleanup);
diff --git a/net/tools/flip_server/spdy_interface.h b/net/tools/flip_server/spdy_interface.h
index 2174274..2d2437a 100644
--- a/net/tools/flip_server/spdy_interface.h
+++ b/net/tools/flip_server/spdy_interface.h
@@ -35,7 +35,7 @@
virtual ~SpdySM();
virtual void InitSMInterface(SMInterface* sm_http_interface,
- int32 server_idx) OVERRIDE {}
+ int32 server_idx) override {}
virtual void InitSMConnection(SMConnectionPoolInterface* connection_pool,
SMInterface* sm_interface,
@@ -44,13 +44,13 @@
std::string server_ip,
std::string server_port,
std::string remote_ip,
- bool use_ssl) OVERRIDE;
+ bool use_ssl) override;
// Create new SPDY framer after reusing SpdySM and negotiating new version
void CreateFramer(SpdyMajorVersion spdy_version);
private:
- virtual void set_is_request() OVERRIDE {}
+ virtual void set_is_request() override {}
SMInterface* NewConnectionInterface();
// virtual for tests
virtual SMInterface* FindOrMakeNewSMConnectionInterface(
@@ -63,31 +63,31 @@
bool* is_https_scheme);
// BufferedSpdyFramerVisitorInterface:
- virtual void OnError(SpdyFramer::SpdyError error_code) OVERRIDE {}
+ virtual void OnError(SpdyFramer::SpdyError error_code) override {}
virtual void OnStreamError(SpdyStreamId stream_id,
- const std::string& description) OVERRIDE {}
+ const std::string& description) override {}
// Called after all the header data for SYN_STREAM control frame is received.
virtual void OnSynStream(SpdyStreamId stream_id,
SpdyStreamId associated_stream_id,
SpdyPriority priority,
bool fin,
bool unidirectional,
- const SpdyHeaderBlock& headers) OVERRIDE;
+ const SpdyHeaderBlock& headers) override;
// Called after all the header data for SYN_REPLY control frame is received.
virtual void OnSynReply(SpdyStreamId stream_id,
bool fin,
- const SpdyHeaderBlock& headers) OVERRIDE;
+ const SpdyHeaderBlock& headers) override;
// Called after all the header data for HEADERS control frame is received.
virtual void OnHeaders(SpdyStreamId stream_id,
bool fin,
- const SpdyHeaderBlock& headers) OVERRIDE;
+ const SpdyHeaderBlock& headers) override;
// Called when data frame header is received.
virtual void OnDataFrameHeader(SpdyStreamId stream_id,
size_t length,
- bool fin) OVERRIDE {}
+ bool fin) override {}
// Called when data is received.
// |stream_id| The stream receiving data.
@@ -98,73 +98,73 @@
virtual void OnStreamFrameData(SpdyStreamId stream_id,
const char* data,
size_t len,
- bool fin) OVERRIDE;
+ bool fin) override;
// Called when a SETTINGS frame is received.
// |clear_persisted| True if the respective flag is set on the SETTINGS frame.
- virtual void OnSettings(bool clear_persisted) OVERRIDE {}
+ virtual void OnSettings(bool clear_persisted) override {}
// Called when an individual setting within a SETTINGS frame has been parsed
// and validated.
virtual void OnSetting(SpdySettingsIds id,
uint8 flags,
- uint32 value) OVERRIDE {}
+ uint32 value) override {}
// Called when a PING frame has been parsed.
- virtual void OnPing(SpdyPingId unique_id, bool is_ack) OVERRIDE {}
+ virtual void OnPing(SpdyPingId unique_id, bool is_ack) override {}
// Called when a RST_STREAM frame has been parsed.
virtual void OnRstStream(SpdyStreamId stream_id,
- SpdyRstStreamStatus status) OVERRIDE;
+ SpdyRstStreamStatus status) override;
// Called when a GOAWAY frame has been parsed.
virtual void OnGoAway(SpdyStreamId last_accepted_stream_id,
- SpdyGoAwayStatus status) OVERRIDE {}
+ SpdyGoAwayStatus status) override {}
// Called when a WINDOW_UPDATE frame has been parsed.
virtual void OnWindowUpdate(SpdyStreamId stream_id,
- uint32 delta_window_size) OVERRIDE {}
+ uint32 delta_window_size) override {}
// Called when a PUSH_PROMISE frame has been parsed.
virtual void OnPushPromise(SpdyStreamId stream_id,
SpdyStreamId promised_stream_id,
- const SpdyHeaderBlock& headers) OVERRIDE {}
+ const SpdyHeaderBlock& headers) override {}
- virtual bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) OVERRIDE;
+ virtual bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) override;
public:
- virtual size_t ProcessReadInput(const char* data, size_t len) OVERRIDE;
- virtual size_t ProcessWriteInput(const char* data, size_t len) OVERRIDE;
- virtual bool MessageFullyRead() const OVERRIDE;
- virtual void SetStreamID(uint32 stream_id) OVERRIDE {}
- virtual bool Error() const OVERRIDE;
- virtual const char* ErrorAsString() const OVERRIDE;
- virtual void Reset() OVERRIDE {}
- virtual void ResetForNewInterface(int32 server_idx) OVERRIDE;
- virtual void ResetForNewConnection() OVERRIDE;
+ virtual size_t ProcessReadInput(const char* data, size_t len) override;
+ virtual size_t ProcessWriteInput(const char* data, size_t len) override;
+ virtual bool MessageFullyRead() const override;
+ virtual void SetStreamID(uint32 stream_id) override {}
+ virtual bool Error() const override;
+ virtual const char* ErrorAsString() const override;
+ virtual void Reset() override {}
+ virtual void ResetForNewInterface(int32 server_idx) override;
+ virtual void ResetForNewConnection() override;
// SMInterface's Cleanup is currently only called by SMConnection after a
// protocol message as been fully read. Spdy's SMInterface does not need
// to do any cleanup at this time.
// TODO(klindsay) This method is probably not being used properly and
// some logic review and method renaming is probably in order.
- virtual void Cleanup() OVERRIDE {}
+ virtual void Cleanup() override {}
// Send a settings frame
- virtual int PostAcceptHook() OVERRIDE;
+ virtual int PostAcceptHook() override;
virtual void NewStream(uint32 stream_id,
uint32 priority,
- const std::string& filename) OVERRIDE;
+ const std::string& filename) override;
void AddToOutputOrder(const MemCacheIter& mci);
- virtual void SendEOF(uint32 stream_id) OVERRIDE;
- virtual void SendErrorNotFound(uint32 stream_id) OVERRIDE;
+ virtual void SendEOF(uint32 stream_id) override;
+ virtual void SendErrorNotFound(uint32 stream_id) override;
virtual size_t SendSynStream(uint32 stream_id,
- const BalsaHeaders& headers) OVERRIDE;
+ const BalsaHeaders& headers) override;
virtual size_t SendSynReply(uint32 stream_id,
- const BalsaHeaders& headers) OVERRIDE;
+ const BalsaHeaders& headers) override;
virtual void SendDataFrame(uint32 stream_id,
const char* data,
int64 len,
uint32 flags,
- bool compress) OVERRIDE;
+ bool compress) override;
BufferedSpdyFramer* spdy_framer() { return buffered_spdy_framer_.get(); }
const OutputOrdering& output_ordering() const {
@@ -193,7 +193,7 @@
SpdyDataFlags flags,
bool compress);
void EnqueueDataFrame(DataFrame* df);
- virtual void GetOutput() OVERRIDE;
+ virtual void GetOutput() override;
private:
scoped_ptr<BufferedSpdyFramer> buffered_spdy_framer_;
diff --git a/net/tools/flip_server/streamer_interface.h b/net/tools/flip_server/streamer_interface.h
index 0114491..ca04f1e 100644
--- a/net/tools/flip_server/streamer_interface.h
+++ b/net/tools/flip_server/streamer_interface.h
@@ -31,7 +31,7 @@
void AddToOutputOrder(const MemCacheIter& mci) {}
virtual void InitSMInterface(SMInterface* sm_other_interface,
- int32 server_idx) OVERRIDE;
+ int32 server_idx) override;
virtual void InitSMConnection(SMConnectionPoolInterface* connection_pool,
SMInterface* sm_interface,
EpollServer* epoll_server,
@@ -39,35 +39,35 @@
std::string server_ip,
std::string server_port,
std::string remote_ip,
- bool use_ssl) OVERRIDE;
+ bool use_ssl) override;
- virtual size_t ProcessReadInput(const char* data, size_t len) OVERRIDE;
- virtual size_t ProcessWriteInput(const char* data, size_t len) OVERRIDE;
- virtual bool MessageFullyRead() const OVERRIDE;
- virtual void SetStreamID(uint32 stream_id) OVERRIDE {}
- virtual bool Error() const OVERRIDE;
- virtual const char* ErrorAsString() const OVERRIDE;
- virtual void Reset() OVERRIDE;
- virtual void ResetForNewInterface(int32 server_idx) OVERRIDE {}
- virtual void ResetForNewConnection() OVERRIDE;
- virtual void Cleanup() OVERRIDE;
- virtual int PostAcceptHook() OVERRIDE;
+ virtual size_t ProcessReadInput(const char* data, size_t len) override;
+ virtual size_t ProcessWriteInput(const char* data, size_t len) override;
+ virtual bool MessageFullyRead() const override;
+ virtual void SetStreamID(uint32 stream_id) override {}
+ virtual bool Error() const override;
+ virtual const char* ErrorAsString() const override;
+ virtual void Reset() override;
+ virtual void ResetForNewInterface(int32 server_idx) override {}
+ virtual void ResetForNewConnection() override;
+ virtual void Cleanup() override;
+ virtual int PostAcceptHook() override;
virtual void NewStream(uint32 stream_id,
uint32 priority,
- const std::string& filename) OVERRIDE {}
- virtual void SendEOF(uint32 stream_id) OVERRIDE {}
- virtual void SendErrorNotFound(uint32 stream_id) OVERRIDE {}
+ const std::string& filename) override {}
+ virtual void SendEOF(uint32 stream_id) override {}
+ virtual void SendErrorNotFound(uint32 stream_id) override {}
virtual void SendOKResponse(uint32 stream_id, std::string output) {}
virtual size_t SendSynStream(uint32 stream_id,
- const BalsaHeaders& headers) OVERRIDE;
+ const BalsaHeaders& headers) override;
virtual size_t SendSynReply(uint32 stream_id,
- const BalsaHeaders& headers) OVERRIDE;
+ const BalsaHeaders& headers) override;
virtual void SendDataFrame(uint32 stream_id,
const char* data,
int64 len,
uint32 flags,
- bool compress) OVERRIDE {}
- virtual void set_is_request() OVERRIDE;
+ bool compress) override {}
+ virtual void set_is_request() override;
static std::string forward_ip_header() { return forward_ip_header_; }
static void set_forward_ip_header(std::string value) {
forward_ip_header_ = value;
@@ -88,14 +88,14 @@
int64 len,
uint32 flags,
bool compress) {}
- virtual void GetOutput() OVERRIDE {}
+ virtual void GetOutput() override {}
- virtual void ProcessBodyInput(const char* input, size_t size) OVERRIDE;
- virtual void MessageDone() OVERRIDE;
- virtual void ProcessHeaders(const BalsaHeaders& headers) OVERRIDE;
- virtual void ProcessBodyData(const char* input, size_t size) OVERRIDE {}
- virtual void ProcessHeaderInput(const char* input, size_t size) OVERRIDE {}
- virtual void ProcessTrailerInput(const char* input, size_t size) OVERRIDE {}
+ virtual void ProcessBodyInput(const char* input, size_t size) override;
+ virtual void MessageDone() override;
+ virtual void ProcessHeaders(const BalsaHeaders& headers) override;
+ virtual void ProcessBodyData(const char* input, size_t size) override {}
+ virtual void ProcessHeaderInput(const char* input, size_t size) override {}
+ virtual void ProcessTrailerInput(const char* input, size_t size) override {}
virtual void ProcessRequestFirstLine(const char* line_input,
size_t line_length,
const char* method_input,
@@ -103,7 +103,7 @@
const char* request_uri_input,
size_t request_uri_length,
const char* version_input,
- size_t version_length) OVERRIDE {}
+ size_t version_length) override {}
virtual void ProcessResponseFirstLine(const char* line_input,
size_t line_length,
const char* version_input,
@@ -111,15 +111,15 @@
const char* status_input,
size_t status_length,
const char* reason_input,
- size_t reason_length) OVERRIDE {}
- virtual void ProcessChunkLength(size_t chunk_length) OVERRIDE {}
- virtual void ProcessChunkExtensions(const char* input, size_t size) OVERRIDE {
+ size_t reason_length) override {}
+ virtual void ProcessChunkLength(size_t chunk_length) override {}
+ virtual void ProcessChunkExtensions(const char* input, size_t size) override {
}
- virtual void HeaderDone() OVERRIDE {}
- virtual void HandleHeaderError(BalsaFrame* framer) OVERRIDE;
- virtual void HandleHeaderWarning(BalsaFrame* framer) OVERRIDE {}
- virtual void HandleChunkingError(BalsaFrame* framer) OVERRIDE;
- virtual void HandleBodyError(BalsaFrame* framer) OVERRIDE;
+ virtual void HeaderDone() override {}
+ virtual void HandleHeaderError(BalsaFrame* framer) override;
+ virtual void HandleHeaderWarning(BalsaFrame* framer) override {}
+ virtual void HandleChunkingError(BalsaFrame* framer) override;
+ virtual void HandleBodyError(BalsaFrame* framer) override;
void HandleError();
SMConnection* connection_;
diff --git a/net/tools/gdig/file_net_log.h b/net/tools/gdig/file_net_log.h
index 0f858bb..005ea31 100644
--- a/net/tools/gdig/file_net_log.h
+++ b/net/tools/gdig/file_net_log.h
@@ -23,7 +23,7 @@
virtual ~FileNetLogObserver();
// NetLog::ThreadSafeObserver implementation:
- virtual void OnAddEntry(const net::NetLog::Entry& entry) OVERRIDE;
+ virtual void OnAddEntry(const net::NetLog::Entry& entry) override;
private:
FILE* const destination_;
diff --git a/net/tools/get_server_time/get_server_time.cc b/net/tools/get_server_time/get_server_time.cc
index ddc08b2..8ad907d 100644
--- a/net/tools/get_server_time/get_server_time.cc
+++ b/net/tools/get_server_time/get_server_time.cc
@@ -75,18 +75,18 @@
virtual ~QuitDelegate() {}
// net::URLFetcherDelegate implementation.
- virtual void OnURLFetchComplete(const net::URLFetcher* source) OVERRIDE {
+ virtual void OnURLFetchComplete(const net::URLFetcher* source) override {
base::MessageLoop::current()->Quit();
}
virtual void OnURLFetchDownloadProgress(
const net::URLFetcher* source,
- int64 current, int64 total) OVERRIDE {
+ int64 current, int64 total) override {
NOTREACHED();
}
virtual void OnURLFetchUploadProgress(const net::URLFetcher* source,
- int64 current, int64 total) OVERRIDE {
+ int64 current, int64 total) override {
NOTREACHED();
}
@@ -106,7 +106,7 @@
}
// NetLog::ThreadSafeObserver implementation:
- virtual void OnAddEntry(const net::NetLog::Entry& entry) OVERRIDE {
+ virtual void OnAddEntry(const net::NetLog::Entry& entry) override {
// The log level of the entry is unknown, so just assume it maps
// to VLOG(1).
if (!VLOG_IS_ON(1))
diff --git a/net/tools/net_watcher/net_watcher.cc b/net/tools/net_watcher/net_watcher.cc
index 37c56a5..e9b3496 100644
--- a/net/tools/net_watcher/net_watcher.cc
+++ b/net/tools/net_watcher/net_watcher.cc
@@ -91,25 +91,25 @@
virtual ~NetWatcher() {}
// net::NetworkChangeNotifier::IPAddressObserver implementation.
- virtual void OnIPAddressChanged() OVERRIDE {
+ virtual void OnIPAddressChanged() override {
LOG(INFO) << "OnIPAddressChanged()";
}
// net::NetworkChangeNotifier::ConnectionTypeObserver implementation.
virtual void OnConnectionTypeChanged(
- net::NetworkChangeNotifier::ConnectionType type) OVERRIDE {
+ net::NetworkChangeNotifier::ConnectionType type) override {
LOG(INFO) << "OnConnectionTypeChanged("
<< ConnectionTypeToString(type) << ")";
}
// net::NetworkChangeNotifier::DNSObserver implementation.
- virtual void OnDNSChanged() OVERRIDE {
+ virtual void OnDNSChanged() override {
LOG(INFO) << "OnDNSChanged()";
}
// net::NetworkChangeNotifier::NetworkChangeObserver implementation.
virtual void OnNetworkChanged(
- net::NetworkChangeNotifier::ConnectionType type) OVERRIDE {
+ net::NetworkChangeNotifier::ConnectionType type) override {
LOG(INFO) << "OnNetworkChanged("
<< ConnectionTypeToString(type) << ")";
}
@@ -117,7 +117,7 @@
// net::ProxyConfigService::Observer implementation.
virtual void OnProxyConfigChanged(
const net::ProxyConfig& config,
- net::ProxyConfigService::ConfigAvailability availability) OVERRIDE {
+ net::ProxyConfigService::ConfigAvailability availability) override {
LOG(INFO) << "OnProxyConfigChanged("
<< ProxyConfigToString(config) << ", "
<< ConfigAvailabilityToString(availability) << ")";
diff --git a/net/tools/quic/end_to_end_test.cc b/net/tools/quic/end_to_end_test.cc
index b7d4c3d..f29af96 100644
--- a/net/tools/quic/end_to_end_test.cc
+++ b/net/tools/quic/end_to_end_test.cc
@@ -159,10 +159,10 @@
: writer_factory_(writer_factory),
dispatcher_(dispatcher) {}
virtual ~ServerDelegate() {}
- virtual void OnPacketSent(WriteResult result) OVERRIDE {
+ virtual void OnPacketSent(WriteResult result) override {
writer_factory_->OnPacketSent(result);
}
- virtual void OnCanWrite() OVERRIDE { dispatcher_->OnCanWrite(); }
+ virtual void OnCanWrite() override { dispatcher_->OnCanWrite(); }
private:
TestWriterFactory* writer_factory_;
QuicDispatcher* dispatcher_;
@@ -172,8 +172,8 @@
public:
explicit ClientDelegate(QuicClient* client) : client_(client) {}
virtual ~ClientDelegate() {}
- virtual void OnPacketSent(WriteResult result) OVERRIDE {}
- virtual void OnCanWrite() OVERRIDE {
+ virtual void OnPacketSent(WriteResult result) override {}
+ virtual void OnCanWrite() override {
EpollEvent event(EPOLLOUT, false);
client_->OnEvent(client_->fd(), &event);
}
@@ -198,9 +198,6 @@
VLOG(1) << "Using Configuration: " << GetParam();
- client_config_.SetDefaults();
- server_config_.SetDefaults();
-
// Use different flow control windows for client/server.
client_config_.SetInitialFlowControlWindowToSend(
2 * kInitialSessionFlowControlWindowForTest);
@@ -323,14 +320,14 @@
return client_->client()->connected();
}
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
// The ownership of these gets transferred to the QuicPacketWriterWrapper
// and TestWriterFactory when Initialize() is executed.
client_writer_ = new PacketDroppingTestWriter();
server_writer_ = new PacketDroppingTestWriter();
}
- virtual void TearDown() OVERRIDE {
+ virtual void TearDown() override {
StopServer();
}
@@ -1107,13 +1104,13 @@
const char* buffer,
size_t buf_len,
const IPAddressNumber& real_self_address,
- const IPEndPoint& peer_address) OVERRIDE {
+ const IPEndPoint& peer_address) override {
// Use wrong address!
return QuicPacketWriterWrapper::WritePacket(
buffer, buf_len, self_address_.address(), peer_address);
}
- virtual bool IsWriteBlockedDataBuffered() const OVERRIDE {
+ virtual bool IsWriteBlockedDataBuffered() const override {
return false;
}
diff --git a/net/tools/quic/quic_client.cc b/net/tools/quic/quic_client.cc
index e70d8b8..7b2c994 100644
--- a/net/tools/quic/quic_client.cc
+++ b/net/tools/quic/quic_client.cc
@@ -49,7 +49,6 @@
overflow_supported_(false),
supported_versions_(supported_versions),
print_response_(print_response) {
- config_.SetDefaults();
}
QuicClient::QuicClient(IPEndPoint server_address,
@@ -86,7 +85,6 @@
DCHECK(!initialized_);
epoll_server_->set_timeout_in_us(50 * 1000);
- crypto_config_.SetDefaults();
if (!CreateUDPSocket()) {
return false;
diff --git a/net/tools/quic/quic_client.h b/net/tools/quic/quic_client.h
index 8b0f1fe..ae5c2d9 100644
--- a/net/tools/quic/quic_client.h
+++ b/net/tools/quic/quic_client.h
@@ -107,17 +107,17 @@
// From EpollCallbackInterface
virtual void OnRegistration(EpollServer* eps,
int fd,
- int event_mask) OVERRIDE {}
- virtual void OnModification(int fd, int event_mask) OVERRIDE {}
- virtual void OnEvent(int fd, EpollEvent* event) OVERRIDE;
+ int event_mask) override {}
+ virtual void OnModification(int fd, int event_mask) override {}
+ virtual void OnEvent(int fd, EpollEvent* event) override;
// |fd_| can be unregistered without the client being disconnected. This
// happens in b3m QuicProber where we unregister |fd_| to feed in events to
// the client from the SelectServer.
- virtual void OnUnregistration(int fd, bool replaced) OVERRIDE {}
- virtual void OnShutdown(EpollServer* eps, int fd) OVERRIDE {}
+ virtual void OnUnregistration(int fd, bool replaced) override {}
+ virtual void OnShutdown(EpollServer* eps, int fd) override {}
// QuicDataStream::Visitor
- virtual void OnClose(QuicDataStream* stream) OVERRIDE;
+ virtual void OnClose(QuicDataStream* stream) override;
QuicClientSession* session() { return session_.get(); }
@@ -194,7 +194,7 @@
DummyPacketWriterFactory(QuicPacketWriter* writer);
virtual ~DummyPacketWriterFactory();
- virtual QuicPacketWriter* Create(QuicConnection* connection) const OVERRIDE;
+ virtual QuicPacketWriter* Create(QuicConnection* connection) const override;
private:
QuicPacketWriter* writer_;
diff --git a/net/tools/quic/quic_client_bin.cc b/net/tools/quic/quic_client_bin.cc
index 4f76624..0f5c746 100644
--- a/net/tools/quic/quic_client_bin.cc
+++ b/net/tools/quic/quic_client_bin.cc
@@ -118,7 +118,6 @@
<< QuicVersionVectorToString(versions);
net::EpollServer epoll_server;
net::QuicConfig config;
- config.SetDefaults();
// The default flow control window of 16 Kb is too small for practical
// purposes. Set it to the specified value, which has a large default.
diff --git a/net/tools/quic/quic_client_session.h b/net/tools/quic/quic_client_session.h
index bb64145..5e0624a 100644
--- a/net/tools/quic/quic_client_session.h
+++ b/net/tools/quic/quic_client_session.h
@@ -30,16 +30,16 @@
// QuicClientSessionBase methods:
virtual void OnProofValid(
- const QuicCryptoClientConfig::CachedState& cached) OVERRIDE;
+ const QuicCryptoClientConfig::CachedState& cached) override;
virtual void OnProofVerifyDetailsAvailable(
- const ProofVerifyDetails& verify_details) OVERRIDE;
+ const ProofVerifyDetails& verify_details) override;
void InitializeSession(const QuicServerId& server_id,
QuicCryptoClientConfig* config);
// QuicSession methods:
- virtual QuicSpdyClientStream* CreateOutgoingDataStream() OVERRIDE;
- virtual QuicCryptoClientStream* GetCryptoStream() OVERRIDE;
+ virtual QuicSpdyClientStream* CreateOutgoingDataStream() override;
+ virtual QuicCryptoClientStream* GetCryptoStream() override;
// Performs a crypto handshake with the server. Returns true if the crypto
// handshake is started successfully.
@@ -52,7 +52,7 @@
protected:
// QuicSession methods:
- virtual QuicDataStream* CreateIncomingDataStream(QuicStreamId id) OVERRIDE;
+ virtual QuicDataStream* CreateIncomingDataStream(QuicStreamId id) override;
private:
scoped_ptr<QuicCryptoClientStream> crypto_stream_;
diff --git a/net/tools/quic/quic_client_session_test.cc b/net/tools/quic/quic_client_session_test.cc
index 2bd4315..8a78878 100644
--- a/net/tools/quic/quic_client_session_test.cc
+++ b/net/tools/quic/quic_client_session_test.cc
@@ -40,14 +40,12 @@
: public ::testing::TestWithParam<QuicVersion> {
protected:
ToolsQuicClientSessionTest()
- : connection_(new PacketSavingConnection(false,
- SupportedVersions(GetParam()))) {
- crypto_config_.SetDefaults();
+ : connection_(
+ new PacketSavingConnection(false, SupportedVersions(GetParam()))) {
session_.reset(new QuicClientSession(DefaultQuicConfig(), connection_));
session_->InitializeSession(
QuicServerId(kServerHostname, kPort, false, PRIVACY_MODE_DISABLED),
&crypto_config_);
- session_->config()->SetDefaults();
}
void CompleteCryptoHandshake() {
@@ -74,8 +72,7 @@
// Initialize crypto before the client session will create a stream.
CompleteCryptoHandshake();
- QuicSpdyClientStream* stream =
- session_->CreateOutgoingDataStream();
+ QuicSpdyClientStream* stream = session_->CreateOutgoingDataStream();
ASSERT_TRUE(stream);
EXPECT_FALSE(session_->CreateOutgoingDataStream());
diff --git a/net/tools/quic/quic_default_packet_writer.h b/net/tools/quic/quic_default_packet_writer.h
index 7b5a36b..47925c3 100644
--- a/net/tools/quic/quic_default_packet_writer.h
+++ b/net/tools/quic/quic_default_packet_writer.h
@@ -25,10 +25,10 @@
virtual WriteResult WritePacket(const char* buffer,
size_t buf_len,
const IPAddressNumber& self_address,
- const IPEndPoint& peer_address) OVERRIDE;
- virtual bool IsWriteBlockedDataBuffered() const OVERRIDE;
- virtual bool IsWriteBlocked() const OVERRIDE;
- virtual void SetWritable() OVERRIDE;
+ const IPEndPoint& peer_address) override;
+ virtual bool IsWriteBlockedDataBuffered() const override;
+ virtual bool IsWriteBlocked() const override;
+ virtual void SetWritable() override;
void set_fd(int fd) { fd_ = fd; }
diff --git a/net/tools/quic/quic_dispatcher.cc b/net/tools/quic/quic_dispatcher.cc
index 11272e5..5f0e2da 100644
--- a/net/tools/quic/quic_dispatcher.cc
+++ b/net/tools/quic/quic_dispatcher.cc
@@ -32,7 +32,7 @@
: dispatcher_(dispatcher) {
}
- virtual int64 OnAlarm() OVERRIDE {
+ virtual int64 OnAlarm() override {
EpollAlarm::OnAlarm();
dispatcher_->DeleteSessions();
return 0;
@@ -49,23 +49,23 @@
connection_id_(0) {}
// QuicFramerVisitorInterface implementation
- virtual void OnPacket() OVERRIDE {}
+ virtual void OnPacket() override {}
virtual bool OnUnauthenticatedPublicHeader(
- const QuicPacketPublicHeader& header) OVERRIDE {
+ const QuicPacketPublicHeader& header) override {
connection_id_ = header.connection_id;
return dispatcher_->OnUnauthenticatedPublicHeader(header);
}
virtual bool OnUnauthenticatedHeader(
- const QuicPacketHeader& header) OVERRIDE {
+ const QuicPacketHeader& header) override {
dispatcher_->OnUnauthenticatedHeader(header);
return false;
}
- virtual void OnError(QuicFramer* framer) OVERRIDE {
+ virtual void OnError(QuicFramer* framer) override {
DVLOG(1) << QuicUtils::ErrorToString(framer->error());
}
virtual bool OnProtocolVersionMismatch(
- QuicVersion /*received_version*/) OVERRIDE {
+ QuicVersion /*received_version*/) override {
if (dispatcher_->time_wait_list_manager()->IsConnectionIdInTimeWait(
connection_id_)) {
// Keep processing after protocol mismatch - this will be dealt with by
@@ -82,74 +82,74 @@
// false from OnUnauthenticatedHeader(). As a result, we never process the
// payload of the packet.
virtual void OnPublicResetPacket(
- const QuicPublicResetPacket& /*packet*/) OVERRIDE {
+ const QuicPublicResetPacket& /*packet*/) override {
DCHECK(false);
}
virtual void OnVersionNegotiationPacket(
- const QuicVersionNegotiationPacket& /*packet*/) OVERRIDE {
+ const QuicVersionNegotiationPacket& /*packet*/) override {
DCHECK(false);
}
- virtual void OnDecryptedPacket(EncryptionLevel level) OVERRIDE {
+ virtual void OnDecryptedPacket(EncryptionLevel level) override {
DCHECK(false);
}
- virtual bool OnPacketHeader(const QuicPacketHeader& /*header*/) OVERRIDE {
+ virtual bool OnPacketHeader(const QuicPacketHeader& /*header*/) override {
DCHECK(false);
return false;
}
- virtual void OnRevivedPacket() OVERRIDE {
+ virtual void OnRevivedPacket() override {
DCHECK(false);
}
- virtual void OnFecProtectedPayload(StringPiece /*payload*/) OVERRIDE {
+ virtual void OnFecProtectedPayload(StringPiece /*payload*/) override {
DCHECK(false);
}
- virtual bool OnStreamFrame(const QuicStreamFrame& /*frame*/) OVERRIDE {
+ virtual bool OnStreamFrame(const QuicStreamFrame& /*frame*/) override {
DCHECK(false);
return false;
}
- virtual bool OnAckFrame(const QuicAckFrame& /*frame*/) OVERRIDE {
+ virtual bool OnAckFrame(const QuicAckFrame& /*frame*/) override {
DCHECK(false);
return false;
}
virtual bool OnCongestionFeedbackFrame(
- const QuicCongestionFeedbackFrame& /*frame*/) OVERRIDE {
+ const QuicCongestionFeedbackFrame& /*frame*/) override {
DCHECK(false);
return false;
}
virtual bool OnStopWaitingFrame(
- const QuicStopWaitingFrame& /*frame*/) OVERRIDE {
+ const QuicStopWaitingFrame& /*frame*/) override {
DCHECK(false);
return false;
}
- virtual bool OnPingFrame(const QuicPingFrame& /*frame*/) OVERRIDE {
+ virtual bool OnPingFrame(const QuicPingFrame& /*frame*/) override {
DCHECK(false);
return false;
}
- virtual bool OnRstStreamFrame(const QuicRstStreamFrame& /*frame*/) OVERRIDE {
+ virtual bool OnRstStreamFrame(const QuicRstStreamFrame& /*frame*/) override {
DCHECK(false);
return false;
}
virtual bool OnConnectionCloseFrame(
- const QuicConnectionCloseFrame & /*frame*/) OVERRIDE {
+ const QuicConnectionCloseFrame & /*frame*/) override {
DCHECK(false);
return false;
}
- virtual bool OnGoAwayFrame(const QuicGoAwayFrame& /*frame*/) OVERRIDE {
+ virtual bool OnGoAwayFrame(const QuicGoAwayFrame& /*frame*/) override {
DCHECK(false);
return false;
}
virtual bool OnWindowUpdateFrame(const QuicWindowUpdateFrame& /*frame*/)
- OVERRIDE {
+ override {
DCHECK(false);
return false;
}
- virtual bool OnBlockedFrame(const QuicBlockedFrame& frame) OVERRIDE {
+ virtual bool OnBlockedFrame(const QuicBlockedFrame& frame) override {
DCHECK(false);
return false;
}
- virtual void OnFecData(const QuicFecData& /*fec*/) OVERRIDE {
+ virtual void OnFecData(const QuicFecData& /*fec*/) override {
DCHECK(false);
}
- virtual void OnPacketComplete() OVERRIDE {
+ virtual void OnPacketComplete() override {
DCHECK(false);
}
diff --git a/net/tools/quic/quic_dispatcher.h b/net/tools/quic/quic_dispatcher.h
index ab8417c..8b0ab6d 100644
--- a/net/tools/quic/quic_dispatcher.h
+++ b/net/tools/quic/quic_dispatcher.h
@@ -68,7 +68,7 @@
virtual QuicPacketWriter* Create(
QuicPacketWriter* writer,
- QuicConnection* connection) OVERRIDE;
+ QuicConnection* connection) override;
};
// Ideally we'd have a linked_hash_set: the boolean is unused.
@@ -92,7 +92,7 @@
// an existing session, or passing it to the TimeWaitListManager.
virtual void ProcessPacket(const IPEndPoint& server_address,
const IPEndPoint& client_address,
- const QuicEncryptedPacket& packet) OVERRIDE;
+ const QuicEncryptedPacket& packet) override;
// Called when the socket becomes writable to allow queued writes to happen.
virtual void OnCanWrite();
@@ -106,11 +106,11 @@
// QuicServerSessionVisitor interface implementation:
// Ensure that the closed connection is cleaned up asynchronously.
virtual void OnConnectionClosed(QuicConnectionId connection_id,
- QuicErrorCode error) OVERRIDE;
+ QuicErrorCode error) override;
// Queues the blocked writer for later resumption.
virtual void OnWriteBlocked(
- QuicBlockedWriterInterface* blocked_writer) OVERRIDE;
+ QuicBlockedWriterInterface* blocked_writer) override;
typedef base::hash_map<QuicConnectionId, QuicSession*> SessionMap;
@@ -193,7 +193,7 @@
PacketWriterFactoryAdapter(QuicDispatcher* dispatcher);
virtual ~PacketWriterFactoryAdapter ();
- virtual QuicPacketWriter* Create(QuicConnection* connection) const OVERRIDE;
+ virtual QuicPacketWriter* Create(QuicConnection* connection) const override;
private:
QuicDispatcher* dispatcher_;
diff --git a/net/tools/quic/quic_dispatcher_test.cc b/net/tools/quic/quic_dispatcher_test.cc
index ac6fa70..bcbeb6a 100644
--- a/net/tools/quic/quic_dispatcher_test.cc
+++ b/net/tools/quic/quic_dispatcher_test.cc
@@ -264,14 +264,14 @@
public:
BlockingWriter() : write_blocked_(false) {}
- virtual bool IsWriteBlocked() const OVERRIDE { return write_blocked_; }
- virtual void SetWritable() OVERRIDE { write_blocked_ = false; }
+ virtual bool IsWriteBlocked() const override { return write_blocked_; }
+ virtual void SetWritable() override { write_blocked_ = false; }
virtual WriteResult WritePacket(
const char* buffer,
size_t buf_len,
const IPAddressNumber& self_client_address,
- const IPEndPoint& peer_client_address) OVERRIDE {
+ const IPEndPoint& peer_client_address) override {
// It would be quite possible to actually implement this method here with
// the fake blocked status, but it would be significantly more work in
// Chromium, and since it's not called anyway, don't bother.
diff --git a/net/tools/quic/quic_epoll_clock.h b/net/tools/quic/quic_epoll_clock.h
index d96bff6..4eebefb 100644
--- a/net/tools/quic/quic_epoll_clock.h
+++ b/net/tools/quic/quic_epoll_clock.h
@@ -24,11 +24,11 @@
virtual ~QuicEpollClock();
// Returns the approximate current time as a QuicTime object.
- virtual QuicTime ApproximateNow() const OVERRIDE;
+ virtual QuicTime ApproximateNow() const override;
// Returns the current time as a QuicTime object.
// Note: this use significant resources please use only if needed.
- virtual QuicTime Now() const OVERRIDE;
+ virtual QuicTime Now() const override;
protected:
EpollServer* epoll_server_;
diff --git a/net/tools/quic/quic_epoll_connection_helper.cc b/net/tools/quic/quic_epoll_connection_helper.cc
index 78bfe97..a8321f8 100644
--- a/net/tools/quic/quic_epoll_connection_helper.cc
+++ b/net/tools/quic/quic_epoll_connection_helper.cc
@@ -28,14 +28,14 @@
epoll_alarm_impl_(this) {}
protected:
- virtual void SetImpl() OVERRIDE {
+ virtual void SetImpl() override {
DCHECK(deadline().IsInitialized());
epoll_server_->RegisterAlarm(
deadline().Subtract(QuicTime::Zero()).ToMicroseconds(),
&epoll_alarm_impl_);
}
- virtual void CancelImpl() OVERRIDE {
+ virtual void CancelImpl() override {
DCHECK(!deadline().IsInitialized());
epoll_alarm_impl_.UnregisterIfRegistered();
}
@@ -45,7 +45,7 @@
public:
explicit EpollAlarmImpl(QuicEpollAlarm* alarm) : alarm_(alarm) {}
- virtual int64 OnAlarm() OVERRIDE {
+ virtual int64 OnAlarm() override {
EpollAlarm::OnAlarm();
alarm_->Fire();
// Fire will take care of registering the alarm, if needed.
diff --git a/net/tools/quic/quic_epoll_connection_helper.h b/net/tools/quic/quic_epoll_connection_helper.h
index 3198a14..9ca2cf8 100644
--- a/net/tools/quic/quic_epoll_connection_helper.h
+++ b/net/tools/quic/quic_epoll_connection_helper.h
@@ -36,9 +36,9 @@
virtual ~QuicEpollConnectionHelper();
// QuicEpollConnectionHelperInterface
- virtual const QuicClock* GetClock() const OVERRIDE;
- virtual QuicRandom* GetRandomGenerator() OVERRIDE;
- virtual QuicAlarm* CreateAlarm(QuicAlarm::Delegate* delegate) OVERRIDE;
+ virtual const QuicClock* GetClock() const override;
+ virtual QuicRandom* GetRandomGenerator() override;
+ virtual QuicAlarm* CreateAlarm(QuicAlarm::Delegate* delegate) override;
EpollServer* epoll_server() { return epoll_server_; }
diff --git a/net/tools/quic/quic_epoll_connection_helper_test.cc b/net/tools/quic/quic_epoll_connection_helper_test.cc
index 708bdd4..7234ecf 100644
--- a/net/tools/quic/quic_epoll_connection_helper_test.cc
+++ b/net/tools/quic/quic_epoll_connection_helper_test.cc
@@ -19,7 +19,7 @@
public:
TestDelegate() : fired_(false) {}
- virtual QuicTime OnAlarm() OVERRIDE {
+ virtual QuicTime OnAlarm() override {
fired_ = true;
return QuicTime::Zero();
}
diff --git a/net/tools/quic/quic_in_memory_cache.cc b/net/tools/quic/quic_in_memory_cache.cc
index 6754cf2..c90142c 100644
--- a/net/tools/quic/quic_in_memory_cache.cc
+++ b/net/tools/quic/quic_in_memory_cache.cc
@@ -29,22 +29,22 @@
class CachingBalsaVisitor : public NoOpBalsaVisitor {
public:
CachingBalsaVisitor() : done_framing_(false) {}
- virtual void ProcessBodyData(const char* input, size_t size) OVERRIDE {
+ virtual void ProcessBodyData(const char* input, size_t size) override {
AppendToBody(input, size);
}
- virtual void MessageDone() OVERRIDE {
+ virtual void MessageDone() override {
done_framing_ = true;
}
- virtual void HandleHeaderError(BalsaFrame* framer) OVERRIDE {
+ virtual void HandleHeaderError(BalsaFrame* framer) override {
UnhandledError();
}
- virtual void HandleHeaderWarning(BalsaFrame* framer) OVERRIDE {
+ virtual void HandleHeaderWarning(BalsaFrame* framer) override {
UnhandledError();
}
- virtual void HandleChunkingError(BalsaFrame* framer) OVERRIDE {
+ virtual void HandleChunkingError(BalsaFrame* framer) override {
UnhandledError();
}
- virtual void HandleBodyError(BalsaFrame* framer) OVERRIDE {
+ virtual void HandleBodyError(BalsaFrame* framer) override {
UnhandledError();
}
void UnhandledError() {
diff --git a/net/tools/quic/quic_in_memory_cache_test.cc b/net/tools/quic/quic_in_memory_cache_test.cc
index 9a75990..98a2b80 100644
--- a/net/tools/quic/quic_in_memory_cache_test.cc
+++ b/net/tools/quic/quic_in_memory_cache_test.cc
@@ -39,7 +39,7 @@
headers->ReplaceOrAppendHeader("host", host);
}
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
QuicInMemoryCachePeer::ResetForTests();
}
diff --git a/net/tools/quic/quic_packet_writer_wrapper.h b/net/tools/quic/quic_packet_writer_wrapper.h
index 9dafe77..a4db367 100644
--- a/net/tools/quic/quic_packet_writer_wrapper.h
+++ b/net/tools/quic/quic_packet_writer_wrapper.h
@@ -27,10 +27,10 @@
const char* buffer,
size_t buf_len,
const IPAddressNumber& self_address,
- const IPEndPoint& peer_address) OVERRIDE;
- virtual bool IsWriteBlockedDataBuffered() const OVERRIDE;
- virtual bool IsWriteBlocked() const OVERRIDE;
- virtual void SetWritable() OVERRIDE;
+ const IPEndPoint& peer_address) override;
+ virtual bool IsWriteBlockedDataBuffered() const override;
+ virtual bool IsWriteBlocked() const override;
+ virtual void SetWritable() override;
// Takes ownership of |writer|.
void set_writer(QuicPacketWriter* writer);
diff --git a/net/tools/quic/quic_per_connection_packet_writer.h b/net/tools/quic/quic_per_connection_packet_writer.h
index a442a9a..390e43d 100644
--- a/net/tools/quic/quic_per_connection_packet_writer.h
+++ b/net/tools/quic/quic_per_connection_packet_writer.h
@@ -29,10 +29,10 @@
virtual WriteResult WritePacket(const char* buffer,
size_t buf_len,
const IPAddressNumber& self_address,
- const IPEndPoint& peer_address) OVERRIDE;
- virtual bool IsWriteBlockedDataBuffered() const OVERRIDE;
- virtual bool IsWriteBlocked() const OVERRIDE;
- virtual void SetWritable() OVERRIDE;
+ const IPEndPoint& peer_address) override;
+ virtual bool IsWriteBlockedDataBuffered() const override;
+ virtual bool IsWriteBlocked() const override;
+ virtual void SetWritable() override;
private:
QuicPacketWriter* shared_writer_; // Not owned.
diff --git a/net/tools/quic/quic_server.cc b/net/tools/quic/quic_server.cc
index 34beb3f..9d36909 100644
--- a/net/tools/quic/quic_server.cc
+++ b/net/tools/quic/quic_server.cc
@@ -48,8 +48,6 @@
use_recvmmsg_(false),
crypto_config_(kSourceAddressTokenSecret, QuicRandom::GetInstance()),
supported_versions_(QuicSupportedVersions()) {
- // Use hardcoded crypto parameters for now.
- config_.SetDefaults();
Initialize();
}
diff --git a/net/tools/quic/quic_server.h b/net/tools/quic/quic_server.h
index 87c8bc7..a027a49 100644
--- a/net/tools/quic/quic_server.h
+++ b/net/tools/quic/quic_server.h
@@ -47,10 +47,10 @@
// From EpollCallbackInterface
virtual void OnRegistration(EpollServer* eps,
int fd,
- int event_mask) OVERRIDE {}
- virtual void OnModification(int fd, int event_mask) OVERRIDE {}
- virtual void OnEvent(int fd, EpollEvent* event) OVERRIDE;
- virtual void OnUnregistration(int fd, bool replaced) OVERRIDE {}
+ int event_mask) override {}
+ virtual void OnModification(int fd, int event_mask) override {}
+ virtual void OnEvent(int fd, EpollEvent* event) override;
+ virtual void OnUnregistration(int fd, bool replaced) override {}
// Reads a packet from the given fd, and then passes it off to
// the QuicDispatcher. Returns true if a packet is read, false
@@ -62,7 +62,7 @@
ProcessPacketInterface* processor,
uint32* packets_dropped);
- virtual void OnShutdown(EpollServer* eps, int fd) OVERRIDE {}
+ virtual void OnShutdown(EpollServer* eps, int fd) override {}
void SetStrikeRegisterNoStartupPeriod() {
crypto_config_.set_strike_register_no_startup_period();
diff --git a/net/tools/quic/quic_server_session.cc b/net/tools/quic/quic_server_session.cc
index cb56329..842c6ef 100644
--- a/net/tools/quic/quic_server_session.cc
+++ b/net/tools/quic/quic_server_session.cc
@@ -134,7 +134,7 @@
cached_network_params.set_serving_region(serving_region_);
}
- crypto_stream_->SendServerConfigUpdate(&cached_network_params);
+ crypto_stream_->SendServerConfigUpdate(&cached_network_params, false);
last_server_config_update_time_ = now;
}
diff --git a/net/tools/quic/quic_server_session.h b/net/tools/quic/quic_server_session.h
index 87f82d9..eb0aab6 100644
--- a/net/tools/quic/quic_server_session.h
+++ b/net/tools/quic/quic_server_session.h
@@ -50,12 +50,12 @@
QuicServerSessionVisitor* visitor);
// Override the base class to notify the owner of the connection close.
- virtual void OnConnectionClosed(QuicErrorCode error, bool from_peer) OVERRIDE;
- virtual void OnWriteBlocked() OVERRIDE;
+ virtual void OnConnectionClosed(QuicErrorCode error, bool from_peer) override;
+ virtual void OnWriteBlocked() override;
// Sends a server config update to the client, containing new bandwidth
// estimate.
- virtual void OnCongestionWindowChange(QuicTime now) OVERRIDE;
+ virtual void OnCongestionWindowChange(QuicTime now) override;
virtual ~QuicServerSession();
@@ -66,7 +66,7 @@
}
// Override base class to process FEC config received from client.
- virtual void OnConfigNegotiated() OVERRIDE;
+ virtual void OnConfigNegotiated() override;
void set_serving_region(string serving_region) {
serving_region_ = serving_region;
@@ -74,9 +74,9 @@
protected:
// QuicSession methods:
- virtual QuicDataStream* CreateIncomingDataStream(QuicStreamId id) OVERRIDE;
- virtual QuicDataStream* CreateOutgoingDataStream() OVERRIDE;
- virtual QuicCryptoServerStream* GetCryptoStream() OVERRIDE;
+ virtual QuicDataStream* CreateIncomingDataStream(QuicStreamId id) override;
+ virtual QuicDataStream* CreateOutgoingDataStream() override;
+ virtual QuicCryptoServerStream* GetCryptoStream() override;
// If we should create an incoming stream, returns true. Otherwise
// does error handling, including communicating the error to the client and
diff --git a/net/tools/quic/quic_server_session_test.cc b/net/tools/quic/quic_server_session_test.cc
index 4fc4157..72c65a8 100644
--- a/net/tools/quic/quic_server_session_test.cc
+++ b/net/tools/quic/quic_server_session_test.cc
@@ -68,7 +68,6 @@
QuicServerSessionTest()
: crypto_config_(QuicCryptoServerConfig::TESTING,
QuicRandom::GetInstance()) {
- config_.SetDefaults();
config_.SetMaxStreamsPerConnection(kMaxStreamsForTest,
kMaxStreamsForTest);
config_.SetInitialFlowControlWindowToSend(
@@ -295,8 +294,10 @@
: QuicCryptoServerStream(crypto_config, session) {}
virtual ~MockQuicCryptoServerStream() {}
- MOCK_METHOD1(SendServerConfigUpdate,
- void(const CachedNetworkParameters* cached_network_parameters));
+ MOCK_METHOD2(SendServerConfigUpdate,
+ void(const CachedNetworkParameters* cached_network_parameters,
+ bool on_handshake_complete));
+
private:
DISALLOW_COPY_AND_ASSIGN(MockQuicCryptoServerStream);
};
@@ -365,7 +366,7 @@
expected_network_params.set_serving_region(serving_region);
EXPECT_CALL(*crypto_stream,
- SendServerConfigUpdate(EqualsProto(expected_network_params)))
+ SendServerConfigUpdate(EqualsProto(expected_network_params), _))
.Times(1);
session_->OnCongestionWindowChange(now);
}
diff --git a/net/tools/quic/quic_spdy_client_stream.h b/net/tools/quic/quic_spdy_client_stream.h
index 7bbdee6..8274164 100644
--- a/net/tools/quic/quic_spdy_client_stream.h
+++ b/net/tools/quic/quic_spdy_client_stream.h
@@ -32,16 +32,16 @@
// Override the base class to close the write side as soon as we get a
// response.
// SPDY/HTTP does not support bidirectional streaming.
- virtual void OnStreamFrame(const QuicStreamFrame& frame) OVERRIDE;
+ virtual void OnStreamFrame(const QuicStreamFrame& frame) override;
// Override the base class to store the size of the headers.
- virtual void OnStreamHeadersComplete(bool fin, size_t frame_len) OVERRIDE;
+ virtual void OnStreamHeadersComplete(bool fin, size_t frame_len) override;
// ReliableQuicStream implementation called by the session when there's
// data for us.
- virtual uint32 ProcessData(const char* data, uint32 data_len) OVERRIDE;
+ virtual uint32 ProcessData(const char* data, uint32 data_len) override;
- virtual void OnFinRead() OVERRIDE;
+ virtual void OnFinRead() override;
// Serializes the headers and body, sends it to the server, and
// returns the number of bytes sent.
diff --git a/net/tools/quic/quic_spdy_client_stream_test.cc b/net/tools/quic/quic_spdy_client_stream_test.cc
index 058b204..090e2da 100644
--- a/net/tools/quic/quic_spdy_client_stream_test.cc
+++ b/net/tools/quic/quic_spdy_client_stream_test.cc
@@ -34,7 +34,6 @@
session_.InitializeSession(
QuicServerId("example.com", 80, false, PRIVACY_MODE_DISABLED),
&crypto_config_);
- crypto_config_.SetDefaults();
headers_.SetResponseFirstlineFromStringPieces("HTTP/1.1", "200", "Ok");
headers_.ReplaceOrAppendHeader("content-length", "11");
diff --git a/net/tools/quic/quic_spdy_server_stream.h b/net/tools/quic/quic_spdy_server_stream.h
index c8167d1..4c2cb41 100644
--- a/net/tools/quic/quic_spdy_server_stream.h
+++ b/net/tools/quic/quic_spdy_server_stream.h
@@ -32,8 +32,8 @@
// ReliableQuicStream implementation called by the session when there's
// data for us.
- virtual uint32 ProcessData(const char* data, uint32 data_len) OVERRIDE;
- virtual void OnFinRead() OVERRIDE;
+ virtual uint32 ProcessData(const char* data, uint32 data_len) override;
+ virtual void OnFinRead() override;
void ParseRequestHeaders();
diff --git a/net/tools/quic/quic_spdy_server_stream_test.cc b/net/tools/quic/quic_spdy_server_stream_test.cc
index f5bd17f..4f5484a 100644
--- a/net/tools/quic/quic_spdy_server_stream_test.cc
+++ b/net/tools/quic/quic_spdy_server_stream_test.cc
@@ -97,7 +97,7 @@
QuicInMemoryCachePeer::ResetForTests();
}
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
QuicInMemoryCache* cache = QuicInMemoryCache::GetInstance();
BalsaHeaders request_headers, response_headers;
diff --git a/net/tools/quic/quic_time_wait_list_manager.cc b/net/tools/quic/quic_time_wait_list_manager.cc
index 9744ff8..f99bf3f 100644
--- a/net/tools/quic/quic_time_wait_list_manager.cc
+++ b/net/tools/quic/quic_time_wait_list_manager.cc
@@ -43,7 +43,7 @@
: time_wait_list_manager_(time_wait_list_manager) {
}
- virtual int64 OnAlarm() OVERRIDE {
+ virtual int64 OnAlarm() override {
EpollAlarm::OnAlarm();
time_wait_list_manager_->CleanUpOldConnectionIds();
// Let the time wait manager register the alarm at appropriate time.
diff --git a/net/tools/quic/quic_time_wait_list_manager.h b/net/tools/quic/quic_time_wait_list_manager.h
index 1af9d56..d9a5f92 100644
--- a/net/tools/quic/quic_time_wait_list_manager.h
+++ b/net/tools/quic/quic_time_wait_list_manager.h
@@ -83,7 +83,7 @@
// Called by the dispatcher when the underlying socket becomes writable again,
// since we might need to send pending public reset packets which we didn't
// send because the underlying socket was write blocked.
- virtual void OnCanWrite() OVERRIDE;
+ virtual void OnCanWrite() override;
// Used to delete connection_id entries that have outlived their time wait
// period.
diff --git a/net/tools/quic/quic_time_wait_list_manager_test.cc b/net/tools/quic/quic_time_wait_list_manager_test.cc
index 5e964d6..335b22c 100644
--- a/net/tools/quic/quic_time_wait_list_manager_test.cc
+++ b/net/tools/quic/quic_time_wait_list_manager_test.cc
@@ -45,10 +45,10 @@
class FramerVisitorCapturingPublicReset : public NoOpFramerVisitor {
public:
FramerVisitorCapturingPublicReset() {}
- virtual ~FramerVisitorCapturingPublicReset() OVERRIDE {}
+ virtual ~FramerVisitorCapturingPublicReset() override {}
virtual void OnPublicResetPacket(
- const QuicPublicResetPacket& public_reset) OVERRIDE {
+ const QuicPublicResetPacket& public_reset) override {
public_reset_packet_ = public_reset;
}
@@ -96,9 +96,9 @@
client_address_(net::test::TestPeerIPAddress(), kTestPort),
writer_is_blocked_(false) {}
- virtual ~QuicTimeWaitListManagerTest() OVERRIDE {}
+ virtual ~QuicTimeWaitListManagerTest() override {}
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
EXPECT_CALL(writer_, IsWriteBlocked())
.WillRepeatedly(ReturnPointee(&writer_is_blocked_));
EXPECT_CALL(writer_, IsWriteBlockedDataBuffered())
@@ -181,7 +181,7 @@
virtual bool MatchAndExplain(
const std::tr1::tuple<const char*, int> packet_buffer,
- testing::MatchResultListener* /* listener */) const OVERRIDE {
+ testing::MatchResultListener* /* listener */) const override {
FramerVisitorCapturingPublicReset visitor;
QuicFramer framer(QuicSupportedVersions(),
QuicTime::Zero(),
@@ -198,9 +198,9 @@
kTestPort == packet.client_address.port();
}
- virtual void DescribeTo(::std::ostream* os) const OVERRIDE {}
+ virtual void DescribeTo(::std::ostream* os) const override {}
- virtual void DescribeNegationTo(::std::ostream* os) const OVERRIDE {}
+ virtual void DescribeNegationTo(::std::ostream* os) const override {}
private:
QuicConnectionId connection_id_;
diff --git a/net/tools/quic/test_tools/mock_epoll_server.h b/net/tools/quic/test_tools/mock_epoll_server.h
index cdb6a36..b3b312e 100644
--- a/net/tools/quic/test_tools/mock_epoll_server.h
+++ b/net/tools/quic/test_tools/mock_epoll_server.h
@@ -22,7 +22,7 @@
virtual ~FakeTimeEpollServer();
// Replaces the EpollServer NowInUsec.
- virtual int64 NowInUsec() const OVERRIDE;
+ virtual int64 NowInUsec() const override;
void set_now_in_usec(int64 nius) { now_in_usec_ = nius; }
@@ -85,16 +85,16 @@
protected: // functions
// These functions do nothing here, as we're not actually
// using the epoll_* syscalls.
- virtual void DelFD(int fd) const OVERRIDE {}
- virtual void AddFD(int fd, int event_mask) const OVERRIDE {}
- virtual void ModFD(int fd, int event_mask) const OVERRIDE {}
+ virtual void DelFD(int fd) const override {}
+ virtual void AddFD(int fd, int event_mask) const override {}
+ virtual void ModFD(int fd, int event_mask) const override {}
// Replaces the epoll_server's epoll_wait_impl.
virtual int epoll_wait_impl(int epfd,
struct epoll_event* events,
int max_events,
- int timeout_in_ms) OVERRIDE;
- virtual void SetNonblocking (int fd) OVERRIDE {}
+ int timeout_in_ms) override;
+ virtual void SetNonblocking (int fd) override {}
private: // members
EventQueue event_queue_;
diff --git a/net/tools/quic/test_tools/packet_dropping_test_writer.cc b/net/tools/quic/test_tools/packet_dropping_test_writer.cc
index c7202d6..2571868 100644
--- a/net/tools/quic/test_tools/packet_dropping_test_writer.cc
+++ b/net/tools/quic/test_tools/packet_dropping_test_writer.cc
@@ -21,7 +21,7 @@
explicit WriteUnblockedAlarm(PacketDroppingTestWriter* writer)
: writer_(writer) {}
- virtual QuicTime OnAlarm() OVERRIDE {
+ virtual QuicTime OnAlarm() override {
DVLOG(1) << "Unblocking socket.";
writer_->OnCanWrite();
return QuicTime::Zero();
@@ -37,7 +37,7 @@
public:
explicit DelayAlarm(PacketDroppingTestWriter* writer) : writer_(writer) {}
- virtual QuicTime OnAlarm() OVERRIDE {
+ virtual QuicTime OnAlarm() override {
return writer_->ReleaseOldPackets();
}
diff --git a/net/tools/quic/test_tools/packet_dropping_test_writer.h b/net/tools/quic/test_tools/packet_dropping_test_writer.h
index b7babad..29a21a8 100644
--- a/net/tools/quic/test_tools/packet_dropping_test_writer.h
+++ b/net/tools/quic/test_tools/packet_dropping_test_writer.h
@@ -49,11 +49,11 @@
const char* buffer,
size_t buf_len,
const IPAddressNumber& self_address,
- const IPEndPoint& peer_address) OVERRIDE;
+ const IPEndPoint& peer_address) override;
- virtual bool IsWriteBlocked() const OVERRIDE;
+ virtual bool IsWriteBlocked() const override;
- virtual void SetWritable() OVERRIDE;
+ virtual void SetWritable() override;
// Writes out any packet which should have been sent by now
// to the contained writer and returns the time
diff --git a/net/tools/quic/test_tools/quic_test_client.cc b/net/tools/quic/test_tools/quic_test_client.cc
index 68b8698..d53958d 100644
--- a/net/tools/quic/test_tools/quic_test_client.cc
+++ b/net/tools/quic/test_tools/quic_test_client.cc
@@ -49,7 +49,7 @@
const ProofVerifyContext* context,
string* error_details,
scoped_ptr<ProofVerifyDetails>* details,
- ProofVerifierCallback* callback) OVERRIDE {
+ ProofVerifierCallback* callback) override {
common_name_.clear();
if (certs.empty()) {
return QUIC_FAILURE;
diff --git a/net/tools/quic/test_tools/quic_test_client.h b/net/tools/quic/test_tools/quic_test_client.h
index 7ae3b74..c9fd22e 100644
--- a/net/tools/quic/test_tools/quic_test_client.h
+++ b/net/tools/quic/test_tools/quic_test_client.h
@@ -45,9 +45,9 @@
const QuicVersionVector& supported_versions,
EpollServer* epoll_server);
- virtual ~MockableQuicClient() OVERRIDE;
- virtual QuicPacketWriter* CreateQuicPacketWriter() OVERRIDE;
- virtual QuicConnectionId GenerateConnectionId() OVERRIDE;
+ virtual ~MockableQuicClient() override;
+ virtual QuicPacketWriter* CreateQuicPacketWriter() override;
+ virtual QuicConnectionId GenerateConnectionId() override;
void UseWriter(QuicPacketWriterWrapper* writer);
void UseConnectionId(QuicConnectionId connection_id);
@@ -91,45 +91,45 @@
// From SimpleClient
// Clears any outstanding state and sends a simple GET of 'uri' to the
// server. Returns 0 if the request failed and no bytes were written.
- virtual ssize_t SendRequest(const string& uri) OVERRIDE;
- virtual ssize_t SendMessage(const HTTPMessage& message) OVERRIDE;
+ virtual ssize_t SendRequest(const string& uri) override;
+ virtual ssize_t SendMessage(const HTTPMessage& message) override;
virtual string SendCustomSynchronousRequest(
- const HTTPMessage& message) OVERRIDE;
- virtual string SendSynchronousRequest(const string& uri) OVERRIDE;
- virtual void Connect() OVERRIDE;
- virtual void ResetConnection() OVERRIDE;
- virtual void Disconnect() OVERRIDE;
- virtual IPEndPoint LocalSocketAddress() const OVERRIDE;
- virtual void ClearPerRequestState() OVERRIDE;
- virtual void WaitForResponseForMs(int timeout_ms) OVERRIDE;
- virtual void WaitForInitialResponseForMs(int timeout_ms) OVERRIDE;
- virtual ssize_t Send(const void *buffer, size_t size) OVERRIDE;
- virtual bool response_complete() const OVERRIDE;
- virtual bool response_headers_complete() const OVERRIDE;
- virtual const BalsaHeaders* response_headers() const OVERRIDE;
- virtual int64 response_size() const OVERRIDE;
- virtual int response_header_size() const OVERRIDE;
- virtual int64 response_body_size() const OVERRIDE;
- virtual size_t bytes_read() const OVERRIDE;
- virtual size_t bytes_written() const OVERRIDE;
- virtual bool buffer_body() const OVERRIDE;
- virtual void set_buffer_body(bool buffer_body) OVERRIDE;
- virtual bool ServerInLameDuckMode() const OVERRIDE;
- virtual const string& response_body() OVERRIDE;
- virtual bool connected() const OVERRIDE;
+ const HTTPMessage& message) override;
+ virtual string SendSynchronousRequest(const string& uri) override;
+ virtual void Connect() override;
+ virtual void ResetConnection() override;
+ virtual void Disconnect() override;
+ virtual IPEndPoint LocalSocketAddress() const override;
+ virtual void ClearPerRequestState() override;
+ virtual void WaitForResponseForMs(int timeout_ms) override;
+ virtual void WaitForInitialResponseForMs(int timeout_ms) override;
+ virtual ssize_t Send(const void *buffer, size_t size) override;
+ virtual bool response_complete() const override;
+ virtual bool response_headers_complete() const override;
+ virtual const BalsaHeaders* response_headers() const override;
+ virtual int64 response_size() const override;
+ virtual int response_header_size() const override;
+ virtual int64 response_body_size() const override;
+ virtual size_t bytes_read() const override;
+ virtual size_t bytes_written() const override;
+ virtual bool buffer_body() const override;
+ virtual void set_buffer_body(bool buffer_body) override;
+ virtual bool ServerInLameDuckMode() const override;
+ virtual const string& response_body() override;
+ virtual bool connected() const override;
// These functions are all unimplemented functions from SimpleClient, and log
// DFATAL if called by users of SimpleClient.
virtual ssize_t SendAndWaitForResponse(const void *buffer,
- size_t size) OVERRIDE;
- virtual void Bind(IPEndPoint* local_address) OVERRIDE;
- virtual string SerializeMessage(const HTTPMessage& message) OVERRIDE;
- virtual IPAddressNumber bind_to_address() const OVERRIDE;
- virtual void set_bind_to_address(IPAddressNumber address) OVERRIDE;
- virtual const IPEndPoint& address() const OVERRIDE;
- virtual size_t requests_sent() const OVERRIDE;
+ size_t size) override;
+ virtual void Bind(IPEndPoint* local_address) override;
+ virtual string SerializeMessage(const HTTPMessage& message) override;
+ virtual IPAddressNumber bind_to_address() const override;
+ virtual void set_bind_to_address(IPAddressNumber address) override;
+ virtual const IPEndPoint& address() const override;
+ virtual size_t requests_sent() const override;
// From QuicDataStream::Visitor
- virtual void OnClose(QuicDataStream* stream) OVERRIDE;
+ virtual void OnClose(QuicDataStream* stream) override;
// Configures client_ to take ownership of and use the writer.
// Must be called before initial connect.
diff --git a/net/tools/quic/test_tools/quic_test_utils.cc b/net/tools/quic/test_tools/quic_test_utils.cc
index 8fdbe00..781b3c3 100644
--- a/net/tools/quic/test_tools/quic_test_utils.cc
+++ b/net/tools/quic/test_tools/quic_test_utils.cc
@@ -26,7 +26,7 @@
virtual ~NiceMockPacketWriterFactory() {}
virtual QuicPacketWriter* Create(
- QuicConnection* /*connection*/) const OVERRIDE {
+ QuicConnection* /*connection*/) const override {
return new testing::NiceMock<MockPacketWriter>();
}
diff --git a/net/tools/quic/test_tools/quic_test_utils.h b/net/tools/quic/test_tools/quic_test_utils.h
index 1211ff2..dc70e69 100644
--- a/net/tools/quic/test_tools/quic_test_utils.h
+++ b/net/tools/quic/test_tools/quic_test_utils.h
@@ -104,7 +104,7 @@
void SetCryptoStream(QuicCryptoStream* stream);
- virtual QuicCryptoStream* GetCryptoStream() OVERRIDE;
+ virtual QuicCryptoStream* GetCryptoStream() override;
private:
QuicCryptoStream* crypto_stream_;
@@ -169,7 +169,7 @@
virtual ~TestWriterFactory();
virtual QuicPacketWriter* Create(QuicPacketWriter* writer,
- QuicConnection* connection) OVERRIDE;
+ QuicConnection* connection) override;
// Calls OnPacketSent on the last QuicConnection to write through one of the
// packet writers created by this factory.
@@ -187,7 +187,7 @@
const char* buffer,
size_t buf_len,
const IPAddressNumber& self_address,
- const IPEndPoint& peer_address) OVERRIDE;
+ const IPEndPoint& peer_address) override;
private:
TestWriterFactory* factory_;
diff --git a/net/tools/quic/test_tools/server_thread.h b/net/tools/quic/test_tools/server_thread.h
index 6066d97..cb92b01 100644
--- a/net/tools/quic/test_tools/server_thread.h
+++ b/net/tools/quic/test_tools/server_thread.h
@@ -28,7 +28,7 @@
void Initialize();
// Runs the event loop. Will initialize if necessary.
- virtual void Run() OVERRIDE;
+ virtual void Run() override;
// Waits for the handshake to be confirmed for the first session created.
void WaitForCryptoHandshakeConfirmed();
diff --git a/net/udp/udp_client_socket.h b/net/udp/udp_client_socket.h
index c5fc8c0..d689640 100644
--- a/net/udp/udp_client_socket.h
+++ b/net/udp/udp_client_socket.h
@@ -24,17 +24,17 @@
virtual ~UDPClientSocket();
// DatagramClientSocket implementation.
- virtual int Connect(const IPEndPoint& address) OVERRIDE;
+ virtual int Connect(const IPEndPoint& address) override;
virtual int Read(IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int Write(IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE;
- virtual void Close() OVERRIDE;
- virtual int GetPeerAddress(IPEndPoint* address) const OVERRIDE;
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE;
- virtual int SetReceiveBufferSize(int32 size) OVERRIDE;
- virtual int SetSendBufferSize(int32 size) OVERRIDE;
- virtual const BoundNetLog& NetLog() const OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual void Close() override;
+ virtual int GetPeerAddress(IPEndPoint* address) const override;
+ virtual int GetLocalAddress(IPEndPoint* address) const override;
+ virtual int SetReceiveBufferSize(int32 size) override;
+ virtual int SetSendBufferSize(int32 size) override;
+ virtual const BoundNetLog& NetLog() const override;
private:
UDPSocket socket_;
diff --git a/net/udp/udp_server_socket.h b/net/udp/udp_server_socket.h
index 4ce7354..9801ff8 100644
--- a/net/udp/udp_server_socket.h
+++ b/net/udp/udp_server_socket.h
@@ -22,30 +22,30 @@
virtual ~UDPServerSocket();
// Implement DatagramServerSocket:
- virtual int Listen(const IPEndPoint& address) OVERRIDE;
+ virtual int Listen(const IPEndPoint& address) override;
virtual int RecvFrom(IOBuffer* buf,
int buf_len,
IPEndPoint* address,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int SendTo(IOBuffer* buf,
int buf_len,
const IPEndPoint& address,
- const CompletionCallback& callback) OVERRIDE;
- virtual int SetReceiveBufferSize(int32 size) OVERRIDE;
- virtual int SetSendBufferSize(int32 size) OVERRIDE;
- virtual void Close() OVERRIDE;
- virtual int GetPeerAddress(IPEndPoint* address) const OVERRIDE;
- virtual int GetLocalAddress(IPEndPoint* address) const OVERRIDE;
- virtual const BoundNetLog& NetLog() const OVERRIDE;
- virtual void AllowAddressReuse() OVERRIDE;
- virtual void AllowBroadcast() OVERRIDE;
- virtual int JoinGroup(const IPAddressNumber& group_address) const OVERRIDE;
- virtual int LeaveGroup(const IPAddressNumber& group_address) const OVERRIDE;
- virtual int SetMulticastInterface(uint32 interface_index) OVERRIDE;
- virtual int SetMulticastTimeToLive(int time_to_live) OVERRIDE;
- virtual int SetMulticastLoopbackMode(bool loopback) OVERRIDE;
- virtual int SetDiffServCodePoint(DiffServCodePoint dscp) OVERRIDE;
- virtual void DetachFromThread() OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual int SetReceiveBufferSize(int32 size) override;
+ virtual int SetSendBufferSize(int32 size) override;
+ virtual void Close() override;
+ virtual int GetPeerAddress(IPEndPoint* address) const override;
+ virtual int GetLocalAddress(IPEndPoint* address) const override;
+ virtual const BoundNetLog& NetLog() const override;
+ virtual void AllowAddressReuse() override;
+ virtual void AllowBroadcast() override;
+ virtual int JoinGroup(const IPAddressNumber& group_address) const override;
+ virtual int LeaveGroup(const IPAddressNumber& group_address) const override;
+ virtual int SetMulticastInterface(uint32 interface_index) override;
+ virtual int SetMulticastTimeToLive(int time_to_live) override;
+ virtual int SetMulticastLoopbackMode(bool loopback) override;
+ virtual int SetDiffServCodePoint(DiffServCodePoint dscp) override;
+ virtual void DetachFromThread() override;
private:
UDPSocket socket_;
diff --git a/net/udp/udp_socket_libevent.h b/net/udp/udp_socket_libevent.h
index 69e8ba3..292a42f 100644
--- a/net/udp/udp_socket_libevent.h
+++ b/net/udp/udp_socket_libevent.h
@@ -179,9 +179,9 @@
// MessageLoopForIO::Watcher methods
- virtual void OnFileCanReadWithoutBlocking(int /* fd */) OVERRIDE;
+ virtual void OnFileCanReadWithoutBlocking(int /* fd */) override;
- virtual void OnFileCanWriteWithoutBlocking(int /* fd */) OVERRIDE {}
+ virtual void OnFileCanWriteWithoutBlocking(int /* fd */) override {}
private:
UDPSocketLibevent* const socket_;
@@ -195,9 +195,9 @@
// MessageLoopForIO::Watcher methods
- virtual void OnFileCanReadWithoutBlocking(int /* fd */) OVERRIDE {}
+ virtual void OnFileCanReadWithoutBlocking(int /* fd */) override {}
- virtual void OnFileCanWriteWithoutBlocking(int /* fd */) OVERRIDE;
+ virtual void OnFileCanWriteWithoutBlocking(int /* fd */) override;
private:
UDPSocketLibevent* const socket_;
diff --git a/net/url_request/data_protocol_handler.h b/net/url_request/data_protocol_handler.h
index b7f7fef..3c2c4d4 100644
--- a/net/url_request/data_protocol_handler.h
+++ b/net/url_request/data_protocol_handler.h
@@ -19,8 +19,8 @@
public:
DataProtocolHandler();
virtual URLRequestJob* MaybeCreateJob(
- URLRequest* request, NetworkDelegate* network_delegate) const OVERRIDE;
- virtual bool IsSafeRedirectTarget(const GURL& location) const OVERRIDE;
+ URLRequest* request, NetworkDelegate* network_delegate) const override;
+ virtual bool IsSafeRedirectTarget(const GURL& location) const override;
private:
DISALLOW_COPY_AND_ASSIGN(DataProtocolHandler);
diff --git a/net/url_request/file_protocol_handler.h b/net/url_request/file_protocol_handler.h
index 78956a9..02b5c9f 100644
--- a/net/url_request/file_protocol_handler.h
+++ b/net/url_request/file_protocol_handler.h
@@ -30,8 +30,8 @@
const scoped_refptr<base::TaskRunner>& file_task_runner);
virtual ~FileProtocolHandler();
virtual URLRequestJob* MaybeCreateJob(
- URLRequest* request, NetworkDelegate* network_delegate) const OVERRIDE;
- virtual bool IsSafeRedirectTarget(const GURL& location) const OVERRIDE;
+ URLRequest* request, NetworkDelegate* network_delegate) const override;
+ virtual bool IsSafeRedirectTarget(const GURL& location) const override;
private:
const scoped_refptr<base::TaskRunner> file_task_runner_;
diff --git a/net/url_request/ftp_protocol_handler.h b/net/url_request/ftp_protocol_handler.h
index 7c2278a..c3091b9 100644
--- a/net/url_request/ftp_protocol_handler.h
+++ b/net/url_request/ftp_protocol_handler.h
@@ -24,7 +24,7 @@
explicit FtpProtocolHandler(FtpTransactionFactory* ftp_transaction_factory);
virtual ~FtpProtocolHandler();
virtual URLRequestJob* MaybeCreateJob(
- URLRequest* request, NetworkDelegate* network_delegate) const OVERRIDE;
+ URLRequest* request, NetworkDelegate* network_delegate) const override;
private:
friend class FtpTestURLRequestContext;
diff --git a/net/url_request/static_http_user_agent_settings.h b/net/url_request/static_http_user_agent_settings.h
index 7406abc..4edb948 100644
--- a/net/url_request/static_http_user_agent_settings.h
+++ b/net/url_request/static_http_user_agent_settings.h
@@ -23,8 +23,8 @@
virtual ~StaticHttpUserAgentSettings();
// HttpUserAgentSettings implementation
- virtual std::string GetAcceptLanguage() const OVERRIDE;
- virtual std::string GetUserAgent() const OVERRIDE;
+ virtual std::string GetAcceptLanguage() const override;
+ virtual std::string GetUserAgent() const override;
private:
const std::string accept_language_;
diff --git a/net/url_request/test_url_fetcher_factory.h b/net/url_request/test_url_fetcher_factory.h
index 5d4f3d9..c004ce7 100644
--- a/net/url_request/test_url_fetcher_factory.h
+++ b/net/url_request/test_url_fetcher_factory.h
@@ -88,66 +88,66 @@
// URLFetcher implementation
virtual void SetUploadData(const std::string& upload_content_type,
- const std::string& upload_content) OVERRIDE;
+ const std::string& upload_content) override;
virtual void SetUploadFilePath(
const std::string& upload_content_type,
const base::FilePath& file_path,
uint64 range_offset,
uint64 range_length,
- scoped_refptr<base::TaskRunner> file_task_runner) OVERRIDE;
+ scoped_refptr<base::TaskRunner> file_task_runner) override;
virtual void SetChunkedUpload(
- const std::string& upload_content_type) OVERRIDE;
+ const std::string& upload_content_type) override;
// Overriden to cache the chunks uploaded. Caller can read back the uploaded
// chunks with the upload_chunks() accessor.
virtual void AppendChunkToUpload(const std::string& data,
- bool is_last_chunk) OVERRIDE;
- virtual void SetLoadFlags(int load_flags) OVERRIDE;
- virtual int GetLoadFlags() const OVERRIDE;
- virtual void SetReferrer(const std::string& referrer) OVERRIDE;
+ bool is_last_chunk) override;
+ virtual void SetLoadFlags(int load_flags) override;
+ virtual int GetLoadFlags() const override;
+ virtual void SetReferrer(const std::string& referrer) override;
virtual void SetReferrerPolicy(
- URLRequest::ReferrerPolicy referrer_policy) OVERRIDE;
+ URLRequest::ReferrerPolicy referrer_policy) override;
virtual void SetExtraRequestHeaders(
- const std::string& extra_request_headers) OVERRIDE;
- virtual void AddExtraRequestHeader(const std::string& header_line) OVERRIDE;
+ const std::string& extra_request_headers) override;
+ virtual void AddExtraRequestHeader(const std::string& header_line) override;
virtual void SetRequestContext(
- URLRequestContextGetter* request_context_getter) OVERRIDE;
+ URLRequestContextGetter* request_context_getter) override;
virtual void SetFirstPartyForCookies(
- const GURL& first_party_for_cookies) OVERRIDE;
+ const GURL& first_party_for_cookies) override;
virtual void SetURLRequestUserData(
const void* key,
- const CreateDataCallback& create_data_callback) OVERRIDE;
- virtual void SetStopOnRedirect(bool stop_on_redirect) OVERRIDE;
- virtual void SetAutomaticallyRetryOn5xx(bool retry) OVERRIDE;
- virtual void SetMaxRetriesOn5xx(int max_retries) OVERRIDE;
- virtual int GetMaxRetriesOn5xx() const OVERRIDE;
- virtual base::TimeDelta GetBackoffDelay() const OVERRIDE;
- virtual void SetAutomaticallyRetryOnNetworkChanges(int max_retries) OVERRIDE;
+ const CreateDataCallback& create_data_callback) override;
+ virtual void SetStopOnRedirect(bool stop_on_redirect) override;
+ virtual void SetAutomaticallyRetryOn5xx(bool retry) override;
+ virtual void SetMaxRetriesOn5xx(int max_retries) override;
+ virtual int GetMaxRetriesOn5xx() const override;
+ virtual base::TimeDelta GetBackoffDelay() const override;
+ virtual void SetAutomaticallyRetryOnNetworkChanges(int max_retries) override;
virtual void SaveResponseToFileAtPath(
const base::FilePath& file_path,
- scoped_refptr<base::SequencedTaskRunner> file_task_runner) OVERRIDE;
+ scoped_refptr<base::SequencedTaskRunner> file_task_runner) override;
virtual void SaveResponseToTemporaryFile(
- scoped_refptr<base::SequencedTaskRunner> file_task_runner) OVERRIDE;
+ scoped_refptr<base::SequencedTaskRunner> file_task_runner) override;
virtual void SaveResponseWithWriter(
- scoped_ptr<URLFetcherResponseWriter> response_writer) OVERRIDE;
- virtual HttpResponseHeaders* GetResponseHeaders() const OVERRIDE;
- virtual HostPortPair GetSocketAddress() const OVERRIDE;
- virtual bool WasFetchedViaProxy() const OVERRIDE;
- virtual void Start() OVERRIDE;
+ scoped_ptr<URLFetcherResponseWriter> response_writer) override;
+ virtual HttpResponseHeaders* GetResponseHeaders() const override;
+ virtual HostPortPair GetSocketAddress() const override;
+ virtual bool WasFetchedViaProxy() const override;
+ virtual void Start() override;
// URL we were created with. Because of how we're using URLFetcher GetURL()
// always returns an empty URL. Chances are you'll want to use
// GetOriginalURL() in your tests.
- virtual const GURL& GetOriginalURL() const OVERRIDE;
- virtual const GURL& GetURL() const OVERRIDE;
- virtual const URLRequestStatus& GetStatus() const OVERRIDE;
- virtual int GetResponseCode() const OVERRIDE;
- virtual const ResponseCookies& GetCookies() const OVERRIDE;
- virtual void ReceivedContentWasMalformed() OVERRIDE;
+ virtual const GURL& GetOriginalURL() const override;
+ virtual const GURL& GetURL() const override;
+ virtual const URLRequestStatus& GetStatus() const override;
+ virtual int GetResponseCode() const override;
+ virtual const ResponseCookies& GetCookies() const override;
+ virtual void ReceivedContentWasMalformed() override;
// Override response access functions to return fake data.
virtual bool GetResponseAsString(
- std::string* out_response_string) const OVERRIDE;
+ std::string* out_response_string) const override;
virtual bool GetResponseAsFilePath(
- bool take_ownership, base::FilePath* out_response_path) const OVERRIDE;
+ bool take_ownership, base::FilePath* out_response_path) const override;
void GetExtraRequestHeaders(HttpRequestHeaders* headers) const;
@@ -247,7 +247,7 @@
int id,
const GURL& url,
URLFetcher::RequestType request_type,
- URLFetcherDelegate* d) OVERRIDE;
+ URLFetcherDelegate* d) override;
TestURLFetcher* GetFetcherByID(int id) const;
void RemoveFetcherFromMap(int id);
void SetDelegateForTests(TestURLFetcherDelegateForTests* delegate_for_tests);
@@ -299,9 +299,9 @@
// Start the request. This will call the given delegate asynchronously
// with the pre-baked response as parameter.
- virtual void Start() OVERRIDE;
+ virtual void Start() override;
- virtual const GURL& GetURL() const OVERRIDE;
+ virtual const GURL& GetURL() const override;
virtual ~FakeURLFetcher();
@@ -407,7 +407,7 @@
int id,
const GURL& url,
URLFetcher::RequestType request_type,
- URLFetcherDelegate* d) OVERRIDE;
+ URLFetcherDelegate* d) override;
// Sets the fake response for a given URL. The |response_data| may be empty.
// The |response_code| may be any HttpStatusCode. For instance, HTTP_OK will
@@ -460,7 +460,7 @@
int id,
const GURL& url,
URLFetcher::RequestType request_type,
- URLFetcherDelegate* d) OVERRIDE;
+ URLFetcherDelegate* d) override;
};
} // namespace net
diff --git a/net/url_request/test_url_request_interceptor.cc b/net/url_request/test_url_request_interceptor.cc
index 69235d6..ec60e08 100644
--- a/net/url_request/test_url_request_interceptor.cc
+++ b/net/url_request/test_url_request_interceptor.cc
@@ -30,7 +30,7 @@
file_path,
worker_task_runner) {}
- virtual int GetResponseCode() const OVERRIDE { return 200; }
+ virtual int GetResponseCode() const override { return 200; }
private:
virtual ~TestURLRequestJob() {}
@@ -93,7 +93,7 @@
// When computing matches, this ignores the query parameters of the url.
virtual net::URLRequestJob* MaybeInterceptRequest(
net::URLRequest* request,
- net::NetworkDelegate* network_delegate) const OVERRIDE {
+ net::NetworkDelegate* network_delegate) const override {
DCHECK(network_task_runner_->RunsTasksOnCurrentThread());
if (request->url().scheme() != scheme_ ||
request->url().host() != hostname_) {
diff --git a/net/url_request/url_fetcher_core.cc b/net/url_request/url_fetcher_core.cc
index f3e10fd..5ea3921 100644
--- a/net/url_request/url_fetcher_core.cc
+++ b/net/url_request/url_fetcher_core.cc
@@ -14,6 +14,7 @@
#include "base/stl_util.h"
#include "base/thread_task_runner_handle.h"
#include "base/tracked_objects.h"
+#include "net/base/elements_upload_data_stream.h"
#include "net/base/io_buffer.h"
#include "net/base/load_flags.h"
#include "net/base/net_errors.h"
@@ -548,8 +549,8 @@
if (!upload_content_.empty()) {
scoped_ptr<UploadElementReader> reader(new UploadBytesElementReader(
upload_content_.data(), upload_content_.size()));
- request_->set_upload(make_scoped_ptr(
- UploadDataStream::CreateWithReader(reader.Pass(), 0)));
+ request_->set_upload(
+ ElementsUploadDataStream::CreateWithReader(reader.Pass(), 0));
} else if (!upload_file_path_.empty()) {
scoped_ptr<UploadElementReader> reader(
new UploadFileElementReader(upload_file_task_runner_.get(),
@@ -557,8 +558,8 @@
upload_range_offset_,
upload_range_length_,
base::Time()));
- request_->set_upload(make_scoped_ptr(
- UploadDataStream::CreateWithReader(reader.Pass(), 0)));
+ request_->set_upload(
+ ElementsUploadDataStream::CreateWithReader(reader.Pass(), 0));
}
current_upload_bytes_ = -1;
diff --git a/net/url_request/url_fetcher_core.h b/net/url_request/url_fetcher_core.h
index a69eb71..c064a42 100644
--- a/net/url_request/url_fetcher_core.h
+++ b/net/url_request/url_fetcher_core.h
@@ -124,13 +124,13 @@
// Overridden from URLRequest::Delegate:
virtual void OnReceivedRedirect(URLRequest* request,
const RedirectInfo& redirect_info,
- bool* defer_redirect) OVERRIDE;
- virtual void OnResponseStarted(URLRequest* request) OVERRIDE;
+ bool* defer_redirect) override;
+ virtual void OnResponseStarted(URLRequest* request) override;
virtual void OnReadCompleted(URLRequest* request,
- int bytes_read) OVERRIDE;
+ int bytes_read) override;
virtual void OnCertificateRequested(
URLRequest* request,
- SSLCertRequestInfo* cert_request_info) OVERRIDE;
+ SSLCertRequestInfo* cert_request_info) override;
URLFetcherDelegate* delegate() const { return delegate_; }
static void CancelAll();
diff --git a/net/url_request/url_fetcher_impl.h b/net/url_request/url_fetcher_impl.h
index bc271b2..e534904 100644
--- a/net/url_request/url_fetcher_impl.h
+++ b/net/url_request/url_fetcher_impl.h
@@ -38,60 +38,60 @@
// URLFetcher implementation:
virtual void SetUploadData(const std::string& upload_content_type,
- const std::string& upload_content) OVERRIDE;
+ const std::string& upload_content) override;
virtual void SetUploadFilePath(
const std::string& upload_content_type,
const base::FilePath& file_path,
uint64 range_offset,
uint64 range_length,
- scoped_refptr<base::TaskRunner> file_task_runner) OVERRIDE;
+ scoped_refptr<base::TaskRunner> file_task_runner) override;
virtual void SetChunkedUpload(
- const std::string& upload_content_type) OVERRIDE;
+ const std::string& upload_content_type) override;
virtual void AppendChunkToUpload(const std::string& data,
- bool is_last_chunk) OVERRIDE;
- virtual void SetLoadFlags(int load_flags) OVERRIDE;
- virtual int GetLoadFlags() const OVERRIDE;
- virtual void SetReferrer(const std::string& referrer) OVERRIDE;
+ bool is_last_chunk) override;
+ virtual void SetLoadFlags(int load_flags) override;
+ virtual int GetLoadFlags() const override;
+ virtual void SetReferrer(const std::string& referrer) override;
virtual void SetReferrerPolicy(
- URLRequest::ReferrerPolicy referrer_policy) OVERRIDE;
+ URLRequest::ReferrerPolicy referrer_policy) override;
virtual void SetExtraRequestHeaders(
- const std::string& extra_request_headers) OVERRIDE;
- virtual void AddExtraRequestHeader(const std::string& header_line) OVERRIDE;
+ const std::string& extra_request_headers) override;
+ virtual void AddExtraRequestHeader(const std::string& header_line) override;
virtual void SetRequestContext(
- URLRequestContextGetter* request_context_getter) OVERRIDE;
+ URLRequestContextGetter* request_context_getter) override;
virtual void SetFirstPartyForCookies(
- const GURL& first_party_for_cookies) OVERRIDE;
+ const GURL& first_party_for_cookies) override;
virtual void SetURLRequestUserData(
const void* key,
- const CreateDataCallback& create_data_callback) OVERRIDE;
- virtual void SetStopOnRedirect(bool stop_on_redirect) OVERRIDE;
- virtual void SetAutomaticallyRetryOn5xx(bool retry) OVERRIDE;
- virtual void SetMaxRetriesOn5xx(int max_retries) OVERRIDE;
- virtual int GetMaxRetriesOn5xx() const OVERRIDE;
- virtual base::TimeDelta GetBackoffDelay() const OVERRIDE;
- virtual void SetAutomaticallyRetryOnNetworkChanges(int max_retries) OVERRIDE;
+ const CreateDataCallback& create_data_callback) override;
+ virtual void SetStopOnRedirect(bool stop_on_redirect) override;
+ virtual void SetAutomaticallyRetryOn5xx(bool retry) override;
+ virtual void SetMaxRetriesOn5xx(int max_retries) override;
+ virtual int GetMaxRetriesOn5xx() const override;
+ virtual base::TimeDelta GetBackoffDelay() const override;
+ virtual void SetAutomaticallyRetryOnNetworkChanges(int max_retries) override;
virtual void SaveResponseToFileAtPath(
const base::FilePath& file_path,
- scoped_refptr<base::SequencedTaskRunner> file_task_runner) OVERRIDE;
+ scoped_refptr<base::SequencedTaskRunner> file_task_runner) override;
virtual void SaveResponseToTemporaryFile(
- scoped_refptr<base::SequencedTaskRunner> file_task_runner) OVERRIDE;
+ scoped_refptr<base::SequencedTaskRunner> file_task_runner) override;
virtual void SaveResponseWithWriter(
- scoped_ptr<URLFetcherResponseWriter> response_writer) OVERRIDE;
- virtual HttpResponseHeaders* GetResponseHeaders() const OVERRIDE;
- virtual HostPortPair GetSocketAddress() const OVERRIDE;
- virtual bool WasFetchedViaProxy() const OVERRIDE;
- virtual void Start() OVERRIDE;
- virtual const GURL& GetOriginalURL() const OVERRIDE;
- virtual const GURL& GetURL() const OVERRIDE;
- virtual const URLRequestStatus& GetStatus() const OVERRIDE;
- virtual int GetResponseCode() const OVERRIDE;
- virtual const ResponseCookies& GetCookies() const OVERRIDE;
- virtual void ReceivedContentWasMalformed() OVERRIDE;
+ scoped_ptr<URLFetcherResponseWriter> response_writer) override;
+ virtual HttpResponseHeaders* GetResponseHeaders() const override;
+ virtual HostPortPair GetSocketAddress() const override;
+ virtual bool WasFetchedViaProxy() const override;
+ virtual void Start() override;
+ virtual const GURL& GetOriginalURL() const override;
+ virtual const GURL& GetURL() const override;
+ virtual const URLRequestStatus& GetStatus() const override;
+ virtual int GetResponseCode() const override;
+ virtual const ResponseCookies& GetCookies() const override;
+ virtual void ReceivedContentWasMalformed() override;
virtual bool GetResponseAsString(
- std::string* out_response_string) const OVERRIDE;
+ std::string* out_response_string) const override;
virtual bool GetResponseAsFilePath(
bool take_ownership,
- base::FilePath* out_response_path) const OVERRIDE;
+ base::FilePath* out_response_path) const override;
static void CancelAll();
diff --git a/net/url_request/url_fetcher_impl_unittest.cc b/net/url_request/url_fetcher_impl_unittest.cc
index 2f1acce..5c97366 100644
--- a/net/url_request/url_fetcher_impl_unittest.cc
+++ b/net/url_request/url_fetcher_impl_unittest.cc
@@ -67,7 +67,7 @@
}
// TestURLRequestContextGetter:
- virtual TestURLRequestContext* GetURLRequestContext() OVERRIDE {
+ virtual TestURLRequestContext* GetURLRequestContext() override {
return context_;
}
@@ -95,7 +95,7 @@
// Subclasses that override this should either call this function or
// CleanupAfterFetchComplete() at the end of their processing, depending on
// whether they want to check for a non-empty HTTP 200 response or not.
- virtual void OnURLFetchComplete(const URLFetcher* source) OVERRIDE;
+ virtual void OnURLFetchComplete(const URLFetcher* source) override;
// Deletes |fetcher| and terminates the message loop.
void CleanupAfterFetchComplete();
@@ -110,7 +110,7 @@
protected:
// testing::Test:
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
testing::Test::SetUp();
context_.reset(new ThrottlingTestURLRequestContext());
@@ -122,7 +122,7 @@
#endif
}
- virtual void TearDown() OVERRIDE {
+ virtual void TearDown() override {
#if defined(USE_NSS) || defined(OS_IOS)
ShutdownNSSHttpIO();
#endif
@@ -143,13 +143,13 @@
class URLFetcherMockDnsTest : public URLFetcherTest {
public:
// testing::Test:
- virtual void SetUp() OVERRIDE;
+ virtual void SetUp() override;
// URLFetcherTest:
- virtual void CreateFetcher(const GURL& url) OVERRIDE;
+ virtual void CreateFetcher(const GURL& url) override;
// URLFetcherDelegate:
- virtual void OnURLFetchComplete(const URLFetcher* source) OVERRIDE;
+ virtual void OnURLFetchComplete(const URLFetcher* source) override;
protected:
GURL test_url_;
@@ -231,10 +231,10 @@
class URLFetcherPostTest : public URLFetcherTest {
public:
// URLFetcherTest:
- virtual void CreateFetcher(const GURL& url) OVERRIDE;
+ virtual void CreateFetcher(const GURL& url) override;
// URLFetcherDelegate:
- virtual void OnURLFetchComplete(const URLFetcher* source) OVERRIDE;
+ virtual void OnURLFetchComplete(const URLFetcher* source) override;
};
// Version of URLFetcherTest that does a POST of a file using
@@ -249,10 +249,10 @@
}
// URLFetcherTest:
- virtual void CreateFetcher(const GURL& url) OVERRIDE;
+ virtual void CreateFetcher(const GURL& url) override;
// URLFetcherDelegate:
- virtual void OnURLFetchComplete(const URLFetcher* source) OVERRIDE;
+ virtual void OnURLFetchComplete(const URLFetcher* source) override;
private:
base::FilePath path_;
@@ -264,10 +264,10 @@
class URLFetcherEmptyPostTest : public URLFetcherTest {
public:
// URLFetcherTest:
- virtual void CreateFetcher(const GURL& url) OVERRIDE;
+ virtual void CreateFetcher(const GURL& url) override;
// URLFetcherDelegate:
- virtual void OnURLFetchComplete(const URLFetcher* source) OVERRIDE;
+ virtual void OnURLFetchComplete(const URLFetcher* source) override;
};
// Version of URLFetcherTest that tests download progress reports.
@@ -279,12 +279,12 @@
}
// URLFetcherTest:
- virtual void CreateFetcher(const GURL& url) OVERRIDE;
+ virtual void CreateFetcher(const GURL& url) override;
// URLFetcherDelegate:
virtual void OnURLFetchDownloadProgress(const URLFetcher* source,
int64 current,
- int64 total) OVERRIDE;
+ int64 total) override;
protected:
// Download progress returned by the previous callback.
@@ -298,13 +298,13 @@
class URLFetcherDownloadProgressCancelTest : public URLFetcherTest {
public:
// URLFetcherTest:
- virtual void CreateFetcher(const GURL& url) OVERRIDE;
+ virtual void CreateFetcher(const GURL& url) override;
// URLFetcherDelegate:
- virtual void OnURLFetchComplete(const URLFetcher* source) OVERRIDE;
+ virtual void OnURLFetchComplete(const URLFetcher* source) override;
virtual void OnURLFetchDownloadProgress(const URLFetcher* source,
int64 current,
- int64 total) OVERRIDE;
+ int64 total) override;
protected:
bool cancelled_;
};
@@ -313,12 +313,12 @@
class URLFetcherUploadProgressTest : public URLFetcherTest {
public:
// URLFetcherTest:
- virtual void CreateFetcher(const GURL& url) OVERRIDE;
+ virtual void CreateFetcher(const GURL& url) override;
// URLFetcherDelegate:
virtual void OnURLFetchUploadProgress(const URLFetcher* source,
int64 current,
- int64 total) OVERRIDE;
+ int64 total) override;
protected:
int64 previous_progress_;
std::string chunk_;
@@ -329,14 +329,14 @@
class URLFetcherHeadersTest : public URLFetcherTest {
public:
// URLFetcherDelegate:
- virtual void OnURLFetchComplete(const URLFetcher* source) OVERRIDE;
+ virtual void OnURLFetchComplete(const URLFetcher* source) override;
};
// Version of URLFetcherTest that tests SocketAddress.
class URLFetcherSocketAddressTest : public URLFetcherTest {
public:
// URLFetcherDelegate:
- virtual void OnURLFetchComplete(const URLFetcher* source) OVERRIDE;
+ virtual void OnURLFetchComplete(const URLFetcher* source) override;
protected:
std::string expected_host_;
uint16 expected_port_;
@@ -349,10 +349,10 @@
virtual ~URLFetcherStopOnRedirectTest();
// URLFetcherTest:
- virtual void CreateFetcher(const GURL& url) OVERRIDE;
+ virtual void CreateFetcher(const GURL& url) override;
// URLFetcherDelegate:
- virtual void OnURLFetchComplete(const URLFetcher* source) OVERRIDE;
+ virtual void OnURLFetchComplete(const URLFetcher* source) override;
protected:
// The URL we should be redirected to.
@@ -365,10 +365,10 @@
class URLFetcherProtectTest : public URLFetcherTest {
public:
// URLFetcherTest:
- virtual void CreateFetcher(const GURL& url) OVERRIDE;
+ virtual void CreateFetcher(const GURL& url) override;
// URLFetcherDelegate:
- virtual void OnURLFetchComplete(const URLFetcher* source) OVERRIDE;
+ virtual void OnURLFetchComplete(const URLFetcher* source) override;
private:
Time start_time_;
};
@@ -378,10 +378,10 @@
class URLFetcherProtectTestPassedThrough : public URLFetcherTest {
public:
// URLFetcherTest:
- virtual void CreateFetcher(const GURL& url) OVERRIDE;
+ virtual void CreateFetcher(const GURL& url) override;
// URLFetcherDelegate:
- virtual void OnURLFetchComplete(const URLFetcher* source) OVERRIDE;
+ virtual void OnURLFetchComplete(const URLFetcher* source) override;
private:
Time start_time_;
};
@@ -392,7 +392,7 @@
URLFetcherBadHTTPSTest();
// URLFetcherDelegate:
- virtual void OnURLFetchComplete(const URLFetcher* source) OVERRIDE;
+ virtual void OnURLFetchComplete(const URLFetcher* source) override;
private:
base::FilePath cert_dir_;
@@ -402,10 +402,10 @@
class URLFetcherCancelTest : public URLFetcherTest {
public:
// URLFetcherTest:
- virtual void CreateFetcher(const GURL& url) OVERRIDE;
+ virtual void CreateFetcher(const GURL& url) override;
// URLFetcherDelegate:
- virtual void OnURLFetchComplete(const URLFetcher* source) OVERRIDE;
+ virtual void OnURLFetchComplete(const URLFetcher* source) override;
void CancelRequest();
};
@@ -439,7 +439,7 @@
}
// TestURLRequestContextGetter:
- virtual TestURLRequestContext* GetURLRequestContext() OVERRIDE {
+ virtual TestURLRequestContext* GetURLRequestContext() override {
if (!context_.get()) {
context_.reset(new CancelTestURLRequestContext());
DCHECK(context_->throttler_manager());
@@ -487,7 +487,7 @@
class URLFetcherMultipleAttemptTest : public URLFetcherTest {
public:
// URLFetcherDelegate:
- virtual void OnURLFetchComplete(const URLFetcher* source) OVERRIDE;
+ virtual void OnURLFetchComplete(const URLFetcher* source) override;
private:
std::string data_;
};
@@ -501,7 +501,7 @@
void CreateFetcherForTempFile(const GURL& url);
// URLFetcherDelegate:
- virtual void OnURLFetchComplete(const URLFetcher* source) OVERRIDE;
+ virtual void OnURLFetchComplete(const URLFetcher* source) override;
protected:
base::FilePath expected_file_;
diff --git a/net/url_request/url_fetcher_response_writer.h b/net/url_request/url_fetcher_response_writer.h
index 428f441..3321f5c 100644
--- a/net/url_request/url_fetcher_response_writer.h
+++ b/net/url_request/url_fetcher_response_writer.h
@@ -65,12 +65,12 @@
const std::string& data() const { return data_; }
// URLFetcherResponseWriter overrides:
- virtual int Initialize(const CompletionCallback& callback) OVERRIDE;
+ virtual int Initialize(const CompletionCallback& callback) override;
virtual int Write(IOBuffer* buffer,
int num_bytes,
- const CompletionCallback& callback) OVERRIDE;
- virtual int Finish(const CompletionCallback& callback) OVERRIDE;
- virtual URLFetcherStringWriter* AsStringWriter() OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual int Finish(const CompletionCallback& callback) override;
+ virtual URLFetcherStringWriter* AsStringWriter() override;
private:
std::string data_;
@@ -91,12 +91,12 @@
const base::FilePath& file_path() const { return file_path_; }
// URLFetcherResponseWriter overrides:
- virtual int Initialize(const CompletionCallback& callback) OVERRIDE;
+ virtual int Initialize(const CompletionCallback& callback) override;
virtual int Write(IOBuffer* buffer,
int num_bytes,
- const CompletionCallback& callback) OVERRIDE;
- virtual int Finish(const CompletionCallback& callback) OVERRIDE;
- virtual URLFetcherFileWriter* AsFileWriter() OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual int Finish(const CompletionCallback& callback) override;
+ virtual URLFetcherFileWriter* AsFileWriter() override;
// Drops ownership of the file at |file_path_|.
// This class will not delete it or write to it again.
diff --git a/net/url_request/url_fetcher_response_writer_unittest.cc b/net/url_request/url_fetcher_response_writer_unittest.cc
index a2e00c8..71cb671 100644
--- a/net/url_request/url_fetcher_response_writer_unittest.cc
+++ b/net/url_request/url_fetcher_response_writer_unittest.cc
@@ -23,7 +23,7 @@
class URLFetcherStringWriterTest : public PlatformTest {
protected:
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
writer_.reset(new URLFetcherStringWriter);
buf_ = new StringIOBuffer(kData);
}
@@ -54,7 +54,7 @@
class URLFetcherFileWriterTest : public PlatformTest {
protected:
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
file_path_ = temp_dir_.path().AppendASCII("test.txt");
writer_.reset(new URLFetcherFileWriter(
@@ -144,7 +144,7 @@
class URLFetcherFileWriterTemporaryFileTest : public PlatformTest {
protected:
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
writer_.reset(new URLFetcherFileWriter(
base::MessageLoopProxy::current(), base::FilePath()));
buf_ = new StringIOBuffer(kData);
diff --git a/net/url_request/url_range_request_job.h b/net/url_request/url_range_request_job.h
index 85f394c..190389d 100644
--- a/net/url_request/url_range_request_job.h
+++ b/net/url_request/url_range_request_job.h
@@ -25,7 +25,7 @@
NetworkDelegate* delegate);
virtual void SetExtraRequestHeaders(
- const HttpRequestHeaders& headers) OVERRIDE;
+ const HttpRequestHeaders& headers) override;
const std::vector<HttpByteRange>& ranges() const { return ranges_; }
int range_parse_result() const { return range_parse_result_; }
diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
index 311bb20..7ae48e8 100644
--- a/net/url_request/url_request.cc
+++ b/net/url_request/url_request.cc
@@ -18,6 +18,7 @@
#include "base/synchronization/lock.h"
#include "base/values.h"
#include "net/base/auth.h"
+#include "net/base/chunked_upload_data_stream.h"
#include "net/base/host_port_pair.h"
#include "net/base/load_flags.h"
#include "net/base/load_timing_info.h"
@@ -223,8 +224,8 @@
void URLRequest::EnableChunkedUpload() {
DCHECK(!upload_data_stream_ || upload_data_stream_->is_chunked());
if (!upload_data_stream_) {
- upload_data_stream_.reset(
- new UploadDataStream(UploadDataStream::CHUNKED, 0));
+ upload_chunked_data_stream_ = new ChunkedUploadDataStream(0);
+ upload_data_stream_.reset(upload_chunked_data_stream_);
}
}
@@ -234,7 +235,7 @@
DCHECK(upload_data_stream_);
DCHECK(upload_data_stream_->is_chunked());
DCHECK_GT(bytes_len, 0);
- upload_data_stream_->AppendChunk(bytes, bytes_len, is_last_chunk);
+ upload_chunked_data_stream_->AppendData(bytes, bytes_len, is_last_chunk);
}
void URLRequest::set_upload(scoped_ptr<UploadDataStream> upload) {
diff --git a/net/url_request/url_request.h b/net/url_request/url_request.h
index d8df8fe..a0d5789 100644
--- a/net/url_request/url_request.h
+++ b/net/url_request/url_request.h
@@ -48,6 +48,7 @@
namespace net {
+class ChunkedUploadDataStream;
class CookieOptions;
class HostPortPair;
class IOBuffer;
@@ -791,6 +792,10 @@
scoped_refptr<URLRequestJob> job_;
scoped_ptr<UploadDataStream> upload_data_stream_;
+ // TODO(mmenke): Make whether or not an upload is chunked transparent to the
+ // URLRequest.
+ ChunkedUploadDataStream* upload_chunked_data_stream_;
+
std::vector<GURL> url_chain_;
GURL first_party_for_cookies_;
GURL delegate_redirect_url_;
diff --git a/net/url_request/url_request_about_job.h b/net/url_request/url_request_about_job.h
index 66a888a..d4b4867 100644
--- a/net/url_request/url_request_about_job.h
+++ b/net/url_request/url_request_about_job.h
@@ -18,8 +18,8 @@
URLRequestAboutJob(URLRequest* request, NetworkDelegate* network_delegate);
// URLRequestJob:
- virtual void Start() OVERRIDE;
- virtual bool GetMimeType(std::string* mime_type) const OVERRIDE;
+ virtual void Start() override;
+ virtual bool GetMimeType(std::string* mime_type) const override;
private:
virtual ~URLRequestAboutJob();
diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/url_request_context_builder.cc
index a7f5a0b..2e2fcc4 100644
--- a/net/url_request/url_request_context_builder.cc
+++ b/net/url_request/url_request_context_builder.cc
@@ -56,68 +56,68 @@
private:
virtual int OnBeforeURLRequest(URLRequest* request,
const CompletionCallback& callback,
- GURL* new_url) OVERRIDE {
+ GURL* new_url) override {
return OK;
}
virtual int OnBeforeSendHeaders(URLRequest* request,
const CompletionCallback& callback,
- HttpRequestHeaders* headers) OVERRIDE {
+ HttpRequestHeaders* headers) override {
return OK;
}
virtual void OnSendHeaders(URLRequest* request,
- const HttpRequestHeaders& headers) OVERRIDE {}
+ const HttpRequestHeaders& headers) override {}
virtual int OnHeadersReceived(
URLRequest* request,
const CompletionCallback& callback,
const HttpResponseHeaders* original_response_headers,
scoped_refptr<HttpResponseHeaders>* override_response_headers,
- GURL* allowed_unsafe_redirect_url) OVERRIDE {
+ GURL* allowed_unsafe_redirect_url) override {
return OK;
}
virtual void OnBeforeRedirect(URLRequest* request,
- const GURL& new_location) OVERRIDE {}
+ const GURL& new_location) override {}
- virtual void OnResponseStarted(URLRequest* request) OVERRIDE {}
+ virtual void OnResponseStarted(URLRequest* request) override {}
virtual void OnRawBytesRead(const URLRequest& request,
- int bytes_read) OVERRIDE {}
+ int bytes_read) override {}
- virtual void OnCompleted(URLRequest* request, bool started) OVERRIDE {}
+ virtual void OnCompleted(URLRequest* request, bool started) override {}
- virtual void OnURLRequestDestroyed(URLRequest* request) OVERRIDE {}
+ virtual void OnURLRequestDestroyed(URLRequest* request) override {}
virtual void OnPACScriptError(int line_number,
- const base::string16& error) OVERRIDE {}
+ const base::string16& error) override {}
virtual NetworkDelegate::AuthRequiredResponse OnAuthRequired(
URLRequest* request,
const AuthChallengeInfo& auth_info,
const AuthCallback& callback,
- AuthCredentials* credentials) OVERRIDE {
+ AuthCredentials* credentials) override {
return NetworkDelegate::AUTH_REQUIRED_RESPONSE_NO_ACTION;
}
virtual bool OnCanGetCookies(const URLRequest& request,
- const CookieList& cookie_list) OVERRIDE {
+ const CookieList& cookie_list) override {
return true;
}
virtual bool OnCanSetCookie(const URLRequest& request,
const std::string& cookie_line,
- CookieOptions* options) OVERRIDE {
+ CookieOptions* options) override {
return true;
}
virtual bool OnCanAccessFile(const net::URLRequest& request,
- const base::FilePath& path) const OVERRIDE {
+ const base::FilePath& path) const override {
return true;
}
- virtual bool OnCanThrottleRequest(const URLRequest& request) const OVERRIDE {
+ virtual bool OnCanThrottleRequest(const URLRequest& request) const override {
// Returning true will only enable throttling if there's also a
// URLRequestThrottlerManager, which there isn't, by default.
return true;
@@ -125,7 +125,7 @@
virtual int OnBeforeSocketStreamConnect(
SocketStream* stream,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return OK;
}
diff --git a/net/url_request/url_request_context_builder_unittest.cc b/net/url_request/url_request_context_builder_unittest.cc
index b5a3da2..f0f4b82 100644
--- a/net/url_request/url_request_context_builder_unittest.cc
+++ b/net/url_request/url_request_context_builder_unittest.cc
@@ -51,7 +51,7 @@
CreateReason reason,
int nonce_count,
const BoundNetLog& net_log,
- scoped_ptr<HttpAuthHandler>* handler) OVERRIDE {
+ scoped_ptr<HttpAuthHandler>* handler) override {
handler->reset();
return return_code_;
}
diff --git a/net/url_request/url_request_context_getter.h b/net/url_request/url_request_context_getter.h
index 1f56f70..aa2d64b 100644
--- a/net/url_request/url_request_context_getter.h
+++ b/net/url_request/url_request_context_getter.h
@@ -62,10 +62,10 @@
const scoped_refptr<base::SingleThreadTaskRunner>& main_task_runner);
// net::URLRequestContextGetter implementation:
- virtual net::URLRequestContext* GetURLRequestContext() OVERRIDE;
+ virtual net::URLRequestContext* GetURLRequestContext() override;
virtual scoped_refptr<base::SingleThreadTaskRunner>
- GetNetworkTaskRunner() const OVERRIDE;
+ GetNetworkTaskRunner() const override;
private:
virtual ~TrivialURLRequestContextGetter();
diff --git a/net/url_request/url_request_data_job.h b/net/url_request/url_request_data_job.h
index f2e38aa..c39ae8d 100644
--- a/net/url_request/url_request_data_job.h
+++ b/net/url_request/url_request_data_job.h
@@ -33,7 +33,7 @@
virtual int GetData(std::string* mime_type,
std::string* charset,
std::string* data,
- const CompletionCallback& callback) const OVERRIDE;
+ const CompletionCallback& callback) const override;
private:
virtual ~URLRequestDataJob();
diff --git a/net/url_request/url_request_error_job.h b/net/url_request/url_request_error_job.h
index 7c162f0..0bb37ec 100644
--- a/net/url_request/url_request_error_job.h
+++ b/net/url_request/url_request_error_job.h
@@ -20,7 +20,7 @@
NetworkDelegate* network_delegate,
int error);
- virtual void Start() OVERRIDE;
+ virtual void Start() override;
private:
virtual ~URLRequestErrorJob();
diff --git a/net/url_request/url_request_file_dir_job.h b/net/url_request/url_request_file_dir_job.h
index f897493..b353697 100644
--- a/net/url_request/url_request_file_dir_job.h
+++ b/net/url_request/url_request_file_dir_job.h
@@ -27,18 +27,18 @@
virtual void StartAsync();
// Overridden from URLRequestJob:
- virtual void Start() OVERRIDE;
- virtual void Kill() OVERRIDE;
+ virtual void Start() override;
+ virtual void Kill() override;
virtual bool ReadRawData(IOBuffer* buf,
int buf_size,
- int* bytes_read) OVERRIDE;
- virtual bool GetMimeType(std::string* mime_type) const OVERRIDE;
- virtual bool GetCharset(std::string* charset) OVERRIDE;
+ int* bytes_read) override;
+ virtual bool GetMimeType(std::string* mime_type) const override;
+ virtual bool GetCharset(std::string* charset) override;
// Overridden from DirectoryLister::DirectoryListerDelegate:
virtual void OnListFile(
- const DirectoryLister::DirectoryListerData& data) OVERRIDE;
- virtual void OnListDone(int error) OVERRIDE;
+ const DirectoryLister::DirectoryListerData& data) override;
+ virtual void OnListDone(int error) override;
private:
virtual ~URLRequestFileDirJob();
diff --git a/net/url_request/url_request_file_job.h b/net/url_request/url_request_file_job.h
index 15c1e4d..3a5aae7 100644
--- a/net/url_request/url_request_file_job.h
+++ b/net/url_request/url_request_file_job.h
@@ -36,17 +36,17 @@
const scoped_refptr<base::TaskRunner>& file_task_runner);
// URLRequestJob:
- virtual void Start() OVERRIDE;
- virtual void Kill() OVERRIDE;
+ virtual void Start() override;
+ virtual void Kill() override;
virtual bool ReadRawData(IOBuffer* buf,
int buf_size,
- int* bytes_read) OVERRIDE;
+ int* bytes_read) override;
virtual bool IsRedirectResponse(GURL* location,
- int* http_status_code) OVERRIDE;
- virtual Filter* SetupFilter() const OVERRIDE;
- virtual bool GetMimeType(std::string* mime_type) const OVERRIDE;
+ int* http_status_code) override;
+ virtual Filter* SetupFilter() const override;
+ virtual bool GetMimeType(std::string* mime_type) const override;
virtual void SetExtraRequestHeaders(
- const HttpRequestHeaders& headers) OVERRIDE;
+ const HttpRequestHeaders& headers) override;
// An interface for subclasses who wish to monitor read operations.
virtual void OnSeekComplete(int64 result);
diff --git a/net/url_request/url_request_file_job_unittest.cc b/net/url_request/url_request_file_job_unittest.cc
index 4f7984c..ba87766 100644
--- a/net/url_request/url_request_file_job_unittest.cc
+++ b/net/url_request/url_request_file_job_unittest.cc
@@ -41,12 +41,12 @@
protected:
virtual ~URLRequestFileJobWithCallbacks() {}
- virtual void OnSeekComplete(int64 result) OVERRIDE {
+ virtual void OnSeekComplete(int64 result) override {
ASSERT_EQ(seek_position_, 0);
seek_position_ = result;
}
- virtual void OnReadComplete(IOBuffer* buf, int result) OVERRIDE {
+ virtual void OnReadComplete(IOBuffer* buf, int result) override {
data_chunks_.push_back(std::string(buf->data(), result));
}
@@ -72,7 +72,7 @@
virtual URLRequestJob* MaybeCreateJobWithProtocolHandler(
const std::string& scheme,
URLRequest* request,
- NetworkDelegate* network_delegate) const OVERRIDE {
+ NetworkDelegate* network_delegate) const override {
URLRequestFileJobWithCallbacks* job = new URLRequestFileJobWithCallbacks(
request,
network_delegate,
@@ -82,15 +82,15 @@
return job;
}
- virtual bool IsHandledProtocol(const std::string& scheme) const OVERRIDE {
+ virtual bool IsHandledProtocol(const std::string& scheme) const override {
return scheme == "file";
}
- virtual bool IsHandledURL(const GURL& url) const OVERRIDE {
+ virtual bool IsHandledURL(const GURL& url) const override {
return IsHandledProtocol(url.scheme());
}
- virtual bool IsSafeRedirectTarget(const GURL& location) const OVERRIDE {
+ virtual bool IsSafeRedirectTarget(const GURL& location) const override {
return false;
}
@@ -116,7 +116,7 @@
class JobObserverImpl : public CallbacksJobFactory::JobObserver {
public:
- virtual void OnJobCreated(URLRequestFileJobWithCallbacks* job) OVERRIDE {
+ virtual void OnJobCreated(URLRequestFileJobWithCallbacks* job) override {
jobs_.push_back(job);
}
diff --git a/net/url_request/url_request_filter.cc b/net/url_request/url_request_filter.cc
index 842a54f..04d61cc 100644
--- a/net/url_request/url_request_filter.cc
+++ b/net/url_request/url_request_filter.cc
@@ -22,7 +22,7 @@
// URLRequestInterceptor implementation.
virtual URLRequestJob* MaybeInterceptRequest(
- URLRequest* request, NetworkDelegate* network_delegate) const OVERRIDE {
+ URLRequest* request, NetworkDelegate* network_delegate) const override {
return factory_(request, network_delegate, request->url().scheme());
}
diff --git a/net/url_request/url_request_filter.h b/net/url_request/url_request_filter.h
index 93baedb..3388d92 100644
--- a/net/url_request/url_request_filter.h
+++ b/net/url_request/url_request_filter.h
@@ -69,7 +69,7 @@
// URLRequestInterceptor implementation:
virtual URLRequestJob* MaybeInterceptRequest(
URLRequest* request,
- NetworkDelegate* network_delegate) const OVERRIDE;
+ NetworkDelegate* network_delegate) const override;
private:
// scheme,hostname -> URLRequestInterceptor
diff --git a/net/url_request/url_request_filter_unittest.cc b/net/url_request/url_request_filter_unittest.cc
index 0e1f2df..bd2a782 100644
--- a/net/url_request/url_request_filter_unittest.cc
+++ b/net/url_request/url_request_filter_unittest.cc
@@ -43,7 +43,7 @@
virtual ~TestURLRequestInterceptor() {}
virtual URLRequestJob* MaybeInterceptRequest(
- URLRequest* request, NetworkDelegate* network_delegate) const OVERRIDE {
+ URLRequest* request, NetworkDelegate* network_delegate) const override {
job_c = new URLRequestTestJob(request, network_delegate);
return job_c;
}
diff --git a/net/url_request/url_request_ftp_job.h b/net/url_request/url_request_ftp_job.h
index 6c40b65..61d4cff 100644
--- a/net/url_request/url_request_ftp_job.h
+++ b/net/url_request/url_request_ftp_job.h
@@ -37,13 +37,13 @@
virtual ~URLRequestFtpJob();
// Overridden from URLRequestJob:
- virtual bool IsSafeRedirect(const GURL& location) OVERRIDE;
- virtual bool GetMimeType(std::string* mime_type) const OVERRIDE;
- virtual void GetResponseInfo(HttpResponseInfo* info) OVERRIDE;
- virtual HostPortPair GetSocketAddress() const OVERRIDE;
- virtual void SetPriority(RequestPriority priority) OVERRIDE;
- virtual void Start() OVERRIDE;
- virtual void Kill() OVERRIDE;
+ virtual bool IsSafeRedirect(const GURL& location) override;
+ virtual bool GetMimeType(std::string* mime_type) const override;
+ virtual void GetResponseInfo(HttpResponseInfo* info) override;
+ virtual HostPortPair GetSocketAddress() const override;
+ virtual void SetPriority(RequestPriority priority) override;
+ virtual void Start() override;
+ virtual void Kill() override;
RequestPriority priority() const { return priority_; }
@@ -62,18 +62,18 @@
void LogFtpServerType(char server_type);
// Overridden from URLRequestJob:
- virtual LoadState GetLoadState() const OVERRIDE;
- virtual bool NeedsAuth() OVERRIDE;
+ virtual LoadState GetLoadState() const override;
+ virtual bool NeedsAuth() override;
virtual void GetAuthChallengeInfo(
- scoped_refptr<AuthChallengeInfo>* auth_info) OVERRIDE;
- virtual void SetAuth(const AuthCredentials& credentials) OVERRIDE;
- virtual void CancelAuth() OVERRIDE;
+ scoped_refptr<AuthChallengeInfo>* auth_info) override;
+ virtual void SetAuth(const AuthCredentials& credentials) override;
+ virtual void CancelAuth() override;
// TODO(ibrar): Yet to give another look at this function.
- virtual UploadProgress GetUploadProgress() const OVERRIDE;
+ virtual UploadProgress GetUploadProgress() const override;
virtual bool ReadRawData(IOBuffer* buf,
int buf_size,
- int *bytes_read) OVERRIDE;
+ int *bytes_read) override;
void HandleAuthNeededResponse();
diff --git a/net/url_request/url_request_ftp_job_unittest.cc b/net/url_request/url_request_ftp_job_unittest.cc
index 3ecb97e..629613d 100644
--- a/net/url_request/url_request_ftp_job_unittest.cc
+++ b/net/url_request/url_request_ftp_job_unittest.cc
@@ -67,18 +67,18 @@
config_.proxy_rules().ParseFromString("ftp=localhost");
}
- virtual void AddObserver(Observer* observer) OVERRIDE {
+ virtual void AddObserver(Observer* observer) override {
observer_ = observer;
}
- virtual void RemoveObserver(Observer* observer) OVERRIDE {
+ virtual void RemoveObserver(Observer* observer) override {
if (observer_ == observer) {
observer_ = NULL;
}
}
virtual ConfigAvailability GetLatestProxyConfig(
- ProxyConfig* config) OVERRIDE {
+ ProxyConfig* config) override {
*config = config_;
return CONFIG_VALID;
}
@@ -113,11 +113,11 @@
class MockFtpTransactionFactory : public FtpTransactionFactory {
public:
- virtual FtpTransaction* CreateTransaction() OVERRIDE {
+ virtual FtpTransaction* CreateTransaction() override {
return NULL;
}
- virtual void Suspend(bool suspend) OVERRIDE {}
+ virtual void Suspend(bool suspend) override {}
};
// Fixture for priority-related tests. Priority matters when there is
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
index 2ebdd15..fc26e94 100644
--- a/net/url_request/url_request_http_job.cc
+++ b/net/url_request/url_request_http_job.cc
@@ -58,17 +58,17 @@
virtual ~HttpFilterContext();
// FilterContext implementation.
- virtual bool GetMimeType(std::string* mime_type) const OVERRIDE;
- virtual bool GetURL(GURL* gurl) const OVERRIDE;
- virtual bool GetContentDisposition(std::string* disposition) const OVERRIDE;
- virtual base::Time GetRequestTime() const OVERRIDE;
- virtual bool IsCachedContent() const OVERRIDE;
- virtual bool IsDownload() const OVERRIDE;
- virtual bool SdchResponseExpected() const OVERRIDE;
- virtual int64 GetByteReadCount() const OVERRIDE;
- virtual int GetResponseCode() const OVERRIDE;
- virtual const URLRequestContext* GetURLRequestContext() const OVERRIDE;
- virtual void RecordPacketStats(StatisticSelector statistic) const OVERRIDE;
+ virtual bool GetMimeType(std::string* mime_type) const override;
+ virtual bool GetURL(GURL* gurl) const override;
+ virtual bool GetContentDisposition(std::string* disposition) const override;
+ virtual base::Time GetRequestTime() const override;
+ virtual bool IsCachedContent() const override;
+ virtual bool IsDownload() const override;
+ virtual bool SdchResponseExpected() const override;
+ virtual int64 GetByteReadCount() const override;
+ virtual int GetResponseCode() const override;
+ virtual const URLRequestContext* GetURLRequestContext() const override;
+ virtual void RecordPacketStats(StatisticSelector statistic) const override;
// Method to allow us to reset filter context for a response that should have
// been SDCH encoded when there is an update due to an explicit HTTP header.
diff --git a/net/url_request/url_request_http_job.h b/net/url_request/url_request_http_job.h
index 6f8dccc..4b0cc67 100644
--- a/net/url_request/url_request_http_job.h
+++ b/net/url_request/url_request_http_job.h
@@ -48,9 +48,9 @@
virtual ~URLRequestHttpJob();
// Overridden from URLRequestJob:
- virtual void SetPriority(RequestPriority priority) OVERRIDE;
- virtual void Start() OVERRIDE;
- virtual void Kill() OVERRIDE;
+ virtual void SetPriority(RequestPriority priority) override;
+ virtual void Start() override;
+ virtual void Kill() override;
RequestPriority priority() const {
return priority_;
@@ -99,44 +99,44 @@
void RestartTransactionWithAuth(const AuthCredentials& credentials);
// Overridden from URLRequestJob:
- virtual void SetUpload(UploadDataStream* upload) OVERRIDE;
+ virtual void SetUpload(UploadDataStream* upload) override;
virtual void SetExtraRequestHeaders(
- const HttpRequestHeaders& headers) OVERRIDE;
- virtual LoadState GetLoadState() const OVERRIDE;
- virtual UploadProgress GetUploadProgress() const OVERRIDE;
- virtual bool GetMimeType(std::string* mime_type) const OVERRIDE;
- virtual bool GetCharset(std::string* charset) OVERRIDE;
- virtual void GetResponseInfo(HttpResponseInfo* info) OVERRIDE;
+ const HttpRequestHeaders& headers) override;
+ virtual LoadState GetLoadState() const override;
+ virtual UploadProgress GetUploadProgress() const override;
+ virtual bool GetMimeType(std::string* mime_type) const override;
+ virtual bool GetCharset(std::string* charset) override;
+ virtual void GetResponseInfo(HttpResponseInfo* info) override;
virtual void GetLoadTimingInfo(
- LoadTimingInfo* load_timing_info) const OVERRIDE;
- virtual bool GetResponseCookies(std::vector<std::string>* cookies) OVERRIDE;
- virtual int GetResponseCode() const OVERRIDE;
- virtual Filter* SetupFilter() const OVERRIDE;
- virtual bool CopyFragmentOnRedirect(const GURL& location) const OVERRIDE;
- virtual bool IsSafeRedirect(const GURL& location) OVERRIDE;
- virtual bool NeedsAuth() OVERRIDE;
- virtual void GetAuthChallengeInfo(scoped_refptr<AuthChallengeInfo>*) OVERRIDE;
- virtual void SetAuth(const AuthCredentials& credentials) OVERRIDE;
- virtual void CancelAuth() OVERRIDE;
- virtual void ContinueWithCertificate(X509Certificate* client_cert) OVERRIDE;
- virtual void ContinueDespiteLastError() OVERRIDE;
- virtual void ResumeNetworkStart() OVERRIDE;
+ LoadTimingInfo* load_timing_info) const override;
+ virtual bool GetResponseCookies(std::vector<std::string>* cookies) override;
+ virtual int GetResponseCode() const override;
+ virtual Filter* SetupFilter() const override;
+ virtual bool CopyFragmentOnRedirect(const GURL& location) const override;
+ virtual bool IsSafeRedirect(const GURL& location) override;
+ virtual bool NeedsAuth() override;
+ virtual void GetAuthChallengeInfo(scoped_refptr<AuthChallengeInfo>*) override;
+ virtual void SetAuth(const AuthCredentials& credentials) override;
+ virtual void CancelAuth() override;
+ virtual void ContinueWithCertificate(X509Certificate* client_cert) override;
+ virtual void ContinueDespiteLastError() override;
+ virtual void ResumeNetworkStart() override;
virtual bool ReadRawData(IOBuffer* buf, int buf_size,
- int* bytes_read) OVERRIDE;
- virtual void StopCaching() OVERRIDE;
+ int* bytes_read) override;
+ virtual void StopCaching() override;
virtual bool GetFullRequestHeaders(
- HttpRequestHeaders* headers) const OVERRIDE;
- virtual int64 GetTotalReceivedBytes() const OVERRIDE;
- virtual void DoneReading() OVERRIDE;
- virtual void DoneReadingRedirectResponse() OVERRIDE;
+ HttpRequestHeaders* headers) const override;
+ virtual int64 GetTotalReceivedBytes() const override;
+ virtual void DoneReading() override;
+ virtual void DoneReadingRedirectResponse() override;
- virtual HostPortPair GetSocketAddress() const OVERRIDE;
- virtual void NotifyURLRequestDestroyed() OVERRIDE;
+ virtual HostPortPair GetSocketAddress() const override;
+ virtual void NotifyURLRequestDestroyed() override;
void RecordTimer();
void ResetTimer();
- virtual void UpdatePacketReadTimes() OVERRIDE;
+ virtual void UpdatePacketReadTimes() override;
void RecordPacketStats(FilterContext::StatisticSelector statistic) const;
void RecordCompressionHistograms();
diff --git a/net/url_request/url_request_http_job_unittest.cc b/net/url_request/url_request_http_job_unittest.cc
index 5cb84d6..c6848d3 100644
--- a/net/url_request/url_request_http_job_unittest.cc
+++ b/net/url_request/url_request_http_job_unittest.cc
@@ -231,7 +231,7 @@
// scoped_ptr, so this forwarding method acts as a workaround.
virtual WebSocketHandshakeStreamBase* CreateBasicStream(
scoped_ptr<ClientSocketHandle> connection,
- bool using_proxy) OVERRIDE {
+ bool using_proxy) override {
// Discard the arguments since we don't need them anyway.
return CreateBasicStreamMock();
}
@@ -256,58 +256,58 @@
virtual int InitializeStream(const HttpRequestInfo* request_info,
RequestPriority priority,
const BoundNetLog& net_log,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
initialize_stream_was_called_ = true;
return ERR_IO_PENDING;
}
virtual int SendRequest(const HttpRequestHeaders& request_headers,
HttpResponseInfo* response,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return ERR_IO_PENDING;
}
- virtual int ReadResponseHeaders(const CompletionCallback& callback) OVERRIDE {
+ virtual int ReadResponseHeaders(const CompletionCallback& callback) override {
return ERR_IO_PENDING;
}
virtual int ReadResponseBody(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return ERR_IO_PENDING;
}
- virtual void Close(bool not_reusable) OVERRIDE {}
+ virtual void Close(bool not_reusable) override {}
- virtual bool IsResponseBodyComplete() const OVERRIDE { return false; }
+ virtual bool IsResponseBodyComplete() const override { return false; }
- virtual bool CanFindEndOfResponse() const OVERRIDE { return false; }
+ virtual bool CanFindEndOfResponse() const override { return false; }
- virtual bool IsConnectionReused() const OVERRIDE { return false; }
- virtual void SetConnectionReused() OVERRIDE {}
+ virtual bool IsConnectionReused() const override { return false; }
+ virtual void SetConnectionReused() override {}
- virtual bool IsConnectionReusable() const OVERRIDE { return false; }
+ virtual bool IsConnectionReusable() const override { return false; }
- virtual int64 GetTotalReceivedBytes() const OVERRIDE { return 0; }
+ virtual int64 GetTotalReceivedBytes() const override { return 0; }
virtual bool GetLoadTimingInfo(LoadTimingInfo* load_timing_info) const
- OVERRIDE {
+ override {
return false;
}
- virtual void GetSSLInfo(SSLInfo* ssl_info) OVERRIDE {}
+ virtual void GetSSLInfo(SSLInfo* ssl_info) override {}
virtual void GetSSLCertRequestInfo(SSLCertRequestInfo* cert_request_info)
- OVERRIDE {}
+ override {}
- virtual bool IsSpdyHttpStream() const OVERRIDE { return false; }
+ virtual bool IsSpdyHttpStream() const override { return false; }
- virtual void Drain(HttpNetworkSession* session) OVERRIDE {}
+ virtual void Drain(HttpNetworkSession* session) override {}
- virtual void SetPriority(RequestPriority priority) OVERRIDE {}
+ virtual void SetPriority(RequestPriority priority) override {}
// Fake implementation of WebSocketHandshakeStreamBase method(s)
- virtual scoped_ptr<WebSocketStream> Upgrade() OVERRIDE {
+ virtual scoped_ptr<WebSocketStream> Upgrade() override {
return scoped_ptr<WebSocketStream>();
}
diff --git a/net/url_request/url_request_intercepting_job_factory.h b/net/url_request/url_request_intercepting_job_factory.h
index b18af54..909a25c 100644
--- a/net/url_request/url_request_intercepting_job_factory.h
+++ b/net/url_request/url_request_intercepting_job_factory.h
@@ -41,10 +41,10 @@
virtual URLRequestJob* MaybeCreateJobWithProtocolHandler(
const std::string& scheme,
URLRequest* request,
- NetworkDelegate* network_delegate) const OVERRIDE;
- virtual bool IsHandledProtocol(const std::string& scheme) const OVERRIDE;
- virtual bool IsHandledURL(const GURL& url) const OVERRIDE;
- virtual bool IsSafeRedirectTarget(const GURL& location) const OVERRIDE;
+ NetworkDelegate* network_delegate) const override;
+ virtual bool IsHandledProtocol(const std::string& scheme) const override;
+ virtual bool IsHandledURL(const GURL& url) const override;
+ virtual bool IsSafeRedirectTarget(const GURL& location) const override;
private:
scoped_ptr<URLRequestJobFactory> job_factory_;
diff --git a/net/url_request/url_request_job.h b/net/url_request/url_request_job.h
index 2dcd67a..5b8760f 100644
--- a/net/url_request/url_request_job.h
+++ b/net/url_request/url_request_job.h
@@ -219,7 +219,7 @@
// base::PowerObserver methods:
// We invoke URLRequestJob::Kill on suspend (crbug.com/4606).
- virtual void OnSuspend() OVERRIDE;
+ virtual void OnSuspend() override;
// Called after a NetworkDelegate has been informed that the URLRequest
// will be destroyed. This is used to track that no pending callbacks
diff --git a/net/url_request/url_request_job_factory_impl.h b/net/url_request/url_request_job_factory_impl.h
index 8de514f..94112c1 100644
--- a/net/url_request/url_request_job_factory_impl.h
+++ b/net/url_request/url_request_job_factory_impl.h
@@ -32,10 +32,10 @@
virtual URLRequestJob* MaybeCreateJobWithProtocolHandler(
const std::string& scheme,
URLRequest* request,
- NetworkDelegate* network_delegate) const OVERRIDE;
- virtual bool IsHandledProtocol(const std::string& scheme) const OVERRIDE;
- virtual bool IsHandledURL(const GURL& url) const OVERRIDE;
- virtual bool IsSafeRedirectTarget(const GURL& location) const OVERRIDE;
+ NetworkDelegate* network_delegate) const override;
+ virtual bool IsHandledProtocol(const std::string& scheme) const override;
+ virtual bool IsHandledURL(const GURL& url) const override;
+ virtual bool IsSafeRedirectTarget(const GURL& location) const override;
private:
// For testing only.
diff --git a/net/url_request/url_request_job_factory_impl_unittest.cc b/net/url_request/url_request_job_factory_impl_unittest.cc
index 2c36976..61467f1 100644
--- a/net/url_request/url_request_job_factory_impl_unittest.cc
+++ b/net/url_request/url_request_job_factory_impl_unittest.cc
@@ -26,7 +26,7 @@
status_(status),
weak_factory_(this) {}
- virtual void Start() OVERRIDE {
+ virtual void Start() override {
// Start reading asynchronously so that all error reporting and data
// callbacks happen as they would for network requests.
base::MessageLoop::current()->PostTask(
@@ -50,7 +50,7 @@
class DummyProtocolHandler : public URLRequestJobFactory::ProtocolHandler {
public:
virtual URLRequestJob* MaybeCreateJob(
- URLRequest* request, NetworkDelegate* network_delegate) const OVERRIDE {
+ URLRequest* request, NetworkDelegate* network_delegate) const override {
return new MockURLRequestJob(
request,
network_delegate,
diff --git a/net/url_request/url_request_redirect_job.h b/net/url_request/url_request_redirect_job.h
index 23fc811..54bc3f0 100644
--- a/net/url_request/url_request_redirect_job.h
+++ b/net/url_request/url_request_redirect_job.h
@@ -42,12 +42,12 @@
const std::string& redirect_reason);
// URLRequestJob implementation:
- virtual void GetResponseInfo(HttpResponseInfo* info) OVERRIDE;
+ virtual void GetResponseInfo(HttpResponseInfo* info) override;
virtual void GetLoadTimingInfo(
- LoadTimingInfo* load_timing_info) const OVERRIDE;
- virtual void Start() OVERRIDE;
- virtual bool CopyFragmentOnRedirect(const GURL& location) const OVERRIDE;
- virtual int GetResponseCode() const OVERRIDE;
+ LoadTimingInfo* load_timing_info) const override;
+ virtual void Start() override;
+ virtual bool CopyFragmentOnRedirect(const GURL& location) const override;
+ virtual int GetResponseCode() const override;
private:
virtual ~URLRequestRedirectJob();
diff --git a/net/url_request/url_request_simple_job.cc b/net/url_request/url_request_simple_job.cc
index f266e3b..a02da27 100644
--- a/net/url_request/url_request_simple_job.cc
+++ b/net/url_request/url_request_simple_job.cc
@@ -9,6 +9,7 @@
#include "base/bind.h"
#include "base/compiler_specific.h"
#include "base/message_loop/message_loop.h"
+#include "base/profiler/scoped_profile.h"
#include "net/base/io_buffer.h"
#include "net/base/net_errors.h"
#include "net/http/http_request_headers.h"
@@ -60,6 +61,11 @@
return;
if (ranges().size() > 1) {
+ // TODO(vadimt): Remove ScopedProfile below once crbug.com/422489 is fixed.
+ tracked_objects::ScopedProfile tracking_profile(
+ FROM_HERE_WITH_EXPLICIT_FUNCTION(
+ "422489 URLRequestSimpleJob::StartAsync 1"));
+
NotifyDone(URLRequestStatus(URLRequestStatus::FAILED,
ERR_REQUEST_RANGE_NOT_SATISFIABLE));
return;
@@ -68,11 +74,29 @@
if (!ranges().empty() && range_parse_result() == OK)
byte_range_ = ranges().front();
- int result = GetData(&mime_type_, &charset_, &data_,
- base::Bind(&URLRequestSimpleJob::OnGetDataCompleted,
- weak_factory_.GetWeakPtr()));
- if (result != ERR_IO_PENDING)
+ int result;
+ {
+ // TODO(vadimt): Remove ScopedProfile below once crbug.com/422489 is fixed.
+ // Remove the block and assign 'result' in its declaration.
+ tracked_objects::ScopedProfile tracking_profile(
+ FROM_HERE_WITH_EXPLICIT_FUNCTION(
+ "422489 URLRequestSimpleJob::StartAsync 2"));
+
+ result = GetData(&mime_type_,
+ &charset_,
+ &data_,
+ base::Bind(&URLRequestSimpleJob::OnGetDataCompleted,
+ weak_factory_.GetWeakPtr()));
+ }
+
+ if (result != ERR_IO_PENDING) {
+ // TODO(vadimt): Remove ScopedProfile below once crbug.com/422489 is fixed.
+ tracked_objects::ScopedProfile tracking_profile(
+ FROM_HERE_WITH_EXPLICIT_FUNCTION(
+ "422489 URLRequestSimpleJob::StartAsync 3"));
+
OnGetDataCompleted(result);
+ }
}
void URLRequestSimpleJob::OnGetDataCompleted(int result) {
diff --git a/net/url_request/url_request_simple_job.h b/net/url_request/url_request_simple_job.h
index 633a2e7..01bd319 100644
--- a/net/url_request/url_request_simple_job.h
+++ b/net/url_request/url_request_simple_job.h
@@ -20,12 +20,12 @@
public:
URLRequestSimpleJob(URLRequest* request, NetworkDelegate* network_delegate);
- virtual void Start() OVERRIDE;
+ virtual void Start() override;
virtual bool ReadRawData(IOBuffer* buf,
int buf_size,
- int *bytes_read) OVERRIDE;
- virtual bool GetMimeType(std::string* mime_type) const OVERRIDE;
- virtual bool GetCharset(std::string* charset) OVERRIDE;
+ int *bytes_read) override;
+ virtual bool GetMimeType(std::string* mime_type) const override;
+ virtual bool GetCharset(std::string* charset) override;
protected:
virtual ~URLRequestSimpleJob();
diff --git a/net/url_request/url_request_simple_job_unittest.cc b/net/url_request/url_request_simple_job_unittest.cc
index 512833f..b75da80 100644
--- a/net/url_request/url_request_simple_job_unittest.cc
+++ b/net/url_request/url_request_simple_job_unittest.cc
@@ -35,7 +35,7 @@
virtual int GetData(std::string* mime_type,
std::string* charset,
std::string* data,
- const CompletionCallback& callback) const OVERRIDE {
+ const CompletionCallback& callback) const override {
mime_type->assign("text/plain");
charset->assign("US-ASCII");
data->assign(kTestData);
@@ -55,7 +55,7 @@
public:
virtual URLRequestJob* MaybeCreateJob(
URLRequest* request,
- NetworkDelegate* network_delegate) const OVERRIDE {
+ NetworkDelegate* network_delegate) const override {
return new MockSimpleJob(request, network_delegate);
}
};
diff --git a/net/url_request/url_request_test_job.cc b/net/url_request/url_request_test_job.cc
index 422e080..3806e25 100644
--- a/net/url_request/url_request_test_job.cc
+++ b/net/url_request/url_request_test_job.cc
@@ -28,7 +28,7 @@
public:
// URLRequestJobFactory::ProtocolHandler implementation:
virtual URLRequestJob* MaybeCreateJob(
- URLRequest* request, NetworkDelegate* network_delegate) const OVERRIDE {
+ URLRequest* request, NetworkDelegate* network_delegate) const override {
return new URLRequestTestJob(request, network_delegate);
}
};
diff --git a/net/url_request/url_request_test_job.h b/net/url_request/url_request_test_job.h
index 1a85fb0..f0f26fd 100644
--- a/net/url_request/url_request_test_job.h
+++ b/net/url_request/url_request_test_job.h
@@ -108,19 +108,19 @@
static URLRequestJobFactory::ProtocolHandler* CreateProtocolHandler();
// Job functions
- virtual void SetPriority(RequestPriority priority) OVERRIDE;
- virtual void Start() OVERRIDE;
+ virtual void SetPriority(RequestPriority priority) override;
+ virtual void Start() override;
virtual bool ReadRawData(IOBuffer* buf,
int buf_size,
- int *bytes_read) OVERRIDE;
- virtual void Kill() OVERRIDE;
- virtual bool GetMimeType(std::string* mime_type) const OVERRIDE;
- virtual void GetResponseInfo(HttpResponseInfo* info) OVERRIDE;
+ int *bytes_read) override;
+ virtual void Kill() override;
+ virtual bool GetMimeType(std::string* mime_type) const override;
+ virtual void GetResponseInfo(HttpResponseInfo* info) override;
virtual void GetLoadTimingInfo(
- LoadTimingInfo* load_timing_info) const OVERRIDE;
- virtual int GetResponseCode() const OVERRIDE;
+ LoadTimingInfo* load_timing_info) const override;
+ virtual int GetResponseCode() const override;
virtual bool IsRedirectResponse(GURL* location,
- int* http_status_code) OVERRIDE;
+ int* http_status_code) override;
protected:
// Override to specify whether the next read done from this job will
diff --git a/net/url_request/url_request_test_util.h b/net/url_request/url_request_test_util.h
index cad472e..d301154 100644
--- a/net/url_request/url_request_test_util.h
+++ b/net/url_request/url_request_test_util.h
@@ -108,9 +108,9 @@
scoped_ptr<TestURLRequestContext> context);
// URLRequestContextGetter implementation.
- virtual TestURLRequestContext* GetURLRequestContext() OVERRIDE;
+ virtual TestURLRequestContext* GetURLRequestContext() override;
virtual scoped_refptr<base::SingleThreadTaskRunner>
- GetNetworkTaskRunner() const OVERRIDE;
+ GetNetworkTaskRunner() const override;
protected:
virtual ~TestURLRequestContextGetter();
@@ -171,19 +171,19 @@
// URLRequest::Delegate:
virtual void OnReceivedRedirect(URLRequest* request,
const RedirectInfo& redirect_info,
- bool* defer_redirect) OVERRIDE;
- virtual void OnBeforeNetworkStart(URLRequest* request, bool* defer) OVERRIDE;
+ bool* defer_redirect) override;
+ virtual void OnBeforeNetworkStart(URLRequest* request, bool* defer) override;
virtual void OnAuthRequired(URLRequest* request,
- AuthChallengeInfo* auth_info) OVERRIDE;
+ AuthChallengeInfo* auth_info) override;
// NOTE: |fatal| causes |certificate_errors_are_fatal_| to be set to true.
// (Unit tests use this as a post-condition.) But for policy, this method
// consults |allow_certificate_errors_|.
virtual void OnSSLCertificateError(URLRequest* request,
const SSLInfo& ssl_info,
- bool fatal) OVERRIDE;
- virtual void OnResponseStarted(URLRequest* request) OVERRIDE;
+ bool fatal) override;
+ virtual void OnResponseStarted(URLRequest* request) override;
virtual void OnReadCompleted(URLRequest* request,
- int bytes_read) OVERRIDE;
+ int bytes_read) override;
private:
static const int kBufferSize = 4096;
@@ -286,52 +286,52 @@
// NetworkDelegate:
virtual int OnBeforeURLRequest(URLRequest* request,
const CompletionCallback& callback,
- GURL* new_url) OVERRIDE;
+ GURL* new_url) override;
virtual int OnBeforeSendHeaders(URLRequest* request,
const CompletionCallback& callback,
- HttpRequestHeaders* headers) OVERRIDE;
+ HttpRequestHeaders* headers) override;
virtual void OnBeforeSendProxyHeaders(
net::URLRequest* request,
const net::ProxyInfo& proxy_info,
- net::HttpRequestHeaders* headers) OVERRIDE;
+ net::HttpRequestHeaders* headers) override;
virtual void OnSendHeaders(URLRequest* request,
- const HttpRequestHeaders& headers) OVERRIDE;
+ const HttpRequestHeaders& headers) override;
virtual int OnHeadersReceived(
URLRequest* request,
const CompletionCallback& callback,
const HttpResponseHeaders* original_response_headers,
scoped_refptr<HttpResponseHeaders>* override_response_headers,
- GURL* allowed_unsafe_redirect_url) OVERRIDE;
+ GURL* allowed_unsafe_redirect_url) override;
virtual void OnBeforeRedirect(URLRequest* request,
- const GURL& new_location) OVERRIDE;
- virtual void OnResponseStarted(URLRequest* request) OVERRIDE;
+ const GURL& new_location) override;
+ virtual void OnResponseStarted(URLRequest* request) override;
virtual void OnRawBytesRead(const URLRequest& request,
- int bytes_read) OVERRIDE;
- virtual void OnCompleted(URLRequest* request, bool started) OVERRIDE;
- virtual void OnURLRequestDestroyed(URLRequest* request) OVERRIDE;
+ int bytes_read) override;
+ virtual void OnCompleted(URLRequest* request, bool started) override;
+ virtual void OnURLRequestDestroyed(URLRequest* request) override;
virtual void OnPACScriptError(int line_number,
- const base::string16& error) OVERRIDE;
+ const base::string16& error) override;
virtual NetworkDelegate::AuthRequiredResponse OnAuthRequired(
URLRequest* request,
const AuthChallengeInfo& auth_info,
const AuthCallback& callback,
- AuthCredentials* credentials) OVERRIDE;
+ AuthCredentials* credentials) override;
virtual bool OnCanGetCookies(const URLRequest& request,
- const CookieList& cookie_list) OVERRIDE;
+ const CookieList& cookie_list) override;
virtual bool OnCanSetCookie(const URLRequest& request,
const std::string& cookie_line,
- CookieOptions* options) OVERRIDE;
+ CookieOptions* options) override;
virtual bool OnCanAccessFile(const URLRequest& request,
- const base::FilePath& path) const OVERRIDE;
+ const base::FilePath& path) const override;
virtual bool OnCanThrottleRequest(
- const URLRequest& request) const OVERRIDE;
+ const URLRequest& request) const override;
virtual int OnBeforeSocketStreamConnect(
SocketStream* stream,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual bool OnCancelURLRequestWithPolicyViolatingReferrerHeader(
const URLRequest& request,
const GURL& target_url,
- const GURL& referrer_url) const OVERRIDE;
+ const GURL& referrer_url) const override;
void InitRequestStatesIfNew(int request_id);
@@ -408,7 +408,7 @@
virtual URLRequestJob* MaybeCreateJob(
URLRequest* request,
- NetworkDelegate* network_delegate) const OVERRIDE;
+ NetworkDelegate* network_delegate) const override;
void set_main_intercept_job(URLRequestJob* job);
private:
diff --git a/net/url_request/url_request_throttler_entry.cc b/net/url_request/url_request_throttler_entry.cc
index 5d0c43a..b812de8 100644
--- a/net/url_request/url_request_throttler_entry.cc
+++ b/net/url_request/url_request_throttler_entry.cc
@@ -54,12 +54,13 @@
// Returns NetLog parameters when a request is rejected by throttling.
base::Value* NetLogRejectedRequestCallback(const std::string* url_id,
int num_failures,
- int release_after_ms,
+ const base::TimeDelta& release_after,
NetLog::LogLevel /* log_level */) {
base::DictionaryValue* dict = new base::DictionaryValue();
dict->SetString("url", *url_id);
dict->SetInteger("num_failures", num_failures);
- dict->SetInteger("release_after_ms", release_after_ms);
+ dict->SetInteger("release_after_ms",
+ static_cast<int>(release_after.InMilliseconds()));
return dict;
}
@@ -156,15 +157,12 @@
if (!is_backoff_disabled_ && !ExplicitUserRequest(request.load_flags()) &&
(!network_delegate || network_delegate->CanThrottleRequest(request)) &&
GetBackoffEntry()->ShouldRejectRequest()) {
- int num_failures = GetBackoffEntry()->failure_count();
- int release_after_ms =
- GetBackoffEntry()->GetTimeUntilRelease().InMilliseconds();
-
net_log_.AddEvent(
NetLog::TYPE_THROTTLING_REJECTED_REQUEST,
base::Bind(&NetLogRejectedRequestCallback,
- &url_id_, num_failures, release_after_ms));
-
+ &url_id_,
+ GetBackoffEntry()->failure_count(),
+ GetBackoffEntry()->GetTimeUntilRelease()));
reject_request = true;
}
diff --git a/net/url_request/url_request_throttler_entry.h b/net/url_request/url_request_throttler_entry.h
index a7a0524..489eecb 100644
--- a/net/url_request/url_request_throttler_entry.h
+++ b/net/url_request/url_request_throttler_entry.h
@@ -95,14 +95,14 @@
// Implementation of URLRequestThrottlerEntryInterface.
virtual bool ShouldRejectRequest(
const URLRequest& request,
- NetworkDelegate* network_delegate) const OVERRIDE;
+ NetworkDelegate* network_delegate) const override;
virtual int64 ReserveSendingTimeForNextRequest(
- const base::TimeTicks& earliest_time) OVERRIDE;
- virtual base::TimeTicks GetExponentialBackoffReleaseTime() const OVERRIDE;
+ const base::TimeTicks& earliest_time) override;
+ virtual base::TimeTicks GetExponentialBackoffReleaseTime() const override;
virtual void UpdateWithResponse(
const std::string& host,
- const URLRequestThrottlerHeaderInterface* response) OVERRIDE;
- virtual void ReceivedContentWasMalformed(int response_code) OVERRIDE;
+ const URLRequestThrottlerHeaderInterface* response) override;
+ virtual void ReceivedContentWasMalformed(int response_code) override;
protected:
virtual ~URLRequestThrottlerEntry();
diff --git a/net/url_request/url_request_throttler_header_adapter.h b/net/url_request/url_request_throttler_header_adapter.h
index 17a13a1..ddf7865 100644
--- a/net/url_request/url_request_throttler_header_adapter.h
+++ b/net/url_request/url_request_throttler_header_adapter.h
@@ -23,8 +23,8 @@
virtual ~URLRequestThrottlerHeaderAdapter();
// Implementation of URLRequestThrottlerHeaderInterface
- virtual std::string GetNormalizedValue(const std::string& key) const OVERRIDE;
- virtual int GetResponseCode() const OVERRIDE;
+ virtual std::string GetNormalizedValue(const std::string& key) const override;
+ virtual int GetResponseCode() const override;
private:
const scoped_refptr<HttpResponseHeaders> response_header_;
diff --git a/net/url_request/url_request_throttler_manager.h b/net/url_request/url_request_throttler_manager.h
index 31d28ef..10c6561 100644
--- a/net/url_request/url_request_throttler_manager.h
+++ b/net/url_request/url_request_throttler_manager.h
@@ -78,11 +78,11 @@
NetLog* net_log() const;
// IPAddressObserver interface.
- virtual void OnIPAddressChanged() OVERRIDE;
+ virtual void OnIPAddressChanged() override;
// ConnectionTypeObserver interface.
virtual void OnConnectionTypeChanged(
- NetworkChangeNotifier::ConnectionType type) OVERRIDE;
+ NetworkChangeNotifier::ConnectionType type) override;
// Method that allows us to transform a URL into an ID that can be used in our
// map. Resulting IDs will be lowercase and consist of the scheme, host, port
diff --git a/net/url_request/url_request_throttler_simulation_unittest.cc b/net/url_request/url_request_throttler_simulation_unittest.cc
index d806376..2f3abbf 100644
--- a/net/url_request/url_request_throttler_simulation_unittest.cc
+++ b/net/url_request/url_request_throttler_simulation_unittest.cc
@@ -135,11 +135,11 @@
end_downtime_ = start_time + duration;
}
- virtual void AdvanceTime(const TimeTicks& absolute_time) OVERRIDE {
+ virtual void AdvanceTime(const TimeTicks& absolute_time) override {
now_ = absolute_time;
}
- virtual void PerformAction() OVERRIDE {
+ virtual void PerformAction() override {
// We are inserted at the end of the actor's list, so all Requester
// instances have already done their bit.
if (num_current_tick_queries_ > max_experienced_queries_per_tick_)
@@ -306,15 +306,15 @@
: URLRequestThrottlerEntry(manager, std::string()),
mock_backoff_entry_(&backoff_policy_) {}
- virtual const BackoffEntry* GetBackoffEntry() const OVERRIDE {
+ virtual const BackoffEntry* GetBackoffEntry() const override {
return &mock_backoff_entry_;
}
- virtual BackoffEntry* GetBackoffEntry() OVERRIDE {
+ virtual BackoffEntry* GetBackoffEntry() override {
return &mock_backoff_entry_;
}
- virtual TimeTicks ImplGetTimeNow() const OVERRIDE {
+ virtual TimeTicks ImplGetTimeNow() const override {
return fake_now_;
}
@@ -414,14 +414,14 @@
DCHECK(server_);
}
- virtual void AdvanceTime(const TimeTicks& absolute_time) OVERRIDE {
+ virtual void AdvanceTime(const TimeTicks& absolute_time) override {
if (time_of_last_success_.is_null())
time_of_last_success_ = absolute_time;
throttler_entry_->SetFakeNow(absolute_time);
}
- virtual void PerformAction() OVERRIDE {
+ virtual void PerformAction() override {
TimeDelta effective_delay = time_between_requests_;
TimeDelta current_jitter = TimeDelta::FromMilliseconds(
request_jitter_.InMilliseconds() * base::RandDouble());
diff --git a/net/url_request/url_request_throttler_test_support.h b/net/url_request/url_request_throttler_test_support.h
index fc28068..60a63b2 100644
--- a/net/url_request/url_request_throttler_test_support.h
+++ b/net/url_request/url_request_throttler_test_support.h
@@ -19,7 +19,7 @@
virtual ~MockBackoffEntry();
// BackoffEntry overrides.
- virtual base::TimeTicks ImplGetTimeNow() const OVERRIDE;
+ virtual base::TimeTicks ImplGetTimeNow() const override;
void set_fake_now(const base::TimeTicks& now);
@@ -45,8 +45,8 @@
virtual ~MockURLRequestThrottlerHeaderAdapter();
// URLRequestThrottlerHeaderInterface overrides.
- virtual std::string GetNormalizedValue(const std::string& key) const OVERRIDE;
- virtual int GetResponseCode() const OVERRIDE;
+ virtual std::string GetNormalizedValue(const std::string& key) const override;
+ virtual int GetResponseCode() const override;
private:
std::string fake_retry_value_;
diff --git a/net/url_request/url_request_throttler_unittest.cc b/net/url_request/url_request_throttler_unittest.cc
index a3fb410..4188b77 100644
--- a/net/url_request/url_request_throttler_unittest.cc
+++ b/net/url_request/url_request_throttler_unittest.cc
@@ -63,11 +63,11 @@
backoff_policy_.num_errors_to_ignore = 0;
}
- virtual const BackoffEntry* GetBackoffEntry() const OVERRIDE {
+ virtual const BackoffEntry* GetBackoffEntry() const override {
return &mock_backoff_entry_;
}
- virtual BackoffEntry* GetBackoffEntry() OVERRIDE {
+ virtual BackoffEntry* GetBackoffEntry() override {
return &mock_backoff_entry_;
}
@@ -85,7 +85,7 @@
}
// Overridden for tests.
- virtual TimeTicks ImplGetTimeNow() const OVERRIDE { return fake_time_now_; }
+ virtual TimeTicks ImplGetTimeNow() const override { return fake_time_now_; }
void set_exponential_backoff_release_time(
const base::TimeTicks& release_time) {
diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc
index dbf858d..0f64a7c 100644
--- a/net/url_request/url_request_unittest.cc
+++ b/net/url_request/url_request_unittest.cc
@@ -31,6 +31,8 @@
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
#include "net/base/capturing_net_log.h"
+#include "net/base/chunked_upload_data_stream.h"
+#include "net/base/elements_upload_data_stream.h"
#include "net/base/load_flags.h"
#include "net/base/load_timing_info.h"
#include "net/base/load_timing_info_test_util.h"
@@ -242,10 +244,10 @@
return it != haystack.end();
}
-UploadDataStream* CreateSimpleUploadData(const char* data) {
+scoped_ptr<UploadDataStream> CreateSimpleUploadData(const char* data) {
scoped_ptr<UploadElementReader> reader(
new UploadBytesElementReader(data, strlen(data)));
- return UploadDataStream::CreateWithReader(reader.Pass(), 0);
+ return ElementsUploadDataStream::CreateWithReader(reader.Pass(), 0);
}
// Verify that the SSLInfo of a successful SSL connection has valid values.
@@ -367,24 +369,24 @@
// TestNetworkDelegate implementation.
virtual int OnBeforeURLRequest(URLRequest* request,
const CompletionCallback& callback,
- GURL* new_url) OVERRIDE;
+ GURL* new_url) override;
virtual int OnBeforeSendHeaders(URLRequest* request,
const CompletionCallback& callback,
- HttpRequestHeaders* headers) OVERRIDE;
+ HttpRequestHeaders* headers) override;
virtual int OnHeadersReceived(
URLRequest* request,
const CompletionCallback& callback,
const HttpResponseHeaders* original_response_headers,
scoped_refptr<HttpResponseHeaders>* override_response_headers,
- GURL* allowed_unsafe_redirect_url) OVERRIDE;
+ GURL* allowed_unsafe_redirect_url) override;
virtual NetworkDelegate::AuthRequiredResponse OnAuthRequired(
URLRequest* request,
const AuthChallengeInfo& auth_info,
const AuthCallback& callback,
- AuthCredentials* credentials) OVERRIDE;
+ AuthCredentials* credentials) override;
// Resets the callbacks and |stage_blocked_for_callback_|.
void Reset();
@@ -1103,7 +1105,7 @@
RestartTestJob(URLRequest* request, NetworkDelegate* network_delegate)
: URLRequestTestJob(request, network_delegate, true) {}
protected:
- virtual void StartAsync() OVERRIDE {
+ virtual void StartAsync() override {
this->NotifyRestartRequired();
}
private:
@@ -1115,7 +1117,7 @@
explicit CancelTestJob(URLRequest* request, NetworkDelegate* network_delegate)
: URLRequestTestJob(request, network_delegate, true) {}
protected:
- virtual void StartAsync() OVERRIDE {
+ virtual void StartAsync() override {
request_->Cancel();
}
private:
@@ -1129,7 +1131,7 @@
: URLRequestTestJob(request, network_delegate, true) {
}
protected:
- virtual void StartAsync() OVERRIDE {
+ virtual void StartAsync() override {
request_->Cancel();
this->NotifyRestartRequired();
}
@@ -1160,7 +1162,7 @@
virtual URLRequestJob* MaybeIntercept(
URLRequest* request,
- NetworkDelegate* network_delegate) OVERRIDE {
+ NetworkDelegate* network_delegate) override {
if (restart_main_request_) {
restart_main_request_ = false;
did_restart_main_ = true;
@@ -1198,7 +1200,7 @@
virtual URLRequestJob* MaybeInterceptRedirect(
URLRequest* request,
NetworkDelegate* network_delegate,
- const GURL& location) OVERRIDE {
+ const GURL& location) override {
if (cancel_redirect_request_) {
cancel_redirect_request_ = false;
did_cancel_redirect_ = true;
@@ -1216,7 +1218,7 @@
}
virtual URLRequestJob* MaybeInterceptResponse(
- URLRequest* request, NetworkDelegate* network_delegate) OVERRIDE {
+ URLRequest* request, NetworkDelegate* network_delegate) override {
if (cancel_final_request_) {
cancel_final_request_ = false;
did_cancel_final_ = true;
@@ -2402,7 +2404,7 @@
const CompletionCallback& callback,
const HttpResponseHeaders* original_response_headers,
scoped_refptr<HttpResponseHeaders>* override_response_headers,
- GURL* allowed_unsafe_redirect_url) OVERRIDE;
+ GURL* allowed_unsafe_redirect_url) override;
private:
std::string fixed_date_;
@@ -2556,7 +2558,7 @@
redirect_url, DEFAULT_PRIORITY, &d, NULL));
req->set_method(request_method);
if (include_data) {
- req->set_upload(make_scoped_ptr(CreateSimpleUploadData(kData)));
+ req->set_upload(CreateSimpleUploadData(kData));
HttpRequestHeaders headers;
headers.SetHeader(HttpRequestHeaders::kContentLength,
base::UintToString(arraysize(kData) - 1));
@@ -2602,7 +2604,7 @@
test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d, NULL));
r->set_method(method.c_str());
- r->set_upload(make_scoped_ptr(CreateSimpleUploadData(uploadBytes)));
+ r->set_upload(CreateSimpleUploadData(uploadBytes));
r->Start();
EXPECT_TRUE(r->is_pending());
@@ -3015,7 +3017,7 @@
scoped_ptr<URLRequest> r(context.CreateRequest(
original_url, DEFAULT_PRIORITY, &d, NULL));
r->set_method("POST");
- r->set_upload(make_scoped_ptr(CreateSimpleUploadData(kData)));
+ r->set_upload(CreateSimpleUploadData(kData));
HttpRequestHeaders headers;
headers.SetHeader(HttpRequestHeaders::kContentLength,
base::UintToString(arraysize(kData) - 1));
@@ -3994,14 +3996,14 @@
// NetworkDelegate implementation.
virtual int OnBeforeURLRequest(URLRequest* request,
const CompletionCallback& callback,
- GURL* new_url) OVERRIDE {
+ GURL* new_url) override {
TestNetworkDelegate::OnBeforeURLRequest(request, callback, new_url);
return RunCallbackAsynchronously(request, callback);
}
virtual int OnBeforeSendHeaders(URLRequest* request,
const CompletionCallback& callback,
- HttpRequestHeaders* headers) OVERRIDE {
+ HttpRequestHeaders* headers) override {
TestNetworkDelegate::OnBeforeSendHeaders(request, callback, headers);
return RunCallbackAsynchronously(request, callback);
}
@@ -4011,7 +4013,7 @@
const CompletionCallback& callback,
const HttpResponseHeaders* original_response_headers,
scoped_refptr<HttpResponseHeaders>* override_response_headers,
- GURL* allowed_unsafe_redirect_url) OVERRIDE {
+ GURL* allowed_unsafe_redirect_url) override {
TestNetworkDelegate::OnHeadersReceived(request,
callback,
original_response_headers,
@@ -4024,7 +4026,7 @@
URLRequest* request,
const AuthChallengeInfo& auth_info,
const AuthCallback& callback,
- AuthCredentials* credentials) OVERRIDE {
+ AuthCredentials* credentials) override {
AsyncDelegateLogger::Run(
request,
LOAD_STATE_WAITING_FOR_DELEGATE,
@@ -4086,7 +4088,7 @@
// URLRequest::Delegate implementation:
void virtual OnReceivedRedirect(URLRequest* request,
const RedirectInfo& redirect_info,
- bool* defer_redirect) OVERRIDE {
+ bool* defer_redirect) override {
*defer_redirect = true;
AsyncDelegateLogger::Run(
request,
@@ -4098,7 +4100,7 @@
base::Unretained(this), request, redirect_info));
}
- virtual void OnResponseStarted(URLRequest* request) OVERRIDE {
+ virtual void OnResponseStarted(URLRequest* request) override {
AsyncDelegateLogger::Run(
request,
LOAD_STATE_WAITING_FOR_DELEGATE,
@@ -4110,7 +4112,7 @@
}
virtual void OnReadCompleted(URLRequest* request,
- int bytes_read) OVERRIDE {
+ int bytes_read) override {
AsyncDelegateLogger::Run(
request,
LOAD_STATE_IDLE,
@@ -4578,7 +4580,7 @@
class RedirectWithAdditionalHeadersDelegate : public TestDelegate {
virtual void OnReceivedRedirect(URLRequest* request,
const RedirectInfo& redirect_info,
- bool* defer_redirect) OVERRIDE {
+ bool* defer_redirect) override {
TestDelegate::OnReceivedRedirect(request, redirect_info, defer_redirect);
request->SetExtraRequestHeaderByName(kExtraHeader, kExtraValue, false);
}
@@ -4615,7 +4617,7 @@
class RedirectWithHeaderRemovalDelegate : public TestDelegate {
virtual void OnReceivedRedirect(URLRequest* request,
const RedirectInfo& redirect_info,
- bool* defer_redirect) OVERRIDE {
+ bool* defer_redirect) override {
TestDelegate::OnReceivedRedirect(request, redirect_info, defer_redirect);
request->RemoveRequestHeaderByName(kExtraHeaderToRemove);
}
@@ -4828,8 +4830,8 @@
0,
kuint64max,
base::Time()));
- r->set_upload(make_scoped_ptr(
- new UploadDataStream(element_readers.Pass(), 0)));
+ r->set_upload(make_scoped_ptr<UploadDataStream>(
+ new ElementsUploadDataStream(element_readers.Pass(), 0)));
r->Start();
EXPECT_TRUE(r->is_pending());
@@ -4871,8 +4873,8 @@
0,
kuint64max,
base::Time()));
- r->set_upload(make_scoped_ptr(
- new UploadDataStream(element_readers.Pass(), 0)));
+ r->set_upload(make_scoped_ptr<UploadDataStream>(
+ new ElementsUploadDataStream(element_readers.Pass(), 0)));
r->Start();
EXPECT_TRUE(r->is_pending());
@@ -5949,7 +5951,7 @@
test_server_.GetURL("files/redirect-to-echoall"), DEFAULT_PRIORITY, &d,
NULL));
req->set_method("POST");
- req->set_upload(make_scoped_ptr(CreateSimpleUploadData(kData)));
+ req->set_upload(CreateSimpleUploadData(kData));
// Set headers (some of which are specific to the POST).
HttpRequestHeaders headers;
@@ -6136,7 +6138,7 @@
scoped_ptr<URLRequest> req(default_context_.CreateRequest(
test_server_.GetURL("empty.html"), DEFAULT_PRIORITY, &d, NULL));
req->set_method("POST");
- req->set_upload(make_scoped_ptr(CreateSimpleUploadData(kData)));
+ req->set_upload(CreateSimpleUploadData(kData));
HttpRequestHeaders headers;
headers.SetHeader(HttpRequestHeaders::kContentLength,
base::UintToString(arraysize(kData) - 1));
@@ -6161,7 +6163,7 @@
scoped_ptr<URLRequest> req(default_context_.CreateRequest(
test_server_.GetURL("empty.html"), DEFAULT_PRIORITY, &d, NULL));
req->set_method("POST");
- req->set_upload(make_scoped_ptr(CreateSimpleUploadData(kData)));
+ req->set_upload(CreateSimpleUploadData(kData));
HttpRequestHeaders headers;
headers.SetHeader(HttpRequestHeaders::kContentLength,
base::UintToString(arraysize(kData) - 1));
@@ -6720,7 +6722,7 @@
test_server.host_port_pair().port())),
DEFAULT_PRIORITY, &d, NULL));
req->set_method("POST");
- req->set_upload(make_scoped_ptr(CreateSimpleUploadData(kData)));
+ req->set_upload(CreateSimpleUploadData(kData));
req->Start();
base::RunLoop().Run();
@@ -6811,7 +6813,7 @@
}
virtual void OnCertificateRequested(
URLRequest* request,
- SSLCertRequestInfo* cert_request_info) OVERRIDE {
+ SSLCertRequestInfo* cert_request_info) override {
on_certificate_requested_count_++;
base::MessageLoop::current()->Quit();
}
@@ -6934,6 +6936,28 @@
}
}
+// AssertTwoDistinctSessionsInserted checks that |session_info|, which must be
+// the result of fetching "ssl-session-cache" from the test server, indicates
+// that exactly two different sessions were inserted, with no lookups etc.
+static void AssertTwoDistinctSessionsInserted(const string& session_info) {
+ std::vector<std::string> lines;
+ base::SplitString(session_info, '\n', &lines);
+ ASSERT_EQ(3u, lines.size()) << session_info;
+
+ std::string session_id;
+ for (size_t i = 0; i < 2; i++) {
+ std::vector<std::string> parts;
+ base::SplitString(lines[i], '\t', &parts);
+ ASSERT_EQ(2u, parts.size());
+ EXPECT_EQ("insert", parts[0]);
+ if (i == 0) {
+ session_id = parts[1];
+ } else {
+ EXPECT_NE(session_id, parts[1]);
+ }
+ }
+}
+
TEST_F(HTTPSRequestTest, SSLSessionCacheShardTest) {
// Test that sessions aren't resumed when the value of ssl_session_cache_shard
// differs.
@@ -6997,22 +7021,7 @@
// three lines.
EXPECT_EQ(1, d.response_started_count());
- std::vector<std::string> lines;
- base::SplitString(d.data_received(), '\n', &lines);
- ASSERT_EQ(3u, lines.size());
-
- std::string session_id;
- for (size_t i = 0; i < 2; i++) {
- std::vector<std::string> parts;
- base::SplitString(lines[i], '\t', &parts);
- ASSERT_EQ(2u, parts.size());
- EXPECT_EQ("insert", parts[0]);
- if (i == 0) {
- session_id = parts[1];
- } else {
- EXPECT_NE(session_id, parts[1]);
- }
- }
+ AssertTwoDistinctSessionsInserted(d.data_received());
}
}
@@ -7067,17 +7076,70 @@
#endif // OS_WIN
+class TestSSLConfigService : public SSLConfigService {
+ public:
+ TestSSLConfigService(bool ev_enabled,
+ bool online_rev_checking,
+ bool rev_checking_required_local_anchors)
+ : ev_enabled_(ev_enabled),
+ online_rev_checking_(online_rev_checking),
+ rev_checking_required_local_anchors_(
+ rev_checking_required_local_anchors),
+ fallback_min_version_(0) {}
+
+ void set_fallback_min_version(uint16 version) {
+ fallback_min_version_ = version;
+ }
+
+ // SSLConfigService:
+ virtual void GetSSLConfig(SSLConfig* config) override {
+ *config = SSLConfig();
+ config->rev_checking_enabled = online_rev_checking_;
+ config->verify_ev_cert = ev_enabled_;
+ config->rev_checking_required_local_anchors =
+ rev_checking_required_local_anchors_;
+ if (fallback_min_version_) {
+ config->version_fallback_min = fallback_min_version_;
+ }
+ }
+
+ protected:
+ virtual ~TestSSLConfigService() {}
+
+ private:
+ const bool ev_enabled_;
+ const bool online_rev_checking_;
+ const bool rev_checking_required_local_anchors_;
+ uint16 fallback_min_version_;
+};
+
+class FallbackTestURLRequestContext : public TestURLRequestContext {
+ public:
+ explicit FallbackTestURLRequestContext(bool delay_initialization)
+ : TestURLRequestContext(delay_initialization) {}
+
+ void set_fallback_min_version(uint16 version) {
+ TestSSLConfigService *ssl_config_service =
+ new TestSSLConfigService(true /* check for EV */,
+ false /* online revocation checking */,
+ false /* require rev. checking for local
+ anchors */);
+ ssl_config_service->set_fallback_min_version(version);
+ set_ssl_config_service(ssl_config_service);
+ }
+};
+
class HTTPSFallbackTest : public testing::Test {
public:
- HTTPSFallbackTest() : context_(true) {
- context_.Init();
- delegate_.set_allow_certificate_errors(true);
- }
+ HTTPSFallbackTest() : context_(true) {}
virtual ~HTTPSFallbackTest() {}
protected:
void DoFallbackTest(const SpawnedTestServer::SSLOptions& ssl_options) {
DCHECK(!request_);
+ context_.Init();
+ delegate_.set_allow_certificate_errors(true);
+
SpawnedTestServer test_server(
SpawnedTestServer::TYPE_HTTPS,
ssl_options,
@@ -7091,6 +7153,10 @@
base::RunLoop().Run();
}
+ void set_fallback_min_version(uint16 version) {
+ context_.set_fallback_min_version(version);
+ }
+
void ExpectConnection(int version) {
EXPECT_EQ(1, delegate_.response_started_count());
EXPECT_NE(0, delegate_.bytes_received());
@@ -7109,7 +7175,7 @@
private:
TestDelegate delegate_;
- TestURLRequestContext context_;
+ FallbackTestURLRequestContext context_;
scoped_ptr<URLRequest> request_;
};
@@ -7185,7 +7251,7 @@
ExpectFailure(ERR_CONNECTION_CLOSED);
}
-// Tests that the SSLv3 fallback triggers on alert.
+// Tests that the SSLv3 fallback doesn't happen by default.
TEST_F(HTTPSFallbackTest, SSLv3Fallback) {
SpawnedTestServer::SSLOptions ssl_options(
SpawnedTestServer::SSLOptions::CERT_OK);
@@ -7193,10 +7259,23 @@
SpawnedTestServer::SSLOptions::TLS_INTOLERANT_ALL;
ASSERT_NO_FATAL_FAILURE(DoFallbackTest(ssl_options));
+ ExpectFailure(ERR_SSL_FALLBACK_BEYOND_MINIMUM_VERSION);
+}
+
+// Tests that the SSLv3 fallback works when explicitly enabled.
+TEST_F(HTTPSFallbackTest, SSLv3FallbackEnabled) {
+ SpawnedTestServer::SSLOptions ssl_options(
+ SpawnedTestServer::SSLOptions::CERT_OK);
+ ssl_options.tls_intolerant =
+ SpawnedTestServer::SSLOptions::TLS_INTOLERANT_ALL;
+ set_fallback_min_version(SSL_PROTOCOL_VERSION_SSL3);
+
+ ASSERT_NO_FATAL_FAILURE(DoFallbackTest(ssl_options));
ExpectConnection(SSL_CONNECTION_VERSION_SSL3);
}
-// Tests that the SSLv3 fallback triggers on closed connections.
+// Tests that the SSLv3 fallback triggers on closed connections when explicitly
+// enabled.
TEST_F(HTTPSFallbackTest, SSLv3FallbackClosed) {
SpawnedTestServer::SSLOptions ssl_options(
SpawnedTestServer::SSLOptions::CERT_OK);
@@ -7204,11 +7283,81 @@
SpawnedTestServer::SSLOptions::TLS_INTOLERANT_ALL;
ssl_options.tls_intolerance_type =
SpawnedTestServer::SSLOptions::TLS_INTOLERANCE_CLOSE;
+ set_fallback_min_version(SSL_PROTOCOL_VERSION_SSL3);
ASSERT_NO_FATAL_FAILURE(DoFallbackTest(ssl_options));
ExpectConnection(SSL_CONNECTION_VERSION_SSL3);
}
+// Test that SSLv3 fallback probe connections don't cause sessions to be cached.
+TEST_F(HTTPSRequestTest, SSLv3FallbackNoCache) {
+ SpawnedTestServer::SSLOptions ssl_options(
+ SpawnedTestServer::SSLOptions::CERT_OK);
+ ssl_options.tls_intolerant =
+ SpawnedTestServer::SSLOptions::TLS_INTOLERANT_ALL;
+ ssl_options.tls_intolerance_type =
+ SpawnedTestServer::SSLOptions::TLS_INTOLERANCE_CLOSE;
+ ssl_options.record_resume = true;
+
+ SpawnedTestServer test_server(
+ SpawnedTestServer::TYPE_HTTPS,
+ ssl_options,
+ base::FilePath(FILE_PATH_LITERAL("net/data/ssl")));
+ ASSERT_TRUE(test_server.Start());
+
+ SSLClientSocket::ClearSessionCache();
+
+ // Make a connection that does a probe fallback to SSLv3 but fails because
+ // SSLv3 fallback is disabled. We don't wish a session for this connection to
+ // be inserted locally.
+ {
+ TestDelegate delegate;
+ FallbackTestURLRequestContext context(true);
+
+ context.Init();
+ scoped_ptr<URLRequest> request(context.CreateRequest(
+ test_server.GetURL(std::string()), DEFAULT_PRIORITY, &delegate, NULL));
+ request->Start();
+
+ base::RunLoop().Run();
+
+ EXPECT_EQ(1, delegate.response_started_count());
+ EXPECT_FALSE(request->status().is_success());
+ EXPECT_EQ(URLRequestStatus::FAILED, request->status().status());
+ EXPECT_EQ(ERR_SSL_FALLBACK_BEYOND_MINIMUM_VERSION,
+ request->status().error());
+ }
+
+ // Now allow SSLv3 connections and request the session cache log.
+ {
+ TestDelegate delegate;
+ FallbackTestURLRequestContext context(true);
+ context.set_fallback_min_version(SSL_PROTOCOL_VERSION_SSL3);
+
+ context.Init();
+ scoped_ptr<URLRequest> request(
+ context.CreateRequest(test_server.GetURL("ssl-session-cache"),
+ DEFAULT_PRIORITY,
+ &delegate,
+ NULL));
+ request->Start();
+
+ base::RunLoop().Run();
+
+ EXPECT_EQ(1, delegate.response_started_count());
+ EXPECT_NE(0, delegate.bytes_received());
+ EXPECT_EQ(SSL_CONNECTION_VERSION_SSL3, SSLConnectionStatusToVersion(
+ request->ssl_info().connection_status));
+ EXPECT_TRUE(request->ssl_info().connection_status &
+ SSL_CONNECTION_VERSION_FALLBACK);
+
+ std::vector<std::string> lines;
+ // If no sessions were cached then the server should have seen two sessions
+ // inserted with no lookups.
+ AssertTwoDistinctSessionsInserted(delegate.data_received());
+ }
+}
+
// This test is disabled on Android because the remote test server doesn't cause
// a TCP reset.
#if !defined(OS_ANDROID)
@@ -7301,53 +7450,10 @@
// insert xyz
EXPECT_EQ(1, d.response_started_count());
- std::vector<std::string> lines;
- base::SplitString(d.data_received(), '\n', &lines);
- ASSERT_EQ(3u, lines.size()) << d.data_received();
-
- std::string session_id;
- for (size_t i = 0; i < 2; i++) {
- std::vector<std::string> parts;
- base::SplitString(lines[i], '\t', &parts);
- ASSERT_EQ(2u, parts.size());
- EXPECT_EQ("insert", parts[0]);
- if (i == 0) {
- session_id = parts[1];
- } else {
- EXPECT_NE(session_id, parts[1]);
- }
- }
+ AssertTwoDistinctSessionsInserted(d.data_received());
}
}
-class TestSSLConfigService : public SSLConfigService {
- public:
- TestSSLConfigService(bool ev_enabled,
- bool online_rev_checking,
- bool rev_checking_required_local_anchors)
- : ev_enabled_(ev_enabled),
- online_rev_checking_(online_rev_checking),
- rev_checking_required_local_anchors_(
- rev_checking_required_local_anchors) {}
-
- // SSLConfigService:
- virtual void GetSSLConfig(SSLConfig* config) OVERRIDE {
- *config = SSLConfig();
- config->rev_checking_enabled = online_rev_checking_;
- config->verify_ev_cert = ev_enabled_;
- config->rev_checking_required_local_anchors =
- rev_checking_required_local_anchors_;
- }
-
- protected:
- virtual ~TestSSLConfigService() {}
-
- private:
- const bool ev_enabled_;
- const bool online_rev_checking_;
- const bool rev_checking_required_local_anchors_;
-};
-
// This the fingerprint of the "Testing CA" certificate used by the testserver.
// See net/data/ssl/certificates/ocsp-test-root.pem.
static const SHA1HashValue kOCSPTestCertFingerprint =
@@ -7377,7 +7483,7 @@
kOCSPTestCertPolicy)) {
}
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
SetupContext(&context_);
context_.Init();
@@ -7558,7 +7664,7 @@
class HTTPSHardFailTest : public HTTPSOCSPTest {
protected:
- virtual void SetupContext(URLRequestContext* context) OVERRIDE {
+ virtual void SetupContext(URLRequestContext* context) override {
context->set_ssl_config_service(
new TestSSLConfigService(false /* check for EV */,
false /* online revocation checking */,
@@ -7596,7 +7702,7 @@
class HTTPSEVCRLSetTest : public HTTPSOCSPTest {
protected:
- virtual void SetupContext(URLRequestContext* context) OVERRIDE {
+ virtual void SetupContext(URLRequestContext* context) override {
context->set_ssl_config_service(
new TestSSLConfigService(true /* check for EV */,
false /* online revocation checking */,
@@ -7781,7 +7887,7 @@
class HTTPSCRLSetTest : public HTTPSOCSPTest {
protected:
- virtual void SetupContext(URLRequestContext* context) OVERRIDE {
+ virtual void SetupContext(URLRequestContext* context) override {
context->set_ssl_config_service(
new TestSSLConfigService(false /* check for EV */,
false /* online revocation checking */,
diff --git a/net/websockets/websocket_basic_handshake_stream.h b/net/websockets/websocket_basic_handshake_stream.h
index 51f0c4d..cc8f5bf 100644
--- a/net/websockets/websocket_basic_handshake_stream.h
+++ b/net/websockets/websocket_basic_handshake_stream.h
@@ -42,35 +42,35 @@
virtual int InitializeStream(const HttpRequestInfo* request_info,
RequestPriority priority,
const BoundNetLog& net_log,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int SendRequest(const HttpRequestHeaders& request_headers,
HttpResponseInfo* response,
- const CompletionCallback& callback) OVERRIDE;
- virtual int ReadResponseHeaders(const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual int ReadResponseHeaders(const CompletionCallback& callback) override;
virtual int ReadResponseBody(IOBuffer* buf,
int buf_len,
- const CompletionCallback& callback) OVERRIDE;
- virtual void Close(bool not_reusable) OVERRIDE;
- virtual bool IsResponseBodyComplete() const OVERRIDE;
- virtual bool CanFindEndOfResponse() const OVERRIDE;
- virtual bool IsConnectionReused() const OVERRIDE;
- virtual void SetConnectionReused() OVERRIDE;
- virtual bool IsConnectionReusable() const OVERRIDE;
- virtual int64 GetTotalReceivedBytes() const OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual void Close(bool not_reusable) override;
+ virtual bool IsResponseBodyComplete() const override;
+ virtual bool CanFindEndOfResponse() const override;
+ virtual bool IsConnectionReused() const override;
+ virtual void SetConnectionReused() override;
+ virtual bool IsConnectionReusable() const override;
+ virtual int64 GetTotalReceivedBytes() const override;
virtual bool GetLoadTimingInfo(LoadTimingInfo* load_timing_info) const
- OVERRIDE;
- virtual void GetSSLInfo(SSLInfo* ssl_info) OVERRIDE;
+ override;
+ virtual void GetSSLInfo(SSLInfo* ssl_info) override;
virtual void GetSSLCertRequestInfo(
- SSLCertRequestInfo* cert_request_info) OVERRIDE;
- virtual bool IsSpdyHttpStream() const OVERRIDE;
- virtual void Drain(HttpNetworkSession* session) OVERRIDE;
- virtual void SetPriority(RequestPriority priority) OVERRIDE;
+ SSLCertRequestInfo* cert_request_info) override;
+ virtual bool IsSpdyHttpStream() const override;
+ virtual void Drain(HttpNetworkSession* session) override;
+ virtual void SetPriority(RequestPriority priority) override;
// This is called from the top level once correct handshake response headers
// have been received. It creates an appropriate subclass of WebSocketStream
// depending on what extensions were negotiated. This object is unusable after
// Upgrade() has been called and should be disposed of as soon as possible.
- virtual scoped_ptr<WebSocketStream> Upgrade() OVERRIDE;
+ virtual scoped_ptr<WebSocketStream> Upgrade() override;
// Set the value used for the next Sec-WebSocket-Key header
// deterministically. The key is only used once, and then discarded.
diff --git a/net/websockets/websocket_basic_stream.cc b/net/websockets/websocket_basic_stream.cc
index af2444d..2890a9e 100644
--- a/net/websockets/websocket_basic_stream.cc
+++ b/net/websockets/websocket_basic_stream.cc
@@ -47,22 +47,22 @@
// masked bit of the frames on.
int CalculateSerializedSizeAndTurnOnMaskBit(
ScopedVector<WebSocketFrame>* frames) {
- const int kMaximumTotalSize = std::numeric_limits<int>::max();
+ const uint64 kMaximumTotalSize = std::numeric_limits<int>::max();
- int total_size = 0;
+ uint64 total_size = 0;
for (WebSocketFrameIterator it = frames->begin(); it != frames->end(); ++it) {
WebSocketFrame* frame = *it;
// Force the masked bit on.
frame->header.masked = true;
// We enforce flow control so the renderer should never be able to force us
// to cache anywhere near 2GB of frames.
- int frame_size = frame->header.payload_length +
- GetWebSocketFrameHeaderSize(frame->header);
- CHECK_GE(kMaximumTotalSize - total_size, frame_size)
+ uint64 frame_size = frame->header.payload_length +
+ GetWebSocketFrameHeaderSize(frame->header);
+ CHECK_LE(frame_size, kMaximumTotalSize - total_size)
<< "Aborting to prevent overflow";
total_size += frame_size;
}
- return total_size;
+ return static_cast<int>(total_size);
}
} // namespace
@@ -157,9 +157,9 @@
dest += result;
remaining_size -= result;
- const int frame_size = frame->header.payload_length;
+ CHECK_LE(frame->header.payload_length, static_cast<uint64>(remaining_size));
+ const int frame_size = static_cast<int>(frame->header.payload_length);
if (frame_size > 0) {
- CHECK_GE(remaining_size, frame_size);
const char* const frame_data = frame->data->data();
std::copy(frame_data, frame_data + frame_size, dest);
MaskWebSocketFramePayload(mask, 0, dest, frame_size);
diff --git a/net/websockets/websocket_basic_stream.h b/net/websockets/websocket_basic_stream.h
index ccfebd8..ed2f195 100644
--- a/net/websockets/websocket_basic_stream.h
+++ b/net/websockets/websocket_basic_stream.h
@@ -44,16 +44,16 @@
// WebSocketStream implementation.
virtual int ReadFrames(ScopedVector<WebSocketFrame>* frames,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int WriteFrames(ScopedVector<WebSocketFrame>* frames,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
- virtual void Close() OVERRIDE;
+ virtual void Close() override;
- virtual std::string GetSubProtocol() const OVERRIDE;
+ virtual std::string GetSubProtocol() const override;
- virtual std::string GetExtensions() const OVERRIDE;
+ virtual std::string GetExtensions() const override;
////////////////////////////////////////////////////////////////////////////
// Methods for testing only.
diff --git a/net/websockets/websocket_basic_stream_test.cc b/net/websockets/websocket_basic_stream_test.cc
index c67583d..a658fcf 100644
--- a/net/websockets/websocket_basic_stream_test.cc
+++ b/net/websockets/websocket_basic_stream_test.cc
@@ -237,7 +237,7 @@
protected:
// All write tests use the same frame, so it is easiest to create it during
// test creation.
- virtual void SetUp() OVERRIDE { PrepareWriteFrame(); }
+ virtual void SetUp() override { PrepareWriteFrame(); }
// Creates a WebSocketFrame with a wire format matching kWriteFrame and adds
// it to |frames_|.
diff --git a/net/websockets/websocket_channel.cc b/net/websockets/websocket_channel.cc
index 8c264f1..9585dc2 100644
--- a/net/websockets/websocket_channel.cc
+++ b/net/websockets/websocket_channel.cc
@@ -85,9 +85,6 @@
return ((upper - kInvalidRanges) % 2) == 0;
}
-// This function avoids a bunch of boilerplate code.
-void AllowUnused(ChannelState ALLOW_UNUSED unused) {}
-
// Sets |name| to the name of the frame type for the given |opcode|. Note that
// for all of Text, Binary and Continuation opcode, this method returns
// "Data frame".
@@ -141,7 +138,7 @@
// The total size of the payload data in |frames_|. This will be used to
// measure the throughput of the link.
// TODO(ricea): Measure the throughput of the link.
- size_t total_bytes_;
+ uint64 total_bytes_;
};
void WebSocketChannel::SendBuffer::AddFrame(scoped_ptr<WebSocketFrame> frame) {
@@ -156,23 +153,23 @@
public:
explicit ConnectDelegate(WebSocketChannel* creator) : creator_(creator) {}
- virtual void OnSuccess(scoped_ptr<WebSocketStream> stream) OVERRIDE {
+ virtual void OnSuccess(scoped_ptr<WebSocketStream> stream) override {
creator_->OnConnectSuccess(stream.Pass());
// |this| may have been deleted.
}
- virtual void OnFailure(const std::string& message) OVERRIDE {
+ virtual void OnFailure(const std::string& message) override {
creator_->OnConnectFailure(message);
// |this| has been deleted.
}
virtual void OnStartOpeningHandshake(
- scoped_ptr<WebSocketHandshakeRequestInfo> request) OVERRIDE {
+ scoped_ptr<WebSocketHandshakeRequestInfo> request) override {
creator_->OnStartOpeningHandshake(request.Pass());
}
virtual void OnFinishOpeningHandshake(
- scoped_ptr<WebSocketHandshakeResponseInfo> response) OVERRIDE {
+ scoped_ptr<WebSocketHandshakeResponseInfo> response) override {
creator_->OnFinishOpeningHandshake(response.Pass());
}
@@ -180,7 +177,7 @@
scoped_ptr<WebSocketEventInterface::SSLErrorCallbacks>
ssl_error_callbacks,
const SSLInfo& ssl_info,
- bool fatal) OVERRIDE {
+ bool fatal) override {
creator_->OnSSLCertificateError(
ssl_error_callbacks.Pass(), ssl_info, fatal);
}
@@ -240,7 +237,7 @@
// Do nothing if |sender| is already destructed.
if (sender) {
WebSocketChannel* channel = sender->owner_;
- AllowUnused(sender->SendImmediately(channel->event_interface_.get()));
+ sender->SendImmediately(channel->event_interface_.get());
}
}
@@ -269,8 +266,8 @@
bool final,
WebSocketFrameHeader::OpCode opcode,
const scoped_refptr<IOBuffer>& data,
- size_t offset,
- size_t size)
+ uint64 offset,
+ uint64 size)
: final_(final),
opcode_(opcode),
data_(data),
@@ -284,7 +281,7 @@
opcode_ = WebSocketFrameHeader::kOpCodeContinuation;
}
-void WebSocketChannel::PendingReceivedFrame::DidConsume(size_t bytes) {
+void WebSocketChannel::PendingReceivedFrame::DidConsume(uint64 bytes) {
DCHECK_LE(offset_, size_);
DCHECK_LE(bytes, size_ - offset_);
offset_ += bytes;
@@ -374,7 +371,7 @@
}
if (data.size() > base::checked_cast<size_t>(current_send_quota_)) {
// TODO(ricea): Kill renderer.
- AllowUnused(
+ ignore_result(
FailChannel("Send quota exceeded", kWebSocketErrorGoingAway, ""));
// |this| has been deleted.
return;
@@ -393,7 +390,7 @@
if (state == StreamingUtf8Validator::INVALID ||
(state == StreamingUtf8Validator::VALID_MIDPOINT && fin)) {
// TODO(ricea): Kill renderer.
- AllowUnused(
+ ignore_result(
FailChannel("Browser sent a text frame containing invalid UTF-8",
kWebSocketErrorGoingAway,
""));
@@ -410,7 +407,7 @@
// server is not saturated.
scoped_refptr<IOBuffer> buffer(new IOBuffer(data.size()));
std::copy(data.begin(), data.end(), buffer->data());
- AllowUnused(SendFrameFromIOBuffer(fin, op_code, buffer, data.size()));
+ ignore_result(SendFrameFromIOBuffer(fin, op_code, buffer, data.size()));
// |this| may have been deleted.
}
@@ -422,13 +419,13 @@
DCHECK_GE(quota, 0);
DCHECK_LE(quota, INT_MAX);
if (!pending_received_frames_.empty()) {
- DCHECK_EQ(0, current_receive_quota_);
+ DCHECK_EQ(0u, current_receive_quota_);
}
while (!pending_received_frames_.empty() && quota > 0) {
PendingReceivedFrame& front = pending_received_frames_.front();
- const size_t data_size = front.size() - front.offset();
- const size_t bytes_to_send =
- std::min(base::checked_cast<size_t>(quota), data_size);
+ const uint64 data_size = front.size() - front.offset();
+ const uint64 bytes_to_send =
+ std::min(base::checked_cast<uint64>(quota), data_size);
const bool final = front.final() && data_size == bytes_to_send;
const char* data =
front.data().get() ? front.data()->data() + front.offset() : NULL;
@@ -445,9 +442,7 @@
front.ResetOpcode();
return;
}
- const int64 signed_bytes_to_send = base::checked_cast<int64>(bytes_to_send);
- DCHECK_GE(quota, signed_bytes_to_send);
- quota -= signed_bytes_to_send;
+ quota -= bytes_to_send;
pending_received_frames_.pop();
}
@@ -456,9 +451,9 @@
const bool start_read =
current_receive_quota_ == 0 && quota > 0 &&
(state_ == CONNECTED || state_ == SEND_CLOSED || state_ == CLOSE_WAIT);
- current_receive_quota_ += base::checked_cast<int>(quota);
+ current_receive_quota_ += quota;
if (start_read)
- AllowUnused(ReadFrames());
+ ignore_result(ReadFrames());
// |this| may have been deleted.
}
@@ -475,7 +470,7 @@
// Abort the in-progress handshake and drop the connection immediately.
stream_request_.reset();
SetState(CLOSED);
- AllowUnused(DoDropChannel(false, kWebSocketErrorAbnormalClosure, ""));
+ DoDropChannel(false, kWebSocketErrorAbnormalClosure, "");
return;
}
if (state_ != CONNECTED) {
@@ -529,7 +524,7 @@
if (!socket_url.SchemeIsWSOrWSS()) {
// TODO(ricea): Kill the renderer (this error should have been caught by
// Javascript).
- AllowUnused(event_interface_->OnAddChannelResponse(true, "", ""));
+ ignore_result(event_interface_->OnAddChannelResponse(true, "", ""));
// |this| is deleted here.
return;
}
@@ -568,7 +563,7 @@
// |stream_request_| is not used once the connection has succeeded.
stream_request_.reset();
- AllowUnused(ReadFrames());
+ ignore_result(ReadFrames());
// |this| may have been deleted.
}
@@ -586,7 +581,7 @@
// |this| has been deleted.
return;
}
- AllowUnused(event_interface_->OnFailChannel(message_copy));
+ ignore_result(event_interface_->OnFailChannel(message_copy));
// |this| has been deleted.
}
@@ -594,7 +589,7 @@
scoped_ptr<WebSocketEventInterface::SSLErrorCallbacks> ssl_error_callbacks,
const SSLInfo& ssl_info,
bool fatal) {
- AllowUnused(event_interface_->OnSSLCertificateError(
+ ignore_result(event_interface_->OnSSLCertificateError(
ssl_error_callbacks.Pass(), socket_url_, ssl_info, fatal));
}
@@ -793,7 +788,7 @@
const WebSocketFrameHeader::OpCode opcode,
bool final,
const scoped_refptr<IOBuffer>& data_buffer,
- size_t size) {
+ uint64 size) {
DCHECK_NE(RECV_CLOSED, state_)
<< "HandleFrame() does not support being called re-entrantly from within "
"SendClose()";
@@ -881,7 +876,7 @@
WebSocketFrameHeader::OpCode opcode,
bool final,
const scoped_refptr<IOBuffer>& data_buffer,
- size_t size) {
+ uint64 size) {
if (state_ != CONNECTED) {
DVLOG(3) << "Ignored data packet received in state " << state_;
return CHANNEL_ALIVE;
@@ -914,7 +909,7 @@
// This call is not redundant when size == 0 because it tells us what
// the current state is.
StreamingUtf8Validator::State state = incoming_utf8_validator_.AddBytes(
- size ? data_buffer->data() : NULL, size);
+ size ? data_buffer->data() : NULL, static_cast<size_t>(size));
if (state == StreamingUtf8Validator::INVALID ||
(state == StreamingUtf8Validator::VALID_MIDPOINT && final)) {
return FailChannel("Could not decode a text frame as UTF-8.",
@@ -928,8 +923,7 @@
return CHANNEL_ALIVE;
initial_frame_forwarded_ = !final;
- if (size > base::checked_cast<size_t>(current_receive_quota_) ||
- !pending_received_frames_.empty()) {
+ if (size > current_receive_quota_ || !pending_received_frames_.empty()) {
const bool no_quota = (current_receive_quota_ == 0);
DCHECK(no_quota || pending_received_frames_.empty());
DVLOG(3) << "Queueing frame to renderer due to quota. quota="
@@ -949,7 +943,6 @@
const char* const data_end = data_begin + size;
const std::vector<char> data(data_begin, data_end);
current_receive_quota_ -= size;
- DCHECK_GE(current_receive_quota_, 0);
// Sends the received frame to the renderer process.
return event_interface_->OnDataFrame(final, opcode_to_send, data);
@@ -959,7 +952,7 @@
bool fin,
WebSocketFrameHeader::OpCode op_code,
const scoped_refptr<IOBuffer>& buffer,
- size_t size) {
+ uint64 size) {
DCHECK(state_ == CONNECTED || state_ == RECV_CLOSED);
DCHECK(stream_);
@@ -1012,7 +1005,7 @@
DCHECK(state_ == CONNECTED || state_ == RECV_CLOSED);
DCHECK_LE(reason.size(), kMaximumCloseReasonLength);
scoped_refptr<IOBuffer> body;
- size_t size = 0;
+ uint64 size = 0;
if (code == kWebSocketErrorNoStatusReceived) {
// Special case: translate kWebSocketErrorNoStatusReceived into a Close
// frame with no payload.
@@ -1042,7 +1035,7 @@
}
bool WebSocketChannel::ParseClose(const scoped_refptr<IOBuffer>& buffer,
- size_t size,
+ uint64 size,
uint16* code,
std::string* reason,
std::string* message) {
@@ -1109,7 +1102,7 @@
void WebSocketChannel::CloseTimeout() {
stream_->Close();
SetState(CLOSED);
- AllowUnused(DoDropChannel(false, kWebSocketErrorAbnormalClosure, ""));
+ DoDropChannel(false, kWebSocketErrorAbnormalClosure, "");
// |this| has been deleted.
}
diff --git a/net/websockets/websocket_channel.h b/net/websockets/websocket_channel.h
index 6d5640e..a79ec4b 100644
--- a/net/websockets/websocket_channel.h
+++ b/net/websockets/websocket_channel.h
@@ -130,8 +130,8 @@
PendingReceivedFrame(bool final,
WebSocketFrameHeader::OpCode opcode,
const scoped_refptr<IOBuffer>& data,
- size_t offset,
- size_t size);
+ uint64 offset,
+ uint64 size);
~PendingReceivedFrame();
bool final() const { return final_; }
@@ -139,10 +139,10 @@
// ResetOpcode() to Continuation.
void ResetOpcode();
const scoped_refptr<IOBuffer>& data() const { return data_; }
- size_t offset() const { return offset_; }
- size_t size() const { return size_; }
+ uint64 offset() const { return offset_; }
+ uint64 size() const { return size_; }
// Increase |offset_| by |bytes|.
- void DidConsume(size_t bytes);
+ void DidConsume(uint64 bytes);
// This object needs to be copyable and assignable, since it will be placed
// in a std::queue. The compiler-generated copy constructor and assignment
@@ -154,9 +154,9 @@
scoped_refptr<IOBuffer> data_;
// Where to start reading from data_. Everything prior to offset_ has
// already been sent to the browser.
- size_t offset_;
+ uint64 offset_;
// The size of data_.
- size_t size_;
+ uint64 size_;
};
// Methods which return a value of type ChannelState may delete |this|. If the
@@ -259,7 +259,7 @@
const WebSocketFrameHeader::OpCode opcode,
bool final,
const scoped_refptr<IOBuffer>& data_buffer,
- size_t size) WARN_UNUSED_RESULT;
+ uint64 size) WARN_UNUSED_RESULT;
// Forward a received data frame to the renderer, if connected. If
// |expecting_continuation| is not equal to |expecting_to_read_continuation_|,
@@ -267,7 +267,7 @@
ChannelState HandleDataFrame(WebSocketFrameHeader::OpCode opcode,
bool final,
const scoped_refptr<IOBuffer>& data_buffer,
- size_t size) WARN_UNUSED_RESULT;
+ uint64 size) WARN_UNUSED_RESULT;
// Low-level method to send a single frame. Used for both data and control
// frames. Either sends the frame immediately or buffers it to be scheduled
@@ -277,7 +277,7 @@
ChannelState SendFrameFromIOBuffer(bool fin,
WebSocketFrameHeader::OpCode op_code,
const scoped_refptr<IOBuffer>& buffer,
- size_t size) WARN_UNUSED_RESULT;
+ uint64 size) WARN_UNUSED_RESULT;
// Performs the "Fail the WebSocket Connection" operation as defined in
// RFC6455. A NotifyFailure message is sent to the renderer with |message|.
@@ -306,7 +306,7 @@
// then false is returned and |message| is set to an appropriate console
// message.
bool ParseClose(const scoped_refptr<IOBuffer>& buffer,
- size_t size,
+ uint64 size,
uint16* code,
std::string* reason,
std::string* message);
@@ -368,7 +368,7 @@
int current_send_quota_;
// The remaining amount of quota that the renderer will allow us to send on
// this logical channel (quota units).
- int current_receive_quota_;
+ uint64 current_receive_quota_;
// Timer for the closing handshake.
base::OneShotTimer<WebSocketChannel> timer_;
diff --git a/net/websockets/websocket_channel_test.cc b/net/websockets/websocket_channel_test.cc
index 42c1ed6..6535741 100644
--- a/net/websockets/websocket_channel_test.cc
+++ b/net/websockets/websocket_channel_test.cc
@@ -163,12 +163,12 @@
// We can't use GMock with scoped_ptr.
ChannelState OnStartOpeningHandshake(
- scoped_ptr<WebSocketHandshakeRequestInfo>) OVERRIDE {
+ scoped_ptr<WebSocketHandshakeRequestInfo>) override {
OnStartOpeningHandshakeCalled();
return CHANNEL_ALIVE;
}
ChannelState OnFinishOpeningHandshake(
- scoped_ptr<WebSocketHandshakeResponseInfo>) OVERRIDE {
+ scoped_ptr<WebSocketHandshakeResponseInfo>) override {
OnFinishOpeningHandshakeCalled();
return CHANNEL_ALIVE;
}
@@ -176,7 +176,7 @@
scoped_ptr<SSLErrorCallbacks> ssl_error_callbacks,
const GURL& url,
const SSLInfo& ssl_info,
- bool fatal) OVERRIDE {
+ bool fatal) override {
OnSSLCertificateErrorCalled(
ssl_error_callbacks.get(), url, ssl_info, fatal);
return CHANNEL_ALIVE;
@@ -195,39 +195,39 @@
virtual ChannelState OnAddChannelResponse(
bool fail,
const std::string& selected_protocol,
- const std::string& extensions) OVERRIDE {
+ const std::string& extensions) override {
return fail ? CHANNEL_DELETED : CHANNEL_ALIVE;
}
virtual ChannelState OnDataFrame(bool fin,
WebSocketMessageType type,
- const std::vector<char>& data) OVERRIDE {
+ const std::vector<char>& data) override {
return CHANNEL_ALIVE;
}
- virtual ChannelState OnFlowControl(int64 quota) OVERRIDE {
+ virtual ChannelState OnFlowControl(int64 quota) override {
return CHANNEL_ALIVE;
}
- virtual ChannelState OnClosingHandshake() OVERRIDE { return CHANNEL_ALIVE; }
- virtual ChannelState OnFailChannel(const std::string& message) OVERRIDE {
+ virtual ChannelState OnClosingHandshake() override { return CHANNEL_ALIVE; }
+ virtual ChannelState OnFailChannel(const std::string& message) override {
return CHANNEL_DELETED;
}
virtual ChannelState OnDropChannel(bool was_clean,
uint16 code,
- const std::string& reason) OVERRIDE {
+ const std::string& reason) override {
return CHANNEL_DELETED;
}
virtual ChannelState OnStartOpeningHandshake(
- scoped_ptr<WebSocketHandshakeRequestInfo> request) OVERRIDE {
+ scoped_ptr<WebSocketHandshakeRequestInfo> request) override {
return CHANNEL_ALIVE;
}
virtual ChannelState OnFinishOpeningHandshake(
- scoped_ptr<WebSocketHandshakeResponseInfo> response) OVERRIDE {
+ scoped_ptr<WebSocketHandshakeResponseInfo> response) override {
return CHANNEL_ALIVE;
}
virtual ChannelState OnSSLCertificateError(
scoped_ptr<SSLErrorCallbacks> ssl_error_callbacks,
const GURL& url,
const SSLInfo& ssl_info,
- bool fatal) OVERRIDE {
+ bool fatal) override {
return CHANNEL_ALIVE;
}
};
@@ -246,22 +246,22 @@
: protocol_(protocol), extensions_(extensions) {}
virtual int ReadFrames(ScopedVector<WebSocketFrame>* frames,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return ERR_IO_PENDING;
}
virtual int WriteFrames(ScopedVector<WebSocketFrame>* frames,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return ERR_IO_PENDING;
}
- virtual void Close() OVERRIDE {}
+ virtual void Close() override {}
// Returns the string passed to the constructor.
- virtual std::string GetSubProtocol() const OVERRIDE { return protocol_; }
+ virtual std::string GetSubProtocol() const override { return protocol_; }
// Returns the string passed to the constructor.
- virtual std::string GetExtensions() const OVERRIDE { return extensions_; }
+ virtual std::string GetExtensions() const override { return extensions_; }
private:
// The string to return from GetSubProtocol().
@@ -493,7 +493,7 @@
}
virtual int ReadFrames(ScopedVector<WebSocketFrame>* frames,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
CHECK(!read_frames_pending_);
if (index_ >= responses_.size())
return ERR_IO_PENDING;
@@ -550,7 +550,7 @@
class WriteableFakeWebSocketStream : public FakeWebSocketStream {
public:
virtual int WriteFrames(ScopedVector<WebSocketFrame>* frames,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return OK;
}
};
@@ -559,7 +559,7 @@
class UnWriteableFakeWebSocketStream : public FakeWebSocketStream {
public:
virtual int WriteFrames(ScopedVector<WebSocketFrame>* frames,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
return ERR_CONNECTION_RESET;
}
};
@@ -575,7 +575,7 @@
EchoeyFakeWebSocketStream() : read_frames_(NULL), done_(false) {}
virtual int WriteFrames(ScopedVector<WebSocketFrame>* frames,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
// Users of WebSocketStream will not expect the ReadFrames() callback to be
// called from within WriteFrames(), so post it to the message loop instead.
stored_frames_.insert(stored_frames_.end(), frames->begin(), frames->end());
@@ -585,7 +585,7 @@
}
virtual int ReadFrames(ScopedVector<WebSocketFrame>* frames,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
read_callback_ = callback;
read_frames_ = frames;
if (done_)
@@ -648,7 +648,7 @@
ResetOnWriteFakeWebSocketStream() : closed_(false), weak_ptr_factory_(this) {}
virtual int WriteFrames(ScopedVector<WebSocketFrame>* frames,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
base::MessageLoop::current()->PostTask(
FROM_HERE,
base::Bind(&ResetOnWriteFakeWebSocketStream::CallCallbackUnlessClosed,
@@ -665,12 +665,12 @@
}
virtual int ReadFrames(ScopedVector<WebSocketFrame>* frames,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
read_callback_ = callback;
return ERR_IO_PENDING;
}
- virtual void Close() OVERRIDE { closed_ = true; }
+ virtual void Close() override { closed_ = true; }
private:
void CallCallbackUnlessClosed(const CompletionCallback& callback, int value) {
@@ -736,8 +736,8 @@
class FakeSSLErrorCallbacks
: public WebSocketEventInterface::SSLErrorCallbacks {
public:
- virtual void CancelSSLRequest(int error, const SSLInfo* ssl_info) OVERRIDE {}
- virtual void ContinueSSLRequest() OVERRIDE {}
+ virtual void CancelSSLRequest(int error, const SSLInfo* ssl_info) override {}
+ virtual void ContinueSSLRequest() override {}
};
// Base class for all test fixtures.
@@ -850,7 +850,7 @@
EVENT_ON_SSL_CERTIFICATE_ERROR) {}
// Create a ChannelDeletingFakeWebSocketEventInterface. Defined out-of-line to
// avoid circular dependency.
- virtual scoped_ptr<WebSocketEventInterface> CreateEventInterface() OVERRIDE;
+ virtual scoped_ptr<WebSocketEventInterface> CreateEventInterface() override;
// Tests can set deleting_ to a bitmap of EventInterfaceCall members that they
// want to cause Channel deletion. The default is for all calls to cause
@@ -870,47 +870,47 @@
virtual ChannelState OnAddChannelResponse(
bool fail,
const std::string& selected_protocol,
- const std::string& extensions) OVERRIDE {
+ const std::string& extensions) override {
return fixture_->DeleteIfDeleting(EVENT_ON_ADD_CHANNEL_RESPONSE);
}
virtual ChannelState OnDataFrame(bool fin,
WebSocketMessageType type,
- const std::vector<char>& data) OVERRIDE {
+ const std::vector<char>& data) override {
return fixture_->DeleteIfDeleting(EVENT_ON_DATA_FRAME);
}
- virtual ChannelState OnFlowControl(int64 quota) OVERRIDE {
+ virtual ChannelState OnFlowControl(int64 quota) override {
return fixture_->DeleteIfDeleting(EVENT_ON_FLOW_CONTROL);
}
- virtual ChannelState OnClosingHandshake() OVERRIDE {
+ virtual ChannelState OnClosingHandshake() override {
return fixture_->DeleteIfDeleting(EVENT_ON_CLOSING_HANDSHAKE);
}
- virtual ChannelState OnFailChannel(const std::string& message) OVERRIDE {
+ virtual ChannelState OnFailChannel(const std::string& message) override {
return fixture_->DeleteIfDeleting(EVENT_ON_FAIL_CHANNEL);
}
virtual ChannelState OnDropChannel(bool was_clean,
uint16 code,
- const std::string& reason) OVERRIDE {
+ const std::string& reason) override {
return fixture_->DeleteIfDeleting(EVENT_ON_DROP_CHANNEL);
}
virtual ChannelState OnStartOpeningHandshake(
- scoped_ptr<WebSocketHandshakeRequestInfo> request) OVERRIDE {
+ scoped_ptr<WebSocketHandshakeRequestInfo> request) override {
return fixture_->DeleteIfDeleting(EVENT_ON_START_OPENING_HANDSHAKE);
}
virtual ChannelState OnFinishOpeningHandshake(
- scoped_ptr<WebSocketHandshakeResponseInfo> response) OVERRIDE {
+ scoped_ptr<WebSocketHandshakeResponseInfo> response) override {
return fixture_->DeleteIfDeleting(EVENT_ON_FINISH_OPENING_HANDSHAKE);
}
virtual ChannelState OnSSLCertificateError(
scoped_ptr<SSLErrorCallbacks> ssl_error_callbacks,
const GURL& url,
const SSLInfo& ssl_info,
- bool fatal) OVERRIDE {
+ bool fatal) override {
return fixture_->DeleteIfDeleting(EVENT_ON_SSL_CERTIFICATE_ERROR);
}
@@ -949,7 +949,7 @@
// object before calling CreateChannelAndConnect() or
// CreateChannelAndConnectSuccessfully(). This will only work once per test
// case, but once should be enough.
- virtual scoped_ptr<WebSocketEventInterface> CreateEventInterface() OVERRIDE {
+ virtual scoped_ptr<WebSocketEventInterface> CreateEventInterface() override {
return scoped_ptr<WebSocketEventInterface>(event_interface_.release());
}
@@ -963,7 +963,7 @@
WebSocketChannelStreamTest()
: mock_stream_(new StrictMock<MockWebSocketStream>) {}
- virtual void CreateChannelAndConnectSuccessfully() OVERRIDE {
+ virtual void CreateChannelAndConnectSuccessfully() override {
set_stream(mock_stream_.Pass());
WebSocketChannelTest::CreateChannelAndConnectSuccessfully();
}
@@ -3317,7 +3317,7 @@
protected:
WebSocketChannelStreamTimeoutTest() {}
- virtual void CreateChannelAndConnectSuccessfully() OVERRIDE {
+ virtual void CreateChannelAndConnectSuccessfully() override {
set_stream(mock_stream_.Pass());
CreateChannelAndConnect();
channel_->SendFlowControl(kPlentyOfQuota);
diff --git a/net/websockets/websocket_deflate_predictor_impl.h b/net/websockets/websocket_deflate_predictor_impl.h
index 88a919c..d6b52c4 100644
--- a/net/websockets/websocket_deflate_predictor_impl.h
+++ b/net/websockets/websocket_deflate_predictor_impl.h
@@ -21,9 +21,9 @@
virtual ~WebSocketDeflatePredictorImpl() {}
virtual Result Predict(const ScopedVector<WebSocketFrame>& frames,
- size_t frame_index) OVERRIDE;
- virtual void RecordInputDataFrame(const WebSocketFrame* frame) OVERRIDE;
- virtual void RecordWrittenDataFrame(const WebSocketFrame* frame) OVERRIDE;
+ size_t frame_index) override;
+ virtual void RecordInputDataFrame(const WebSocketFrame* frame) override;
+ virtual void RecordWrittenDataFrame(const WebSocketFrame* frame) override;
};
} // namespace net
diff --git a/net/websockets/websocket_deflate_stream.cc b/net/websockets/websocket_deflate_stream.cc
index f3d293a..6666bef 100644
--- a/net/websockets/websocket_deflate_stream.cc
+++ b/net/websockets/websocket_deflate_stream.cc
@@ -133,8 +133,9 @@
current_writing_opcode_ = WebSocketFrameHeader::kOpCodeContinuation;
} else {
if (frame->data.get() &&
- !deflater_.AddBytes(frame->data->data(),
- frame->header.payload_length)) {
+ !deflater_.AddBytes(
+ frame->data->data(),
+ static_cast<size_t>(frame->header.payload_length))) {
DVLOG(1) << "WebSocket protocol error. "
<< "deflater_.AddBytes() returns an error.";
return ERR_WS_PROTOCOL_ERROR;
@@ -312,8 +313,9 @@
} else {
DCHECK_EQ(reading_state_, READING_COMPRESSED_MESSAGE);
if (frame->data.get() &&
- !inflater_.AddBytes(frame->data->data(),
- frame->header.payload_length)) {
+ !inflater_.AddBytes(
+ frame->data->data(),
+ static_cast<size_t>(frame->header.payload_length))) {
DVLOG(1) << "WebSocket protocol error. "
<< "inflater_.AddBytes() returns an error.";
return ERR_WS_PROTOCOL_ERROR;
diff --git a/net/websockets/websocket_deflate_stream.h b/net/websockets/websocket_deflate_stream.h
index 39ac2df..8f939ec 100644
--- a/net/websockets/websocket_deflate_stream.h
+++ b/net/websockets/websocket_deflate_stream.h
@@ -47,12 +47,12 @@
// WebSocketStream functions.
virtual int ReadFrames(ScopedVector<WebSocketFrame>* frames,
- const CompletionCallback& callback) OVERRIDE;
+ const CompletionCallback& callback) override;
virtual int WriteFrames(ScopedVector<WebSocketFrame>* frames,
- const CompletionCallback& callback) OVERRIDE;
- virtual void Close() OVERRIDE;
- virtual std::string GetSubProtocol() const OVERRIDE;
- virtual std::string GetExtensions() const OVERRIDE;
+ const CompletionCallback& callback) override;
+ virtual void Close() override;
+ virtual std::string GetSubProtocol() const override;
+ virtual std::string GetExtensions() const override;
private:
enum ReadingState {
diff --git a/net/websockets/websocket_deflate_stream_test.cc b/net/websockets/websocket_deflate_stream_test.cc
index 590f616..4f1c418 100644
--- a/net/websockets/websocket_deflate_stream_test.cc
+++ b/net/websockets/websocket_deflate_stream_test.cc
@@ -125,10 +125,10 @@
// WebSocketDeflatePredictor functions.
virtual Result Predict(const ScopedVector<WebSocketFrame>& frames,
- size_t frame_index) OVERRIDE {
+ size_t frame_index) override {
return result_;
}
- virtual void RecordInputDataFrame(const WebSocketFrame* frame) OVERRIDE {
+ virtual void RecordInputDataFrame(const WebSocketFrame* frame) override {
if (!WebSocketFrameHeader::IsKnownDataOpCode(frame->header.opcode)) {
ADD_FAILURE() << "Control frames should not be recorded.";
return;
@@ -147,7 +147,7 @@
}
frames_to_be_input_.pop_front();
}
- virtual void RecordWrittenDataFrame(const WebSocketFrame* frame) OVERRIDE {
+ virtual void RecordWrittenDataFrame(const WebSocketFrame* frame) override {
if (!WebSocketFrameHeader::IsKnownDataOpCode(frame->header.opcode)) {
ADD_FAILURE() << "Control frames should not be recorded.";
return;
diff --git a/net/websockets/websocket_frame_parser.cc b/net/websockets/websocket_frame_parser.cc
index 2e4c58f..d00a1d1 100644
--- a/net/websockets/websocket_frame_parser.cc
+++ b/net/websockets/websocket_frame_parser.cc
@@ -171,13 +171,11 @@
scoped_ptr<WebSocketFrameChunk> WebSocketFrameParser::DecodeFramePayload(
bool first_chunk) {
- const char* current = &buffer_.front() + current_read_pos_;
- const char* end = &buffer_.front() + buffer_.size();
- uint64 next_size = std::min<uint64>(
- end - current, current_frame_header_->payload_length - frame_offset_);
- // This check must pass because |payload_length| is already checked to be
+ // The cast here is safe because |payload_length| is already checked to be
// less than std::numeric_limits<int>::max() when the header is parsed.
- DCHECK_LE(next_size, static_cast<uint64>(kint32max));
+ int next_size = static_cast<int>(std::min(
+ static_cast<uint64>(buffer_.size() - current_read_pos_),
+ current_frame_header_->payload_length - frame_offset_));
scoped_ptr<WebSocketFrameChunk> frame_chunk(new WebSocketFrameChunk);
if (first_chunk) {
@@ -187,7 +185,7 @@
if (next_size) {
frame_chunk->data = new IOBufferWithSize(static_cast<int>(next_size));
char* io_data = frame_chunk->data->data();
- memcpy(io_data, current, next_size);
+ memcpy(io_data, &buffer_.front() + current_read_pos_, next_size);
if (current_frame_header_->masked) {
// The masking function is its own inverse, so we use the same function to
// unmask as to mask.
diff --git a/net/websockets/websocket_handshake_stream_create_helper.h b/net/websockets/websocket_handshake_stream_create_helper.h
index fd9ab74..aad2644 100644
--- a/net/websockets/websocket_handshake_stream_create_helper.h
+++ b/net/websockets/websocket_handshake_stream_create_helper.h
@@ -38,12 +38,12 @@
// Create a WebSocketBasicHandshakeStream.
virtual WebSocketHandshakeStreamBase* CreateBasicStream(
scoped_ptr<ClientSocketHandle> connection,
- bool using_proxy) OVERRIDE;
+ bool using_proxy) override;
// Unimplemented as of November 2013.
virtual WebSocketHandshakeStreamBase* CreateSpdyStream(
const base::WeakPtr<SpdySession>& session,
- bool use_relative_url) OVERRIDE;
+ bool use_relative_url) override;
// Call Upgrade() on the WebSocketHandshakeStream and return the result. This
// must only be called if the handshake succeeded.
diff --git a/net/websockets/websocket_handshake_stream_create_helper_test.cc b/net/websockets/websocket_handshake_stream_create_helper_test.cc
index 88b868f..a776acd 100644
--- a/net/websockets/websocket_handshake_stream_create_helper_test.cc
+++ b/net/websockets/websocket_handshake_stream_create_helper_test.cc
@@ -61,17 +61,17 @@
public:
virtual ~TestConnectDelegate() {}
- virtual void OnSuccess(scoped_ptr<WebSocketStream> stream) OVERRIDE {}
- virtual void OnFailure(const std::string& failure_message) OVERRIDE {}
+ virtual void OnSuccess(scoped_ptr<WebSocketStream> stream) override {}
+ virtual void OnFailure(const std::string& failure_message) override {}
virtual void OnStartOpeningHandshake(
- scoped_ptr<WebSocketHandshakeRequestInfo> request) OVERRIDE {}
+ scoped_ptr<WebSocketHandshakeRequestInfo> request) override {}
virtual void OnFinishOpeningHandshake(
- scoped_ptr<WebSocketHandshakeResponseInfo> response) OVERRIDE {}
+ scoped_ptr<WebSocketHandshakeResponseInfo> response) override {}
virtual void OnSSLCertificateError(
scoped_ptr<WebSocketEventInterface::SSLErrorCallbacks>
ssl_error_callbacks,
const SSLInfo& ssl_info,
- bool fatal) OVERRIDE {}
+ bool fatal) override {}
};
class WebSocketHandshakeStreamCreateHelperTest : public ::testing::Test {
diff --git a/net/websockets/websocket_job.h b/net/websockets/websocket_job.h
index 2e90a24..924fdd0 100644
--- a/net/websockets/websocket_job.h
+++ b/net/websockets/websocket_job.h
@@ -50,37 +50,37 @@
static void EnsureInit();
State state() const { return state_; }
- virtual void Connect() OVERRIDE;
- virtual bool SendData(const char* data, int len) OVERRIDE;
- virtual void Close() OVERRIDE;
- virtual void RestartWithAuth(const AuthCredentials& credentials) OVERRIDE;
- virtual void DetachDelegate() OVERRIDE;
+ virtual void Connect() override;
+ virtual bool SendData(const char* data, int len) override;
+ virtual void Close() override;
+ virtual void RestartWithAuth(const AuthCredentials& credentials) override;
+ virtual void DetachDelegate() override;
// SocketStream::Delegate methods.
virtual int OnStartOpenConnection(
- SocketStream* socket, const CompletionCallback& callback) OVERRIDE;
+ SocketStream* socket, const CompletionCallback& callback) override;
virtual void OnConnected(SocketStream* socket,
- int max_pending_send_allowed) OVERRIDE;
- virtual void OnSentData(SocketStream* socket, int amount_sent) OVERRIDE;
+ int max_pending_send_allowed) override;
+ virtual void OnSentData(SocketStream* socket, int amount_sent) override;
virtual void OnReceivedData(SocketStream* socket,
const char* data,
- int len) OVERRIDE;
- virtual void OnClose(SocketStream* socket) OVERRIDE;
+ int len) override;
+ virtual void OnClose(SocketStream* socket) override;
virtual void OnAuthRequired(
- SocketStream* socket, AuthChallengeInfo* auth_info) OVERRIDE;
+ SocketStream* socket, AuthChallengeInfo* auth_info) override;
virtual void OnSSLCertificateError(SocketStream* socket,
const SSLInfo& ssl_info,
- bool fatal) OVERRIDE;
- virtual void OnError(const SocketStream* socket, int error) OVERRIDE;
+ bool fatal) override;
+ virtual void OnError(const SocketStream* socket, int error) override;
// SpdyWebSocketStream::Delegate methods.
- virtual void OnCreatedSpdyStream(int status) OVERRIDE;
- virtual void OnSentSpdyHeaders() OVERRIDE;
+ virtual void OnCreatedSpdyStream(int status) override;
+ virtual void OnSentSpdyHeaders() override;
virtual void OnSpdyResponseHeadersUpdated(
- const SpdyHeaderBlock& response_headers) OVERRIDE;
- virtual void OnSentSpdyData(size_t bytes_sent) OVERRIDE;
- virtual void OnReceivedSpdyData(scoped_ptr<SpdyBuffer> buffer) OVERRIDE;
- virtual void OnCloseSpdyStream() OVERRIDE;
+ const SpdyHeaderBlock& response_headers) override;
+ virtual void OnSentSpdyData(size_t bytes_sent) override;
+ virtual void OnReceivedSpdyData(scoped_ptr<SpdyBuffer> buffer) override;
+ virtual void OnCloseSpdyStream() override;
private:
friend class WebSocketThrottle;
diff --git a/net/websockets/websocket_job_test.cc b/net/websockets/websocket_job_test.cc
index 59d529a..9cf3144 100644
--- a/net/websockets/websocket_job_test.cc
+++ b/net/websockets/websocket_job_test.cc
@@ -45,18 +45,18 @@
URLRequestContext* context, CookieStore* cookie_store)
: SocketStream(url, delegate, context, cookie_store) {}
- virtual void Connect() OVERRIDE {}
- virtual bool SendData(const char* data, int len) OVERRIDE {
+ virtual void Connect() override {}
+ virtual bool SendData(const char* data, int len) override {
sent_data_ += std::string(data, len);
return true;
}
- virtual void Close() OVERRIDE {}
+ virtual void Close() override {}
virtual void RestartWithAuth(
- const AuthCredentials& credentials) OVERRIDE {
+ const AuthCredentials& credentials) override {
}
- virtual void DetachDelegate() OVERRIDE {
+ virtual void DetachDelegate() override {
delegate_ = NULL;
}
@@ -98,40 +98,40 @@
virtual int OnStartOpenConnection(
SocketStream* socket,
- const CompletionCallback& callback) OVERRIDE {
+ const CompletionCallback& callback) override {
if (!on_start_open_connection_.is_null())
on_start_open_connection_.Run();
return OK;
}
virtual void OnConnected(SocketStream* socket,
- int max_pending_send_allowed) OVERRIDE {
+ int max_pending_send_allowed) override {
if (!on_connected_.is_null())
on_connected_.Run();
}
virtual void OnSentData(SocketStream* socket,
- int amount_sent) OVERRIDE {
+ int amount_sent) override {
amount_sent_ += amount_sent;
if (!on_sent_data_.is_null())
on_sent_data_.Run();
}
virtual void OnReceivedData(SocketStream* socket,
- const char* data, int len) OVERRIDE {
+ const char* data, int len) override {
received_data_ += std::string(data, len);
if (!on_received_data_.is_null())
on_received_data_.Run();
}
- virtual void OnClose(SocketStream* socket) OVERRIDE {
+ virtual void OnClose(SocketStream* socket) override {
if (!on_close_.is_null())
on_close_.Run();
}
virtual bool CanGetCookies(SocketStream* socket,
- const GURL& url) OVERRIDE {
+ const GURL& url) override {
return allow_all_cookies_;
}
virtual bool CanSetCookie(SocketStream* request,
const GURL& url,
const std::string& cookie_line,
- CookieOptions* options) OVERRIDE {
+ CookieOptions* options) override {
return allow_all_cookies_;
}
@@ -190,7 +190,7 @@
const GURL& url,
const std::string& cookie_line,
const CookieOptions& options,
- const SetCookiesCallback& callback) OVERRIDE {
+ const SetCookiesCallback& callback) override {
bool result = SetCookieWithOptions(url, cookie_line, options);
if (!callback.is_null())
callback.Run(result);
@@ -199,27 +199,27 @@
virtual void GetCookiesWithOptionsAsync(
const GURL& url,
const CookieOptions& options,
- const GetCookiesCallback& callback) OVERRIDE {
+ const GetCookiesCallback& callback) override {
if (!callback.is_null())
callback.Run(GetCookiesWithOptions(url, options));
}
virtual void GetAllCookiesForURLAsync(
const GURL& url,
- const GetCookieListCallback& callback) OVERRIDE {
+ const GetCookieListCallback& callback) override {
ADD_FAILURE();
}
virtual void DeleteCookieAsync(const GURL& url,
const std::string& cookie_name,
- const base::Closure& callback) OVERRIDE {
+ const base::Closure& callback) override {
ADD_FAILURE();
}
virtual void DeleteAllCreatedBetweenAsync(
const base::Time& delete_begin,
const base::Time& delete_end,
- const DeleteCallback& callback) OVERRIDE {
+ const DeleteCallback& callback) override {
ADD_FAILURE();
}
@@ -227,15 +227,15 @@
const base::Time delete_begin,
const base::Time delete_end,
const GURL& url,
- const DeleteCallback& callback) OVERRIDE {
+ const DeleteCallback& callback) override {
ADD_FAILURE();
}
- virtual void DeleteSessionCookiesAsync(const DeleteCallback&) OVERRIDE {
+ virtual void DeleteSessionCookiesAsync(const DeleteCallback&) override {
ADD_FAILURE();
}
- virtual CookieMonster* GetCookieMonster() OVERRIDE { return NULL; }
+ virtual CookieMonster* GetCookieMonster() override { return NULL; }
const std::vector<Entry>& entries() const { return entries_; }
@@ -248,7 +248,7 @@
class MockSSLConfigService : public SSLConfigService {
public:
- virtual void GetSSLConfig(SSLConfig* config) OVERRIDE {}
+ virtual void GetSSLConfig(SSLConfig* config) override {}
protected:
virtual ~MockSSLConfigService() {}
@@ -298,17 +298,17 @@
virtual int CreateTransaction(
RequestPriority priority,
- scoped_ptr<HttpTransaction>* trans) OVERRIDE {
+ scoped_ptr<HttpTransaction>* trans) override {
NOTREACHED();
return ERR_UNEXPECTED;
}
- virtual HttpCache* GetCache() OVERRIDE {
+ virtual HttpCache* GetCache() override {
NOTREACHED();
return NULL;
}
- virtual HttpNetworkSession* GetSession() OVERRIDE {
+ virtual HttpNetworkSession* GetSession() override {
return http_session_.get();
}
@@ -350,34 +350,34 @@
// OnStartOpenConnection() is not implemented by SocketStreamDispatcherHost
virtual void OnConnected(SocketStream* socket,
- int max_pending_send_allowed) OVERRIDE {
+ int max_pending_send_allowed) override {
DeleteJobMaybe();
}
- virtual void OnSentData(SocketStream* socket, int amount_sent) OVERRIDE {
+ virtual void OnSentData(SocketStream* socket, int amount_sent) override {
DeleteJobMaybe();
}
virtual void OnReceivedData(SocketStream* socket,
const char* data,
- int len) OVERRIDE {
+ int len) override {
DeleteJobMaybe();
}
- virtual void OnClose(SocketStream* socket) OVERRIDE { DeleteJobMaybe(); }
+ virtual void OnClose(SocketStream* socket) override { DeleteJobMaybe(); }
virtual void OnAuthRequired(SocketStream* socket,
- AuthChallengeInfo* auth_info) OVERRIDE {
+ AuthChallengeInfo* auth_info) override {
DeleteJobMaybe();
}
virtual void OnSSLCertificateError(SocketStream* socket,
const SSLInfo& ssl_info,
- bool fatal) OVERRIDE {
+ bool fatal) override {
DeleteJobMaybe();
}
- virtual void OnError(const SocketStream* socket, int error) OVERRIDE {
+ virtual void OnError(const SocketStream* socket, int error) override {
DeleteJobMaybe();
}
@@ -398,12 +398,12 @@
: spdy_util_(GetParam()),
enable_websocket_over_spdy_(false) {}
- virtual void SetUp() OVERRIDE {
+ virtual void SetUp() override {
stream_type_ = STREAM_INVALID;
cookie_store_ = new MockCookieStore;
context_.reset(new MockURLRequestContext(cookie_store_.get()));
}
- virtual void TearDown() OVERRIDE {
+ virtual void TearDown() override {
cookie_store_ = NULL;
context_.reset();
websocket_ = NULL;
diff --git a/net/websockets/websocket_stream.cc b/net/websockets/websocket_stream.cc
index be2bc16..90cb7ca 100644
--- a/net/websockets/websocket_stream.cc
+++ b/net/websockets/websocket_stream.cc
@@ -56,7 +56,7 @@
// Implementation of URLRequest::Delegate methods.
virtual void OnReceivedRedirect(URLRequest* request,
const RedirectInfo& redirect_info,
- bool* defer_redirect) OVERRIDE {
+ bool* defer_redirect) override {
// HTTP status codes returned by HttpStreamParser are filtered by
// WebSocketBasicHandshakeStream, and only 101, 401 and 407 are permitted
// back up the stack to HttpNetworkTransaction. In particular, redirect
@@ -65,20 +65,20 @@
NOTREACHED();
}
- virtual void OnResponseStarted(URLRequest* request) OVERRIDE;
+ virtual void OnResponseStarted(URLRequest* request) override;
virtual void OnAuthRequired(URLRequest* request,
- AuthChallengeInfo* auth_info) OVERRIDE;
+ AuthChallengeInfo* auth_info) override;
virtual void OnCertificateRequested(URLRequest* request,
SSLCertRequestInfo* cert_request_info)
- OVERRIDE;
+ override;
virtual void OnSSLCertificateError(URLRequest* request,
const SSLInfo& ssl_info,
- bool fatal) OVERRIDE;
+ bool fatal) override;
- virtual void OnReadCompleted(URLRequest* request, int bytes_read) OVERRIDE;
+ virtual void OnReadCompleted(URLRequest* request, int bytes_read) override;
private:
StreamRequestImpl* owner_;
@@ -206,7 +206,7 @@
explicit SSLErrorCallbacks(URLRequest* url_request)
: url_request_(url_request) {}
- virtual void CancelSSLRequest(int error, const SSLInfo* ssl_info) OVERRIDE {
+ virtual void CancelSSLRequest(int error, const SSLInfo* ssl_info) override {
if (ssl_info) {
url_request_->CancelWithSSLError(error, *ssl_info);
} else {
@@ -214,7 +214,7 @@
}
}
- virtual void ContinueSSLRequest() OVERRIDE {
+ virtual void ContinueSSLRequest() override {
url_request_->ContinueDespiteLastError();
}
diff --git a/net/websockets/websocket_stream_test.cc b/net/websockets/websocket_stream_test.cc
index c90777f..0b7ae4e 100644
--- a/net/websockets/websocket_stream_test.cc
+++ b/net/websockets/websocket_stream_test.cc
@@ -99,7 +99,7 @@
: WebSocketHandshakeStreamCreateHelper(connect_delegate,
requested_subprotocols) {}
- virtual void OnStreamCreated(WebSocketBasicHandshakeStream* stream) OVERRIDE {
+ virtual void OnStreamCreated(WebSocketBasicHandshakeStream* stream) override {
stream->SetWebSocketKeyForTesting("dGhlIHNhbXBsZSBub25jZQ==");
}
};
@@ -201,23 +201,23 @@
explicit TestConnectDelegate(WebSocketStreamCreateTest* owner)
: owner_(owner) {}
- virtual void OnSuccess(scoped_ptr<WebSocketStream> stream) OVERRIDE {
+ virtual void OnSuccess(scoped_ptr<WebSocketStream> stream) override {
stream.swap(owner_->stream_);
}
- virtual void OnFailure(const std::string& message) OVERRIDE {
+ virtual void OnFailure(const std::string& message) override {
owner_->has_failed_ = true;
owner_->failure_message_ = message;
}
virtual void OnStartOpeningHandshake(
- scoped_ptr<WebSocketHandshakeRequestInfo> request) OVERRIDE {
+ scoped_ptr<WebSocketHandshakeRequestInfo> request) override {
// Can be called multiple times (in the case of HTTP auth). Last call
// wins.
owner_->request_info_ = request.Pass();
}
virtual void OnFinishOpeningHandshake(
- scoped_ptr<WebSocketHandshakeResponseInfo> response) OVERRIDE {
+ scoped_ptr<WebSocketHandshakeResponseInfo> response) override {
if (owner_->response_info_)
ADD_FAILURE();
owner_->response_info_ = response.Pass();
@@ -226,7 +226,7 @@
scoped_ptr<WebSocketEventInterface::SSLErrorCallbacks>
ssl_error_callbacks,
const SSLInfo& ssl_info,
- bool fatal) OVERRIDE {
+ bool fatal) override {
owner_->ssl_error_callbacks_ = ssl_error_callbacks.Pass();
owner_->ssl_info_ = ssl_info;
owner_->ssl_fatal_ = fatal;
@@ -408,7 +408,7 @@
};
class StreamCreation : public WebSocketStreamCreateTest {
- virtual void TestBody() OVERRIDE {}
+ virtual void TestBody() override {}
};
scoped_ptr<base::HistogramSamples> GetSamples(const std::string& name) {
diff --git a/net/websockets/websocket_throttle_test.cc b/net/websockets/websocket_throttle_test.cc
index 4d93001..a743e93 100644
--- a/net/websockets/websocket_throttle_test.cc
+++ b/net/websockets/websocket_throttle_test.cc
@@ -25,12 +25,12 @@
DummySocketStreamDelegate() {}
virtual ~DummySocketStreamDelegate() {}
virtual void OnConnected(
- SocketStream* socket, int max_pending_send_allowed) OVERRIDE {}
+ SocketStream* socket, int max_pending_send_allowed) override {}
virtual void OnSentData(SocketStream* socket,
- int amount_sent) OVERRIDE {}
+ int amount_sent) override {}
virtual void OnReceivedData(SocketStream* socket,
- const char* data, int len) OVERRIDE {}
- virtual void OnClose(SocketStream* socket) OVERRIDE {}
+ const char* data, int len) override {}
+ virtual void OnClose(SocketStream* socket) override {}
};
class WebSocketThrottleTestContext : public TestURLRequestContext {