[DevTools] improve error handling in extension (#26068)

## Summary

This is to fix some edge cases I recently observed when developing and
using the extension:
- When you reload the page, there's a chance that a port (most likely
the devtools one) is not properly unloaded. In this case, the React
DevTools will stop working unless you create a new tab.
- For unknown reasons, Chrome sometimes spins up two service worker
processes. In this case, an error will be thrown "duplicate ID when
registering content script" and sometimes interrupt the execution of the
rest of service worker.

This is an attempt to make the logic more robust
- Automatically shutting down the double pipe if the message fails, and
allowing the runtime to rebuild the double pipe.
- Log the error message so Chrome believes we've handled it and will not
interrupt the execution.

This also seems to be helpful in fixing #25806.

DiffTrain build for [c12194f748](https://github.com/facebook/react/commit/c12194f7485f298fadc1e51cfffb93e63d61ad96)
[View git log for this commit](https://github.com/facebook/react/commits/c12194f7485f298fadc1e51cfffb93e63d61ad96)
This commit is contained in:
mondaychen
2023-02-07 13:06:42 +00:00
parent e52c53880b
commit c2b52ad54b
28 changed files with 42 additions and 42 deletions
+1 -1
View File
@@ -1 +1 @@
03a216070dfe14ff8fecaee2fa95ca6d6e94846d
c12194f7485f298fadc1e51cfffb93e63d61ad96
+1 -1
View File
@@ -1 +1 @@
03a216070dfe14ff8fecaee2fa95ca6d6e94846d
c12194f7485f298fadc1e51cfffb93e63d61ad96
+1 -1
View File
@@ -27,7 +27,7 @@ if (
}
"use strict";
var ReactVersion = "18.3.0-www-classic-03a216070-20230206";
var ReactVersion = "18.3.0-www-classic-c12194f74-20230207";
// ATTENTION
// When adding new symbols to this file,
+1 -1
View File
@@ -27,7 +27,7 @@ if (
}
"use strict";
var ReactVersion = "18.3.0-www-modern-03a216070-20230206";
var ReactVersion = "18.3.0-www-modern-c12194f74-20230207";
// ATTENTION
// When adding new symbols to this file,
+1 -1
View File
@@ -646,4 +646,4 @@ exports.useSyncExternalStore = function (
);
};
exports.useTransition = useTransition;
exports.version = "18.3.0-www-classic-03a216070-20230206";
exports.version = "18.3.0-www-classic-c12194f74-20230207";
+1 -1
View File
@@ -638,4 +638,4 @@ exports.useSyncExternalStore = function (
);
};
exports.useTransition = useTransition;
exports.version = "18.3.0-www-modern-03a216070-20230206";
exports.version = "18.3.0-www-modern-c12194f74-20230207";
@@ -657,7 +657,7 @@ exports.useSyncExternalStore = function (
);
};
exports.useTransition = useTransition;
exports.version = "18.3.0-www-classic-03a216070-20230206";
exports.version = "18.3.0-www-classic-c12194f74-20230207";
/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
if (
@@ -649,7 +649,7 @@ exports.useSyncExternalStore = function (
);
};
exports.useTransition = useTransition;
exports.version = "18.3.0-www-modern-03a216070-20230206";
exports.version = "18.3.0-www-modern-c12194f74-20230207";
/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
if (
@@ -69,7 +69,7 @@ function _assertThisInitialized(self) {
return self;
}
var ReactVersion = "18.3.0-www-classic-03a216070-20230206";
var ReactVersion = "18.3.0-www-classic-c12194f74-20230207";
var LegacyRoot = 0;
var ConcurrentRoot = 1;
+1 -1
View File
@@ -69,7 +69,7 @@ function _assertThisInitialized(self) {
return self;
}
var ReactVersion = "18.3.0-www-modern-03a216070-20230206";
var ReactVersion = "18.3.0-www-modern-c12194f74-20230207";
var LegacyRoot = 0;
var ConcurrentRoot = 1;
@@ -9845,7 +9845,7 @@ var slice = Array.prototype.slice,
return null;
},
bundleType: 0,
version: "18.3.0-www-classic-03a216070-20230206",
version: "18.3.0-www-classic-c12194f74-20230207",
rendererPackageName: "react-art"
};
var internals$jscomp$inline_1318 = {
@@ -9876,7 +9876,7 @@ var internals$jscomp$inline_1318 = {
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "18.3.0-next-03a216070-20230206"
reconcilerVersion: "18.3.0-next-c12194f74-20230207"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_1319 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -9510,7 +9510,7 @@ var slice = Array.prototype.slice,
return null;
},
bundleType: 0,
version: "18.3.0-www-modern-03a216070-20230206",
version: "18.3.0-www-modern-c12194f74-20230207",
rendererPackageName: "react-art"
};
var internals$jscomp$inline_1309 = {
@@ -9541,7 +9541,7 @@ var internals$jscomp$inline_1309 = {
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "18.3.0-next-03a216070-20230206"
reconcilerVersion: "18.3.0-next-c12194f74-20230207"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_1310 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -42695,7 +42695,7 @@ function createFiberRoot(
return root;
}
var ReactVersion = "18.3.0-www-classic-03a216070-20230206";
var ReactVersion = "18.3.0-www-classic-c12194f74-20230207";
function createPortal(
children,
+1 -1
View File
@@ -42419,7 +42419,7 @@ function createFiberRoot(
return root;
}
var ReactVersion = "18.3.0-www-modern-03a216070-20230206";
var ReactVersion = "18.3.0-www-modern-c12194f74-20230207";
function createPortal(
children,
@@ -15576,7 +15576,7 @@ Internals.Events = [
var devToolsConfig$jscomp$inline_1750 = {
findFiberByHostInstance: getClosestInstanceFromNode,
bundleType: 0,
version: "18.3.0-www-classic-03a216070-20230206",
version: "18.3.0-www-classic-c12194f74-20230207",
rendererPackageName: "react-dom"
};
var internals$jscomp$inline_2134 = {
@@ -15606,7 +15606,7 @@ var internals$jscomp$inline_2134 = {
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "18.3.0-next-03a216070-20230206"
reconcilerVersion: "18.3.0-next-c12194f74-20230207"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_2135 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -15854,4 +15854,4 @@ exports.unstable_renderSubtreeIntoContainer = function (
);
};
exports.unstable_runWithPriority = runWithPriority;
exports.version = "18.3.0-next-03a216070-20230206";
exports.version = "18.3.0-next-c12194f74-20230207";
@@ -15136,7 +15136,7 @@ Internals.Events = [
var devToolsConfig$jscomp$inline_1718 = {
findFiberByHostInstance: getClosestInstanceFromNode,
bundleType: 0,
version: "18.3.0-www-modern-03a216070-20230206",
version: "18.3.0-www-modern-c12194f74-20230207",
rendererPackageName: "react-dom"
};
var internals$jscomp$inline_2109 = {
@@ -15167,7 +15167,7 @@ var internals$jscomp$inline_2109 = {
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "18.3.0-next-03a216070-20230206"
reconcilerVersion: "18.3.0-next-c12194f74-20230207"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_2110 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -15355,4 +15355,4 @@ exports.unstable_flushControlled = function (fn) {
}
};
exports.unstable_runWithPriority = runWithPriority;
exports.version = "18.3.0-next-03a216070-20230206";
exports.version = "18.3.0-next-c12194f74-20230207";
@@ -16346,7 +16346,7 @@ Internals.Events = [
var devToolsConfig$jscomp$inline_1824 = {
findFiberByHostInstance: getClosestInstanceFromNode,
bundleType: 0,
version: "18.3.0-www-classic-03a216070-20230206",
version: "18.3.0-www-classic-c12194f74-20230207",
rendererPackageName: "react-dom"
};
(function (internals) {
@@ -16390,7 +16390,7 @@ var devToolsConfig$jscomp$inline_1824 = {
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "18.3.0-next-03a216070-20230206"
reconcilerVersion: "18.3.0-next-c12194f74-20230207"
});
assign(Internals, {
ReactBrowserEventEmitter: {
@@ -16625,7 +16625,7 @@ exports.unstable_renderSubtreeIntoContainer = function (
);
};
exports.unstable_runWithPriority = runWithPriority;
exports.version = "18.3.0-next-03a216070-20230206";
exports.version = "18.3.0-next-c12194f74-20230207";
/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
if (
@@ -15896,7 +15896,7 @@ Internals.Events = [
var devToolsConfig$jscomp$inline_1792 = {
findFiberByHostInstance: getClosestInstanceFromNode,
bundleType: 0,
version: "18.3.0-www-modern-03a216070-20230206",
version: "18.3.0-www-modern-c12194f74-20230207",
rendererPackageName: "react-dom"
};
(function (internals) {
@@ -15941,7 +15941,7 @@ var devToolsConfig$jscomp$inline_1792 = {
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "18.3.0-next-03a216070-20230206"
reconcilerVersion: "18.3.0-next-c12194f74-20230207"
});
exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = Internals;
exports.createPortal = function (children, container) {
@@ -16116,7 +16116,7 @@ exports.unstable_flushControlled = function (fn) {
}
};
exports.unstable_runWithPriority = runWithPriority;
exports.version = "18.3.0-next-03a216070-20230206";
exports.version = "18.3.0-next-c12194f74-20230207";
/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
if (
@@ -19,7 +19,7 @@ if (__DEV__) {
var React = require("react");
var ReactDOM = require("react-dom");
var ReactVersion = "18.3.0-www-classic-03a216070-20230206";
var ReactVersion = "18.3.0-www-classic-c12194f74-20230207";
// This refers to a WWW module.
var warningWWW = require("warning");
@@ -19,7 +19,7 @@ if (__DEV__) {
var React = require("react");
var ReactDOM = require("react-dom");
var ReactVersion = "18.3.0-www-modern-03a216070-20230206";
var ReactVersion = "18.3.0-www-modern-c12194f74-20230207";
// This refers to a WWW module.
var warningWWW = require("warning");
@@ -3634,4 +3634,4 @@ exports.renderToString = function (children, options) {
'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server'
);
};
exports.version = "18.3.0-www-classic-03a216070-20230206";
exports.version = "18.3.0-www-classic-c12194f74-20230207";
@@ -3548,4 +3548,4 @@ exports.renderToString = function (children, options) {
'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server'
);
};
exports.version = "18.3.0-www-modern-03a216070-20230206";
exports.version = "18.3.0-www-modern-c12194f74-20230207";
@@ -31212,7 +31212,7 @@ function createFiberRoot(
return root;
}
var ReactVersion = "18.3.0-www-classic-03a216070-20230206";
var ReactVersion = "18.3.0-www-classic-c12194f74-20230207";
function createPortal(
children,
@@ -38514,7 +38514,7 @@ function createFiberRoot(
return root;
}
var ReactVersion = "18.3.0-www-modern-03a216070-20230206";
var ReactVersion = "18.3.0-www-modern-c12194f74-20230207";
function createPortal(
children,
@@ -11373,7 +11373,7 @@ Internals.Events = [
var devToolsConfig$jscomp$inline_1518 = {
findFiberByHostInstance: getClosestInstanceFromNode,
bundleType: 0,
version: "18.3.0-www-classic-03a216070-20230206",
version: "18.3.0-www-classic-c12194f74-20230207",
rendererPackageName: "react-dom"
};
var internals$jscomp$inline_2047 = {
@@ -11403,7 +11403,7 @@ var internals$jscomp$inline_2047 = {
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "18.3.0-next-03a216070-20230206"
reconcilerVersion: "18.3.0-next-c12194f74-20230207"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_2048 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -14904,4 +14904,4 @@ exports.unstable_renderSubtreeIntoContainer = function (
);
};
exports.unstable_runWithPriority = runWithPriority;
exports.version = "18.3.0-next-03a216070-20230206";
exports.version = "18.3.0-next-c12194f74-20230207";
@@ -14007,7 +14007,7 @@ Internals.Events = [
var devToolsConfig$jscomp$inline_1673 = {
findFiberByHostInstance: getClosestInstanceFromNode,
bundleType: 0,
version: "18.3.0-www-modern-03a216070-20230206",
version: "18.3.0-www-modern-c12194f74-20230207",
rendererPackageName: "react-dom"
};
var internals$jscomp$inline_2072 = {
@@ -14038,7 +14038,7 @@ var internals$jscomp$inline_2072 = {
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "18.3.0-next-03a216070-20230206"
reconcilerVersion: "18.3.0-next-c12194f74-20230207"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_2073 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -14369,4 +14369,4 @@ exports.unstable_flushControlled = function (fn) {
}
};
exports.unstable_runWithPriority = runWithPriority;
exports.version = "18.3.0-next-03a216070-20230206";
exports.version = "18.3.0-next-c12194f74-20230207";
@@ -23911,7 +23911,7 @@ function createFiberRoot(
return root;
}
var ReactVersion = "18.3.0-www-classic-03a216070-20230206";
var ReactVersion = "18.3.0-www-classic-c12194f74-20230207";
// Might add PROFILE later.
@@ -23911,7 +23911,7 @@ function createFiberRoot(
return root;
}
var ReactVersion = "18.3.0-www-modern-03a216070-20230206";
var ReactVersion = "18.3.0-www-modern-c12194f74-20230207";
// Might add PROFILE later.