14e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
24e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
34e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// found in the LICENSE file.
44e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
54e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)package org.chromium.chrome.browser;
64e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
74e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)import org.chromium.base.CalledByNative;
84e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)import org.chromium.content.app.ContentApplication;
94e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)/**
114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) * Basic application functionality that should be shared among all browser applications that use
124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) * chrome layer.
134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) */
144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)public abstract class ChromiumApplication extends ContentApplication {
154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    /**
164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)     * Opens a protected content settings page, if available.
174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)     */
184e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    @CalledByNative
194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    protected abstract void openProtectedContentSettings();
201e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
211e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    @CalledByNative
221e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    protected abstract void showSyncSettings();
231e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
241e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    @CalledByNative
251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    protected abstract void showAutofillSettings();
261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    @CalledByNative
281e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    protected abstract void showTermsOfServiceDialog();
295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    /**
31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)     * Opens the UI to clear browsing data.
32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)     * @param tab The tab that triggered the request.
33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)     */
34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    @CalledByNative
35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    protected abstract void openClearBrowsingData(Tab tab);
36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
37cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    /**
385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)     * @return Whether parental controls are enabled.  Returning true will disable
395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)     *         incognito mode.
405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)     */
415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    @CalledByNative
425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    protected abstract boolean areParentalControlsEnabled();
435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    // TODO(yfriedman): This is too widely available. Plumb this through ChromeNetworkDelegate
455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    // instead.
465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    protected abstract PKCS11AuthenticationManager getPKCS11AuthenticationManager();
474e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)}
48