| Index: chrome/browser/ui/webui/chrome_url_data_manager_backend.h
|
| ===================================================================
|
| --- chrome/browser/ui/webui/chrome_url_data_manager_backend.h (revision 178359)
|
| +++ chrome/browser/ui/webui/chrome_url_data_manager_backend.h (working copy)
|
| @@ -1,105 +0,0 @@
|
| -// Copyright (c) 2012 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_UI_WEBUI_CHROME_URL_DATA_MANAGER_BACKEND_H_
|
| -#define CHROME_BROWSER_UI_WEBUI_CHROME_URL_DATA_MANAGER_BACKEND_H_
|
| -
|
| -#include <map>
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/compiler_specific.h"
|
| -#include "chrome/browser/ui/webui/chrome_url_data_manager.h"
|
| -#include "net/url_request/url_request_job_factory.h"
|
| -
|
| -class ChromeURLDataManagerBackend;
|
| -class GURL;
|
| -class URLRequestChromeJob;
|
| -
|
| -namespace base {
|
| -class RefCountedMemory;
|
| -}
|
| -
|
| -namespace net {
|
| -class NetworkDelegate;
|
| -class URLRequest;
|
| -class URLRequestJob;
|
| -}
|
| -
|
| -// ChromeURLDataManagerBackend is used internally by ChromeURLDataManager on the
|
| -// IO thread. In most cases you can use the API in ChromeURLDataManager and
|
| -// ignore this class. ChromeURLDataManagerBackend is owned by
|
| -// ChromeURLRequestContext.
|
| -class ChromeURLDataManagerBackend {
|
| - public:
|
| - typedef int RequestID;
|
| -
|
| - ChromeURLDataManagerBackend();
|
| - ~ChromeURLDataManagerBackend();
|
| -
|
| - // Invoked to create the protocol handler for chrome://. |is_incognito| should
|
| - // be set for incognito profiles.
|
| - static net::URLRequestJobFactory::ProtocolHandler* CreateProtocolHandler(
|
| - ChromeURLDataManagerBackend* backend,
|
| - bool is_incognito);
|
| -
|
| - // Adds a DataSource to the collection of data sources.
|
| - void AddDataSource(URLDataSourceImpl* source);
|
| -
|
| - // DataSource invokes this. Sends the data to the URLRequest.
|
| - void DataAvailable(RequestID request_id, base::RefCountedMemory* bytes);
|
| -
|
| - static net::URLRequestJob* Factory(net::URLRequest* request,
|
| - const std::string& scheme);
|
| -
|
| - private:
|
| - friend class URLRequestChromeJob;
|
| -
|
| - typedef std::map<std::string,
|
| - scoped_refptr<URLDataSourceImpl> > DataSourceMap;
|
| - typedef std::map<RequestID, URLRequestChromeJob*> PendingRequestMap;
|
| -
|
| - // Called by the job when it's starting up.
|
| - // Returns false if |url| is not a URL managed by this object.
|
| - bool StartRequest(const GURL& url, URLRequestChromeJob* job);
|
| -
|
| - // Helper function to call StartDataRequest on |source|'s delegate. This is
|
| - // needed because while we want to call URLDataSourceDelegate's method, we
|
| - // need to add a refcount on the source.
|
| - static void CallStartRequest(scoped_refptr<URLDataSourceImpl> source,
|
| - const std::string& path,
|
| - bool is_incognito,
|
| - int request_id);
|
| -
|
| - // Remove a request from the list of pending requests.
|
| - void RemoveRequest(URLRequestChromeJob* job);
|
| -
|
| - // Returns true if the job exists in |pending_requests_|. False otherwise.
|
| - // Called by ~URLRequestChromeJob to verify that |pending_requests_| is kept
|
| - // up to date.
|
| - bool HasPendingJob(URLRequestChromeJob* job) const;
|
| -
|
| - // Custom sources of data, keyed by source path (e.g. "favicon").
|
| - DataSourceMap data_sources_;
|
| -
|
| - // All pending URLRequestChromeJobs, keyed by ID of the request.
|
| - // URLRequestChromeJob calls into this object when it's constructed and
|
| - // destructed to ensure that the pointers in this map remain valid.
|
| - PendingRequestMap pending_requests_;
|
| -
|
| - // The ID we'll use for the next request we receive.
|
| - RequestID next_request_id_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ChromeURLDataManagerBackend);
|
| -};
|
| -
|
| -// Creates protocol handler for chrome-devtools://. |is_incognito| should be
|
| -// set for incognito profiles.
|
| -net::URLRequestJobFactory::ProtocolHandler*
|
| -CreateDevToolsProtocolHandler(ChromeURLDataManagerBackend* backend,
|
| - net::NetworkDelegate* network_delegate,
|
| - bool is_incognito);
|
| -
|
| -#endif // CHROME_BROWSER_UI_WEBUI_CHROME_URL_DATA_MANAGER_BACKEND_H_
|
|
|