| Index: chrome/browser/download/download_extension_api.h
|
| diff --git a/chrome/browser/download/download_extension_api.h b/chrome/browser/download/download_extension_api.h
|
| deleted file mode 100644
|
| index 9cf95f4f7dfdef600c59268c3480b20cfbe4638a..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/download/download_extension_api.h
|
| +++ /dev/null
|
| @@ -1,385 +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_DOWNLOAD_DOWNLOAD_EXTENSION_API_H_
|
| -#define CHROME_BROWSER_DOWNLOAD_DOWNLOAD_EXTENSION_API_H_
|
| -#pragma once
|
| -
|
| -#include <map>
|
| -#include <set>
|
| -#include <string>
|
| -
|
| -#include "base/file_path.h"
|
| -#include "base/memory/singleton.h"
|
| -#include "base/stl_util.h"
|
| -#include "base/string16.h"
|
| -#include "base/values.h"
|
| -#include "chrome/browser/extensions/extension_function.h"
|
| -#include "content/public/browser/download_id.h"
|
| -#include "content/public/browser/download_item.h"
|
| -#include "content/public/browser/download_manager.h"
|
| -
|
| -class DownloadFileIconExtractor;
|
| -class DownloadQuery;
|
| -
|
| -namespace content {
|
| -class ResourceContext;
|
| -class ResourceDispatcherHost;
|
| -}
|
| -
|
| -// Functions in the chrome.experimental.downloads namespace facilitate
|
| -// controlling downloads from extensions. See the full API doc at
|
| -// http://goo.gl/6hO1n
|
| -
|
| -namespace download_extension_errors {
|
| -
|
| -// Errors that can be returned through chrome.extension.lastError.message.
|
| -extern const char kGenericError[];
|
| -extern const char kIconNotFoundError[];
|
| -extern const char kInvalidDangerTypeError[];
|
| -extern const char kInvalidFilterError[];
|
| -extern const char kInvalidOperationError[];
|
| -extern const char kInvalidOrderByError[];
|
| -extern const char kInvalidQueryLimit[];
|
| -extern const char kInvalidStateError[];
|
| -extern const char kInvalidUrlError[];
|
| -extern const char kNotImplementedError[];
|
| -
|
| -} // namespace download_extension_errors
|
| -
|
| -class DownloadsFunctionInterface {
|
| - public:
|
| - enum DownloadsFunctionName {
|
| - DOWNLOADS_FUNCTION_DOWNLOAD = 0,
|
| - DOWNLOADS_FUNCTION_SEARCH = 1,
|
| - DOWNLOADS_FUNCTION_PAUSE = 2,
|
| - DOWNLOADS_FUNCTION_RESUME = 3,
|
| - DOWNLOADS_FUNCTION_CANCEL = 4,
|
| - DOWNLOADS_FUNCTION_ERASE = 5,
|
| - DOWNLOADS_FUNCTION_SET_DESTINATION = 6,
|
| - DOWNLOADS_FUNCTION_ACCEPT_DANGER = 7,
|
| - DOWNLOADS_FUNCTION_SHOW = 8,
|
| - DOWNLOADS_FUNCTION_DRAG = 9,
|
| - DOWNLOADS_FUNCTION_GET_FILE_ICON = 10,
|
| - // Insert new values here, not at the beginning.
|
| - DOWNLOADS_FUNCTION_LAST
|
| - };
|
| -
|
| - protected:
|
| - // Return true if args_ is well-formed, otherwise set error_ and return false.
|
| - virtual bool ParseArgs() = 0;
|
| -
|
| - // Implementation-specific logic. "Do the thing that you do." Should return
|
| - // true if the call succeeded and false otherwise.
|
| - virtual bool RunInternal() = 0;
|
| -
|
| - // Which subclass is this.
|
| - virtual DownloadsFunctionName function() const = 0;
|
| -
|
| - // Wrap ParseArgs(), RunInternal().
|
| - static bool RunImplImpl(DownloadsFunctionInterface* pimpl);
|
| -};
|
| -
|
| -class SyncDownloadsFunction : public SyncExtensionFunction,
|
| - public DownloadsFunctionInterface {
|
| - protected:
|
| - explicit SyncDownloadsFunction(DownloadsFunctionName function);
|
| - virtual ~SyncDownloadsFunction();
|
| -
|
| - // ExtensionFunction:
|
| - virtual bool RunImpl() OVERRIDE;
|
| -
|
| - // DownloadsFunctionInterface:
|
| - virtual DownloadsFunctionName function() const OVERRIDE;
|
| -
|
| - content::DownloadItem* GetActiveItem(int download_id);
|
| -
|
| - private:
|
| - DownloadsFunctionName function_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(SyncDownloadsFunction);
|
| -};
|
| -
|
| -class AsyncDownloadsFunction : public AsyncExtensionFunction,
|
| - public DownloadsFunctionInterface {
|
| - protected:
|
| - explicit AsyncDownloadsFunction(DownloadsFunctionName function);
|
| - virtual ~AsyncDownloadsFunction();
|
| -
|
| - // ExtensionFunction:
|
| - virtual bool RunImpl() OVERRIDE;
|
| -
|
| - // DownloadsFunctionInterface:
|
| - virtual DownloadsFunctionName function() const OVERRIDE;
|
| -
|
| - content::DownloadItem* GetActiveItem(int download_id);
|
| -
|
| - private:
|
| - DownloadsFunctionName function_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(AsyncDownloadsFunction);
|
| -};
|
| -
|
| -class DownloadsDownloadFunction : public AsyncDownloadsFunction {
|
| - public:
|
| - DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.download");
|
| -
|
| - DownloadsDownloadFunction();
|
| -
|
| - protected:
|
| - virtual ~DownloadsDownloadFunction();
|
| -
|
| - // DownloadsFunctionInterface:
|
| - virtual bool ParseArgs() OVERRIDE;
|
| - virtual bool RunInternal() OVERRIDE;
|
| -
|
| - private:
|
| - struct IOData {
|
| - public:
|
| - IOData();
|
| - ~IOData();
|
| -
|
| - GURL url;
|
| - string16 filename;
|
| - bool save_as;
|
| - base::ListValue* extra_headers;
|
| - std::string method;
|
| - std::string post_body;
|
| - content::ResourceDispatcherHost* rdh;
|
| - content::ResourceContext* resource_context;
|
| - int render_process_host_id;
|
| - int render_view_host_routing_id;
|
| - };
|
| -
|
| - void BeginDownloadOnIOThread();
|
| - void OnStarted(content::DownloadId dl_id, net::Error error);
|
| -
|
| - scoped_ptr<IOData> iodata_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(DownloadsDownloadFunction);
|
| -};
|
| -
|
| -class DownloadsSearchFunction : public SyncDownloadsFunction {
|
| - public:
|
| - DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.search");
|
| -
|
| - DownloadsSearchFunction();
|
| -
|
| - protected:
|
| - virtual ~DownloadsSearchFunction();
|
| -
|
| - // DownloadsFunctionInterface:
|
| - virtual bool ParseArgs() OVERRIDE;
|
| - virtual bool RunInternal() OVERRIDE;
|
| -
|
| - private:
|
| - bool ParseOrderBy(const base::Value& order_by_value);
|
| -
|
| - scoped_ptr<DownloadQuery> query_;
|
| - int get_id_;
|
| - bool has_get_id_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(DownloadsSearchFunction);
|
| -};
|
| -
|
| -class DownloadsPauseFunction : public SyncDownloadsFunction {
|
| - public:
|
| - DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.pause");
|
| -
|
| - DownloadsPauseFunction();
|
| -
|
| - protected:
|
| - virtual ~DownloadsPauseFunction();
|
| -
|
| - // DownloadsFunctionInterface:
|
| - virtual bool ParseArgs() OVERRIDE;
|
| - virtual bool RunInternal() OVERRIDE;
|
| -
|
| - private:
|
| - int download_id_;
|
| - DISALLOW_COPY_AND_ASSIGN(DownloadsPauseFunction);
|
| -};
|
| -
|
| -class DownloadsResumeFunction : public SyncDownloadsFunction {
|
| - public:
|
| - DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.resume");
|
| -
|
| - DownloadsResumeFunction();
|
| -
|
| - protected:
|
| - virtual ~DownloadsResumeFunction();
|
| -
|
| - // DownloadsFunctionInterface:
|
| - virtual bool ParseArgs() OVERRIDE;
|
| - virtual bool RunInternal() OVERRIDE;
|
| -
|
| - private:
|
| - int download_id_;
|
| - DISALLOW_COPY_AND_ASSIGN(DownloadsResumeFunction);
|
| -};
|
| -
|
| -class DownloadsCancelFunction : public SyncDownloadsFunction {
|
| - public:
|
| - DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.cancel");
|
| -
|
| - DownloadsCancelFunction();
|
| -
|
| - protected:
|
| - virtual ~DownloadsCancelFunction();
|
| -
|
| - // DownloadsFunctionInterface:
|
| - virtual bool ParseArgs() OVERRIDE;
|
| - virtual bool RunInternal() OVERRIDE;
|
| -
|
| - private:
|
| - int download_id_;
|
| - DISALLOW_COPY_AND_ASSIGN(DownloadsCancelFunction);
|
| -};
|
| -
|
| -class DownloadsEraseFunction : public AsyncDownloadsFunction {
|
| - public:
|
| - DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.erase");
|
| -
|
| - DownloadsEraseFunction();
|
| -
|
| - protected:
|
| - virtual ~DownloadsEraseFunction();
|
| -
|
| - // DownloadsFunctionInterface:
|
| - virtual bool ParseArgs() OVERRIDE;
|
| - virtual bool RunInternal() OVERRIDE;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(DownloadsEraseFunction);
|
| -};
|
| -
|
| -class DownloadsSetDestinationFunction : public AsyncDownloadsFunction {
|
| - public:
|
| - DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.setDestination");
|
| -
|
| - DownloadsSetDestinationFunction();
|
| -
|
| - protected:
|
| - virtual ~DownloadsSetDestinationFunction();
|
| -
|
| - // DownloadsFunctionInterface:
|
| - virtual bool ParseArgs() OVERRIDE;
|
| - virtual bool RunInternal() OVERRIDE;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(DownloadsSetDestinationFunction);
|
| -};
|
| -
|
| -class DownloadsAcceptDangerFunction : public AsyncDownloadsFunction {
|
| - public:
|
| - DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.acceptDanger");
|
| -
|
| - DownloadsAcceptDangerFunction();
|
| -
|
| - protected:
|
| - virtual ~DownloadsAcceptDangerFunction();
|
| -
|
| - // DownloadsFunctionInterface:
|
| - virtual bool ParseArgs() OVERRIDE;
|
| - virtual bool RunInternal() OVERRIDE;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(DownloadsAcceptDangerFunction);
|
| -};
|
| -
|
| -class DownloadsShowFunction : public AsyncDownloadsFunction {
|
| - public:
|
| - DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.show");
|
| -
|
| - DownloadsShowFunction();
|
| -
|
| - protected:
|
| - virtual ~DownloadsShowFunction();
|
| -
|
| - // DownloadsFunctionInterface:
|
| - virtual bool ParseArgs() OVERRIDE;
|
| - virtual bool RunInternal() OVERRIDE;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(DownloadsShowFunction);
|
| -};
|
| -
|
| -class DownloadsDragFunction : public AsyncDownloadsFunction {
|
| - public:
|
| - DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.drag");
|
| -
|
| - DownloadsDragFunction();
|
| -
|
| - protected:
|
| - virtual ~DownloadsDragFunction();
|
| -
|
| - // DownloadsFunctionInterface:
|
| - virtual bool ParseArgs() OVERRIDE;
|
| - virtual bool RunInternal() OVERRIDE;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(DownloadsDragFunction);
|
| -};
|
| -
|
| -class DownloadsGetFileIconFunction : public AsyncDownloadsFunction {
|
| - public:
|
| - DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.getFileIcon");
|
| -
|
| - DownloadsGetFileIconFunction();
|
| - void SetIconExtractorForTesting(DownloadFileIconExtractor* extractor);
|
| -
|
| - protected:
|
| - virtual ~DownloadsGetFileIconFunction();
|
| -
|
| - // DownloadsFunctionInterface:
|
| - virtual bool ParseArgs() OVERRIDE;
|
| - virtual bool RunInternal() OVERRIDE;
|
| -
|
| - private:
|
| - void OnIconURLExtracted(const std::string& url);
|
| - FilePath path_;
|
| - int icon_size_;
|
| - scoped_ptr<DownloadFileIconExtractor> icon_extractor_;
|
| - DISALLOW_COPY_AND_ASSIGN(DownloadsGetFileIconFunction);
|
| -};
|
| -
|
| -// Observes a single DownloadManager and many DownloadItems and dispatches
|
| -// onCreated and onErased events.
|
| -class ExtensionDownloadsEventRouter : public content::DownloadManager::Observer,
|
| - public content::DownloadItem::Observer {
|
| - public:
|
| - explicit ExtensionDownloadsEventRouter(Profile* profile);
|
| - virtual ~ExtensionDownloadsEventRouter();
|
| -
|
| - virtual void ModelChanged(content::DownloadManager* manager) OVERRIDE;
|
| - virtual void ManagerGoingDown(content::DownloadManager* manager) OVERRIDE;
|
| - virtual void OnDownloadUpdated(content::DownloadItem* download) OVERRIDE;
|
| - virtual void OnDownloadOpened(content::DownloadItem* download) OVERRIDE;
|
| -
|
| - private:
|
| - struct OnChangedStat {
|
| - OnChangedStat();
|
| - ~OnChangedStat();
|
| - int fires;
|
| - int total;
|
| - };
|
| -
|
| - typedef std::map<int, content::DownloadItem*> ItemMap;
|
| - typedef std::map<int, base::DictionaryValue*> ItemJsonMap;
|
| - typedef std::map<int, OnChangedStat*> OnChangedStatMap;
|
| -
|
| - void Init(content::DownloadManager* manager);
|
| - void DispatchEvent(const char* event_name, base::Value* json_arg);
|
| -
|
| - Profile* profile_;
|
| - content::DownloadManager* manager_;
|
| - ItemMap downloads_;
|
| - ItemJsonMap item_jsons_;
|
| - STLValueDeleter<ItemJsonMap> delete_item_jsons_;
|
| - OnChangedStatMap on_changed_stats_;
|
| - STLValueDeleter<OnChangedStatMap> delete_on_changed_stats_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ExtensionDownloadsEventRouter);
|
| -};
|
| -#endif // CHROME_BROWSER_DOWNLOAD_DOWNLOAD_EXTENSION_API_H_
|
|
|