// 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 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_