diff --git a/atom/browser/atom_browser_client.cc b/atom/browser/atom_browser_client.cc
index f197cc4a1f..0ae8bfed67 100644
--- a/atom/browser/atom_browser_client.cc
+++ b/atom/browser/atom_browser_client.cc
@@ -154,6 +154,8 @@ void AtomBrowserClient::AppendExtraCommandLineSwitches(
command_line->AppendSwitchASCII(
switches::kNodeIntegration,
info.node_integration ? "true" : "false");
+ if (info.plugins)
+ command_line->AppendSwitch(switches::kEnablePlugins);
}
}
diff --git a/atom/browser/lib/guest-view-manager.coffee b/atom/browser/lib/guest-view-manager.coffee
index b2827ad54d..bec53ef30f 100644
--- a/atom/browser/lib/guest-view-manager.coffee
+++ b/atom/browser/lib/guest-view-manager.coffee
@@ -33,7 +33,7 @@ createGuest = (embedder, params) ->
guestInstanceId: id
storagePartitionId: params.storagePartitionId
guestInstances[id] = {guest, embedder}
- webViewManager.addGuest id, embedder, guest, params.nodeIntegration
+ webViewManager.addGuest id, embedder, guest, params.nodeIntegration, params.plugins
# Destroy guest when the embedder is gone.
embedder.once 'render-view-deleted', ->
diff --git a/atom/browser/web_view/web_view_manager.cc b/atom/browser/web_view/web_view_manager.cc
index 05692841c8..88a1bdb2f7 100644
--- a/atom/browser/web_view/web_view_manager.cc
+++ b/atom/browser/web_view/web_view_manager.cc
@@ -43,11 +43,12 @@ WebViewManager::~WebViewManager() {
void WebViewManager::AddGuest(int guest_instance_id,
content::WebContents* embedder,
content::WebContents* web_contents,
- bool node_integration) {
+ bool node_integration,
+ bool plugins) {
web_contents_map_[guest_instance_id] = { web_contents, embedder };
WebViewRendererState::WebViewInfo web_view_info = {
- guest_instance_id, node_integration
+ guest_instance_id, node_integration, plugins
};
content::BrowserThread::PostTask(
content::BrowserThread::IO,
diff --git a/atom/browser/web_view/web_view_manager.h b/atom/browser/web_view/web_view_manager.h
index 855026b1a4..f00e5a6607 100644
--- a/atom/browser/web_view/web_view_manager.h
+++ b/atom/browser/web_view/web_view_manager.h
@@ -23,7 +23,8 @@ class WebViewManager : public content::BrowserPluginGuestManager {
void AddGuest(int guest_instance_id,
content::WebContents* embedder,
content::WebContents* web_contents,
- bool node_integration);
+ bool node_integration,
+ bool plugins);
void RemoveGuest(int guest_instance_id);
protected:
diff --git a/atom/browser/web_view/web_view_renderer_state.h b/atom/browser/web_view/web_view_renderer_state.h
index 4186a6de95..2de8308a9d 100644
--- a/atom/browser/web_view/web_view_renderer_state.h
+++ b/atom/browser/web_view/web_view_renderer_state.h
@@ -22,6 +22,7 @@ class WebViewRendererState {
struct WebViewInfo {
int guest_instance_id;
bool node_integration;
+ bool plugins;
};
static WebViewRendererState* GetInstance();
diff --git a/atom/renderer/lib/web-view.coffee b/atom/renderer/lib/web-view.coffee
index 781a712a11..456ce931f1 100644
--- a/atom/renderer/lib/web-view.coffee
+++ b/atom/renderer/lib/web-view.coffee
@@ -20,6 +20,7 @@ WEB_VIEW_ATTRIBUTE_MINHEIGHT = 'minheight'
WEB_VIEW_ATTRIBUTE_MINWIDTH = 'minwidth'
WEB_VIEW_ATTRIBUTE_PARTITION = 'partition'
WEB_VIEW_ATTRIBUTE_NODEINTEGRATION = 'nodeintegration'
+WEB_VIEW_ATTRIBUTE_PLUGINS = 'plugins'
AUTO_SIZE_ATTRIBUTES = [
WEB_VIEW_ATTRIBUTE_AUTOSIZE,
WEB_VIEW_ATTRIBUTE_MAXHEIGHT,
@@ -377,6 +378,7 @@ class WebView
params =
storagePartitionId: storagePartitionId
nodeIntegration: @webviewNode.hasAttribute WEB_VIEW_ATTRIBUTE_NODEINTEGRATION
+ plugins: @webviewNode.hasAttribute WEB_VIEW_ATTRIBUTE_PLUGINS
guestViewInternal.createGuest 'webview', params, (guestInstanceId) =>
@pendingGuestCreation = false
unless @elementAttached
diff --git a/docs/api/web-view-tag.md b/docs/api/web-view-tag.md
index d0b574539e..728fbc2d5d 100644
--- a/docs/api/web-view-tag.md
+++ b/docs/api/web-view-tag.md
@@ -50,7 +50,7 @@ and displays a "loading..." message during the load time:
### src
```html
-
+
```
Returns the visible URL. Writing to this attribute initiates top-level
@@ -64,7 +64,7 @@ The `src` attribute can also accept data URLs, such as
### autosize
```html
-
+
```
If "on", the `webview` will container will automatically resize within the
@@ -82,6 +82,14 @@ than the minimum values or greater than the maximum.
If "on", the guest page in `webview` will have node integration and can use node
APIs like `require` and `process` to access low level system resources.
+### plugins
+
+```html
+
+```
+
+If "on", the guest page in `webview` will be able to use browser plugins.
+
## Methods
### ``.getUrl()