|
13 | 13 | #include <QWebEngineSettings> |
14 | 14 | #include <QWebEngineProfile> |
15 | 15 | #include <QTimer> |
| 16 | +#include <QWebEngineCookieStore> |
16 | 17 |
|
17 | 18 | ChatWidget::ChatWidget(const QString& path, TsWebObject* webObject, QWidget *parent) |
18 | 19 | : QFrame(parent) |
@@ -67,6 +68,7 @@ ChatWidget::ChatWidget(const QString& path, TsWebObject* webObject, QWidget *par |
67 | 68 |
|
68 | 69 | ChatWidget::~ChatWidget() |
69 | 70 | { |
| 71 | + page->profile()->cookieStore()->setCookieFilter(nullptr); |
70 | 72 | } |
71 | 73 |
|
72 | 74 | void ChatWidget::waitloop() const |
@@ -95,6 +97,17 @@ void ChatWidget::setupPage() const |
95 | 97 | page->settings()->setAttribute(QWebEngineSettings::JavascriptCanOpenWindows, true); |
96 | 98 | page->settings()->setUnknownUrlSchemePolicy(QWebEngineSettings::UnknownUrlSchemePolicy::AllowAllUnknownUrlSchemes); |
97 | 99 | page->profile()->setHttpUserAgent(QString("Twitterbot/1.0 %1").arg(QWebEngineProfile::defaultProfile()->httpUserAgent())); |
| 100 | + page->profile()->cookieStore()->setCookieFilter( |
| 101 | + [=](const QWebEngineCookieStore::FilterRequest &request) { |
| 102 | + // block consent.youtube.com cookies |
| 103 | + // fetch in embed.js gets redirected otherwise |
| 104 | + // should probably modify how embedding is done instead |
| 105 | + if (request.origin.host() == "consent.youtube.com") { |
| 106 | + return false; |
| 107 | + } |
| 108 | + return true; |
| 109 | + } |
| 110 | + ); |
98 | 111 |
|
99 | 112 | connect(page, &TsWebEnginePage::fullScreenRequested, this, &ChatWidget::onFullScreenRequested); |
100 | 113 | connect(page, &TsWebEnginePage::linkHovered, this, &ChatWidget::onLinkHovered); |
|
0 commit comments