// Copyright 2013 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.webcontents; import org.chromium.base.CalledByNative; import org.chromium.base.JNINamespace; import org.chromium.content_public.browser.NavigationController; import org.chromium.content_public.browser.WebContents; /** * The WebContentsImpl Java wrapper to allow communicating with the native WebContentsImpl * object. */ @JNINamespace("content") //TODO(tedchoc): Remove the package restriction once this class moves to a non-public content // package whose visibility will be enforced via DEPS. /* package */ class WebContentsImpl implements WebContents { private long mNativeWebContentsAndroid; private NavigationController mNavigationController; private WebContentsImpl( long nativeWebContentsAndroid, NavigationController navigationController) { mNativeWebContentsAndroid = nativeWebContentsAndroid; mNavigationController = navigationController; } @CalledByNative private static WebContentsImpl create( long nativeWebContentsAndroid, NavigationController navigationController) { return new WebContentsImpl(nativeWebContentsAndroid, navigationController); } @CalledByNative private void destroy() { mNativeWebContentsAndroid = 0; mNavigationController = null; } @CalledByNative private long getNativePointer() { return mNativeWebContentsAndroid; } @Override public NavigationController getNavigationController() { return mNavigationController; } }