// Copyright 2012 The Chromium Authors // 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_DOWNLOADS_DOWNLOADS_DOM_HANDLER_H_ #define CHROME_BROWSER_UI_WEBUI_DOWNLOADS_DOWNLOADS_DOM_HANDLER_H_ #include <stdint.h> #include <set> #include <vector> #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/time/time.h" #include "chrome/browser/download/download_danger_prompt.h" #include "chrome/browser/download/download_warning_desktop_hats_utils.h" #include "chrome/browser/ui/webui/downloads/downloads.mojom-forward.h" #include "chrome/browser/ui/webui/downloads/downloads_list_tracker.h" #include "content/public/browser/web_contents_observer.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/receiver.h" namespace content { class DownloadManager; class WebContents; class WebUI; } namespace download { class DownloadItem; } // Represents the possible outcomes of showing a ESB download row promotion. // These values are persisted to logs. Entries should not be renumbered and // numeric values should never be reused. // // LINT.IfChange(SafeBrowsingEsbDownloadRowPromoOutcome) enum class SafeBrowsingEsbDownloadRowPromoOutcome { … }; // LINT.ThenChange(//tools/metrics/histograms/metadata/safe_browsing/enums.xml:SafeBrowsingEsbDownloadRowPromoOutcome) // Represents the possible actions a user can take on chrome://downloads from // the dangerous download interstitial. // These values are persisted to logs. Entries should not be renumbered and // numeric values should never be reused. // // LINT.IfChange(DangerousDownloadInterstitialAction) enum class DangerousDownloadInterstitialAction { … }; // LINT.ThenChange(//tools/metrics/histograms/metadata/download/enums.xml:DangerousDownloadInterstitialAction) // Represents the possible actions a user can take on the chrome://downloads // dangerous download interstitial that trigger UMA logging of the latency // between opening the interstitial and performing the action. enum class DangerousDownloadInterstitialInteraction { … }; // The handler for Javascript messages related to the "downloads" view, // also observes changes to the download manager. // TODO(calamity): Remove WebUIMessageHandler. class DownloadsDOMHandler : public content::WebContentsObserver, public downloads::mojom::PageHandler { … }; #endif // CHROME_BROWSER_UI_WEBUI_DOWNLOADS_DOWNLOADS_DOM_HANDLER_H_