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 3 // found in the LICENSE file. 4 5 #include "content/shell/renderer/test_runner/web_permissions.h" 6 7 #include "content/shell/renderer/test_runner/TestCommon.h" 8 #include "content/shell/renderer/test_runner/WebTestDelegate.h" 9 #include "third_party/WebKit/public/platform/WebCString.h" 10 #include "third_party/WebKit/public/platform/WebURL.h" 11 12 namespace content { 13 14 WebPermissions::WebPermissions() : delegate_(0) { 15 Reset(); 16 } 17 18 WebPermissions::~WebPermissions() {} 19 20 bool WebPermissions::allowImage(bool enabled_per_settings, 21 const blink::WebURL& image_url) { 22 bool allowed = enabled_per_settings && images_allowed_; 23 if (dump_callbacks_ && delegate_) { 24 delegate_->printMessage(std::string("PERMISSION CLIENT: allowImage(") + 25 normalizeLayoutTestURL(image_url.spec()) + "): " + 26 (allowed ? "true" : "false") + "\n"); 27 } 28 return allowed; 29 } 30 31 bool WebPermissions::allowMedia(const blink::WebURL& image_url) { 32 bool allowed = media_allowed_; 33 if (dump_callbacks_ && delegate_) 34 delegate_->printMessage(std::string("PERMISSION CLIENT: allowMedia(") + 35 normalizeLayoutTestURL(image_url.spec()) + "): " + 36 (allowed ? "true" : "false") + "\n"); 37 return allowed; 38 } 39 40 bool WebPermissions::allowScriptFromSource(bool enabled_per_settings, 41 const blink::WebURL& scriptURL) { 42 bool allowed = enabled_per_settings && scripts_allowed_; 43 if (dump_callbacks_ && delegate_) { 44 delegate_->printMessage( 45 std::string("PERMISSION CLIENT: allowScriptFromSource(") + 46 normalizeLayoutTestURL(scriptURL.spec()) + "): " + 47 (allowed ? "true" : "false") + "\n"); 48 } 49 return allowed; 50 } 51 52 bool WebPermissions::allowStorage(bool) { 53 return storage_allowed_; 54 } 55 56 bool WebPermissions::allowPlugins(bool enabled_per_settings) { 57 return enabled_per_settings && plugins_allowed_; 58 } 59 60 bool WebPermissions::allowDisplayingInsecureContent( 61 bool enabled_per_settings, 62 const blink::WebSecurityOrigin&, 63 const blink::WebURL&) { 64 return enabled_per_settings || displaying_insecure_content_allowed_; 65 } 66 67 bool WebPermissions::allowRunningInsecureContent( 68 bool enabled_per_settings, 69 const blink::WebSecurityOrigin&, 70 const blink::WebURL&) { 71 return enabled_per_settings || running_insecure_content_allowed_; 72 } 73 74 void WebPermissions::SetImagesAllowed(bool images_allowed) { 75 images_allowed_ = images_allowed; 76 } 77 78 void WebPermissions::SetMediaAllowed(bool media_allowed) { 79 media_allowed_ = media_allowed; 80 } 81 82 void WebPermissions::SetScriptsAllowed(bool scripts_allowed) { 83 scripts_allowed_ = scripts_allowed; 84 } 85 86 void WebPermissions::SetStorageAllowed(bool storage_allowed) { 87 storage_allowed_ = storage_allowed; 88 } 89 90 void WebPermissions::SetPluginsAllowed(bool plugins_allowed) { 91 plugins_allowed_ = plugins_allowed; 92 } 93 94 void WebPermissions::SetDisplayingInsecureContentAllowed(bool allowed) { 95 displaying_insecure_content_allowed_ = allowed; 96 } 97 98 void WebPermissions::SetRunningInsecureContentAllowed(bool allowed) { 99 running_insecure_content_allowed_ = allowed; 100 } 101 102 void WebPermissions::SetDelegate(WebTestDelegate* delegate) { 103 delegate_ = delegate; 104 } 105 106 void WebPermissions::SetDumpCallbacks(bool dump_callbacks) { 107 dump_callbacks_ = dump_callbacks; 108 } 109 110 void WebPermissions::Reset() { 111 dump_callbacks_ = false; 112 images_allowed_ = true; 113 media_allowed_ = true; 114 scripts_allowed_ = true; 115 storage_allowed_ = true; 116 plugins_allowed_ = true; 117 displaying_insecure_content_allowed_ = false; 118 running_insecure_content_allowed_ = false; 119 } 120 121 } // namespace content 122