mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-12-01 01:36:09 +03:00
72 lines
2.0 KiB
C
72 lines
2.0 KiB
C
|
// Copyright (c) 2011 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 NET_URL_REQUEST_URL_REQUEST_JOB_FACTORY_H_
|
||
|
#define NET_URL_REQUEST_URL_REQUEST_JOB_FACTORY_H_
|
||
|
|
||
|
#include <string>
|
||
|
|
||
|
#include "base/compiler_specific.h"
|
||
|
#include "base/macros.h"
|
||
|
#include "base/threading/thread_checker.h"
|
||
|
#include "net/base/net_export.h"
|
||
|
|
||
|
class GURL;
|
||
|
|
||
|
namespace net {
|
||
|
|
||
|
class NetworkDelegate;
|
||
|
class URLRequest;
|
||
|
class URLRequestJob;
|
||
|
|
||
|
class NET_EXPORT URLRequestJobFactory {
|
||
|
public:
|
||
|
// TODO(shalev): Move this to URLRequestJobFactoryImpl.
|
||
|
class NET_EXPORT ProtocolHandler {
|
||
|
public:
|
||
|
virtual ~ProtocolHandler();
|
||
|
|
||
|
virtual URLRequestJob* MaybeCreateJob(
|
||
|
URLRequest* request, NetworkDelegate* network_delegate) const = 0;
|
||
|
|
||
|
// Indicates if it should be safe to redirect to |location|. Should handle
|
||
|
// protocols handled by MaybeCreateJob(). Only called when registered with
|
||
|
// URLRequestJobFactoryImpl::SetProtocolHandler() not called when used with
|
||
|
// ProtocolInterceptJobFactory.
|
||
|
// NOTE(pauljensen): Default implementation returns true.
|
||
|
virtual bool IsSafeRedirectTarget(const GURL& location) const;
|
||
|
};
|
||
|
|
||
|
URLRequestJobFactory();
|
||
|
virtual ~URLRequestJobFactory();
|
||
|
|
||
|
virtual URLRequestJob* MaybeCreateJobWithProtocolHandler(
|
||
|
const std::string& scheme,
|
||
|
URLRequest* request,
|
||
|
NetworkDelegate* network_delegate) const = 0;
|
||
|
|
||
|
virtual URLRequestJob* MaybeInterceptRedirect(
|
||
|
URLRequest* request,
|
||
|
NetworkDelegate* network_delegate,
|
||
|
const GURL& location) const = 0;
|
||
|
|
||
|
virtual URLRequestJob* MaybeInterceptResponse(
|
||
|
URLRequest* request,
|
||
|
NetworkDelegate* network_delegate) const = 0;
|
||
|
|
||
|
virtual bool IsHandledProtocol(const std::string& scheme) const = 0;
|
||
|
|
||
|
virtual bool IsSafeRedirectTarget(const GURL& location) const = 0;
|
||
|
|
||
|
protected:
|
||
|
THREAD_CHECKER(thread_checker_);
|
||
|
|
||
|
private:
|
||
|
DISALLOW_COPY_AND_ASSIGN(URLRequestJobFactory);
|
||
|
};
|
||
|
|
||
|
} // namespace net
|
||
|
|
||
|
#endif // NET_URL_REQUEST_URL_REQUEST_JOB_FACTORY_H_
|