Merge pull request #1651 from magicae/ppapi-description-patch
ppapi: fix PPAPI flash plugin description as chromium does
This commit is contained in:
commit
361505661f
3 changed files with 75 additions and 1 deletions
|
@ -10,6 +10,8 @@
|
||||||
#include "atom/common/chrome_version.h"
|
#include "atom/common/chrome_version.h"
|
||||||
#include "atom/common/options_switches.h"
|
#include "atom/common/options_switches.h"
|
||||||
#include "base/command_line.h"
|
#include "base/command_line.h"
|
||||||
|
#include "base/strings/string_split.h"
|
||||||
|
#include "base/strings/string_util.h"
|
||||||
#include "content/public/common/content_constants.h"
|
#include "content/public/common/content_constants.h"
|
||||||
#include "content/public/common/pepper_plugin_info.h"
|
#include "content/public/common/pepper_plugin_info.h"
|
||||||
#include "ppapi/shared_impl/ppapi_permissions.h"
|
#include "ppapi/shared_impl/ppapi_permissions.h"
|
||||||
|
@ -26,8 +28,24 @@ content::PepperPluginInfo CreatePepperFlashInfo(const base::FilePath& path,
|
||||||
plugin.name = content::kFlashPluginName;
|
plugin.name = content::kFlashPluginName;
|
||||||
plugin.path = path;
|
plugin.path = path;
|
||||||
plugin.permissions = ppapi::PERMISSION_ALL_BITS;
|
plugin.permissions = ppapi::PERMISSION_ALL_BITS;
|
||||||
plugin.version = version;
|
|
||||||
|
|
||||||
|
std::vector<std::string> flash_version_numbers;
|
||||||
|
base::SplitString(version, '.', &flash_version_numbers);
|
||||||
|
if (flash_version_numbers.size() < 1)
|
||||||
|
flash_version_numbers.push_back("11");
|
||||||
|
// |SplitString()| puts in an empty string given an empty string. :(
|
||||||
|
else if (flash_version_numbers[0].empty())
|
||||||
|
flash_version_numbers[0] = "11";
|
||||||
|
if (flash_version_numbers.size() < 2)
|
||||||
|
flash_version_numbers.push_back("2");
|
||||||
|
if (flash_version_numbers.size() < 3)
|
||||||
|
flash_version_numbers.push_back("999");
|
||||||
|
if (flash_version_numbers.size() < 4)
|
||||||
|
flash_version_numbers.push_back("999");
|
||||||
|
// E.g., "Shockwave Flash 10.2 r154":
|
||||||
|
plugin.description = plugin.name + " " + flash_version_numbers[0] + "." +
|
||||||
|
flash_version_numbers[1] + " r" + flash_version_numbers[2];
|
||||||
|
plugin.version = JoinString(flash_version_numbers, '.');
|
||||||
content::WebPluginMimeType swf_mime_type(
|
content::WebPluginMimeType swf_mime_type(
|
||||||
content::kFlashPluginSwfMimeType,
|
content::kFlashPluginSwfMimeType,
|
||||||
content::kFlashPluginSwfExtension,
|
content::kFlashPluginSwfExtension,
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
* [Debugging main process](tutorial/debugging-main-process.md)
|
* [Debugging main process](tutorial/debugging-main-process.md)
|
||||||
* [Using Selenium and WebDriver](tutorial/using-selenium-and-webdriver.md)
|
* [Using Selenium and WebDriver](tutorial/using-selenium-and-webdriver.md)
|
||||||
* [DevTools extension](tutorial/devtools-extension.md)
|
* [DevTools extension](tutorial/devtools-extension.md)
|
||||||
|
* [Using pepper flash plugin](tutorial/using-pepper-flash-plugin.md)
|
||||||
|
|
||||||
## Tutorials
|
## Tutorials
|
||||||
|
|
||||||
|
|
55
docs/tutorial/using-pepper-flash-plugin.md
Normal file
55
docs/tutorial/using-pepper-flash-plugin.md
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
# Using Pepper Flash Plugin
|
||||||
|
|
||||||
|
Pepper flash plugin is now supported. To use pepper flash plugin in Electron, you should manually specify the location of pepper flash plugin and then enable it in your application.
|
||||||
|
|
||||||
|
## Prepare a copy of flash plugin
|
||||||
|
|
||||||
|
On OS X and Linux, the detail of pepper flash plugin can be found by navigating `chrome://plugins` in Chrome browser. Its location and version are useful for electron's pepper flash support. You can also copy it to anywhere else.
|
||||||
|
|
||||||
|
## Add Electron switch
|
||||||
|
|
||||||
|
You can directly add `--ppapi-flash-path` and `ppapi-flash-version` to electron commandline or by `app.commandLine.appendSwitch` method before app ready event. Also, add the `plugins` switch of `browser-window`. For example,
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
var app = require('app');
|
||||||
|
var BrowserWindow = require('browser-window');
|
||||||
|
|
||||||
|
// Report crashes to our server.
|
||||||
|
require('crash-reporter').start();
|
||||||
|
|
||||||
|
// Keep a global reference of the window object, if you don't, the window will
|
||||||
|
// be closed automatically when the javascript object is GCed.
|
||||||
|
var mainWindow = null;
|
||||||
|
|
||||||
|
// Quit when all windows are closed.
|
||||||
|
app.on('window-all-closed', function() {
|
||||||
|
if (process.platform != 'darwin')
|
||||||
|
app.quit();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Specify flash path.
|
||||||
|
// On Windows, it might be /path/to/pepflashplayer.dll
|
||||||
|
// On Mac, /path/to/PepperFlashPlayer.plugin
|
||||||
|
// On Linux, /path/to/libpepflashplayer.so
|
||||||
|
app.commandLine.appendSwitch('ppapi-flash-path', '/path/to/libpepflashplayer.so');
|
||||||
|
|
||||||
|
// Specify flash version, for example, v17.0.0.169
|
||||||
|
app.commandLine.appendSwitch('ppapi-flash-version', '17.0.0.169');
|
||||||
|
|
||||||
|
app.on('ready', function() {
|
||||||
|
mainWindow = new BrowserWindow({
|
||||||
|
'width': 800,
|
||||||
|
'height': 600,
|
||||||
|
'web-preferences':
|
||||||
|
'plugins': true
|
||||||
|
});
|
||||||
|
mainWindow.loadUrl('file://' + __dirname + '/index.html');
|
||||||
|
// Something else
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
## Enable flash plugin in a `<webview>` tag
|
||||||
|
Add `plugins` attribute to `<webview>` tag.
|
||||||
|
```html
|
||||||
|
<webview src="http://www.adobe.com/software/flash/about/" plugins></webview>
|
||||||
|
```
|
Loading…
Reference in a new issue