Index: android_webview/native/aw_contents.h |
diff --git a/android_webview/native/aw_contents.h b/android_webview/native/aw_contents.h |
deleted file mode 100644 |
index 1248bd1791a726df1c8750deffc6566b9f91c88d..0000000000000000000000000000000000000000 |
--- a/android_webview/native/aw_contents.h |
+++ /dev/null |
@@ -1,429 +0,0 @@ |
-// Copyright (c) 2012 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 ANDROID_WEBVIEW_NATIVE_AW_CONTENTS_H_ |
-#define ANDROID_WEBVIEW_NATIVE_AW_CONTENTS_H_ |
- |
-#include <jni.h> |
- |
-#include <list> |
-#include <memory> |
-#include <string> |
-#include <utility> |
- |
-#include "android_webview/browser/aw_browser_permission_request_delegate.h" |
-#include "android_webview/browser/aw_render_process_gone_delegate.h" |
-#include "android_webview/browser/aw_safe_browsing_ui_manager.h" |
-#include "android_webview/browser/browser_view_renderer.h" |
-#include "android_webview/browser/browser_view_renderer_client.h" |
-#include "android_webview/browser/find_helper.h" |
-#include "android_webview/browser/gl_view_renderer_manager.h" |
-#include "android_webview/browser/icon_helper.h" |
-#include "android_webview/browser/render_thread_manager.h" |
-#include "android_webview/browser/render_thread_manager_client.h" |
-#include "android_webview/browser/renderer_host/aw_render_view_host_ext.h" |
-#include "android_webview/native/aw_renderer_priority_manager.h" |
-#include "android_webview/native/permission/permission_request_handler_client.h" |
-#include "base/android/jni_weak_ref.h" |
-#include "base/android/scoped_java_ref.h" |
-#include "base/callback_forward.h" |
-#include "base/macros.h" |
-#include "content/public/browser/render_process_host_observer.h" |
-#include "content/public/browser/web_contents_observer.h" |
- |
-class SkBitmap; |
-class TabContents; |
- |
-namespace content { |
-class WebContents; |
-} |
- |
-namespace android_webview { |
- |
-class AwContentsContainer; |
-class AwContentsClientBridge; |
-class AwGLFunctor; |
-class AwPdfExporter; |
-class AwWebContentsDelegate; |
-class PermissionRequestHandler; |
- |
-// Native side of java-class of same name. |
-// Provides the ownership of and access to browser components required for |
-// WebView functionality; analogous to chrome's TabContents, but with a |
-// level of indirection provided by the AwContentsContainer abstraction. |
-// |
-// Object lifetime: |
-// For most purposes the java and native objects can be considered to have |
-// 1:1 lifetime and relationship. The exception is the java instance that |
-// hosts a popup will be rebound to a second native instance (carrying the |
-// popup content) and discard the 'default' native instance it made on |
-// construction. A native instance is only bound to at most one Java peer over |
-// its entire lifetime - see Init() and SetPendingWebContentsForPopup() for the |
-// construction points, and SetJavaPeers() where these paths join. |
-class AwContents : public FindHelper::Listener, |
- public IconHelper::Listener, |
- public AwRenderViewHostExtClient, |
- public BrowserViewRendererClient, |
- public PermissionRequestHandlerClient, |
- public AwBrowserPermissionRequestDelegate, |
- public AwRenderProcessGoneDelegate, |
- public content::WebContentsObserver, |
- public content::RenderProcessHostObserver, |
- public AwSafeBrowsingUIManager::UIManagerClient { |
- public: |
- // Returns the AwContents instance associated with |web_contents|, or NULL. |
- static AwContents* FromWebContents(content::WebContents* web_contents); |
- |
- // Returns the AwContents instance associated with with the given |
- // render_process_id and render_view_id, or NULL. |
- static AwContents* FromID(int render_process_id, int render_view_id); |
- |
- static std::string GetLocale(); |
- |
- static std::string GetLocaleList(); |
- |
- AwContents(std::unique_ptr<content::WebContents> web_contents); |
- ~AwContents() override; |
- |
- AwRenderViewHostExt* render_view_host_ext() { |
- return render_view_host_ext_.get(); |
- } |
- |
- // |handler| is an instance of |
- // org.chromium.android_webview.AwHttpAuthHandler. |
- bool OnReceivedHttpAuthRequest(const base::android::JavaRef<jobject>& handler, |
- const std::string& host, |
- const std::string& realm); |
- |
- void SetOffscreenPreRaster(bool enabled); |
- |
- // Methods called from Java. |
- void SetJavaPeers( |
- JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- const base::android::JavaParamRef<jobject>& aw_contents, |
- const base::android::JavaParamRef<jobject>& web_contents_delegate, |
- const base::android::JavaParamRef<jobject>& contents_client_bridge, |
- const base::android::JavaParamRef<jobject>& io_thread_client, |
- const base::android::JavaParamRef<jobject>& |
- intercept_navigation_delegate); |
- base::android::ScopedJavaLocalRef<jobject> GetWebContents( |
- JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj); |
- void SetAwGLFunctor(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- jlong gl_functor); |
- |
- void Destroy(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj); |
- void DocumentHasImages(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- const base::android::JavaParamRef<jobject>& message); |
- void GenerateMHTML(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- const base::android::JavaParamRef<jstring>& jpath, |
- const base::android::JavaParamRef<jobject>& callback); |
- void CreatePdfExporter( |
- JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- const base::android::JavaParamRef<jobject>& pdfExporter); |
- void AddVisitedLinks( |
- JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- const base::android::JavaParamRef<jobjectArray>& jvisited_links); |
- base::android::ScopedJavaLocalRef<jbyteArray> GetCertificate( |
- JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj); |
- void RequestNewHitTestDataAt(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- jfloat x, |
- jfloat y, |
- jfloat touch_major); |
- void UpdateLastHitTestData(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj); |
- void OnSizeChanged(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- int w, |
- int h, |
- int ow, |
- int oh); |
- void SetViewVisibility(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- bool visible); |
- void SetWindowVisibility(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- bool visible); |
- void SetIsPaused(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- bool paused); |
- void OnAttachedToWindow(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- int w, |
- int h); |
- void OnDetachedFromWindow(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj); |
- bool IsVisible(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj); |
- base::android::ScopedJavaLocalRef<jbyteArray> GetOpaqueState( |
- JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj); |
- jboolean RestoreFromOpaqueState( |
- JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- const base::android::JavaParamRef<jbyteArray>& state); |
- void FocusFirstNode(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj); |
- void SetBackgroundColor(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- jint color); |
- void ZoomBy(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- jfloat delta); |
- void OnComputeScroll(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- jlong animation_time_millis); |
- bool OnDraw(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- const base::android::JavaParamRef<jobject>& canvas, |
- jboolean is_hardware_accelerated, |
- jint scroll_x, |
- jint scroll_y, |
- jint visible_left, |
- jint visible_top, |
- jint visible_right, |
- jint visible_bottom); |
- jlong CapturePicture(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- int width, |
- int height); |
- void EnableOnNewPicture(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- jboolean enabled); |
- void InsertVisualStateCallback( |
- JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- jlong request_id, |
- const base::android::JavaParamRef<jobject>& callback); |
- void ClearView(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj); |
- void SetExtraHeadersForUrl( |
- JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- const base::android::JavaParamRef<jstring>& url, |
- const base::android::JavaParamRef<jstring>& extra_headers); |
- |
- void InvokeGeolocationCallback( |
- JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- jboolean value, |
- const base::android::JavaParamRef<jstring>& origin); |
- |
- AwRendererPriorityManager::RendererPriority GetCurrentRendererPriority(); |
- jint GetRendererCurrentPriority( |
- JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj); |
- jint GetRendererRequestedPriority( |
- JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj); |
- jboolean GetRendererPriorityWaivedWhenNotVisible( |
- JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj); |
- void SetRendererPriorityPolicy( |
- JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- jint rendererRequestedPriority, |
- jboolean waivedhenNotVisible); |
- |
- // PermissionRequestHandlerClient implementation. |
- void OnPermissionRequest(base::android::ScopedJavaLocalRef<jobject> j_request, |
- AwPermissionRequest* request) override; |
- void OnPermissionRequestCanceled(AwPermissionRequest* request) override; |
- |
- PermissionRequestHandler* GetPermissionRequestHandler() { |
- return permission_request_handler_.get(); |
- } |
- |
- void PreauthorizePermission( |
- JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- const base::android::JavaParamRef<jstring>& origin, |
- jlong resources); |
- |
- // AwBrowserPermissionRequestDelegate implementation. |
- void RequestProtectedMediaIdentifierPermission( |
- const GURL& origin, |
- const base::Callback<void(bool)>& callback) override; |
- void CancelProtectedMediaIdentifierPermissionRequests( |
- const GURL& origin) override; |
- void RequestGeolocationPermission( |
- const GURL& origin, |
- const base::Callback<void(bool)>& callback) override; |
- void CancelGeolocationPermissionRequests(const GURL& origin) override; |
- void RequestMIDISysexPermission( |
- const GURL& origin, |
- const base::Callback<void(bool)>& callback) override; |
- void CancelMIDISysexPermissionRequests(const GURL& origin) override; |
- |
- // Find-in-page API and related methods. |
- void FindAllAsync(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- const base::android::JavaParamRef<jstring>& search_string); |
- void FindNext(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- jboolean forward); |
- void ClearMatches(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj); |
- FindHelper* GetFindHelper(); |
- |
- // Per WebView Cookie Policy |
- bool AllowThirdPartyCookies(); |
- |
- // FindHelper::Listener implementation. |
- void OnFindResultReceived(int active_ordinal, |
- int match_count, |
- bool finished) override; |
- // IconHelper::Listener implementation. |
- bool ShouldDownloadFavicon(const GURL& icon_url) override; |
- void OnReceivedIcon(const GURL& icon_url, const SkBitmap& bitmap) override; |
- void OnReceivedTouchIconUrl(const std::string& url, |
- const bool precomposed) override; |
- |
- // AwRenderViewHostExtClient implementation. |
- void OnWebLayoutPageScaleFactorChanged(float page_scale_factor) override; |
- void OnWebLayoutContentsSizeChanged(const gfx::Size& contents_size) override; |
- |
- // BrowserViewRendererClient implementation. |
- void PostInvalidate() override; |
- void OnNewPicture() override; |
- gfx::Point GetLocationOnScreen() override; |
- void ScrollContainerViewTo(const gfx::Vector2d& new_value) override; |
- void UpdateScrollState(const gfx::Vector2d& max_scroll_offset, |
- const gfx::SizeF& contents_size_dip, |
- float page_scale_factor, |
- float min_page_scale_factor, |
- float max_page_scale_factor) override; |
- void DidOverscroll(const gfx::Vector2d& overscroll_delta, |
- const gfx::Vector2dF& overscroll_velocity) override; |
- ui::TouchHandleDrawable* CreateDrawable() override; |
- |
- void ClearCache(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- jboolean include_disk_files); |
- void KillRenderProcess(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj); |
- void SetPendingWebContentsForPopup( |
- std::unique_ptr<content::WebContents> pending); |
- jlong ReleasePopupAwContents(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj); |
- |
- void ScrollTo(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- jint x, |
- jint y); |
- void SmoothScroll(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- jint target_x, |
- jint target_y, |
- jlong duration_ms); |
- void SetDipScale(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- jfloat dip_scale); |
- void SetSaveFormData(bool enabled); |
- |
- // Sets the java client |
- void SetAwAutofillClient(const base::android::JavaRef<jobject>& client); |
- |
- void SetJsOnlineProperty(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- jboolean network_up); |
- void TrimMemory(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- jint level, |
- jboolean visible); |
- void PostMessageToFrame( |
- JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj, |
- const base::android::JavaParamRef<jstring>& frame_id, |
- const base::android::JavaParamRef<jstring>& message, |
- const base::android::JavaParamRef<jstring>& target_origin, |
- const base::android::JavaParamRef<jobjectArray>& ports); |
- |
- void GrantFileSchemeAccesstoChildProcess( |
- JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj); |
- |
- void ResumeLoadingCreatedPopupWebContents( |
- JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj); |
- |
- // content::WebContentsObserver overrides |
- void RenderViewHostChanged(content::RenderViewHost* old_host, |
- content::RenderViewHost* new_host) override; |
- void DidAttachInterstitialPage() override; |
- void DidDetachInterstitialPage() override; |
- |
- // content::RenderProcessHostObserver overrides |
- void RenderProcessReady(content::RenderProcessHost* host) override; |
- |
- // AwSafeBrowsingUIManager::UIManagerClient implementation |
- bool CanShowBigInterstitial() override; |
- |
- void CallProceedOnInterstitialForTesting( |
- JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj); |
- void CallDontProceedOnInterstitialForTesting( |
- JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& obj); |
- |
- // AwRenderProcessGoneDelegate overrides |
- void OnRenderProcessGone(int child_process_id) override; |
- bool OnRenderProcessGoneDetail(int child_process_id, bool crashed) override; |
- |
- private: |
- void InitAutofillIfNecessary(bool enabled); |
- |
- // Geolocation API support |
- void ShowGeolocationPrompt(const GURL& origin, base::Callback<void(bool)>); |
- void HideGeolocationPrompt(const GURL& origin); |
- |
- void SetDipScaleInternal(float dip_scale); |
- |
- void SetAwGLFunctor(AwGLFunctor* functor); |
- |
- AwRendererPriorityManager* GetAwRendererPriorityManager(); |
- AwRendererPriorityManager::RendererPriority GetComputedRendererPriority(); |
- void UpdateRendererPriority( |
- AwRendererPriorityManager::RendererPriority base_priority); |
- void UpdateRendererPriority(); |
- |
- JavaObjectWeakGlobalRef java_ref_; |
- AwGLFunctor* functor_; |
- BrowserViewRenderer browser_view_renderer_; // Must outlive |web_contents_|. |
- std::unique_ptr<content::WebContents> web_contents_; |
- std::unique_ptr<AwWebContentsDelegate> web_contents_delegate_; |
- std::unique_ptr<AwContentsClientBridge> contents_client_bridge_; |
- std::unique_ptr<AwRenderViewHostExt> render_view_host_ext_; |
- std::unique_ptr<FindHelper> find_helper_; |
- std::unique_ptr<IconHelper> icon_helper_; |
- std::unique_ptr<AwContents> pending_contents_; |
- std::unique_ptr<AwPdfExporter> pdf_exporter_; |
- std::unique_ptr<PermissionRequestHandler> permission_request_handler_; |
- |
- // GURL is supplied by the content layer as requesting frame. |
- // Callback is supplied by the content layer, and is invoked with the result |
- // from the permission prompt. |
- typedef std::pair<const GURL, base::Callback<void(bool)>> OriginCallback; |
- // The first element in the list is always the currently pending request. |
- std::list<OriginCallback> pending_geolocation_prompts_; |
- |
- GLViewRendererManager::Key renderer_manager_key_; |
- |
- AwRendererPriorityManager::RendererPriority renderer_requested_priority_; |
- bool renderer_priority_waived_when_not_visible_; |
- |
- DISALLOW_COPY_AND_ASSIGN(AwContents); |
-}; |
- |
-bool RegisterAwContents(JNIEnv* env); |
- |
-} // namespace android_webview |
- |
-#endif // ANDROID_WEBVIEW_NATIVE_AW_CONTENTS_H_ |