| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/website_settings/website_settings.h" | 5 #include "chrome/browser/ui/website_settings/website_settings.h" |
| 6 | 6 |
| 7 #include "base/at_exit.h" | 7 #include "base/at_exit.h" |
| 8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
| 9 #include "base/string16.h" | 9 #include "base/string16.h" |
| 10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 58 }; | 58 }; |
| 59 | 59 |
| 60 class MockWebsiteSettingsUI : public WebsiteSettingsUI { | 60 class MockWebsiteSettingsUI : public WebsiteSettingsUI { |
| 61 public: | 61 public: |
| 62 virtual ~MockWebsiteSettingsUI() {} | 62 virtual ~MockWebsiteSettingsUI() {} |
| 63 MOCK_METHOD1(SetCookieInfo, void(const CookieInfoList& cookie_info_list)); | 63 MOCK_METHOD1(SetCookieInfo, void(const CookieInfoList& cookie_info_list)); |
| 64 MOCK_METHOD1(SetPermissionInfo, | 64 MOCK_METHOD1(SetPermissionInfo, |
| 65 void(const PermissionInfoList& permission_info_list)); | 65 void(const PermissionInfoList& permission_info_list)); |
| 66 MOCK_METHOD1(SetIdentityInfo, void(const IdentityInfo& identity_info)); | 66 MOCK_METHOD1(SetIdentityInfo, void(const IdentityInfo& identity_info)); |
| 67 MOCK_METHOD1(SetFirstVisit, void(const string16& first_visit)); | 67 MOCK_METHOD1(SetFirstVisit, void(const string16& first_visit)); |
| 68 MOCK_METHOD1(SetSelectedTab, void(TabId tab_id)); |
| 68 }; | 69 }; |
| 69 | 70 |
| 70 class WebsiteSettingsTest : public ChromeRenderViewHostTestHarness { | 71 class WebsiteSettingsTest : public ChromeRenderViewHostTestHarness { |
| 71 public: | 72 public: |
| 72 WebsiteSettingsTest() | 73 WebsiteSettingsTest() |
| 73 : website_settings_(NULL), | 74 : website_settings_(NULL), |
| 74 mock_ui_(NULL), | 75 mock_ui_(NULL), |
| 75 cert_id_(0), | 76 cert_id_(0), |
| 76 browser_thread_(content::BrowserThread::UI, &message_loop_), | 77 browser_thread_(content::BrowserThread::UI, &message_loop_), |
| 77 tab_specific_content_settings_(NULL), | 78 tab_specific_content_settings_(NULL), |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 171 url(), url(), CONTENT_SETTINGS_TYPE_PLUGINS, ""); | 172 url(), url(), CONTENT_SETTINGS_TYPE_PLUGINS, ""); |
| 172 EXPECT_EQ(setting, CONTENT_SETTING_ALLOW); | 173 EXPECT_EQ(setting, CONTENT_SETTING_ALLOW); |
| 173 setting = content_settings->GetContentSetting( | 174 setting = content_settings->GetContentSetting( |
| 174 url(), url(), CONTENT_SETTINGS_TYPE_GEOLOCATION, ""); | 175 url(), url(), CONTENT_SETTINGS_TYPE_GEOLOCATION, ""); |
| 175 EXPECT_EQ(setting, CONTENT_SETTING_ASK); | 176 EXPECT_EQ(setting, CONTENT_SETTING_ASK); |
| 176 setting = content_settings->GetContentSetting( | 177 setting = content_settings->GetContentSetting( |
| 177 url(), url(), CONTENT_SETTINGS_TYPE_NOTIFICATIONS, ""); | 178 url(), url(), CONTENT_SETTINGS_TYPE_NOTIFICATIONS, ""); |
| 178 EXPECT_EQ(setting, CONTENT_SETTING_ASK); | 179 EXPECT_EQ(setting, CONTENT_SETTING_ASK); |
| 179 | 180 |
| 180 SetDefaultUIExpectations(mock_ui()); | 181 SetDefaultUIExpectations(mock_ui()); |
| 182 EXPECT_CALL(*mock_ui(), SetSelectedTab( |
| 183 WebsiteSettingsUI::TAB_ID_PERMISSIONS)); |
| 181 | 184 |
| 182 // Execute code under tests. | 185 // Execute code under tests. |
| 183 website_settings()->OnSitePermissionChanged(CONTENT_SETTINGS_TYPE_POPUPS, | 186 website_settings()->OnSitePermissionChanged(CONTENT_SETTINGS_TYPE_POPUPS, |
| 184 CONTENT_SETTING_ALLOW); | 187 CONTENT_SETTING_ALLOW); |
| 185 website_settings()->OnSitePermissionChanged(CONTENT_SETTINGS_TYPE_PLUGINS, | 188 website_settings()->OnSitePermissionChanged(CONTENT_SETTINGS_TYPE_PLUGINS, |
| 186 CONTENT_SETTING_BLOCK); | 189 CONTENT_SETTING_BLOCK); |
| 187 website_settings()->OnSitePermissionChanged(CONTENT_SETTINGS_TYPE_GEOLOCATION, | 190 website_settings()->OnSitePermissionChanged(CONTENT_SETTINGS_TYPE_GEOLOCATION, |
| 188 CONTENT_SETTING_ALLOW); | 191 CONTENT_SETTING_ALLOW); |
| 189 website_settings()->OnSitePermissionChanged( | 192 website_settings()->OnSitePermissionChanged( |
| 190 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_ALLOW); | 193 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_ALLOW); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 202 setting = content_settings->GetContentSetting( | 205 setting = content_settings->GetContentSetting( |
| 203 url(), url(), CONTENT_SETTINGS_TYPE_NOTIFICATIONS, ""); | 206 url(), url(), CONTENT_SETTINGS_TYPE_NOTIFICATIONS, ""); |
| 204 EXPECT_EQ(setting, CONTENT_SETTING_ALLOW); | 207 EXPECT_EQ(setting, CONTENT_SETTING_ALLOW); |
| 205 } | 208 } |
| 206 | 209 |
| 207 TEST_F(WebsiteSettingsTest, OnSiteDataAccessed) { | 210 TEST_F(WebsiteSettingsTest, OnSiteDataAccessed) { |
| 208 EXPECT_CALL(*mock_ui(), SetPermissionInfo(_)); | 211 EXPECT_CALL(*mock_ui(), SetPermissionInfo(_)); |
| 209 EXPECT_CALL(*mock_ui(), SetIdentityInfo(_)); | 212 EXPECT_CALL(*mock_ui(), SetIdentityInfo(_)); |
| 210 EXPECT_CALL(*mock_ui(), SetFirstVisit(string16())); | 213 EXPECT_CALL(*mock_ui(), SetFirstVisit(string16())); |
| 211 EXPECT_CALL(*mock_ui(), SetCookieInfo(_)).Times(2); | 214 EXPECT_CALL(*mock_ui(), SetCookieInfo(_)).Times(2); |
| 215 EXPECT_CALL(*mock_ui(), SetSelectedTab( |
| 216 WebsiteSettingsUI::TAB_ID_PERMISSIONS)); |
| 212 | 217 |
| 213 website_settings()->OnSiteDataAccessed(); | 218 website_settings()->OnSiteDataAccessed(); |
| 214 } | 219 } |
| 215 | 220 |
| 216 TEST_F(WebsiteSettingsTest, HTTPConnection) { | 221 TEST_F(WebsiteSettingsTest, HTTPConnection) { |
| 217 SetDefaultUIExpectations(mock_ui()); | 222 SetDefaultUIExpectations(mock_ui()); |
| 223 EXPECT_CALL(*mock_ui(), SetSelectedTab( |
| 224 WebsiteSettingsUI::TAB_ID_PERMISSIONS)); |
| 218 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_UNENCRYPTED, | 225 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_UNENCRYPTED, |
| 219 website_settings()->site_connection_status()); | 226 website_settings()->site_connection_status()); |
| 220 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_NO_CERT, | 227 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_NO_CERT, |
| 221 website_settings()->site_identity_status()); | 228 website_settings()->site_identity_status()); |
| 222 EXPECT_EQ(string16(), website_settings()->organization_name()); | 229 EXPECT_EQ(string16(), website_settings()->organization_name()); |
| 223 } | 230 } |
| 224 | 231 |
| 225 TEST_F(WebsiteSettingsTest, HTTPSConnection) { | 232 TEST_F(WebsiteSettingsTest, HTTPSConnection) { |
| 226 ssl_.security_style = content::SECURITY_STYLE_AUTHENTICATED; | 233 ssl_.security_style = content::SECURITY_STYLE_AUTHENTICATED; |
| 227 ssl_.cert_id = cert_id(); | 234 ssl_.cert_id = cert_id(); |
| 228 ssl_.cert_status = 0; | 235 ssl_.cert_status = 0; |
| 229 ssl_.security_bits = 81; // No error if > 80. | 236 ssl_.security_bits = 81; // No error if > 80. |
| 230 int status = 0; | 237 int status = 0; |
| 231 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | 238 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 232 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | 239 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 233 ssl_.connection_status = status; | 240 ssl_.connection_status = status; |
| 234 | 241 |
| 235 SetDefaultUIExpectations(mock_ui()); | 242 SetDefaultUIExpectations(mock_ui()); |
| 243 EXPECT_CALL(*mock_ui(), SetSelectedTab( |
| 244 WebsiteSettingsUI::TAB_ID_PERMISSIONS)); |
| 236 | 245 |
| 237 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, | 246 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, |
| 238 website_settings()->site_connection_status()); | 247 website_settings()->site_connection_status()); |
| 239 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT, | 248 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT, |
| 240 website_settings()->site_identity_status()); | 249 website_settings()->site_identity_status()); |
| 241 EXPECT_EQ(string16(), website_settings()->organization_name()); | 250 EXPECT_EQ(string16(), website_settings()->organization_name()); |
| 242 } | 251 } |
| 243 | 252 |
| 244 TEST_F(WebsiteSettingsTest, HTTPSMixedContent) { | 253 TEST_F(WebsiteSettingsTest, HTTPSMixedContent) { |
| 245 ssl_.security_style = content::SECURITY_STYLE_AUTHENTICATED; | 254 ssl_.security_style = content::SECURITY_STYLE_AUTHENTICATED; |
| 246 ssl_.cert_id = cert_id(); | 255 ssl_.cert_id = cert_id(); |
| 247 ssl_.cert_status = 0; | 256 ssl_.cert_status = 0; |
| 248 ssl_.security_bits = 81; // No error if > 80. | 257 ssl_.security_bits = 81; // No error if > 80. |
| 249 ssl_.content_status = SSLStatus::DISPLAYED_INSECURE_CONTENT; | 258 ssl_.content_status = SSLStatus::DISPLAYED_INSECURE_CONTENT; |
| 250 int status = 0; | 259 int status = 0; |
| 251 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | 260 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 252 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | 261 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 253 ssl_.connection_status = status; | 262 ssl_.connection_status = status; |
| 254 | 263 |
| 255 SetDefaultUIExpectations(mock_ui()); | 264 SetDefaultUIExpectations(mock_ui()); |
| 265 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); |
| 256 | 266 |
| 257 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_MIXED_CONTENT, | 267 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_MIXED_CONTENT, |
| 258 website_settings()->site_connection_status()); | 268 website_settings()->site_connection_status()); |
| 259 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT, | 269 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT, |
| 260 website_settings()->site_identity_status()); | 270 website_settings()->site_identity_status()); |
| 261 EXPECT_EQ(string16(), website_settings()->organization_name()); | 271 EXPECT_EQ(string16(), website_settings()->organization_name()); |
| 262 } | 272 } |
| 263 | 273 |
| 264 TEST_F(WebsiteSettingsTest, HTTPSEVCert) { | 274 TEST_F(WebsiteSettingsTest, HTTPSEVCert) { |
| 265 scoped_refptr<net::X509Certificate> ev_cert = | 275 scoped_refptr<net::X509Certificate> ev_cert = |
| 266 net::X509Certificate::CreateFromBytes( | 276 net::X509Certificate::CreateFromBytes( |
| 267 reinterpret_cast<const char*>(google_der), | 277 reinterpret_cast<const char*>(google_der), |
| 268 sizeof(google_der)); | 278 sizeof(google_der)); |
| 269 int ev_cert_id = 1; | 279 int ev_cert_id = 1; |
| 270 EXPECT_CALL(*cert_store(), RetrieveCert(ev_cert_id, _)).WillRepeatedly( | 280 EXPECT_CALL(*cert_store(), RetrieveCert(ev_cert_id, _)).WillRepeatedly( |
| 271 DoAll(SetArgPointee<1>(ev_cert), Return(true))); | 281 DoAll(SetArgPointee<1>(ev_cert), Return(true))); |
| 272 | 282 |
| 273 ssl_.security_style = content::SECURITY_STYLE_AUTHENTICATED; | 283 ssl_.security_style = content::SECURITY_STYLE_AUTHENTICATED; |
| 274 ssl_.cert_id = ev_cert_id; | 284 ssl_.cert_id = ev_cert_id; |
| 275 ssl_.cert_status = net::CERT_STATUS_IS_EV; | 285 ssl_.cert_status = net::CERT_STATUS_IS_EV; |
| 276 ssl_.security_bits = 81; // No error if > 80. | 286 ssl_.security_bits = 81; // No error if > 80. |
| 277 ssl_.content_status = SSLStatus::DISPLAYED_INSECURE_CONTENT; | 287 ssl_.content_status = SSLStatus::DISPLAYED_INSECURE_CONTENT; |
| 278 int status = 0; | 288 int status = 0; |
| 279 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | 289 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 280 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | 290 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 281 ssl_.connection_status = status; | 291 ssl_.connection_status = status; |
| 282 | 292 |
| 283 SetDefaultUIExpectations(mock_ui()); | 293 SetDefaultUIExpectations(mock_ui()); |
| 294 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); |
| 284 | 295 |
| 285 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_MIXED_CONTENT, | 296 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_MIXED_CONTENT, |
| 286 website_settings()->site_connection_status()); | 297 website_settings()->site_connection_status()); |
| 287 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_EV_CERT, | 298 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_EV_CERT, |
| 288 website_settings()->site_identity_status()); | 299 website_settings()->site_identity_status()); |
| 289 EXPECT_EQ(UTF8ToUTF16("Google Inc"), website_settings()->organization_name()); | 300 EXPECT_EQ(UTF8ToUTF16("Google Inc"), website_settings()->organization_name()); |
| 290 } | 301 } |
| 291 | 302 |
| 292 TEST_F(WebsiteSettingsTest, HTTPSRevocationError) { | 303 TEST_F(WebsiteSettingsTest, HTTPSRevocationError) { |
| 293 ssl_.security_style = content::SECURITY_STYLE_AUTHENTICATED; | 304 ssl_.security_style = content::SECURITY_STYLE_AUTHENTICATED; |
| 294 ssl_.cert_id = cert_id(); | 305 ssl_.cert_id = cert_id(); |
| 295 ssl_.cert_status = net::CERT_STATUS_UNABLE_TO_CHECK_REVOCATION; | 306 ssl_.cert_status = net::CERT_STATUS_UNABLE_TO_CHECK_REVOCATION; |
| 296 ssl_.security_bits = 81; // No error if > 80. | 307 ssl_.security_bits = 81; // No error if > 80. |
| 297 int status = 0; | 308 int status = 0; |
| 298 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | 309 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 299 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | 310 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 300 ssl_.connection_status = status; | 311 ssl_.connection_status = status; |
| 301 | 312 |
| 302 SetDefaultUIExpectations(mock_ui()); | 313 SetDefaultUIExpectations(mock_ui()); |
| 314 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); |
| 303 | 315 |
| 304 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, | 316 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, |
| 305 website_settings()->site_connection_status()); | 317 website_settings()->site_connection_status()); |
| 306 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT_REVOCATION_UNKNOWN, | 318 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT_REVOCATION_UNKNOWN, |
| 307 website_settings()->site_identity_status()); | 319 website_settings()->site_identity_status()); |
| 308 EXPECT_EQ(string16(), website_settings()->organization_name()); | 320 EXPECT_EQ(string16(), website_settings()->organization_name()); |
| 309 } | 321 } |
| 310 | 322 |
| 311 TEST_F(WebsiteSettingsTest, HTTPSConnectionError) { | 323 TEST_F(WebsiteSettingsTest, HTTPSConnectionError) { |
| 312 ssl_.security_style = content::SECURITY_STYLE_AUTHENTICATED; | 324 ssl_.security_style = content::SECURITY_STYLE_AUTHENTICATED; |
| 313 ssl_.cert_id = cert_id(); | 325 ssl_.cert_id = cert_id(); |
| 314 ssl_.cert_status = 0; | 326 ssl_.cert_status = 0; |
| 315 ssl_.security_bits = 1; | 327 ssl_.security_bits = 1; |
| 316 int status = 0; | 328 int status = 0; |
| 317 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | 329 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 318 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | 330 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 319 ssl_.connection_status = status; | 331 ssl_.connection_status = status; |
| 320 | 332 |
| 321 SetDefaultUIExpectations(mock_ui()); | 333 SetDefaultUIExpectations(mock_ui()); |
| 334 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); |
| 322 | 335 |
| 323 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED_ERROR, | 336 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED_ERROR, |
| 324 website_settings()->site_connection_status()); | 337 website_settings()->site_connection_status()); |
| 325 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT, | 338 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT, |
| 326 website_settings()->site_identity_status()); | 339 website_settings()->site_identity_status()); |
| 327 EXPECT_EQ(string16(), website_settings()->organization_name()); | 340 EXPECT_EQ(string16(), website_settings()->organization_name()); |
| 328 } | 341 } |
| 329 | 342 |
| 330 TEST_F(WebsiteSettingsTest, NoInfoBar) { | 343 TEST_F(WebsiteSettingsTest, NoInfoBar) { |
| 331 SetDefaultUIExpectations(mock_ui()); | 344 SetDefaultUIExpectations(mock_ui()); |
| 345 EXPECT_CALL(*mock_ui(), SetSelectedTab( |
| 346 WebsiteSettingsUI::TAB_ID_PERMISSIONS)); |
| 332 EXPECT_EQ(0u, infobar_tab_helper()->GetInfoBarCount()); | 347 EXPECT_EQ(0u, infobar_tab_helper()->GetInfoBarCount()); |
| 333 website_settings()->OnUIClosing(); | 348 website_settings()->OnUIClosing(); |
| 334 EXPECT_EQ(0u, infobar_tab_helper()->GetInfoBarCount()); | 349 EXPECT_EQ(0u, infobar_tab_helper()->GetInfoBarCount()); |
| 335 } | 350 } |
| 336 | 351 |
| 337 TEST_F(WebsiteSettingsTest, ShowInfoBar) { | 352 TEST_F(WebsiteSettingsTest, ShowInfoBar) { |
| 338 SetDefaultUIExpectations(mock_ui()); | 353 SetDefaultUIExpectations(mock_ui()); |
| 354 EXPECT_CALL(*mock_ui(), SetSelectedTab( |
| 355 WebsiteSettingsUI::TAB_ID_PERMISSIONS)); |
| 339 EXPECT_EQ(0u, infobar_tab_helper()->GetInfoBarCount()); | 356 EXPECT_EQ(0u, infobar_tab_helper()->GetInfoBarCount()); |
| 340 website_settings()->OnSitePermissionChanged( | 357 website_settings()->OnSitePermissionChanged( |
| 341 CONTENT_SETTINGS_TYPE_GEOLOCATION, CONTENT_SETTING_ALLOW); | 358 CONTENT_SETTINGS_TYPE_GEOLOCATION, CONTENT_SETTING_ALLOW); |
| 342 website_settings()->OnUIClosing(); | 359 website_settings()->OnUIClosing(); |
| 343 EXPECT_EQ(1u, infobar_tab_helper()->GetInfoBarCount()); | 360 EXPECT_EQ(1u, infobar_tab_helper()->GetInfoBarCount()); |
| 344 | 361 |
| 345 // Removing an |InfoBarDelegate| from the |InfoBarTabHelper| does not delete | 362 // Removing an |InfoBarDelegate| from the |InfoBarTabHelper| does not delete |
| 346 // it. Hence the |delegate| must be cleaned up after it was removed from the | 363 // it. Hence the |delegate| must be cleaned up after it was removed from the |
| 347 // |infobar_tab_helper|. | 364 // |infobar_tab_helper|. |
| 348 scoped_ptr<InfoBarDelegate> delegate( | 365 scoped_ptr<InfoBarDelegate> delegate( |
| 349 infobar_tab_helper()->GetInfoBarDelegateAt(0)); | 366 infobar_tab_helper()->GetInfoBarDelegateAt(0)); |
| 350 infobar_tab_helper()->RemoveInfoBar(delegate.get()); | 367 infobar_tab_helper()->RemoveInfoBar(delegate.get()); |
| 351 // Right now InfoBarDelegates delete themselves via | 368 // Right now InfoBarDelegates delete themselves via |
| 352 // InfoBarClosed(); once InfoBars own their delegates, this can become a | 369 // InfoBarClosed(); once InfoBars own their delegates, this can become a |
| 353 // simple reset() call | 370 // simple reset() call |
| 354 delegate.release()->InfoBarClosed(); | 371 delegate.release()->InfoBarClosed(); |
| 355 } | 372 } |
| OLD | NEW |