File: resource_bundle_android.h

package info (click to toggle)
chromium 139.0.7258.127-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 6,122,068 kB
  • sloc: cpp: 35,100,771; ansic: 7,163,530; javascript: 4,103,002; python: 1,436,920; asm: 946,517; xml: 746,709; pascal: 187,653; perl: 88,691; sh: 88,436; objc: 79,953; sql: 51,488; cs: 44,583; fortran: 24,137; makefile: 22,147; tcl: 15,277; php: 13,980; yacc: 8,984; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (70 lines) | stat: -rw-r--r-- 2,816 bytes parent folder | download | duplicates (3)
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// Copyright 2014 The Chromium Authors
// 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/component_export.h"
#include "base/files/memory_mapped_file.h"
#include "ui/base/resource/resource_bundle.h"

namespace ui {

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

// Loads a PAK file from the APK and makes the contained resources accessible.
COMPONENT_EXPORT(UI_BASE)
void LoadPackFileFromApk(const std::string& path,
                         const std::string& split_name);

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

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

// Returns the file descriptors and regions for the locale .pak files. The first
// item in the vector is the main translation, and if a string cannot be found
// there, then we should fall back to the next item in the vector, and so on.
COMPONENT_EXPORT(UI_BASE)
const std::vector<ResourceBundle::FdAndRegion>& GetLocalePaks();

// Tell ResourceBundle to locate locale pak files via
// GetPathForAndroidLocalePakWithinApk rather than looking for them on disk.
COMPONENT_EXPORT(UI_BASE) void SetLocalePaksStoredInApk(bool value);

// Tell ResourceBundle to determine whether load non-webview locale .pak files
// based on whether non-webview locale .pak files exist.
COMPONENT_EXPORT(UI_BASE) void DetectAndSetLoadNonWebViewLocalePaks();

// Called in test when there are no locale pak files available.
COMPONENT_EXPORT(UI_BASE) void SetNoAvailableLocalePaksForTest();

// Called by ResourceBundle::UnloadLocaleResources() to clear Android-specific
// locale state.
COMPONENT_EXPORT(UI_BASE) void UnloadAndroidLocaleResources();

// Returns the existing locale packs and sets them to the given instance. This
// passes vectors by copy, but the vectors should be only up to size 4.
COMPONENT_EXPORT(UI_BASE)
std::vector<ResourceBundle::FdAndRegion> SwapAndroidGlobalsForTesting(
    const std::vector<ResourceBundle::FdAndRegion>& new_locale_packs);

// Get the density of the primary display. Use this instead of using Display
// to avoid initializing Display in child processes.
float GetPrimaryDisplayScale();

}  // namespace ui

#endif  // UI_BASE_RESOURCE_RESOURCE_BUNDLE_ANDROID_H_