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

Side by Side Diff: content/browser/frame_host/render_frame_message_filter.cc

Issue 1345483002: Create a RenderProcess message class and move keygen to it. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: tweak Created 5 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "content/browser/frame_host/render_frame_message_filter.h" 5 #include "content/browser/frame_host/render_frame_message_filter.h"
6 6
7 #include "base/threading/worker_pool.h"
8 #include "content/browser/bad_message.h" 7 #include "content/browser/bad_message.h"
9 #include "content/browser/child_process_security_policy_impl.h" 8 #include "content/browser/child_process_security_policy_impl.h"
10 #include "content/browser/frame_host/render_frame_host_impl.h" 9 #include "content/browser/frame_host/render_frame_host_impl.h"
11 #include "content/browser/gpu/gpu_data_manager_impl.h" 10 #include "content/browser/gpu/gpu_data_manager_impl.h"
12 #include "content/browser/renderer_host/render_widget_helper.h" 11 #include "content/browser/renderer_host/render_widget_helper.h"
13 #include "content/common/frame_messages.h" 12 #include "content/common/frame_messages.h"
14 #include "content/common/view_messages.h" 13 #include "content/common/view_messages.h"
15 #include "content/public/browser/browser_context.h" 14 #include "content/public/browser/browser_context.h"
16 #include "content/public/browser/browser_thread.h" 15 #include "content/public/browser/browser_thread.h"
17 #include "content/public/browser/resource_context.h"
18 #include "content/public/common/content_constants.h" 16 #include "content/public/common/content_constants.h"
19 #include "gpu/GLES2/gl2extchromium.h" 17 #include "gpu/GLES2/gl2extchromium.h"
20 #include "net/base/keygen_handler.h"
21 #include "net/cookies/cookie_store.h" 18 #include "net/cookies/cookie_store.h"
22 #include "net/url_request/url_request_context.h" 19 #include "net/url_request/url_request_context.h"
23 #include "net/url_request/url_request_context_getter.h" 20 #include "net/url_request/url_request_context_getter.h"
24 #include "url/gurl.h" 21 #include "url/gurl.h"
25 22
26 #if defined(OS_MACOSX) 23 #if defined(OS_MACOSX)
27 #include "content/common/mac/font_descriptor.h" 24 #include "content/common/mac/font_descriptor.h"
28 #else 25 #else
29 #include "third_party/khronos/GLES2/gl2.h" 26 #include "third_party/khronos/GLES2/gl2.h"
30 #include "third_party/khronos/GLES2/gl2ext.h" 27 #include "third_party/khronos/GLES2/gl2ext.h"
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 289
293 bool RenderFrameMessageFilter::OnMessageReceived(const IPC::Message& message) { 290 bool RenderFrameMessageFilter::OnMessageReceived(const IPC::Message& message) {
294 bool handled = true; 291 bool handled = true;
295 IPC_BEGIN_MESSAGE_MAP(RenderFrameMessageFilter, message) 292 IPC_BEGIN_MESSAGE_MAP(RenderFrameMessageFilter, message)
296 IPC_MESSAGE_HANDLER(FrameHostMsg_CreateChildFrame, OnCreateChildFrame) 293 IPC_MESSAGE_HANDLER(FrameHostMsg_CreateChildFrame, OnCreateChildFrame)
297 IPC_MESSAGE_HANDLER(FrameHostMsg_SetCookie, OnSetCookie) 294 IPC_MESSAGE_HANDLER(FrameHostMsg_SetCookie, OnSetCookie)
298 IPC_MESSAGE_HANDLER_DELAY_REPLY(FrameHostMsg_GetCookies, OnGetCookies) 295 IPC_MESSAGE_HANDLER_DELAY_REPLY(FrameHostMsg_GetCookies, OnGetCookies)
299 IPC_MESSAGE_HANDLER(FrameHostMsg_CookiesEnabled, OnCookiesEnabled) 296 IPC_MESSAGE_HANDLER(FrameHostMsg_CookiesEnabled, OnCookiesEnabled)
300 IPC_MESSAGE_HANDLER(FrameHostMsg_Are3DAPIsBlocked, OnAre3DAPIsBlocked) 297 IPC_MESSAGE_HANDLER(FrameHostMsg_Are3DAPIsBlocked, OnAre3DAPIsBlocked)
301 IPC_MESSAGE_HANDLER(FrameHostMsg_DidLose3DContext, OnDidLose3DContext) 298 IPC_MESSAGE_HANDLER(FrameHostMsg_DidLose3DContext, OnDidLose3DContext)
302 IPC_MESSAGE_HANDLER_DELAY_REPLY(FrameHostMsg_Keygen, OnKeygen)
303 #if defined(OS_MACOSX) 299 #if defined(OS_MACOSX)
304 IPC_MESSAGE_HANDLER_DELAY_REPLY(FrameHostMsg_LoadFont, OnLoadFont) 300 IPC_MESSAGE_HANDLER_DELAY_REPLY(FrameHostMsg_LoadFont, OnLoadFont)
305 #elif defined(OS_WIN) 301 #elif defined(OS_WIN)
306 IPC_MESSAGE_HANDLER(FrameHostMsg_PreCacheFontCharacters, 302 IPC_MESSAGE_HANDLER(FrameHostMsg_PreCacheFontCharacters,
307 OnPreCacheFontCharacters) 303 OnPreCacheFontCharacters)
308 #endif 304 #endif
309 #if defined(ENABLE_PLUGINS) 305 #if defined(ENABLE_PLUGINS)
310 IPC_MESSAGE_HANDLER_DELAY_REPLY(FrameHostMsg_GetPlugins, OnGetPlugins) 306 IPC_MESSAGE_HANDLER_DELAY_REPLY(FrameHostMsg_GetPlugins, OnGetPlugins)
311 IPC_MESSAGE_HANDLER(FrameHostMsg_GetPluginInfo, OnGetPluginInfo) 307 IPC_MESSAGE_HANDLER(FrameHostMsg_GetPluginInfo, OnGetPluginInfo)
312 IPC_MESSAGE_HANDLER_DELAY_REPLY(FrameHostMsg_OpenChannelToPlugin, 308 IPC_MESSAGE_HANDLER_DELAY_REPLY(FrameHostMsg_OpenChannelToPlugin,
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
454 break; 450 break;
455 default: 451 default:
456 // Ignore lost contexts known to be innocent. 452 // Ignore lost contexts known to be innocent.
457 return; 453 return;
458 } 454 }
459 455
460 GpuDataManagerImpl::GetInstance()->BlockDomainFrom3DAPIs( 456 GpuDataManagerImpl::GetInstance()->BlockDomainFrom3DAPIs(
461 top_origin_url, guilt); 457 top_origin_url, guilt);
462 } 458 }
463 459
464 void RenderFrameMessageFilter::OnKeygen(uint32 key_size_index,
465 const std::string& challenge_string,
466 const GURL& url,
467 IPC::Message* reply_msg) {
468 // Map displayed strings indicating level of keysecurity in the <keygen>
469 // menu to the key size in bits. (See SSLKeyGeneratorChromium.cpp in WebCore.)
470 int key_size_in_bits;
471 switch (key_size_index) {
472 case 0:
473 key_size_in_bits = 2048;
474 break;
475 case 1:
476 key_size_in_bits = 1024;
477 break;
478 default:
479 DCHECK(false) << "Illegal key_size_index " << key_size_index;
480 FrameHostMsg_Keygen::WriteReplyParams(reply_msg, std::string());
481 Send(reply_msg);
482 return;
483 }
484
485 resource_context_->CreateKeygenHandler(
486 key_size_in_bits,
487 challenge_string,
488 url,
489 base::Bind(&RenderFrameMessageFilter::PostKeygenToWorkerThread,
490 this, reply_msg));
491 }
492
493 void RenderFrameMessageFilter::PostKeygenToWorkerThread(
494 IPC::Message* reply_msg,
495 scoped_ptr<net::KeygenHandler> keygen_handler) {
496 VLOG(1) << "Dispatching keygen task to worker pool.";
497 // Dispatch to worker pool, so we do not block the IO thread.
498 if (!base::WorkerPool::PostTask(
499 FROM_HERE,
500 base::Bind(&RenderFrameMessageFilter::OnKeygenOnWorkerThread,
501 this,
502 base::Passed(&keygen_handler),
503 reply_msg),
504 true)) {
505 NOTREACHED() << "Failed to dispatch keygen task to worker pool";
506 FrameHostMsg_Keygen::WriteReplyParams(reply_msg, std::string());
507 Send(reply_msg);
508 }
509 }
510
511 void RenderFrameMessageFilter::OnKeygenOnWorkerThread(
512 scoped_ptr<net::KeygenHandler> keygen_handler,
513 IPC::Message* reply_msg) {
514 DCHECK(reply_msg);
515
516 // Generate a signed public key and challenge, then send it back.
517 FrameHostMsg_Keygen::WriteReplyParams(
518 reply_msg,
519 keygen_handler->GenKeyAndSignChallenge());
520 Send(reply_msg);
521 }
522
523 #if defined(OS_MACOSX) 460 #if defined(OS_MACOSX)
524 461
525 void RenderFrameMessageFilter::OnLoadFont(const FontDescriptor& font, 462 void RenderFrameMessageFilter::OnLoadFont(const FontDescriptor& font,
526 IPC::Message* reply_msg) { 463 IPC::Message* reply_msg) {
527 FontLoader::Result* result = new FontLoader::Result; 464 FontLoader::Result* result = new FontLoader::Result;
528 465
529 BrowserThread::PostTaskAndReply( 466 BrowserThread::PostTaskAndReply(
530 BrowserThread::FILE, FROM_HERE, 467 BrowserThread::FILE, FROM_HERE,
531 base::Bind(&FontLoader::LoadFont, font, result), 468 base::Bind(&FontLoader::LoadFont, font, result),
532 base::Bind(&RenderFrameMessageFilter::SendLoadFontReply, this, reply_msg, 469 base::Bind(&RenderFrameMessageFilter::SendLoadFontReply, this, reply_msg,
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
753 net::URLRequestContext* context = 690 net::URLRequestContext* context =
754 GetContentClient()->browser()->OverrideRequestContextForURL( 691 GetContentClient()->browser()->OverrideRequestContextForURL(
755 url, resource_context_); 692 url, resource_context_);
756 if (!context) 693 if (!context)
757 context = request_context_->GetURLRequestContext(); 694 context = request_context_->GetURLRequestContext();
758 695
759 return context; 696 return context;
760 } 697 }
761 698
762 } // namespace content 699 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/frame_host/render_frame_message_filter.h ('k') | content/browser/renderer_host/render_message_filter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698