summaryrefslogtreecommitdiff
path: root/chromium/content/browser/safe_util_win.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/browser/safe_util_win.h')
-rw-r--r--chromium/content/browser/safe_util_win.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/chromium/content/browser/safe_util_win.h b/chromium/content/browser/safe_util_win.h
new file mode 100644
index 00000000000..38604298d49
--- /dev/null
+++ b/chromium/content/browser/safe_util_win.h
@@ -0,0 +1,53 @@
+// 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 CONTENT_COMMON_SAFE_UTIL_WIN_H_
+#define CONTENT_COMMON_SAFE_UTIL_WIN_H_
+
+#include <string>
+#include <windows.h>
+
+class GURL;
+
+namespace base {
+class FilePath;
+}
+
+namespace content {
+
+// Invokes IAttachmentExecute::Save to validate the downloaded file. The call
+// may scan the file for viruses and if necessary, annotate it with evidence. As
+// a result of the validation, the file may be deleted. See:
+// http://msdn.microsoft.com/en-us/bb776299
+//
+// If Attachment Execution Services is unavailable, then this function will
+// attempt to manually annotate the file with security zone information. A
+// failure code will be returned in this case even if the file is sucessfully
+// annotated.
+//
+// IAE::Save() will delete the file if it was found to be blocked by local
+// security policy or if it was found to be infected. The call may also delete
+// the file due to other failures (http://crbug.com/153212). A failure code will
+// be returned in these cases.
+//
+// Typical return values:
+// S_OK : The file was okay. If any viruses were found, they were cleaned.
+// E_FAIL : Virus infected.
+// INET_E_SECURITY_PROBLEM : The file was blocked due to security policy.
+//
+// Any other return value indicates an unexpected error during the scan.
+//
+// |full_path| : is the path to the downloaded file. This should be the final
+// path of the download. Must be present.
+// |source_url|: the source URL for the download. If empty, the source will
+// not be set.
+// |client_guid|: the GUID to be set in the IAttachmentExecute client slot.
+// Used to identify the app to the system AV function.
+// If GUID_NULL is passed, no client GUID is set.
+HRESULT AVScanFile(const base::FilePath& full_path,
+ const std::string& source_url,
+ const GUID& client_guid);
+} // namespace content
+
+#endif // CONTENT_COMMON_SAFE_UTIL_WIN_H_