diff --git a/remote/Cargo.toml b/remote/Cargo.toml new file mode 100644 index 000000000000..d37568f9db60 --- /dev/null +++ b/remote/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "remote" +version = "0.1.0" + +[lib] +path = "lib.rs" + +[dependencies] +http = "0.2" +libc = "0.2" +log = "0.4" +nserror = { path = "../xpcom/rust/nserror" } +nsstring = { path = "../xpcom/rust/nsstring" } +thiserror = "1" +xpcom = { path = "../xpcom/rust/xpcom" } diff --git a/remote/Connection.jsm b/remote/Connection.jsm index 991ebac109c5..a87d6a9a3bcd 100644 --- a/remote/Connection.jsm +++ b/remote/Connection.jsm @@ -10,10 +10,8 @@ const { XPCOMUtils } = ChromeUtils.import( "resource://gre/modules/XPCOMUtils.jsm" ); -const { truncate } = ChromeUtils.import( - "chrome://remote/content/shared/Format.jsm" -); -const { Log } = ChromeUtils.import("chrome://remote/content/shared/Log.jsm"); +const { truncate } = ChromeUtils.import("chrome://remote/content/Format.jsm"); +const { Log } = ChromeUtils.import("chrome://remote/content/Log.jsm"); const { UnknownMethodError } = ChromeUtils.import( "chrome://remote/content/Error.jsm" ); diff --git a/remote/Error.jsm b/remote/Error.jsm index 191c5c651378..d7a83400cb7b 100644 --- a/remote/Error.jsm +++ b/remote/Error.jsm @@ -11,7 +11,7 @@ var EXPORTED_SYMBOLS = [ "UnsupportedError", ]; -const { Log } = ChromeUtils.import("chrome://remote/content/shared/Log.jsm"); +const { Log } = ChromeUtils.import("chrome://remote/content/Log.jsm"); const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm"); const { XPCOMUtils } = ChromeUtils.import( "resource://gre/modules/XPCOMUtils.jsm" diff --git a/remote/shared/Format.jsm b/remote/Format.jsm similarity index 98% rename from remote/shared/Format.jsm rename to remote/Format.jsm index 0d6542fd96d7..0b571fc66051 100644 --- a/remote/shared/Format.jsm +++ b/remote/Format.jsm @@ -6,7 +6,7 @@ var EXPORTED_SYMBOLS = ["pprint", "truncate"]; -const { Log } = ChromeUtils.import("chrome://remote/content/shared/Log.jsm"); +const { Log } = ChromeUtils.import("chrome://remote/content/Log.jsm"); const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm"); const { XPCOMUtils } = ChromeUtils.import( diff --git a/remote/JSONHandler.jsm b/remote/JSONHandler.jsm index 8a6308f5fdc9..4a8167289311 100644 --- a/remote/JSONHandler.jsm +++ b/remote/JSONHandler.jsm @@ -11,7 +11,7 @@ const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm"); const { HTTP_404, HTTP_505 } = ChromeUtils.import( "chrome://remote/content/server/HTTPD.jsm" ); -const { Log } = ChromeUtils.import("chrome://remote/content/shared/Log.jsm"); +const { Log } = ChromeUtils.import("chrome://remote/content/Log.jsm"); const { Protocol } = ChromeUtils.import("chrome://remote/content/Protocol.jsm"); const { RemoteAgentError } = ChromeUtils.import( "chrome://remote/content/Error.jsm" diff --git a/remote/shared/Log.jsm b/remote/Log.jsm similarity index 100% rename from remote/shared/Log.jsm rename to remote/Log.jsm diff --git a/remote/components/RemoteAgent.jsm b/remote/RemoteAgent.jsm similarity index 98% rename from remote/components/RemoteAgent.jsm rename to remote/RemoteAgent.jsm index e711c0530c63..e06067bfac22 100644 --- a/remote/components/RemoteAgent.jsm +++ b/remote/RemoteAgent.jsm @@ -14,7 +14,7 @@ const { XPCOMUtils } = ChromeUtils.import( XPCOMUtils.defineLazyModuleGetters(this, { HttpServer: "chrome://remote/content/server/HTTPD.jsm", JSONHandler: "chrome://remote/content/JSONHandler.jsm", - Log: "chrome://remote/content/shared/Log.jsm", + Log: "chrome://remote/content/Log.jsm", Preferences: "resource://gre/modules/Preferences.jsm", RecommendedPreferences: "chrome://remote/content/RecommendedPreferences.jsm", TargetList: "chrome://remote/content/targets/TargetList.jsm", diff --git a/remote/shared/Sync.jsm b/remote/Sync.jsm similarity index 100% rename from remote/shared/Sync.jsm rename to remote/Sync.jsm diff --git a/remote/shared/TabManager.jsm b/remote/TabManager.jsm similarity index 100% rename from remote/shared/TabManager.jsm rename to remote/TabManager.jsm diff --git a/remote/shared/WindowManager.jsm b/remote/WindowManager.jsm similarity index 87% rename from remote/shared/WindowManager.jsm rename to remote/WindowManager.jsm index f9c45b457fcd..c22feee36f15 100644 --- a/remote/shared/WindowManager.jsm +++ b/remote/WindowManager.jsm @@ -7,9 +7,7 @@ var EXPORTED_SYMBOLS = ["WindowManager"]; const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm"); -const { EventPromise } = ChromeUtils.import( - "chrome://remote/content/shared/Sync.jsm" -); +const { EventPromise } = ChromeUtils.import("chrome://remote/content/Sync.jsm"); var WindowManager = { async focus(window) { diff --git a/remote/components/components.conf b/remote/components.conf similarity index 91% rename from remote/components/components.conf rename to remote/components.conf index b66a38958d6b..b7f827a128b6 100644 --- a/remote/components/components.conf +++ b/remote/components.conf @@ -6,7 +6,7 @@ Classes = [ { "cid": "{8f685a9d-8181-46d6-a71d-869289099c6d}", "contract_ids": ["@mozilla.org/remote/agent;1"], - "jsm": "chrome://remote/content/components/RemoteAgent.jsm", + "jsm": "chrome://remote/content/RemoteAgent.jsm", "constructor": "RemoteAgentFactory", }, { diff --git a/remote/components/moz.build b/remote/components/moz.build deleted file mode 100644 index c278b0398a46..000000000000 --- a/remote/components/moz.build +++ /dev/null @@ -1,12 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. - -DIRS += [ - "rust", -] - -XPIDL_MODULE = "remote" -XPIDL_SOURCES += ["nsIRemoteAgent.idl"] - -XPCOM_MANIFESTS += ["components.conf"] diff --git a/remote/components/rust/Cargo.toml b/remote/components/rust/Cargo.toml deleted file mode 100644 index 81ff24b65414..000000000000 --- a/remote/components/rust/Cargo.toml +++ /dev/null @@ -1,12 +0,0 @@ -[package] -name = "remote" -version = "0.1.0" - -[dependencies] -http = "0.2" -libc = "0.2" -log = "0.4" -nserror = { path = "../../../xpcom/rust/nserror" } -nsstring = { path = "../../../xpcom/rust/nsstring" } -thiserror = "1" -xpcom = { path = "../../../xpcom/rust/xpcom" } diff --git a/remote/domains/content/Runtime.jsm b/remote/domains/content/Runtime.jsm index d62f270dd059..2613de742abb 100644 --- a/remote/domains/content/Runtime.jsm +++ b/remote/domains/content/Runtime.jsm @@ -18,9 +18,7 @@ const { ContentProcessDomain } = ChromeUtils.import( const { ExecutionContext } = ChromeUtils.import( "chrome://remote/content/domains/content/runtime/ExecutionContext.jsm" ); -const { executeSoon } = ChromeUtils.import( - "chrome://remote/content/shared/Sync.jsm" -); +const { executeSoon } = ChromeUtils.import("chrome://remote/content/Sync.jsm"); // Import the `Debugger` constructor in the current scope addDebuggerToGlobal(Cu.getGlobalForObject(this)); diff --git a/remote/domains/parent/Page.jsm b/remote/domains/parent/Page.jsm index ec8cf4df27c3..c7b943f3231e 100644 --- a/remote/domains/parent/Page.jsm +++ b/remote/domains/parent/Page.jsm @@ -33,14 +33,12 @@ const { UnsupportedError } = ChromeUtils.import( const { streamRegistry } = ChromeUtils.import( "chrome://remote/content/domains/parent/IO.jsm" ); -const { PollPromise } = ChromeUtils.import( - "chrome://remote/content/shared/Sync.jsm" -); +const { PollPromise } = ChromeUtils.import("chrome://remote/content/Sync.jsm"); const { TabManager } = ChromeUtils.import( - "chrome://remote/content/shared/TabManager.jsm" + "chrome://remote/content/TabManager.jsm" ); const { WindowManager } = ChromeUtils.import( - "chrome://remote/content/shared/WindowManager.jsm" + "chrome://remote/content/WindowManager.jsm" ); const MAX_CANVAS_DIMENSION = 32767; diff --git a/remote/domains/parent/Target.jsm b/remote/domains/parent/Target.jsm index 086a2c7c10e0..0d572cd517d3 100644 --- a/remote/domains/parent/Target.jsm +++ b/remote/domains/parent/Target.jsm @@ -26,13 +26,13 @@ const { MainProcessTarget } = ChromeUtils.import( "chrome://remote/content/targets/MainProcessTarget.jsm" ); const { TabManager } = ChromeUtils.import( - "chrome://remote/content/shared/TabManager.jsm" + "chrome://remote/content/TabManager.jsm" ); const { TabSession } = ChromeUtils.import( "chrome://remote/content/sessions/TabSession.jsm" ); const { WindowManager } = ChromeUtils.import( - "chrome://remote/content/shared/WindowManager.jsm" + "chrome://remote/content/WindowManager.jsm" ); let browserContextIds = 1; diff --git a/remote/components/rust/src/error.rs b/remote/error.rs similarity index 100% rename from remote/components/rust/src/error.rs rename to remote/error.rs diff --git a/remote/jar.mn b/remote/jar.mn index 187689a4d813..44cecc124b7a 100644 --- a/remote/jar.mn +++ b/remote/jar.mn @@ -4,14 +4,19 @@ remote.jar: % content remote %content/ - content/components/RemoteAgent.jsm (components/RemoteAgent.jsm) + content/RemoteAgent.jsm (RemoteAgent.jsm) content/Connection.jsm (Connection.jsm) content/Error.jsm (Error.jsm) + content/Format.jsm (Format.jsm) content/JSONHandler.jsm (JSONHandler.jsm) + content/Log.jsm (Log.jsm) content/Protocol.jsm (Protocol.jsm) content/RecommendedPreferences.jsm (RecommendedPreferences.jsm) content/StreamRegistry.jsm (StreamRegistry.jsm) + content/Sync.jsm (Sync.jsm) + content/TabManager.jsm (TabManager.jsm) + content/WindowManager.jsm (WindowManager.jsm) # observers content/observers/ChannelEventSink.jsm (observers/ChannelEventSink.jsm) @@ -63,12 +68,5 @@ remote.jar: content/server/WebSocketHandshake.jsm (server/WebSocketHandshake.jsm) content/server/WebSocketTransport.jsm (server/WebSocketTransport.jsm) - # shared modules - content/shared/Format.jsm (shared/Format.jsm) - content/shared/Log.jsm (shared/Log.jsm) - content/shared/Sync.jsm (shared/Sync.jsm) - content/shared/TabManager.jsm (shared/TabManager.jsm) - content/shared/WindowManager.jsm (shared/WindowManager.jsm) - # imports from external folders content/external/EventUtils.js (../testing/mochitest/tests/SimpleTest/EventUtils.js) diff --git a/remote/components/rust/src/lib.rs b/remote/lib.rs similarity index 97% rename from remote/components/rust/src/lib.rs rename to remote/lib.rs index 64875397aebc..ddc95cc584e6 100644 --- a/remote/components/rust/src/lib.rs +++ b/remote/lib.rs @@ -11,8 +11,8 @@ extern crate thiserror; extern crate xpcom; mod error; -mod handler; mod remote_agent; +mod startup; pub use crate::error::RemoteAgentError; pub use crate::remote_agent::{RemoteAgent, RemoteAgentResult, DEFAULT_HOST, DEFAULT_PORT}; diff --git a/remote/moz.build b/remote/moz.build index 8de96753da08..f91a59b39a58 100644 --- a/remote/moz.build +++ b/remote/moz.build @@ -3,12 +3,16 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. DIRS += [ - "components", + "startup", "test", ] +XPCOM_MANIFESTS += ["components.conf"] JAR_MANIFESTS += ["jar.mn"] +XPIDL_MODULE = "remote" +XPIDL_SOURCES += ["nsIRemoteAgent.idl"] + with Files("**"): BUG_COMPONENT = ("Remote Protocol", "Agent") with Files("domains/**/Emulation.jsm"): diff --git a/remote/components/nsIRemoteAgent.idl b/remote/nsIRemoteAgent.idl similarity index 100% rename from remote/components/nsIRemoteAgent.idl rename to remote/nsIRemoteAgent.idl diff --git a/remote/observers/ContextObserver.jsm b/remote/observers/ContextObserver.jsm index 6f5c70c88959..e98f94ebbb61 100644 --- a/remote/observers/ContextObserver.jsm +++ b/remote/observers/ContextObserver.jsm @@ -30,9 +30,7 @@ const { EventEmitter } = ChromeUtils.import( ); const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm"); -const { executeSoon } = ChromeUtils.import( - "chrome://remote/content/shared/Sync.jsm" -); +const { executeSoon } = ChromeUtils.import("chrome://remote/content/Sync.jsm"); class ContextObserver { constructor(chromeEventHandler) { diff --git a/remote/observers/TargetObserver.jsm b/remote/observers/TargetObserver.jsm index f1110bfc78ff..9e33772b95d0 100644 --- a/remote/observers/TargetObserver.jsm +++ b/remote/observers/TargetObserver.jsm @@ -6,9 +6,7 @@ var EXPORTED_SYMBOLS = ["TabObserver"]; -const { EventPromise } = ChromeUtils.import( - "chrome://remote/content/shared/Sync.jsm" -); +const { EventPromise } = ChromeUtils.import("chrome://remote/content/Sync.jsm"); const { EventEmitter } = ChromeUtils.import( "resource://gre/modules/EventEmitter.jsm" ); diff --git a/remote/components/rust/src/remote_agent.rs b/remote/remote_agent.rs similarity index 100% rename from remote/components/rust/src/remote_agent.rs rename to remote/remote_agent.rs diff --git a/remote/server/WebSocketHandshake.jsm b/remote/server/WebSocketHandshake.jsm index dbcfd0b9bb74..0706b717b513 100644 --- a/remote/server/WebSocketHandshake.jsm +++ b/remote/server/WebSocketHandshake.jsm @@ -15,9 +15,7 @@ const { XPCOMUtils } = ChromeUtils.import( "resource://gre/modules/XPCOMUtils.jsm" ); -const { executeSoon } = ChromeUtils.import( - "chrome://remote/content/shared/Sync.jsm" -); +const { executeSoon } = ChromeUtils.import("chrome://remote/content/Sync.jsm"); XPCOMUtils.defineLazyGetter(this, "WebSocket", () => { return Services.appShell.hiddenDOMWindow.WebSocket; diff --git a/remote/components/rust/RemoteAgentHandler.cpp b/remote/startup/RemoteAgentHandler.cpp similarity index 100% rename from remote/components/rust/RemoteAgentHandler.cpp rename to remote/startup/RemoteAgentHandler.cpp diff --git a/remote/components/rust/RemoteAgentHandler.h b/remote/startup/RemoteAgentHandler.h similarity index 100% rename from remote/components/rust/RemoteAgentHandler.h rename to remote/startup/RemoteAgentHandler.h diff --git a/remote/components/rust/src/handler.rs b/remote/startup/handler.rs similarity index 100% rename from remote/components/rust/src/handler.rs rename to remote/startup/handler.rs diff --git a/remote/startup/mod.rs b/remote/startup/mod.rs new file mode 100644 index 000000000000..30f7fee742d5 --- /dev/null +++ b/remote/startup/mod.rs @@ -0,0 +1,5 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +mod handler; diff --git a/remote/components/rust/moz.build b/remote/startup/moz.build similarity index 100% rename from remote/components/rust/moz.build rename to remote/startup/moz.build diff --git a/remote/targets/MainProcessTarget.jsm b/remote/targets/MainProcessTarget.jsm index aaa9eebc6990..f723edc93a18 100644 --- a/remote/targets/MainProcessTarget.jsm +++ b/remote/targets/MainProcessTarget.jsm @@ -13,7 +13,7 @@ const { MainProcessSession } = ChromeUtils.import( "chrome://remote/content/sessions/MainProcessSession.jsm" ); const { RemoteAgent } = ChromeUtils.import( - "chrome://remote/content/components/RemoteAgent.jsm" + "chrome://remote/content/RemoteAgent.jsm" ); /** diff --git a/remote/targets/TabTarget.jsm b/remote/targets/TabTarget.jsm index 381b519a5f0c..fd672677aad6 100644 --- a/remote/targets/TabTarget.jsm +++ b/remote/targets/TabTarget.jsm @@ -17,7 +17,7 @@ const { XPCOMUtils } = ChromeUtils.import( "resource://gre/modules/XPCOMUtils.jsm" ); const { RemoteAgent } = ChromeUtils.import( - "chrome://remote/content/components/RemoteAgent.jsm" + "chrome://remote/content/RemoteAgent.jsm" ); XPCOMUtils.defineLazyServiceGetter( diff --git a/remote/test/browser/head.js b/remote/test/browser/head.js index 4331dfc74394..d91fc67bbaec 100644 --- a/remote/test/browser/head.js +++ b/remote/test/browser/head.js @@ -5,12 +5,12 @@ const { OS } = ChromeUtils.import("resource://gre/modules/osfile.jsm"); -const { RemoteAgent } = ChromeUtils.import( - "chrome://remote/content/components/RemoteAgent.jsm" -); const { RemoteAgentError } = ChromeUtils.import( "chrome://remote/content/Error.jsm" ); +const { RemoteAgent } = ChromeUtils.import( + "chrome://remote/content/RemoteAgent.jsm" +); const TIMEOUT_MULTIPLIER = SpecialPowers.isDebugBuild ? 4 : 1; const TIMEOUT_EVENTS = 1000 * TIMEOUT_MULTIPLIER; diff --git a/remote/test/browser/page/head.js b/remote/test/browser/page/head.js index 861842760ec7..311a8148f107 100644 --- a/remote/test/browser/page/head.js +++ b/remote/test/browser/page/head.js @@ -17,9 +17,7 @@ const { setTimeout, } = ChromeUtils.import("resource://gre/modules/Timer.jsm"); -const { PollPromise } = ChromeUtils.import( - "chrome://remote/content/shared/Sync.jsm" -); +const { PollPromise } = ChromeUtils.import("chrome://remote/content/Sync.jsm"); const TIMEOUT_SET_HISTORY_INDEX = 1000; diff --git a/remote/test/unit/test_Format.js b/remote/test/unit/test_Format.js index e08f40725d52..1787bdb49187 100644 --- a/remote/test/unit/test_Format.js +++ b/remote/test/unit/test_Format.js @@ -4,7 +4,7 @@ "use strict"; const { truncate, pprint } = ChromeUtils.import( - "chrome://remote/content/shared/Format.jsm" + "chrome://remote/content/Format.jsm" ); const MAX_STRING_LENGTH = 250; diff --git a/remote/test/unit/test_Sync.js b/remote/test/unit/test_Sync.js index e6434adff281..36150c4cc34d 100644 --- a/remote/test/unit/test_Sync.js +++ b/remote/test/unit/test_Sync.js @@ -4,9 +4,7 @@ const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm"); -const { PollPromise } = ChromeUtils.import( - "chrome://remote/content/shared/Sync.jsm" -); +const { PollPromise } = ChromeUtils.import("chrome://remote/content/Sync.jsm"); /** * Mimic a DOM node for listening for events. @@ -107,7 +105,7 @@ add_test(function test_executeSoon_callback() { // executeSoon() is already defined for xpcshell in head.js. As such import // our implementation into a custom namespace. let sync = {}; - ChromeUtils.import("chrome://remote/content/shared/Sync.jsm", sync); + ChromeUtils.import("chrome://remote/content/Sync.jsm", sync); for (let func of ["foo", null, true, [], {}]) { Assert.throws(() => sync.executeSoon(func), /TypeError/); diff --git a/toolkit/library/rust/shared/Cargo.toml b/toolkit/library/rust/shared/Cargo.toml index d7f40dd1eaab..ea449ef06f94 100644 --- a/toolkit/library/rust/shared/Cargo.toml +++ b/toolkit/library/rust/shared/Cargo.toml @@ -47,7 +47,7 @@ neqo_glue = { path = "../../../../netwerk/socket/neqo_glue" } rlbox_lucet_sandbox = { version = "0.1.0", optional = true } wgpu_bindings = { path = "../../../../gfx/wgpu_bindings", optional = true } mapped_hyph = { git = "https://github.com/jfkthame/mapped_hyph.git", rev = "578d7058a638c955a597f035ce1a11049c3021d7" } -remote = { path = "../../../../remote/components/rust", optional = true } +remote = { path = "../../../../remote", optional = true } fog_control = { path = "../../../components/glean", optional = true } app_services_logger = { path = "../../../../services/common/app_services_logger" } http_sfv = { path = "../../../../netwerk/base/http-sfv" }