extensions/auth/nsHttpNegotiateAuth.h
author Gerald Squelart <gsquelart@mozilla.com>
Thu, 24 Jun 2021 07:25:56 +0000
changeset 584235 9b2ffc8e850587f349301559d397a384ef5c7508
parent 502275 f7679d8469b66ed60ad902806b67ebfff4c58e5f
permissions -rw-r--r--
Bug 1667818 - Record priority change markers - r=canaltinova In the parent process, all sub-process priority changes are recorded, with the stack. In child processes, the new priority is recorded when notified. Also record priorities during profiler state changes. This is to ensure that we always have at least one record of the priority at the end of the profile, when old priority changes may have already been discarded. Differential Revision: https://phabricator.services.mozilla.com/D118129

/* vim:set ts=4 sw=2 et cindent: */
/* 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 nsHttpNegotiateAuth_h__
#define nsHttpNegotiateAuth_h__

#include "nsIHttpAuthenticator.h"
#include "nsIURI.h"
#include "mozilla/Attributes.h"
#include "mozilla/LazyIdleThread.h"
#include "mozilla/StaticPtr.h"

// The nsHttpNegotiateAuth class provides responses for the GSS-API Negotiate
// method as specified by Microsoft in draft-brezak-spnego-http-04.txt

class nsHttpNegotiateAuth final : public nsIHttpAuthenticator {
 public:
  NS_DECL_THREADSAFE_ISUPPORTS
  NS_DECL_NSIHTTPAUTHENTICATOR

  static already_AddRefed<nsIHttpAuthenticator> GetOrCreate();

 private:
  ~nsHttpNegotiateAuth() {}

  // returns the value of the given boolean pref
  bool TestBoolPref(const char* pref);

  // tests if the host part of an uri is fully qualified
  bool TestNonFqdn(nsIURI* uri);

  // Singleton pointer
  static mozilla::StaticRefPtr<nsHttpNegotiateAuth> gSingleton;
};
#endif /* nsHttpNegotiateAuth_h__ */