 +
 diff --git a/testing/juggler/content/PageAgent.js b/testing/juggler/content/PageAgent.js
 new file mode 100644
-index 0000000000000000000000000000000000000000..03c4c9717148169110f7e7d19306a76984ed4860
+index 0000000000000000000000000000000000000000..37ab5f56739cfd16200a4ada9f4cf83436688eba
 --- /dev/null
 +++ b/testing/juggler/content/PageAgent.js
-@@ -0,0 +1,721 @@
+@@ -0,0 +1,843 @@
 +"use strict";
 +const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
 +const Ci = Components.interfaces;

+}
+
+class ExecutionContext {
+  constructor(runtime, domWindow, global, auxData) {
+    this._runtime = runtime;
+    this._domWindow = domWindow;
+    this._global = global;
+    this._remoteObjects = new Map();
+    this._id = helper.generateId();
+    this._auxData = auxData;
+    this._jsonStringifyObject = this._global.executeInGlobal(`((stringify, dateProto, object) => {
+      const oldToJson = dateProto.toJSON;

+this.NetworkHandler = NetworkHandler;
diff --git a/testing/juggler/protocol/PageHandler.js b/testing/juggler/protocol/PageHandler.js
new file mode 100644
index 0000000000000000000000000000000000000000..23a32be2200e90e2e05d31aec85874a829cb1bbe
--- /dev/null
+++ b/testing/juggler/protocol/PageHandler.js
@@ -0,0 +1,285 @@
+"use strict";
+
+const {Helper} = ChromeUtils.import('chrome://juggler/content/Helper.js');
