| 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 "extensions/browser/guest_view/web_view/web_view_guest.h" | 5 #include "extensions/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 "content/public/browser/browser_context.h" | 10 #include "content/public/browser/browser_context.h" |
| (...skipping 819 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 830 content::ColorChooser* WebViewGuest::OpenColorChooser( | 830 content::ColorChooser* WebViewGuest::OpenColorChooser( |
| 831 WebContents* web_contents, | 831 WebContents* web_contents, |
| 832 SkColor color, | 832 SkColor color, |
| 833 const std::vector<content::ColorSuggestion>& suggestions) { | 833 const std::vector<content::ColorSuggestion>& suggestions) { |
| 834 if (!attached() || !embedder_web_contents()->GetDelegate()) | 834 if (!attached() || !embedder_web_contents()->GetDelegate()) |
| 835 return NULL; | 835 return NULL; |
| 836 return embedder_web_contents()->GetDelegate()->OpenColorChooser( | 836 return embedder_web_contents()->GetDelegate()->OpenColorChooser( |
| 837 web_contents, color, suggestions); | 837 web_contents, color, suggestions); |
| 838 } | 838 } |
| 839 | 839 |
| 840 void WebViewGuest::RunFileChooser(WebContents* web_contents, | |
| 841 const content::FileChooserParams& params) { | |
| 842 if (!attached() || !embedder_web_contents()->GetDelegate()) | |
| 843 return; | |
| 844 | |
| 845 embedder_web_contents()->GetDelegate()->RunFileChooser(web_contents, params); | |
| 846 } | |
| 847 | |
| 848 void WebViewGuest::NavigateGuest(const std::string& src) { | 840 void WebViewGuest::NavigateGuest(const std::string& src) { |
| 849 GURL url = ResolveURL(src); | 841 GURL url = ResolveURL(src); |
| 850 | 842 |
| 851 // Do not allow navigating a guest to schemes other than known safe schemes. | 843 // Do not allow navigating a guest to schemes other than known safe schemes. |
| 852 // This will block the embedder trying to load unwanted schemes, e.g. | 844 // This will block the embedder trying to load unwanted schemes, e.g. |
| 853 // chrome://settings. | 845 // chrome://settings. |
| 854 bool scheme_is_blocked = | 846 bool scheme_is_blocked = |
| 855 (!content::ChildProcessSecurityPolicy::GetInstance()->IsWebSafeScheme( | 847 (!content::ChildProcessSecurityPolicy::GetInstance()->IsWebSafeScheme( |
| 856 url.scheme()) && | 848 url.scheme()) && |
| 857 !url.SchemeIs(url::kAboutScheme)) || | 849 !url.SchemeIs(url::kAboutScheme)) || |
| (...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1105 WebViewGuest* guest = | 1097 WebViewGuest* guest = |
| 1106 WebViewGuest::From(embedder_render_process_id(), new_window_instance_id); | 1098 WebViewGuest::From(embedder_render_process_id(), new_window_instance_id); |
| 1107 if (!guest) | 1099 if (!guest) |
| 1108 return; | 1100 return; |
| 1109 | 1101 |
| 1110 if (!allow) | 1102 if (!allow) |
| 1111 guest->Destroy(); | 1103 guest->Destroy(); |
| 1112 } | 1104 } |
| 1113 | 1105 |
| 1114 } // namespace extensions | 1106 } // namespace extensions |
| OLD | NEW |