summaryrefslogtreecommitdiffstats
path: root/src/core/browser_main_parts_qt.cpp
diff options
context:
space:
mode:
authorSzabolcs David <davidsz@inf.u-szeged.hu>2021-02-17 20:31:15 +0100
committerSzabolcs David <davidsz@inf.u-szeged.hu>2021-03-07 00:06:16 +0100
commit012df52a13081e3f106021b14ab9796a371fbbe1 (patch)
treee0c2c75fd4e6c8a712bbafa5fa5a340f2a2b2abf /src/core/browser_main_parts_qt.cpp
parent8f56ea6806d9a72d4b705da5f6f90fa5a6873567 (diff)
Implement PluginServiceFilterQt
Let Chromium know about the status of plugin availability from WebEngineSettings. This way it can decide whether the response is a download and it has more benefits: - It doesn't have to start a new load request to download a PDF file, it just treats the original response accordingly. - Fixes websites which are protected from cross-domain requests (e.g. by checking the Referer header) and/or redirecting requests for PDFs. Calling DownloadManager "manually" and not passing the original request headers did not work when the server relied on them. Task-number: QTBUG-78114 Change-Id: I8cfa90c211418001c60c4b2f0f8818ee453101fc Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/core/browser_main_parts_qt.cpp')
-rw-r--r--src/core/browser_main_parts_qt.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/core/browser_main_parts_qt.cpp b/src/core/browser_main_parts_qt.cpp
index 1add722a5..bc0499bca 100644
--- a/src/core/browser_main_parts_qt.cpp
+++ b/src/core/browser_main_parts_qt.cpp
@@ -59,10 +59,12 @@
#include "content/public/common/service_manager_connection.h"
#include "extensions/buildflags/buildflags.h"
#if BUILDFLAG(ENABLE_EXTENSIONS)
+#include "content/public/browser/plugin_service.h"
#include "extensions/common/constants.h"
#include "extensions/common/extensions_client.h"
#include "extensions/extensions_browser_client_qt.h"
#include "extensions/extension_system_factory_qt.h"
+#include "extensions/plugin_service_filter_qt.h"
#include "common/extensions/extensions_client_qt.h"
#endif //BUILDFLAG(ENABLE_EXTENSIONS)
#include "services/service_manager/public/cpp/connector.h"
@@ -250,6 +252,9 @@ void BrowserMainPartsQt::PreMainMessageLoopRun()
extensions::ExtensionsClient::Set(new extensions::ExtensionsClientQt());
extensions::ExtensionsBrowserClient::Set(new extensions::ExtensionsBrowserClientQt());
extensions::ExtensionSystemFactoryQt::GetInstance();
+
+ content::PluginService *plugin_service = content::PluginService::GetInstance();
+ plugin_service->SetFilter(extensions::PluginServiceFilterQt::GetInstance());
#endif //ENABLE_EXTENSIONS
}