1// Copyright 2013 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
5package org.chromium.chrome.browser;
6
7import org.chromium.base.CalledByNative;
8import org.chromium.content.app.ContentApplication;
9
10/**
11 * Basic application functionality that should be shared among all browser applications that use
12 * chrome layer.
13 */
14public abstract class ChromiumApplication extends ContentApplication {
15    /**
16     * Opens a protected content settings page, if available.
17     */
18    @CalledByNative
19    protected abstract void openProtectedContentSettings();
20
21    @CalledByNative
22    protected abstract void showSyncSettings();
23
24    @CalledByNative
25    protected abstract void showAutofillSettings();
26
27    @CalledByNative
28    protected abstract void showTermsOfServiceDialog();
29
30    /**
31     * Opens the UI to clear browsing data.
32     * @param tab The tab that triggered the request.
33     */
34    @CalledByNative
35    protected abstract void openClearBrowsingData(Tab tab);
36
37    /**
38     * @return Whether parental controls are enabled.  Returning true will disable
39     *         incognito mode.
40     */
41    @CalledByNative
42    protected abstract boolean areParentalControlsEnabled();
43
44    // TODO(yfriedman): This is too widely available. Plumb this through ChromeNetworkDelegate
45    // instead.
46    protected abstract PKCS11AuthenticationManager getPKCS11AuthenticationManager();
47}
48