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

Unified Diff: components/sync/engine/net/http_bridge.cc

Issue 2380143002: [Sync] Enable Compression from Client to Server by experiment (Closed)
Patch Set: rebase Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/sync/engine/net/http_bridge.cc
diff --git a/components/sync/engine/net/http_bridge.cc b/components/sync/engine/net/http_bridge.cc
index 3a8ee598bf6b0375d77d7361d5946fbedf22b905..856a774bbdaabe178099f72ef5eed401d5c8d0e3 100644
--- a/components/sync/engine/net/http_bridge.cc
+++ b/components/sync/engine/net/http_bridge.cc
@@ -28,6 +28,7 @@
#include "net/url_request/url_fetcher.h"
#include "net/url_request/url_request_job_factory_impl.h"
#include "net/url_request/url_request_status.h"
+#include "third_party/zlib/google/compression_utils.h"
namespace syncer {
@@ -62,6 +63,10 @@ void RecordSyncResponseContentLengthHistograms(
} // namespace
+// Enables compression of messages from client to server.
+const base::Feature kSyncClientToServerCompression{
+ "EnableSyncClientToServerCompression", base::FEATURE_DISABLED_BY_DEFAULT};
+
HttpBridgeFactory::HttpBridgeFactory(
const scoped_refptr<net::URLRequestContextGetter>& request_context_getter,
const NetworkTimeUpdateCallback& network_time_update_callback,
@@ -240,8 +245,15 @@ void HttpBridge::MakeAsynchronousPost() {
fetch_state_.url_poster->SetRequestContext(request_context_getter_.get());
fetch_state_.url_poster->SetExtraRequestHeaders(extra_headers_);
- fetch_state_.url_poster->SetUploadData(content_type_, request_content_);
- RecordSyncRequestContentLengthHistograms(request_content_.size(),
+ std::string request_to_send;
+ if (base::FeatureList::IsEnabled(kSyncClientToServerCompression)) {
+ compression::GzipCompress(request_content_, &request_to_send);
+ fetch_state_.url_poster->AddExtraRequestHeader("Content-Encoding: gzip");
+ } else {
+ request_to_send = request_content_;
+ }
+ fetch_state_.url_poster->SetUploadData(content_type_, request_to_send);
+ RecordSyncRequestContentLengthHistograms(request_to_send.size(),
request_content_.size());
fetch_state_.url_poster->AddExtraRequestHeader(base::StringPrintf(

Powered by Google App Engine
This is Rietveld 408576698