| Index: trunk/src/chrome/renderer/chrome_content_renderer_client.cc
|
| ===================================================================
|
| --- trunk/src/chrome/renderer/chrome_content_renderer_client.cc (revision 233010)
|
| +++ trunk/src/chrome/renderer/chrome_content_renderer_client.cc (working copy)
|
| @@ -209,12 +209,24 @@
|
| return false;
|
| }
|
|
|
| +#if defined(ENABLE_PLUGINS)
|
| +const char* kPredefinedAllowedFileHandleOrigins[] = {
|
| + "6EAED1924DB611B6EEF2A664BD077BE7EAD33B8F", // see crbug.com/234789
|
| + "4EB74897CB187C7633357C2FE832E0AD6A44883A" // see crbug.com/234789
|
| +};
|
| +#endif
|
| +
|
| } // namespace
|
|
|
| namespace chrome {
|
|
|
| ChromeContentRendererClient::ChromeContentRendererClient() {
|
| g_current_client = this;
|
| +
|
| +#if defined(ENABLE_PLUGINS)
|
| + for (size_t i = 0; i < arraysize(kPredefinedAllowedFileHandleOrigins); ++i)
|
| + allowed_file_handle_origins_.insert(kPredefinedAllowedFileHandleOrigins[i]);
|
| +#endif
|
| }
|
|
|
| ChromeContentRendererClient::~ChromeContentRendererClient() {
|
| @@ -1295,6 +1307,23 @@
|
| return module_name == "Native Client";
|
| }
|
|
|
| +bool ChromeContentRendererClient::IsPluginAllowedToCallRequestOSFileHandle(
|
| + WebKit::WebPluginContainer* container) {
|
| +#if defined(ENABLE_PLUGINS)
|
| + if (!container)
|
| + return false;
|
| + GURL url = container->element().document().baseURL();
|
| + const ExtensionSet* extension_set = extension_dispatcher_->extensions();
|
| +
|
| + return IsExtensionOrSharedModuleWhitelisted(url, extension_set,
|
| + allowed_file_handle_origins_) ||
|
| + IsHostAllowedByCommandLine(url, extension_set,
|
| + switches::kAllowNaClFileHandleAPI);
|
| +#else
|
| + return false;
|
| +#endif
|
| +}
|
| +
|
| WebKit::WebSpeechSynthesizer*
|
| ChromeContentRendererClient::OverrideSpeechSynthesizer(
|
| WebKit::WebSpeechSynthesizerClient* client) {
|
|
|