diff --git a/interface/resources/qml/Browser.qml b/interface/resources/qml/Browser.qml index c4e0c85642..47fb610469 100644 --- a/interface/resources/qml/Browser.qml +++ b/interface/resources/qml/Browser.qml @@ -2,6 +2,7 @@ import QtQuick 2.5 import QtQuick.Controls 1.2 import QtWebChannel 1.0 import QtWebEngine 1.2 +import FileTypeProfile 1.0 import "controls-uit" import "styles" as HifiStyles @@ -216,6 +217,11 @@ ScrollingWindow { WebChannel.id: "eventBridgeWrapper" property var eventBridge; } + + profile: FileTypeProfile { + id: webviewProfile + storageName: "qmlWebEngine" + } webChannel.registeredObjects: [eventBridgeWrapper] diff --git a/interface/resources/qml/controls/WebEntityView.qml b/interface/resources/qml/controls/WebEntityView.qml new file mode 100644 index 0000000000..961ebffb38 --- /dev/null +++ b/interface/resources/qml/controls/WebEntityView.qml @@ -0,0 +1,20 @@ +// +// WebEntityView.qml +// +// Created by Kunal Gosar on 16 March 2017 +// Copyright 2017 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +import QtQuick 2.5 +import "." +import FileTypeProfile 1.0 + +WebView { + viewProfile: FileTypeProfile { + id: webviewProfile + storageName: "qmlWebEngine" + } +} diff --git a/interface/resources/qml/controls/WebView.qml b/interface/resources/qml/controls/WebView.qml index d3e1d97d1a..8c73eddcc2 100644 --- a/interface/resources/qml/controls/WebView.qml +++ b/interface/resources/qml/controls/WebView.qml @@ -2,7 +2,7 @@ import QtQuick 2.5 import QtWebEngine 1.1 import QtWebChannel 1.0 import "../controls-uit" as HiFiControls -import FileTypeProfile 1.0 +import HFWebEngineProfile 1.0 Item { property alias url: root.url @@ -27,6 +27,8 @@ Item { WebChannel.id: "eventBridgeWrapper" property var eventBridge; } + + property alias viewProfile: root.profile WebEngineView { id: root @@ -36,7 +38,7 @@ Item { width: parent.width height: keyboardEnabled && keyboardRaised ? parent.height - keyboard.height : parent.height - profile: FileTypeProfile { + profile: HFWebEngineProfile { id: webviewProfile storageName: "qmlWebEngine" } diff --git a/interface/resources/qml/hifi/Desktop.qml b/interface/resources/qml/hifi/Desktop.qml index cd66b014a4..7857eda3c2 100644 --- a/interface/resources/qml/hifi/Desktop.qml +++ b/interface/resources/qml/hifi/Desktop.qml @@ -2,7 +2,7 @@ import QtQuick 2.5 import QtQuick.Controls 1.4 import QtWebEngine 1.1; import Qt.labs.settings 1.0 -import FileTypeProfile 1.0 +import HFWebEngineProfile 1.0 import "../desktop" as OriginalDesktop import ".." @@ -27,7 +27,7 @@ OriginalDesktop.Desktop { property alias toolWindow: toolWindow ToolWindow { id: toolWindow } - property var browserProfile: FileTypeProfile { + property var browserProfile: HFWebEngineProfile { id: webviewProfile storageName: "qmlWebEngine" } diff --git a/interface/src/networking/FileTypeProfile.cpp b/interface/src/networking/FileTypeProfile.cpp index 2048751e5d..6fcd8df669 100644 --- a/interface/src/networking/FileTypeProfile.cpp +++ b/interface/src/networking/FileTypeProfile.cpp @@ -23,4 +23,4 @@ FileTypeProfile::FileTypeProfile(QObject* parent) : auto requestInterceptor = new FileTypeRequestInterceptor(this); setRequestInterceptor(requestInterceptor); -} \ No newline at end of file +} diff --git a/interface/src/networking/FileTypeProfile.h b/interface/src/networking/FileTypeProfile.h index 99ed5d4b79..f922fd66de 100644 --- a/interface/src/networking/FileTypeProfile.h +++ b/interface/src/networking/FileTypeProfile.h @@ -22,4 +22,4 @@ public: }; -#endif // hifi_FileTypeProfile_h \ No newline at end of file +#endif // hifi_FileTypeProfile_h diff --git a/interface/src/networking/FileTypeRequestInterceptor.h b/interface/src/networking/FileTypeRequestInterceptor.h index c39c860b7c..be971daf7a 100644 --- a/interface/src/networking/FileTypeRequestInterceptor.h +++ b/interface/src/networking/FileTypeRequestInterceptor.h @@ -23,4 +23,4 @@ public: virtual void interceptRequest(QWebEngineUrlRequestInfo& info) override; }; -#endif // hifi_FileTypeRequestInterceptor_h \ No newline at end of file +#endif // hifi_FileTypeRequestInterceptor_h diff --git a/interface/src/networking/RequestFilters.cpp b/interface/src/networking/RequestFilters.cpp index 5a29b58da9..0f59258b66 100644 --- a/interface/src/networking/RequestFilters.cpp +++ b/interface/src/networking/RequestFilters.cpp @@ -49,13 +49,9 @@ void RequestFilters::interceptHFWebEngineRequest(QWebEngineUrlRequestInfo& info) void RequestFilters::interceptFileType(QWebEngineUrlRequestInfo& info) { QString filename = info.requestUrl().fileName(); - if (isJavaScriptFile(filename) || isEntityFile(filename)) { static const QString CONTENT_HEADER = "Accept"; - static const QString TYPE_VALUE = "text/html"; + static const QString TYPE_VALUE = "text/plain"; info.setHttpHeader(CONTENT_HEADER.toLocal8Bit(), TYPE_VALUE.toLocal8Bit()); - static const QString CONTENT_DISPOSITION = "Content-Disposition"; - static const QString DISPOSITION_VALUE = "inline"; - info.setHttpHeader(CONTENT_DISPOSITION.toLocal8Bit(), DISPOSITION_VALUE.toLocal8Bit()); } -} \ No newline at end of file +} diff --git a/interface/src/networking/RequestFilters.h b/interface/src/networking/RequestFilters.h index ab20a267e0..d61208a22d 100644 --- a/interface/src/networking/RequestFilters.h +++ b/interface/src/networking/RequestFilters.h @@ -25,4 +25,4 @@ public: void interceptFileType(QWebEngineUrlRequestInfo& info); }; -#endif // hifi_RequestFilters_h \ No newline at end of file +#endif // hifi_RequestFilters_h diff --git a/libraries/entities-renderer/src/RenderableWebEntityItem.cpp b/libraries/entities-renderer/src/RenderableWebEntityItem.cpp index c4ae0db1aa..109c4cbfe9 100644 --- a/libraries/entities-renderer/src/RenderableWebEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableWebEntityItem.cpp @@ -266,7 +266,7 @@ void RenderableWebEntityItem::loadSourceURL() { _webSurface->setMaxFps(DEFAULT_MAX_FPS); } - _webSurface->load("WebView.qml", [&](QQmlContext* context, QObject* obj) { + _webSurface->load("WebEntityView.qml", [&](QQmlContext* context, QObject* obj) { context->setContextProperty("eventBridgeJavaScriptToInject", QVariant(_javaScriptToInject)); });