Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
74451bf3
Commit
74451bf3
authored
Jul 20, 2012
by
Jacek Caban
Committed by
Alexandre Julliard
Jul 20, 2012
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mshtml: Added nsIFileURL stub implementation.
parent
cc533ecc
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
161 additions
and
130 deletions
+161
-130
nsiface.idl
dlls/mshtml/nsiface.idl
+12
-0
nsio.c
dlls/mshtml/nsio.c
+149
-130
No files found.
dlls/mshtml/nsiface.idl
View file @
74451bf3
...
...
@@ -95,6 +95,7 @@ interface nsIDOMRange;
interface
nsIDOMEventTarget
;
interface
nsISelection
;
interface
nsIDOMHTMLSelectElement
;
interface
nsIFile
;
interface
IMoniker
;
...
...
@@ -452,6 +453,17 @@ interface nsIURL : nsIURI
[
object,
uuid(7750029c-1b0a-414e-8359-a77f24a2a0a6),
local
]
interface nsIFileURL : nsIURL
{
nsresult GetFile(nsIFile **aFile);
nsresult SetFile(nsIFile *aFile);
}
[
object,
uuid(321578d0-03c1-4d95-8821-021ac612d18d),
local
]
...
...
dlls/mshtml/nsio.c
View file @
74451bf3
...
...
@@ -53,7 +53,7 @@ static nsINetUtil *net_util;
static
const
char
*
request_method_strings
[]
=
{
"GET"
,
"PUT"
,
"POST"
};
struct
nsWineURI
{
nsI
URL
nsIURL_iface
;
nsI
FileURL
nsIFileURL_iface
;
/* For non-file URL objects, it's just nsIURL */
nsIStandardURL
nsIStandardURL_iface
;
LONG
ref
;
...
...
@@ -273,7 +273,7 @@ HRESULT load_nsuri(HTMLOuterWindow *window, nsWineURI *uri, nsChannelBSC *channe
uri
->
channel_bsc
=
channelbsc
;
doc
=
window
->
base
.
inner_window
->
doc
;
doc
->
skip_mutation_notif
=
TRUE
;
nsres
=
nsIDocShell_LoadURI
(
doc_shell
,
(
nsIURI
*
)
&
uri
->
nsIURL_iface
,
NULL
,
flags
,
FALSE
);
nsres
=
nsIDocShell_LoadURI
(
doc_shell
,
(
nsIURI
*
)
&
uri
->
nsI
File
URL_iface
,
NULL
,
flags
,
FALSE
);
if
(
doc
==
window
->
base
.
inner_window
->
doc
)
doc
->
skip_mutation_notif
=
FALSE
;
uri
->
channel_bsc
=
NULL
;
...
...
@@ -528,7 +528,7 @@ static nsrefcnt NSAPI nsChannel_Release(nsIHttpChannel *iface)
LONG
ref
=
InterlockedDecrement
(
&
This
->
ref
);
if
(
!
ref
)
{
nsIURI_Release
(
&
This
->
uri
->
nsIURL_iface
);
nsIURI_Release
(
&
This
->
uri
->
nsI
File
URL_iface
);
if
(
This
->
owner
)
nsISupports_Release
(
This
->
owner
);
if
(
This
->
post_data_stream
)
...
...
@@ -559,7 +559,7 @@ static nsresult NSAPI nsChannel_GetName(nsIHttpChannel *iface, nsACString *aName
TRACE
(
"(%p)->(%p)
\n
"
,
This
,
aName
);
return
nsIURI_GetSpec
(
&
This
->
uri
->
nsIURL_iface
,
aName
);
return
nsIURI_GetSpec
(
&
This
->
uri
->
nsI
File
URL_iface
,
aName
);
}
static
nsresult
NSAPI
nsChannel_IsPending
(
nsIHttpChannel
*
iface
,
cpp_bool
*
_retval
)
...
...
@@ -688,7 +688,7 @@ static nsresult NSAPI nsChannel_GetURI(nsIHttpChannel *iface, nsIURI **aURI)
TRACE
(
"(%p)->(%p)
\n
"
,
This
,
aURI
);
nsIURI_AddRef
(
&
This
->
uri
->
nsIURL_iface
);
nsIURI_AddRef
(
&
This
->
uri
->
nsI
File
URL_iface
);
*
aURI
=
(
nsIURI
*
)
This
->
uri
;
return
NS_OK
;
...
...
@@ -902,7 +902,7 @@ static HTMLOuterWindow *get_window_from_load_group(nsChannel *This)
window
=
wine_uri
->
window_ref
?
wine_uri
->
window_ref
->
window
:
NULL
;
if
(
window
)
IHTMLWindow2_AddRef
(
&
window
->
base
.
IHTMLWindow2_iface
);
nsIURI_Release
(
&
wine_uri
->
nsIURL_iface
);
nsIURI_Release
(
&
wine_uri
->
nsI
File
URL_iface
);
return
window
;
}
...
...
@@ -1772,26 +1772,29 @@ static nsresult get_uri_string(nsWineURI *This, Uri_PROPERTY prop, nsACString *r
return
NS_OK
;
}
static
inline
nsWineURI
*
impl_from_nsI
URL
(
nsI
URL
*
iface
)
static
inline
nsWineURI
*
impl_from_nsI
FileURL
(
nsIFile
URL
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
nsWineURI
,
nsIURL_iface
);
return
CONTAINING_RECORD
(
iface
,
nsWineURI
,
nsI
File
URL_iface
);
}
static
nsresult
NSAPI
nsURI_QueryInterface
(
nsIURL
*
iface
,
nsIIDRef
riid
,
void
**
result
)
static
nsresult
NSAPI
nsURI_QueryInterface
(
nsI
File
URL
*
iface
,
nsIIDRef
riid
,
void
**
result
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
*
result
=
NULL
;
if
(
IsEqualGUID
(
&
IID_nsISupports
,
riid
))
{
TRACE
(
"(%p)->(IID_nsISupports %p)
\n
"
,
This
,
result
);
*
result
=
&
This
->
nsIURL_iface
;
*
result
=
&
This
->
nsI
File
URL_iface
;
}
else
if
(
IsEqualGUID
(
&
IID_nsIURI
,
riid
))
{
TRACE
(
"(%p)->(IID_nsIURI %p)
\n
"
,
This
,
result
);
*
result
=
&
This
->
nsIURL_iface
;
*
result
=
&
This
->
nsI
File
URL_iface
;
}
else
if
(
IsEqualGUID
(
&
IID_nsIURL
,
riid
))
{
TRACE
(
"(%p)->(IID_nsIURL %p)
\n
"
,
This
,
result
);
*
result
=
&
This
->
nsIURL_iface
;
*
result
=
&
This
->
nsIFileURL_iface
;
}
else
if
(
IsEqualGUID
(
&
IID_nsIFileURL
,
riid
))
{
TRACE
(
"(%p)->(IID_nsIFileURL %p)
\n
"
,
This
,
result
);
*
result
=
This
->
scheme
==
URL_SCHEME_FILE
?
&
This
->
nsIFileURL_iface
:
NULL
;
}
else
if
(
IsEqualGUID
(
&
IID_nsIMutable
,
riid
))
{
TRACE
(
"(%p)->(IID_nsIMutable %p)
\n
"
,
This
,
result
);
*
result
=
&
This
->
nsIStandardURL_iface
;
...
...
@@ -1804,7 +1807,7 @@ static nsresult NSAPI nsURI_QueryInterface(nsIURL *iface, nsIIDRef riid, void **
}
if
(
*
result
)
{
nsIURI_AddRef
(
&
This
->
nsIURL_iface
);
nsIURI_AddRef
(
&
This
->
nsI
File
URL_iface
);
return
NS_OK
;
}
...
...
@@ -1812,9 +1815,9 @@ static nsresult NSAPI nsURI_QueryInterface(nsIURL *iface, nsIIDRef riid, void **
return
NS_NOINTERFACE
;
}
static
nsrefcnt
NSAPI
nsURI_AddRef
(
nsIURL
*
iface
)
static
nsrefcnt
NSAPI
nsURI_AddRef
(
nsI
File
URL
*
iface
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
LONG
ref
=
InterlockedIncrement
(
&
This
->
ref
);
TRACE
(
"(%p) ref=%d
\n
"
,
This
,
ref
);
...
...
@@ -1822,9 +1825,9 @@ static nsrefcnt NSAPI nsURI_AddRef(nsIURL *iface)
return
ref
;
}
static
nsrefcnt
NSAPI
nsURI_Release
(
nsIURL
*
iface
)
static
nsrefcnt
NSAPI
nsURI_Release
(
nsI
File
URL
*
iface
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
LONG
ref
=
InterlockedDecrement
(
&
This
->
ref
);
TRACE
(
"(%p) ref=%d
\n
"
,
This
,
ref
);
...
...
@@ -1842,18 +1845,18 @@ static nsrefcnt NSAPI nsURI_Release(nsIURL *iface)
return
ref
;
}
static
nsresult
NSAPI
nsURI_GetSpec
(
nsIURL
*
iface
,
nsACString
*
aSpec
)
static
nsresult
NSAPI
nsURI_GetSpec
(
nsI
File
URL
*
iface
,
nsACString
*
aSpec
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
TRACE
(
"(%p)->(%p)
\n
"
,
This
,
aSpec
);
return
get_uri_string
(
This
,
Uri_PROPERTY_DISPLAY_URI
,
aSpec
);
}
static
nsresult
NSAPI
nsURI_SetSpec
(
nsIURL
*
iface
,
const
nsACString
*
aSpec
)
static
nsresult
NSAPI
nsURI_SetSpec
(
nsI
File
URL
*
iface
,
const
nsACString
*
aSpec
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
const
char
*
speca
;
WCHAR
*
spec
;
IUri
*
uri
;
...
...
@@ -1886,16 +1889,16 @@ static nsresult NSAPI nsURI_SetSpec(nsIURL *iface, const nsACString *aSpec)
return
NS_OK
;
}
static
nsresult
NSAPI
nsURI_GetPrePath
(
nsIURL
*
iface
,
nsACString
*
aPrePath
)
static
nsresult
NSAPI
nsURI_GetPrePath
(
nsI
File
URL
*
iface
,
nsACString
*
aPrePath
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
aPrePath
);
return
NS_ERROR_NOT_IMPLEMENTED
;
}
static
nsresult
NSAPI
nsURI_GetScheme
(
nsIURL
*
iface
,
nsACString
*
aScheme
)
static
nsresult
NSAPI
nsURI_GetScheme
(
nsI
File
URL
*
iface
,
nsACString
*
aScheme
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
DWORD
scheme
;
HRESULT
hres
;
...
...
@@ -1918,9 +1921,9 @@ static nsresult NSAPI nsURI_GetScheme(nsIURL *iface, nsACString *aScheme)
return
get_uri_string
(
This
,
Uri_PROPERTY_SCHEME_NAME
,
aScheme
);
}
static
nsresult
NSAPI
nsURI_SetScheme
(
nsIURL
*
iface
,
const
nsACString
*
aScheme
)
static
nsresult
NSAPI
nsURI_SetScheme
(
nsI
File
URL
*
iface
,
const
nsACString
*
aScheme
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
const
char
*
schemea
;
WCHAR
*
scheme
;
HRESULT
hres
;
...
...
@@ -1943,9 +1946,9 @@ static nsresult NSAPI nsURI_SetScheme(nsIURL *iface, const nsACString *aScheme)
return
NS_OK
;
}
static
nsresult
NSAPI
nsURI_GetUserPass
(
nsIURL
*
iface
,
nsACString
*
aUserPass
)
static
nsresult
NSAPI
nsURI_GetUserPass
(
nsI
File
URL
*
iface
,
nsACString
*
aUserPass
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
BSTR
user
,
pass
;
HRESULT
hres
;
...
...
@@ -1975,9 +1978,9 @@ static nsresult NSAPI nsURI_GetUserPass(nsIURL *iface, nsACString *aUserPass)
return
NS_OK
;
}
static
nsresult
NSAPI
nsURI_SetUserPass
(
nsIURL
*
iface
,
const
nsACString
*
aUserPass
)
static
nsresult
NSAPI
nsURI_SetUserPass
(
nsI
File
URL
*
iface
,
const
nsACString
*
aUserPass
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
WCHAR
*
user
=
NULL
,
*
pass
=
NULL
,
*
buf
=
NULL
;
const
char
*
user_pass
;
HRESULT
hres
;
...
...
@@ -2016,18 +2019,18 @@ static nsresult NSAPI nsURI_SetUserPass(nsIURL *iface, const nsACString *aUserPa
return
SUCCEEDED
(
hres
)
?
NS_OK
:
NS_ERROR_FAILURE
;
}
static
nsresult
NSAPI
nsURI_GetUsername
(
nsIURL
*
iface
,
nsACString
*
aUsername
)
static
nsresult
NSAPI
nsURI_GetUsername
(
nsI
File
URL
*
iface
,
nsACString
*
aUsername
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
TRACE
(
"(%p)->(%p)
\n
"
,
This
,
aUsername
);
return
get_uri_string
(
This
,
Uri_PROPERTY_USER_NAME
,
aUsername
);
}
static
nsresult
NSAPI
nsURI_SetUsername
(
nsIURL
*
iface
,
const
nsACString
*
aUsername
)
static
nsresult
NSAPI
nsURI_SetUsername
(
nsI
File
URL
*
iface
,
const
nsACString
*
aUsername
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
const
char
*
usera
;
WCHAR
*
user
;
HRESULT
hres
;
...
...
@@ -2050,18 +2053,18 @@ static nsresult NSAPI nsURI_SetUsername(nsIURL *iface, const nsACString *aUserna
return
NS_OK
;
}
static
nsresult
NSAPI
nsURI_GetPassword
(
nsIURL
*
iface
,
nsACString
*
aPassword
)
static
nsresult
NSAPI
nsURI_GetPassword
(
nsI
File
URL
*
iface
,
nsACString
*
aPassword
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
TRACE
(
"(%p)->(%p)
\n
"
,
This
,
aPassword
);
return
get_uri_string
(
This
,
Uri_PROPERTY_PASSWORD
,
aPassword
);
}
static
nsresult
NSAPI
nsURI_SetPassword
(
nsIURL
*
iface
,
const
nsACString
*
aPassword
)
static
nsresult
NSAPI
nsURI_SetPassword
(
nsI
File
URL
*
iface
,
const
nsACString
*
aPassword
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
const
char
*
passa
;
WCHAR
*
pass
;
HRESULT
hres
;
...
...
@@ -2084,9 +2087,9 @@ static nsresult NSAPI nsURI_SetPassword(nsIURL *iface, const nsACString *aPasswo
return
NS_OK
;
}
static
nsresult
NSAPI
nsURI_GetHostPort
(
nsIURL
*
iface
,
nsACString
*
aHostPort
)
static
nsresult
NSAPI
nsURI_GetHostPort
(
nsI
File
URL
*
iface
,
nsACString
*
aHostPort
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
const
WCHAR
*
ptr
;
char
*
vala
;
BSTR
val
;
...
...
@@ -2118,9 +2121,9 @@ static nsresult NSAPI nsURI_GetHostPort(nsIURL *iface, nsACString *aHostPort)
return
NS_OK
;
}
static
nsresult
NSAPI
nsURI_SetHostPort
(
nsIURL
*
iface
,
const
nsACString
*
aHostPort
)
static
nsresult
NSAPI
nsURI_SetHostPort
(
nsI
File
URL
*
iface
,
const
nsACString
*
aHostPort
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
WARN
(
"(%p)->(%s)
\n
"
,
This
,
debugstr_nsacstr
(
aHostPort
));
...
...
@@ -2128,18 +2131,18 @@ static nsresult NSAPI nsURI_SetHostPort(nsIURL *iface, const nsACString *aHostPo
return
NS_ERROR_NOT_IMPLEMENTED
;
}
static
nsresult
NSAPI
nsURI_GetHost
(
nsIURL
*
iface
,
nsACString
*
aHost
)
static
nsresult
NSAPI
nsURI_GetHost
(
nsI
File
URL
*
iface
,
nsACString
*
aHost
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
TRACE
(
"(%p)->(%p)
\n
"
,
This
,
aHost
);
return
get_uri_string
(
This
,
Uri_PROPERTY_HOST
,
aHost
);
}
static
nsresult
NSAPI
nsURI_SetHost
(
nsIURL
*
iface
,
const
nsACString
*
aHost
)
static
nsresult
NSAPI
nsURI_SetHost
(
nsI
File
URL
*
iface
,
const
nsACString
*
aHost
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
const
char
*
hosta
;
WCHAR
*
host
;
HRESULT
hres
;
...
...
@@ -2162,9 +2165,9 @@ static nsresult NSAPI nsURI_SetHost(nsIURL *iface, const nsACString *aHost)
return
NS_OK
;
}
static
nsresult
NSAPI
nsURI_GetPort
(
nsIURL
*
iface
,
PRInt32
*
aPort
)
static
nsresult
NSAPI
nsURI_GetPort
(
nsI
File
URL
*
iface
,
PRInt32
*
aPort
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
DWORD
port
;
HRESULT
hres
;
...
...
@@ -2183,9 +2186,9 @@ static nsresult NSAPI nsURI_GetPort(nsIURL *iface, PRInt32 *aPort)
return
NS_OK
;
}
static
nsresult
NSAPI
nsURI_SetPort
(
nsIURL
*
iface
,
PRInt32
aPort
)
static
nsresult
NSAPI
nsURI_SetPort
(
nsI
File
URL
*
iface
,
PRInt32
aPort
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
HRESULT
hres
;
TRACE
(
"(%p)->(%d)
\n
"
,
This
,
aPort
);
...
...
@@ -2197,18 +2200,18 @@ static nsresult NSAPI nsURI_SetPort(nsIURL *iface, PRInt32 aPort)
return
SUCCEEDED
(
hres
)
?
NS_OK
:
NS_ERROR_FAILURE
;
}
static
nsresult
NSAPI
nsURI_GetPath
(
nsIURL
*
iface
,
nsACString
*
aPath
)
static
nsresult
NSAPI
nsURI_GetPath
(
nsI
File
URL
*
iface
,
nsACString
*
aPath
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
TRACE
(
"(%p)->(%p)
\n
"
,
This
,
aPath
);
return
get_uri_string
(
This
,
Uri_PROPERTY_PATH
,
aPath
);
}
static
nsresult
NSAPI
nsURI_SetPath
(
nsIURL
*
iface
,
const
nsACString
*
aPath
)
static
nsresult
NSAPI
nsURI_SetPath
(
nsI
File
URL
*
iface
,
const
nsACString
*
aPath
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
const
char
*
patha
;
WCHAR
*
path
;
HRESULT
hres
;
...
...
@@ -2231,9 +2234,9 @@ static nsresult NSAPI nsURI_SetPath(nsIURL *iface, const nsACString *aPath)
return
NS_OK
;
}
static
nsresult
NSAPI
nsURI_Equals
(
nsIURL
*
iface
,
nsIURI
*
other
,
cpp_bool
*
_retval
)
static
nsresult
NSAPI
nsURI_Equals
(
nsI
File
URL
*
iface
,
nsIURI
*
other
,
cpp_bool
*
_retval
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
nsWineURI
*
other_obj
;
nsresult
nsres
;
HRESULT
hres
;
...
...
@@ -2261,13 +2264,13 @@ static nsresult NSAPI nsURI_Equals(nsIURL *iface, nsIURI *other, cpp_bool *_retv
nsres
=
NS_ERROR_UNEXPECTED
;
}
nsIURI_Release
(
&
other_obj
->
nsIURL_iface
);
nsIURI_Release
(
&
other_obj
->
nsI
File
URL_iface
);
return
nsres
;
}
static
nsresult
NSAPI
nsURI_SchemeIs
(
nsIURL
*
iface
,
const
char
*
scheme
,
cpp_bool
*
_retval
)
static
nsresult
NSAPI
nsURI_SchemeIs
(
nsI
File
URL
*
iface
,
const
char
*
scheme
,
cpp_bool
*
_retval
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
WCHAR
buf
[
INTERNET_MAX_SCHEME_LENGTH
];
BSTR
scheme_name
;
HRESULT
hres
;
...
...
@@ -2287,9 +2290,9 @@ static nsresult NSAPI nsURI_SchemeIs(nsIURL *iface, const char *scheme, cpp_bool
return
NS_OK
;
}
static
nsresult
NSAPI
nsURI_Clone
(
nsIURL
*
iface
,
nsIURI
**
_retval
)
static
nsresult
NSAPI
nsURI_Clone
(
nsI
File
URL
*
iface
,
nsIURI
**
_retval
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
nsWineURI
*
wine_uri
;
nsresult
nsres
;
...
...
@@ -2304,14 +2307,14 @@ static nsresult NSAPI nsURI_Clone(nsIURL *iface, nsIURI **_retval)
return
nsres
;
}
*
_retval
=
(
nsIURI
*
)
&
wine_uri
->
nsIURL_iface
;
*
_retval
=
(
nsIURI
*
)
&
wine_uri
->
nsI
File
URL_iface
;
return
NS_OK
;
}
static
nsresult
NSAPI
nsURI_Resolve
(
nsIURL
*
iface
,
const
nsACString
*
aRelativePath
,
static
nsresult
NSAPI
nsURI_Resolve
(
nsI
File
URL
*
iface
,
const
nsACString
*
aRelativePath
,
nsACString
*
_retval
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
const
char
*
patha
;
IUri
*
new_uri
;
WCHAR
*
path
;
...
...
@@ -2352,34 +2355,34 @@ static nsresult NSAPI nsURI_Resolve(nsIURL *iface, const nsACString *aRelativePa
return
NS_OK
;
}
static
nsresult
NSAPI
nsURI_GetAsciiSpec
(
nsIURL
*
iface
,
nsACString
*
aAsciiSpec
)
static
nsresult
NSAPI
nsURI_GetAsciiSpec
(
nsI
File
URL
*
iface
,
nsACString
*
aAsciiSpec
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
TRACE
(
"(%p)->(%p)
\n
"
,
This
,
aAsciiSpec
);
return
nsIURI_GetSpec
(
&
This
->
nsIURL_iface
,
aAsciiSpec
);
return
nsIURI_GetSpec
(
&
This
->
nsI
File
URL_iface
,
aAsciiSpec
);
}
static
nsresult
NSAPI
nsURI_GetAsciiHost
(
nsIURL
*
iface
,
nsACString
*
aAsciiHost
)
static
nsresult
NSAPI
nsURI_GetAsciiHost
(
nsI
File
URL
*
iface
,
nsACString
*
aAsciiHost
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
WARN
(
"(%p)->(%p) FIXME: Use Uri_PUNYCODE_IDN_HOST flag
\n
"
,
This
,
aAsciiHost
);
return
get_uri_string
(
This
,
Uri_PROPERTY_HOST
,
aAsciiHost
);
}
static
nsresult
NSAPI
nsURI_GetOriginCharset
(
nsIURL
*
iface
,
nsACString
*
aOriginCharset
)
static
nsresult
NSAPI
nsURI_GetOriginCharset
(
nsI
File
URL
*
iface
,
nsACString
*
aOriginCharset
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
aOriginCharset
);
return
NS_ERROR_NOT_IMPLEMENTED
;
}
static
nsresult
NSAPI
nsURL_GetRef
(
nsIURL
*
iface
,
nsACString
*
aRef
)
static
nsresult
NSAPI
nsURL_GetRef
(
nsI
File
URL
*
iface
,
nsACString
*
aRef
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
char
*
refa
=
NULL
;
BSTR
ref
;
HRESULT
hres
;
...
...
@@ -2403,9 +2406,9 @@ static nsresult NSAPI nsURL_GetRef(nsIURL *iface, nsACString *aRef)
return
NS_OK
;
}
static
nsresult
NSAPI
nsURL_SetRef
(
nsIURL
*
iface
,
const
nsACString
*
aRef
)
static
nsresult
NSAPI
nsURL_SetRef
(
nsI
File
URL
*
iface
,
const
nsACString
*
aRef
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
const
char
*
refa
;
WCHAR
*
ref
;
HRESULT
hres
;
...
...
@@ -2428,9 +2431,9 @@ static nsresult NSAPI nsURL_SetRef(nsIURL *iface, const nsACString *aRef)
return
NS_OK
;
}
static
nsresult
NSAPI
nsURI_EqualsExceptRef
(
nsIURL
*
iface
,
nsIURI
*
other
,
cpp_bool
*
_retval
)
static
nsresult
NSAPI
nsURI_EqualsExceptRef
(
nsI
File
URL
*
iface
,
nsIURI
*
other
,
cpp_bool
*
_retval
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
nsWineURI
*
other_obj
;
nsresult
nsres
;
...
...
@@ -2450,13 +2453,13 @@ static nsresult NSAPI nsURI_EqualsExceptRef(nsIURL *iface, nsIURI *other, cpp_bo
nsres
=
NS_ERROR_UNEXPECTED
;
}
nsIURI_Release
(
&
other_obj
->
nsIURL_iface
);
nsIURI_Release
(
&
other_obj
->
nsI
File
URL_iface
);
return
nsres
;
}
static
nsresult
NSAPI
nsURI_CloneIgnoreRef
(
nsIURL
*
iface
,
nsIURI
**
_retval
)
static
nsresult
NSAPI
nsURI_CloneIgnoreRef
(
nsI
File
URL
*
iface
,
nsIURI
**
_retval
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
nsWineURI
*
wine_uri
;
IUri
*
uri
;
nsresult
nsres
;
...
...
@@ -2477,22 +2480,22 @@ static nsresult NSAPI nsURI_CloneIgnoreRef(nsIURL *iface, nsIURI **_retval)
return
nsres
;
}
*
_retval
=
(
nsIURI
*
)
&
wine_uri
->
nsIURL_iface
;
*
_retval
=
(
nsIURI
*
)
&
wine_uri
->
nsI
File
URL_iface
;
return
NS_OK
;
}
static
nsresult
NSAPI
nsURI_GetSpecIgnoringRef
(
nsIURL
*
iface
,
nsACString
*
aSpecIgnoringRef
)
static
nsresult
NSAPI
nsURI_GetSpecIgnoringRef
(
nsI
File
URL
*
iface
,
nsACString
*
aSpecIgnoringRef
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
aSpecIgnoringRef
);
return
nsIURL_GetSpec
(
&
This
->
nsIURL_iface
,
aSpecIgnoringRef
);
return
nsIURL_GetSpec
(
&
This
->
nsI
File
URL_iface
,
aSpecIgnoringRef
);
}
static
nsresult
NSAPI
nsURI_GetHasRef
(
nsIURL
*
iface
,
cpp_bool
*
aHasRef
)
static
nsresult
NSAPI
nsURI_GetHasRef
(
nsI
File
URL
*
iface
,
cpp_bool
*
aHasRef
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
BOOL
b
;
HRESULT
hres
;
...
...
@@ -2509,39 +2512,39 @@ static nsresult NSAPI nsURI_GetHasRef(nsIURL *iface, cpp_bool *aHasRef)
return
NS_OK
;
}
static
nsresult
NSAPI
nsURL_GetFilePath
(
nsIURL
*
iface
,
nsACString
*
aFilePath
)
static
nsresult
NSAPI
nsURL_GetFilePath
(
nsI
File
URL
*
iface
,
nsACString
*
aFilePath
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
TRACE
(
"(%p)->(%p)
\n
"
,
This
,
aFilePath
);
return
nsIURL_GetPath
(
&
This
->
nsIURL_iface
,
aFilePath
);
return
nsIURL_GetPath
(
&
This
->
nsI
File
URL_iface
,
aFilePath
);
}
static
nsresult
NSAPI
nsURL_SetFilePath
(
nsIURL
*
iface
,
const
nsACString
*
aFilePath
)
static
nsresult
NSAPI
nsURL_SetFilePath
(
nsI
File
URL
*
iface
,
const
nsACString
*
aFilePath
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
TRACE
(
"(%p)->(%s)
\n
"
,
This
,
debugstr_nsacstr
(
aFilePath
));
if
(
!
This
->
is_mutable
)
return
NS_ERROR_UNEXPECTED
;
return
nsIURL_SetPath
(
&
This
->
nsIURL_iface
,
aFilePath
);
return
nsIURL_SetPath
(
&
This
->
nsI
File
URL_iface
,
aFilePath
);
}
static
nsresult
NSAPI
nsURL_GetQuery
(
nsIURL
*
iface
,
nsACString
*
aQuery
)
static
nsresult
NSAPI
nsURL_GetQuery
(
nsI
File
URL
*
iface
,
nsACString
*
aQuery
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
TRACE
(
"(%p)->(%p)
\n
"
,
This
,
aQuery
);
return
get_uri_string
(
This
,
Uri_PROPERTY_QUERY
,
aQuery
);
}
static
nsresult
NSAPI
nsURL_SetQuery
(
nsIURL
*
iface
,
const
nsACString
*
aQuery
)
static
nsresult
NSAPI
nsURL_SetQuery
(
nsI
File
URL
*
iface
,
const
nsACString
*
aQuery
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
const
char
*
querya
;
WCHAR
*
query
;
HRESULT
hres
;
...
...
@@ -2591,9 +2594,9 @@ static nsresult get_uri_path(nsWineURI *This, BSTR *path, const WCHAR **file, co
return
NS_OK
;
}
static
nsresult
NSAPI
nsURL_GetDirectory
(
nsIURL
*
iface
,
nsACString
*
aDirectory
)
static
nsresult
NSAPI
nsURL_GetDirectory
(
nsI
File
URL
*
iface
,
nsACString
*
aDirectory
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
const
WCHAR
*
file
;
BSTR
path
;
nsresult
nsres
;
...
...
@@ -2609,9 +2612,9 @@ static nsresult NSAPI nsURL_GetDirectory(nsIURL *iface, nsACString *aDirectory)
return
nsres
;
}
static
nsresult
NSAPI
nsURL_SetDirectory
(
nsIURL
*
iface
,
const
nsACString
*
aDirectory
)
static
nsresult
NSAPI
nsURL_SetDirectory
(
nsI
File
URL
*
iface
,
const
nsACString
*
aDirectory
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
WARN
(
"(%p)->(%s)
\n
"
,
This
,
debugstr_nsacstr
(
aDirectory
));
...
...
@@ -2619,9 +2622,9 @@ static nsresult NSAPI nsURL_SetDirectory(nsIURL *iface, const nsACString *aDirec
return
NS_ERROR_NOT_IMPLEMENTED
;
}
static
nsresult
NSAPI
nsURL_GetFileName
(
nsIURL
*
iface
,
nsACString
*
aFileName
)
static
nsresult
NSAPI
nsURL_GetFileName
(
nsI
File
URL
*
iface
,
nsACString
*
aFileName
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
const
WCHAR
*
file
;
BSTR
path
;
nsresult
nsres
;
...
...
@@ -2637,16 +2640,16 @@ static nsresult NSAPI nsURL_GetFileName(nsIURL *iface, nsACString *aFileName)
return
nsres
;
}
static
nsresult
NSAPI
nsURL_SetFileName
(
nsIURL
*
iface
,
const
nsACString
*
aFileName
)
static
nsresult
NSAPI
nsURL_SetFileName
(
nsI
File
URL
*
iface
,
const
nsACString
*
aFileName
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
FIXME
(
"(%p)->(%s)
\n
"
,
This
,
debugstr_nsacstr
(
aFileName
));
return
NS_ERROR_NOT_IMPLEMENTED
;
}
static
nsresult
NSAPI
nsURL_GetFileBaseName
(
nsIURL
*
iface
,
nsACString
*
aFileBaseName
)
static
nsresult
NSAPI
nsURL_GetFileBaseName
(
nsI
File
URL
*
iface
,
nsACString
*
aFileBaseName
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
const
WCHAR
*
file
,
*
ext
;
BSTR
path
;
nsresult
nsres
;
...
...
@@ -2662,44 +2665,58 @@ static nsresult NSAPI nsURL_GetFileBaseName(nsIURL *iface, nsACString *aFileBase
return
nsres
;
}
static
nsresult
NSAPI
nsURL_SetFileBaseName
(
nsIURL
*
iface
,
const
nsACString
*
aFileBaseName
)
static
nsresult
NSAPI
nsURL_SetFileBaseName
(
nsI
File
URL
*
iface
,
const
nsACString
*
aFileBaseName
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
FIXME
(
"(%p)->(%s)
\n
"
,
This
,
debugstr_nsacstr
(
aFileBaseName
));
return
NS_ERROR_NOT_IMPLEMENTED
;
}
static
nsresult
NSAPI
nsURL_GetFileExtension
(
nsIURL
*
iface
,
nsACString
*
aFileExtension
)
static
nsresult
NSAPI
nsURL_GetFileExtension
(
nsI
File
URL
*
iface
,
nsACString
*
aFileExtension
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
TRACE
(
"(%p)->(%p)
\n
"
,
This
,
aFileExtension
);
return
get_uri_string
(
This
,
Uri_PROPERTY_EXTENSION
,
aFileExtension
);
}
static
nsresult
NSAPI
nsURL_SetFileExtension
(
nsIURL
*
iface
,
const
nsACString
*
aFileExtension
)
static
nsresult
NSAPI
nsURL_SetFileExtension
(
nsI
File
URL
*
iface
,
const
nsACString
*
aFileExtension
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
FIXME
(
"(%p)->(%s)
\n
"
,
This
,
debugstr_nsacstr
(
aFileExtension
));
return
NS_ERROR_NOT_IMPLEMENTED
;
}
static
nsresult
NSAPI
nsURL_GetCommonBaseSpec
(
nsIURL
*
iface
,
nsIURI
*
aURIToCompare
,
nsACString
*
_retval
)
static
nsresult
NSAPI
nsURL_GetCommonBaseSpec
(
nsI
File
URL
*
iface
,
nsIURI
*
aURIToCompare
,
nsACString
*
_retval
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
FIXME
(
"(%p)->(%p %p)
\n
"
,
This
,
aURIToCompare
,
_retval
);
return
NS_ERROR_NOT_IMPLEMENTED
;
}
static
nsresult
NSAPI
nsURL_GetRelativeSpec
(
nsIURL
*
iface
,
nsIURI
*
aURIToCompare
,
nsACString
*
_retval
)
static
nsresult
NSAPI
nsURL_GetRelativeSpec
(
nsI
File
URL
*
iface
,
nsIURI
*
aURIToCompare
,
nsACString
*
_retval
)
{
nsWineURI
*
This
=
impl_from_nsIURL
(
iface
);
nsWineURI
*
This
=
impl_from_nsI
File
URL
(
iface
);
FIXME
(
"(%p)->(%p %p)
\n
"
,
This
,
aURIToCompare
,
_retval
);
return
NS_ERROR_NOT_IMPLEMENTED
;
}
static
const
nsIURLVtbl
nsURLVtbl
=
{
static
nsresult
NSAPI
nsFileURL_GetFile
(
nsIFileURL
*
iface
,
nsIFile
**
aFile
)
{
nsWineURI
*
This
=
impl_from_nsIFileURL
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
aFile
);
return
NS_ERROR_NOT_IMPLEMENTED
;
}
static
nsresult
NSAPI
nsFileURL_SetFile
(
nsIFileURL
*
iface
,
nsIFile
*
aFile
)
{
nsWineURI
*
This
=
impl_from_nsIFileURL
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
aFile
);
return
NS_ERROR_NOT_IMPLEMENTED
;
}
static
const
nsIFileURLVtbl
nsFileURLVtbl
=
{
nsURI_QueryInterface
,
nsURI_AddRef
,
nsURI_Release
,
...
...
@@ -2748,7 +2765,9 @@ static const nsIURLVtbl nsURLVtbl = {
nsURL_GetFileExtension
,
nsURL_SetFileExtension
,
nsURL_GetCommonBaseSpec
,
nsURL_GetRelativeSpec
nsURL_GetRelativeSpec
,
nsFileURL_GetFile
,
nsFileURL_SetFile
};
static
inline
nsWineURI
*
impl_from_nsIStandardURL
(
nsIStandardURL
*
iface
)
...
...
@@ -2760,19 +2779,19 @@ static nsresult NSAPI nsStandardURL_QueryInterface(nsIStandardURL *iface, nsIIDR
void
**
result
)
{
nsWineURI
*
This
=
impl_from_nsIStandardURL
(
iface
);
return
nsIURL_QueryInterface
(
&
This
->
nsIURL_iface
,
riid
,
result
);
return
nsIURL_QueryInterface
(
&
This
->
nsI
File
URL_iface
,
riid
,
result
);
}
static
nsrefcnt
NSAPI
nsStandardURL_AddRef
(
nsIStandardURL
*
iface
)
{
nsWineURI
*
This
=
impl_from_nsIStandardURL
(
iface
);
return
nsIURL_AddRef
(
&
This
->
nsIURL_iface
);
return
nsIURL_AddRef
(
&
This
->
nsI
File
URL_iface
);
}
static
nsrefcnt
NSAPI
nsStandardURL_Release
(
nsIStandardURL
*
iface
)
{
nsWineURI
*
This
=
impl_from_nsIStandardURL
(
iface
);
return
nsIURL_Release
(
&
This
->
nsIURL_iface
);
return
nsIURL_Release
(
&
This
->
nsI
File
URL_iface
);
}
static
nsresult
NSAPI
nsStandardURL_GetMutable
(
nsIStandardURL
*
iface
,
cpp_bool
*
aMutable
)
...
...
@@ -2817,7 +2836,7 @@ static nsresult create_nsuri(IUri *iuri, HTMLOuterWindow *window, NSContainer *c
nsWineURI
*
ret
=
heap_alloc_zero
(
sizeof
(
nsWineURI
));
HRESULT
hres
;
ret
->
nsI
URL_iface
.
lpVtbl
=
&
ns
URLVtbl
;
ret
->
nsI
FileURL_iface
.
lpVtbl
=
&
nsFile
URLVtbl
;
ret
->
nsIStandardURL_iface
.
lpVtbl
=
&
nsStandardURLVtbl
;
ret
->
ref
=
1
;
ret
->
is_mutable
=
TRUE
;
...
...
@@ -2878,7 +2897,7 @@ static nsresult create_nschannel(nsWineURI *uri, nsChannel **ret)
list_init
(
&
channel
->
response_headers
);
list_init
(
&
channel
->
request_headers
);
nsIURL_AddRef
(
&
uri
->
nsIURL_iface
);
nsIURL_AddRef
(
&
uri
->
nsI
File
URL_iface
);
channel
->
uri
=
uri
;
*
ret
=
channel
;
...
...
@@ -2906,7 +2925,7 @@ HRESULT create_redirect_nschannel(const WCHAR *url, nsChannel *orig_channel, nsC
return
E_FAIL
;
nsres
=
create_nschannel
(
uri
,
&
channel
);
nsIURL_Release
(
&
uri
->
nsIURL_iface
);
nsIURL_Release
(
&
uri
->
nsI
File
URL_iface
);
if
(
NS_FAILED
(
nsres
))
return
E_FAIL
;
...
...
@@ -3219,11 +3238,11 @@ static nsresult NSAPI nsIOService_NewURI(nsIIOService *iface, const nsACString *
nsres
=
create_nsuri
(
urlmon_uri
,
window
,
NULL
,
&
wine_uri
);
IUri_Release
(
urlmon_uri
);
if
(
base_wine_uri
)
nsIURI_Release
(
&
base_wine_uri
->
nsIURL_iface
);
nsIURI_Release
(
&
base_wine_uri
->
nsI
File
URL_iface
);
if
(
NS_FAILED
(
nsres
))
return
nsres
;
*
_retval
=
(
nsIURI
*
)
&
wine_uri
->
nsIURL_iface
;
*
_retval
=
(
nsIURI
*
)
&
wine_uri
->
nsI
File
URL_iface
;
return
nsres
;
}
...
...
@@ -3250,7 +3269,7 @@ static nsresult NSAPI nsIOService_NewChannelFromURI(nsIIOService *iface, nsIURI
}
nsres
=
create_nschannel
(
wine_uri
,
&
ret
);
nsIURL_Release
(
&
wine_uri
->
nsIURL_iface
);
nsIURL_Release
(
&
wine_uri
->
nsI
File
URL_iface
);
if
(
NS_FAILED
(
nsres
))
return
nsres
;
...
...
@@ -3546,7 +3565,7 @@ nsresult on_start_uri_open(NSContainer *nscontainer, nsIURI *uri, cpp_bool *_ret
*
_retval
=
translate_url
(
nscontainer
->
doc
,
wine_uri
);
}
nsIURI_Release
(
&
wine_uri
->
nsIURL_iface
);
nsIURI_Release
(
&
wine_uri
->
nsI
File
URL_iface
);
return
NS_OK
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment