New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 620172 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug

Blocked on:
issue 617750
issue 623783
issue 671401

Blocking:
issue 598880



Sign in to add a comment

Android: Eliminate ContentViewClient

Project Member Reported by siev...@chromium.org, Jun 15 2016

Issue description

This class is actually a mix of ContentViewClient, ContentViewCoreClient and other random stuff, often with hooks added specific to Chrome, WebView or something else.

I think this can roughly be moved around as follows:
https://docs.google.com/a/chromium.org/document/d/1Xu9gw6imaXWrhI88VC14awG6WqN1UG-89WK1dz8_TqQ/edit?usp=sharing

Which involves
- moving stuff to other existing interfaces
- overriding behavior through (anonymous) subclassing
- etc.

It also therefore depends on 617750.
 
Cc: mdjones@chromium.org
Cc: wychen@chromium.org
Blocking: 622848
Blockedon: 623783
Moved the whole select action mode configuration discussion here: 623783

Comment 5 by aelias@chromium.org, Aug 29 2016

Cc: aelias@chromium.org
Owner: jinsuk...@chromium.org
Status: Assigned (was: Available)
If |getContentVideoViewEmbedder| is moved to *WebContentsViewDelegateAndroid, content module cannot refer to it any more (content may not have a dependency on component). 

One way I can think of to work it around is to pass a reference to |ContentVideoViewEmbedder| through native upon ContentVideoView creation. 
That's the implementation which is accessible through dependency injection from inside content (note that WebContentsDelegateAndroid is the component, probably because it's shared with webview, while WebContents*View*DelegateAndroid are implemented for webview and chrome separately).

Btw.. these are also just suggestions, there might be better places :)

I thought this might be a straightforward way because the call sites that create a ContentVideoView from browser_surface_view_manager.cc and browser_media_player_manager.cc are associated with the WebContents and would be able to 'delegate' the creation of the ContentVideoViewEmbedder to the.. err.. embedder that implements this.

But also: now I don't see anyone implement this different from the ActivityContentVideoViewEmbedder that's already provided in content. So maybe this can be even simpler?

> I thought this might be a straightforward way because the call sites that 
> create a ContentVideoView from browser_surface_view_manager.cc and 
> browser_media_player_manager.cc are associated with the WebContents and would 
> be able to 'delegate' the creation of the ContentVideoViewEmbedder to the.. 
> err.. embedder that implements this.

This is what I meant by 'pass a reference to ContentVideoViewEmbedder through native'. Embedders provides the instance upon creation of ContentVideoView.

> But also: now I don't see anyone implement this different from the 
> ActivityContentVideoViewEmbedder that's already provided in content. So 
> maybe this can be even simpler?

I see Tab.java use a slightly different version from ActivityContentVideoViewEmbedder.
Project Member

Comment 10 by bugdroid1@chromium.org, Sep 29 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/517f915d980c42abe234e5614fd8a7d284d5f890

commit 517f915d980c42abe234e5614fd8a7d284d5f890
Author: jinsukkim <jinsukkim@chromium.org>
Date: Thu Sep 29 05:09:24 2016

Refactor ContentViewClient (1/6)

This aims to break down the interface ContentViewClient
and move its methods to more specific ones according
to their functionalities. Please see the bug description
for more details.

Moves following methods to WebContentsDelegateAndroid:
 - getContentVideoViewEmbedder
 - shouldBlockMediaRequest

Passes through ContentViewCore contstructor:
 - getProductVersion

BUG= 620172 

NOTRY=true
NOPRESUBMIT=true

