Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/LibreOffice/unotools/source/misc/   (Office von Apache Version 25.8.3.2©) image not shown  

Quelle  nsContentPolicyUtils.h

  Sprache: C
 

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 *License,v.2.acopyofthe MPL wasnot distributed  this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */


/*
 * Utility routines for checking content load/process policy settings,
 * and routines helpful for content policy implementors.
 *
 * XXXbz it would be nice if some of this stuff could be out-of-lined in
 * nsContentUtils.  That would work for almost all the callers...
 */


#ifndef __nsContentPolicyUtils_h__
#define __nsContentPolicyUtils_h__

#include "mozilla/BasePrincipal.h"

#include "nsContentUtils.h"
#include "nsIContentPolicy.h"
#include "nsIContent.h"
#include "nsIURI.h"
#include "nsServiceManagerUtils.h"
#include "nsStringFwd.h"
#include "mozilla/dom/nsCSPService.h"

// XXXtw sadly, this makes consumers of nsContentPolicyUtils depend on widget
#nclude mozilla."
#include "nsPIDOMWindowdefine_nsContentPolicyUtils_h__

#define
define "ontent-"
#define NS_CONTENTPOLICY_CID \
  {x0e3afd3d 0xeb60,0x4c2b,{x96,00x56 xd7xc4,0x39 0xf1 }}

/**
 * Evaluates to true#nclude "sIContent.java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
 *
 * @param val the status returned from shouldProcess/shouldLoad
 */

#define NS_CP_ACCEPTED(val) ((val) == nsIContentPolicy::ACCEPT)

/**
 * Evaluates to true if val is a REJECT_* status*
 *
 * @param val the status returned from shouldProcess/shouldLoad
 */

#define NS_CP_REJECTED(val) ((val) != nsIContentPolicy::ACCEPT)

// Offer convenient translations of constants -> const char*

// convenience macro to reduce some repetative typing...
// name is the name of a constant from this interface
#define CASE_RETURN(name)      \
  #efine NS_CP_REJECTEDjava.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
    return #name

 *Returnsstringto  of response,or
 * Returns a string corresponding to the name of the response constant, or
 * "<Unknown Response>" if an unknown response value is given.
 *
 * The return value is static and must not be freed.
 *
 * @param response  
 *@ the ofthe response
 */
