From 66e8f070e42c37bc39750326cdf9bc4f4cd1f550 Mon Sep 17 00:00:00 2001 From: "James B. Pollack" Date: Fri, 19 Feb 2016 13:48:54 -0800 Subject: [PATCH] popup windows --- interface/resources/qml/Browser.qml | 12 ++++++------ interface/resources/qml/controls/WebView.qml | 17 +++++++++++++---- interface/resources/qml/hifi/Desktop.qml | 10 ++++++++-- 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/interface/resources/qml/Browser.qml b/interface/resources/qml/Browser.qml index 382acc237c..89ab333a0d 100644 --- a/interface/resources/qml/Browser.qml +++ b/interface/resources/qml/Browser.qml @@ -14,7 +14,8 @@ Window { destroyOnInvisible: true width: 800 height: 600 - + property alias webView: webview + Component.onCompleted: { visible = true addressBar.text = webview.url @@ -28,6 +29,7 @@ Window { } Item { + id:item anchors.fill: parent Rectangle { anchors.left: parent.left @@ -125,12 +127,10 @@ Window { console.log("New icon: " + icon) } - profile: WebEngineProfile { - id: webviewProfile - storageName: "qmlUserBrowser" - } - + profile: desktop.browserProfile + } + } // item Keys.onPressed: { diff --git a/interface/resources/qml/controls/WebView.qml b/interface/resources/qml/controls/WebView.qml index c7ae322cba..90454d48c2 100644 --- a/interface/resources/qml/controls/WebView.qml +++ b/interface/resources/qml/controls/WebView.qml @@ -11,6 +11,7 @@ WebEngineView { root.javaScriptConsoleMessage.connect(function(level, message, lineNumber, sourceID) { console.log("Web Window JS message: " + sourceID + " " + lineNumber + " " + message); }); + } // FIXME hack to get the URL with the auth token included. Remove when we move to Qt 5.6 @@ -36,6 +37,11 @@ WebEngineView { } } + onFeaturePermissionRequested: { + console.log('permission requested',securityOrigin, feature) + grantFeaturePermission(securityOrigin, feature, true); + } + onLoadingChanged: { // Required to support clicking on "hifi://" links if (WebEngineView.LoadStartedStatus == loadRequest.status) { @@ -48,9 +54,12 @@ WebEngineView { } } - profile: WebEngineProfile { - id: webviewProfile - httpUserAgent: "Mozilla/5.0 (HighFidelityInterface)" - storageName: "qmlWebEngine" + onNewViewRequested:{ + var component = Qt.createComponent("../Browser.qml"); + var newWindow = component.createObject(desktop); + request.openIn(newWindow.webView) } + + + profile: desktop.browserProfile } diff --git a/interface/resources/qml/hifi/Desktop.qml b/interface/resources/qml/hifi/Desktop.qml index 5951101194..25eabcb158 100644 --- a/interface/resources/qml/hifi/Desktop.qml +++ b/interface/resources/qml/hifi/Desktop.qml @@ -9,8 +9,8 @@ Desktop { id: desktop Component.onCompleted: { - WebEngine.settings.javascriptCanOpenWindows = false; - WebEngine.settings.javascriptCanAccessClipboard = false; + WebEngine.settings.javascriptCanOpenWindows = true; + WebEngine.settings.javascriptCanAccessClipboard = true; WebEngine.settings.spatialNavigationEnabled = true; WebEngine.settings.localContentCanAccessRemoteUrls = true; } @@ -18,6 +18,12 @@ Desktop { // The tool window, one instance property alias toolWindow: toolWindow ToolWindow { id: toolWindow } + + property var browserProfile: WebEngineProfile { + id: webviewProfile + httpUserAgent: "Chrome/48.0 (HighFidelityInterface)" + storageName: "qmlWebEngine" + } Action { text: "Open Browser"