Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(769)

Side by Side Diff: content/browser/android/content_view_client.h

Issue 10963041: Revert "Revert 158067 - Remove native side of content_view_client" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add additional_input_paths as a variable and input to java.gypi Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012 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 #ifndef CONTENT_BROWSER_ANDROID_CONTENT_VIEW_CLIENT_H_
6 #define CONTENT_BROWSER_ANDROID_CONTENT_VIEW_CLIENT_H_
7
8 #include "base/android/jni_helper.h"
9 #include "base/compiler_specific.h"
10 #include "content/public/browser/native_web_keyboard_event.h"
11 #include "content/public/common/referrer.h"
12 #include "googleurl/src/gurl.h"
13 #include "net/base/net_errors.h"
14
15 namespace content {
16
17 class DownloadItem;
18 class JavaScriptDialogCreator;
19 struct NativeWebKeyboardEvent;
20 class RenderViewHost;
21 class WebContents;
22
23 // These enums must be kept in sync with ContentViewClient.java
24 enum ContentViewClientError {
25 // Success
26 CONTENT_VIEW_CLIENT_ERROR_OK = 0,
27 // Generic error
28 CONTENT_VIEW_CLIENT_ERROR_UNKNOWN = -1,
29 // Server or proxy hostname lookup failed
30 CONTENT_VIEW_CLIENT_ERROR_HOST_LOOKUP = -2,
31 // Unsupported authentication scheme (not basic or digest)
32 CONTENT_VIEW_CLIENT_ERROR_UNSUPPORTED_AUTH_SCHEME = -3,
33 // User authentication failed on server
34 CONTENT_VIEW_CLIENT_ERROR_AUTHENTICATION = -4,
35 // User authentication failed on proxy
36 CONTENT_VIEW_CLIENT_ERROR_PROXY_AUTHENTICATION = -5,
37 // Failed to connect to the server
38 CONTENT_VIEW_CLIENT_ERROR_CONNECT = -6,
39 // Failed to read or write to the server
40 CONTENT_VIEW_CLIENT_ERROR_IO = -7,
41 // Connection timed out
42 CONTENT_VIEW_CLIENT_ERROR_TIMEOUT = -8,
43 // Too many redirects
44 CONTENT_VIEW_CLIENT_ERROR_REDIRECT_LOOP = -9,
45 // Unsupported URI scheme
46 CONTENT_VIEW_CLIENT_ERROR_UNSUPPORTED_SCHEME = -10,
47 // Failed to perform SSL handshake
48 CONTENT_VIEW_CLIENT_ERROR_FAILED_SSL_HANDSHAKE = -11,
49 // Malformed URL
50 CONTENT_VIEW_CLIENT_ERROR_BAD_URL = -12,
51 // Generic file error
52 CONTENT_VIEW_CLIENT_ERROR_FILE = -13,
53 // File not found
54 CONTENT_VIEW_CLIENT_ERROR_FILE_NOT_FOUND = -14,
55 // Too many requests during this load
56 CONTENT_VIEW_CLIENT_ERROR_TOO_MANY_REQUESTS = -15,
57 };
58
59 // Native mirror of ContentViewClient.java. Used as a client of
60 // ContentView, the main FrameLayout on Android.
61 // TODO(joth): Delete this C++ class, to make it Java-only. All the callbacks
62 // defined here originate in WebContentsObserver; we should have a dedicated
63 // bridge class for that rather than overloading ContentViewClient with this.
64 // See http://crbug.com/137967
65 class ContentViewClient {
66 public:
67 ContentViewClient(JNIEnv* env, jobject obj);
68 ~ContentViewClient();
69
70 static ContentViewClient* CreateNativeContentViewClient(JNIEnv* env,
71 jobject obj);
72
73 // Called by ContentView:
74 void OnPageStarted(const GURL& url);
75 void OnPageFinished(const GURL& url);
76 void OnLoadStarted();
77 void OnLoadStopped();
78 void OnReceivedError(int error_code,
79 const string16& description,
80 const GURL& url);
81 void OnDidCommitMainFrame(const GURL& url,
82 const GURL& base_url);
83 void OnInterstitialShown();
84 void OnInterstitialHidden();
85
86 private:
87 // Get the closest ContentViewClient match to the given Chrome error code.
88 static ContentViewClientError ToContentViewClientError(int net_error);
89
90 // We depend on ContentView.java to hold a ref to the client object. If we
91 // were to hold a hard ref from native we could end up with a cyclic
92 // ownership leak (the GC can't collect cycles if part of the cycle is caused
93 // by native).
94 JavaObjectWeakGlobalRef weak_java_client_;
95 };
96
97 bool RegisterContentViewClient(JNIEnv* env);
98
99 } // namespace content
100
101 #endif // CONTENT_BROWSER_ANDROID_CONTENT_VIEW_CLIENT_H_
OLDNEW
« no previous file with comments | « content/browser/android/browser_jni_registrar.cc ('k') | content/browser/android/content_view_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698