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

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

Issue 2380143002: [Sync] Enable Compression from Client to Server by experiment (Closed)
Patch Set: use experience to control compression 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 fccf140493572386c8c6a2fd78bf8851e138afee..dc69c13ac9d10fb28fbf4a3d5b633617b5397121 100644
--- a/components/sync/engine/net/http_bridge.cc
+++ b/components/sync/engine/net/http_bridge.cc
@@ -27,6 +27,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 {
@@ -61,6 +62,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,
@@ -238,8 +243,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