2 Commits fe7b0233cf ... c68bc2d062

Author SHA1 Message Date
  Sonnix c68bc2d062 set UrlScheme Syntax 5 years ago
  Sonnix 0d551f5ce7 register url schemes 5 years ago
4 changed files with 42 additions and 0 deletions
  1. 2 0
      Qqsp.pro
  2. 2 0
      main.cpp
  3. 26 0
      url_schemes.cpp
  4. 12 0
      url_schemes.h

+ 2 - 0
Qqsp.pro

@@ -154,11 +154,13 @@ enable-webbox {
     qspwebengineurlrequestinterceptor.cpp \
     qspwebengineurlschemehandler.cpp \
     qspexecwebengineurlschemehandler.cpp \
+    url_schemes.cpp \
     qspwebchannel.cpp
   HEADERS += qspwebbox.h \
     qspwebengineurlrequestinterceptor.h \
     qspwebengineurlschemehandler.h \
     qspexecwebengineurlschemehandler.h \
+    url_schemes.h \
     qspwebchannel.h
 }
 

+ 2 - 0
main.cpp

@@ -10,6 +10,7 @@
 #include <QFileInfo>
 #ifdef _WEBBOX
 #include <QtWebEngine>
+#include "url_schemes.h"
 #endif
 
 int main(int argc, char *argv[])
@@ -52,6 +53,7 @@ int main(int argc, char *argv[])
     parser.process(a);
 
 #ifdef _WEBBOX
+    register_url_schemes();
     QtWebEngine::initialize();
 #endif
 

+ 26 - 0
url_schemes.cpp

@@ -0,0 +1,26 @@
+#include "url_schemes.h"
+
+#include <QWebEngineUrlScheme>
+
+static const QByteArray QspWebEngineUrlSchemeName = QByteArrayLiteral("qsp");
+static const QByteArray QspExecWebEngineUrlSchemeName = QByteArrayLiteral("exec");
+
+void register_url_schemes()
+{
+    QWebEngineUrlScheme QspWebEngineUrlScheme(QspWebEngineUrlSchemeName);
+    QspWebEngineUrlScheme.setSyntax(QWebEngineUrlScheme::Syntax::Path);
+    QspWebEngineUrlScheme.setFlags(QWebEngineUrlScheme::SecureScheme |
+                                   QWebEngineUrlScheme::LocalAccessAllowed |
+                                   QWebEngineUrlScheme::ServiceWorkersAllowed |
+                                   QWebEngineUrlScheme::ViewSourceAllowed |
+                                   QWebEngineUrlScheme::ContentSecurityPolicyIgnored);
+    QWebEngineUrlScheme::registerScheme(QspWebEngineUrlScheme);
+    QWebEngineUrlScheme QspExecWebEngineUrlScheme(QspExecWebEngineUrlSchemeName);
+    QspExecWebEngineUrlScheme.setSyntax(QWebEngineUrlScheme::Syntax::Path);
+    QspExecWebEngineUrlScheme.setFlags(QWebEngineUrlScheme::SecureScheme |
+                                   QWebEngineUrlScheme::LocalAccessAllowed |
+                                   QWebEngineUrlScheme::ServiceWorkersAllowed |
+                                   QWebEngineUrlScheme::ViewSourceAllowed |
+                                   QWebEngineUrlScheme::ContentSecurityPolicyIgnored);
+    QWebEngineUrlScheme::registerScheme(QspExecWebEngineUrlScheme);
+}

+ 12 - 0
url_schemes.h

@@ -0,0 +1,12 @@
+#ifndef URL_SCHEMES_H
+#define URL_SCHEMES_H
+
+#include "qspwebengineurlschemehandler.h"
+#include "qspexecwebengineurlschemehandler.h"
+
+//static QspWebEngineUrlSchemeHandler qweush;
+//static QspExecWebEngineUrlSchemeHandler qeweush;
+
+void register_url_schemes();
+
+#endif // URL_SCHEMES_H