| 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/lazy_instance.h" | 9 #include "base/lazy_instance.h" |
| 10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 appcaches_->empty() && | 40 appcaches_->empty() && |
| 41 databases_->empty() && | 41 databases_->empty() && |
| 42 file_systems_->empty() && | 42 file_systems_->empty() && |
| 43 indexed_dbs_->empty() && | 43 indexed_dbs_->empty() && |
| 44 local_storages_->empty() && | 44 local_storages_->empty() && |
| 45 session_storages_->empty(); | 45 session_storages_->empty(); |
| 46 } | 46 } |
| 47 | 47 |
| 48 TabSpecificContentSettings::TabSpecificContentSettings(TabContents* tab) | 48 TabSpecificContentSettings::TabSpecificContentSettings(TabContents* tab) |
| 49 : TabContentsObserver(tab), | 49 : TabContentsObserver(tab), |
| 50 allowed_local_shared_objects_(tab->profile()), | 50 profile_(static_cast<Profile*>(tab->browser_context())), |
| 51 blocked_local_shared_objects_(tab->profile()), | 51 allowed_local_shared_objects_(profile_), |
| 52 geolocation_settings_state_(tab->profile()), | 52 blocked_local_shared_objects_(profile_), |
| 53 geolocation_settings_state_(profile_), |
| 53 load_plugins_link_enabled_(true) { | 54 load_plugins_link_enabled_(true) { |
| 54 ClearBlockedContentSettingsExceptForCookies(); | 55 ClearBlockedContentSettingsExceptForCookies(); |
| 55 ClearCookieSpecificContentSettings(); | 56 ClearCookieSpecificContentSettings(); |
| 56 g_tab_specific.Get().push_back(this); | 57 g_tab_specific.Get().push_back(this); |
| 57 | 58 |
| 58 registrar_.Add(this, chrome::NOTIFICATION_CONTENT_SETTINGS_CHANGED, | 59 registrar_.Add(this, chrome::NOTIFICATION_CONTENT_SETTINGS_CHANGED, |
| 59 Source<HostContentSettingsMap>( | 60 Source<HostContentSettingsMap>( |
| 60 tab->profile()->GetHostContentSettingsMap())); | 61 profile_->GetHostContentSettingsMap())); |
| 61 } | 62 } |
| 62 | 63 |
| 63 TabSpecificContentSettings::~TabSpecificContentSettings() { | 64 TabSpecificContentSettings::~TabSpecificContentSettings() { |
| 64 g_tab_specific.Get().remove(this); | 65 g_tab_specific.Get().remove(this); |
| 65 } | 66 } |
| 66 | 67 |
| 67 TabSpecificContentSettings* TabSpecificContentSettings::Get( | 68 TabSpecificContentSettings* TabSpecificContentSettings::Get( |
| 68 int render_process_id, int render_view_id) { | 69 int render_process_id, int render_view_id) { |
| 69 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 70 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 70 RenderViewHost* view = RenderViewHost::FromID( | 71 RenderViewHost* view = RenderViewHost::FromID( |
| (...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 427 const ViewHostMsg_FrameNavigate_Params& params) { | 428 const ViewHostMsg_FrameNavigate_Params& params) { |
| 428 if (!details.is_in_page) { | 429 if (!details.is_in_page) { |
| 429 // Clear "blocked" flags. | 430 // Clear "blocked" flags. |
| 430 ClearBlockedContentSettingsExceptForCookies(); | 431 ClearBlockedContentSettingsExceptForCookies(); |
| 431 GeolocationDidNavigate(details); | 432 GeolocationDidNavigate(details); |
| 432 } | 433 } |
| 433 } | 434 } |
| 434 | 435 |
| 435 void TabSpecificContentSettings::RenderViewCreated( | 436 void TabSpecificContentSettings::RenderViewCreated( |
| 436 RenderViewHost* render_view_host) { | 437 RenderViewHost* render_view_host) { |
| 437 HostContentSettingsMap* map = | 438 HostContentSettingsMap* map = profile_->GetHostContentSettingsMap(); |
| 438 tab_contents()->profile()->GetHostContentSettingsMap(); | |
| 439 render_view_host->Send(new ViewMsg_SetDefaultContentSettings( | 439 render_view_host->Send(new ViewMsg_SetDefaultContentSettings( |
| 440 map->GetDefaultContentSettings())); | 440 map->GetDefaultContentSettings())); |
| 441 } | 441 } |
| 442 | 442 |
| 443 void TabSpecificContentSettings::DidStartProvisionalLoadForFrame( | 443 void TabSpecificContentSettings::DidStartProvisionalLoadForFrame( |
| 444 int64 frame_id, | 444 int64 frame_id, |
| 445 bool is_main_frame, | 445 bool is_main_frame, |
| 446 const GURL& validated_url, | 446 const GURL& validated_url, |
| 447 bool is_error_page, | 447 bool is_error_page, |
| 448 RenderViewHost* render_view_host) { | 448 RenderViewHost* render_view_host) { |
| (...skipping 16 matching lines...) Expand all Loading... |
| 465 Details<const ContentSettingsDetails> settings_details(details); | 465 Details<const ContentSettingsDetails> settings_details(details); |
| 466 const NavigationController& controller = tab_contents()->controller(); | 466 const NavigationController& controller = tab_contents()->controller(); |
| 467 NavigationEntry* entry = controller.GetActiveEntry(); | 467 NavigationEntry* entry = controller.GetActiveEntry(); |
| 468 GURL entry_url; | 468 GURL entry_url; |
| 469 if (entry) | 469 if (entry) |
| 470 entry_url = entry->url(); | 470 entry_url = entry->url(); |
| 471 if (settings_details.ptr()->update_all() || | 471 if (settings_details.ptr()->update_all() || |
| 472 // The active NavigationEntry is the URL in the URL field of a tab. | 472 // The active NavigationEntry is the URL in the URL field of a tab. |
| 473 // Currently this should be matched by the |primary_pattern|. | 473 // Currently this should be matched by the |primary_pattern|. |
| 474 settings_details.ptr()->primary_pattern().Matches(entry_url)) { | 474 settings_details.ptr()->primary_pattern().Matches(entry_url)) { |
| 475 HostContentSettingsMap* map = | 475 HostContentSettingsMap* map = profile_->GetHostContentSettingsMap(); |
| 476 tab_contents()->profile()->GetHostContentSettingsMap(); | |
| 477 Send(new ViewMsg_SetDefaultContentSettings( | 476 Send(new ViewMsg_SetDefaultContentSettings( |
| 478 map->GetDefaultContentSettings())); | 477 map->GetDefaultContentSettings())); |
| 479 Send(new ViewMsg_SetContentSettingsForCurrentURL( | 478 Send(new ViewMsg_SetContentSettingsForCurrentURL( |
| 480 entry_url, map->GetContentSettings(entry_url, entry_url))); | 479 entry_url, map->GetContentSettings(entry_url, entry_url))); |
| 481 } | 480 } |
| 482 } | 481 } |
| 483 | 482 |
| 484 TabSpecificContentSettings::LocalSharedObjectsContainer:: | 483 TabSpecificContentSettings::LocalSharedObjectsContainer:: |
| 485 LocalSharedObjectsContainer(Profile* profile) | 484 LocalSharedObjectsContainer(Profile* profile) |
| 486 : cookies_(new net::CookieMonster(NULL, NULL)), | 485 : cookies_(new net::CookieMonster(NULL, NULL)), |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 518 TabSpecificContentSettings::LocalSharedObjectsContainer::GetCookiesTreeModel() { | 517 TabSpecificContentSettings::LocalSharedObjectsContainer::GetCookiesTreeModel() { |
| 519 return new CookiesTreeModel(cookies_, | 518 return new CookiesTreeModel(cookies_, |
| 520 databases_->Clone(), | 519 databases_->Clone(), |
| 521 local_storages_->Clone(), | 520 local_storages_->Clone(), |
| 522 session_storages_->Clone(), | 521 session_storages_->Clone(), |
| 523 appcaches_->Clone(), | 522 appcaches_->Clone(), |
| 524 indexed_dbs_->Clone(), | 523 indexed_dbs_->Clone(), |
| 525 file_systems_->Clone(), | 524 file_systems_->Clone(), |
| 526 true); | 525 true); |
| 527 } | 526 } |
| OLD | NEW |