My favorites | Sign in
Logo
             
New issue | Search
for
| Advanced search | Search tips
Issue 8247: When select widget on web page is open, frame renderers inactive
1 person starred this issue and may be notified of changes. Back to list
Status:  Fixed
Owner:  ben.at.chromium.org
Closed:  Mar 2009
Type-Bug
Pri-2
OS-All
Area-BrowserUI
Mstone-2.0


Sign in to add a comment
 
Reported by ben.at.chromium.org, Feb 28, 2009
What steps will reproduce the problem?
1. Visit any web page with a dropdown select, such as this page. Click on 
the select.

What is the expected output? What do you see instead?

Select shows and browser window frame renders active, since the browser is 
still active.

Browser actually paints as if it's inactive as long as the select widget is 
open.

Comment 1 by bugdroid1@chromium.org, Mar 02, 2009
The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=10757 

------------------------------------------------------------------------
r10757 | ben@chromium.org | 2009-03-02 16:28:00 -0800 (Mon, 02 Mar 2009) | 34 lines
Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/browser_focus_uitest.cc?r1=10757&r2=10756
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/views/browser_views.vcproj?r1=10757&r2=10756
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/views/constrained_window_impl.cc?r1=10757&r2=10756
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/views/constrained_window_impl.h?r1=10757&r2=10756
   D /trunk/src/chrome/browser/views/frame/aero_glass_frame.cc
   D /trunk/src/chrome/browser/views/frame/aero_glass_frame.h
   D /trunk/src/chrome/browser/views/frame/aero_glass_non_client_view.cc
   D /trunk/src/chrome/browser/views/frame/aero_glass_non_client_view.h
   A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/views/frame/browser_frame.cc
   R /trunk/src/chrome/browser/views/frame/browser_frame.h (from /trunk/src/chrome/browser/views/frame/aero_glass_frame.h:10646)
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/views/frame/browser_view.cc?r1=10757&r2=10756
   D /trunk/src/chrome/browser/views/frame/browser_window_factory.cc
   A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/views/frame/glass_browser_frame_view.cc
   A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/views/frame/glass_browser_frame_view.h
   A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/views/frame/opaque_browser_frame_view.cc
   A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/views/frame/opaque_browser_frame_view.h
   D /trunk/src/chrome/browser/views/frame/opaque_frame.cc
   D /trunk/src/chrome/browser/views/frame/opaque_frame.h
   D /trunk/src/chrome/browser/views/frame/opaque_non_client_view.cc
   D /trunk/src/chrome/browser/views/frame/opaque_non_client_view.h
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/views/hung_renderer_view.cc?r1=10757&r2=10756
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/views/info_bubble.cc?r1=10757&r2=10756
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/views/tabs/tab_renderer.cc?r1=10757&r2=10756
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/views/tabs/tab_renderer.h?r1=10757&r2=10756
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/views/tabs/tab_strip.cc?r1=10757&r2=10756
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/views/toolbar_view.cc?r1=10757&r2=10756
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/views/toolbar_view.h?r1=10757&r2=10756
   A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/views/custom_frame_view.cc
   A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/views/custom_frame_view.h
   D /trunk/src/chrome/views/custom_frame_window.cc
   D /trunk/src/chrome/views/custom_frame_window.h
   D /trunk/src/chrome/views/default_non_client_view.cc
   D /trunk/src/chrome/views/default_non_client_view.h
   A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/views/native_frame_view.cc
   A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/views/native_frame_view.h
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/views/non_client_view.cc?r1=10757&r2=10756
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/views/non_client_view.h?r1=10757&r2=10756
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/views/root_view.cc?r1=10757&r2=10756
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/views/root_view.h?r1=10757&r2=10756
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/views/view.cc?r1=10757&r2=10756
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/views/view.h?r1=10757&r2=10756
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/views/views.vcproj?r1=10757&r2=10756
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/views/widget.h?r1=10757&r2=10756
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/views/widget_win.cc?r1=10757&r2=10756
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/views/widget_win.h?r1=10757&r2=10756
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/views/window.cc?r1=10757&r2=10756
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/views/window.h?r1=10757&r2=10756

Support DWM switching.

This completes the collapsing of window types and browser frames around a single class: views::Window. CustomFrameWindow is removed with this change.

The Browser window is represented by a single views::Window subclass: BrowserFrame, which replaces both AeroGlassFrame and OpaqueFrame.

NonClientView is now a container of two sibling classes - the Window's ClientView (in the Browser's case, BrowserView), and a NonClientFrameView subclass, which provides the rendering for the non-client portions of the window. These Views are siblings rather than the ClientView a child of the NonClientFrameView because when the DWM is toggled, the ClientView would have to be re-parented. Many Views make the assumption they are only inserted into a View hierarchy once, and so this is problematic. By having the views be siblings, this is avoided.

With this in mind, all of the former NonClientViews now become NonClientFrameView subclasses:

DefaultNonClientView -> CustomFrameView
(non-existent, NonClientView) -> NativeFrameView
AeroGlassNonClientView -> GlassBrowserFrameView
OpaqueNonClientView -> OpaqueBrowserFrameView

The latter two derive from NonClientFrameView via BrowserNonClientFrameView, which adds some extras.

I also had to modify the TabRenderer class to know how to drop its cache of tab background images when the theme changes since it uses different ones for Glass and non-Glass.

This change also fixes a few non-client flicker issues relating to window non-client activation by using more ScopedRedrawLocks. (Touches info_bubble.cc, window.cc)

Bugs fixed:
http://crbug.com/153
http://crbug.com/747
http://crbug.com/2371
http://crbug.com/3264
http://crbug.com/8234
Plumbing for http://crbug.com/8247

Design docs:
http://dev.chromium.org/developers/design-documents/views-windowing
http://dev.chromium.org/developers/design-documents/browser-window

Review URL: http://codereview.chromium.org/27317
------------------------------------------------------------------------

Comment 2 by bugdroid1@chromium.org, Mar 02, 2009
The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=10777 

------------------------------------------------------------------------
r10777 | ben@chromium.org | 2009-03-02 18:59:12 -0800 (Mon, 02 Mar 2009) | 1 line
Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/browser.cc?r1=10777&r2=10776
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/browser.h?r1=10777&r2=10776
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/browser_window.h?r1=10777&r2=10776
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/tab_contents/tab_contents_delegate.h?r1=10777&r2=10776
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/tab_contents/web_contents_view_win.cc?r1=10777&r2=10776
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/views/frame/browser_view.cc?r1=10777&r2=10776
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/views/frame/browser_view.h?r1=10777&r2=10776
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/views/window.cc?r1=10777&r2=10776

Make it so that dropdown selects don't deactivate the main frame when opened http://crbug.com/8247
------------------------------------------------------------------------

Comment 3 by ben.at.chromium.org, Mar 02, 2009
(No comment was entered for this change.)
Status: Fixed
Sign in to add a comment

Powered by Google Project Hosting