summaryrefslogtreecommitdiffstats
path: root/ui/base/resource/resource_bundle_android.h
blob: 17e1bd2e9256f24dc39b72e0f84f94abb2271492 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// Copyright 2014 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 UI_BASE_RESOURCE_RESOURCE_BUNDLE_ANDROID_H_
#define UI_BASE_RESOURCE_RESOURCE_BUNDLE_ANDROID_H_

#include <jni.h>
#include <string>

#include "base/basictypes.h"
#include "base/files/memory_mapped_file.h"
#include "ui/base/ui_base_export.h"

namespace ui {

// Loads "resources.apk" from the .apk. Falls back to loading from disk, which
// is necessary for tests.
UI_BASE_EXPORT void LoadMainAndroidPackFile(
    const char* path_within_apk,
    const base::FilePath& disk_file_path);

// Returns the file descriptor and region for resources.pak.
UI_BASE_EXPORT int GetMainAndroidPackFd(
    base::MemoryMappedFile::Region* out_region);

// Returns the file descriptor and region for chrome_100_percent.pak
UI_BASE_EXPORT int GetCommonResourcesPackFd(
    base::MemoryMappedFile::Region* out_region);

// Returns the path within the apk for the given locale's .pak file, or an
// empty string if it doesn't exist.
// Only locale paks for the active Android language can be retrieved.
UI_BASE_EXPORT std::string GetPathForAndroidLocalePakWithinApk(
    const std::string& locale);

bool RegisterResourceBundleAndroid(JNIEnv* env);

}  // namespace ui

#endif  // UI_BASE_RESOURCE_RESOURCE_BUNDLE_ANDROID_H_