Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(367)

Unified Diff: chrome/common/component_flash_hint_file.h

Issue 1261333004: Add support for Flash Player Component updates on Linux (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Use SecureHash, fix up unit tests, general cleanup Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/common/component_flash_hint_file.h
diff --git a/chrome/common/component_flash_hint_file.h b/chrome/common/component_flash_hint_file.h
new file mode 100644
index 0000000000000000000000000000000000000000..0f852f840dc6ec8254adfd10f381eef1f5c95a23
--- /dev/null
+++ b/chrome/common/component_flash_hint_file.h
@@ -0,0 +1,58 @@
+// 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_H_
+#define CHROME_COMMON_COMPONENT_FLASH_HINT_FILE_H_
+
+#include <string>
+#include <vector>
+
+#include "base/files/file_util.h"
+#include "crypto/secure_hash.h"
+
+namespace chrome {
+
+// This class 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.
+class ComponentFlashHintFile {
jln (very slow on Chromium) 2015/08/06 18:48:14 This class has only static members. You may want t
Greg K 2015/08/07 21:15:29 Done.
+ public:
+ // Records a new flash update into the hint file.
+ // unpacked_plugin is the current location of the plugin.
jln (very slow on Chromium) 2015/08/06 18:48:14 Use |argument| to document argument "argument".
Greg K 2015/08/07 21:15:28 Done.
+ // moved_plugin is the location where the plugin will be loaded from.
+ static bool RecordFlashUpdate(const base::FilePath& unpacked_plugin,
+ const base::FilePath& moved_plugin,
+ const std::string& version);
+ // Reports whether or not a hints file exists.
+ static bool DoesHintFileExist();
+ // Return the path of the component updated flash plugin, only if the file has
+ // the correct hash sum.
jln (very slow on Chromium) 2015/08/06 18:48:14 Mention and document both arguments.
Greg K 2015/08/07 21:15:29 Done.
+ static 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.
jln (very slow on Chromium) 2015/08/06 18:48:14 nit: "noexec". Explain why this matters. See my o
Greg K 2015/08/07 21:15:28 It's useful so that Chrome can fall back to the bu
+ static bool TestExecutableMapping(const base::FilePath& path);
+
+ private:
+ // This will serialize the file to disk as JSON. The format is:
+ // {
+ // "Version": 0x10,
+ // "HashAlgorithm": SecureHash::SHA256,
+ // "Hash": <Base64 Encoded Hash>,
+ // "PluginPath": /path/to/component/updated/flash.so,
+ // "PluginVersion": "1.0.0.1"
+ // }
+ static bool WriteToDisk(const int version,
+ const crypto::SecureHash::Algorithm algorithm,
+ const std::string& hash,
+ const base::FilePath& plugin_path,
+ const std::string& flash_version);
+ DISALLOW_IMPLICIT_CONSTRUCTORS(ComponentFlashHintFile);
+};
+
+} // namespace chrome
+
+#endif // CHROME_COMMON_COMPONENT_FLASH_HINT_FILE_H_

Powered by Google App Engine
This is Rietveld 408576698