added Linux arm64 SDK
This commit is contained in:
@@ -1,379 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2022 Igalia S.L.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
|
||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
|
||||
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
* THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
if (!window.InspectorFrontendHost) {
|
||||
WI.BrowserInspectorFrontendHost = class BrowserInspectorFrontendHost {
|
||||
|
||||
constructor()
|
||||
{
|
||||
this._pendingMessages = null;
|
||||
this._socket = null;
|
||||
}
|
||||
|
||||
// Public
|
||||
|
||||
get supportsShowCertificate()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
get isRemote()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
get inspectionLevel()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
get debuggableInfo()
|
||||
{
|
||||
return {
|
||||
debuggableType: "web-page",
|
||||
targetPlatformName: undefined,
|
||||
targetBuildVersion: undefined,
|
||||
targetProductVersion: undefined,
|
||||
targetIsSimulator: false,
|
||||
};
|
||||
}
|
||||
|
||||
get platform()
|
||||
{
|
||||
const match = navigator.platform.match(/mac|win|linux/i);
|
||||
if (match) {
|
||||
const platform = match[0].toLowerCase();
|
||||
if (platform == "win")
|
||||
return "windows";
|
||||
return platform;
|
||||
}
|
||||
return "unknown";
|
||||
}
|
||||
|
||||
get platformVersionName()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
get supportsDiagnosticLogging()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
get supportsWebExtensions()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
connect()
|
||||
{
|
||||
const queryParams = parseQueryString(window.location.search.substring(1));
|
||||
let url = "ws" in queryParams ? "ws://" + queryParams.ws : null;
|
||||
if (!url)
|
||||
return;
|
||||
|
||||
const socket = new WebSocket(url);
|
||||
socket.addEventListener("message", message => InspectorBackend.dispatch(message.data));
|
||||
socket.addEventListener("error", console.error);
|
||||
socket.addEventListener("open", () => { this._socket = socket; });
|
||||
socket.addEventListener("close", () => {
|
||||
this._socket = null;
|
||||
window.close();
|
||||
});
|
||||
}
|
||||
|
||||
loaded()
|
||||
{
|
||||
WI.updateVisibilityState(true);
|
||||
}
|
||||
|
||||
closeWindow()
|
||||
{
|
||||
this._windowVisible = false;
|
||||
}
|
||||
|
||||
reopen()
|
||||
{
|
||||
window.location.reload();
|
||||
}
|
||||
|
||||
reset()
|
||||
{
|
||||
this.reopen();
|
||||
}
|
||||
|
||||
bringToFront()
|
||||
{
|
||||
this._windowVisible = true;
|
||||
}
|
||||
|
||||
inspectedURLChanged(title)
|
||||
{
|
||||
document.title = title;
|
||||
}
|
||||
|
||||
showCertificate(certificate)
|
||||
{
|
||||
throw "unimplemented";
|
||||
}
|
||||
|
||||
setZoomFactor(zoom)
|
||||
{
|
||||
}
|
||||
|
||||
zoomFactor()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
setForcedAppearance(appearance)
|
||||
{
|
||||
}
|
||||
|
||||
userInterfaceLayoutDirection()
|
||||
{
|
||||
return "ltr";
|
||||
}
|
||||
|
||||
supportsDockSide(side)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
requestDockSide(side)
|
||||
{
|
||||
throw "unimplemented";
|
||||
}
|
||||
|
||||
setAttachedWindowHeight(height)
|
||||
{
|
||||
}
|
||||
|
||||
setAttachedWindowWidth(width)
|
||||
{
|
||||
}
|
||||
|
||||
setSheetRect(x, y, width, height)
|
||||
{
|
||||
}
|
||||
|
||||
startWindowDrag()
|
||||
{
|
||||
}
|
||||
|
||||
moveWindowBy(x, y)
|
||||
{
|
||||
}
|
||||
|
||||
copyText(text)
|
||||
{
|
||||
this.killText(text, false, true);
|
||||
}
|
||||
|
||||
killText(text, shouldPrependToKillRing, shouldStartNewSequence)
|
||||
{
|
||||
// FIXME: restore focus to previously focused element.
|
||||
let textarea = document.createElement("textarea");
|
||||
document.body.appendChild(textarea);
|
||||
|
||||
if (shouldStartNewSequence) {
|
||||
textarea.textContent = text;
|
||||
} else {
|
||||
textarea.select();
|
||||
if (!document.execCommand("paste"))
|
||||
console.error("BrowserInspectorFrontendHost.killText: could not paste from clipboard");
|
||||
|
||||
if (shouldPrependToKillRing)
|
||||
textarea.textContent = text + textarea.textContent;
|
||||
else
|
||||
textarea.textContent = textarea.textContent + text;
|
||||
}
|
||||
|
||||
textarea.select();
|
||||
|
||||
if (!document.execCommand("copy"))
|
||||
console.error("BrowserInspectorFrontendHost.copyText: could not copy to clipboard");
|
||||
|
||||
document.body.removeChild(textarea);
|
||||
}
|
||||
|
||||
openURLExternally(url)
|
||||
{
|
||||
window.open(url, "_blank");
|
||||
}
|
||||
|
||||
canSave(saveMode)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
save(saveDatas, forceSaveAs)
|
||||
{
|
||||
// FIXME: Create a Blob from the content, get an object URL, open it to trigger a download.
|
||||
throw "unimplemented";
|
||||
}
|
||||
|
||||
canLoad()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
load(path)
|
||||
{
|
||||
throw "unimplemented";
|
||||
}
|
||||
|
||||
getPath(file)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
canPickColorFromScreen()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
pickColorFromScreen()
|
||||
{
|
||||
throw "unimplemented";
|
||||
}
|
||||
|
||||
revealFileExternally(path)
|
||||
{
|
||||
}
|
||||
|
||||
getCurrentX(context)
|
||||
{
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
getCurrentY(context)
|
||||
{
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
setPath(context, path2d)
|
||||
{
|
||||
console.log("setPath", context, path2d);
|
||||
}
|
||||
|
||||
showContextMenu(event, items)
|
||||
{
|
||||
this._contextMenu = WI.SoftContextMenu(items);
|
||||
this._contextMenu.show(event);
|
||||
}
|
||||
|
||||
dispatchEventAsContextMenuEvent(event)
|
||||
{
|
||||
if (this._contextMenu)
|
||||
this._contextMenu.show(event);
|
||||
}
|
||||
|
||||
sendMessageToBackend(message)
|
||||
{
|
||||
if (!this._socket) {
|
||||
if (!this._pendingMessages)
|
||||
this._pendingMessages = [];
|
||||
this._pendingMessages.push(message);
|
||||
} else {
|
||||
this._sendPendingMessagesToBackendIfNeeded();
|
||||
this._socket.send(message);
|
||||
}
|
||||
}
|
||||
|
||||
unbufferedLog(message)
|
||||
{
|
||||
console.log(message);
|
||||
}
|
||||
|
||||
isUnderTest()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
beep()
|
||||
{
|
||||
// FIXME: Implement using Audio/AudioContext.
|
||||
}
|
||||
|
||||
inspectInspector()
|
||||
{
|
||||
throw "unimplemented";
|
||||
}
|
||||
|
||||
isBeingInspected()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
setAllowsInspectingInspector(allow)
|
||||
{
|
||||
}
|
||||
|
||||
logDiagnosticEvent(eventName, content)
|
||||
{
|
||||
throw "unimplemented";
|
||||
}
|
||||
|
||||
didShowExtensionTab(extensionID, extensionTabID, extensionFrame)
|
||||
{
|
||||
throw "unimplemented";
|
||||
}
|
||||
|
||||
didHideExtensionTab(extensionID, extensionTabID)
|
||||
{
|
||||
throw "unimplemented";
|
||||
}
|
||||
|
||||
didNavigateExtensionTab(extensionID, extensionTabID, newURL)
|
||||
{
|
||||
throw "unimplemented";
|
||||
}
|
||||
|
||||
inspectedPageDidNavigate(newURL)
|
||||
{
|
||||
throw "unimplemented";
|
||||
}
|
||||
|
||||
evaluateScriptInExtensionTab(extensionFrame, scriptSource)
|
||||
{
|
||||
throw "unimplemented";
|
||||
}
|
||||
|
||||
// Private
|
||||
|
||||
_sendPendingMessagesToBackendIfNeeded()
|
||||
{
|
||||
if (this._pendingMessages) {
|
||||
this._pendingMessages.forEach(message => this._socket.send(message));
|
||||
this._pendingMessages = null;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
InspectorFrontendHost = new WI.BrowserInspectorFrontendHost();
|
||||
|
||||
WI.dontLocalizeUserInterface = true;
|
||||
}
|
||||
Reference in New Issue
Block a user