Review-Url: https://codereview.chromium.org/2353063005
Cr-Commit-Position: refs/heads/master@{#421750}

[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/android_webview/BUILD.gn
[add] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/android_webview/java/src/org/chromium/android_webview/AwContentVideoViewEmbedder.java
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/android_webview/java/src/org/chromium/android_webview/AwContents.java
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/android_webview/java/src/org/chromium/android_webview/AwWebContentsDelegateAdapter.java
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanel.java
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContent.java
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid.java
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShell.java
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelEventFilterTest.java
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/chrome/android/javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchFakeServer.java
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/chrome/android/javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManagerTest.java
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/chrome/android/javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchTapEventTest.java
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/chrome/android/javatests/src/org/chromium/chrome/browser/input/SelectPopupOtherContentViewTest.java
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastShellActivity.java
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWindowAndroid.java
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/chromecast/browser/android/cast_window_android.cc
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/chromecast/browser/android/cast_window_android.h
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/components/web_contents_delegate_android/android/java/src/org/chromium/components/web_contents_delegate_android/WebContentsDelegateAndroid.java
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/components/web_contents_delegate_android/web_contents_delegate_android.cc
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/components/web_contents_delegate_android/web_contents_delegate_android.h
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/content/browser/android/content_video_view.cc
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/content/browser/android/content_video_view.h
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/content/browser/android/content_view_core_impl.cc
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/content/browser/android/content_view_core_impl.h
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/content/browser/media/android/browser_media_player_manager.cc
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/content/browser/media/android/browser_surface_view_manager.cc
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/content/public/android/javatests/src/org/chromium/content/browser/PopupZoomerTest.java
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/content/public/browser/web_contents_delegate.cc
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/content/public/browser/web_contents_delegate.h
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/content/shell/android/java/src/org/chromium/content_shell/Shell.java
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/content/shell/android/java/src/org/chromium/content_shell/ShellManager.java
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/content/shell/browser/shell.h
[modify] https://crrev.com/517f915d980c42abe234e5614fd8a7d284d5f890/content/shell/browser/shell_android.cc

Project Member

Comment 11 by bugdroid1@chromium.org, Nov 24 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c0be5c33de65d51831e2b5b2c8eda65f589bf939

commit c0be5c33de65d51831e2b5b2c8eda65f589bf939
Author: jinsukkim <jinsukkim@chromium.org>
Date: Thu Nov 24 21:52:32 2016

Refactor ContentViewClient (2/6)

Moves method |onUpdateTitle| to WebContentsObserver

See the description of https://crrev.com/2353063005 as well.

BUG= 620172 

Review-Url: https://codereview.chromium.org/2380743003
Cr-Commit-Position: refs/heads/master@{#434396}

[modify] https://crrev.com/c0be5c33de65d51831e2b5b2c8eda65f589bf939/android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java
[modify] https://crrev.com/c0be5c33de65d51831e2b5b2c8eda65f589bf939/android_webview/java/src/org/chromium/android_webview/AwWebContentsObserver.java
[modify] https://crrev.com/c0be5c33de65d51831e2b5b2c8eda65f589bf939/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[modify] https://crrev.com/c0be5c33de65d51831e2b5b2c8eda65f589bf939/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java
[modify] https://crrev.com/c0be5c33de65d51831e2b5b2c8eda65f589bf939/content/browser/android/content_view_core_impl.cc
[modify] https://crrev.com/c0be5c33de65d51831e2b5b2c8eda65f589bf939/content/browser/android/content_view_core_impl.h
[modify] https://crrev.com/c0be5c33de65d51831e2b5b2c8eda65f589bf939/content/browser/android/web_contents_observer_proxy.cc
[modify] https://crrev.com/c0be5c33de65d51831e2b5b2c8eda65f589bf939/content/browser/android/web_contents_observer_proxy.h
[modify] https://crrev.com/c0be5c33de65d51831e2b5b2c8eda65f589bf939/content/browser/web_contents/web_contents_view_android.cc
[modify] https://crrev.com/c0be5c33de65d51831e2b5b2c8eda65f589bf939/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java
[modify] https://crrev.com/c0be5c33de65d51831e2b5b2c8eda65f589bf939/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
[modify] https://crrev.com/c0be5c33de65d51831e2b5b2c8eda65f589bf939/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsObserverProxy.java
[modify] https://crrev.com/c0be5c33de65d51831e2b5b2c8eda65f589bf939/content/public/android/java/src/org/chromium/content_public/browser/WebContentsObserver.java

Blockedon: 671401
Blocking: -622848
Project Member

Comment 14 by bugdroid1@chromium.org, Feb 9 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7

commit d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7
Author: jinsukkim <jinsukkim@chromium.org>
Date: Thu Feb 09 01:57:19 2017

Refactor ContentViewClient (4/6)

Moved following interface methods to ViewAndroid:
 - onBackgroundColorChanged
 - onTopControlsChanged
 - onBottomControlsChanged
 - onStartContentIntent

Remove following as they are not used:
 - getSystemWindowInsetTop
 - getSystemWindowInsetLeft
 - getSystemWindowInsetRight

BUG= 620172 

Review-Url: https://codereview.chromium.org/2682593002
Cr-Commit-Position: refs/heads/master@{#449186}

[modify] https://crrev.com/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7/android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java
[modify] https://crrev.com/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7/android_webview/java/src/org/chromium/android_webview/AwContents.java
[modify] https://crrev.com/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7/android_webview/java/src/org/chromium/android_webview/AwViewAndroidDelegate.java
[modify] https://crrev.com/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsAnchorViewTest.java
[modify] https://crrev.com/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[add] https://crrev.com/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java
[modify] https://crrev.com/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7/chrome/android/java_sources.gni
[modify] https://crrev.com/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7/content/browser/android/content_view_core_impl.cc
[modify] https://crrev.com/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7/content/browser/android/content_view_core_impl.h
[modify] https://crrev.com/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7/content/browser/renderer_host/render_widget_host_view_android.cc
[modify] https://crrev.com/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7/content/browser/renderer_host/render_widget_host_view_android.h
[modify] https://crrev.com/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java
[modify] https://crrev.com/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
[modify] https://crrev.com/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java
[modify] https://crrev.com/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7/content/public/android/javatests/src/org/chromium/content/browser/ContentDetectionTestBase.java
[modify] https://crrev.com/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7/content/public/test/android/BUILD.gn
[modify] https://crrev.com/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestCallbackHelperContainer.java
[delete] https://crrev.com/f2ad0c868e66c4692862ed29ff6d30a97440c0f0/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestContentViewClient.java
[modify] https://crrev.com/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7/content/shell/android/BUILD.gn
[modify] https://crrev.com/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7/content/shell/android/java/src/org/chromium/content_shell/Shell.java
[add] https://crrev.com/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7/content/shell/android/java/src/org/chromium/content_shell/ShellViewAndroidDelegate.java
[modify] https://crrev.com/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7/ui/android/BUILD.gn
[modify] https://crrev.com/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7/ui/android/java/src/org/chromium/ui/base/ViewAndroidDelegate.java
[modify] https://crrev.com/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7/ui/android/view_android.cc
[modify] https://crrev.com/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7/ui/android/view_android.h

Somehow 3th update didn't show up here. This is just for record's sake.

commit 0c5dcfb3579be17d056ef8738b0bb9b0c3e20e09
Author: jinsukkim <jinsukkim@chromium.org>
Date:   Mon Dec 5 20:29:46 2016 -0800

    Refactor ContentViewClient (3/6)
    
    Replaced a Chrome-specific interface getDesired{Width,Height}MeasureSpec
    with explicit calls onContentView to set the size.
    
    BUG= 620172 
    
    Review-Url: https://codereview.chromium.org/2536223003
    Cr-Commit-Position: refs/heads/master@{#436522}



Project Member

Comment 16 by bugdroid1@chromium.org, Feb 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cefe29f6134013119b32e9e96ffa8ad3f74c5304

commit cefe29f6134013119b32e9e96ffa8ad3f74c5304
Author: amineer <amineer@chromium.org>
Date: Wed Feb 15 07:00:47 2017

Revert of Refactor ContentViewClient (4/6) (patchset #4 id:140001 of https://codereview.chromium.org/2682593002/ )

Reason for revert:
Causing major alignment issues for custom tabs

BUG=691718

Original issue's description:
> Refactor ContentViewClient (4/6)
>
> Moved following interface methods to ViewAndroid:
>  - onBackgroundColorChanged
>  - onTopControlsChanged
>  - onBottomControlsChanged
>  - onStartContentIntent
>
> Remove following as they are not used:
>  - getSystemWindowInsetTop
>  - getSystemWindowInsetLeft
>  - getSystemWindowInsetRight
>
> BUG= 620172 
>
> Review-Url: https://codereview.chromium.org/2682593002
> Cr-Commit-Position: refs/heads/master@{#449186}
> Committed: https://chromium.googlesource.com/chromium/src/+/d95ac3f4aad80e2102fd8cf957dc2e265c0f02f7

TBR=boliu@chromium.org,dtrainor@chromium.org,jinsukkim@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG= 620172 

Review-Url: https://codereview.chromium.org/2694273002
Cr-Commit-Position: refs/heads/master@{#450616}

[modify] https://crrev.com/cefe29f6134013119b32e9e96ffa8ad3f74c5304/android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java
[modify] https://crrev.com/cefe29f6134013119b32e9e96ffa8ad3f74c5304/android_webview/java/src/org/chromium/android_webview/AwContents.java
[modify] https://crrev.com/cefe29f6134013119b32e9e96ffa8ad3f74c5304/android_webview/java/src/org/chromium/android_webview/AwViewAndroidDelegate.java
[modify] https://crrev.com/cefe29f6134013119b32e9e96ffa8ad3f74c5304/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsAnchorViewTest.java
[modify] https://crrev.com/cefe29f6134013119b32e9e96ffa8ad3f74c5304/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[delete] https://crrev.com/53d28e3d9446105d1609fba58575bc44b50127b8/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java
[modify] https://crrev.com/cefe29f6134013119b32e9e96ffa8ad3f74c5304/chrome/android/java_sources.gni
[modify] https://crrev.com/cefe29f6134013119b32e9e96ffa8ad3f74c5304/content/browser/android/content_view_core_impl.cc
[modify] https://crrev.com/cefe29f6134013119b32e9e96ffa8ad3f74c5304/content/browser/android/content_view_core_impl.h
[modify] https://crrev.com/cefe29f6134013119b32e9e96ffa8ad3f74c5304/content/browser/renderer_host/render_widget_host_view_android.cc
[modify] https://crrev.com/cefe29f6134013119b32e9e96ffa8ad3f74c5304/content/browser/renderer_host/render_widget_host_view_android.h
[modify] https://crrev.com/cefe29f6134013119b32e9e96ffa8ad3f74c5304/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java
[modify] https://crrev.com/cefe29f6134013119b32e9e96ffa8ad3f74c5304/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
[modify] https://crrev.com/cefe29f6134013119b32e9e96ffa8ad3f74c5304/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java
[modify] https://crrev.com/cefe29f6134013119b32e9e96ffa8ad3f74c5304/content/public/android/javatests/src/org/chromium/content/browser/ContentDetectionTestBase.java
[modify] https://crrev.com/cefe29f6134013119b32e9e96ffa8ad3f74c5304/content/public/test/android/BUILD.gn
[modify] https://crrev.com/cefe29f6134013119b32e9e96ffa8ad3f74c5304/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestCallbackHelperContainer.java
[add] https://crrev.com/cefe29f6134013119b32e9e96ffa8ad3f74c5304/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestContentViewClient.java
[modify] https://crrev.com/cefe29f6134013119b32e9e96ffa8ad3f74c5304/content/shell/android/BUILD.gn
[modify] https://crrev.com/cefe29f6134013119b32e9e96ffa8ad3f74c5304/content/shell/android/java/src/org/chromium/content_shell/Shell.java
[delete] https://crrev.com/53d28e3d9446105d1609fba58575bc44b50127b8/content/shell/android/java/src/org/chromium/content_shell/ShellViewAndroidDelegate.java
[modify] https://crrev.com/cefe29f6134013119b32e9e96ffa8ad3f74c5304/ui/android/BUILD.gn
[modify] https://crrev.com/cefe29f6134013119b32e9e96ffa8ad3f74c5304/ui/android/java/src/org/chromium/ui/base/ViewAndroidDelegate.java
[modify] https://crrev.com/cefe29f6134013119b32e9e96ffa8ad3f74c5304/ui/android/view_android.cc
[modify] https://crrev.com/cefe29f6134013119b32e9e96ffa8ad3f74c5304/ui/android/view_android.h

Project Member

Comment 17 by bugdroid1@chromium.org, Feb 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e03fba3a51966b99375531dc7250a56deffc808c

commit e03fba3a51966b99375531dc7250a56deffc808c
Author: jinsukkim <jinsukkim@chromium.org>
Date: Fri Feb 24 05:57:05 2017

Reland "Refactor ContentViewClient (4/6)"

Moved following interface methods to ViewAndroid:
 - onBackgroundColorChanged
 - onTopControlsChanged
 - onBottomControlsChanged
 - onStartContentIntent

Remove following as they are not used:
 - getSystemWindowInsetTop
 - getSystemWindowInsetLeft
 - getSystemWindowInsetRight

Had been reverted due to a bug. https://crrev.com/2694273002/
|Tab.onOffsetChanged| was not updating the offsets as intended.
Fixed it.

BUG= 620172 , 691718

Review-Url: https://codereview.chromium.org/2708703004
Cr-Commit-Position: refs/heads/master@{#452767}

[modify] https://crrev.com/e03fba3a51966b99375531dc7250a56deffc808c/android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java
[modify] https://crrev.com/e03fba3a51966b99375531dc7250a56deffc808c/android_webview/java/src/org/chromium/android_webview/AwContents.java
[modify] https://crrev.com/e03fba3a51966b99375531dc7250a56deffc808c/android_webview/java/src/org/chromium/android_webview/AwViewAndroidDelegate.java
[modify] https://crrev.com/e03fba3a51966b99375531dc7250a56deffc808c/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsAnchorViewTest.java
[modify] https://crrev.com/e03fba3a51966b99375531dc7250a56deffc808c/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[add] https://crrev.com/e03fba3a51966b99375531dc7250a56deffc808c/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java
[modify] https://crrev.com/e03fba3a51966b99375531dc7250a56deffc808c/chrome/android/java_sources.gni
[modify] https://crrev.com/e03fba3a51966b99375531dc7250a56deffc808c/content/browser/android/content_view_core_impl.cc
[modify] https://crrev.com/e03fba3a51966b99375531dc7250a56deffc808c/content/browser/android/content_view_core_impl.h
[modify] https://crrev.com/e03fba3a51966b99375531dc7250a56deffc808c/content/browser/renderer_host/render_widget_host_view_android.cc
[modify] https://crrev.com/e03fba3a51966b99375531dc7250a56deffc808c/content/browser/renderer_host/render_widget_host_view_android.h
[modify] https://crrev.com/e03fba3a51966b99375531dc7250a56deffc808c/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java
[modify] https://crrev.com/e03fba3a51966b99375531dc7250a56deffc808c/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
[modify] https://crrev.com/e03fba3a51966b99375531dc7250a56deffc808c/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java
[modify] https://crrev.com/e03fba3a51966b99375531dc7250a56deffc808c/content/public/android/javatests/src/org/chromium/content/browser/ContentDetectionTestBase.java
[modify] https://crrev.com/e03fba3a51966b99375531dc7250a56deffc808c/content/public/test/android/BUILD.gn
[modify] https://crrev.com/e03fba3a51966b99375531dc7250a56deffc808c/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestCallbackHelperContainer.java
[delete] https://crrev.com/b2b632ce4c039452f4c3158131c50e92381b586d/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestContentViewClient.java
[modify] https://crrev.com/e03fba3a51966b99375531dc7250a56deffc808c/content/shell/android/BUILD.gn
[modify] https://crrev.com/e03fba3a51966b99375531dc7250a56deffc808c/content/shell/android/java/src/org/chromium/content_shell/Shell.java
[add] https://crrev.com/e03fba3a51966b99375531dc7250a56deffc808c/content/shell/android/java/src/org/chromium/content_shell/ShellViewAndroidDelegate.java
[modify] https://crrev.com/e03fba3a51966b99375531dc7250a56deffc808c/ui/android/BUILD.gn
[modify] https://crrev.com/e03fba3a51966b99375531dc7250a56deffc808c/ui/android/java/src/org/chromium/ui/base/ViewAndroidDelegate.java
[modify] https://crrev.com/e03fba3a51966b99375531dc7250a56deffc808c/ui/android/view_android.cc
[modify] https://crrev.com/e03fba3a51966b99375531dc7250a56deffc808c/ui/android/view_android.h

Project Member

Comment 19 by bugdroid1@chromium.org, Apr 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cc9e77e7d9e05da0f6017f1bdea024f0ce669786

commit cc9e77e7d9e05da0f6017f1bdea024f0ce669786
Author: jinsukkim <jinsukkim@chromium.org>
Date: Thu Apr 06 11:03:39 2017

Migrate IME state update flow

Refactored the flow for IME state update so it bypasses CVCImpl
and go straight from RWHVA -> ImeAdapter native -> Java layer.

Other related changes are:

ImeAdapter provides EventObserver to reduce the dependency on CVC,
based on the suggestion made in https://goo.gl/pdtQCl. It is used
by an embedder (Chrome) and CVC to deal with IME notification.
This replaces IME state update done through CVC. Only the necessary
info (node editability, password attribute) are passed.

ImeAdapter.ImeAdapterDelegate is to delegate some work upon IME
events. But it is used by ContentViewCore only, and there is no
clear benefit of having the interface. It was removed for
simplification. All the stuff can be (and are now) handled inside
ImeAdapter.

BUG= 662908 , 626765 , 620172 

Review-Url: https://codereview.chromium.org/2777223004
Cr-Commit-Position: refs/heads/master@{#462419}

[modify] https://crrev.com/cc9e77e7d9e05da0f6017f1bdea024f0ce669786/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsGarbageCollectionTest.java
[modify] https://crrev.com/cc9e77e7d9e05da0f6017f1bdea024f0ce669786/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[modify] https://crrev.com/cc9e77e7d9e05da0f6017f1bdea024f0ce669786/content/browser/android/content_view_core_impl.cc
[modify] https://crrev.com/cc9e77e7d9e05da0f6017f1bdea024f0ce669786/content/browser/android/content_view_core_impl.h
[modify] https://crrev.com/cc9e77e7d9e05da0f6017f1bdea024f0ce669786/content/browser/android/ime_adapter_android.cc
[modify] https://crrev.com/cc9e77e7d9e05da0f6017f1bdea024f0ce669786/content/browser/android/ime_adapter_android.h
[modify] https://crrev.com/cc9e77e7d9e05da0f6017f1bdea024f0ce669786/content/browser/renderer_host/render_widget_host_view_android.cc
[modify] https://crrev.com/cc9e77e7d9e05da0f6017f1bdea024f0ce669786/content/public/android/BUILD.gn
[modify] https://crrev.com/cc9e77e7d9e05da0f6017f1bdea024f0ce669786/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
[add] https://crrev.com/cc9e77e7d9e05da0f6017f1bdea024f0ce669786/content/public/android/java/src/org/chromium/content/browser/ViewUtils.java
[modify] https://crrev.com/cc9e77e7d9e05da0f6017f1bdea024f0ce669786/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java
[add] https://crrev.com/cc9e77e7d9e05da0f6017f1bdea024f0ce669786/content/public/android/java/src/org/chromium/content_public/browser/ImeEventObserver.java
[modify] https://crrev.com/cc9e77e7d9e05da0f6017f1bdea024f0ce669786/content/public/android/javatests/src/org/chromium/content/browser/PopupZoomerTest.java
[delete] https://crrev.com/e3f5c08d551b9a818dfa63874b5db137694b4889/content/public/android/javatests/src/org/chromium/content/browser/input/TestImeAdapterDelegate.java

Project Member

Comment 20 by bugdroid1@chromium.org, Apr 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ee89226f5c1820a579f50147cbfaf7df9462a0a2

commit ee89226f5c1820a579f50147cbfaf7df9462a0a2
Author: changwan <changwan@chromium.org>
Date: Fri Apr 07 23:42:41 2017

Revert of Migrate IME state update flow (patchset #4 id:100001 of https://codereview.chromium.org/2777223004/ )

Reason for revert:
This patchset caused a regression crbug.com/709349: 'cut' option disappeared from webview selection pop up.

Original issue's description:
> Migrate IME state update flow
>
> Refactored the flow for IME state update so it bypasses CVCImpl
> and go straight from RWHVA -> ImeAdapter native -> Java layer.
>
> Other related changes are:
>
> ImeAdapter provides EventObserver to reduce the dependency on CVC,
> based on the suggestion made in https://goo.gl/pdtQCl. It is used
> by an embedder (Chrome) and CVC to deal with IME notification.
> This replaces IME state update done through CVC. Only the necessary
> info (node editability, password attribute) are passed.
>
> ImeAdapter.ImeAdapterDelegate is to delegate some work upon IME
> events. But it is used by ContentViewCore only, and there is no
> clear benefit of having the interface. It was removed for
> simplification. All the stuff can be (and are now) handled inside
> ImeAdapter.
>
> BUG= 662908 , 626765 , 620172 
>
> Review-Url: https://codereview.chromium.org/2777223004
> Cr-Commit-Position: refs/heads/master@{#462419}
> Committed: https://chromium.googlesource.com/chromium/src/+/cc9e77e7d9e05da0f6017f1bdea024f0ce669786

TBR=boliu@chromium.org,tedchoc@chromium.org,jinsukkim@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG= 662908 , 626765 , 620172 

Review-Url: https://codereview.chromium.org/2803203003
Cr-Commit-Position: refs/heads/master@{#463053}

[modify] https://crrev.com/ee89226f5c1820a579f50147cbfaf7df9462a0a2/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsGarbageCollectionTest.java
[modify] https://crrev.com/ee89226f5c1820a579f50147cbfaf7df9462a0a2/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[modify] https://crrev.com/ee89226f5c1820a579f50147cbfaf7df9462a0a2/content/browser/android/content_view_core_impl.cc
[modify] https://crrev.com/ee89226f5c1820a579f50147cbfaf7df9462a0a2/content/browser/android/content_view_core_impl.h
[modify] https://crrev.com/ee89226f5c1820a579f50147cbfaf7df9462a0a2/content/browser/android/ime_adapter_android.cc
[modify] https://crrev.com/ee89226f5c1820a579f50147cbfaf7df9462a0a2/content/browser/android/ime_adapter_android.h
[modify] https://crrev.com/ee89226f5c1820a579f50147cbfaf7df9462a0a2/content/browser/renderer_host/render_widget_host_view_android.cc
[modify] https://crrev.com/ee89226f5c1820a579f50147cbfaf7df9462a0a2/content/public/android/BUILD.gn
[modify] https://crrev.com/ee89226f5c1820a579f50147cbfaf7df9462a0a2/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
[delete] https://crrev.com/e3e4a4e437e837f6696861741dcde15693529b50/content/public/android/java/src/org/chromium/content/browser/ViewUtils.java
[modify] https://crrev.com/ee89226f5c1820a579f50147cbfaf7df9462a0a2/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java
[delete] https://crrev.com/e3e4a4e437e837f6696861741dcde15693529b50/content/public/android/java/src/org/chromium/content_public/browser/ImeEventObserver.java
[modify] https://crrev.com/ee89226f5c1820a579f50147cbfaf7df9462a0a2/content/public/android/javatests/src/org/chromium/content/browser/PopupZoomerTest.java
[add] https://crrev.com/ee89226f5c1820a579f50147cbfaf7df9462a0a2/content/public/android/javatests/src/org/chromium/content/browser/input/TestImeAdapterDelegate.java

Project Member

Comment 21 by bugdroid1@chromium.org, Apr 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e4f39f538c7a9fe52a635d4fc4c92e3a5c82fe8a

commit e4f39f538c7a9fe52a635d4fc4c92e3a5c82fe8a
Author: jinsukkim <jinsukkim@chromium.org>
Date: Tue Apr 11 02:56:46 2017

Migrate IME state update flow

Refactored the flow for IME state update so it bypasses CVCImpl
and go straight from RWHVA -> ImeAdapter native -> Java layer.

Other related changes are:

ImeAdapter provides EventObserver to reduce the dependency on CVC,
based on the suggestion made in https://goo.gl/pdtQCl. It is used
by an embedder (Chrome) and CVC to deal with IME notification.
This replaces IME state update done through CVC. Only the necessary
info (node editability, password attribute) are passed.

ImeAdapter.ImeAdapterDelegate is to delegate some work upon IME
events. But it is used by ContentViewCore only, and there is no
clear benefit of having the interface. It was removed for
simplification. All the stuff can be (and are now) handled inside
ImeAdapter.

BUG= 662908 , 626765 , 620172 , 709349

Review-Url: https://codereview.chromium.org/2777223004
Cr-Original-Commit-Position: refs/heads/master@{#462419}
Committed: https://chromium.googlesource.com/chromium/src/+/cc9e77e7d9e05da0f6017f1bdea024f0ce669786
Review-Url: https://codereview.chromium.org/2777223004
Cr-Commit-Position: refs/heads/master@{#463508}

[modify] https://crrev.com/e4f39f538c7a9fe52a635d4fc4c92e3a5c82fe8a/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsGarbageCollectionTest.java
[modify] https://crrev.com/e4f39f538c7a9fe52a635d4fc4c92e3a5c82fe8a/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[modify] https://crrev.com/e4f39f538c7a9fe52a635d4fc4c92e3a5c82fe8a/content/browser/android/content_view_core_impl.cc
[modify] https://crrev.com/e4f39f538c7a9fe52a635d4fc4c92e3a5c82fe8a/content/browser/android/content_view_core_impl.h
[modify] https://crrev.com/e4f39f538c7a9fe52a635d4fc4c92e3a5c82fe8a/content/browser/android/ime_adapter_android.cc
[modify] https://crrev.com/e4f39f538c7a9fe52a635d4fc4c92e3a5c82fe8a/content/browser/android/ime_adapter_android.h
[modify] https://crrev.com/e4f39f538c7a9fe52a635d4fc4c92e3a5c82fe8a/content/browser/renderer_host/render_widget_host_view_android.cc
[modify] https://crrev.com/e4f39f538c7a9fe52a635d4fc4c92e3a5c82fe8a/content/public/android/BUILD.gn
[modify] https://crrev.com/e4f39f538c7a9fe52a635d4fc4c92e3a5c82fe8a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
[add] https://crrev.com/e4f39f538c7a9fe52a635d4fc4c92e3a5c82fe8a/content/public/android/java/src/org/chromium/content/browser/ViewUtils.java
[modify] https://crrev.com/e4f39f538c7a9fe52a635d4fc4c92e3a5c82fe8a/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java
[add] https://crrev.com/e4f39f538c7a9fe52a635d4fc4c92e3a5c82fe8a/content/public/android/java/src/org/chromium/content_public/browser/ImeEventObserver.java
[modify] https://crrev.com/e4f39f538c7a9fe52a635d4fc4c92e3a5c82fe8a/content/public/android/javatests/src/org/chromium/content/browser/PopupZoomerTest.java
[delete] https://crrev.com/4cede8d39db10321b053c0d9776cf6b23f290310/content/public/android/javatests/src/org/chromium/content/browser/input/TestImeAdapterDelegate.java

Project Member

Comment 22 by bugdroid1@chromium.org, Apr 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a52e8dc5d782827ce7e426ebde5537949ef4cb01

commit a52e8dc5d782827ce7e426ebde5537949ef4cb01
Author: jinsukkim <jinsukkim@chromium.org>
Date: Wed Apr 12 12:30:25 2017

Refactor ContentViewClient (6/6)

Moves the single method left in ContentViewClient
|getSystemWindowInsetBottom| to |ViewAndroidDelegate|
and deletes the interface entirely.

BUG= 620172 

Review-Url: https://codereview.chromium.org/2804953003
Cr-Commit-Position: refs/heads/master@{#464003}

[modify] https://crrev.com/a52e8dc5d782827ce7e426ebde5537949ef4cb01/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[modify] https://crrev.com/a52e8dc5d782827ce7e426ebde5537949ef4cb01/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java
[modify] https://crrev.com/a52e8dc5d782827ce7e426ebde5537949ef4cb01/chrome/android/javatests/src/org/chromium/chrome/browser/OSKOverscrollTest.java
[modify] https://crrev.com/a52e8dc5d782827ce7e426ebde5537949ef4cb01/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWebContentsActivity.java
[modify] https://crrev.com/a52e8dc5d782827ce7e426ebde5537949ef4cb01/content/browser/android/content_view_core_impl.cc
[modify] https://crrev.com/a52e8dc5d782827ce7e426ebde5537949ef4cb01/content/browser/android/content_view_core_impl.h
[modify] https://crrev.com/a52e8dc5d782827ce7e426ebde5537949ef4cb01/content/browser/renderer_host/render_widget_host_view_android.cc
[modify] https://crrev.com/a52e8dc5d782827ce7e426ebde5537949ef4cb01/content/public/android/BUILD.gn
[delete] https://crrev.com/6c31098c891b599a7592a9af49f30d600b62d354/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java
[modify] https://crrev.com/a52e8dc5d782827ce7e426ebde5537949ef4cb01/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
[modify] https://crrev.com/a52e8dc5d782827ce7e426ebde5537949ef4cb01/content/shell/android/java/src/org/chromium/content_shell/Shell.java
[modify] https://crrev.com/a52e8dc5d782827ce7e426ebde5537949ef4cb01/content/shell/android/java/src/org/chromium/content_shell/ShellManager.java
[modify] https://crrev.com/a52e8dc5d782827ce7e426ebde5537949ef4cb01/content/shell/android/linker_test_apk/src/org/chromium/chromium_linker_test_apk/ChromiumLinkerTestActivity.java
[modify] https://crrev.com/a52e8dc5d782827ce7e426ebde5537949ef4cb01/ui/android/java/src/org/chromium/ui/base/ViewAndroidDelegate.java
[modify] https://crrev.com/a52e8dc5d782827ce7e426ebde5537949ef4cb01/ui/android/view_android.cc
[modify] https://crrev.com/a52e8dc5d782827ce7e426ebde5537949ef4cb01/ui/android/view_android.h

Status: Fixed (was: Assigned)

Sign in to add a comment