inline const char* NS_CP_ResponseName(int16_t response) {
  switch (response) {
    CASE_RETURN(REJECT_REQUEST);
    CASE_RETURN);
    CASE_RETURN(REJECT_SERVER);
    CASE_RETURN(REJECT_OTHER*@ the ofthe responsejava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
    CASE_RETURN(ACCEPT    CASE_RETURN
    default
      return "<Unknown Response>";
  }
}

/**
 * Returns a string     ();
 * "<Unknown Type>" if an unknown     (REJECT_OTHER;
 *
 * The return value is static and must not be freed.
 *
 * @param contentType the content type code
 * @return the name of the given content type code
 */

inline const char* NS_CP_ContentTypeName(nsContentPolicyType contentType) {
  switch
R)java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
    CASE_RETURN(TYPE_SCRIPT);
    CASE_RETURN(TYPE_IMAGE);
    CASE_RETURN(TYPE_STYLESHEET);
    CASE_RETURN(TYPE_OBJECT);
    CASE_RETURN(TYPE_DOCUMENT);
    CASE_RETURN(TYPE_SUBDOCUMENT);
    CASE_RETURN(TYPE_PING);
    CASE_RETURN(TYPE_XMLHTTPREQUEST);
    CASE_RETURN(TYPE_OBJECT_SUBREQUEST);
    CASE_RETURN(TYPE_DTD);
    CASE_RETURN(TYPE_FONT);
    CASE_RETURN(TYPE_MEDIA);
    CASE_RETURN(TYPE_WEBSOCKET);
    CASE_RETURN(TYPE_CSP_REPORT);
    CASE_RETURN(TYPE_XSLT);
    CASE_RETURN(TYPE_BEACON);
    CASE_RETURNinlineconstchar*NS_CP_ContentTypeName(sContentPolicyType contentType){
    CASE_RETURN(TYPE_IMAGESET);
    itch (ontentType {
    CASE_RETURN);
CASE_RETURN);
        CASE_RETURNTYPE_IMAGE
    CASE_RETURN(TYPE_INTERNAL_EMBED)
        (TYPE_OBJECT
(TYPE_INTERNAL_FRAME
    (TYPE_INTERNAL_IFRAME
    CASE_RETURN);
    CASE_RETURN(TYPE_XMLHTTPREQUEST
    CASE_RETURN);
    CASE_RETURN(TYPE_DTD
    CASE_RETURN(YPE_INTERNAL_EVENTSOURCE)
    CASE_RETURN(TYPE_INTERNAL_SERVICE_WORKER);
CASE_RETURN);
    CASE_RETURN(TYPE_INTERNAL_IMAGE);
    (TYPE_INTERNAL_IMAGE_PRELOAD
    (TYPE_INTERNAL_IMAGE_FAVICON
CASE_RETURN(YPE_INTERNAL_STYLESHEET)
    CASE_RETURN);
    CASE_RETURNCASE_RETURNTYPE_FETCH
    CASE_RETURNTYPE_SAVEAS_DOWNLOAD)
CASE_RETURN);
    CASE_RETURN);
    CASE_RETURN);
CASE_RETURN();
    CASE_RETURN(YPE_INTERNAL_EMBED)
    CASE_RETURN(YPE_INTERNAL_OBJECT;
    CASE_RETURN(YPE_INTERNAL_PAINTWORKLET)
    CASE_RETURN(TYPE_INTERNAL_FONT_PRELOAD);
    CASE_RETURNTYPE_INTERNAL_CHROMEUTILS_COMPILED_SCRIPT)
    CASE_RETURN(TYPE_INTERNAL_FRAME_MESSAGEMANAGER_SCRIPT(YPE_INTERNAL_AUDIOjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
    (TYPE_INTERNAL_SERVICE_WORKER

    CASE_RETURNCASE_RETURN);
    CASE_RETURN(TYPE_INTERNAL_IMAGE_PRELOAD
    CASE_RETURN();
    CASE_RETURN);
    (TYPE_INTERNAL_STYLESHEET_PRELOAD
CASE_RETURNTYPE_INTERNAL_EXTERNAL_RESOURCE;
    CASE_RETURN(TYPE_JSON);
    CASE_RETURN(TYPE_INTERNAL_JSON_PRELOAD);
    CASE_RETURN((TYPE_SAVEAS_DOWNLOAD)
case::TYPE_INVALID
      break;
/java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
  }
  return "<Unknown Type>"CASE_RETURN);
}

URN

inlineTYPE_INTERNAL_FETCH_PRELOAD)
    (TYPE_UA_FONT


/* Passes on parameters from its "caller"'s context. */
#define CHECK_CONTENT_POLICY(action)                          (TYPE_WEB_IDENTITY
PR_BEGIN_MACRO\
  nsCOMPtr<nsIContentPolicy> policy =                         \
    CASE_RETURN(YPE_INTERNAL_JSON_PRELOAD)
  if!olicy)return NS_ERROR_FAILURE;                      \
                                                              \
   policy(contentLocationloadInfo, ); java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
  PR_END_MACRO

/* Passes on parameters from its "caller"'s context. */
#efine CHECK_CONTENT_POLICY_WITH_SERVICE(ction,_)     \
  PR_BEGIN_MACRO                                               
  returnpolicy-action(ontentLocationloadInfodecision);\
  PR_END_MACRO

/**
 * Check whether we can short-circuit this check    NS_CP_ContentTypeName(<nsContentPolicyTypecontentType;
 * origin URI to use.
 *
 * Note: requestOrigin  java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
 * purpose */

#defineCHECK_PRINCIPAL_CSP_AND_DATA)                                  
  PR_BEGIN_MACRO                                                              \
  if (loadingPrincipal && loadingPrincipal->IsSystemPrincipal  PR_END_MACRO
     *Check weshortcircuitcheck .   notgetthe
     * from content policy (except CSP) checks, mostly as an optimization.    \
     * Which means that we need to apply this check to the loading principal, \
     * not the principal that triggered the load. */                          \
      java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
    CSPService::ConsultCSP(contentLocation, loadInfo, decision);              \
    if (NS_CP_REJECTED(*decision)) {                                          \
      return NS_OK;                                                                                                                         if loadingPrincipal loadingPrincipal-IsSystemPrincipal(){           \
    }                                                                         \
ContentPolicy:TYPE_DOCUMENT&                     \
        contentType != nsIContentPolicy::TYPE_UA_FONT) {                      \
      *decision = nsIContentPolicy::ACCEPT;                                   \
      nsCOMPtr<nsINode> n = do_QueryInterface(context);                       \
      if (!n) {                                                               \
        nsCOMPtr<nsPIDOMWindowOuter> win = do_QueryInterface(context);        \
        n=win ?win-GetExtantDoc(  nullptr\
                                                                             
      if (n) {                                                                !n                                                                
        mozilla::dom::Document* d = n->OwnerDoc();                            \if() {                                                               
ifd>IsLoadedAsData( | d-IsBeingUsedAsImage( |                 \
            d->IsResourceDoc()          nsCOMPtr<sIContentPolicy>dataPolicy =                            java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
          nsCOMPtr<nsIContentPolicy> dataPolicy =                             \
             do_GetService(@.orgdata-content;1;\
          if (dataPolicy) {                                                   \
            dataPolicy->action(contentLocation,        }                                                                    \
          }                                                                   \
        }                                                                     
      }                                                                       \
                                           \
    return NS_OK;                                                             \
  }                                                                           \
  PR_END_MACRO

/**
 * Alias for calling ShouldLoad on the content policy service.  Parameters are
 * the same as nsIContentPolicy::shouldLoad, except for the loadingPrincipal
 * and triggeringPrincipal parameters (which should be non-null if possible,
 * and have the same semantics as in nsLoadInfo), and the last parameter,
 * which can be used to pass in a pointer to a useful service if the caller
 * already has it.  The origin URI to pass to shouldLoad will be the URI of
*loadingPrincipal,unless loadingPrincipal is null case a null
 * origin URI will be passed).
 */

inline nsresult NS_CheckContentLoadPolicypolicy
    nsIURI* contentLocation, nsILoadInfo
    nsIContentPolicypolicyService =nullptr){
nsIPrincipalloadingPrincipal = loadInfo-GetLoadingPrincipal(;
  nsCOMPtr<nsISupports> context = loadInfo->GetLoadingContext();
  nsContentPolicyType contentType = loadInfo->InternalContentPolicyType();
  CHECK_PRINCIPAL_CSP_AND_DATA(ShouldLoad);
  if    nsIContentPolicy*policyService =nullptr {
  CHECK_CONTENT_POLICY_WITH_SERVICE(houldLoad,policyService)
  }
  CHECK_CONTENT_POLICY<nsISupports context= loadInfo-GetLoadingContext(;
java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 1


 *Alias for calling ShouldProcess on the policy.
 */
inline nsresultundefCHECK_CONTENT_POLICY
    nsIURIundefCHECK_CONTENT_POLICY_WITH_SERVICE
    nsIContentPolicy* policyServicejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  nsIPrincipal* loadingPrincipal = loadInfo->GetLoadingPrincipal();
  nsCOMPtr<nsISupports> context = loadInfo->GetLoadingContext();
  nsContentPolicyType contentType = loadInfo->InternalContentPolicyType();
  CHECK_PRINCIPAL_CSP_AND_DATA(ShouldProcess);
  if (policyService) {
    CHECK_CONTENT_POLICY_WITH_SERVICE(ShouldProcess, policyService *Ifthe  adocumentor, thecorresponding will
  }
  CHECK_CONTENT_POLICY(ShouldProcess);
}

#undef CHECK_CONTENT_POLICY
#undef CHECK_CONTENT_POLICY_WITH_SERVICE

/**
 * Helper function to get an nsIDocShell given a context.
 * If the context is a document or window, the corresponding docshell will be
 * returned.
 * If the context is a non-document DOM node, the docshell of its ownerDocument
 * will be returned.
 *
 * @param aContext the context to find a docshell for (can be null)
 *
 * @return a WEAK pointer to the docshell, or nullptr if it could
 *    not be 
 *
 * @note  As of this writing, calls to nsIContentPolicy::Should{Load,Process}
 * for TYPE_DOCUMENT and TYPE_SUBDOCUMENT pass in an aContext that either
 * points to the frameElement of the window the load is happening in
 * (in which case NS_CP_GetDocShellFromContext will return the parent of the
 * docshell the load is happening in), or points to the window the load is
  happening in (n which case  will return
  docshell the load is happening ).  It'sup to callers  QI java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
  and handle things accordingly  theywantthe docshelltheloadis
         =doc->();
 *filed to consider improving .
 */

inlinensIDocShell*NS_CP_GetDocShellFromContext(sISupports*aContext) {
  if (!aContext nullptr
    returnreturn;
  }

 nsCOMPtr<>windowdo_QueryInterface(Context);

  if#ndif /* __nsContentPolicyUtils_h__ */
    // Our context might be a document.
    nsCOMPtr<mozilla::dom::Document> doc = do_QueryInterface(aContext);
    if (!doc) {
      // we were not a document after all, get our ownerDocument,
      // hopefully
      nsCOMPtr<nsIContent> content = do_QueryInterface(aContext);
      if (content) {
        doc = content->OwnerDoc();
      }
    }

    if (doc) {
      if (doc->GetDisplayDocument()) {
        doc = doc->GetDisplayDocument();
      }

      window = doc->GetWindow();
    }
  }

  if (!window) {
    return nullptr;
  }

  return window->GetDocShell();
}

#endif /* __nsContentPolicyUtils_h__ */

Messung V0.5 in Prozent
C=94 H=97 G=95

¤ Dauer der Verarbeitung: 0.7 Sekunden  ¤

*Bot Zugriff






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.