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

Side by Side Diff: chrome/browser/ui/views/autofill/generated_credit_card_bubble_views.cc

Issue 23533030: rAc: Enforce a 3 second grace period for generated card bubble. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: exclude test on !views Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/views/autofill/generated_credit_card_bubble_views.h" 5 #include "chrome/browser/ui/views/autofill/generated_credit_card_bubble_views.h"
6 6
7 #include "chrome/browser/ui/autofill/generated_credit_card_bubble_controller.h" 7 #include "chrome/browser/ui/autofill/generated_credit_card_bubble_controller.h"
8 #include "chrome/browser/ui/browser_finder.h" 8 #include "chrome/browser/ui/browser_finder.h"
9 #include "chrome/browser/ui/views/frame/browser_view.h" 9 #include "chrome/browser/ui/views/frame/browser_view.h"
10 #include "chrome/browser/ui/views/location_bar/location_bar_view.h" 10 #include "chrome/browser/ui/views/location_bar/location_bar_view.h"
(...skipping 16 matching lines...) Expand all
27 BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser( 27 BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(
28 chrome::FindBrowserWithWebContents(controller->web_contents())); 28 chrome::FindBrowserWithWebContents(controller->web_contents()));
29 return browser_view->GetLocationBarView()->generated_credit_card_view(); 29 return browser_view->GetLocationBarView()->generated_credit_card_view();
30 } 30 }
31 31
32 } // namespace 32 } // namespace
33 33
34 GeneratedCreditCardBubbleViews::~GeneratedCreditCardBubbleViews() {} 34 GeneratedCreditCardBubbleViews::~GeneratedCreditCardBubbleViews() {}
35 35
36 void GeneratedCreditCardBubbleViews::Show() { 36 void GeneratedCreditCardBubbleViews::Show() {
37 // TODO(dbeam): investigate why this steals focus from the web contents.
38 views::BubbleDelegateView::CreateBubble(this)->Show(); 37 views::BubbleDelegateView::CreateBubble(this)->Show();
39 38
39 // Grab mouse events for 3 seconds after showing. This prevents clicks outside
40 // of the bubble from dismissing the bubble. After 3 seconds, it will revert
41 // to normal close-on-deactivate behavior.
42 GetWidget()->SetCapture(NULL);
43 GetWidget()->set_auto_release_capture(false);
44 capture_timer_.Start(
45 FROM_HERE,
46 base::TimeDelta::FromSeconds(3),
47 this,
48 &GeneratedCreditCardBubbleViews::ReleaseCapture);
49
40 // This bubble doesn't render correctly on Windows without calling 50 // This bubble doesn't render correctly on Windows without calling
41 // |SizeToContents()|. This must be called after showing the widget. 51 // |SizeToContents()|. This must be called after showing the widget.
42 SizeToContents(); 52 SizeToContents();
43 } 53 }
44 54
45 void GeneratedCreditCardBubbleViews::Hide() { 55 void GeneratedCreditCardBubbleViews::Hide() {
46 GetWidget()->Close(); 56 GetWidget()->Close();
47 } 57 }
48 58
49 bool GeneratedCreditCardBubbleViews::IsHiding() const { 59 bool GeneratedCreditCardBubbleViews::IsHiding() const {
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 108
99 GeneratedCreditCardBubbleViews::GeneratedCreditCardBubbleViews( 109 GeneratedCreditCardBubbleViews::GeneratedCreditCardBubbleViews(
100 const base::WeakPtr<GeneratedCreditCardBubbleController>& controller) 110 const base::WeakPtr<GeneratedCreditCardBubbleController>& controller)
101 : BubbleDelegateView(GetAnchor(controller), views::BubbleBorder::TOP_RIGHT), 111 : BubbleDelegateView(GetAnchor(controller), views::BubbleBorder::TOP_RIGHT),
102 controller_(controller), 112 controller_(controller),
103 weak_ptr_factory_(this) { 113 weak_ptr_factory_(this) {
104 gfx::Insets insets = views::BubbleFrameView::GetTitleInsets(); 114 gfx::Insets insets = views::BubbleFrameView::GetTitleInsets();
105 set_margins(gfx::Insets(0, insets.left(), insets.top(), insets.left())); 115 set_margins(gfx::Insets(0, insets.left(), insets.top(), insets.left()));
106 } 116 }
107 117
118 void GeneratedCreditCardBubbleViews::ReleaseCapture() {
119 GetWidget()->ReleaseCapture();
120 }
121
108 } // namespace autofill 122 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698