Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(935)

Unified Diff: chrome/browser/download/download_extension_api.h

Issue 9617010: Move chrome.downloads out of experimental to dev (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: merge Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_
« no previous file with comments | « chrome/browser/download/chrome_download_manager_delegate.cc ('k') | chrome/browser/download/download_extension_api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698