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 "content/browser/renderer_host/render_message_filter.h" | 5 #include "content/browser/renderer_host/render_message_filter.h" |
6 | 6 |
7 #include <errno.h> | 7 #include <errno.h> |
8 #include <string.h> | 8 #include <string.h> |
9 #include <map> | 9 #include <map> |
10 #include <utility> | 10 #include <utility> |
(...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
524 scoped_refptr<net::IOBuffer> buf(new net::IOBuffer(data.size())); | 524 scoped_refptr<net::IOBuffer> buf(new net::IOBuffer(data.size())); |
525 if (!data.empty()) | 525 if (!data.empty()) |
526 memcpy(buf->data(), &data.front(), data.size()); | 526 memcpy(buf->data(), &data.front(), data.size()); |
527 cache->WriteMetadata(url, kPriority, expected_response_time, buf.get(), | 527 cache->WriteMetadata(url, kPriority, expected_response_time, buf.get(), |
528 data.size()); | 528 data.size()); |
529 } | 529 } |
530 | 530 |
531 void RenderMessageFilter::OnKeygen(uint32_t key_size_index, | 531 void RenderMessageFilter::OnKeygen(uint32_t key_size_index, |
532 const std::string& challenge_string, | 532 const std::string& challenge_string, |
533 const GURL& url, | 533 const GURL& url, |
| 534 const GURL& top_origin, |
534 IPC::Message* reply_msg) { | 535 IPC::Message* reply_msg) { |
535 if (!resource_context_) | 536 if (!resource_context_) |
536 return; | 537 return; |
537 | 538 |
538 // Map displayed strings indicating level of keysecurity in the <keygen> | 539 // Map displayed strings indicating level of keysecurity in the <keygen> |
539 // menu to the key size in bits. (See SSLKeyGeneratorChromium.cpp in WebCore.) | 540 // menu to the key size in bits. (See SSLKeyGeneratorChromium.cpp in WebCore.) |
540 int key_size_in_bits; | 541 int key_size_in_bits; |
541 switch (key_size_index) { | 542 switch (key_size_index) { |
542 case 0: | 543 case 0: |
543 key_size_in_bits = 2048; | 544 key_size_in_bits = 2048; |
544 break; | 545 break; |
545 case 1: | 546 case 1: |
546 key_size_in_bits = 1024; | 547 key_size_in_bits = 1024; |
547 break; | 548 break; |
548 default: | 549 default: |
549 DCHECK(false) << "Illegal key_size_index " << key_size_index; | 550 DCHECK(false) << "Illegal key_size_index " << key_size_index; |
550 RenderProcessHostMsg_Keygen::WriteReplyParams(reply_msg, std::string()); | 551 RenderProcessHostMsg_Keygen::WriteReplyParams(reply_msg, std::string()); |
551 Send(reply_msg); | 552 Send(reply_msg); |
552 return; | 553 return; |
553 } | 554 } |
554 | 555 |
| 556 if (!GetContentClient()->browser()->AllowKeygen(top_origin, |
| 557 resource_context_)) { |
| 558 RenderProcessHostMsg_Keygen::WriteReplyParams(reply_msg, std::string()); |
| 559 Send(reply_msg); |
| 560 return; |
| 561 } |
| 562 |
555 resource_context_->CreateKeygenHandler( | 563 resource_context_->CreateKeygenHandler( |
556 key_size_in_bits, | 564 key_size_in_bits, |
557 challenge_string, | 565 challenge_string, |
558 url, | 566 url, |
559 base::Bind( | 567 base::Bind( |
560 &RenderMessageFilter::PostKeygenToWorkerThread, this, reply_msg)); | 568 &RenderMessageFilter::PostKeygenToWorkerThread, this, reply_msg)); |
561 } | 569 } |
562 | 570 |
563 void RenderMessageFilter::PostKeygenToWorkerThread( | 571 void RenderMessageFilter::PostKeygenToWorkerThread( |
564 IPC::Message* reply_msg, | 572 IPC::Message* reply_msg, |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
634 void RenderMessageFilter::OnDeletedGpuMemoryBuffer( | 642 void RenderMessageFilter::OnDeletedGpuMemoryBuffer( |
635 gfx::GpuMemoryBufferId id, | 643 gfx::GpuMemoryBufferId id, |
636 const gpu::SyncToken& sync_token) { | 644 const gpu::SyncToken& sync_token) { |
637 DCHECK(BrowserGpuMemoryBufferManager::current()); | 645 DCHECK(BrowserGpuMemoryBufferManager::current()); |
638 | 646 |
639 BrowserGpuMemoryBufferManager::current()->ChildProcessDeletedGpuMemoryBuffer( | 647 BrowserGpuMemoryBufferManager::current()->ChildProcessDeletedGpuMemoryBuffer( |
640 id, PeerHandle(), render_process_id_, sync_token); | 648 id, PeerHandle(), render_process_id_, sync_token); |
641 } | 649 } |
642 | 650 |
643 } // namespace content | 651 } // namespace content |
OLD | NEW |