Coder Social home page Coder Social logo

websocket-monitor's Introduction

Firebug

Web Development Evolved getfirebug.com

On November 14, with the launch of Firefox Quantum (AKA 57), support for old school extensions will stop in Firefox. That means Firebug will no longer work for many developers. However, the work continues in the great Firefox devtools. You can try Firefox devtools by updating your release browser or downloading Developer Edition. Read more here

Download

License

Firebug is free and open source software distributed under the BSD License.

Source Repository Structure

See more information about Firebug repository structure.

  • extension Firebug extension directory.
  • tests Firebug automated test files and test harness.
  • trace Firebug tracing console.

Build Firebug XPI

In order to build Firebug *.xpi package run following in your command line (you need Apache Ant)

$ cd firebug/extension
$ ant

The *.xpi file should be located within ./release directory.

Run Firebug From Source

The extension directory directly contains Firebug extension files and so, you can run Firebug directly from it. This is the recommended way how to quickly test your code changes and provide a patch.

  1. Locate your Firefox profile folder
  2. Open extensions/ folder, create if it doesn't exist.
  3. Create a new text file and put the full path to your development folder inside. (e.g. C:\firebug\extension\ or ~/firebug/extension/). Windows users should retain the OS' slash direction, and everyone should remember to include a closing slash and remove any trailing spaces.
  4. Save the file with Firebug ID as it's name [email protected]

Hacking on Firebug

See detailed instructions about how to provide a patch to Firebug source.

Further Resources

websocket-monitor's People

Contributors

eliihen avatar fflorent avatar janodvarko avatar jsnajdr avatar lebedev avatar scooooooooby avatar tuukka avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

websocket-monitor's Issues

No Web Socket toolbox

I installed the extension, but when I open up the debugger window, there is no web socket toolbox. FF version is 47.0.1.
ff-websocket-monitorpng

Show only user payload

