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

Unified Diff: android_webview/native/aw_contents.h

Issue 2863233002: [WebView] Move files from native to browser (Closed)
Patch Set: Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
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_

Powered by Google App Engine
This is Rietveld 408576698