Chromium Code Reviews| 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 |