OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/content_settings/tab_specific_content_settings.h" | 5 #include "chrome/browser/content_settings/tab_specific_content_settings.h" |
6 | 6 |
7 #include <list> | 7 #include <list> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
11 #include "base/utf_string_conversions.h" | 11 #include "base/utf_string_conversions.h" |
12 #include "chrome/browser/browsing_data_appcache_helper.h" | 12 #include "chrome/browser/browsing_data_appcache_helper.h" |
13 #include "chrome/browser/browsing_data_cookie_helper.h" | 13 #include "chrome/browser/browsing_data_cookie_helper.h" |
14 #include "chrome/browser/browsing_data_database_helper.h" | 14 #include "chrome/browser/browsing_data_database_helper.h" |
15 #include "chrome/browser/browsing_data_file_system_helper.h" | 15 #include "chrome/browser/browsing_data_file_system_helper.h" |
16 #include "chrome/browser/browsing_data_indexed_db_helper.h" | 16 #include "chrome/browser/browsing_data_indexed_db_helper.h" |
17 #include "chrome/browser/browsing_data_local_storage_helper.h" | 17 #include "chrome/browser/browsing_data_local_storage_helper.h" |
18 #include "chrome/browser/content_settings/content_settings_details.h" | 18 #include "chrome/browser/content_settings/content_settings_details.h" |
| 19 #include "chrome/browser/content_settings/content_settings_utils.h" |
19 #include "chrome/browser/content_settings/host_content_settings_map.h" | 20 #include "chrome/browser/content_settings/host_content_settings_map.h" |
20 #include "chrome/browser/cookies_tree_model.h" | 21 #include "chrome/browser/cookies_tree_model.h" |
21 #include "chrome/browser/profiles/profile.h" | 22 #include "chrome/browser/profiles/profile.h" |
22 #include "chrome/common/chrome_notification_types.h" | 23 #include "chrome/common/chrome_notification_types.h" |
23 #include "chrome/common/chrome_switches.h" | 24 #include "chrome/common/chrome_switches.h" |
24 #include "chrome/common/render_messages.h" | 25 #include "chrome/common/render_messages.h" |
25 #include "content/browser/renderer_host/render_view_host.h" | 26 #include "content/browser/renderer_host/render_view_host.h" |
26 #include "content/browser/tab_contents/navigation_details.h" | 27 #include "content/browser/tab_contents/navigation_details.h" |
27 #include "content/browser/tab_contents/tab_contents.h" | 28 #include "content/browser/tab_contents/tab_contents.h" |
28 #include "content/browser/tab_contents/tab_contents_delegate.h" | 29 #include "content/browser/tab_contents/tab_contents_delegate.h" |
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
423 void TabSpecificContentSettings::DidNavigateMainFrame( | 424 void TabSpecificContentSettings::DidNavigateMainFrame( |
424 const content::LoadCommittedDetails& details, | 425 const content::LoadCommittedDetails& details, |
425 const ViewHostMsg_FrameNavigate_Params& params) { | 426 const ViewHostMsg_FrameNavigate_Params& params) { |
426 if (!details.is_in_page) { | 427 if (!details.is_in_page) { |
427 // Clear "blocked" flags. | 428 // Clear "blocked" flags. |
428 ClearBlockedContentSettingsExceptForCookies(); | 429 ClearBlockedContentSettingsExceptForCookies(); |
429 GeolocationDidNavigate(details); | 430 GeolocationDidNavigate(details); |
430 } | 431 } |
431 } | 432 } |
432 | 433 |
433 void TabSpecificContentSettings::RenderViewCreated( | |
434 RenderViewHost* render_view_host) { | |
435 Profile* profile = | |
436 Profile::FromBrowserContext(tab_contents()->browser_context()); | |
437 HostContentSettingsMap* map = profile->GetHostContentSettingsMap(); | |
438 render_view_host->Send(new ChromeViewMsg_SetDefaultContentSettings( | |
439 map->GetDefaultContentSettings())); | |
440 } | |
441 | |
442 void TabSpecificContentSettings::DidStartProvisionalLoadForFrame( | 434 void TabSpecificContentSettings::DidStartProvisionalLoadForFrame( |
443 int64 frame_id, | 435 int64 frame_id, |
444 bool is_main_frame, | 436 bool is_main_frame, |
445 const GURL& validated_url, | 437 const GURL& validated_url, |
446 bool is_error_page, | 438 bool is_error_page, |
447 RenderViewHost* render_view_host) { | 439 RenderViewHost* render_view_host) { |
448 if (!is_main_frame) | 440 if (!is_main_frame) |
449 return; | 441 return; |
450 | 442 |
451 // If we're displaying a network error page do not reset the content | 443 // If we're displaying a network error page do not reset the content |
(...skipping 26 matching lines...) Expand all Loading... |
478 NavigationEntry* entry = controller.GetActiveEntry(); | 470 NavigationEntry* entry = controller.GetActiveEntry(); |
479 GURL entry_url; | 471 GURL entry_url; |
480 if (entry) | 472 if (entry) |
481 entry_url = entry->url(); | 473 entry_url = entry->url(); |
482 if (settings_details.ptr()->update_all() || | 474 if (settings_details.ptr()->update_all() || |
483 // The active NavigationEntry is the URL in the URL field of a tab. | 475 // The active NavigationEntry is the URL in the URL field of a tab. |
484 // Currently this should be matched by the |primary_pattern|. | 476 // Currently this should be matched by the |primary_pattern|. |
485 settings_details.ptr()->primary_pattern().Matches(entry_url)) { | 477 settings_details.ptr()->primary_pattern().Matches(entry_url)) { |
486 Profile* profile = | 478 Profile* profile = |
487 Profile::FromBrowserContext(tab_contents()->browser_context()); | 479 Profile::FromBrowserContext(tab_contents()->browser_context()); |
488 HostContentSettingsMap* map = profile->GetHostContentSettingsMap(); | 480 RendererContentSettingRules rules; |
489 Send(new ChromeViewMsg_SetDefaultContentSettings( | 481 GetRendererContentSettingRules(profile->GetHostContentSettingsMap(), |
490 map->GetDefaultContentSettings())); | 482 &rules); |
491 Send(new ChromeViewMsg_SetContentSettingsForCurrentURL( | 483 Send(new ChromeViewMsg_SetContentSettingRules(rules)); |
492 entry_url, map->GetContentSettings(entry_url))); | |
493 ContentSettingsForOneType settings; | |
494 map->GetSettingsForOneType(CONTENT_SETTINGS_TYPE_IMAGES, "", &settings); | |
495 Send(new ChromeViewMsg_SetImageSettingRules(settings)); | |
496 } | 484 } |
497 } | 485 } |
498 | 486 |
499 TabSpecificContentSettings::LocalSharedObjectsContainer:: | 487 TabSpecificContentSettings::LocalSharedObjectsContainer:: |
500 LocalSharedObjectsContainer(Profile* profile) | 488 LocalSharedObjectsContainer(Profile* profile) |
501 : appcaches_(new CannedBrowsingDataAppCacheHelper(profile)), | 489 : appcaches_(new CannedBrowsingDataAppCacheHelper(profile)), |
502 cookies_(new CannedBrowsingDataCookieHelper(profile)), | 490 cookies_(new CannedBrowsingDataCookieHelper(profile)), |
503 databases_(new CannedBrowsingDataDatabaseHelper(profile)), | 491 databases_(new CannedBrowsingDataDatabaseHelper(profile)), |
504 file_systems_(new CannedBrowsingDataFileSystemHelper(profile)), | 492 file_systems_(new CannedBrowsingDataFileSystemHelper(profile)), |
505 indexed_dbs_(new CannedBrowsingDataIndexedDBHelper()), | 493 indexed_dbs_(new CannedBrowsingDataIndexedDBHelper()), |
(...skipping 20 matching lines...) Expand all Loading... |
526 return new CookiesTreeModel(cookies_->Clone(), | 514 return new CookiesTreeModel(cookies_->Clone(), |
527 databases_->Clone(), | 515 databases_->Clone(), |
528 local_storages_->Clone(), | 516 local_storages_->Clone(), |
529 session_storages_->Clone(), | 517 session_storages_->Clone(), |
530 appcaches_->Clone(), | 518 appcaches_->Clone(), |
531 indexed_dbs_->Clone(), | 519 indexed_dbs_->Clone(), |
532 file_systems_->Clone(), | 520 file_systems_->Clone(), |
533 NULL, | 521 NULL, |
534 true); | 522 true); |
535 } | 523 } |
OLD | NEW |