2018-10-24 18:24:11 +00:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
2018-09-21 00:30:26 +00:00
|
|
|
From: deepak1556 <hop2deep@gmail.com>
|
2019-11-04 17:50:31 +00:00
|
|
|
Date: Thu, 20 Sep 2018 17:46:17 -0700
|
|
|
|
Subject: pepper plugin support
|
2018-09-21 00:30:26 +00:00
|
|
|
|
2019-11-04 17:50:31 +00:00
|
|
|
This tweaks Chrome's pepper flash and PDF plugin support to make it
|
|
|
|
usable from Electron.
|
2018-09-21 00:30:26 +00:00
|
|
|
|
2018-09-14 05:02:16 +00:00
|
|
|
diff --git a/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc b/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc
|
2022-03-25 01:39:03 +00:00
|
|
|
index 2425ccd480f4b0f3ac3b9dddb5dbf90639fe515b..6f20e2edd880e34149668ece6e80e79b3da8dc66 100644
|
2018-09-14 05:02:16 +00:00
|
|
|
--- a/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc
|
|
|
|
+++ b/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc
|
2022-03-25 01:39:03 +00:00
|
|
|
@@ -6,17 +6,21 @@
|
|
|
|
|
2020-06-01 20:34:34 +00:00
|
|
|
#include <stddef.h>
|
2018-09-14 05:02:16 +00:00
|
|
|
|
|
|
|
+#if 0
|
|
|
|
#include "chrome/browser/browser_process.h"
|
|
|
|
#include "chrome/browser/profiles/profile.h"
|
|
|
|
#include "chrome/browser/profiles/profile_manager.h"
|
|
|
|
#include "chrome/common/chrome_switches.h"
|
|
|
|
#include "chrome/common/pepper_permission_util.h"
|
|
|
|
+#endif
|
|
|
|
#include "content/public/browser/browser_ppapi_host.h"
|
2019-01-12 01:00:43 +00:00
|
|
|
#include "content/public/browser/browser_task_traits.h"
|
2018-09-14 05:02:16 +00:00
|
|
|
#include "content/public/browser/browser_thread.h"
|
|
|
|
#include "content/public/browser/child_process_security_policy.h"
|
|
|
|
#include "content/public/browser/render_view_host.h"
|
|
|
|
+#if 0
|
|
|
|
#include "extensions/buildflags/buildflags.h"
|
|
|
|
+#endif
|
|
|
|
#include "ppapi/c/pp_errors.h"
|
|
|
|
#include "ppapi/host/dispatch_host_message.h"
|
|
|
|
#include "ppapi/host/host_message_context.h"
|
2022-03-25 01:39:03 +00:00
|
|
|
@@ -25,12 +29,11 @@
|
2018-09-14 05:02:16 +00:00
|
|
|
#include "ppapi/shared_impl/file_system_util.h"
|
2019-10-28 22:12:35 +00:00
|
|
|
#include "storage/browser/file_system/isolated_context.h"
|
2018-09-14 05:02:16 +00:00
|
|
|
|
|
|
|
-#if BUILDFLAG(ENABLE_EXTENSIONS)
|
|
|
|
+#if 0
|
|
|
|
#include "extensions/browser/extension_registry.h"
|
|
|
|
#include "extensions/common/constants.h"
|
|
|
|
#include "extensions/common/extension.h"
|
|
|
|
#include "extensions/common/extension_set.h"
|
|
|
|
-#endif
|
|
|
|
|
|
|
|
namespace {
|
|
|
|
|
2022-03-25 01:39:03 +00:00
|
|
|
@@ -40,6 +43,7 @@ const char* kPredefinedAllowedCrxFsOrigins[] = {
|
2018-09-14 05:02:16 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace
|
|
|
|
+#endif
|
|
|
|
|
|
|
|
// static
|
|
|
|
PepperIsolatedFileSystemMessageFilter*
|
2022-03-25 01:39:03 +00:00
|
|
|
@@ -63,11 +67,16 @@ PepperIsolatedFileSystemMessageFilter::PepperIsolatedFileSystemMessageFilter(
|
2021-11-24 08:45:59 +00:00
|
|
|
const base::FilePath& profile_directory,
|
|
|
|
const GURL& document_url,
|
|
|
|
ppapi::host::PpapiHost* ppapi_host)
|
2018-09-14 05:02:16 +00:00
|
|
|
+#if 0
|
2021-11-24 08:45:59 +00:00
|
|
|
: render_process_id_(render_process_id),
|
|
|
|
profile_directory_(profile_directory),
|
|
|
|
document_url_(document_url) {
|
2022-03-25 01:39:03 +00:00
|
|
|
for (size_t i = 0; i < std::size(kPredefinedAllowedCrxFsOrigins); ++i)
|
2018-09-14 05:02:16 +00:00
|
|
|
allowed_crxfs_origins_.insert(kPredefinedAllowedCrxFsOrigins[i]);
|
2021-11-24 08:45:59 +00:00
|
|
|
+#else
|
|
|
|
+ : profile_directory_(profile_directory),
|
|
|
|
+ document_url_(document_url) {
|
2018-09-14 05:02:16 +00:00
|
|
|
+#endif
|
|
|
|
}
|
|
|
|
|
|
|
|
PepperIsolatedFileSystemMessageFilter::
|
2022-03-25 01:39:03 +00:00
|
|
|
@@ -92,6 +101,7 @@ int32_t PepperIsolatedFileSystemMessageFilter::OnResourceMessageReceived(
|
2018-09-14 05:02:16 +00:00
|
|
|
return PP_ERROR_FAILED;
|
|
|
|
}
|
|
|
|
|
|
|
|
+#if 0
|
|
|
|
Profile* PepperIsolatedFileSystemMessageFilter::GetProfile() {
|
|
|
|
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
|
|
|
ProfileManager* profile_manager = g_browser_process->profile_manager();
|
2022-03-25 01:39:03 +00:00
|
|
|
@@ -116,6 +126,7 @@ PepperIsolatedFileSystemMessageFilter::CreateCrxFileSystem(Profile* profile) {
|
2019-05-21 17:05:21 +00:00
|
|
|
return storage::IsolatedContext::ScopedFSHandle();
|
2018-09-14 05:02:16 +00:00
|
|
|
#endif
|
|
|
|
}
|
|
|
|
+#endif
|
|
|
|
|
|
|
|
int32_t PepperIsolatedFileSystemMessageFilter::OnOpenFileSystem(
|
|
|
|
ppapi::host::HostMessageContext* context,
|
2022-03-25 01:39:03 +00:00
|
|
|
@@ -124,7 +135,7 @@ int32_t PepperIsolatedFileSystemMessageFilter::OnOpenFileSystem(
|
2018-09-14 05:02:16 +00:00
|
|
|
case PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_INVALID:
|
|
|
|
break;
|
|
|
|
case PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_CRX:
|
2018-09-14 18:03:43 +00:00
|
|
|
- return OpenCrxFileSystem(context);
|
|
|
|
+ return PP_ERROR_NOTSUPPORTED;
|
2018-09-14 05:02:16 +00:00
|
|
|
}
|
2021-11-24 08:45:59 +00:00
|
|
|
NOTREACHED();
|
|
|
|
context->reply_msg =
|
2022-03-25 01:39:03 +00:00
|
|
|
@@ -132,6 +143,7 @@ int32_t PepperIsolatedFileSystemMessageFilter::OnOpenFileSystem(
|
2018-09-14 05:02:16 +00:00
|
|
|
return PP_ERROR_FAILED;
|
|
|
|
}
|
|
|
|
|
|
|
|
+#if 0
|
|
|
|
int32_t PepperIsolatedFileSystemMessageFilter::OpenCrxFileSystem(
|
|
|
|
ppapi::host::HostMessageContext* context) {
|
|
|
|
#if BUILDFLAG(ENABLE_EXTENSIONS)
|
2022-03-25 01:39:03 +00:00
|
|
|
@@ -172,3 +184,4 @@ int32_t PepperIsolatedFileSystemMessageFilter::OpenCrxFileSystem(
|
2018-09-14 05:02:16 +00:00
|
|
|
return PP_ERROR_NOTSUPPORTED;
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
+#endif
|
|
|
|
diff --git a/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.h b/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.h
|
2021-11-24 08:45:59 +00:00
|
|
|
index 40fafdbed313800a3f420d9d5a3daf8bbbdb7d95..1367725e04455ba5f299b8341a28f222f51c4cd2 100644
|
2018-09-14 05:02:16 +00:00
|
|
|
--- a/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.h
|
|
|
|
+++ b/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.h
|
2021-11-24 08:45:59 +00:00
|
|
|
@@ -19,7 +19,9 @@
|
2019-10-28 22:12:35 +00:00
|
|
|
#include "storage/browser/file_system/isolated_context.h"
|
2018-09-14 05:02:16 +00:00
|
|
|
#include "url/gurl.h"
|
|
|
|
|
|
|
|
+#if 0
|
|
|
|
class Profile;
|
|
|
|
+#endif
|
|
|
|
|
|
|
|
namespace content {
|
|
|
|
class BrowserPpapiHost;
|
2021-11-24 08:45:59 +00:00
|
|
|
@@ -58,6 +60,7 @@ class PepperIsolatedFileSystemMessageFilter
|
2018-09-14 05:02:16 +00:00
|
|
|
|
|
|
|
~PepperIsolatedFileSystemMessageFilter() override;
|
|
|
|
|
|
|
|
+#if 0
|
|
|
|
Profile* GetProfile();
|
|
|
|
|
|
|
|
// Returns filesystem id of isolated filesystem if valid, or empty string
|
2021-11-24 08:45:59 +00:00
|
|
|
@@ -65,18 +68,23 @@ class PepperIsolatedFileSystemMessageFilter
|
2018-09-14 05:02:16 +00:00
|
|
|
// allows access on that thread.
|
2019-05-21 17:05:21 +00:00
|
|
|
storage::IsolatedContext::ScopedFSHandle CreateCrxFileSystem(
|
|
|
|
Profile* profile);
|
2018-09-14 05:02:16 +00:00
|
|
|
+#endif
|
|
|
|
|
|
|
|
int32_t OnOpenFileSystem(ppapi::host::HostMessageContext* context,
|
|
|
|
PP_IsolatedFileSystemType_Private type);
|
|
|
|
+#if 0
|
|
|
|
int32_t OpenCrxFileSystem(ppapi::host::HostMessageContext* context);
|
|
|
|
|
|
|
|
const int render_process_id_;
|
2021-11-24 08:45:59 +00:00
|
|
|
+#endif
|
|
|
|
// Keep a copy from original thread.
|
|
|
|
const base::FilePath profile_directory_;
|
|
|
|
const GURL document_url_;
|
2018-09-14 05:02:16 +00:00
|
|
|
|
|
|
|
+#if 0
|
|
|
|
// Set of origins that can use CrxFs private APIs from NaCl.
|
|
|
|
std::set<std::string> allowed_crxfs_origins_;
|
|
|
|
+#endif
|
|
|
|
};
|
2021-10-21 18:51:36 +00:00
|
|
|
|
|
|
|
#endif // CHROME_BROWSER_RENDERER_HOST_PEPPER_PEPPER_ISOLATED_FILE_SYSTEM_MESSAGE_FILTER_H_
|
2018-09-14 05:02:16 +00:00
|
|
|
diff --git a/chrome/renderer/pepper/chrome_renderer_pepper_host_factory.cc b/chrome/renderer/pepper/chrome_renderer_pepper_host_factory.cc
|
2022-03-25 01:39:03 +00:00
|
|
|
index e3ee403ec5d4d75f22f1853ec8637a0559ce3c43..76232286e02a20bcd578c5ba28af638dfc8f562c 100644
|
2018-09-14 05:02:16 +00:00
|
|
|
--- a/chrome/renderer/pepper/chrome_renderer_pepper_host_factory.cc
|
|
|
|
+++ b/chrome/renderer/pepper/chrome_renderer_pepper_host_factory.cc
|
2022-03-25 01:39:03 +00:00
|
|
|
@@ -5,7 +5,9 @@
|
|
|
|
#include "chrome/renderer/pepper/chrome_renderer_pepper_host_factory.h"
|
2022-02-10 02:58:52 +00:00
|
|
|
|
2020-10-16 01:30:41 +00:00
|
|
|
#include "base/check_op.h"
|
2018-09-14 05:02:16 +00:00
|
|
|
+#if 0
|
|
|
|
#include "chrome/renderer/pepper/pepper_uma_host.h"
|
|
|
|
+#endif
|
|
|
|
#include "content/public/renderer/renderer_ppapi_host.h"
|
|
|
|
#include "ppapi/host/ppapi_host.h"
|
2022-03-25 01:39:03 +00:00
|
|
|
#include "ppapi/host/resource_host.h"
|
|
|
|
@@ -33,6 +35,7 @@ ChromeRendererPepperHostFactory::CreateResourceHost(
|
|
|
|
if (!host_->IsValidInstance(instance))
|
|
|
|
return nullptr;
|
2021-06-03 08:05:04 +00:00
|
|
|
|
2019-11-04 17:50:31 +00:00
|
|
|
+#if 0
|
|
|
|
// Permissions for the following interfaces will be checked at the
|
|
|
|
// time of the corresponding instance's method calls. Currently these
|
|
|
|
// interfaces are available only for whitelisted apps which may not have
|
2022-03-25 01:39:03 +00:00
|
|
|
@@ -42,6 +45,7 @@ ChromeRendererPepperHostFactory::CreateResourceHost(
|
2018-09-14 05:02:16 +00:00
|
|
|
return std::make_unique<PepperUMAHost>(host_, instance, resource);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
+#endif
|
|
|
|
|
|
|
|
return nullptr;
|
|
|
|
}
|
|
|
|
diff --git a/chrome/renderer/pepper/pepper_helper.h b/chrome/renderer/pepper/pepper_helper.h
|
2022-01-10 22:31:39 +00:00
|
|
|
index 5794ac83e62c7f966920a2692246e7677b297695..01d5a609ad34bb2829bd5714e70930b90c549661 100644
|
2018-09-14 05:02:16 +00:00
|
|
|
--- a/chrome/renderer/pepper/pepper_helper.h
|
|
|
|
+++ b/chrome/renderer/pepper/pepper_helper.h
|
2022-01-10 22:31:39 +00:00
|
|
|
@@ -5,11 +5,13 @@
|
|
|
|
#ifndef CHROME_RENDERER_PEPPER_PEPPER_HELPER_H_
|
2018-09-14 05:02:16 +00:00
|
|
|
#define CHROME_RENDERER_PEPPER_PEPPER_HELPER_H_
|
|
|
|
|
|
|
|
+#include "base/component_export.h"
|
|
|
|
#include "content/public/renderer/render_frame_observer.h"
|
|
|
|
|
|
|
|
// This class listens for Pepper creation events from the RenderFrame and
|
|
|
|
// attaches the parts required for Chrome-specific plugin support.
|
|
|
|
-class PepperHelper : public content::RenderFrameObserver {
|
|
|
|
+class COMPONENT_EXPORT(PEPPER_FLASH) PepperHelper
|
|
|
|
+ : public content::RenderFrameObserver {
|
|
|
|
public:
|
|
|
|
explicit PepperHelper(content::RenderFrame* render_frame);
|
2021-10-06 02:21:00 +00:00
|
|
|
|