| 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 "content/browser/renderer_host/render_view_host.h" | 5 #include "content/browser/renderer_host/render_view_host.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <utility> | 8 #include <utility> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 456 // Grant the renderer the ability to load the drop_data. | 456 // Grant the renderer the ability to load the drop_data. |
| 457 ChildProcessSecurityPolicy* policy = | 457 ChildProcessSecurityPolicy* policy = |
| 458 ChildProcessSecurityPolicy::GetInstance(); | 458 ChildProcessSecurityPolicy::GetInstance(); |
| 459 policy->GrantRequestURL(process()->id(), drop_data.url); | 459 policy->GrantRequestURL(process()->id(), drop_data.url); |
| 460 for (std::vector<string16>::const_iterator iter(drop_data.filenames.begin()); | 460 for (std::vector<string16>::const_iterator iter(drop_data.filenames.begin()); |
| 461 iter != drop_data.filenames.end(); ++iter) { | 461 iter != drop_data.filenames.end(); ++iter) { |
| 462 FilePath path = FilePath::FromWStringHack(UTF16ToWideHack(*iter)); | 462 FilePath path = FilePath::FromWStringHack(UTF16ToWideHack(*iter)); |
| 463 policy->GrantRequestURL(process()->id(), | 463 policy->GrantRequestURL(process()->id(), |
| 464 net::FilePathToFileURL(path)); | 464 net::FilePathToFileURL(path)); |
| 465 policy->GrantReadFile(process()->id(), path); | 465 policy->GrantReadFile(process()->id(), path); |
| 466 |
| 467 // Allow dragged directories to be enumerated by the child process. |
| 468 // Note that we can't tell a file from a directory at this point. |
| 469 policy->GrantReadDirectory(process()->id(), path); |
| 466 } | 470 } |
| 467 Send(new DragMsg_TargetDragEnter(routing_id(), drop_data, client_pt, | 471 Send(new DragMsg_TargetDragEnter(routing_id(), drop_data, client_pt, |
| 468 screen_pt, operations_allowed)); | 472 screen_pt, operations_allowed)); |
| 469 } | 473 } |
| 470 | 474 |
| 471 void RenderViewHost::DragTargetDragOver( | 475 void RenderViewHost::DragTargetDragOver( |
| 472 const gfx::Point& client_pt, const gfx::Point& screen_pt, | 476 const gfx::Point& client_pt, const gfx::Point& screen_pt, |
| 473 WebDragOperationsMask operations_allowed) { | 477 WebDragOperationsMask operations_allowed) { |
| 474 Send(new DragMsg_TargetDragOver(routing_id(), client_pt, screen_pt, | 478 Send(new DragMsg_TargetDragOver(routing_id(), client_pt, screen_pt, |
| 475 operations_allowed)); | 479 operations_allowed)); |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 678 const std::vector<FilePath>& files) { | 682 const std::vector<FilePath>& files) { |
| 679 // Grant the security access requested to the given files. | 683 // Grant the security access requested to the given files. |
| 680 for (std::vector<FilePath>::const_iterator file = files.begin(); | 684 for (std::vector<FilePath>::const_iterator file = files.begin(); |
| 681 file != files.end(); ++file) { | 685 file != files.end(); ++file) { |
| 682 ChildProcessSecurityPolicy::GetInstance()->GrantReadFile( | 686 ChildProcessSecurityPolicy::GetInstance()->GrantReadFile( |
| 683 process()->id(), *file); | 687 process()->id(), *file); |
| 684 } | 688 } |
| 685 Send(new ViewMsg_RunFileChooserResponse(routing_id(), files)); | 689 Send(new ViewMsg_RunFileChooserResponse(routing_id(), files)); |
| 686 } | 690 } |
| 687 | 691 |
| 692 void RenderViewHost::DirectoryEnumerationFinished( |
| 693 int request_id, |
| 694 const std::vector<FilePath>& files) { |
| 695 // Grant the security access requested to the given files. |
| 696 for (std::vector<FilePath>::const_iterator file = files.begin(); |
| 697 file != files.end(); ++file) { |
| 698 ChildProcessSecurityPolicy::GetInstance()->GrantReadFile( |
| 699 process()->id(), *file); |
| 700 } |
| 701 Send(new ViewMsg_EnumerateDirectoryResponse(routing_id(), |
| 702 request_id, |
| 703 files)); |
| 704 } |
| 705 |
| 688 void RenderViewHost::LoadStateChanged(const GURL& url, | 706 void RenderViewHost::LoadStateChanged(const GURL& url, |
| 689 net::LoadState load_state, | 707 net::LoadState load_state, |
| 690 uint64 upload_position, | 708 uint64 upload_position, |
| 691 uint64 upload_size) { | 709 uint64 upload_size) { |
| 692 delegate_->LoadStateChanged(url, load_state, upload_position, upload_size); | 710 delegate_->LoadStateChanged(url, load_state, upload_position, upload_size); |
| 693 } | 711 } |
| 694 | 712 |
| 695 bool RenderViewHost::SuddenTerminationAllowed() const { | 713 bool RenderViewHost::SuddenTerminationAllowed() const { |
| 696 return sudden_termination_allowed_ || process()->sudden_termination_allowed(); | 714 return sudden_termination_allowed_ || process()->sudden_termination_allowed(); |
| 697 } | 715 } |
| (...skipping 930 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1628 LOG(DFATAL) << "Invalid checked state " << checked_state; | 1646 LOG(DFATAL) << "Invalid checked state " << checked_state; |
| 1629 return; | 1647 return; |
| 1630 } | 1648 } |
| 1631 | 1649 |
| 1632 CommandState state; | 1650 CommandState state; |
| 1633 state.is_enabled = is_enabled; | 1651 state.is_enabled = is_enabled; |
| 1634 state.checked_state = | 1652 state.checked_state = |
| 1635 static_cast<RenderViewCommandCheckedState>(checked_state); | 1653 static_cast<RenderViewCommandCheckedState>(checked_state); |
| 1636 command_states_[static_cast<RenderViewCommand>(command)] = state; | 1654 command_states_[static_cast<RenderViewCommand>(command)] = state; |
| 1637 } | 1655 } |
| OLD | NEW |