1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Use of this source code is governed by a BSD-style license that can be 3ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// found in the LICENSE file. 4ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 5ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#ifndef CHROME_BROWSER_CRASH_UPLOAD_LIST_WIN_H_ 6ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#define CHROME_BROWSER_CRASH_UPLOAD_LIST_WIN_H_ 7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#pragma once 8ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/crash_upload_list.h" 10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/compiler_specific.h" 11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// A CrashUploadList that retrieves the list of reported crashes 13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// from the Windows Event Log. 14ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass CrashUploadListWin : public CrashUploadList { 15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen public: 16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen explicit CrashUploadListWin(Delegate* delegate); 17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen protected: 19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Loads the list of crashes from the Windows Event Log. 20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void LoadCrashList() OVERRIDE; 21ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 22ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen private: 23ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Returns whether the event record is likely a Chrome crash log. 24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen bool IsPossibleCrashLogRecord(EVENTLOGRECORD* record) const; 25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Parses the event record and adds it to the crash list. 27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen void ProcessPossibleCrashLogRecord(EVENTLOGRECORD* record); 28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen DISALLOW_COPY_AND_ASSIGN(CrashUploadListWin); 30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}; 31ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 32ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#endif // CHROME_BROWSER_CRASH_UPLOAD_LIST_WIN_H_ 33