Add "plugins" attribute for <webview>

This commit is contained in:
Cheng Zhao 2014-11-05 14:59:28 +08:00
parent d1724ad733
commit 80d574482e
6 changed files with 11 additions and 4 deletions

View file

@ -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);
}
}

View file

@ -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', ->

View file

@ -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,

View file

@ -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:

View file

@ -22,6 +22,7 @@ class WebViewRendererState {
struct WebViewInfo {
int guest_instance_id;
bool node_integration;
bool plugins;
};
static WebViewRendererState* GetInstance();

View file

@ -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