naiveproxy/net/docs/bug-triage-labels.md
2018-01-29 00:30:36 +08:00

174 lines
5.7 KiB
Markdown

# Chrome Network Bug Triage : Components and labels
## Some network component caveats
* **Internals>Network>SSL**
This includes issues that should be also tagged as **Security>UX**
(certificate error pages or other security interstitials, omnibox indicators
that a page is secure), and more general SSL issues. If you see requests
that die in the SSL negotiation phase, in particular, this is often the
correct component.
* **Internals>Network>DataProxy**
Flywheel / the Data Reduction Proxy. Issues require "Reduce Data Usage" be
turned on. Proxy URL is [https://proxy.googlezip.net:443](#), with
[http://compress.googlezip.net:80](#) as a fallback. Currently Android and
iOS only.
* **Internals>Network>Cache**
The cache is the layer that handles most range request logic (Though range
requests may also be issued by the PDF plugin, XHRs, or other components).
* **Internals>Network>SPDY**
Covers HTTP2 as well.
* **Internals>Network>HTTP**
Typically not used. Unclear what it covers, and there's no specific HTTP
owner.
* **Internals>Network>Logging**
Covers **about:net-internals**, **about:net-export** as well as the what's
sent to the NetLog.
* **Internals>Network>Connectivity**
Issues related to switching between networks, `ERR_NETWORK_CHANGED`, Chrome
thinking it's online when it's not / navigator.onLine inaccuracies, etc.
* **Internals>Network>Filters**
Covers gzip, deflate and brotli issues. `ERR_CONTENT_DECODING_FAILED`
indicates a problem at this layer, and bugs here can also cause response
body corruption.
## Common non-network components
Bugs in these areas often receive the **Internals>Network** component, though
they fall largely outside the purview of the network stack team:
* **UI>Browser>Downloads**
Despite the name, this covers all issues related to downloading a file
except saving entire pages (which is **Blink>SavePage**), not just UI
issues. Most downloads bugs will have the word "download" or "save as" in
the description. Issues with the HTTP server for the Chrome binaries are
not downloads bugs.
* **UI>Browser>SafeBrowsing**
Bugs that have to do with the process by which a URL or file is determined
to be dangerous based on our databases, or the resulting interstitials.
Determination of danger based purely on content-type or file extension
belongs in **UI>Browser>Downloads**, not SafeBrowsing.
* **Blink>Forms**
Issues submitting forms, forms having weird data, forms sending the wrong
method, etc.
* **Blink>Loader**
Cross origin issues are sometimes loader related. Blink also has an
in-memory cache, and when it's used, requests don't appear in
about:net-internals. Requests for the same URL are also often merged there
as well. This does *not* cover issues with content/browser/loader/ files.
* **Blink>ServiceWorker**
* **Blink>Storage>AppCache**
* **Blink>Network>WebSockets**
Issues with the WebSockets. Attach this component to any issue about the
WebSocket feature regardless of where the cause of the issue is (net/ or
Blink).
* **Blink>Network>FetchAPI**
Generic issues with the Fetch API - missing request or response headers,
multiple headers, etc. These will often run into issues in certain corner
cases (Cross origin / CORS, proxy, whatever). Attach all components that
seem appropriate.
* **Blink>Network>XHR**
Generic issues with sync/async XHR requests.
* **Blink>WebRTC>Network**
Anything WebRTC-related does not use the net stack and should go here.
* **Services>Sync**
Sharing data/tabs/history/passwords/etc between machines not working.
* **Services>Chromoting**
* **Platform>Extensions**
Issues extensions loading / not loading / hanging.
* **Platform>Extensions>API**
Issues with network related extension APIs should have this component.
chrome.webRequest is the big one, I believe, but there are others.
* **Internals>Plugins>Pepper[>SDK]**
* **UI>Browser>Omnibox**
Basically any issue with the omnibox. URLs being treated as search queries
rather than navigations, dropdown results being weird, not handling certain
Unicode characters, etc. If the issue is new TLDs not being recognized by
the omnibox, that's due to Chrome's TLD list being out of date, and not an
omnibox issue. Such TLD issues should be duped against
http://crbug.com/37436.
* **Internals>Media>Network**
Issues related to media. These often run into the 6 requests per hostname
issue, and also have fun interactions with the cache, particularly in the
range request case.
* **Internals>Plugins>PDF**
Issues loading PDF files. These are often related to range requests, which
also have some logic at the Internals>Network>Cache layer.
* **UI>Browser>Navigation**
* **UI>Browser>History**
Issues which only appear with forward/back navigation.
* **OS>Systems>Network** / **OS>Systems>Mobile** / **OS>Systems>Bluetooth**
These should be used for issues with Chrome OS's platform network code, and
not net/ issues on Chrome OS.
* **Blink>SecurityFeature**
CORS / Cross origin issues. Main frame cross-origin navigation issues are
often actually **UI>Browser>Navigation** issues.
* **Privacy**
Privacy related bug (History, cookies discoverable by an entity that
shouldn't be able to do so, incognito state being saved in memory or on disk
beyond the lifetime of incognito tabs, etc). Generally used in conjunction
with other components.
## Common labels
* **Type-Bug-Security**
Security related bug (Allows for code execution from remote site, allows
crossing security boundaries, unchecked array bounds, etc) should be tagged
with this label.