| // Copyright 2012 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. |
| |
| package org.chromium.content.browser; |
| |
| import org.chromium.base.CalledByNative; |
| import org.chromium.base.JNINamespace; |
| |
| /** |
| * Allows the specification and handling of Interstitial pages in java. |
| */ |
| @JNINamespace("content") |
| public class InterstitialPageDelegateAndroid { |
| |
| private long mNativePtr; |
| |
| /** |
| * Constructs an interstitial with the given HTML content. |
| * |
| * @param htmlContent The HTML content for the interstitial. |
| */ |
| public InterstitialPageDelegateAndroid(String htmlContent) { |
| mNativePtr = nativeInit(htmlContent); |
| } |
| |
| /** |
| * @return The pointer to the underlying native counterpart. |
| */ |
| public long getNative() { |
| return mNativePtr; |
| } |
| |
| /** |
| * Called when "proceed" is triggered on the interstitial. |
| */ |
| @CalledByNative |
| protected void onProceed() { |
| } |
| |
| /** |
| * Called when "dont' proceed" is triggered on the interstitial. |
| */ |
| @CalledByNative |
| protected void onDontProceed() { |
| } |
| |
| /** |
| * Called when a command has been received from the interstitial. |
| * |
| * @param command The command that was received. |
| */ |
| @CalledByNative |
| protected void commandReceived(String command) { |
| } |
| |
| @CalledByNative |
| private void onNativeDestroyed() { |
| mNativePtr = 0; |
| } |
| |
| /** |
| * Notifies the native interstitial to proceed. |
| */ |
| protected void proceed() { |
| if (mNativePtr != 0) nativeProceed(mNativePtr); |
| } |
| |
| /** |
| * Notifies the native interstitial to not proceed. |
| */ |
| protected void dontProceed() { |
| if (mNativePtr != 0) nativeDontProceed(mNativePtr); |
| } |
| |
| private native long nativeInit(String htmlContent); |
| private native void nativeProceed(long nativeInterstitialPageDelegateAndroid); |
| private native void nativeDontProceed(long nativeInterstitialPageDelegateAndroid); |
| } |