Chromium Code Reviews| 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/renderer_host/chrome_render_message_filter.h" | 5 #include "chrome/browser/renderer_host/chrome_render_message_filter.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
| 11 #include "base/logging.h" | 11 #include "base/logging.h" |
| 12 #include "base/metrics/field_trial.h" | 12 #include "base/metrics/field_trial.h" |
| 13 #include "chrome/browser/browser_process.h" | 13 #include "chrome/browser/browser_process.h" |
| 14 #include "chrome/browser/chrome_notification_types.h" | 14 #include "chrome/browser/chrome_notification_types.h" |
| 15 #include "chrome/browser/content_settings/cookie_settings_factory.h" | 15 #include "chrome/browser/content_settings/cookie_settings_factory.h" |
| 16 #include "chrome/browser/content_settings/tab_specific_content_settings.h" | 16 #include "chrome/browser/content_settings/tab_specific_content_settings.h" |
| 17 #include "chrome/browser/metrics/chrome_metrics_service_accessor.h" | 17 #include "chrome/browser/metrics/chrome_metrics_service_accessor.h" |
| 18 #include "chrome/browser/net/predictor.h" | 18 #include "chrome/browser/net/predictor.h" |
| 19 #include "chrome/browser/profiles/profile.h" | 19 #include "chrome/browser/profiles/profile.h" |
| 20 #include "chrome/browser/profiles/profile_io_data.h" | |
| 20 #include "chrome/browser/profiles/profile_manager.h" | 21 #include "chrome/browser/profiles/profile_manager.h" |
| 21 #include "chrome/common/render_messages.h" | 22 #include "chrome/common/render_messages.h" |
| 22 #include "components/content_settings/content/common/content_settings_messages.h " | 23 #include "components/content_settings/content/common/content_settings_messages.h " |
| 23 #include "components/content_settings/core/browser/cookie_settings.h" | 24 #include "components/content_settings/core/browser/cookie_settings.h" |
| 25 #include "components/content_settings/core/browser/host_content_settings_map.h" | |
| 26 #include "components/content_settings/core/common/content_settings.h" | |
| 24 #include "components/network_hints/common/network_hints_common.h" | 27 #include "components/network_hints/common/network_hints_common.h" |
| 25 #include "components/network_hints/common/network_hints_messages.h" | 28 #include "components/network_hints/common/network_hints_messages.h" |
| 26 #include "components/rappor/rappor_service.h" | 29 #include "components/rappor/rappor_service.h" |
| 27 #include "components/rappor/rappor_utils.h" | 30 #include "components/rappor/rappor_utils.h" |
| 28 #include "components/web_cache/browser/web_cache_manager.h" | 31 #include "components/web_cache/browser/web_cache_manager.h" |
| 29 #include "content/public/browser/notification_service.h" | 32 #include "content/public/browser/notification_service.h" |
| 30 #include "content/public/browser/render_process_host.h" | 33 #include "content/public/browser/render_process_host.h" |
| 31 | 34 |
| 32 #if defined(ENABLE_EXTENSIONS) | 35 #if defined(ENABLE_EXTENSIONS) |
| 33 #include "extensions/browser/guest_view/web_view/web_view_permission_helper.h" | 36 #include "extensions/browser/guest_view/web_view/web_view_permission_helper.h" |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 51 }; | 54 }; |
| 52 | 55 |
| 53 } // namespace | 56 } // namespace |
| 54 | 57 |
| 55 ChromeRenderMessageFilter::ChromeRenderMessageFilter(int render_process_id, | 58 ChromeRenderMessageFilter::ChromeRenderMessageFilter(int render_process_id, |
| 56 Profile* profile) | 59 Profile* profile) |
| 57 : BrowserMessageFilter(kFilteredMessageClasses, | 60 : BrowserMessageFilter(kFilteredMessageClasses, |
| 58 arraysize(kFilteredMessageClasses)), | 61 arraysize(kFilteredMessageClasses)), |
| 59 render_process_id_(render_process_id), | 62 render_process_id_(render_process_id), |
| 60 profile_(profile), | 63 profile_(profile), |
| 64 profile_io_data_( | |
| 65 ProfileIOData::FromResourceContext(profile_->GetResourceContext())), | |
| 61 predictor_(profile_->GetNetworkPredictor()), | 66 predictor_(profile_->GetNetworkPredictor()), |
| 62 cookie_settings_(CookieSettingsFactory::GetForProfile(profile)) { | 67 cookie_settings_(CookieSettingsFactory::GetForProfile(profile)) { |
| 63 } | 68 } |
| 64 | 69 |
| 65 ChromeRenderMessageFilter::~ChromeRenderMessageFilter() { | 70 ChromeRenderMessageFilter::~ChromeRenderMessageFilter() { |
| 66 } | 71 } |
| 67 | 72 |
| 68 bool ChromeRenderMessageFilter::OnMessageReceived(const IPC::Message& message) { | 73 bool ChromeRenderMessageFilter::OnMessageReceived(const IPC::Message& message) { |
| 69 bool handled = true; | 74 bool handled = true; |
| 70 IPC_BEGIN_MESSAGE_MAP(ChromeRenderMessageFilter, message) | 75 IPC_BEGIN_MESSAGE_MAP(ChromeRenderMessageFilter, message) |
| 71 IPC_MESSAGE_HANDLER(NetworkHintsMsg_DNSPrefetch, OnDnsPrefetch) | 76 IPC_MESSAGE_HANDLER(NetworkHintsMsg_DNSPrefetch, OnDnsPrefetch) |
| 72 IPC_MESSAGE_HANDLER(NetworkHintsMsg_Preconnect, OnPreconnect) | 77 IPC_MESSAGE_HANDLER(NetworkHintsMsg_Preconnect, OnPreconnect) |
| 73 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_UpdatedCacheStats, | 78 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_UpdatedCacheStats, |
| 74 OnUpdatedCacheStats) | 79 OnUpdatedCacheStats) |
| 75 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_AllowDatabase, OnAllowDatabase) | 80 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_AllowDatabase, OnAllowDatabase) |
| 76 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_AllowDOMStorage, OnAllowDOMStorage) | 81 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_AllowDOMStorage, OnAllowDOMStorage) |
| 82 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_AllowKeygen, OnAllowKeygen) | |
| 77 IPC_MESSAGE_HANDLER_DELAY_REPLY( | 83 IPC_MESSAGE_HANDLER_DELAY_REPLY( |
| 78 ChromeViewHostMsg_RequestFileSystemAccessSync, | 84 ChromeViewHostMsg_RequestFileSystemAccessSync, |
| 79 OnRequestFileSystemAccessSync) | 85 OnRequestFileSystemAccessSync) |
| 80 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_RequestFileSystemAccessAsync, | 86 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_RequestFileSystemAccessAsync, |
| 81 OnRequestFileSystemAccessAsync) | 87 OnRequestFileSystemAccessAsync) |
| 82 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_AllowIndexedDB, OnAllowIndexedDB) | 88 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_AllowIndexedDB, OnAllowIndexedDB) |
| 83 #if defined(ENABLE_PLUGINS) | 89 #if defined(ENABLE_PLUGINS) |
| 84 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_IsCrashReportingEnabled, | 90 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_IsCrashReportingEnabled, |
| 85 OnIsCrashReportingEnabled) | 91 OnIsCrashReportingEnabled) |
| 86 #endif | 92 #endif |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 162 *allowed = | 168 *allowed = |
| 163 cookie_settings_->IsSettingCookieAllowed(origin_url, top_origin_url); | 169 cookie_settings_->IsSettingCookieAllowed(origin_url, top_origin_url); |
| 164 // Record access to DOM storage for potential display in UI. | 170 // Record access to DOM storage for potential display in UI. |
| 165 BrowserThread::PostTask( | 171 BrowserThread::PostTask( |
| 166 BrowserThread::UI, FROM_HERE, | 172 BrowserThread::UI, FROM_HERE, |
| 167 base::Bind(&TabSpecificContentSettings::DOMStorageAccessed, | 173 base::Bind(&TabSpecificContentSettings::DOMStorageAccessed, |
| 168 render_process_id_, render_frame_id, origin_url, local, | 174 render_process_id_, render_frame_id, origin_url, local, |
| 169 !*allowed)); | 175 !*allowed)); |
| 170 } | 176 } |
| 171 | 177 |
| 178 void ChromeRenderMessageFilter::OnAllowKeygen( | |
| 179 int render_frame_id, | |
| 180 const GURL& origin_url, | |
| 181 bool* allowed) { | |
| 182 HostContentSettingsMap* content_settings = | |
| 183 profile_io_data_->GetHostContentSettingsMap(); | |
| 184 | |
| 185 *allowed = content_settings->GetContentSetting( | |
|
jochen (gone - plz use gerrit)
2015/11/24 13:05:08
instead of getting the content settings you probab
svaldez
2015/11/24 17:29:04
Done.
| |
| 186 origin_url, origin_url, CONTENT_SETTINGS_TYPE_KEYGEN, std::string()) == | |
| 187 CONTENT_SETTING_ALLOW; | |
| 188 } | |
| 189 | |
| 172 void ChromeRenderMessageFilter::OnRequestFileSystemAccessSync( | 190 void ChromeRenderMessageFilter::OnRequestFileSystemAccessSync( |
| 173 int render_frame_id, | 191 int render_frame_id, |
| 174 const GURL& origin_url, | 192 const GURL& origin_url, |
| 175 const GURL& top_origin_url, | 193 const GURL& top_origin_url, |
| 176 IPC::Message* reply_msg) { | 194 IPC::Message* reply_msg) { |
| 177 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 195 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 178 base::Callback<void(bool)> callback = | 196 base::Callback<void(bool)> callback = |
| 179 base::Bind(&ChromeRenderMessageFilter:: | 197 base::Bind(&ChromeRenderMessageFilter:: |
| 180 OnRequestFileSystemAccessSyncResponse, | 198 OnRequestFileSystemAccessSyncResponse, |
| 181 make_scoped_refptr(this), | 199 make_scoped_refptr(this), |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 350 rappor::SampleString(g_browser_process->rappor_service(), metric, | 368 rappor::SampleString(g_browser_process->rappor_service(), metric, |
| 351 rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, sample); | 369 rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, sample); |
| 352 } | 370 } |
| 353 | 371 |
| 354 void ChromeRenderMessageFilter::OnRecordRapporURL(const std::string& metric, | 372 void ChromeRenderMessageFilter::OnRecordRapporURL(const std::string& metric, |
| 355 const GURL& sample) { | 373 const GURL& sample) { |
| 356 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 374 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 357 rappor::SampleDomainAndRegistryFromGURL(g_browser_process->rappor_service(), | 375 rappor::SampleDomainAndRegistryFromGURL(g_browser_process->rappor_service(), |
| 358 metric, sample); | 376 metric, sample); |
| 359 } | 377 } |
| OLD | NEW |