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

Issue 541056: Tab-modal dialog improvements:... (Closed)

Created:
10 years, 11 months ago by zel
Modified:
9 years, 6 months ago
CC:
chromium-reviews_googlegroups.com, brettw+cc_chromium.org, ben+cc_chromium.org, John Grabowski, jam, pam+watch_chromium.org, darin (slow to review), viettrungluu
Visibility:
Public.

Description

Tab-modal dialog improvements: - treat constrained dialogs as tab-modal - only one shows at the time - added visual indication (tab pulsing) to the tab strip when a tab is blocked by a tab-modal dialog - blocked all UI activity from rendrer host and forced refocusing on constrained (tab-modal) dialogs This CL reverts http://codereview.chromium.org/384113 and instead incorporates the changes from http://codereview.chromium.org/392018. BUG=456, 27585, 27620 TEST=Go to http://www/~thakis/cgi-bin/test.html, hit esc. Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=36415

Patch Set 1 #

Patch Set 2 : '' #

Patch Set 3 : '' #

Patch Set 4 : '' #

Patch Set 5 : '' #

Patch Set 6 : '' #

Total comments: 34

Patch Set 7 : '' #

Patch Set 8 : '' #

Total comments: 6

Patch Set 9 : '' #

Patch Set 10 : '' #

Patch Set 11 : '' #

Patch Set 12 : '' #

