New issue
Advanced search Search tips

Issue 598764 link

Starred by 2 users

Issue metadata

Status: WontFix
Owner: ----
Closed: Nov 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android
Pri: 2
Type: Bug



Sign in to add a comment

[Blimp Client] Tapping <select> Dropdown does not show dropdown.

Project Member Reported by haibinlu@chromium.org, Mar 29 2016

Issue description

======== Repo:

1. Navigation to a website with <select> element (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select) and tap on it. 

2. Expect a dropdown, but nothing happens.

======== Cause:

The dropdown is a RenderWidget without a RenderView. Blimp Client assumes one RenderWidget at any time. In this case, main page has a RenderWidget with RenderView, and dropdown has a different RenderWidget.


========
When the select dropdown arraw is tapped

web_contents_view_aura.cc CreateViewForPopupWidget with render_widget_host->Getview() == null

render_widget_host_view_aura.cc InitAsPopup 

 
On Android, the select popups are rendered by the browser. We want to keep the same behavior.
Cc: -haibinlu@chromium.org
Owner: haibinlu@chromium.org
Status: Assigned (was: Untriaged)
Project Member

Comment 3 by bugdroid1@chromium.org, Jun 3 2016

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

commit c643d33cf668665bac4562e69a72f9ef29b5bbed
Author: haibinlu <haibinlu@chromium.org>
Date: Fri Jun 03 02:22:34 2016

Blimp Engine is based on Linux with USE_AURA, and its client is an Android app. It is desirable for end users to see the same Chrome Android external popup menu handling.

Thus, add USE_EXTERNAL_POPUP_MENU flag so that Blimp Engine can follow the same code path of the external Android popup menus before it reaches WebContentsView.

BUG= 598764 
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation

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

[modify] https://crrev.com/c643d33cf668665bac4562e69a72f9ef29b5bbed/build/args/blimp_engine.gn
[modify] https://crrev.com/c643d33cf668665bac4562e69a72f9ef29b5bbed/build/common.gypi
[modify] https://crrev.com/c643d33cf668665bac4562e69a72f9ef29b5bbed/build/config/BUILD.gn
[modify] https://crrev.com/c643d33cf668665bac4562e69a72f9ef29b5bbed/build/config/features.gni
[modify] https://crrev.com/c643d33cf668665bac4562e69a72f9ef29b5bbed/content/browser/frame_host/interstitial_page_impl.cc
[modify] https://crrev.com/c643d33cf668665bac4562e69a72f9ef29b5bbed/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/c643d33cf668665bac4562e69a72f9ef29b5bbed/content/browser/frame_host/render_frame_host_impl.h
[modify] https://crrev.com/c643d33cf668665bac4562e69a72f9ef29b5bbed/content/browser/renderer_host/render_view_host_delegate_view.h
[modify] https://crrev.com/c643d33cf668665bac4562e69a72f9ef29b5bbed/content/browser/web_contents/web_contents_view_aura.cc
[modify] https://crrev.com/c643d33cf668665bac4562e69a72f9ef29b5bbed/content/browser/web_contents/web_contents_view_aura.h
[modify] https://crrev.com/c643d33cf668665bac4562e69a72f9ef29b5bbed/content/common/frame_messages.h
[modify] https://crrev.com/c643d33cf668665bac4562e69a72f9ef29b5bbed/content/renderer/BUILD.gn
[modify] https://crrev.com/c643d33cf668665bac4562e69a72f9ef29b5bbed/content/renderer/external_popup_menu.cc
[modify] https://crrev.com/c643d33cf668665bac4562e69a72f9ef29b5bbed/content/renderer/external_popup_menu.h
[modify] https://crrev.com/c643d33cf668665bac4562e69a72f9ef29b5bbed/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/c643d33cf668665bac4562e69a72f9ef29b5bbed/content/renderer/render_frame_impl.h
[modify] https://crrev.com/c643d33cf668665bac4562e69a72f9ef29b5bbed/content/renderer/render_thread_impl.cc
[modify] https://crrev.com/c643d33cf668665bac4562e69a72f9ef29b5bbed/content/renderer/render_widget.cc
[modify] https://crrev.com/c643d33cf668665bac4562e69a72f9ef29b5bbed/content/renderer/render_widget.h

Owner: ----
Part 2 shall allow embedders to access external popup menu API. 

Content/ ==> BlimpEngine ==> BlimpClient

  void ShowPopupMenu
  void HidePopupMenu

BlimpClient ==> BlimpEngine ==> Content/

  void DidSelectPopupMenuItems
  void DidCancelPopupMenu

The 2nd part is easy, just promote the methods from render_frame_host_impl.h to render_frame_host.h

The 1st part needs more discussion with content/ and aura/ owners. See https://codereview.chromium.org/2026813003/ for the initial discussion.

Status: WontFix (was: Assigned)
Obsolete, WontFix.
Labels: Archive-Blimp

Sign in to add a comment