Index: chrome/browser/safe_browsing/malware_report.h |
=================================================================== |
--- chrome/browser/safe_browsing/malware_report.h (revision 0) |
+++ chrome/browser/safe_browsing/malware_report.h (revision 0) |
@@ -0,0 +1,70 @@ |
+// Copyright (c) 2010 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_SAFE_BROWSING_MALWARE_REPORT_H_ |
+#define CHROME_BROWSER_SAFE_BROWSING_MALWARE_REPORT_H_ |
+#pragma once |
+ |
+// A class that encapsulates the detailed malware reports sent when |
+// users opt-in to do so from the malware warning page. |
+ |
+// An instance of this class is generated when a malware warning page |
+// is shown (SafeBrowsingBlockingPage). It is passed on to the |
+// SafeBrowsing service when the warning goes away. |
+ |
+#include <string> |
+#include <vector> |
+ |
+#include "base/hash_tables.h" |
+#include "base/scoped_ptr.h" |
+#include "base/linked_ptr.h" |
lzheng
2010/11/16 00:18:12
header orders: linked_ptr.h should be moved before
panayiotis
2010/11/18 22:04:37
Done.
|
+#include "chrome/browser/safe_browsing/csd.pb.h" |
+#include "chrome/browser/safe_browsing/safe_browsing_service.h" |
+ |
+class TabContents; |
+ |
+class SafeBrowsingMalwareReport: public base::RefCountedThreadSafe< |
lzheng
2010/11/16 00:18:12
there should be a space before ':'. And I would su
panayiotis
2010/11/18 22:04:37
Done.
|
+ SafeBrowsingMalwareReport> { |
+ public: |
+ SafeBrowsingMalwareReport( |
+ TabContents* tab_contents, |
+ const SafeBrowsingService::UnsafeResource resource); |
+ |
+ // The SafeBrowsingService calls this from the IO thread, to get the |
+ // serialized report as a string and send it over. |
+ const std::string* GetSerializedReport(); |
+ |
+ private: |
+ friend class base::RefCountedThreadSafe<SafeBrowsingMalwareReport>; |
+ |
+ typedef base::hash_map< |
+ std::string, |
+ linked_ptr<safe_browsing::ClientMalwareReportRequest::Resource> > |
+ ResourceMap; |
+ |
+ // Starts the collection of the report. |
+ void StartCollection(); |
+ |
+ // Whether the url is "public" so we can add it to the report. |
+ bool IsPublicUrl(const GURL& url) const; |
+ |
+ // Adds a node to |urls_|. |parent| can be empty. |
+ void AddNode(const std::string& url, const std::string& parent); |
+ |
+ ~SafeBrowsingMalwareReport(); |
+ |
+ TabContents* tab_contents_; |
+ const SafeBrowsingService::UnsafeResource resource_; |
+ |
+ // The urls that we collect. We first add them into this map and then |
+ // generate a protocol buffer from it. |
+ ResourceMap urls_; |
+ |
+ // The report protocol buffer. |
+ scoped_ptr<safe_browsing::ClientMalwareReportRequest> report_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(SafeBrowsingMalwareReport); |
+}; |
+ |
+#endif // CHROME_BROWSER_SAFE_BROWSING_MALWARE_REPORT_H_ |
Property changes on: chrome/browser/safe_browsing/malware_report.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |