Commit 7e20e761 authored by yoav's avatar yoav Committed by Commit bot

Removed partial Client Hints implementation from the Chrome side.

The first step in adding full Client-Hints support on the Blink side is to delete the partial implementation from the Chrome side. This CL does that.

BUG=458983

Review URL: https://codereview.chromium.org/948843003

Cr-Commit-Position: refs/heads/master@{#317639}
parent 0d59aeae
...@@ -593,9 +593,6 @@ void IOThread::InitAsync() { ...@@ -593,9 +593,6 @@ void IOThread::InitAsync() {
new ChromeNetworkDelegate(extension_event_router_forwarder(), new ChromeNetworkDelegate(extension_event_router_forwarder(),
&system_enable_referrers_)); &system_enable_referrers_));
if (command_line.HasSwitch(switches::kEnableClientHints))
chrome_network_delegate->SetEnableClientHints();
#if defined(ENABLE_EXTENSIONS) #if defined(ENABLE_EXTENSIONS)
if (command_line.HasSwitch(switches::kDisableExtensionsHttpThrottling)) if (command_line.HasSwitch(switches::kDisableExtensionsHttpThrottling))
chrome_network_delegate->NeverThrottleRequests(); chrome_network_delegate->NeverThrottleRequests();
......
...@@ -29,7 +29,6 @@ ...@@ -29,7 +29,6 @@
#include "chrome/browser/content_settings/tab_specific_content_settings.h" #include "chrome/browser/content_settings/tab_specific_content_settings.h"
#include "chrome/browser/custom_handlers/protocol_handler_registry.h" #include "chrome/browser/custom_handlers/protocol_handler_registry.h"
#include "chrome/browser/net/chrome_extensions_network_delegate.h" #include "chrome/browser/net/chrome_extensions_network_delegate.h"
#include "chrome/browser/net/client_hints.h"
#include "chrome/browser/net/connect_interceptor.h" #include "chrome/browser/net/connect_interceptor.h"
#include "chrome/browser/net/safe_search_util.h" #include "chrome/browser/net/safe_search_util.h"
#include "chrome/browser/prerender/prerender_tracker.h" #include "chrome/browser/prerender/prerender_tracker.h"
...@@ -325,11 +324,6 @@ void ChromeNetworkDelegate::set_predictor( ...@@ -325,11 +324,6 @@ void ChromeNetworkDelegate::set_predictor(
new chrome_browser_net::ConnectInterceptor(predictor)); new chrome_browser_net::ConnectInterceptor(predictor));
} }
void ChromeNetworkDelegate::SetEnableClientHints() {
client_hints_.reset(new ClientHints());
client_hints_->Init();
}
// static // static
#if defined(ENABLE_EXTENSIONS) #if defined(ENABLE_EXTENSIONS)
void ChromeNetworkDelegate::NeverThrottleRequests() { void ChromeNetworkDelegate::NeverThrottleRequests() {
...@@ -404,12 +398,6 @@ int ChromeNetworkDelegate::OnBeforeURLRequest( ...@@ -404,12 +398,6 @@ int ChromeNetworkDelegate::OnBeforeURLRequest(
if (enable_do_not_track_ && enable_do_not_track_->GetValue()) if (enable_do_not_track_ && enable_do_not_track_->GetValue())
request->SetExtraRequestHeaderByName(kDNTHeader, "1", true /* override */); request->SetExtraRequestHeaderByName(kDNTHeader, "1", true /* override */);
if (client_hints_) {
request->SetExtraRequestHeaderByName(
ClientHints::kDevicePixelRatioHeader,
client_hints_->GetDevicePixelRatioHeader(), true);
}
bool force_safe_search = bool force_safe_search =
(force_safe_search_ && force_safe_search_->GetValue()) || (force_safe_search_ && force_safe_search_->GetValue()) ||
(force_google_safe_search_ && force_google_safe_search_->GetValue()); (force_google_safe_search_ && force_google_safe_search_->GetValue());
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
#include "net/base/network_delegate_impl.h" #include "net/base/network_delegate_impl.h"
class ChromeExtensionsNetworkDelegate; class ChromeExtensionsNetworkDelegate;
class ClientHints;
class CookieSettings; class CookieSettings;
class PrefService; class PrefService;
...@@ -125,9 +124,6 @@ class ChromeNetworkDelegate : public net::NetworkDelegateImpl { ...@@ -125,9 +124,6 @@ class ChromeNetworkDelegate : public net::NetworkDelegateImpl {
prerender_tracker_ = prerender_tracker; prerender_tracker_ = prerender_tracker;
} }
// Adds the Client Hints header to HTTP requests.
void SetEnableClientHints();
// Causes |OnCanThrottleRequest| to always return false, for all // Causes |OnCanThrottleRequest| to always return false, for all
// instances of this object. // instances of this object.
static void NeverThrottleRequests(); static void NeverThrottleRequests();
...@@ -229,8 +225,6 @@ class ChromeNetworkDelegate : public net::NetworkDelegateImpl { ...@@ -229,8 +225,6 @@ class ChromeNetworkDelegate : public net::NetworkDelegateImpl {
// static anyway since it is based on a command-line flag. // static anyway since it is based on a command-line flag.
static bool g_never_throttle_requests_; static bool g_never_throttle_requests_;
scoped_ptr<ClientHints> client_hints_;
bool first_request_; bool first_request_;
prerender::PrerenderTracker* prerender_tracker_; prerender::PrerenderTracker* prerender_tracker_;
......
// Copyright 2013 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 "chrome/browser/net/client_hints.h"
#include <locale>
#include "base/bind.h"
#include "base/strings/stringprintf.h"
#include "base/task_runner_util.h"
#include "content/public/browser/browser_thread.h"
#include "ui/gfx/screen.h"
namespace {
float FetchScreenInfoOnUIThread() {
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
// TODO(bengr): Consider multi-display scenarios.
gfx::Display display = gfx::Screen::GetNativeScreen()->GetPrimaryDisplay();
return display.device_scale_factor();
}
} // namespace
const char ClientHints::kDevicePixelRatioHeader[] = "CH-DPR";
ClientHints::ClientHints()
: weak_ptr_factory_(this) {
}
ClientHints::~ClientHints() {
}
void ClientHints::Init() {
// TODO(bengr): Observe the device pixel ratio in case it changes during
// the Chrome session.
RetrieveScreenInfo();
}
bool ClientHints::RetrieveScreenInfo() {
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
return content::BrowserThread::PostTaskAndReplyWithResult(
content::BrowserThread::UI,
FROM_HERE,
base::Bind(&FetchScreenInfoOnUIThread),
base::Bind(
&ClientHints::UpdateScreenInfo, weak_ptr_factory_.GetWeakPtr()));
}
const std::string& ClientHints::GetDevicePixelRatioHeader() const {
return screen_hints_;
}
void ClientHints::UpdateScreenInfo(float device_pixel_ratio_value) {
if (device_pixel_ratio_value <= 0.0)
return;
std::string device_pixel_ratio = base::StringPrintf("%.2f",
device_pixel_ratio_value);
// Make sure the Client Hints value doesn't change
// according to the machine's locale
std::locale locale;
for (std::string::iterator it = device_pixel_ratio.begin();
it != device_pixel_ratio.end(); ++it) {
if (!std::isdigit(*it, locale))
*it = '.';
}
screen_hints_ = device_pixel_ratio;
}
// Copyright 2013 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 CHROME_BROWSER_NET_CLIENT_HINTS_H_
#define CHROME_BROWSER_NET_CLIENT_HINTS_H_
#include <string>
#include "base/basictypes.h"
#include "base/memory/weak_ptr.h"
// ClientHints is a repository in Chrome for information used
// to create the Client-Hints request header. For more information, see:
// https://github.com/igrigorik/http-client-hints/blob/draft2/draft-grigorik-http-client-hints-01.txt
class ClientHints {
public:
static const char kDevicePixelRatioHeader[];
ClientHints();
~ClientHints();
void Init();
// Returns the device pixel ratio as a string. Its value is the same as
// window.devicePixelRatio in Javascript.
const std::string& GetDevicePixelRatioHeader() const;
private:
friend class ClientHintsTest;
// Retrieves and updates screen information for use on the IO thread.
bool RetrieveScreenInfo();
void UpdateScreenInfo(float device_pixel_ratio_value);
std::string screen_hints_;
base::WeakPtrFactory<ClientHints> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(ClientHints);
};
#endif // CHROME_BROWSER_NET_CLIENT_HINTS_H_
// Copyright 2013 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 "chrome/browser/net/client_hints.h"
#include <locale.h>
#include "base/logging.h"
#if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_IOS)
#include "base/test/scoped_locale.h"
#endif
#include "testing/gtest/include/gtest/gtest.h"
class ClientHintsTest : public testing::Test {
public:
void UpdateScreenInfo(float pixel_ratio) {
client_hints_.UpdateScreenInfo(pixel_ratio);
};
protected:
ClientHints client_hints_;
};
TEST_F(ClientHintsTest, HintsWellFormatted) {
UpdateScreenInfo(1.567f);
std::string hint = client_hints_.GetDevicePixelRatioHeader();
EXPECT_EQ("1.57", hint);
}
// Android and iOS do not support setLocale.
#if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_IOS)
// TODO(bengr): Use ScopedLocal in Windows once it is supported.
TEST_F(ClientHintsTest, HintsWellFormattedWithNonEnLocale) {
base::ScopedLocale locale("fr_FR.UTF-8");
UpdateScreenInfo(1.567f);
std::string hint = client_hints_.GetDevicePixelRatioHeader();
EXPECT_EQ("1.57", hint);
}
#endif // defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_IOS)
TEST_F(ClientHintsTest, HintsHaveNonbogusValues) {
UpdateScreenInfo(-1.567f);
std::string hint = client_hints_.GetDevicePixelRatioHeader();
EXPECT_EQ("", hint);
UpdateScreenInfo(1.567f);
hint = client_hints_.GetDevicePixelRatioHeader();
EXPECT_EQ("1.57", hint);
UpdateScreenInfo(0.0f);
hint = client_hints_.GetDevicePixelRatioHeader();
// Hints should be last known good values.
EXPECT_EQ("1.57", hint);
}
...@@ -1044,8 +1044,6 @@ void ProfileIOData::Init( ...@@ -1044,8 +1044,6 @@ void ProfileIOData::Init(
NULL, NULL,
#endif #endif
&enable_referrers_)); &enable_referrers_));
if (command_line.HasSwitch(switches::kEnableClientHints))
network_delegate->SetEnableClientHints();
#if defined(ENABLE_EXTENSIONS) #if defined(ENABLE_EXTENSIONS)
network_delegate->set_extension_info_map( network_delegate->set_extension_info_map(
profile_params_->extension_info_map.get()); profile_params_->extension_info_map.get());
......
...@@ -1738,8 +1738,6 @@ ...@@ -1738,8 +1738,6 @@
'browser/net/chrome_network_delegate.h', 'browser/net/chrome_network_delegate.h',
'browser/net/chrome_url_request_context_getter.cc', 'browser/net/chrome_url_request_context_getter.cc',
'browser/net/chrome_url_request_context_getter.h', 'browser/net/chrome_url_request_context_getter.h',
'browser/net/client_hints.cc',
'browser/net/client_hints.h',
'browser/net/connect_interceptor.cc', 'browser/net/connect_interceptor.cc',
'browser/net/connect_interceptor.h', 'browser/net/connect_interceptor.h',
'browser/net/connection_tester.cc', 'browser/net/connection_tester.cc',
......
...@@ -147,7 +147,6 @@ ...@@ -147,7 +147,6 @@
'browser/metrics/variations/variations_service_unittest.cc', 'browser/metrics/variations/variations_service_unittest.cc',
'browser/net/chrome_fraudulent_certificate_reporter_unittest.cc', 'browser/net/chrome_fraudulent_certificate_reporter_unittest.cc',
'browser/net/chrome_network_delegate_unittest.cc', 'browser/net/chrome_network_delegate_unittest.cc',
'browser/net/client_hints_unittest.cc',
'browser/net/connection_tester_unittest.cc', 'browser/net/connection_tester_unittest.cc',
'browser/net/dns_probe_runner_unittest.cc', 'browser/net/dns_probe_runner_unittest.cc',
'browser/net/dns_probe_service_unittest.cc', 'browser/net/dns_probe_service_unittest.cc',
......
...@@ -398,9 +398,6 @@ const char kEnableAsyncDns[] = "enable-async-dns"; ...@@ -398,9 +398,6 @@ const char kEnableAsyncDns[] = "enable-async-dns";
// Enables the benchmarking extensions. // Enables the benchmarking extensions.
const char kEnableBenchmarking[] = "enable-benchmarking"; const char kEnableBenchmarking[] = "enable-benchmarking";
// Enables client hints, which adds hints about browser state to HTTP requests.
const char kEnableClientHints[] = "enable-client-hints";
// Enables the multi-level undo system for bookmarks. // Enables the multi-level undo system for bookmarks.
const char kEnableBookmarkUndo[] = "enable-bookmark-undo"; const char kEnableBookmarkUndo[] = "enable-bookmark-undo";
......
...@@ -117,7 +117,6 @@ extern const char kEnableAppList[]; ...@@ -117,7 +117,6 @@ extern const char kEnableAppList[];
extern const char kEnableAppsFileAssociations[]; extern const char kEnableAppsFileAssociations[];
extern const char kEnableAsyncDns[]; extern const char kEnableAsyncDns[];
extern const char kEnableBenchmarking[]; extern const char kEnableBenchmarking[];
extern const char kEnableClientHints[];
extern const char kEnableBookmarkUndo[]; extern const char kEnableBookmarkUndo[];
extern const char kEnableCloudPrintProxy[]; extern const char kEnableCloudPrintProxy[];
extern const char kEnableDevToolsExperiments[]; extern const char kEnableDevToolsExperiments[];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment