diff --git a/atom/browser/lib/guest-view-manager.coffee b/atom/browser/lib/guest-view-manager.coffee index bbabf3c5d6f4..51e7bdf91d69 100644 --- a/atom/browser/lib/guest-view-manager.coffee +++ b/atom/browser/lib/guest-view-manager.coffee @@ -93,6 +93,7 @@ attachGuest = (embedder, elementInstanceId, guestInstanceId, params) -> webViewManager.addGuest guestInstanceId, elementInstanceId, embedder, guest, nodeIntegration: params.nodeintegration plugins: params.plugins + disableWebSecurity: params.disablewebsecurity preloadUrl: params.preload ? '' guest.attachParams = params diff --git a/atom/browser/web_view/web_view_manager.cc b/atom/browser/web_view/web_view_manager.cc index c638c18e123a..20c508810976 100644 --- a/atom/browser/web_view/web_view_manager.cc +++ b/atom/browser/web_view/web_view_manager.cc @@ -41,7 +41,8 @@ struct Converter { return false; return options.Get("nodeIntegration", &(out->node_integration)) && options.Get("plugins", &(out->plugins)) && - options.Get("preloadUrl", &(out->preload_url)); + options.Get("preloadUrl", &(out->preload_url)) && + options.Get("disableWebSecurity", &(out->disable_web_security)); } }; @@ -63,7 +64,10 @@ void WebViewManager::AddGuest(int guest_instance_id, web_contents_map_[guest_instance_id] = { web_contents, embedder }; WebViewRendererState::WebViewInfo web_view_info = { - guest_instance_id, options.node_integration, options.plugins + guest_instance_id, + options.node_integration, + options.plugins, + options.disable_web_security, }; net::FileURLToFilePath(options.preload_url, &web_view_info.preload_script); content::BrowserThread::PostTask( diff --git a/atom/browser/web_view/web_view_manager.h b/atom/browser/web_view/web_view_manager.h index e14d31cec056..bc58bd34f49d 100644 --- a/atom/browser/web_view/web_view_manager.h +++ b/atom/browser/web_view/web_view_manager.h @@ -24,6 +24,7 @@ class WebViewManager : public content::BrowserPluginGuestManager { struct WebViewOptions { bool node_integration; bool plugins; + bool disable_web_security; GURL preload_url; }; diff --git a/atom/browser/web_view/web_view_renderer_state.h b/atom/browser/web_view/web_view_renderer_state.h index bddf803704aa..57373b544919 100644 --- a/atom/browser/web_view/web_view_renderer_state.h +++ b/atom/browser/web_view/web_view_renderer_state.h @@ -24,6 +24,7 @@ class WebViewRendererState { int guest_instance_id; bool node_integration; bool plugins; + bool disable_web_security; base::FilePath preload_script; }; diff --git a/atom/renderer/lib/web-view/web-view-attributes.coffee b/atom/renderer/lib/web-view/web-view-attributes.coffee index a3e97b5be4ba..00d076cdd8aa 100644 --- a/atom/renderer/lib/web-view/web-view-attributes.coffee +++ b/atom/renderer/lib/web-view/web-view-attributes.coffee @@ -195,6 +195,7 @@ WebViewImpl::setupWebViewAttributes = -> @attributes[webViewConstants.ATTRIBUTE_HTTPREFERRER] = new HttpReferrerAttribute(this) @attributes[webViewConstants.ATTRIBUTE_NODEINTEGRATION] = new BooleanAttribute(webViewConstants.ATTRIBUTE_NODEINTEGRATION, this) @attributes[webViewConstants.ATTRIBUTE_PLUGINS] = new BooleanAttribute(webViewConstants.ATTRIBUTE_PLUGINS, this) + @attributes[webViewConstants.ATTRIBUTE_DISABLEWEBSECURITY] = new BooleanAttribute(webViewConstants.ATTRIBUTE_DISABLEWEBSECURITY, this) @attributes[webViewConstants.ATTRIBUTE_PRELOAD] = new PreloadAttribute(this) autosizeAttributes = [ diff --git a/atom/renderer/lib/web-view/web-view-constants.coffee b/atom/renderer/lib/web-view/web-view-constants.coffee index f40f14c4d757..9c9beaecf9e3 100644 --- a/atom/renderer/lib/web-view/web-view-constants.coffee +++ b/atom/renderer/lib/web-view/web-view-constants.coffee @@ -12,6 +12,7 @@ module.exports = ATTRIBUTE_HTTPREFERRER: 'httpreferrer' ATTRIBUTE_NODEINTEGRATION: 'nodeintegration' ATTRIBUTE_PLUGINS: 'plugins' + ATTRIBUTE_DISABLEWEBSECURITY: 'disablewebsecurity' ATTRIBUTE_PRELOAD: 'preload' # Internal attribute.