Index: components/variations/service/ui_string_overrider.h |
diff --git a/components/variations/service/ui_string_overrider.h b/components/variations/service/ui_string_overrider.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f1d3f7b539dba25dc430b9378e40ae7231976576 |
--- /dev/null |
+++ b/components/variations/service/ui_string_overrider.h |
@@ -0,0 +1,51 @@ |
+// 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 COMPONENTS_VARIATIONS_SERVICE_UI_STRING_OVERRIDER_H_ |
+#define COMPONENTS_VARIATIONS_SERVICE_UI_STRING_OVERRIDER_H_ |
+ |
+#include "base/basictypes.h" |
+#include "base/strings/string16.h" |
+ |
+namespace variations { |
+ |
+// Provides a mapping from hashes of generated reosurce names to their IDs. The |
+// mapping is provided by the embedder as two arrays |resource_hashes|, a sorted |
+// array of resource name hashes, and |resource_indices| an array of resource |
+// indices in the same order. |
+// |
+// The mapping is created by generate_resources_map.py based on generated |
+// resources header files. The script ensure that if one header file contains |
+// |#define IDS_FOO 12345| then for some index |i|, |resource_hashes[i]| will |
+// be equal to |HASH("IDS_FOO")| and |resource_indices[i]| will be equal to |
+// |12345|. |
+// |
+// Both array must have the same length |num_resources|. They are not owned by |
+// the UIStringOverrider and the embedder is responsible for their lifetime |
+// (usually by passing pointer to static data). |
+class UIStringOverrider { |
+ public: |
+ UIStringOverrider(); |
+ UIStringOverrider(const uint32_t* resource_hashes, |
+ const int* resource_indices, |
+ size_t num_resources); |
+ ~UIStringOverrider(); |
+ |
+ // Returns the resource index corresponding to the given hash or -1 if no |
+ // resources is found. Visible for testing. |
+ int GetResourceIndex(uint32_t hash); |
+ |
+ // Overrides the string resource specified by |hash| with |string| in the |
+ // resource bundle. |
+ void OverrideUIString(uint32_t hash, const base::string16& string); |
+ |
+ private: |
+ const uint32_t* resource_hashes_; |
+ const int* resource_indices_; |
+ size_t num_resources_; |
Alexei Svitkine (slow)
2015/09/24 21:51:23
Can you declare all of these as const? ie. so they
sdefresne
2015/09/28 08:57:32
Done.
|
+}; |
+ |
+} // namespace variations |
+ |
+#endif // COMPONENTS_VARIATIONS_SERVICE_UI_STRING_OVERRIDER_H_ |