Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Firefox/netwerk/url-classifier/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 2 kB image not shown  

Quelle  nsChannelClassifier.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 nsChannelClassifier_h__
#define nsChannelClassifier_h__

#include "nsIObserver.h"
#include "nsIURIClassifier.h"
#include "nsCOMPtr.h"
#include "mozilla/Attributes.h"

#include <functional>

class nsIChannel;

namespace mozilla {
namespace net {

class nsChannelClassifier final : public nsIURIClassifierCallback,
                                  public nsIObserver {
 public:
  explicit nsChannelClassifier(nsIChannel* aChannel);

  NS_DECL_ISUPPORTS
  NS_DECL_NSIURICLASSIFIERCALLBACK
  NS_DECL_NSIOBSERVER

  // Calls nsIURIClassifier.Classify with the principal of the given channel,
  // and cancels the channel on a bad verdict.
  void Start();

 private:
  // True if the channel is on the allow list.
  bool mIsAllowListed;
  // True if the channel has been suspended.
  bool mSuspendedChannel;
  nsCOMPtr<nsIChannel> mChannel;

  ~nsChannelClassifier();
  // Caches good classifications for the channel principal.
  void MarkEntryClassified(nsresult status);
  bool HasBeenClassified(nsIChannel* aChannel);
  // Helper function so that we ensure we call ContinueBeginConnect once
  // Start is called. Returns NS_OK if and only if we will get a callback
  // from the classifier service.
  nsresult StartInternal();
  // Helper function to check a URI against the hostname entitylist
  bool IsHostnameEntitylisted(nsIURI* aUri, const nsACString& aEntitylisted);

  void AddShutdownObserver();
  void RemoveShutdownObserver();
  static nsresult SendThreatHitReport(nsIChannel* aChannel,
                                      const nsACString& aProvider,
                                      const nsACString& aList,
                                      const nsACString& aFullHash);

 public:
  // If we are blocking content, update the corresponding flag in the respective
  // docshell and call nsDocLoader::OnSecurityChange.
  static nsresult SetBlockedContent(nsIChannel* channel, nsresult aErrorCode,
                                    const nsACString& aList,
                                    const nsACString& aProvider,
                                    const nsACString& aFullHash);
};

}  // namespace net
}  // namespace mozilla

#endif

Messung V0.5
C=81 H=100 G=90

¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

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.