summaryrefslogtreecommitdiffstats
path: root/devtools/client/netmonitor/src/har/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/netmonitor/src/har/README.md')
-rw-r--r--devtools/client/netmonitor/src/har/README.md42
1 files changed, 42 insertions, 0 deletions
diff --git a/devtools/client/netmonitor/src/har/README.md b/devtools/client/netmonitor/src/har/README.md
new file mode 100644
index 0000000000..fe3e362aaf
--- /dev/null
+++ b/devtools/client/netmonitor/src/har/README.md
@@ -0,0 +1,42 @@
+# HAR
+HAR stands for `HTTP Archive` format used by various HTTP monitoring tools
+to export collected data. This format is based on JSON and is supported by
+many tools on the market including all main browsers (Firefox/Chrome/IE/Edge etc.)
+
+HAR spec:
+* http://www.softwareishard.com/blog/har-12-spec/
+* https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/HAR/Overview.html
+
+HAR adopters:
+* http://www.softwareishard.com/blog/har-adopters/
+
+# Netmonitor
+Network monitor tool (in Firefox) supports exporting data in HAR format and
+the implementation consists from the following objects.
+
+## HarAutomation
+This object is responsible for automated HAR export. It listens for Network
+activity and triggers HAR export when the page is loaded.
+
+The user needs to enable `devtools.netmonitor.har.enableAutoExportToFile` pref
+and restart Firefox to switch this automation tool on.
+
+## HarBuilder
+This object is responsible for building HAR object (JSON). It gets all
+HTTP requests currently displayed in the Network panel and builds valid HAR.
+This object lazy loads all necessary data from the backend if needed,
+so the result structure is complete.
+
+## HarCollector
+This object is responsible for collecting data related to all HTTP requests
+executed by the page (including inner iframes). The final export is triggered
+by HarAutomation at the right time.
+
+Note: this object is using it's own logic to fetch data from the backend.
+It should reuse the Netmonitor Connector (src/connector/index),
+so we don't have to maintain two code paths.
+
+## HarExporter
+This object represents the main public API designed to access export logic.
+Clients, such as the Network panel itself, or WebExtensions API should use
+this object to trigger exporting of collected HTTP data from the panel.