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

Side by Side Diff: content/browser/renderer_host/render_view_host_impl.cc

Issue 492873002: Collapse fileapi, webkit_blob, webkit_database, quota, and webkit_common namespaces into single sto… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix chromeos build Created 6 years, 4 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 | Annotate | Revision Log
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 "content/browser/renderer_host/render_view_host_impl.h" 5 #include "content/browser/renderer_host/render_view_host_impl.h"
6 6
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 602 matching lines...) Expand 10 before | Expand all | Expand 10 after
613 // The URL could have been cobbled together from any highlighted text string, 613 // The URL could have been cobbled together from any highlighted text string,
614 // and can't be interpreted as a capability. 614 // and can't be interpreted as a capability.
615 DropData filtered_data(drop_data); 615 DropData filtered_data(drop_data);
616 GetProcess()->FilterURL(true, &filtered_data.url); 616 GetProcess()->FilterURL(true, &filtered_data.url);
617 if (drop_data.did_originate_from_renderer) { 617 if (drop_data.did_originate_from_renderer) {
618 filtered_data.filenames.clear(); 618 filtered_data.filenames.clear();
619 } 619 }
620 620
621 // The filenames vector, on the other hand, does represent a capability to 621 // The filenames vector, on the other hand, does represent a capability to
622 // access the given files. 622 // access the given files.
623 fileapi::IsolatedContext::FileInfoSet files; 623 storage::IsolatedContext::FileInfoSet files;
624 for (std::vector<ui::FileInfo>::iterator iter( 624 for (std::vector<ui::FileInfo>::iterator iter(
625 filtered_data.filenames.begin()); 625 filtered_data.filenames.begin());
626 iter != filtered_data.filenames.end(); 626 iter != filtered_data.filenames.end();
627 ++iter) { 627 ++iter) {
628 // A dragged file may wind up as the value of an input element, or it 628 // A dragged file may wind up as the value of an input element, or it
629 // may be used as the target of a navigation instead. We don't know 629 // may be used as the target of a navigation instead. We don't know
630 // which will happen at this point, so generously grant both access 630 // which will happen at this point, so generously grant both access
631 // and request permissions to the specific file to cover both cases. 631 // and request permissions to the specific file to cover both cases.
632 // We do not give it the permission to request all file:// URLs. 632 // We do not give it the permission to request all file:// URLs.
633 633
(...skipping 12 matching lines...) Expand all
646 // If the renderer already has permission to read these paths, we don't need 646 // If the renderer already has permission to read these paths, we don't need
647 // to re-grant them. This prevents problems with DnD for files in the CrOS 647 // to re-grant them. This prevents problems with DnD for files in the CrOS
648 // file manager--the file manager already had read/write access to those 648 // file manager--the file manager already had read/write access to those
649 // directories, but dragging a file would cause the read/write access to be 649 // directories, but dragging a file would cause the read/write access to be
650 // overwritten with read-only access, making them impossible to delete or 650 // overwritten with read-only access, making them impossible to delete or
651 // rename until the renderer was killed. 651 // rename until the renderer was killed.
652 if (!policy->CanReadFile(renderer_id, iter->path)) 652 if (!policy->CanReadFile(renderer_id, iter->path))
653 policy->GrantReadFile(renderer_id, iter->path); 653 policy->GrantReadFile(renderer_id, iter->path);
654 } 654 }
655 655
656 fileapi::IsolatedContext* isolated_context = 656 storage::IsolatedContext* isolated_context =
657 fileapi::IsolatedContext::GetInstance(); 657 storage::IsolatedContext::GetInstance();
658 DCHECK(isolated_context); 658 DCHECK(isolated_context);
659 std::string filesystem_id = isolated_context->RegisterDraggedFileSystem( 659 std::string filesystem_id = isolated_context->RegisterDraggedFileSystem(
660 files); 660 files);
661 if (!filesystem_id.empty()) { 661 if (!filesystem_id.empty()) {
662 // Grant the permission iff the ID is valid. 662 // Grant the permission iff the ID is valid.
663 policy->GrantReadFileSystem(renderer_id, filesystem_id); 663 policy->GrantReadFileSystem(renderer_id, filesystem_id);
664 } 664 }
665 filtered_data.filesystem_id = base::UTF8ToUTF16(filesystem_id); 665 filtered_data.filesystem_id = base::UTF8ToUTF16(filesystem_id);
666 666
667 fileapi::FileSystemContext* file_system_context = 667 storage::FileSystemContext* file_system_context =
668 BrowserContext::GetStoragePartition( 668 BrowserContext::GetStoragePartition(GetProcess()->GetBrowserContext(),
669 GetProcess()->GetBrowserContext(), 669 GetSiteInstance())
670 GetSiteInstance())->GetFileSystemContext(); 670 ->GetFileSystemContext();
671 for (size_t i = 0; i < filtered_data.file_system_files.size(); ++i) { 671 for (size_t i = 0; i < filtered_data.file_system_files.size(); ++i) {
672 fileapi::FileSystemURL file_system_url = 672 storage::FileSystemURL file_system_url =
673 file_system_context->CrackURL(filtered_data.file_system_files[i].url); 673 file_system_context->CrackURL(filtered_data.file_system_files[i].url);
674 674
675 std::string register_name; 675 std::string register_name;
676 std::string filesystem_id = isolated_context->RegisterFileSystemForPath( 676 std::string filesystem_id = isolated_context->RegisterFileSystemForPath(
677 file_system_url.type(), file_system_url.filesystem_id(), 677 file_system_url.type(), file_system_url.filesystem_id(),
678 file_system_url.path(), &register_name); 678 file_system_url.path(), &register_name);
679 policy->GrantReadFileSystem(renderer_id, filesystem_id); 679 policy->GrantReadFileSystem(renderer_id, filesystem_id);
680 680
681 // Note: We are using the origin URL provided by the sender here. It may be 681 // Note: We are using the origin URL provided by the sender here. It may be
682 // different from the receiver's. 682 // different from the receiver's.
683 filtered_data.file_system_files[i].url = GURL( 683 filtered_data.file_system_files[i].url =
684 fileapi::GetIsolatedFileSystemRootURIString( 684 GURL(storage::GetIsolatedFileSystemRootURIString(
685 file_system_url.origin(), 685 file_system_url.origin(), filesystem_id, std::string())
686 filesystem_id, 686 .append(register_name));
687 std::string()).append(register_name));
688 } 687 }
689 688
690 Send(new DragMsg_TargetDragEnter(GetRoutingID(), filtered_data, client_pt, 689 Send(new DragMsg_TargetDragEnter(GetRoutingID(), filtered_data, client_pt,
691 screen_pt, operations_allowed, 690 screen_pt, operations_allowed,
692 key_modifiers)); 691 key_modifiers));
693 } 692 }
694 693
695 void RenderViewHostImpl::DragTargetDragOver( 694 void RenderViewHostImpl::DragTargetDragOver(
696 const gfx::Point& client_pt, 695 const gfx::Point& client_pt,
697 const gfx::Point& screen_pt, 696 const gfx::Point& screen_pt,
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after
1152 // renderer for any file paths in the drop. 1151 // renderer for any file paths in the drop.
1153 filtered_data.filenames.clear(); 1152 filtered_data.filenames.clear();
1154 for (std::vector<ui::FileInfo>::const_iterator it = 1153 for (std::vector<ui::FileInfo>::const_iterator it =
1155 drop_data.filenames.begin(); 1154 drop_data.filenames.begin();
1156 it != drop_data.filenames.end(); 1155 it != drop_data.filenames.end();
1157 ++it) { 1156 ++it) {
1158 if (policy->CanReadFile(GetProcess()->GetID(), it->path)) 1157 if (policy->CanReadFile(GetProcess()->GetID(), it->path))
1159 filtered_data.filenames.push_back(*it); 1158 filtered_data.filenames.push_back(*it);
1160 } 1159 }
1161 1160
1162 fileapi::FileSystemContext* file_system_context = 1161 storage::FileSystemContext* file_system_context =
1163 BrowserContext::GetStoragePartition( 1162 BrowserContext::GetStoragePartition(GetProcess()->GetBrowserContext(),
1164 GetProcess()->GetBrowserContext(), 1163 GetSiteInstance())
1165 GetSiteInstance())->GetFileSystemContext(); 1164 ->GetFileSystemContext();
1166 filtered_data.file_system_files.clear(); 1165 filtered_data.file_system_files.clear();
1167 for (size_t i = 0; i < drop_data.file_system_files.size(); ++i) { 1166 for (size_t i = 0; i < drop_data.file_system_files.size(); ++i) {
1168 fileapi::FileSystemURL file_system_url = 1167 storage::FileSystemURL file_system_url =
1169 file_system_context->CrackURL(drop_data.file_system_files[i].url); 1168 file_system_context->CrackURL(drop_data.file_system_files[i].url);
1170 if (policy->CanReadFileSystemFile(GetProcess()->GetID(), file_system_url)) 1169 if (policy->CanReadFileSystemFile(GetProcess()->GetID(), file_system_url))
1171 filtered_data.file_system_files.push_back(drop_data.file_system_files[i]); 1170 filtered_data.file_system_files.push_back(drop_data.file_system_files[i]);
1172 } 1171 }
1173 1172
1174 float scale = GetScaleFactorForView(GetView()); 1173 float scale = GetScaleFactorForView(GetView());
1175 gfx::ImageSkia image(gfx::ImageSkiaRep(bitmap, scale)); 1174 gfx::ImageSkia image(gfx::ImageSkiaRep(bitmap, scale));
1176 view->StartDragging(filtered_data, drag_operations_mask, image, 1175 view->StartDragging(filtered_data, drag_operations_mask, image,
1177 bitmap_offset_in_dip, event_info); 1176 bitmap_offset_in_dip, event_info);
1178 } 1177 }
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after
1524 FrameTree* frame_tree = delegate_->GetFrameTree(); 1523 FrameTree* frame_tree = delegate_->GetFrameTree();
1525 1524
1526 frame_tree->ResetForMainFrameSwap(); 1525 frame_tree->ResetForMainFrameSwap();
1527 } 1526 }
1528 1527
1529 void RenderViewHostImpl::SelectWordAroundCaret() { 1528 void RenderViewHostImpl::SelectWordAroundCaret() {
1530 Send(new ViewMsg_SelectWordAroundCaret(GetRoutingID())); 1529 Send(new ViewMsg_SelectWordAroundCaret(GetRoutingID()));
1531 } 1530 }
1532 1531
1533 } // namespace content 1532 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698