#ifndef CHROME_RENDERER_SAFE_BROWSING_MALWARE_DOM_DETAILS_H_
#define CHROME_RENDERER_SAFE_BROWSING_MALWARE_DOM_DETAILS_H_
#include <vector>
#include "base/basictypes.h"
#include "base/compiler_specific.h"
#include "content/public/renderer/render_view_observer.h"
namespace blink {
class WebElement;
}
struct SafeBrowsingHostMsg_MalwareDOMDetails_Node;
namespace safe_browsing {
class MalwareDOMDetails : public content::RenderViewObserver {
 public:
  
  static uint32 kMaxNodes;
  static MalwareDOMDetails* Create(content::RenderView* render_view);
  virtual ~MalwareDOMDetails();
  
  
  void ExtractResources(
      std::vector<SafeBrowsingHostMsg_MalwareDOMDetails_Node>* resources);
 private:
  
  
  
  explicit MalwareDOMDetails(content::RenderView* render_view);
  
  virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
  void OnGetMalwareDOMDetails();
  
  void HandleElement(
      const blink::WebElement& element,
      SafeBrowsingHostMsg_MalwareDOMDetails_Node* parent_node,
      std::vector<SafeBrowsingHostMsg_MalwareDOMDetails_Node>* resources);
  DISALLOW_COPY_AND_ASSIGN(MalwareDOMDetails);
};
}  
#endif