blob: 85694ce42843e1fbf4efccd86a29597b37707a6a [file] [log] [blame]
// Copyright 2015 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_COMMON_COMPONENT_FLASH_HINT_FILE_LINUX_H_
#define CHROME_COMMON_COMPONENT_FLASH_HINT_FILE_LINUX_H_
#include "build/build_config.h"
#if !defined(OS_LINUX)
#error "This file only applies to the Linux component update of Flash."
#endif // !defined(OS_LINUX)
#include <string>
namespace base {
class FilePath;
}
// The APIs in this namespace wraps the component updated flash hint file, which
// lives inside the PepperFlash folder of the user-data-dir, so that the Linux
// zygote process can preload the right version of flash.
namespace component_flash_hint_file {
// Records a new flash update into the hint file.
// |unpacked_plugin| is the current location of the plugin.
// |moved_plugin| is the location where the plugin will be loaded from.
bool RecordFlashUpdate(const base::FilePath& unpacked_plugin,
const base::FilePath& moved_plugin,
const std::string& version);
// Reports whether or not a hints file exists.
bool DoesHintFileExist();
// Return the path of the component updated flash plugin, only if the file has
// the correct hash sum.
// |path| will be populated with the path to the flash plugin.
// |version| will be populated with the version of the flash plugin.
bool VerifyAndReturnFlashLocation(base::FilePath* path, std::string* version);
// Test if the specified plugin file can be mapped executable.
// This is useful to test if the flash plugin is in a directory mounted
// noexec, in which case Chrome will not be able to load and use the plugin.
// |path| is the path of the flash plugin that will mapped executable.
bool TestExecutableMapping(const base::FilePath& path);
} // namespace component_flash_hint_file
#endif // CHROME_COMMON_COMPONENT_FLASH_HINT_FILE_LINUX_H_