| Index: content/browser/android/content_view_client.h | 
| diff --git a/content/browser/android/content_view_client.h b/content/browser/android/content_view_client.h | 
| index fadec83126353a81cc7431e35d4c678f8d513b6e..815a09f3ab70968575ad09e949c6916fa1a43050 100644 | 
| --- a/content/browser/android/content_view_client.h | 
| +++ b/content/browser/android/content_view_client.h | 
| @@ -8,7 +8,6 @@ | 
| #include "base/android/jni_helper.h" | 
| #include "base/compiler_specific.h" | 
| #include "content/public/browser/native_web_keyboard_event.h" | 
| -#include "content/public/browser/web_contents_delegate.h" | 
| #include "content/public/common/javascript_message_type.h" | 
| #include "content/public/common/referrer.h" | 
| #include "googleurl/src/gurl.h" | 
| @@ -17,17 +16,14 @@ | 
| class FindHelper; | 
|  | 
| namespace content { | 
| + | 
| class DownloadItem; | 
| -struct FindMatchRect; | 
| class JavaScriptDialogCreator; | 
| -class NativeWebKeyboardEvent; | 
| +struct NativeWebKeyboardEvent; | 
| class RenderViewHost; | 
| class WebContents; | 
| -} | 
| - | 
| -namespace content { | 
|  | 
| -// This enum must be kept in sync with ContentViewClient.java | 
| +// These enums must be kept in sync with ContentViewClient.java | 
| enum ContentViewClientError { | 
| // Success | 
| CONTENT_VIEW_CLIENT_ERROR_OK = 0, | 
| @@ -63,11 +59,16 @@ enum ContentViewClientError { | 
| CONTENT_VIEW_CLIENT_ERROR_TOO_MANY_REQUESTS = -15, | 
| }; | 
|  | 
| -// Native mirror of ContentViewClient.java.  Uses as a client of | 
| +// Native mirror of ContentViewClient.java.  Used as a client of | 
| // ContentView, the main FrameLayout on Android. | 
| -class ContentViewClient : public WebContentsDelegate { | 
| +// TODO(joth): Delete this C++ class, to make it Java-only. All the callbacks | 
| +// defined here originate in WebContentsObserver; we should have a dedicated | 
| +// bridge class for that rather than overloading ContentViewClient with this. | 
| +// See http://crbug.com/137967 | 
| +class ContentViewClient { | 
| public: | 
| ContentViewClient(JNIEnv* env, jobject obj); | 
| +  ~ContentViewClient(); | 
|  | 
| static ContentViewClient* CreateNativeContentViewClient(JNIEnv* env, | 
| jobject obj); | 
| @@ -87,7 +88,6 @@ class ContentViewClient : public WebContentsDelegate { | 
| void OnInterstitialShown(); | 
| void OnInterstitialHidden(); | 
|  | 
| -  void SetFindHelper(FindHelper* find_helper); | 
| void SetJavaScriptDialogCreator( | 
| JavaScriptDialogCreator* javascript_dialog_creator); | 
|  | 
| @@ -97,91 +97,15 @@ class ContentViewClient : public WebContentsDelegate { | 
| const string16& message, | 
| const string16& default_value); | 
|  | 
| -  // Returns the actual load progress, a value between 0 (nothing loaded) and | 
| -  // 1 (page fully loaded). | 
| -  virtual double GetLoadProgress() const; | 
| - | 
| -  // Overridden from WebContentsDelegate: | 
| -  virtual WebContents* OpenURLFromTab( | 
| -      WebContents* source, | 
| -      const OpenURLParams& params) OVERRIDE; | 
| -  virtual bool ShouldIgnoreNavigation( | 
| -      WebContents* source, | 
| -      const GURL& url, | 
| -      const Referrer& referrer, | 
| -      WindowOpenDisposition disposition, | 
| -      PageTransition transition_type) OVERRIDE; | 
| -  virtual void NavigationStateChanged(const WebContents* source, | 
| -                                      unsigned changed_flags) OVERRIDE; | 
| -  virtual void AddNewContents(WebContents* source, | 
| -                              WebContents* new_contents, | 
| -                              WindowOpenDisposition disposition, | 
| -                              const gfx::Rect& initial_pos, | 
| -                              bool user_gesture) OVERRIDE; | 
| -  virtual void ActivateContents(WebContents* contents) OVERRIDE; | 
| -  virtual void DeactivateContents(WebContents* contents) OVERRIDE; | 
| -  virtual void LoadingStateChanged(WebContents* source) OVERRIDE; | 
| -  virtual void LoadProgressChanged(double load_progress) OVERRIDE; | 
| -  virtual void CloseContents(WebContents* source) OVERRIDE; | 
| -  virtual void MoveContents(WebContents* source, | 
| -                            const gfx::Rect& pos) OVERRIDE; | 
| -  // TODO(merge): WARNING! method no longer available on the base class. | 
| -  // See http://b/issue?id=5862108 | 
| -  virtual void URLStarredChanged(WebContents* source, bool starred); | 
| -  virtual void UpdateTargetURL(WebContents* source, | 
| -                               int32 page_id, | 
| -                               const GURL& url) OVERRIDE; | 
| -  virtual bool CanDownload(RenderViewHost* source, | 
| -                           int request_id, | 
| -                           const std::string& request_method) OVERRIDE; | 
| -  virtual void OnStartDownload(WebContents* source, | 
| -                               DownloadItem* download) OVERRIDE; | 
| -  virtual void FindReply(WebContents* tab, | 
| -                         int request_id, | 
| -                         int number_of_matches, | 
| -                         const gfx::Rect& selection_rect, | 
| -                         int active_match_ordinal, | 
| -                         bool final_update) OVERRIDE; | 
| -  virtual void OnReceiveFindMatchRects(int version, | 
| -      const std::vector<FindMatchRect>& rects, | 
| -      const FindMatchRect& active_rect) OVERRIDE; | 
| -  virtual bool ShouldOverrideLoading(const GURL& url) OVERRIDE; | 
| -  virtual void HandleKeyboardEvent( | 
| -      const NativeWebKeyboardEvent& event) OVERRIDE; | 
| -  virtual JavaScriptDialogCreator* GetJavaScriptDialogCreator() OVERRIDE; | 
| -  virtual void RunFileChooser( | 
| -      WebContents* tab, | 
| -      const FileChooserParams& params) OVERRIDE; | 
| -  virtual bool TakeFocus(bool reverse) OVERRIDE; | 
| - | 
| -  virtual ~ContentViewClient(); | 
| - | 
| private: | 
| // Get the closest ContentViewClient match to the given Chrome error code. | 
| static ContentViewClientError ToContentViewClientError(int net_error); | 
|  | 
| -  // We use this to keep track of whether the navigation we get in | 
| -  // ShouldIgnoreNavigation has been initiated by the ContentView or not.  We | 
| -  // need the GURL, because the active navigation entry doesn't change on | 
| -  // redirects. | 
| -  GURL last_requested_navigation_url_; | 
| - | 
| // We depend on ContentView.java to hold a ref to the client object. If we | 
| // were to hold a hard ref from native we could end up with a cyclic | 
| // ownership leak (the GC can't collect cycles if part of the cycle is caused | 
| // by native). | 
| JavaObjectWeakGlobalRef weak_java_client_; | 
| - | 
| -  // Used to process find replies. Owned by the ContentView.  The ContentView | 
| -  // NULLs this pointer when the FindHelper goes away. | 
| -  FindHelper* find_helper_; | 
| - | 
| -  // The object responsible for creating JavaScript dialogs. | 
| -  JavaScriptDialogCreator* javascript_dialog_creator_; | 
| - | 
| -  // Indicates the load state of the page. 0.0 means nothing loaded, 1 means | 
| -  // fully loaded. | 
| -  double load_progress_; | 
| }; | 
|  | 
| bool RegisterContentViewClient(JNIEnv* env); | 
|  |