57 lines
2.1 KiB
C++
57 lines
2.1 KiB
C++
// Copyright (c) 2012 The Chromium Embedded Framework 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 CEF_LIBCEF_BROWSER_NET_NETWORK_DELEGATE_H_
|
|
#define CEF_LIBCEF_BROWSER_NET_NETWORK_DELEGATE_H_
|
|
#pragma once
|
|
|
|
#include "base/macros.h"
|
|
#include "net/base/network_delegate_impl.h"
|
|
|
|
template <class T>
|
|
class PrefMember;
|
|
typedef PrefMember<bool> BooleanPrefMember;
|
|
|
|
// Used for intercepting resource requests, redirects and responses. The single
|
|
// instance of this class is managed by CefURLRequestContextGetter.
|
|
class CefNetworkDelegate : public net::NetworkDelegateImpl {
|
|
public:
|
|
CefNetworkDelegate();
|
|
~CefNetworkDelegate() override;
|
|
|
|
// Match the logic from ChromeNetworkDelegate and
|
|
// RenderFrameMessageFilter::OnSetCookie.
|
|
static bool AreExperimentalCookieFeaturesEnabled();
|
|
|
|
void set_force_google_safesearch(BooleanPrefMember* force_google_safesearch) {
|
|
force_google_safesearch_ = force_google_safesearch;
|
|
}
|
|
|
|
private:
|
|
// net::NetworkDelegate methods.
|
|
std::unique_ptr<net::SourceStream> CreateSourceStream(
|
|
net::URLRequest* request,
|
|
std::unique_ptr<net::SourceStream> upstream) override;
|
|
int OnBeforeURLRequest(net::URLRequest* request,
|
|
const net::CompletionCallback& callback,
|
|
GURL* new_url) override;
|
|
AuthRequiredResponse OnAuthRequired(
|
|
net::URLRequest* request,
|
|
const net::AuthChallengeInfo& auth_info,
|
|
const AuthCallback& callback,
|
|
net::AuthCredentials* credentials) override;
|
|
void OnCompleted(net::URLRequest* request, bool started) override;
|
|
bool OnCanAccessFile(const net::URLRequest& request,
|
|
const base::FilePath& original_path,
|
|
const base::FilePath& absolute_path) const override;
|
|
bool OnAreExperimentalCookieFeaturesEnabled() const override;
|
|
|
|
// Weak, owned by our owner (CefURLRequestContextGetterImpl).
|
|
BooleanPrefMember* force_google_safesearch_;
|
|
|
|
DISALLOW_COPY_AND_ASSIGN(CefNetworkDelegate);
|
|
};
|
|
|
|
#endif // CEF_LIBCEF_BROWSER_NET_NETWORK_DELEGATE_H_
|