| 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/content_settings/content_setting_bubble_model.h" | 5 #include "chrome/browser/ui/content_settings/content_setting_bubble_model.h" |
| 6 | 6 |
| 7 #include "base/utf_string_conversions.h" | 7 #include "base/utf_string_conversions.h" |
| 8 #include "chrome/browser/content_settings/content_settings_utils.h" | 8 #include "chrome/browser/content_settings/content_settings_utils.h" |
| 9 #include "chrome/browser/content_settings/cookie_settings.h" | 9 #include "chrome/browser/content_settings/cookie_settings.h" |
| 10 #include "chrome/browser/content_settings/tab_specific_content_settings.h" | 10 #include "chrome/browser/content_settings/tab_specific_content_settings.h" |
| 11 #include "chrome/browser/favicon/favicon_tab_helper.h" | 11 #include "chrome/browser/favicon/favicon_tab_helper.h" |
| 12 #include "chrome/browser/infobars/infobar_tab_helper.h" | 12 #include "chrome/browser/infobars/infobar_tab_helper.h" |
| 13 #include "chrome/browser/prefs/pref_service.h" | 13 #include "chrome/browser/prefs/pref_service.h" |
| 14 #include "chrome/browser/profiles/profile.h" | 14 #include "chrome/browser/profiles/profile.h" |
| 15 #include "chrome/browser/ui/blocked_content/blocked_content_tab_helper.h" | 15 #include "chrome/browser/ui/blocked_content/blocked_content_tab_helper.h" |
| 16 #include "chrome/browser/ui/blocked_content/blocked_content_tab_helper_delegate.
h" | 16 #include "chrome/browser/ui/blocked_content/blocked_content_tab_helper_delegate.
h" |
| 17 #include "chrome/browser/ui/browser.h" |
| 17 #include "chrome/browser/ui/collected_cookies_infobar_delegate.h" | 18 #include "chrome/browser/ui/collected_cookies_infobar_delegate.h" |
| 18 #include "chrome/browser/ui/content_settings/content_setting_bubble_model_delega
te.h" | |
| 19 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" | 19 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
| 20 #include "chrome/common/chrome_notification_types.h" | 20 #include "chrome/common/chrome_notification_types.h" |
| 21 #include "chrome/common/content_settings.h" | 21 #include "chrome/common/content_settings.h" |
| 22 #include "chrome/common/pref_names.h" | 22 #include "chrome/common/pref_names.h" |
| 23 #include "chrome/common/render_messages.h" | 23 #include "chrome/common/render_messages.h" |
| 24 #include "content/public/browser/notification_service.h" | 24 #include "content/public/browser/notification_service.h" |
| 25 #include "content/public/browser/render_view_host.h" | 25 #include "content/public/browser/render_view_host.h" |
| 26 #include "content/public/browser/user_metrics.h" | 26 #include "content/public/browser/user_metrics.h" |
| 27 #include "content/public/browser/web_contents.h" | 27 #include "content/public/browser/web_contents.h" |
| 28 #include "content/public/browser/web_contents_delegate.h" | 28 #include "content/public/browser/web_contents_delegate.h" |
| (...skipping 21 matching lines...) Expand all Loading... |
| 50 if (entries[i].type == type) | 50 if (entries[i].type == type) |
| 51 return entries[i].id; | 51 return entries[i].id; |
| 52 } | 52 } |
| 53 return 0; | 53 return 0; |
| 54 } | 54 } |
| 55 | 55 |
| 56 } // namespace | 56 } // namespace |
| 57 | 57 |
| 58 class ContentSettingTitleAndLinkModel : public ContentSettingBubbleModel { | 58 class ContentSettingTitleAndLinkModel : public ContentSettingBubbleModel { |
| 59 public: | 59 public: |
| 60 ContentSettingTitleAndLinkModel(Delegate* delegate, | 60 ContentSettingTitleAndLinkModel(Browser* browser, |
| 61 TabContentsWrapper* tab_contents, | 61 TabContentsWrapper* tab_contents, |
| 62 Profile* profile, | 62 Profile* profile, |
| 63 ContentSettingsType content_type) | 63 ContentSettingsType content_type) |
| 64 : ContentSettingBubbleModel(tab_contents, profile, content_type), | 64 : ContentSettingBubbleModel(tab_contents, profile, content_type), |
| 65 delegate_(delegate) { | 65 browser_(browser) { |
| 66 // Notifications do not have a bubble. | 66 // Notifications do not have a bubble. |
| 67 DCHECK_NE(content_type, CONTENT_SETTINGS_TYPE_NOTIFICATIONS); | 67 DCHECK_NE(content_type, CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
| 68 SetBlockedResources(); | 68 SetBlockedResources(); |
| 69 SetTitle(); | 69 SetTitle(); |
| 70 SetManageLink(); | 70 SetManageLink(); |
| 71 } | 71 } |
| 72 | 72 |
| 73 virtual ~ContentSettingTitleAndLinkModel() {} | 73 virtual ~ContentSettingTitleAndLinkModel() {} |
| 74 Delegate* delegate() const { return delegate_; } | 74 Browser* browser() const { return browser_; } |
| 75 | 75 |
| 76 private: | 76 private: |
| 77 void SetBlockedResources() { | 77 void SetBlockedResources() { |
| 78 TabSpecificContentSettings* settings = tab_contents()->content_settings(); | 78 TabSpecificContentSettings* settings = tab_contents()->content_settings(); |
| 79 const std::set<std::string>& resources = settings->BlockedResourcesForType( | 79 const std::set<std::string>& resources = settings->BlockedResourcesForType( |
| 80 content_type()); | 80 content_type()); |
| 81 for (std::set<std::string>::const_iterator it = resources.begin(); | 81 for (std::set<std::string>::const_iterator it = resources.begin(); |
| 82 it != resources.end(); ++it) { | 82 it != resources.end(); ++it) { |
| 83 AddBlockedResource(*it); | 83 AddBlockedResource(*it); |
| 84 } | 84 } |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 124 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_LINK}, | 124 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_LINK}, |
| 125 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_LINK}, | 125 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_LINK}, |
| 126 {CONTENT_SETTINGS_TYPE_POPUPS, IDS_BLOCKED_POPUPS_LINK}, | 126 {CONTENT_SETTINGS_TYPE_POPUPS, IDS_BLOCKED_POPUPS_LINK}, |
| 127 {CONTENT_SETTINGS_TYPE_GEOLOCATION, IDS_GEOLOCATION_BUBBLE_MANAGE_LINK}, | 127 {CONTENT_SETTINGS_TYPE_GEOLOCATION, IDS_GEOLOCATION_BUBBLE_MANAGE_LINK}, |
| 128 }; | 128 }; |
| 129 set_manage_link(l10n_util::GetStringUTF8( | 129 set_manage_link(l10n_util::GetStringUTF8( |
| 130 GetIdForContentType(kLinkIDs, arraysize(kLinkIDs), content_type()))); | 130 GetIdForContentType(kLinkIDs, arraysize(kLinkIDs), content_type()))); |
| 131 } | 131 } |
| 132 | 132 |
| 133 virtual void OnManageLinkClicked() { | 133 virtual void OnManageLinkClicked() { |
| 134 if (delegate_) | 134 if (browser_) |
| 135 delegate_->ShowContentSettingsPage(content_type()); | 135 browser_->ShowContentSettingsPage(content_type()); |
| 136 } | 136 } |
| 137 | 137 |
| 138 Delegate* delegate_; | 138 Browser* browser_; |
| 139 }; | 139 }; |
| 140 | 140 |
| 141 class ContentSettingTitleLinkAndCustomModel | 141 class ContentSettingTitleLinkAndCustomModel |
| 142 : public ContentSettingTitleAndLinkModel { | 142 : public ContentSettingTitleAndLinkModel { |
| 143 public: | 143 public: |
| 144 ContentSettingTitleLinkAndCustomModel(Delegate* delegate, | 144 ContentSettingTitleLinkAndCustomModel(Browser* browser, |
| 145 TabContentsWrapper* tab_contents, | 145 TabContentsWrapper* tab_contents, |
| 146 Profile* profile, | 146 Profile* profile, |
| 147 ContentSettingsType content_type) | 147 ContentSettingsType content_type) |
| 148 : ContentSettingTitleAndLinkModel( | 148 : ContentSettingTitleAndLinkModel( |
| 149 delegate, tab_contents, profile, content_type) { | 149 browser, tab_contents, profile, content_type) { |
| 150 SetCustomLink(); | 150 SetCustomLink(); |
| 151 } | 151 } |
| 152 | 152 |
| 153 virtual ~ContentSettingTitleLinkAndCustomModel() {} | 153 virtual ~ContentSettingTitleLinkAndCustomModel() {} |
| 154 | 154 |
| 155 private: | 155 private: |
| 156 void SetCustomLink() { | 156 void SetCustomLink() { |
| 157 static const ContentSettingsTypeIdEntry kCustomIDs[] = { | 157 static const ContentSettingsTypeIdEntry kCustomIDs[] = { |
| 158 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_INFO}, | 158 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_INFO}, |
| 159 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_LOAD_ALL}, | 159 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_LOAD_ALL}, |
| 160 }; | 160 }; |
| 161 int custom_link_id = | 161 int custom_link_id = |
| 162 GetIdForContentType(kCustomIDs, arraysize(kCustomIDs), content_type()); | 162 GetIdForContentType(kCustomIDs, arraysize(kCustomIDs), content_type()); |
| 163 if (custom_link_id) | 163 if (custom_link_id) |
| 164 set_custom_link(l10n_util::GetStringUTF8(custom_link_id)); | 164 set_custom_link(l10n_util::GetStringUTF8(custom_link_id)); |
| 165 } | 165 } |
| 166 | 166 |
| 167 virtual void OnCustomLinkClicked() {} | 167 virtual void OnCustomLinkClicked() {} |
| 168 }; | 168 }; |
| 169 | 169 |
| 170 | 170 |
| 171 class ContentSettingSingleRadioGroup | 171 class ContentSettingSingleRadioGroup |
| 172 : public ContentSettingTitleLinkAndCustomModel { | 172 : public ContentSettingTitleLinkAndCustomModel { |
| 173 public: | 173 public: |
| 174 ContentSettingSingleRadioGroup(Delegate* delegate, | 174 ContentSettingSingleRadioGroup(Browser* browser, |
| 175 TabContentsWrapper* tab_contents, | 175 TabContentsWrapper* tab_contents, |
| 176 Profile* profile, | 176 Profile* profile, |
| 177 ContentSettingsType content_type) | 177 ContentSettingsType content_type) |
| 178 : ContentSettingTitleLinkAndCustomModel(delegate, tab_contents, profile, | 178 : ContentSettingTitleLinkAndCustomModel(browser, tab_contents, profile, |
| 179 content_type), | 179 content_type), |
| 180 block_setting_(CONTENT_SETTING_BLOCK), | 180 block_setting_(CONTENT_SETTING_BLOCK), |
| 181 selected_item_(0) { | 181 selected_item_(0) { |
| 182 SetRadioGroup(); | 182 SetRadioGroup(); |
| 183 } | 183 } |
| 184 | 184 |
| 185 virtual ~ContentSettingSingleRadioGroup() { | 185 virtual ~ContentSettingSingleRadioGroup() { |
| 186 if (settings_changed()) { | 186 if (settings_changed()) { |
| 187 ContentSetting setting = | 187 ContentSetting setting = |
| 188 selected_item_ == 0 ? CONTENT_SETTING_ALLOW : block_setting_; | 188 selected_item_ == 0 ? CONTENT_SETTING_ALLOW : block_setting_; |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 326 } | 326 } |
| 327 } | 327 } |
| 328 | 328 |
| 329 virtual void OnRadioClicked(int radio_index) { | 329 virtual void OnRadioClicked(int radio_index) { |
| 330 selected_item_ = radio_index; | 330 selected_item_ = radio_index; |
| 331 } | 331 } |
| 332 }; | 332 }; |
| 333 | 333 |
| 334 class ContentSettingCookiesBubbleModel : public ContentSettingSingleRadioGroup { | 334 class ContentSettingCookiesBubbleModel : public ContentSettingSingleRadioGroup { |
| 335 public: | 335 public: |
| 336 ContentSettingCookiesBubbleModel(Delegate* delegate, | 336 ContentSettingCookiesBubbleModel(Browser* browser, |
| 337 TabContentsWrapper* tab_contents, | 337 TabContentsWrapper* tab_contents, |
| 338 Profile* profile, | 338 Profile* profile, |
| 339 ContentSettingsType content_type) | 339 ContentSettingsType content_type) |
| 340 : ContentSettingSingleRadioGroup( | 340 : ContentSettingSingleRadioGroup( |
| 341 delegate, tab_contents, profile, content_type) { | 341 browser, tab_contents, profile, content_type) { |
| 342 DCHECK_EQ(CONTENT_SETTINGS_TYPE_COOKIES, content_type); | 342 DCHECK_EQ(CONTENT_SETTINGS_TYPE_COOKIES, content_type); |
| 343 set_custom_link_enabled(true); | 343 set_custom_link_enabled(true); |
| 344 } | 344 } |
| 345 | 345 |
| 346 virtual ~ContentSettingCookiesBubbleModel() { | 346 virtual ~ContentSettingCookiesBubbleModel() { |
| 347 if (settings_changed()) { | 347 if (settings_changed()) { |
| 348 InfoBarTabHelper* infobar_helper = tab_contents()->infobar_tab_helper(); | 348 InfoBarTabHelper* infobar_helper = tab_contents()->infobar_tab_helper(); |
| 349 infobar_helper->AddInfoBar( | 349 infobar_helper->AddInfoBar( |
| 350 new CollectedCookiesInfoBarDelegate(infobar_helper)); | 350 new CollectedCookiesInfoBarDelegate(infobar_helper)); |
| 351 } | 351 } |
| 352 } | 352 } |
| 353 | 353 |
| 354 private: | 354 private: |
| 355 virtual void OnCustomLinkClicked() OVERRIDE { | 355 virtual void OnCustomLinkClicked() OVERRIDE { |
| 356 if (!tab_contents()) | 356 if (!tab_contents()) |
| 357 return; | 357 return; |
| 358 content::NotificationService::current()->Notify( | 358 content::NotificationService::current()->Notify( |
| 359 chrome::NOTIFICATION_COLLECTED_COOKIES_SHOWN, | 359 chrome::NOTIFICATION_COLLECTED_COOKIES_SHOWN, |
| 360 content::Source<TabSpecificContentSettings>( | 360 content::Source<TabSpecificContentSettings>( |
| 361 tab_contents()->content_settings()), | 361 tab_contents()->content_settings()), |
| 362 content::NotificationService::NoDetails()); | 362 content::NotificationService::NoDetails()); |
| 363 delegate()->ShowCollectedCookiesDialog(tab_contents()); | 363 browser()->ShowCollectedCookiesDialog(tab_contents()); |
| 364 } | 364 } |
| 365 }; | 365 }; |
| 366 | 366 |
| 367 class ContentSettingPluginBubbleModel : public ContentSettingSingleRadioGroup { | 367 class ContentSettingPluginBubbleModel : public ContentSettingSingleRadioGroup { |
| 368 public: | 368 public: |
| 369 ContentSettingPluginBubbleModel(Delegate* delegate, | 369 ContentSettingPluginBubbleModel(Browser* browser, |
| 370 TabContentsWrapper* tab_contents, | 370 TabContentsWrapper* tab_contents, |
| 371 Profile* profile, | 371 Profile* profile, |
| 372 ContentSettingsType content_type) | 372 ContentSettingsType content_type) |
| 373 : ContentSettingSingleRadioGroup( | 373 : ContentSettingSingleRadioGroup( |
| 374 delegate, tab_contents, profile, content_type) { | 374 browser, tab_contents, profile, content_type) { |
| 375 DCHECK_EQ(content_type, CONTENT_SETTINGS_TYPE_PLUGINS); | 375 DCHECK_EQ(content_type, CONTENT_SETTINGS_TYPE_PLUGINS); |
| 376 set_custom_link_enabled(tab_contents && tab_contents->content_settings()-> | 376 set_custom_link_enabled(tab_contents && tab_contents->content_settings()-> |
| 377 load_plugins_link_enabled()); | 377 load_plugins_link_enabled()); |
| 378 } | 378 } |
| 379 | 379 |
| 380 virtual ~ContentSettingPluginBubbleModel() {} | 380 virtual ~ContentSettingPluginBubbleModel() {} |
| 381 | 381 |
| 382 private: | 382 private: |
| 383 virtual void OnCustomLinkClicked() OVERRIDE { | 383 virtual void OnCustomLinkClicked() OVERRIDE { |
| 384 content::RecordAction(UserMetricsAction("ClickToPlay_LoadAll_Bubble")); | 384 content::RecordAction(UserMetricsAction("ClickToPlay_LoadAll_Bubble")); |
| 385 DCHECK(tab_contents()); | 385 DCHECK(tab_contents()); |
| 386 content::RenderViewHost* host = | 386 content::RenderViewHost* host = |
| 387 tab_contents()->web_contents()->GetRenderViewHost(); | 387 tab_contents()->web_contents()->GetRenderViewHost(); |
| 388 host->Send(new ChromeViewMsg_LoadBlockedPlugins(host->GetRoutingID())); | 388 host->Send(new ChromeViewMsg_LoadBlockedPlugins(host->GetRoutingID())); |
| 389 set_custom_link_enabled(false); | 389 set_custom_link_enabled(false); |
| 390 tab_contents()->content_settings()->set_load_plugins_link_enabled(false); | 390 tab_contents()->content_settings()->set_load_plugins_link_enabled(false); |
| 391 } | 391 } |
| 392 }; | 392 }; |
| 393 | 393 |
| 394 class ContentSettingPopupBubbleModel : public ContentSettingSingleRadioGroup { | 394 class ContentSettingPopupBubbleModel : public ContentSettingSingleRadioGroup { |
| 395 public: | 395 public: |
| 396 ContentSettingPopupBubbleModel(Delegate* delegate, | 396 ContentSettingPopupBubbleModel(Browser* browser, |
| 397 TabContentsWrapper* tab_contents, | 397 TabContentsWrapper* tab_contents, |
| 398 Profile* profile, | 398 Profile* profile, |
| 399 ContentSettingsType content_type) | 399 ContentSettingsType content_type) |
| 400 : ContentSettingSingleRadioGroup( | 400 : ContentSettingSingleRadioGroup( |
| 401 delegate, tab_contents, profile, content_type) { | 401 browser, tab_contents, profile, content_type) { |
| 402 SetPopups(); | 402 SetPopups(); |
| 403 } | 403 } |
| 404 | 404 |
| 405 virtual ~ContentSettingPopupBubbleModel() {} | 405 virtual ~ContentSettingPopupBubbleModel() {} |
| 406 | 406 |
| 407 private: | 407 private: |
| 408 void SetPopups() { | 408 void SetPopups() { |
| 409 std::vector<TabContentsWrapper*> blocked_contents; | 409 std::vector<TabContentsWrapper*> blocked_contents; |
| 410 tab_contents()->blocked_content_tab_helper()-> | 410 tab_contents()->blocked_content_tab_helper()-> |
| 411 GetBlockedContents(&blocked_contents); | 411 GetBlockedContents(&blocked_contents); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 428 if (tab_contents()) { | 428 if (tab_contents()) { |
| 429 tab_contents()->blocked_content_tab_helper()-> | 429 tab_contents()->blocked_content_tab_helper()-> |
| 430 LaunchForContents(bubble_content().popup_items[index].tab_contents); | 430 LaunchForContents(bubble_content().popup_items[index].tab_contents); |
| 431 } | 431 } |
| 432 } | 432 } |
| 433 }; | 433 }; |
| 434 | 434 |
| 435 class ContentSettingDomainListBubbleModel | 435 class ContentSettingDomainListBubbleModel |
| 436 : public ContentSettingTitleAndLinkModel { | 436 : public ContentSettingTitleAndLinkModel { |
| 437 public: | 437 public: |
| 438 ContentSettingDomainListBubbleModel(Delegate* delegate, | 438 ContentSettingDomainListBubbleModel(Browser* browser, |
| 439 TabContentsWrapper* tab_contents, | 439 TabContentsWrapper* tab_contents, |
| 440 Profile* profile, | 440 Profile* profile, |
| 441 ContentSettingsType content_type) | 441 ContentSettingsType content_type) |
| 442 : ContentSettingTitleAndLinkModel( | 442 : ContentSettingTitleAndLinkModel( |
| 443 delegate, tab_contents, profile, content_type) { | 443 browser, tab_contents, profile, content_type) { |
| 444 DCHECK_EQ(CONTENT_SETTINGS_TYPE_GEOLOCATION, content_type) << | 444 DCHECK_EQ(CONTENT_SETTINGS_TYPE_GEOLOCATION, content_type) << |
| 445 "SetDomains currently only supports geolocation content type"; | 445 "SetDomains currently only supports geolocation content type"; |
| 446 SetDomainsAndCustomLink(); | 446 SetDomainsAndCustomLink(); |
| 447 } | 447 } |
| 448 | 448 |
| 449 virtual ~ContentSettingDomainListBubbleModel() {} | 449 virtual ~ContentSettingDomainListBubbleModel() {} |
| 450 | 450 |
| 451 private: | 451 private: |
| 452 void MaybeAddDomainList(const std::set<std::string>& hosts, int title_id) { | 452 void MaybeAddDomainList(const std::set<std::string>& hosts, int title_id) { |
| 453 if (!hosts.empty()) { | 453 if (!hosts.empty()) { |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 504 CONTENT_SETTINGS_TYPE_GEOLOCATION, | 504 CONTENT_SETTINGS_TYPE_GEOLOCATION, |
| 505 std::string(), | 505 std::string(), |
| 506 CONTENT_SETTING_DEFAULT); | 506 CONTENT_SETTING_DEFAULT); |
| 507 } | 507 } |
| 508 } | 508 } |
| 509 }; | 509 }; |
| 510 | 510 |
| 511 // static | 511 // static |
| 512 ContentSettingBubbleModel* | 512 ContentSettingBubbleModel* |
| 513 ContentSettingBubbleModel::CreateContentSettingBubbleModel( | 513 ContentSettingBubbleModel::CreateContentSettingBubbleModel( |
| 514 Delegate* delegate, | 514 Browser* browser, |
| 515 TabContentsWrapper* tab_contents, | 515 TabContentsWrapper* tab_contents, |
| 516 Profile* profile, | 516 Profile* profile, |
| 517 ContentSettingsType content_type) { | 517 ContentSettingsType content_type) { |
| 518 if (content_type == CONTENT_SETTINGS_TYPE_COOKIES) { | 518 if (content_type == CONTENT_SETTINGS_TYPE_COOKIES) { |
| 519 return new ContentSettingCookiesBubbleModel(delegate, tab_contents, profile, | 519 return new ContentSettingCookiesBubbleModel(browser, tab_contents, profile, |
| 520 content_type); | 520 content_type); |
| 521 } | 521 } |
| 522 if (content_type == CONTENT_SETTINGS_TYPE_POPUPS) { | 522 if (content_type == CONTENT_SETTINGS_TYPE_POPUPS) { |
| 523 return new ContentSettingPopupBubbleModel(delegate, tab_contents, profile, | 523 return new ContentSettingPopupBubbleModel(browser, tab_contents, profile, |
| 524 content_type); | 524 content_type); |
| 525 } | 525 } |
| 526 if (content_type == CONTENT_SETTINGS_TYPE_GEOLOCATION) { | 526 if (content_type == CONTENT_SETTINGS_TYPE_GEOLOCATION) { |
| 527 return new ContentSettingDomainListBubbleModel(delegate, tab_contents, | 527 return new ContentSettingDomainListBubbleModel(browser, tab_contents, |
| 528 profile, content_type); | 528 profile, content_type); |
| 529 } | 529 } |
| 530 if (content_type == CONTENT_SETTINGS_TYPE_PLUGINS) { | 530 if (content_type == CONTENT_SETTINGS_TYPE_PLUGINS) { |
| 531 return new ContentSettingPluginBubbleModel(delegate, tab_contents, profile, | 531 return new ContentSettingPluginBubbleModel(browser, tab_contents, profile, |
| 532 content_type); | 532 content_type); |
| 533 } | 533 } |
| 534 return new ContentSettingSingleRadioGroup(delegate, tab_contents, profile, | 534 return new ContentSettingSingleRadioGroup(browser, tab_contents, profile, |
| 535 content_type); | 535 content_type); |
| 536 } | 536 } |
| 537 | 537 |
| 538 ContentSettingBubbleModel::ContentSettingBubbleModel( | 538 ContentSettingBubbleModel::ContentSettingBubbleModel( |
| 539 TabContentsWrapper* tab_contents, | 539 TabContentsWrapper* tab_contents, |
| 540 Profile* profile, | 540 Profile* profile, |
| 541 ContentSettingsType content_type) | 541 ContentSettingsType content_type) |
| 542 : tab_contents_(tab_contents), | 542 : tab_contents_(tab_contents), |
| 543 profile_(profile), | 543 profile_(profile), |
| 544 content_type_(content_type) { | 544 content_type_(content_type) { |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 583 tab_contents_ = NULL; | 583 tab_contents_ = NULL; |
| 584 break; | 584 break; |
| 585 case chrome::NOTIFICATION_PROFILE_DESTROYED: | 585 case chrome::NOTIFICATION_PROFILE_DESTROYED: |
| 586 DCHECK(source == content::Source<Profile>(profile_)); | 586 DCHECK(source == content::Source<Profile>(profile_)); |
| 587 profile_ = NULL; | 587 profile_ = NULL; |
| 588 break; | 588 break; |
| 589 default: | 589 default: |
| 590 NOTREACHED(); | 590 NOTREACHED(); |
| 591 } | 591 } |
| 592 } | 592 } |
| OLD | NEW |