| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "chrome/browser/guest_view/web_view/web_view_guest.h" | 5 #include "chrome/browser/guest_view/web_view/web_view_guest.h" |
| 6 | 6 |
| 7 #include "base/message_loop/message_loop.h" | 7 #include "base/message_loop/message_loop.h" |
| 8 #include "base/strings/stringprintf.h" | 8 #include "base/strings/stringprintf.h" |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "chrome/browser/chrome_notification_types.h" | 10 #include "chrome/browser/chrome_notification_types.h" |
| (...skipping 925 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 936 removal_mask, | 936 removal_mask, |
| 937 content::StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL, | 937 content::StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL, |
| 938 GURL(), | 938 GURL(), |
| 939 content::StoragePartition::OriginMatcherFunction(), | 939 content::StoragePartition::OriginMatcherFunction(), |
| 940 remove_since, | 940 remove_since, |
| 941 base::Time::Now(), | 941 base::Time::Now(), |
| 942 callback); | 942 callback); |
| 943 return true; | 943 return true; |
| 944 } | 944 } |
| 945 | 945 |
| 946 // static | |
| 947 void WebViewGuest::FileSystemAccessedAsync(int render_process_id, | |
| 948 int render_frame_id, | |
| 949 int request_id, | |
| 950 const GURL& url, | |
| 951 bool blocked_by_policy) { | |
| 952 WebViewGuest* guest = | |
| 953 WebViewGuest::FromFrameID(render_process_id, render_frame_id); | |
| 954 DCHECK(guest); | |
| 955 guest->RequestFileSystemPermission( | |
| 956 url, | |
| 957 !blocked_by_policy, | |
| 958 base::Bind(&WebViewGuest::FileSystemAccessedAsyncResponse, | |
| 959 render_process_id, | |
| 960 render_frame_id, | |
| 961 request_id, | |
| 962 url)); | |
| 963 } | |
| 964 | |
| 965 // static | |
| 966 void WebViewGuest::FileSystemAccessedAsyncResponse(int render_process_id, | |
| 967 int render_frame_id, | |
| 968 int request_id, | |
| 969 const GURL& url, | |
| 970 bool allowed) { | |
| 971 TabSpecificContentSettings::FileSystemAccessed( | |
| 972 render_process_id, render_frame_id, url, !allowed); | |
| 973 content::RenderFrameHost* render_frame_host = | |
| 974 content::RenderFrameHost::FromID(render_process_id, render_frame_id); | |
| 975 if (!render_frame_host) | |
| 976 return; | |
| 977 render_frame_host->Send( | |
| 978 new ChromeViewMsg_RequestFileSystemAccessAsyncResponse( | |
| 979 render_frame_id, request_id, allowed)); | |
| 980 } | |
| 981 | |
| 982 // static | |
| 983 void WebViewGuest::FileSystemAccessedSync(int render_process_id, | |
| 984 int render_frame_id, | |
| 985 const GURL& url, | |
| 986 bool blocked_by_policy, | |
| 987 IPC::Message* reply_msg) { | |
| 988 WebViewGuest* guest = | |
| 989 WebViewGuest::FromFrameID(render_process_id, render_frame_id); | |
| 990 DCHECK(guest); | |
| 991 guest->RequestFileSystemPermission( | |
| 992 url, | |
| 993 !blocked_by_policy, | |
| 994 base::Bind(&WebViewGuest::FileSystemAccessedSyncResponse, | |
| 995 render_process_id, | |
| 996 render_frame_id, | |
| 997 url, | |
| 998 reply_msg)); | |
| 999 } | |
| 1000 | |
| 1001 // static | |
| 1002 void WebViewGuest::FileSystemAccessedSyncResponse(int render_process_id, | |
| 1003 int render_frame_id, | |
| 1004 const GURL& url, | |
| 1005 IPC::Message* reply_msg, | |
| 1006 bool allowed) { | |
| 1007 TabSpecificContentSettings::FileSystemAccessed( | |
| 1008 render_process_id, render_frame_id, url, !allowed); | |
| 1009 ChromeViewHostMsg_RequestFileSystemAccessSync::WriteReplyParams(reply_msg, | |
| 1010 allowed); | |
| 1011 content::RenderFrameHost* render_frame_host = | |
| 1012 content::RenderFrameHost::FromID(render_process_id, render_frame_id); | |
| 1013 if (!render_frame_id) | |
| 1014 return; | |
| 1015 render_frame_host->Send(reply_msg); | |
| 1016 } | |
| 1017 | |
| 1018 WebViewGuest::~WebViewGuest() { | 946 WebViewGuest::~WebViewGuest() { |
| 1019 } | 947 } |
| 1020 | 948 |
| 1021 void WebViewGuest::DidCommitProvisionalLoadForFrame( | 949 void WebViewGuest::DidCommitProvisionalLoadForFrame( |
| 1022 content::RenderFrameHost* render_frame_host, | 950 content::RenderFrameHost* render_frame_host, |
| 1023 const GURL& url, | 951 const GURL& url, |
| 1024 content::PageTransition transition_type) { | 952 content::PageTransition transition_type) { |
| 1025 find_helper_.CancelAllFindSessions(); | 953 find_helper_.CancelAllFindSessions(); |
| 1026 | 954 |
| 1027 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); | 955 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); |
| (...skipping 632 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1660 bool allow, | 1588 bool allow, |
| 1661 const std::string& user_input) { | 1589 const std::string& user_input) { |
| 1662 WebViewGuest* guest = | 1590 WebViewGuest* guest = |
| 1663 WebViewGuest::From(embedder_render_process_id(), new_window_instance_id); | 1591 WebViewGuest::From(embedder_render_process_id(), new_window_instance_id); |
| 1664 if (!guest) | 1592 if (!guest) |
| 1665 return; | 1593 return; |
| 1666 | 1594 |
| 1667 if (!allow) | 1595 if (!allow) |
| 1668 guest->Destroy(); | 1596 guest->Destroy(); |
| 1669 } | 1597 } |
| OLD | NEW |