| Index: content/public/browser/url_data_source_delegate.h
|
| ===================================================================
|
| --- content/public/browser/url_data_source_delegate.h (revision 0)
|
| +++ content/public/browser/url_data_source_delegate.h (revision 0)
|
| @@ -0,0 +1,80 @@
|
| +// Copyright (c) 2013 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 CONTENT_PUBLIC_BROWSER_URL_DATA_SOURCE_DELEGATE_H_
|
| +#define CONTENT_PUBLIC_BROWSER_URL_DATA_SOURCE_DELEGATE_H_
|
| +
|
| +#include <string>
|
| +
|
| +#include "content/common/content_export.h"
|
| +
|
| +class ChromeURLDataManager;
|
| +class ChromeURLDataManagerBackend;
|
| +class ChromeWebUIDataSource;
|
| +class MessageLoop;
|
| +class URLDataSource;
|
| +
|
| +namespace content {
|
| +
|
| +// An interface implemented by a creator of URLDataSource to customize its
|
| +// behavior.
|
| +class CONTENT_EXPORT URLDataSourceDelegate {
|
| + public:
|
| + URLDataSourceDelegate();
|
| + virtual ~URLDataSourceDelegate();
|
| +
|
| + // The name of this source.
|
| + // E.g., for favicons, this could be "favicon", which results in paths for
|
| + // specific resources like "favicon/34" getting sent to this source.
|
| + virtual std::string GetSource() = 0;
|
| +
|
| + // Called by URLDataSource to request data at |path|. The delegate should
|
| + // call URLDataSource::SendResponse() when the data is available or if the
|
| + // request could not be satisfied.
|
| + virtual void StartDataRequest(const std::string& path,
|
| + bool is_incognito,
|
| + int request_id) = 0;
|
| +
|
| + // Return the mimetype that should be sent with this response, or empty
|
| + // string to specify no mime type.
|
| + virtual std::string GetMimeType(const std::string& path) const = 0;
|
| +
|
| + // Returns the MessageLoop on which the delegate wishes to have
|
| + // StartDataRequest called to handle the request for |path|. The default
|
| + // implementation returns BrowserThread::UI. If the delegate does not care
|
| + // which thread StartDataRequest is called on, this should return NULL. It may
|
| + // be beneficial to return NULL for requests that are safe to handle directly
|
| + // on the IO thread. This can improve performance by satisfying such requests
|
| + // more rapidly when there is a large amount of UI thread contention. Or the
|
| + // delegate can return a specific thread's Messageloop if they wish.
|
| + virtual MessageLoop* MessageLoopForRequestPath(const std::string& path) const;
|
| +
|
| + // Returns true if the URLDataSource should replace an existing URLDataSource
|
| + // with the same name that has already been registered. The default is true.
|
| + //
|
| + // WARNING: this is invoked on the IO thread.
|
| + //
|
| + // TODO: nuke this and convert all callers to not replace.
|
| + virtual bool ShouldReplaceExistingSource() const;
|
| +
|
| + // Returns true if responses from this URLDataSource can be cached.
|
| + virtual bool AllowCaching() const;
|
| +
|
| + void set_url_data_source_for_testing(URLDataSource* url_data_source) {
|
| + url_data_source_ = url_data_source;
|
| + }
|
| +
|
| + protected:
|
| + URLDataSource* url_data_source() { return url_data_source_; }
|
| +
|
| + private:
|
| + friend class ::ChromeURLDataManager;
|
| + friend class ::ChromeURLDataManagerBackend;
|
| + friend class ::ChromeWebUIDataSource;
|
| + URLDataSource* url_data_source_;
|
| +};
|
| +
|
| +} // namespace content
|
| +
|
| +#endif // CONTENT_PUBLIC_BROWSER_URL_DATA_SOURCE_DELEGATE_H_
|
|
|
| Property changes on: content\public\browser\url_data_source_delegate.h
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|