blob: 5711beb904a891daf5326fe32ab1bee2120cdf59 [file] [log] [blame]
Tarun Bansal6bf54302017-10-02 07:39:141// Copyright 2017 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_CLIENT_HINTS_CLIENT_HINTS_H_
6#define CHROME_BROWSER_CLIENT_HINTS_CLIENT_HINTS_H_
7
8#include <memory>
Yoav Weiss603be262019-03-04 13:14:579#include <string>
Tarun Bansal6bf54302017-10-02 07:39:1410
Tarun Bansala61f0f62017-10-24 23:53:0511#include "base/memory/ref_counted.h"
Tarun Bansal509a8dd2018-04-10 17:19:1612#include "base/optional.h"
Tarun Bansal837bac22018-12-12 06:59:0113#include "components/keyed_service/core/keyed_service.h"
Tarun Bansal1ff665c2019-01-09 16:35:5214#include "content/public/browser/client_hints_controller_delegate.h"
Tarun Bansala61f0f62017-10-24 23:53:0515
Tarun Bansal6bf54302017-10-02 07:39:1416class GURL;
17
Tarun Bansal6bf54302017-10-02 07:39:1418namespace client_hints {
19
Tarun Bansal1ff665c2019-01-09 16:35:5220class ClientHints : public KeyedService,
21 public content::ClientHintsControllerDelegate {
Tarun Bansal837bac22018-12-12 06:59:0122 public:
23 explicit ClientHints(content::BrowserContext* context);
24 ~ClientHints() override;
25
Tarun Bansal1ff665c2019-01-09 16:35:5226 // content::ClientHintsControllerDelegate:
Yoav Weiss603be262019-03-04 13:14:5727 network::NetworkQualityTracker* GetNetworkQualityTracker() override;
28
29 void GetAllowedClientHintsFromSource(
Arthur Sonzogni62a4f4352019-01-07 16:37:2530 const GURL& url,
Yoav Weiss603be262019-03-04 13:14:5731 blink::WebEnabledClientHints* client_hints) override;
32
33 bool IsJavaScriptAllowed(const GURL& url) override;
34
35 std::string GetAcceptLanguageString() override;
36
37 blink::UserAgentMetadata GetUserAgentMetadata() override;
Tarun Bansal837bac22018-12-12 06:59:0138
39 private:
40 content::BrowserContext* context_;
41
42 DISALLOW_COPY_AND_ASSIGN(ClientHints);
43};
Tarun Bansal6bf54302017-10-02 07:39:1444
Tarun Bansal6bf54302017-10-02 07:39:1445} // namespace client_hints
46
47#endif // CHROME_BROWSER_CLIENT_HINTS_CLIENT_HINTS_H_