Unified diffs Side-by-side diffs Delta from patch set Stats (+291 lines, -125 lines) Patch
chrome/browser/browser.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -0 lines 0 comments Download
chrome/browser/browser.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +9 lines, -0 lines 0 comments Download
chrome/browser/cocoa/browser_window_controller.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -6 lines 0 comments Download
chrome/browser/cocoa/browser_window_controller.mm View 1 2 3 4 5 6 7 8 9 10 1 chunk +2 lines, -2 lines 0 comments Download
chrome/browser/cocoa/constrained_window_mac.h View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +5 lines, -4 lines 0 comments Download
chrome/browser/cocoa/constrained_window_mac.mm View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +12 lines, -11 lines 0 comments Download
chrome/browser/cocoa/tab_strip_controller.h View 1 2 3 4 5 6 7 8 9 10 4 chunks +4 lines, -13 lines 0 comments Download
chrome/browser/cocoa/tab_strip_controller.mm View 1 2 3 4 5 6 7 8 9 10 6 chunks +8 lines, -45 lines 0 comments Download
chrome/browser/gtk/constrained_window_gtk.h View 1 2 3 4 5 6 7 8 9 10 2 chunks +4 lines, -0 lines 0 comments Download
chrome/browser/gtk/constrained_window_gtk.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +11 lines, -5 lines 0 comments Download
chrome/browser/gtk/tabs/tab_renderer_gtk.h View 1 2 3 4 5 6 7 8 9 10 2 chunks +5 lines, -0 lines 0 comments Download
chrome/browser/gtk/tabs/tab_renderer_gtk.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +11 lines, -0 lines 0 comments Download
chrome/browser/gtk/tabs/tab_strip_gtk.h View 4 5 6 7 8 9 10 1 chunk +2 lines, -0 lines 0 comments Download
chrome/browser/gtk/tabs/tab_strip_gtk.cc View 1 2 3 4 5 6 7 8 9 10 3 chunks +7 lines, -0 lines 0 comments Download
chrome/browser/login_prompt_gtk.cc View 1 2 3 4 5 6 7 8 9 10 4 chunks +24 lines, -6 lines 0 comments Download
chrome/browser/login_prompt_win.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +5 lines, -0 lines 0 comments Download
chrome/browser/renderer_host/render_view_host.h View 8 9 10 1 chunk +1 line, -0 lines 0 comments Download
chrome/browser/renderer_host/render_view_host.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +15 lines, -0 lines 0 comments Download
chrome/browser/renderer_host/render_view_host_delegate.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +6 lines, -0 lines 0 comments Download
chrome/browser/renderer_host/render_widget_host.h View 1 2 3 4 5 6 7 8 9 10 3 chunks +11 lines, -1 line 0 comments Download
chrome/browser/renderer_host/render_widget_host.cc View 1 2 3 4 5 6 7 8 9 10 4 chunks +4 lines, -3 lines 0 comments Download
chrome/browser/tab_contents/constrained_window.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +7 lines, -0 lines 0 comments Download
chrome/browser/tab_contents/tab_contents.h View 1 2 3 4 5 6 7 8 9 10 5 chunks +8 lines, -4 lines 0 comments Download
chrome/browser/tab_contents/tab_contents.cc View 1 2 3 4 5 6 7 8 9 10 5 chunks +33 lines, -2 lines 0 comments Download
chrome/browser/tab_contents/tab_contents_delegate.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +6 lines, -0 lines 0 comments Download
chrome/browser/tab_contents/tab_contents_view_gtk.h View 1 2 3 4 5 6 7 8 9 10 2 chunks +3 lines, -5 lines 0 comments Download
chrome/browser/tab_contents/tab_contents_view_gtk.cc View 1 2 3 4 5 6 7 8 9 10 3 chunks +8 lines, -15 lines 0 comments Download
chrome/browser/tabs/tab_strip_model.h View 1 2 3 4 5 6 7 8 9 10 5 chunks +16 lines, -1 line 0 comments Download
chrome/browser/tabs/tab_strip_model.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +14 lines, -0 lines 0 comments Download
chrome/browser/views/constrained_window_win.h View 1 2 3 4 5 6 7 8 9 10 2 chunks +3 lines, -0 lines 0 comments Download
chrome/browser/views/constrained_window_win.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +13 lines, -1 line 0 comments Download
chrome/browser/views/login_view.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +2 lines, -0 lines 0 comments Download
chrome/browser/views/login_view.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +6 lines, -0 lines 0 comments Download
chrome/browser/views/tabs/tab_renderer.h View 1 2 3 4 5 6 7 8 9 10 2 chunks +5 lines, -0 lines 0 comments Download
chrome/browser/views/tabs/tab_renderer.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +11 lines, -0 lines 0 comments Download
chrome/browser/views/tabs/tab_strip.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -0 lines 0 comments Download
chrome/browser/views/tabs/tab_strip.cc View 1 2 3 4 5 6 7 8 9 10 3 chunks +6 lines, -0 lines 0 comments Download
views/view.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 11 (0 generated)
Nico
A few questions below. The most interesting one is the one about "delayed sheets". Elliot ...
10 years, 11 months ago (2010-01-14 17:51:18 UTC) #1
Ben Goodger (Google)
Adding erg for GTK bits Adding jcampan for focus bits in view.cc. http://codereview.chromium.org/541056/diff/5038/4066 File chrome/browser/renderer_host/render_widget_host.h ...
10 years, 11 months ago (2010-01-14 18:48:26 UTC) #2
zel
http://codereview.chromium.org/541056/diff/5038/4069 File chrome/browser/cocoa/browser_window_controller.h (left): http://codereview.chromium.org/541056/diff/5038/4069#oldcode215 chrome/browser/cocoa/browser_window_controller.h:215: // disappears. The window should then call |attachConstrainedWindow:| again. ...
10 years, 11 months ago (2010-01-14 23:05:16 UTC) #3
Ben Goodger (Google)
On Thu, Jan 14, 2010 at 3:05 PM, <zelidrag@chromium.org> wrote: > Based on our discussion, ...
10 years, 11 months ago (2010-01-14 23:23:19 UTC) #4
Ben Goodger (Google)
LGTM with the bug URL added to the comment btw. On Thu, Jan 14, 2010 ...
10 years, 11 months ago (2010-01-14 23:23:42 UTC) #5
jcampan
http://codereview.chromium.org/541056/diff/5038/4040 File views/view.cc (right): http://codereview.chromium.org/541056/diff/5038/4040#newcode700 views/view.cc:700: UnregisterAccelerators(true); On 2010/01/14 23:05:16, zel wrote: > On 2010/01/14 ...
10 years, 11 months ago (2010-01-14 23:34:20 UTC) #6
Elliot Glaysher
OK on the GTK parts
10 years, 11 months ago (2010-01-14 23:38:44 UTC) #7
Nico
LG from me with comments addressed. Please mention in the CL description that this reverts ...
10 years, 11 months ago (2010-01-15 01:03:17 UTC) #8
zelidrag1
Jay, Without this change in views.cc, I have reached following asset there (see the stack ...
10 years, 11 months ago (2010-01-15 01:39:35 UTC) #9
zel
http://codereview.chromium.org/541056/diff/10001/9029 File chrome/browser/cocoa/tab_strip_controller.h (left): http://codereview.chromium.org/541056/diff/10001/9029#oldcode196 chrome/browser/cocoa/tab_strip_controller.h:196: // functions. On 2010/01/15 01:03:18, Nico wrote: > keep ...
10 years, 11 months ago (2010-01-15 03:25:04 UTC) #10
jcampan
10 years, 11 months ago (2010-01-15 17:18:40 UTC) #11
OK, makes sense. Thanks for the explanation.

LGTM

On Thu, Jan 14, 2010 at 5:39 PM, Zelidrag Hornung <zelidrag@google.com> wrote:
> Jay,
> Without this change in views.cc, I have reached following asset there (see
> the stack dump below).
> Basically, View::ViewHierarchyChangedImpl() would nuke accelerators with
> UnregisterAccelerators(false) call and then the rest of the execution flow
> would still expect that they exist what results in assert in
> View::RemoveAccelerator():1008.
>
>
>
>  chrome.dll!views::View::RemoveAccelerator(const views::Accelerator &
> accelerator={...})  Line 1008C++
>  chrome.dll!views::NativeButton::SetIsDefault(bool is_default=false)  Line
> 87 + 0x23 bytesC++
>  chrome.dll!views::DialogClientView::SetDefaultButton(views::NativeButton *
> new_default_button=0x05a93360)  Line 176C++
>  chrome.dll!views::DialogClientView::FocusWillChange(views::View *
> focused_before=0x05a93480, views::View * focused_now=0x00000000)  Line
> 202C++
>  chrome.dll!views::FocusManager::SetFocusedView(views::View *
> view=0x00000000)  Line 241 + 0x23 bytesC++
>  chrome.dll!views::RootView::FocusView(views::View * view=0x00000000)  Line
> 526C++
>  chrome.dll!views::RootView::ViewHierarchyChanged(bool is_add=false,
> views::View * parent=0x00d93e00, views::View * child=0x05a93480)  Line
> 267C++
>  chrome.dll!views::View::ViewHierarchyChangedImpl(bool
> register_accelerators=true, bool is_add=false, views::View *
> parent=0x00d93e00, views::View * child=0x05a93480)  Line 704 + 0x1f bytesC++
>  chrome.dll!views::View::PropagateRemoveNotifications(views::View *
> parent=0x00d93e00)  Line 641 + 0x14 bytesC++
>  chrome.dll!views::View::PropagateRemoveNotifications(views::View *
> parent=0x00d93e00)  Line 638 + 0x17 bytesC++
>  chrome.dll!views::View::PropagateRemoveNotifications(views::View *
> parent=0x00d93e00)  Line 638 + 0x17 bytesC++
>  chrome.dll!views::View::DoRemoveChildView(views::View * a_view=0x04fce780,
> bool update_focus_cycle=false, bool update_tool_tip=false, bool
> delete_removed_view=true)  Line 621C++
>  chrome.dll!views::View::RemoveAllChildViews(bool delete_views=true)  Line
> 575C++
>  chrome.dll!views::RootView::~RootView()  Line 87C++
>  chrome.dll!views::RootView::`scalar deleting destructor'()  + 0x16 bytesC++
>  chrome.dll!scoped_ptr<views::RootView>::~scoped_ptr<views::RootView>()
>  Line 72 + 0x25 bytesC++
>  chrome.dll!views::WidgetWin::~WidgetWin()  Line 63 + 0x37 bytesC++
>  chrome.dll!views::WindowWin::~WindowWin()  Line 103 + 0x48 bytesC++
>  chrome.dll!ConstrainedWindowWin::~ConstrainedWindowWin()  Line 586 + 0x27
> bytesC++
>  chrome.dll!ConstrainedWindowWin::`scalar deleting destructor'()  + 0x16
> bytesC++
>  chrome.dll!views::WidgetWin::OnFinalMessage(HWND__ * window=0x001604e6)
>  Line 834 + 0x23 bytesC++
>  chrome.dll!views::WindowWin::OnFinalMessage(HWND__ * window=0x001604e6)
>  Line 658C++
>  chrome.dll!ConstrainedWindowWin::OnFinalMessage(HWND__ * window=0x001604e6)
>  Line 671C++
>  chrome.dll!views::WidgetWin::OnWndProc(unsigned int message=130, unsigned
> int w_param=0, long l_param=0)  Line 1126 + 0x16 bytesC++
>  chrome.dll!app::WindowImpl::WndProc(HWND__ * hwnd=0x001604e6, unsigned int
> message=130, unsigned int w_param=0, long l_param=0)  Line 183 + 0x1b
> bytesC++
>
>
>
>
> On Thu, Jan 14, 2010 at 3:34 PM, <jcampan@chromium.org> wrote:
>>
>> http://codereview.chromium.org/541056/diff/5038/4040
>> File views/view.cc (right):
>>
>> http://codereview.chromium.org/541056/diff/5038/4040#newcode700
>> views/view.cc:700: UnregisterAccelerators(true);
>> On 2010/01/14 23:05:16, zel wrote:
>>>
>>> On 2010/01/14 17:51:19, Nico wrote:
>>> > I'm not familiar at all with the views code, but why did you have to
>>
>> change
>>>
>>> > this? Maybe add a comment to what the bool means and why it has to
>>
>> be the way
>>>
>>> it
>>> > is.
>>
>>> Nico, this change took care for the crash that you have seen on
>>
>> Windows in your
>>>
>>> original CL. I added comments why this change is there to begin with.
>>
>> I saw your comment but I don't understand how this was causing a
>> crasher, nor exactly what the comment exactly means.
>>
>> http://codereview.chromium.org/541056
>
>

Powered by Google App Engine
This is Rietveld 408576698