// Copyright (c) 2013 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_SCHEME_HANDLER_H_
#define CEF_LIBCEF_BROWSER_SCHEME_HANDLER_H_
#pragma once

#include "include/cef_frame.h"

#include "content/public/browser/content_browser_client.h"
#include "url/gurl.h"

namespace net {
class FtpTransactionFactory;
class URLRequestJobFactoryImpl;
}

namespace scheme {

// Install the internal scheme handlers provided by Chromium that cannot be
// overridden.
void InstallInternalProtectedHandlers(
    net::URLRequestJobFactoryImpl* job_factory,
    content::ProtocolHandlerMap* protocol_handlers,
    net::FtpTransactionFactory* ftp_transaction_factory);

// Register the internal scheme handlers that can be overridden.
void RegisterInternalHandlers();

// Used to fire any asynchronous content updates.
void DidFinishLoad(CefRefPtr<CefFrame> frame, const GURL& validated_url);

}  // namespace scheme

#endif  // CEF_LIBCEF_BROWSER_SCHEME_HANDLER_H_