Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(180)

Side by Side Diff: chrome/renderer/chrome_render_thread_observer.cc

Issue 2048503002: Convert visitedlink to use mojo. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@message-mojom-magic
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/renderer/chrome_render_thread_observer.h" 5 #include "chrome/renderer/chrome_render_thread_observer.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <limits> 9 #include <limits>
10 #include <memory> 10 #include <memory>
(...skipping 19 matching lines...) Expand all
30 #include "chrome/common/child_process_logging.h" 30 #include "chrome/common/child_process_logging.h"
31 #include "chrome/common/chrome_paths.h" 31 #include "chrome/common/chrome_paths.h"
32 #include "chrome/common/media/media_resource_provider.h" 32 #include "chrome/common/media/media_resource_provider.h"
33 #include "chrome/common/net/net_resource_provider.h" 33 #include "chrome/common/net/net_resource_provider.h"
34 #include "chrome/common/render_messages.h" 34 #include "chrome/common/render_messages.h"
35 #include "chrome/common/resource_usage_reporter.mojom.h" 35 #include "chrome/common/resource_usage_reporter.mojom.h"
36 #include "chrome/common/resource_usage_reporter_type_converters.h" 36 #include "chrome/common/resource_usage_reporter_type_converters.h"
37 #include "chrome/common/url_constants.h" 37 #include "chrome/common/url_constants.h"
38 #include "chrome/renderer/content_settings_observer.h" 38 #include "chrome/renderer/content_settings_observer.h"
39 #include "chrome/renderer/security_filter_peer.h" 39 #include "chrome/renderer/security_filter_peer.h"
40 #include "components/visitedlink/renderer/visitedlink_slave.h"
40 #include "content/public/child/resource_dispatcher_delegate.h" 41 #include "content/public/child/resource_dispatcher_delegate.h"
41 #include "content/public/renderer/render_thread.h" 42 #include "content/public/renderer/render_thread.h"
42 #include "content/public/renderer/render_view.h" 43 #include "content/public/renderer/render_view.h"
43 #include "content/public/renderer/render_view_visitor.h" 44 #include "content/public/renderer/render_view_visitor.h"
44 #include "media/base/media_resources.h" 45 #include "media/base/media_resources.h"
45 #include "mojo/public/cpp/bindings/strong_binding.h" 46 #include "mojo/public/cpp/bindings/strong_binding.h"
46 #include "net/base/net_errors.h" 47 #include "net/base/net_errors.h"
47 #include "net/base/net_module.h" 48 #include "net/base/net_module.h"
48 #include "services/shell/public/cpp/interface_registry.h" 49 #include "services/shell/public/cpp/interface_registry.h"
49 #include "third_party/WebKit/public/web/WebCache.h" 50 #include "third_party/WebKit/public/web/WebCache.h"
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 base::WeakPtr<ChromeRenderThreadObserver> observer, 229 base::WeakPtr<ChromeRenderThreadObserver> observer,
229 mojo::InterfaceRequest<mojom::ResourceUsageReporter> request) { 230 mojo::InterfaceRequest<mojom::ResourceUsageReporter> request) {
230 new ResourceUsageReporterImpl(observer, std::move(request)); 231 new ResourceUsageReporterImpl(observer, std::move(request));
231 } 232 }
232 233
233 } // namespace 234 } // namespace
234 235
235 bool ChromeRenderThreadObserver::is_incognito_process_ = false; 236 bool ChromeRenderThreadObserver::is_incognito_process_ = false;
236 237
237 ChromeRenderThreadObserver::ChromeRenderThreadObserver() 238 ChromeRenderThreadObserver::ChromeRenderThreadObserver()
238 : field_trial_syncer_(this), weak_factory_(this) { 239 : field_trial_syncer_(this),
240 visited_link_slave_(new visitedlink::VisitedLinkSlave),
241 weak_factory_(this) {
239 const base::CommandLine& command_line = 242 const base::CommandLine& command_line =
240 *base::CommandLine::ForCurrentProcess(); 243 *base::CommandLine::ForCurrentProcess();
241 244
242 RenderThread* thread = RenderThread::Get(); 245 RenderThread* thread = RenderThread::Get();
243 resource_delegate_.reset(new RendererResourceDelegate()); 246 resource_delegate_.reset(new RendererResourceDelegate());
244 thread->SetResourceDispatcherDelegate(resource_delegate_.get()); 247 thread->SetResourceDispatcherDelegate(resource_delegate_.get());
245 248
246 thread->GetInterfaceRegistry()->AddInterface( 249 thread->GetInterfaceRegistry()->AddInterface(
247 base::Bind(CreateResourceUsageReporter, weak_factory_.GetWeakPtr())); 250 base::Bind(CreateResourceUsageReporter, weak_factory_.GetWeakPtr()));
248 251
249 // Configure modules that need access to resources. 252 // Configure modules that need access to resources.
250 net::NetModule::SetResourceProvider(chrome_common_net::NetResourceProvider); 253 net::NetModule::SetResourceProvider(chrome_common_net::NetResourceProvider);
251 media::SetLocalizedStringProvider( 254 media::SetLocalizedStringProvider(
252 chrome_common_media::LocalizedStringProvider); 255 chrome_common_media::LocalizedStringProvider);
253 256
254 field_trial_syncer_.InitFieldTrialObserving(command_line); 257 field_trial_syncer_.InitFieldTrialObserving(command_line);
255 258
256 // chrome-native: is a scheme used for placeholder navigations that allow 259 // chrome-native: is a scheme used for placeholder navigations that allow
257 // UIs to be drawn with platform native widgets instead of HTML. These pages 260 // UIs to be drawn with platform native widgets instead of HTML. These pages
258 // should not be accessible, and should also be treated as empty documents 261 // should not be accessible, and should also be treated as empty documents
259 // that can commit synchronously. No code should be runnable in these pages, 262 // that can commit synchronously. No code should be runnable in these pages,
260 // so it should not need to access anything nor should it allow javascript 263 // so it should not need to access anything nor should it allow javascript
261 // URLs since it should never be visible to the user. 264 // URLs since it should never be visible to the user.
262 WebString native_scheme(base::ASCIIToUTF16(chrome::kChromeNativeScheme)); 265 WebString native_scheme(base::ASCIIToUTF16(chrome::kChromeNativeScheme));
263 WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(native_scheme); 266 WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(native_scheme);
264 WebSecurityPolicy::registerURLSchemeAsEmptyDocument(native_scheme); 267 WebSecurityPolicy::registerURLSchemeAsEmptyDocument(native_scheme);
265 WebSecurityPolicy::registerURLSchemeAsNoAccess(native_scheme); 268 WebSecurityPolicy::registerURLSchemeAsNoAccess(native_scheme);
266 WebSecurityPolicy::registerURLSchemeAsNotAllowingJavascriptURLs( 269 WebSecurityPolicy::registerURLSchemeAsNotAllowingJavascriptURLs(
267 native_scheme); 270 native_scheme);
271
272 thread->GetInterfaceRegistry()->AddInterface(
273 base::Bind(&visitedlink::VisitedLinkSlave::Bind,
274 base::Unretained(visited_link_slave_.get())));
268 } 275 }
269 276
270 ChromeRenderThreadObserver::~ChromeRenderThreadObserver() {} 277 ChromeRenderThreadObserver::~ChromeRenderThreadObserver() {}
271 278
272 bool ChromeRenderThreadObserver::OnControlMessageReceived( 279 bool ChromeRenderThreadObserver::OnControlMessageReceived(
273 const IPC::Message& message) { 280 const IPC::Message& message) {
274 bool handled = true; 281 bool handled = true;
275 IPC_BEGIN_MESSAGE_MAP(ChromeRenderThreadObserver, message) 282 IPC_BEGIN_MESSAGE_MAP(ChromeRenderThreadObserver, message)
276 IPC_MESSAGE_HANDLER(ChromeViewMsg_SetIsIncognitoProcess, 283 IPC_MESSAGE_HANDLER(ChromeViewMsg_SetIsIncognitoProcess,
277 OnSetIsIncognitoProcess) 284 OnSetIsIncognitoProcess)
278 IPC_MESSAGE_HANDLER(ChromeViewMsg_SetFieldTrialGroup, OnSetFieldTrialGroup) 285 IPC_MESSAGE_HANDLER(ChromeViewMsg_SetFieldTrialGroup, OnSetFieldTrialGroup)
279 IPC_MESSAGE_HANDLER(ChromeViewMsg_SetContentSettingRules, 286 IPC_MESSAGE_HANDLER(ChromeViewMsg_SetContentSettingRules,
280 OnSetContentSettingRules) 287 OnSetContentSettingRules)
281 IPC_MESSAGE_UNHANDLED(handled = false) 288 IPC_MESSAGE_UNHANDLED(handled = false)
282 IPC_END_MESSAGE_MAP() 289 IPC_END_MESSAGE_MAP()
283 return handled; 290 return handled;
284 } 291 }
285 292
293 void ChromeRenderThreadObserver::OnRenderProcessShutdown() {
294 visited_link_slave_.reset();
295 }
296
286 void ChromeRenderThreadObserver::OnFieldTrialGroupFinalized( 297 void ChromeRenderThreadObserver::OnFieldTrialGroupFinalized(
287 const std::string& trial_name, 298 const std::string& trial_name,
288 const std::string& group_name) { 299 const std::string& group_name) {
289 content::RenderThread::Get()->Send( 300 content::RenderThread::Get()->Send(
290 new ChromeViewHostMsg_FieldTrialActivated(trial_name)); 301 new ChromeViewHostMsg_FieldTrialActivated(trial_name));
291 } 302 }
292 303
293 void ChromeRenderThreadObserver::OnSetIsIncognitoProcess( 304 void ChromeRenderThreadObserver::OnSetIsIncognitoProcess(
294 bool is_incognito_process) { 305 bool is_incognito_process) {
295 is_incognito_process_ = is_incognito_process; 306 is_incognito_process_ = is_incognito_process;
296 } 307 }
297 308
298 void ChromeRenderThreadObserver::OnSetContentSettingRules( 309 void ChromeRenderThreadObserver::OnSetContentSettingRules(
299 const RendererContentSettingRules& rules) { 310 const RendererContentSettingRules& rules) {
300 content_setting_rules_ = rules; 311 content_setting_rules_ = rules;
301 } 312 }
302 313
303 void ChromeRenderThreadObserver::OnSetFieldTrialGroup( 314 void ChromeRenderThreadObserver::OnSetFieldTrialGroup(
304 const std::string& trial_name, 315 const std::string& trial_name,
305 const std::string& group_name) { 316 const std::string& group_name) {
306 field_trial_syncer_.OnSetFieldTrialGroup(trial_name, group_name); 317 field_trial_syncer_.OnSetFieldTrialGroup(trial_name, group_name);
307 } 318 }
308 319
309 const RendererContentSettingRules* 320 const RendererContentSettingRules*
310 ChromeRenderThreadObserver::content_setting_rules() const { 321 ChromeRenderThreadObserver::content_setting_rules() const {
311 return &content_setting_rules_; 322 return &content_setting_rules_;
312 } 323 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698