blob: 3044482971556e673498b0a3df4e2c219fbaa99f [file] [log] [blame]
// Copyright 2017 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_DISK_IMAGE_TYPE_SNIFFER_MAC_H_
#define CHROME_BROWSER_SAFE_BROWSING_DISK_IMAGE_TYPE_SNIFFER_MAC_H_
#include "base/files/file.h"
#include "base/files/file_path.h"
#include "base/memory/ref_counted.h"
namespace safe_browsing {
// This class is used to determine whether a given file is a Mac archive type,
// regardless of file extension. It does so by determining whether the file has
// the 'koly' signature typical of Mac archive files.
class DiskImageTypeSnifferMac
: public base::RefCountedThreadSafe<DiskImageTypeSnifferMac> {
public:
DiskImageTypeSnifferMac();
// Reads trailer from file to see if it is a DMG type. Must be called on the
// FILE thread.
static bool IsAppleDiskImage(const base::FilePath& dmg_file);
private:
friend class base::RefCountedThreadSafe<DiskImageTypeSnifferMac>;
~DiskImageTypeSnifferMac();
DISALLOW_COPY_AND_ASSIGN(DiskImageTypeSnifferMac);
};
} // namespace safe_browsing
#endif // CHROME_BROWSER_SAFE_BROWSING_DISK_IMAGE_TYPE_SNIFFE_MAC_H_