Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  HttpTrafficAnalyzer.h

  Sprache: C
 

/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */


#ifndef mozilla_netwerk_protocol_http_HttpTrafficAnalyzer_h
#define mozilla_netwerk_protocol_http_HttpTrafficAnalyzer_h

#include <stdint.h>
#include "nsTArrayForwardDeclare.h"

// Type A) Parser blocking script loads will have an mContentPolicyType
//         indicating a script load and a nsIClassOfService::Leader class of
//         service.
// Type B) I couldn’t find a class flag that corresponds to synchronous loads
//         that block the load event, but I think a simple way to determine
//         which ones they are is to examine whether the channel belongs to a
//         load group and do not have a LOAD_BACKGROUND load flag.
//         If that condition holds, then it is blocking the load event of some
//         document.
// Type C) I think a simple way to find channels that don’t block document loads
//         (e.g. XHR and fetch) is to look for those which are in a load group
//         and have a LOAD_BACKGROUND load flag.
#define FOR_EACH_HTTP_TRAFFIC_CATEGORY(DEFINE_CATEGORY)                         \
  /* Y=0 - all system principal connections. */                                 \
  DEFINE_CATEGORY(N1Sys, 0)                                                     \
  /* Y=1 - all requests/connections/bytes that are first party. */              \
  DEFINE_CATEGORY(N1, 1)                                                        \
  /* Y=2 - all requests/connections/bytes that are third party but don’t fall \
   * into other categories */
                                                   \
  DEFINE_CATEGORY(N3Oth, 2)                                                     \
  /* Y=3 - all requests/connections/bytes associated with third party loads     \
   * that match the Analytics/Social/Advertising (Basic) Category and have a    \
   * load of type (A) */
                                                        \
  DEFINE_CATEGORY(N3BasicLead, 3)                                               \
  /* Y=4 - all requests/connections/bytes associated with third party loads     \
   * that match the Analytics/Social/Advertising (Basic) Category and have a    \
   * load of type (B) */
                                                        \
  DEFINE_CATEGORY(N3BasicBg, 4)                                                 \
  /* Y=5 - all requests/connections/bytes associated with third party loads     \
   * that match the Analytics/Social/Advertising (Basic) Category and have a    \
   * load of type (C) */
                                                        \
  DEFINE_CATEGORY(N3BasicOth, 5)                                                \
  /* Y=6 - all requests/connections/bytes associated with third party loads     \
   * that match the Content Category and have a load of type (A) */
             \
  DEFINE_CATEGORY(N3ContentLead, 6)                                             \
  /* Y=7 - all requests/connections/bytes associated with third party loads     \
   * that match the Content Category and have a load of type (B) */
             \
  DEFINE_CATEGORY(N3ContentBg, 7)                                               \
  /* Y=8 - all requests/connections/bytes associated with third party loads     \
   * that match the Content Category and have a load of type (C) */
             \
  DEFINE_CATEGORY(N3ContentOth, 8)                                              \
  /* Y=9 - all requests/connections/bytes associated with third party loads     \
   * that match the Fingerprinting Category and have a load of type (A) */
      \
  DEFINE_CATEGORY(N3FpLead, 9)                                                  \
  /* Y=10 - all requests/connections/bytes associated with third party loads    \
   * that match the Fingerprinting Category and have a load of type (B) */
      \
  DEFINE_CATEGORY(N3FpBg, 10)                                                   \
  /* Y=11 - all requests/connections/bytes associated with third party loads    \
   * that match the Fingerprinting Category and have a load of type (C) */
      \
  DEFINE_CATEGORY(N3FpOth, 11)                                                  \
  /* Y=12 - private mode system principal connections. */                       \
  DEFINE_CATEGORY(P1Sys, 12)                                                    \
  /* Y=13 - private mode and all requests/connections/bytes that are first      \
   * party. */
                                                                  \
  DEFINE_CATEGORY(P1, 13)                                                       \
  /* Y=14 - private mode and all requests/connections/bytes that are third      \
   * party but don’t fall into other categories */
                            \
  DEFINE_CATEGORY(P3Oth, 14)                                                    \
  /* Y=15 - private mode and all requests/connections/bytes associated with     \
   * third party loads that match the Analytics/Social/Advertising (Basic)      \
   * Category and have a load of type (A) */
                                    \
  DEFINE_CATEGORY(P3BasicLead, 15)                                              \
  /* Y=16 - private mode and all requests/connections/bytes associated with     \
   * third party loads that match the Analytics/Social/Advertising (Basic)      \
   * Category and have a load of type (B) */
                                    \
  DEFINE_CATEGORY(P3BasicBg, 16)                                                \
  /* Y=17 - private mode and all requests/connections/bytes associated with     \
   * third party loads that match the Analytics/Social/Advertising (Basic)      \
   * Category and have a load of type (C) */
                                    \
  DEFINE_CATEGORY(P3BasicOth, 17)                                               \
  /* Y=18 - private mode and all requests/connections/bytes associated with     \
   * third party loads that match the Content Category and have a load of type  \
   * (A) */
                                                                     \
  DEFINE_CATEGORY(P3ContentLead, 18)                                            \
  /* Y=19 - private mode and all requests/connections/bytes associated with     \
   * third party loads that match the Content Category and have a load of type  \
   * (B) */
                                                                     \
  DEFINE_CATEGORY(P3ContentBg, 19)                                              \
  /* Y=20 - private mode and all requests/connections/bytes associated with     \
   * third party loads that match the Content Category and have a load of type  \
   * (C) */
                                                                     \
  DEFINE_CATEGORY(P3ContentOth, 20)                                             \
  /* Y=21 - private mode and all requests/connections/bytes associated with     \
   * third party loads that match the Fingerprinting Category and have a load   \
   * of type (A) */
                                                             \
  DEFINE_CATEGORY(P3FpLead, 21)                                                 \
  /* Y=22 - private mode and all requests/connections/bytes associated with     \
   * third party loads that match the Fingerprinting Category and have a load   \
   * of type (B) */
                                                             \
  DEFINE_CATEGORY(P3FpBg, 22)                                                   \
  /* Y=23 - private mode and all requests/connections/bytes associated with     \
   * third party loads that match the Fingerprinting Category and have a load   \
   * of type (C) */
                                                             \
  DEFINE_CATEGORY(P3FpOth, 23)

