OLD | NEW |
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/chromeos/attestation/platform_verification_dialog.h" | 5 #include "chrome/browser/chromeos/attestation/platform_verification_dialog.h" |
6 | 6 |
7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
8 #include "chrome/browser/profiles/profile.h" | 8 #include "chrome/browser/profiles/profile.h" |
9 #include "chrome/browser/ui/browser_finder.h" | 9 #include "chrome/browser/ui/browser_finder.h" |
10 #include "chrome/browser/ui/browser_navigator.h" | 10 #include "chrome/browser/ui/browser_navigator.h" |
(...skipping 22 matching lines...) Expand all Loading... |
33 namespace { | 33 namespace { |
34 | 34 |
35 const int kDialogMaxWidthInPixel = 400; | 35 const int kDialogMaxWidthInPixel = 400; |
36 | 36 |
37 } // namespace | 37 } // namespace |
38 | 38 |
39 // static | 39 // static |
40 views::Widget* PlatformVerificationDialog::ShowDialog( | 40 views::Widget* PlatformVerificationDialog::ShowDialog( |
41 content::WebContents* web_contents, | 41 content::WebContents* web_contents, |
42 const GURL& requesting_origin, | 42 const GURL& requesting_origin, |
43 const PlatformVerificationFlow::Delegate::ConsentCallback& callback) { | 43 const ConsentCallback& callback) { |
44 // In the case of an extension or hosted app, the origin of the request is | 44 // In the case of an extension or hosted app, the origin of the request is |
45 // best described by the extension / app name. | 45 // best described by the extension / app name. |
46 const extensions::Extension* extension = | 46 const extensions::Extension* extension = |
47 extensions::ExtensionRegistry::Get(web_contents->GetBrowserContext()) | 47 extensions::ExtensionRegistry::Get(web_contents->GetBrowserContext()) |
48 ->enabled_extensions() | 48 ->enabled_extensions() |
49 .GetExtensionOrAppByURL(web_contents->GetLastCommittedURL()); | 49 .GetExtensionOrAppByURL(web_contents->GetLastCommittedURL()); |
50 | 50 |
51 // TODO(xhwang): We should only show the name if the request if from the | 51 // TODO(xhwang): We should only show the name if the request if from the |
52 // extension's true frame. See http://crbug.com/455821 | 52 // extension's true frame. See http://crbug.com/455821 |
53 std::string origin = extension ? extension->name() : requesting_origin.spec(); | 53 std::string origin = extension ? extension->name() : requesting_origin.spec(); |
(...skipping 13 matching lines...) Expand all Loading... |
67 | 67 |
68 return widget; | 68 return widget; |
69 } | 69 } |
70 | 70 |
71 PlatformVerificationDialog::~PlatformVerificationDialog() { | 71 PlatformVerificationDialog::~PlatformVerificationDialog() { |
72 } | 72 } |
73 | 73 |
74 PlatformVerificationDialog::PlatformVerificationDialog( | 74 PlatformVerificationDialog::PlatformVerificationDialog( |
75 content::WebContents* web_contents, | 75 content::WebContents* web_contents, |
76 const base::string16& domain, | 76 const base::string16& domain, |
77 const PlatformVerificationFlow::Delegate::ConsentCallback& callback) | 77 const ConsentCallback& callback) |
78 : content::WebContentsObserver(web_contents), | 78 : content::WebContentsObserver(web_contents), |
79 domain_(domain), | 79 domain_(domain), |
80 callback_(callback) { | 80 callback_(callback) { |
81 SetLayoutManager(new views::FillLayout()); | 81 SetLayoutManager(new views::FillLayout()); |
82 SetBorder(views::Border::CreateEmptyBorder( | 82 SetBorder(views::Border::CreateEmptyBorder( |
83 0, views::kButtonHEdgeMarginNew, 0, views::kButtonHEdgeMarginNew)); | 83 0, views::kButtonHEdgeMarginNew, 0, views::kButtonHEdgeMarginNew)); |
84 const base::string16 learn_more = l10n_util::GetStringUTF16(IDS_LEARN_MORE); | 84 const base::string16 learn_more = l10n_util::GetStringUTF16(IDS_LEARN_MORE); |
85 std::vector<size_t> offsets; | 85 std::vector<size_t> offsets; |
86 base::string16 headline = l10n_util::GetStringFUTF16( | 86 base::string16 headline = l10n_util::GetStringFUTF16( |
87 IDS_PLATFORM_VERIFICATION_DIALOG_HEADLINE, domain_, learn_more, &offsets); | 87 IDS_PLATFORM_VERIFICATION_DIALOG_HEADLINE, domain_, learn_more, &offsets); |
88 views::StyledLabel* headline_label = new views::StyledLabel(headline, this); | 88 views::StyledLabel* headline_label = new views::StyledLabel(headline, this); |
89 headline_label->AddStyleRange( | 89 headline_label->AddStyleRange( |
90 gfx::Range(offsets[1], offsets[1] + learn_more.size()), | 90 gfx::Range(offsets[1], offsets[1] + learn_more.size()), |
91 views::StyledLabel::RangeStyleInfo::CreateForLink()); | 91 views::StyledLabel::RangeStyleInfo::CreateForLink()); |
92 AddChildView(headline_label); | 92 AddChildView(headline_label); |
93 } | 93 } |
94 | 94 |
95 bool PlatformVerificationDialog::Cancel() { | 95 bool PlatformVerificationDialog::Cancel() { |
96 callback_.Run(PlatformVerificationFlow::CONSENT_RESPONSE_DENY); | 96 // This method is called when user clicked "Disable on <origin>" button or |
| 97 // when user pressed the "Esc" key. See http://crbug.com/467155 |
| 98 callback_.Run(CONSENT_RESPONSE_DENY); |
97 return true; | 99 return true; |
98 } | 100 } |
99 | 101 |
100 bool PlatformVerificationDialog::Accept() { | 102 bool PlatformVerificationDialog::Accept() { |
101 callback_.Run(PlatformVerificationFlow::CONSENT_RESPONSE_ALLOW); | 103 // This method is called when user clicked "OK, I got it" button. |
| 104 callback_.Run(CONSENT_RESPONSE_ALLOW); |
102 return true; | 105 return true; |
103 } | 106 } |
104 | 107 |
105 bool PlatformVerificationDialog::Close() { | 108 bool PlatformVerificationDialog::Close() { |
106 // This method is called when the tab is closed and in that case the decision | 109 // This method is called when user clicked "x" to dismiss the dialog, the |
107 // hasn't been made yet. | 110 // permission request is canceled, or when the tab containing this dialog is |
108 callback_.Run(PlatformVerificationFlow::CONSENT_RESPONSE_NONE); | 111 // closed. |
| 112 callback_.Run(CONSENT_RESPONSE_NONE); |
109 return true; | 113 return true; |
110 } | 114 } |
111 | 115 |
112 base::string16 PlatformVerificationDialog::GetDialogButtonLabel( | 116 base::string16 PlatformVerificationDialog::GetDialogButtonLabel( |
113 ui::DialogButton button) const { | 117 ui::DialogButton button) const { |
114 switch (button) { | 118 switch (button) { |
115 case ui::DIALOG_BUTTON_OK: | 119 case ui::DIALOG_BUTTON_OK: |
116 return l10n_util::GetStringUTF16(IDS_PLATFORM_VERIFICATION_DIALOG_ALLOW); | 120 return l10n_util::GetStringUTF16(IDS_PLATFORM_VERIFICATION_DIALOG_ALLOW); |
117 case ui::DIALOG_BUTTON_CANCEL: | 121 case ui::DIALOG_BUTTON_CANCEL: |
118 return l10n_util::GetStringFUTF16( | 122 return l10n_util::GetStringFUTF16( |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
154 void PlatformVerificationDialog::DidStartNavigationToPendingEntry( | 158 void PlatformVerificationDialog::DidStartNavigationToPendingEntry( |
155 const GURL& url, | 159 const GURL& url, |
156 content::NavigationController::ReloadType reload_type) { | 160 content::NavigationController::ReloadType reload_type) { |
157 views::Widget* widget = GetWidget(); | 161 views::Widget* widget = GetWidget(); |
158 if (widget) | 162 if (widget) |
159 widget->Close(); | 163 widget->Close(); |
160 } | 164 } |
161 | 165 |
162 } // namespace attestation | 166 } // namespace attestation |
163 } // namespace chromeos | 167 } // namespace chromeos |
OLD | NEW |