1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
// 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.
#ifndef CONTENT_BROWSER_FRAME_HOST_NAVIGATION_CONTROLLER_ANDROID_H_
#define CONTENT_BROWSER_FRAME_HOST_NAVIGATION_CONTROLLER_ANDROID_H_
#include <jni.h>
#include "base/android/scoped_java_ref.h"
#include "base/compiler_specific.h"
#include "base/macros.h"
#include "content/common/content_export.h"
namespace content {
class NavigationController;
// Android wrapper around NavigationController that provides safer passage
// from java and back to native and provides java with a means of communicating
// with its native counterpart.
class CONTENT_EXPORT NavigationControllerAndroid {
public:
static bool Register(JNIEnv* env);
explicit NavigationControllerAndroid(
NavigationController* navigation_controller);
~NavigationControllerAndroid();
NavigationController* navigation_controller() const {
return navigation_controller_;
}
base::android::ScopedJavaLocalRef<jobject> GetJavaObject();
jboolean CanGoBack(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj);
jboolean CanGoForward(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj);
jboolean CanGoToOffset(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
jint offset);
void GoBack(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj);
void GoForward(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj);
void GoToOffset(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
jint offset);
jboolean IsInitialNavigation(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj);
void LoadIfNecessary(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj);
void ContinuePendingReload(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj);
void Reload(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
jboolean check_for_repost);
void ReloadToRefreshContent(JNIEnv* env,
jobject obj,
jboolean check_for_repost);
void ReloadIgnoringCache(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
jboolean check_for_repost);
void ReloadDisableLoFi(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
jboolean check_for_repost);
void RequestRestoreLoad(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj);
void CancelPendingReload(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj);
void GoToNavigationIndex(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
jint index);
void LoadUrl(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
const base::android::JavaParamRef<jstring>& url,
jint load_url_type,
jint transition_type,
const base::android::JavaParamRef<jstring>& j_referrer_url,
jint referrer_policy,
jint ua_override_option,
const base::android::JavaParamRef<jstring>& extra_headers,
const base::android::JavaParamRef<jbyteArray>& post_data,
const base::android::JavaParamRef<jstring>& base_url_for_data_url,
const base::android::JavaParamRef<jstring>& virtual_url_for_data_url,
const base::android::JavaParamRef<jstring>& data_url_as_string,
jboolean can_load_local_resources,
jboolean is_renderer_initiated,
jboolean should_replace_current_entry);
void ClearSslPreferences(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& /* obj */);
bool GetUseDesktopUserAgent(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& /* obj */);
void SetUseDesktopUserAgent(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& /* obj */,
jboolean state,
jboolean reload_on_state_change);
base::android::ScopedJavaLocalRef<jobject> GetEntryAtIndex(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
int index);
base::android::ScopedJavaLocalRef<jobject> GetPendingEntry(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& /* obj */);
int GetNavigationHistory(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
const base::android::JavaParamRef<jobject>& history);
void GetDirectedNavigationHistory(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
const base::android::JavaParamRef<jobject>& history,
jboolean is_forward,
jint max_entries);
base::android::ScopedJavaLocalRef<jstring>
GetOriginalUrlForVisibleNavigationEntry(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj);
void ClearHistory(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj);
int GetLastCommittedEntryIndex(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj);
jboolean RemoveEntryAtIndex(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
jint index);
jboolean CanCopyStateOver(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj);
jboolean CanPruneAllButLastCommitted(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj);
void CopyStateFrom(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
jlong source_native_navigation_controller_android);
void CopyStateFromAndPrune(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
jlong source_native_navigation_controller_android,
jboolean replace_entry);
private:
NavigationController* navigation_controller_;
base::android::ScopedJavaGlobalRef<jobject> obj_;
DISALLOW_COPY_AND_ASSIGN(NavigationControllerAndroid);
};
} // namespace content
#endif // CONTENT_BROWSER_FRAME_HOST_NAVIGATION_CONTROLLER_ANDROID_H_
|