navigation_controller_android.cc revision a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7
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#include "content/browser/frame_host/navigation_controller_android.h" 6 7#include "base/android/jni_android.h" 8#include "content/public/browser/navigation_controller.h" 9#include "jni/NavigationControllerImpl_jni.h" 10 11using base::android::AttachCurrentThread; 12 13namespace content { 14 15// static 16bool NavigationControllerAndroid::Register(JNIEnv* env) { 17 return RegisterNativesImpl(env); 18} 19 20NavigationControllerAndroid::NavigationControllerAndroid( 21 NavigationController* navigation_controller) 22 : navigation_controller_(navigation_controller) { 23 JNIEnv* env = AttachCurrentThread(); 24 obj_.Reset(env, 25 Java_NavigationControllerImpl_create( 26 env, reinterpret_cast<intptr_t>(this)).obj()); 27} 28 29NavigationControllerAndroid::~NavigationControllerAndroid() { 30 Java_NavigationControllerImpl_destroy(AttachCurrentThread(), obj_.obj()); 31} 32 33base::android::ScopedJavaLocalRef<jobject> 34NavigationControllerAndroid::GetJavaObject() { 35 return base::android::ScopedJavaLocalRef<jobject>(obj_); 36} 37 38jboolean NavigationControllerAndroid::CanGoBack(JNIEnv* env, jobject obj) { 39 return navigation_controller_->CanGoBack(); 40} 41 42jboolean NavigationControllerAndroid::CanGoForward(JNIEnv* env, 43 jobject obj) { 44 return navigation_controller_->CanGoForward(); 45} 46 47jboolean NavigationControllerAndroid::CanGoToOffset(JNIEnv* env, 48 jobject obj, 49 jint offset) { 50 return navigation_controller_->CanGoToOffset(offset); 51} 52 53void NavigationControllerAndroid::GoBack(JNIEnv* env, jobject obj) { 54 navigation_controller_->GoBack(); 55} 56 57void NavigationControllerAndroid::GoForward(JNIEnv* env, jobject obj) { 58 navigation_controller_->GoForward(); 59} 60 61void NavigationControllerAndroid::GoToOffset(JNIEnv* env, 62 jobject obj, 63 jint offset) { 64 navigation_controller_->GoToOffset(offset); 65} 66 67void NavigationControllerAndroid::GoToNavigationIndex(JNIEnv* env, 68 jobject obj, 69 jint index) { 70 navigation_controller_->GoToIndex(index); 71} 72 73} // namespace content 74