00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */00002 /* ***** BEGIN LICENSE BLOCK *****00003 * Version: MPL 1.1/GPL 2.0/LGPL 2.100004 *00005 * The contents of this file are subject to the Mozilla Public License Version00006 * 1.1 (the "License"); you may not use this file except in compliance with00007 * the License. You may obtain a copy of the License at00008 * http://www.mozilla.org/MPL/00009 *00010 * Software distributed under the License is distributed on an "AS IS" basis,00011 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License00012 * for the specific language governing rights and limitations under the00013 * License.00014 *00015 * The Original Code is the Platform for Privacy Preferences.00016 *00017 * The Initial Developer of the Original Code is00018 * Netscape Communications Corporation.00019 * Portions created by the Initial Developer are Copyright (C) 200200020 * the Initial Developer. All Rights Reserved.00021 *00022 * Contributor(s): Harish Dhurvasula <harishd@netscape.com>00023 *00024 * Alternatively, the contents of this file may be used under the terms of00025 * either the GNU General Public License Version 2 or later (the "GPL"), or00026 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),00027 * in which case the provisions of the GPL or the LGPL are applicable instead00028 * of those above. If you wish to allow use of your version of this file only00029 * under the terms of either the GPL or the LGPL, and not to allow others to00030 * use your version of this file under the terms of the MPL, indicate your00031 * decision by deleting the provisions above and replace them with the notice00032 * and other provisions required by the GPL or the LGPL. If you do not delete00033 * the provisions above, a recipient may use your version of this file under00034 * the terms of any one of the MPL, the GPL or the LGPL.00035 *00036 * ***** END LICENSE BLOCK ***** */00037
00038 #ifndef NS_P3PUTILS_H__00039 #define NS_P3PUTILS_H__00040 00041 #include "nsString.h"00042 #include "nsCRT.h"00043 #include "nsVoidArray.h"00044 #include "nsCOMPtr.h"00045
00046
00047 class nsIDOMNode;
00048
00049class nsP3PUtils {
00050 public:
00051 staticnsresultGetAttributeValue(nsIDOMNode* aNode, char* aAttrName, nsAString& aAttrValue);
00052 staticnsresultDeterminePolicyScope(constnsVoidArray& aNodeList, constchar* aPath, PRBool* aOut);
00053 staticnsresultGetElementsByTagName(nsIDOMNode* aNode, const nsAString& aTagName, nsVoidArray& aReturn);
00054 staticPRBoolIsPathIncluded(const nsAString& aURI, const nsAString& aPath);
00055 staticPRBoolParseWildCard(nsAString& aLhs, nsAString& aRhs);
00056 staticconstnsDependentSubstringTrimCharsInSet(constchar* aSet, const nsAString& aValue);
00057 staticvoidCleanArray(nsVoidArray& aArray);
00058 private:
00059 // Use the |static| methods |only|00060nsP3PUtils() {}
00061~nsP3PUtils() {}
00062 };
00063
00064 #endif00065 00066