Index: chrome/browser/dom_ui/downloads_ui.h |
=================================================================== |
--- chrome/browser/dom_ui/downloads_ui.h (revision 0) |
+++ chrome/browser/dom_ui/downloads_ui.h (revision 0) |
@@ -0,0 +1,120 @@ |
+// Copyright (c) 2006-2008 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_DOM_UI_DOWNLOADS_UI_H_ |
+#define CHROME_BROWSER_DOM_UI_DOWNLOADS_UI_H_ |
+ |
+#include "chrome/browser/dom_ui/chrome_url_data_manager.h" |
+#include "chrome/browser/dom_ui/dom_ui.h" |
+#include "chrome/browser/dom_ui/dom_ui_contents.h" |
+#include "chrome/browser/download/download_manager.h" |
+ |
+class GURL; |
+ |
+class DownloadsUIHTMLSource : public ChromeURLDataManager::DataSource { |
+ public: |
+ DownloadsUIHTMLSource(); |
+ |
+ // Called when the network layer has requested a resource underneath |
+ // the path we registered. |
+ virtual void StartDataRequest(const std::string& path, int request_id); |
+ virtual std::string GetMimeType(const std::string&) const { |
+ return "text/html"; |
+ } |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(DownloadsUIHTMLSource); |
+}; |
+ |
+// The handler for Javascript messages related to the "downloads" view, |
+// also observes changes to the download manager. |
+class DownloadsDOMHandler : public DOMMessageHandler, |
+ public DownloadManager::Observer, |
+ public DownloadItem::Observer { |
+ public: |
+ explicit DownloadsDOMHandler(DOMUI* dom_ui, DownloadManager* dlm); |
+ virtual ~DownloadsDOMHandler(); |
+ |
+ void Init(); |
+ |
+ // DownloadItem::Observer interface |
+ virtual void OnDownloadUpdated(DownloadItem* download); |
+ |
+ // DownloadManager::Observer interface |
+ virtual void ModelChanged(); |
+ virtual void SetDownloads(std::vector<DownloadItem*>& downloads); |
+ |
+ // Callback for the "getDownloads" message. |
+ void HandleGetDownloads(const Value* value); |
+ |
+ // Callback for the "openFile" message - opens the file in the shell. |
+ void HandleOpenFile(const Value* value); |
+ |
+ // Callback for the "drag" message - initiates a file object drag. |
+ void HandleDrag(const Value* value); |
+ |
+ // Callback for the "saveDangerous" message - specifies that the user |
+ // wishes to save a dangerous file. |
+ void HandleSaveDangerous(const Value* value); |
+ |
+ // Callback for the "discardDangerous" message - specifies that the user |
+ // wishes to discard (remove) a dangerous file. |
+ void HandleDiscardDangerous(const Value* value); |
+ |
+ // Callback for the "show" message - shows the file in explorer. |
+ void HandleShow(const Value* value); |
+ |
+ // Callback for the "pause" message - pauses the file download. |
+ void HandlePause(const Value* value); |
+ |
+ // Callback for the "cancel" message - cancels the download. |
+ void HandleCancel(const Value* value); |
+ |
+ private: |
+ // Send the current list of downloads to the page. |
+ void SendCurrentDownloads(); |
+ |
+ // Creates a representation of a download in a format that the downloads |
+ // HTML page can understand. |
+ DictionaryValue* CreateDownloadItemValue(DownloadItem* download, int id); |
+ |
+ // Clear all download items and their observers. |
+ void ClearDownloadItems(); |
+ |
+ // Return the download that corresponds to a given id. |
+ DownloadItem* GetDownloadById(int id); |
+ |
+ // Current search text. |
+ std::wstring search_text_; |
+ |
+ // Our model |
+ DownloadManager* download_manager_; |
+ |
+ // The current set of visible DownloadItems for this view received from the |
+ // DownloadManager. DownloadManager owns the DownloadItems. The vector is |
+ // kept in order, sorted by ascending start time. |
+ typedef std::vector<DownloadItem*> OrderedDownloads; |
+ OrderedDownloads download_items_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(DownloadsDOMHandler); |
+}; |
+ |
+class DownloadsUI : public DOMUI { |
+ public: |
+ explicit DownloadsUI(DOMUIContents* contents); |
+ |
+ // Return the URL for the front page of this UI. |
+ static GURL GetBaseURL(); |
+ |
+ // DOMUI Implementation |
+ virtual void Init(); |
+ |
+ private: |
+ DOMUIContents* contents_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(DownloadsUI); |
+}; |
+ |
+#endif // CHROME_BROWSER_DOM_UI_DOWNLOADS_UI_H_ |
+ |
Property changes on: chrome\browser\dom_ui\downloads_ui.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |