My favorites | Sign in
Logo
             
New issue | Search
for
| Advanced search | Search tips
Issue 2371: Frame flashes standard non-client area when dismissing bookmark bubble
3 people starred this issue and may be notified of changes. Back to list
Status:  Verified
Owner:  ben.at.chromium.org
Closed:  Mar 2009
Type-Bug
Pri-2
OS-Windows
Area-BrowserUI
MagicBrowzr
HelpWanted


Sign in to add a comment
 
Reported by ben.at.chromium.org, Sep 16, 2008
What steps will reproduce the problem?
1. Star a page
2. Dismiss the bookmark bubble

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

Notice the caption area flashes briefly to the standard windows non-client 
view. This shouldn't happen.
Comment 1 by ben.at.chromium.org, Sep 17, 2008
More specific steps and some comments:

1. star a page (the bookmark bubble will appear)
2. click into the content area of the page, which will de-activate the bookmark 
bubble and close it, re-activating the parent. It's at this moment that the non-
client flash occurs.

Looking at the message log, the frame HWND gets a WM_PARENTNOTIFY of the click in the 
content area HWND, then a WM_GETTEXT message (presumably by whatever code is painting 
the native titlebar. This time however the WM_GETTEXT message isn't wrapped by a 
message like WM_NCUAHDRAWCAPTION so we can't easily filter it out :-/

Labels: HelpWanted
Comment 2 by mberkow...@chromium.org, Sep 18, 2008
I would like to add the following scenario:

Perform the same repro steps as above, with the browser window maximized.  The title
bar area turns light blue, as if deactivated.

Build: 0.2.153.0 (Developer Build 2292)
OS: Windows Vista (non Aero)
Comment 3 by marora821, Sep 21, 2008
Seems like a regression, I don't see this issue in official build 2200. I have not
yet synced the code to take a look, but will try to.

OS: Windows Vista (non Aero).
Comment 4 by marora821, Sep 21, 2008
I also see the flashing on adding/removing tabs.

Build: 0.2.153.0 (Developer Build 2292)
OS: Windows Vista (non Aero)
Comment 5 by ben.at.chromium.org, Oct 08, 2008
(No comment was entered for this change.)
Status: Fixed
Comment 6 by inainsi...@gmail.com, Oct 15, 2008
I can still reproduce it with build 3394
Status: Assigned
Comment 7 by ben.at.chromium.org, Oct 17, 2008
Update: only when dismissed via the "Remove" link, not by clicking elsewhere.
Comment 8 by m0.interactive, Dec 22, 2008
AND every time you select a SELECT drop down pop from the web page. For example, 
click on the drop down on this page on top named, Search [Open Issues]. Frame will 
flash.
Comment 9 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 10 by ben.at.chromium.org, Mar 02, 2009
(No comment was entered for this change.)
Status: Fixed
Comment 11 by mberkow...@chromium.org, Mar 11, 2009
Verified in 2.0.170.0 (Developer Build 11440).
Status: Verified
Sign in to add a comment

Powered by Google Project Hosting