Chromium Code Reviews| 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_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 590 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 601 | 601 |
| 602 #if defined(OS_CHROMEOS) | 602 #if defined(OS_CHROMEOS) |
| 603 // The externalfile:// scheme is used in Chrome OS to open external files in a | 603 // The externalfile:// scheme is used in Chrome OS to open external files in a |
| 604 // browser tab. | 604 // browser tab. |
| 605 if (drop_data.url.SchemeIs(content::kExternalFileScheme)) | 605 if (drop_data.url.SchemeIs(content::kExternalFileScheme)) |
| 606 policy->GrantRequestURL(renderer_id, drop_data.url); | 606 policy->GrantRequestURL(renderer_id, drop_data.url); |
| 607 #endif | 607 #endif |
| 608 | 608 |
| 609 // The URL could have been cobbled together from any highlighted text string, | 609 // The URL could have been cobbled together from any highlighted text string, |
| 610 // and can't be interpreted as a capability. | 610 // and can't be interpreted as a capability. |
| 611 DropData filtered_data(drop_data); | 611 DropData filtered_data(drop_data); |
|
aelias_OOO_until_Jul13
2016/03/01 19:57:32
There's a lot of code here to filter the DropData
hush (inactive)
2016/03/01 23:54:19
Yes. I just did it with the latest patch.
| |
| 612 GetProcess()->FilterURL(true, &filtered_data.url); | 612 GetProcess()->FilterURL(true, &filtered_data.url); |
| 613 if (drop_data.did_originate_from_renderer) { | 613 if (drop_data.did_originate_from_renderer) { |
| 614 filtered_data.filenames.clear(); | 614 filtered_data.filenames.clear(); |
| 615 } | 615 } |
| 616 | 616 |
| 617 // The filenames vector, on the other hand, does represent a capability to | 617 // The filenames vector, on the other hand, does represent a capability to |
| 618 // access the given files. | 618 // access the given files. |
| 619 storage::IsolatedContext::FileInfoSet files; | 619 storage::IsolatedContext::FileInfoSet files; |
| 620 for (std::vector<ui::FileInfo>::iterator iter( | 620 for (std::vector<ui::FileInfo>::iterator iter( |
| 621 filtered_data.filenames.begin()); | 621 filtered_data.filenames.begin()); |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 702 | 702 |
| 703 void RenderViewHostImpl::DragTargetDragLeave() { | 703 void RenderViewHostImpl::DragTargetDragLeave() { |
| 704 Send(new DragMsg_TargetDragLeave(GetRoutingID())); | 704 Send(new DragMsg_TargetDragLeave(GetRoutingID())); |
| 705 } | 705 } |
| 706 | 706 |
| 707 void RenderViewHostImpl::DragTargetDrop( | 707 void RenderViewHostImpl::DragTargetDrop( |
| 708 const gfx::Point& client_pt, | 708 const gfx::Point& client_pt, |
| 709 const gfx::Point& screen_pt, | 709 const gfx::Point& screen_pt, |
| 710 int key_modifiers) { | 710 int key_modifiers) { |
| 711 const gfx::Point client_pt_in_viewport = ConvertDIPToViewport(client_pt); | 711 const gfx::Point client_pt_in_viewport = ConvertDIPToViewport(client_pt); |
| 712 Send(new DragMsg_TargetDrop(GetRoutingID(), client_pt_in_viewport, screen_pt, | 712 Send(new DragMsg_TargetDrop(GetRoutingID(), client_pt_in_viewport, screen_pt, |
|
aelias_OOO_until_Jul13
2016/03/01 19:57:32
I'd propose modifying this existing message to tak
hush (inactive)
2016/03/01 23:54:19
I updated the other CL to change the existing Drag
| |
| 713 key_modifiers)); | 713 key_modifiers)); |
| 714 } | 714 } |
| 715 | 715 |
| 716 #if defined(OS_ANDROID) | |
|
aelias_OOO_until_Jul13
2016/03/01 19:57:32
Could you remove all "#if defined(OS_ANDROID)" fro
hush (inactive)
2016/03/01 23:54:19
I merged the new IPC into the existing IPC
| |
| 717 void RenderViewHostImpl::DragTargetDropWithData(const DropData& drop_data, | |
| 718 const gfx::Point& client_pt, | |
| 719 const gfx::Point& screen_pt, | |
| 720 int key_modifiers) { | |
| 721 // TODO(hush): filter the drop_data when we start to support dragging files. | |
| 722 const gfx::Point client_pt_in_viewport = ConvertDIPToViewport(client_pt); | |
| 723 Send(new DragMsg_TargetDropWithData(GetRoutingID(), drop_data, | |
| 724 client_pt_in_viewport, screen_pt, | |
| 725 key_modifiers)); | |
| 726 } | |
| 727 #endif | |
| 728 | |
| 716 void RenderViewHostImpl::DragSourceEndedAt( | 729 void RenderViewHostImpl::DragSourceEndedAt( |
| 717 int client_x, int client_y, int screen_x, int screen_y, | 730 int client_x, int client_y, int screen_x, int screen_y, |
| 718 WebDragOperation operation) { | 731 WebDragOperation operation) { |
| 719 const gfx::Point client_pt_in_viewport = | 732 const gfx::Point client_pt_in_viewport = |
| 720 ConvertDIPToViewport(gfx::Point(client_x, client_y)); | 733 ConvertDIPToViewport(gfx::Point(client_x, client_y)); |
| 721 Send(new DragMsg_SourceEnded(GetRoutingID(), client_pt_in_viewport, | 734 Send(new DragMsg_SourceEnded(GetRoutingID(), client_pt_in_viewport, |
| 722 gfx::Point(screen_x, screen_y), operation)); | 735 gfx::Point(screen_x, screen_y), operation)); |
| 723 } | 736 } |
| 724 | 737 |
| 725 void RenderViewHostImpl::DragSourceSystemDragEnded() { | 738 void RenderViewHostImpl::DragSourceSystemDragEnded() { |
| (...skipping 644 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1370 | 1383 |
| 1371 gfx::Point RenderViewHostImpl::ConvertDIPToViewport(const gfx::Point& point) { | 1384 gfx::Point RenderViewHostImpl::ConvertDIPToViewport(const gfx::Point& point) { |
| 1372 // The point in guest view is already converted. | 1385 // The point in guest view is already converted. |
| 1373 if (!render_widget_host_->scale_input_to_viewport()) | 1386 if (!render_widget_host_->scale_input_to_viewport()) |
| 1374 return point; | 1387 return point; |
| 1375 float scale = GetWidget()->GetView()->current_device_scale_factor(); | 1388 float scale = GetWidget()->GetView()->current_device_scale_factor(); |
| 1376 return gfx::Point(point.x() * scale, point.y() * scale); | 1389 return gfx::Point(point.x() * scale, point.y() * scale); |
| 1377 } | 1390 } |
| 1378 | 1391 |
| 1379 } // namespace content | 1392 } // namespace content |
| OLD | NEW |