Upstream version 9.37.197.0
[platform/framework/web/crosswalk.git] / src / content / public / android / java / src / org / chromium / content / browser / webcontents / WebContentsImpl.java
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
5 package org.chromium.content.browser.webcontents;
6
7 import org.chromium.base.CalledByNative;
8 import org.chromium.base.JNINamespace;
9 import org.chromium.content_public.browser.NavigationController;
10 import org.chromium.content_public.browser.WebContents;
11
12 /**
13  * The WebContentsImpl Java wrapper to allow communicating with the native WebContentsImpl
14  * object.
15  */
16 @JNINamespace("content")
17 //TODO(tedchoc): Remove the package restriction once this class moves to a non-public content
18 //               package whose visibility will be enforced via DEPS.
19 /* package */ class WebContentsImpl implements WebContents {
20
21     private long mNativeWebContentsAndroid;
22     private NavigationController mNavigationController;
23
24     private WebContentsImpl(
25             long nativeWebContentsAndroid, NavigationController navigationController) {
26         mNativeWebContentsAndroid = nativeWebContentsAndroid;
27         mNavigationController = navigationController;
28     }
29
30     @CalledByNative
31     private static WebContentsImpl create(
32             long nativeWebContentsAndroid, NavigationController navigationController) {
33         return new WebContentsImpl(nativeWebContentsAndroid, navigationController);
34     }
35
36     @CalledByNative
37     private void destroy() {
38         mNativeWebContentsAndroid = 0;
39         mNavigationController = null;
40     }
41
42     @CalledByNative
43     private long getNativePointer() {
44         return mNativeWebContentsAndroid;
45     }
46
47     @Override
48     public NavigationController getNavigationController() {
49         return mNavigationController;
50     }
51
52     @Override
53     public String getTitle() {
54         return nativeGetTitle(mNativeWebContentsAndroid);
55     }
56
57     @Override
58     public String getVisibleUrl() {
59         return nativeGetVisibleURL(mNativeWebContentsAndroid);
60     }
61
62     @Override
63     public void stop() {
64         nativeStop(mNativeWebContentsAndroid);
65     }
66
67     private native String nativeGetTitle(long nativeWebContentsAndroid);
68     private native String nativeGetVisibleURL(long nativeWebContentsAndroid);
69     private native void nativeStop(long nativeWebContentsAndroid);
70 }