namespace mozilla {
namespace net {

#define DEFINE_CATEGORY(_name, _idx) e##_name = _idx##u,
enum HttpTrafficCategory : uint8_t {
  FOR_EACH_HTTP_TRAFFIC_CATEGORY(DEFINE_CATEGORY) eInvalid,
};
#undef DEFINE_CATEGORY

class HttpTrafficAnalyzer final {
 public:
  enum ClassOfService : uint8_t {
    eLeader = 0,
    eBackground = 1,
    eOther = 255,
  };

  enum TrackingClassification : uint8_t {
    eNone = 0,
    eBasic = 1,
    eContent = 2,
    eFingerprinting = 3,
  };

  static HttpTrafficCategory CreateTrafficCategory(
      bool aIsPrivateMode, bool aIsSystemPrincipal, bool aIsThirdParty,
      ClassOfService aClassOfService, TrackingClassification aClassification);

  void IncrementHttpTransaction(HttpTrafficCategory aCategory);
  void IncrementHttpConnection(HttpTrafficCategory aCategory);
  void IncrementHttpConnection(nsTArray<HttpTrafficCategory>&& aCategories);
  void AccumulateHttpTransferredSize(HttpTrafficCategory aCategory,
                                     uint64_t aBytesRead, uint64_t aBytesSent);
};

}  // namespace net
}  // namespace mozilla

#endif  // mozilla_netwerk_protocol_http_HttpTrafficAnalyzer_h

Messung V0.5 in Prozent
C=91 H=95 G=92

¤ Dauer der Verarbeitung: 0.18 Sekunden  (vorverarbeitet am  2026-08-25) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=277311
#Domains=752002