mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-06 00:55:37 +00:00
758f79ff72
This fixes many crashes caused by illegal uses of the nsStdURL. This also allows a plugable protocol to provide their own url parser.
131 lines
4.3 KiB
Plaintext
131 lines
4.3 KiB
Plaintext
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
|
*
|
|
* The contents of this file are subject to the Netscape Public
|
|
* License Version 1.1 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy of
|
|
* the License at http://www.mozilla.org/NPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS
|
|
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
* implied. See the License for the specific language governing
|
|
* rights and limitations under the License.
|
|
*
|
|
* The Original Code is mozilla.org code.
|
|
*
|
|
* The Initial Developer of the Original Code is Andreas Otte
|
|
*
|
|
* Contributor(s):
|
|
*/
|
|
|
|
#include "nsISupports.idl"
|
|
|
|
/**
|
|
* nsIURLParser is the abstract base class for parsing URLs
|
|
*/
|
|
|
|
[scriptable, uuid(4b4975f9-f128-47fd-b11e-88402233cbdf)]
|
|
interface nsIURLParser : nsISupports
|
|
{
|
|
|
|
/**
|
|
* Parses a URL and thinks it is parsing the scheme
|
|
*/
|
|
void ParseAtScheme(in string i_Spec,
|
|
out string o_Scheme,
|
|
out string o_Username,
|
|
out string o_Password,
|
|
out string o_Host,
|
|
out long o_Port,
|
|
out string o_Path);
|
|
|
|
/**
|
|
* Parses a URL and thinks it is parsing the prehost
|
|
*/
|
|
void ParseAtPreHost(in string i_Spec,
|
|
out string o_Username,
|
|
out string o_Password,
|
|
out string o_Host,
|
|
out long o_Port,
|
|
out string o_Path);
|
|
|
|
/**
|
|
* Parses a URL and thinks it is parsing the host
|
|
*/
|
|
void ParseAtHost(in string i_Spec,
|
|
out string o_Host,
|
|
out long o_Port,
|
|
out string o_Path);
|
|
|
|
/**
|
|
* Parses a URL and thinks it is parsing the port
|
|
*/
|
|
void ParseAtPort(in string i_Spec,
|
|
out long o_Port,
|
|
out string o_Path);
|
|
|
|
/**
|
|
* Parses a URL and thinks it is parsing the path
|
|
*/
|
|
void ParseAtPath(in string i_Spec,
|
|
out string o_Path);
|
|
|
|
/**
|
|
* Parses a URL-path and thinks it is parsing the directory
|
|
*/
|
|
void ParseAtDirectory(in string i_Path,
|
|
out string o_Directory,
|
|
out string o_FileBaseName,
|
|
out string o_FileExtension,
|
|
out string o_Param,
|
|
out string o_Query,
|
|
out string o_Ref);
|
|
|
|
/**
|
|
* Parses the URL-PreHost into its components
|
|
*/
|
|
void ParsePreHost(in string i_PreHost,
|
|
out string o_Username,
|
|
out string o_Password);
|
|
|
|
/**
|
|
* Parses the URL-Filename into its components
|
|
*/
|
|
void ParseFileName(in string i_FileName,
|
|
out string o_FileBaseName,
|
|
out string o_FileExtension);
|
|
|
|
};
|
|
|
|
%{C++
|
|
|
|
#define NS_STANDARDURLPARSER_CONTRACT_ID "@mozilla.org/network/standard-urlparser;1"
|
|
#define NS_STANDARDURLPARSER_CID \
|
|
{ /* dbf72351-4fd8-46f0-9dbc-fa5ba60a30c5 */ \
|
|
0xdbf72351, \
|
|
0x4fd8, \
|
|
0x46f0, \
|
|
{0x9d, 0xbc, 0xfa, 0x5b, 0xa6, 0x0a, 0x30, 0x5c} \
|
|
}
|
|
|
|
#define NS_AUTHORITYURLPARSER_CONTRACT_ID "@mozilla.org/network/authority-urlparser;1"
|
|
#define NS_AUTHORITYURLPARSER_CID \
|
|
{ /* 90012125-1616-4fa1-ae14-4e7fa5766eb6 */ \
|
|
0x90012125, \
|
|
0x1616, \
|
|
0x4fa1, \
|
|
{0xae, 0x14, 0x4e, 0x7f, 0xa5, 0x76, 0x6e, 0xb6} \
|
|
}
|
|
|
|
#define NS_NOAUTHORITYURLPARSER_CONTRACT_ID "@mozilla.org/network/authority-urlparser;1"
|
|
#define NS_NOAUTHORITYURLPARSER_CID \
|
|
{ /* 9eeb1b89-c87e-4404-9de6-dbd41aeaf3d7 */ \
|
|
0x9eeb1b89, \
|
|
0xc87e, \
|
|
0x4404, \
|
|
{0x9d, 0xe6, 0xdb, 0xd4, 0x1a, 0xea, 0xf3, 0xd7} \
|
|
}
|
|
|
|
#define NS_IURLPARSER_KEY "@mozilla.org/urlparser;1"
|
|
|
|
%}
|