1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 | // Use of this source code is governed by a BSD-style license that can be |
3 | // found in the LICENSE file. |
4 | |
5 | package org.chromium.chrome.testshell; |
6 | |
7 | import android.app.Application; |
8 | import android.content.Intent; |
9 | |
10 | import org.chromium.base.PathUtils; |
11 | import org.chromium.content.browser.ResourceExtractor; |
12 | import org.chromium.content.common.CommandLine; |
13 | |
14 | import java.util.ArrayList; |
15 | |
16 | /** |
17 | * A basic test shell {@link Application}. Handles setting up the native library and |
18 | * loading the right resources. |
19 | */ |
20 | public class ChromiumTestShellApplication extends Application { |
21 | private static final String PRIVATE_DATA_DIRECTORY_SUFFIX = "chromiumtestshell"; |
22 | private static final String[] CHROME_MANDATORY_PAKS = { |
23 | "en-US.pak", |
24 | "resources.pak", |
25 | "chrome_100_percent.pak", |
26 | }; |
27 | private static final String COMMAND_LINE_FILE = |
28 | "/data/local/tmp/chromium-testshell-command-line"; |
29 | |
30 | ArrayList<ChromiumTestShellApplicationObserver> mObservers; |
31 | |
32 | @Override |
33 | public void onCreate() { |
34 | super.onCreate(); |
35 | |
36 | ResourceExtractor.setMandatoryPaksToExtract(CHROME_MANDATORY_PAKS); |
37 | PathUtils.setPrivateDataDirectorySuffix(PRIVATE_DATA_DIRECTORY_SUFFIX); |
38 | |
39 | mObservers = new ArrayList<ChromiumTestShellApplicationObserver>(); |
40 | } |
41 | |
42 | @Override |
43 | public void sendBroadcast(Intent intent) { |
44 | boolean shouldFire = true; |
45 | for (ChromiumTestShellApplicationObserver observer : mObservers) { |
46 | shouldFire &= observer.onSendBroadcast(intent); |
47 | } |
48 | |
49 | if (shouldFire) { |
50 | super.sendBroadcast(intent); |
51 | } |
52 | } |
53 | |
54 | public void addObserver(ChromiumTestShellApplicationObserver observer) { |
55 | mObservers.add(observer); |
56 | } |
57 | |
58 | public void removeObserver(ChromiumTestShellApplicationObserver observer) { |
59 | mObservers.remove(observer); |
60 | } |
61 | |
62 | public static void initCommandLine() { |
63 | if (!CommandLine.isInitialized()) |
64 | CommandLine.initFromFile(COMMAND_LINE_FILE); |
65 | } |
66 | } |