It could be useful if the inline payload preview shows only actual user data. So, in case of Socket IO it would show only the 'data' field. I believe (according to a feedback I've got) that dev folks are mostly interested in the real data they are sending over the wire (not in the garbage appended by Socket IO)

This would require specific support for every protocol. But perhaps we can start with Socket IO and see how it works...

Thoughts?

Honza

Filter according to WS connection ID

It should be possible to filter the list of frames according to the WS connection ID.

We want to utilize the filter-box and introduce a prefix # that will be used to distinguish WS ID from playin text.

There should also be a popup window (just like in the Debugger panel) listing all options and teaching the user how to use it.

Honza

Display payload only size

There should be two sizes displayed at the bottom of both views (table, chat)

  • Total size of bytes transferred
  • Pyload only size

Honza

Correlate WAMP messages

Phase II: now we have decoded WAMP messages, we would like to see correlated messages together. We have some messages that are actually "request-response", some of those include

  • SUBSCRIBE => SUBSCRIBED (by request parameter), ERROR (by type = SUBSCRIBE and request parameter)
  • REGISTER => REGISTERED (by request parameter), ERROR (by type = REGISTER and request parameter)
  • CALL => RESULT (by request parameter), ERROR (by type = CALL and request parameter)
  • PUBLISH => PUBLISHED (by request parameter), ERROR (by type = PUBLISH and request parameter)
  • UNSUBSCRIBE => UNSUBSCRIBED (by request parameter), ERROR (by type = UNSUBSCRIBE and subscription request)
  • UNREGISTER => UNREGISTERED (by request parameter), ERROR (by type = UNREGISTER and request parameter)

I think it can be cool to display this somehow similarly to browser HTTP request/response.

Elad

Docs for contributors

To make it easier for contributors we need a doc that describes how to get and run the extension.
Honza

WS network panel filter

In order to find new HTTP websockets upgrade requests, there should be a new filter.

Honza

WAMP support

I think it could be cool to add WAMP support, similarly to Socket.IO support and SockJS support.

WAMP is an open standard WebSocket subprotocol that provides messaging patterns of remote procedure calls and publish subscribe. WAMP has implementations in various languages and is becoming more popular.

I'd love to have support for this.

cc: @oberstet

Implement "modify and resend"

Like in the Network panel, the "modify and resend" feature would be quite useful in order to interact with the server directly (and to debug it). The feature would be available for the outgoing messages only.

Florent

Empty pannel in nightly since 2016-02-29

HI

I'm a user of your wonderful extension. But since the 2016-02-29, the pannel is empty.

I used mozregression to find the exact firefox version where it stopped working, and I came to this changeset: https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=5e0140b6d11821e0c2a2de25bc5431783f03380a&tochange=4972f77869de55becd41d6b726b25fca2f523232

I'm not able to help you with that, just wanted to let you know.

Good luck and thanks for your amazing work.

Below, the log of mozregression (http://mozilla.github.io/mozregression/):

(mozregression) twidi:~$ mozregression --good 2016-02-25
 0:00.48 INFO: No 'bad' option specified, using 2016-03-01
 0:06.01 INFO: Testing good and bad builds to ensure that they are really good and bad...
 0:06.01 INFO: Downloading build from: https://archive.mozilla.org/pub/firefox/nightly/2016/02/2016-02-25-03-02-09-mozilla-central/firefox-47.0a1.en-US.linux-x86_64.tar.bz2
===== Downloaded 100% =====
 0:51.46 INFO: Running mozilla-central build for 2016-02-25
 1:03.49 INFO: Launching /tmp/user/1001/tmpmCI6Xj/firefox/firefox
 1:03.49 INFO: application_buildid: 20160225030209
 1:03.49 INFO: application_changeset: c1e0d1890cfee9d86c8d566b0490053f21e0afc6
 1:03.49 INFO: application_name: Firefox
 1:03.49 INFO: application_repository: https://hg.mozilla.org/mozilla-central
 1:03.49 INFO: application_version: 47.0a1
Was this nightly build good, bad, or broken? (type 'good', 'bad', 'skip', 'retry' or 'exit' and press Enter): good
 1:54.30 INFO: Using local file: /home/twidi/.mozilla/mozregression/persist/2016-03-01--mozilla-central--firefox-47.0a1.en-US.linux-x86_64.tar.bz2 (downloaded in background)
 1:54.30 INFO: Running mozilla-central build for 2016-03-01
 2:06.14 INFO: Launching /tmp/user/1001/tmp1w7fck/firefox/firefox
 2:06.15 INFO: application_buildid: 20160301030237
 2:06.15 INFO: application_changeset: 8ef94be995a453f5c464278c53478ba8c8554f81
 2:06.15 INFO: application_name: Firefox
 2:06.15 INFO: application_repository: https://hg.mozilla.org/mozilla-central
 2:06.15 INFO: application_version: 47.0a1
Was this nightly build good, bad, or broken? (type 'good', 'bad', 'skip', 'retry' or 'exit' and press Enter): bad
 3:55.22 INFO: Good and bad builds are correct. Let's continue the bisection.
 3:55.22 INFO: Pushlog:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=c1e0d1890cfee9d86c8d566b0490053f21e0afc6&tochange=8ef94be995a453f5c464278c53478ba8c8554f81

 3:55.22 INFO: Using local file: /home/twidi/.mozilla/mozregression/persist/2016-02-28--mozilla-central--firefox-47.0a1.en-US.linux-x86_64.tar.bz2 (downloaded in background)
 3:55.22 INFO: Running mozilla-central build for 2016-02-28
 4:07.66 INFO: Launching /tmp/user/1001/tmpDzChNr/firefox/firefox
 4:07.66 INFO: application_buildid: 20160228030239
 4:07.66 INFO: application_changeset: 5e0140b6d11821e0c2a2de25bc5431783f03380a
 4:07.66 INFO: application_name: Firefox
 4:07.66 INFO: application_repository: https://hg.mozilla.org/mozilla-central
 4:07.66 INFO: application_version: 47.0a1
Was this nightly build good, bad, or broken? (type 'good', 'bad', 'skip', 'retry' or 'exit' and press Enter): good
 5:50.12 INFO: Narrowed nightly regression window from [2016-02-25, 2016-03-01] (5 days) to [2016-02-28, 2016-03-01] (2 days) (~1 steps left)
 5:50.12 INFO: Pushlog:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=5e0140b6d11821e0c2a2de25bc5431783f03380a&tochange=8ef94be995a453f5c464278c53478ba8c8554f81

 5:50.12 INFO: Using local file: /home/twidi/.mozilla/mozregression/persist/2016-02-29--mozilla-central--firefox-47.0a1.en-US.linux-x86_64.tar.bz2 (downloaded in background)
 5:50.12 INFO: Running mozilla-central build for 2016-02-29
 6:01.85 INFO: Launching /tmp/user/1001/tmpTGQ3kz/firefox/firefox
 6:01.86 INFO: application_buildid: 20160229030448
 6:01.86 INFO: application_changeset: 9da51cb4974e03cdd8fa45a34086fe1033abfeaf
 6:01.86 INFO: application_name: Firefox
 6:01.86 INFO: application_repository: https://hg.mozilla.org/mozilla-central
 6:01.86 INFO: application_version: 47.0a1
Was this nightly build good, bad, or broken? (type 'good', 'bad', 'skip', 'retry', 'back' or 'exit' and press Enter): bad
 7:51.39 INFO: Narrowed nightly regression window from [2016-02-28, 2016-03-01] (2 days) to [2016-02-28, 2016-02-29] (1 days) (~0 steps left)
 7:51.39 INFO: Got as far as we can go bisecting nightlies...
 7:51.39 INFO: Last good revision: 5e0140b6d11821e0c2a2de25bc5431783f03380a (2016-02-28)
 7:51.39 INFO: First bad revision: 9da51cb4974e03cdd8fa45a34086fe1033abfeaf (2016-02-29)
 7:51.39 INFO: Pushlog:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=5e0140b6d11821e0c2a2de25bc5431783f03380a&tochange=9da51cb4974e03cdd8fa45a34086fe1033abfeaf

 7:51.39 INFO: Switching bisection method to taskcluster
 7:51.39 INFO: Getting mozilla-central builds between 5e0140b6d11821e0c2a2de25bc5431783f03380a and 9da51cb4974e03cdd8fa45a34086fe1033abfeaf
 7:58.68 INFO: Pushlog:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=5e0140b6d11821e0c2a2de25bc5431783f03380a&tochange=9da51cb4974e03cdd8fa45a34086fe1033abfeaf

 7:58.68 INFO: Downloading build from: https://queue.taskcluster.net/v1/task/YlN4fQ56SQShul-Wnsjzzg/runs/0/artifacts/public%2Fbuild%2Ffirefox-47.0a1.en-US.linux-x86_64.tar.bz2
===== Downloaded 100% =====
 8:39.87 INFO: Running mozilla-central build built on 2016-02-29 11:31:48.462000, revision 4972f778
 8:52.13 INFO: Launching /tmp/user/1001/tmpcpSTS_/firefox/firefox
 8:52.14 INFO: application_buildid: 20160229021614
 8:52.14 INFO: application_changeset: 4972f77869de55becd41d6b726b25fca2f523232
 8:52.14 INFO: application_name: Firefox
 8:52.14 INFO: application_repository: https://hg.mozilla.org/mozilla-central
 8:52.14 INFO: application_version: 47.0a1
Was this inbound build good, bad, or broken? (type 'good', 'bad', 'skip', 'retry' or 'exit' and press Enter): bad
10:03.72 INFO: Narrowed inbound regression window from [5e0140b6, 9da51cb4] (3 revisions) to [5e0140b6, 4972f778] (2 revisions) (~1 steps left)
10:03.72 INFO: Oh noes, no (more) inbound revisions :(
10:03.72 INFO: Last good revision: 5e0140b6d11821e0c2a2de25bc5431783f03380a
10:03.72 INFO: First bad revision: 4972f77869de55becd41d6b726b25fca2f523232
10:03.72 INFO: Pushlog:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=5e0140b6d11821e0c2a2de25bc5431783f03380a&tochange=4972f77869de55becd41d6b726b25fca2f523232

No context menu

If you go anywhere in the WebSocket panel (being the frames rows, or the details/payload side-panels), when you right-click on some selections, no context menu appears.

Florent

Pause and unpause

It should be possible to pause and unpause the incoming stream of frames, so the user can focus on particular frame in the list without being distracted by constant panel content scrolling.

Honza

Display summary info

The list of frames should display summary info at the bottom

  • total number of requests
  • total payload size
  • total time (since the first request to the last one)

Honza

Proposal for the arrows indicating whether the message comes from the Client or the Server

Currently, there is an arrow that indicates the origin of a message (the client or the server). Here is a message coming from the server :
selection_054

What about making an arrow going downward for a message coming from the server, and an arrow going upward for a message going to the latter ? That would be similar to what we can see with the download / upload icons.

What do you think?

Florent

Add-on signing

Using Firefox 45+ requires add-ons to be signed.

I know there is a way to counter that requirement, but any idea of if/when a signed version of this great add-on will be available?

Tks.

Easy navigation from the Network panel

HTTP requests that initiate WS connections (upgrade) should have a little icon that can be used (clicked) to navigate the user into the WebSockets panel.

Honza

Inline previews for payload

If the payload data can be parsed they could be displayed in a form of an expandable tree inline within the frame table.

Honza

Support for chat UI

The other option how to display a list of frames is using "chat" kind of UI. Just like the RDP Inspector does.

See a screenshot here:
https://github.com/firebug/rdp-inspector/wiki

Switching between tabular and chat view could be done through an option displayed in the tab-menu, but it's only available in Firebug theme.

Honza

Some messages not picked up

Hi Jan. Nice work with this extension, keep up the good work!

It seems websocket-monitor has issues with some messages. My company produces many pages that stream market data, and the first thing the client does after getting upgraded to WS is send a subscribe string with the data that component would like to receive. In my tests, this client does not pick up these subscribe strings at all.

Steps to reproduce

In Chrome, the strings show in green as subscribe?.... In websocket-monotor, they do not show, only the later response from server to this subscribe string shows up.

WS-monitor 0.4.1 Firefox 45.0a1 (2015-11-20) Fedora Linux

Support for frame filter

The user should be able to filter content of the WebSockets panel using a simple keyword.

Honza

Use proper icon

WebSocket Monitor should use proper icon for:

  • the extension itself
  • the Toolbox panel

Should be the same icons supporting the following sizes:
16x16
32x32

Honza

Filter frames

Another feedback I've got says that it would be useful to filter the frame list and display only those that represents actual user messages. This would make easier to follow e.g. Socket IO traffic, which is constantly sending ping/pong frames.

Honza

Make links in previews clickable

What

This is feature request to make link strings be rendered as clickable links that open in new tabs. This mainly refers to the details side panel, but could also refer to links rendered in the inline previews (#5).

Why

When we work with web sockets at work, we often send metadata relating to the connection in meta frames to the client. These meta frames sometimes contain URLs with more details about the client's subscription. It would be useful if these could be rendered as links, and not have to be copied and pasted.

I suspect this will require some work in the TreeView component - making it render an <a> instead of a <span> when it detects something that looks like a link, as well as using the tabs API to open a new tab with this link.

What do you think?

screenshot_20160225_183006

side panel not resizable

Depending on the socket ID i am monitoring, the side panel (details/payload) is not resizable (and it's default size is ridiculous) :
image
My guess is that it's because I have a "Connected to:" line that is just too long. It's the most noticeable difference between the two Socket IDs.
here is what I have when I select the other socket ID :
image

websocket panel blank

hey,
first of all - the test page (http://janodvarko.cz/test/websockets/) works perfectly.
in a site I am developing, the websocket panel is just blank.
My socket is using wss (secure websocket), and I tried canceling it, but that did not resolve the issue.
My socket is also not using a standard port, may that be the issue?
I also thought that different domains in the client and the socket could be an issue, but the test page also has a different domain.

Screenshot

Support auto-scroll at the bottom

When following constant stream of frames it's useful to have the panel always scrolled at the bottom to see the last incoming packet.

Honza

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.