Chrome Remote Debugging Recieves 404 over Websocket

Hi,

I had quite some Problems to use the Chrome IDEA Plugin for JavaScript debugging in combination with IDEA.

One time I had opened a Stackoverflow Post https://stackoverflow.com/questions/44971417/idea-javascript-chrome-remote-debugging 

The Problem currently persists, even after update to IntelliJ IDEA 2017.2.3, Build #IU-172.3968.16, built on August 21, 2017.

Chrome Version 59.0.3071.115.

The request on the address http://127.0.0.1:63342/browserConnection/buildInfo to get the IntelliJ Version returns a 200 with following content:

{"name":"IntelliJ IDEA 2017.2.3","productName":"IDEA","baselineVersion":172,"buildNumber":"172.3968.16"}

But the next Request via Websocket to the jsonRpc Interface failed with a 404:

Request URL:ws://127.0.0.1:63342/jsonRpc?v=2.0.9&f=Mozilla%2F5.0%20(Windows%20NT%206.1%3B%20Win64%3B%20x64)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F59.0.3071.115%20Safari%2F537.36
Request Method:GET
Status Code:404 Not Found

HTTP/1.1 404 Not Found
content-type: text/html
content-length: 153
server: IntelliJ IDEA 2017.2.3
date: Fri, 15 Sep 2017 11:10:32 GMT
X-Frame-Options: SameOrigin
X-Content-Type-Options: nosniff
x-xss-protection: 1; mode=block
access-control-allow-origin: chrome-extension://enbbgmekhbhhajgjdbphpcieodgcogdm
vary: origin
access-control-allow-credentials: true

 

The JavaScript Console throws following messages:

System latest retrieved from cache for IntelliJ IDEA 2017.2.3 (127.0.0.1:63342)

socket.kt:50 WebSocket connection to 'ws://127.0.0.1:63342/jsonRpc?v=2.0.9&f=Mozilla%2F5.0%20(Windows%20NT%206.1%3B%20Win64%3B%20x64)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F59.0.3071.115%20Safari%2F537.36' failed: Error during WebSocket handshake: Unexpected response code: 404
value @ socket.kt:50
value @ socket.kt:69
value @ platform.kt:32
value @ chrome.kt:23
$f9 @ console.kt:57
value @ bootstrap.kt:162
$fa @ bootstrap.kt:118
value @ bootstrap.kt:148
$f2 @ bootstrap.kt:46
$f0 @ options.kt:12
$f0 @ chrome-jb.kt:38
safeCallbackApply @ extensions::uncaught_exception_handler:27
handleResponse @ extensions::sendRequest:67

logging.kt:51 onerror [object Event]
value @ logging.kt:51
$f4 @ socket.kt:92

 

(empty line split between different messages)

 

IDEA Log stands following line:

2017-09-15 16:55:27,549 [   5008]   INFO - rains.ide.BuiltInServerManager - built-in server started, port 63342

 

The PC where IDEA runs is in a cooperate Intranet without Access to the Internet. (Which cause some UnkownHostExceptions/ConnectionRefusedException and/or SSLException because of own signed certificates)

10 comments
Comment actions Permalink

I wonder what is `chrome-extension://enbbgmekhbhhajgjdbphpcieodgcogdm`? And why is it returned as access-control-allow-origin header?

0
Comment actions Permalink

chrome-extension://enbb... Is the Chrome infernal URL to the IDEA extension. Under ./options.HTML is für examplr the configuration where you can set the Host IP and port.

 

I didn't inspect the Chrome Extension itself very much because I downloaded the crx from the Chrome Webstore directly and then extract it to use the extension in a non-Internet-access Intranet.

0
Comment actions Permalink

Is there anything I could do to help you further? I must see what kind of logs I can provide ( Security and Information's Disclosure of this Company ;) )

0
Comment actions Permalink

>chrome-extension://enbb... Is the Chrome infernal URL to the IDEA extension

really? It's chrome-extension://hmhgeddbohgjknpmjagkdomcpobmllji, not chrome-extension://enbbgmekhbhhajgjdbphpcieodgcogdm

Installing extension via crx extracting is not a supported way to install it. But, anyway, extension ID doesn't change when installing this way

0
Comment actions Permalink

Can it be that through the deletion of the _metadata the id changed? this file must be deleted to import an extension into chrome via crx extraxtion.

0
Comment actions Permalink

may be.... have never tried installing it that way

0
Comment actions Permalink

But can this be the Problem? Is the IDEA JSON RPC API Validating this id or the Requests that the extension is sending?

0
Comment actions Permalink

> Is the IDEA JSON RPC API Validating this id or the Requests that the extension is sending?

Yes. Only white-listed chrome extensions are allowed

1
Comment actions Permalink

Very good to know!

As far as I can see has Google Fixed it. They have implemented to use a CRX Archive directly. In older version this was not possible!

The Problem why I didn't saw that earlier was that there is no button, menu point or some other hint. You must open the Extensions menu and Drag-n-Drop the CRX into it.

On older version this triggers the "Download" (end result is copy the Drag-n-Dropped CRX into the Download folder)

Now the Extensions has the id hmhgeddbohgjknpmjagkdomcpobmllji and IDEA says it is connected.

 

Would it not be good if the User could whitelist Extension ID's? So the normal Developer could develop its own when needed ;)

1
Comment actions Permalink

Nice to hear it's solved:)

>Would it not be good if the User could whitelist Extension ID's? So the normal Developer could develop its own when needed ;)

Please feel free to file a request for this feature to youtrack, https://youtrack.jetbrains.com/issues/WEB

0

Please sign in to leave a comment.