import QtQuick 2.5 import QtWebChannel 1.0 import QtWebView 1.1 import "controls" import controlsUit 1.0 as HifiControls import "styles" as HifiStyles import stylesUit 1.0 import "windows" Item { id: root HifiConstants { id: hifi } HifiStyles.HifiConstants { id: hifistyles } height: 600 property variant permissionsBar: {'securityOrigin':'none','feature':'none'} property alias url: webview.url property bool canGoBack: webview.canGoBack property bool canGoForward: webview.canGoForward signal loadingChanged(int status) x: 0 y: 0 function setProfile(profile) { webview.profile = profile; } WebView { id: webview objectName: "webEngineView" x: 0 y: 0 width: parent.width height: keyboardEnabled && keyboardRaised ? parent.height - keyboard.height : parent.height property string userScriptUrl: "" property string newUrl: "" Component.onCompleted: { webChannel.registerObject("eventBridge", eventBridge); webChannel.registerObject("eventBridgeWrapper", eventBridgeWrapper); // Ensure the JS from the web-engine makes it to our logging webview.javaScriptConsoleMessage.connect(function(level, message, lineNumber, sourceID) { console.log("Web Entity JS message: " + sourceID + " " + lineNumber + " " + message); }); webview.profile.httpUserAgent = "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36"; web.address = url; } onLoadingChanged: { keyboardRaised = false; punctuationMode = false; keyboard.resetShiftMode(false); // Required to support clicking on "hifi://" links if (WebView.LoadStartedStatus == loadRequest.status) { urlAppend(loadRequest.url.toString()) var url = loadRequest.url.toString(); if (urlHandler.canHandleUrl(url)) { if (urlHandler.handleUrl(url)) { root.stop(); } } } } onNewViewRequested: { request.openIn(webView); } HifiControls.WebSpinner { } } Keys.onPressed: { switch(event.key) { case Qt.Key_L: if (event.modifiers == Qt.ControlModifier) { event.accepted = true addressBar.selectAll() addressBar.forceActiveFocus() } break; } } }