Merge pull request #309 from gnh1201/dev
Some checks failed
CodeQL / Analyze (javascript) (push) Has been cancelled
Deploy Jekyll with GitHub Pages dependencies preinstalled / build (push) Has been cancelled
Deploy Jekyll with GitHub Pages dependencies preinstalled / deploy (push) Has been cancelled

Improve error handling in sendPageRPC and getEvaluatedValue
This commit is contained in:
Namhyeon Go 2025-08-11 04:58:36 +09:00 committed by GitHub
commit bb1078dca8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -422,13 +422,13 @@ var ChromeObject = function() {
};
this.sendPageRPC = function(method, params) {
var result = null;
var response = null;
try {
if (this.pageId != "") {
var url = "http://localhost:3000/devtools/page/" + this.pageId + "?port=" + this.debuggingPort;
try {
result = HTTP.create()
response = HTTP.create()
.setContentType("application/json")
.setDataType("json")
.open("POST", url)
@ -440,9 +440,21 @@ var ChromeObject = function() {
.send()
.responseBody
;
// response if error
if ("result" in response) {
(function(r) {
if ("subtype" in r && r.subtype == "error") {
console.warn(r.description);
}
})(response.result.result);
}
} catch (e) {
console.warn(e.message);
result = {};
response = {
error: true,
message: e && e.message ? e.message : "Request failed"
};
}
pageEventId.set(pageEventId.get() + 1);
@ -450,7 +462,7 @@ var ChromeObject = function() {
} else {
this.setPageId(null);
if (this.pageId != "") {
result = this.sendPageRPC(method, params);
response = this.sendPageRPC(method, params);
} else {
console.error("Page not found");
}
@ -459,7 +471,7 @@ var ChromeObject = function() {
console.log("ChromeObject.sendPageRPC() ->", e.message);
}
return result;
return response;
};
this.navigate = function(url) {
@ -495,7 +507,9 @@ var ChromeObject = function() {
this.getEvaluatedValue = function(expression) {
try {
var response = this.evaluate(expression);
return response.result.result.value;
return (function(r) {
return ("value" in r ? r.value : "");
})(response.result.result);
} catch (e) {
console.error("ChromeObject.getEvaluatedValue() ->", e.message);
return "";
@ -1493,7 +1507,7 @@ exports.startDebugInPrivate = function(url, proxy, profileName, debuggingPort, i
exports.publisherName = publisherName;
exports.VERSIONINFO = "Chrome Web Browser Debugging Interface (chrome.js) version 0.5";
exports.VERSIONINFO = "Chrome Web Browser Debugging Interface (chrome.js) version 0.5.2";
exports.AUTHOR = "gnh1201@catswords.re.kr";
exports.global = global;
exports.require = global.require;