mshtml: Wine Gecko 0.9.0 release.
This commit is contained in:
parent
03a83c49db
commit
8d28f09d8a
|
@ -45,6 +45,7 @@ C_SRCS = \
|
|||
install.c \
|
||||
loadopts.c \
|
||||
main.c \
|
||||
mutation.c \
|
||||
navigate.c \
|
||||
nsembed.c \
|
||||
nsevents.c \
|
||||
|
|
|
@ -548,18 +548,18 @@ static HRESULT WINAPI HTMLElement2_removeFilter(IHTMLElement2 *iface, IUnknown *
|
|||
static HRESULT WINAPI HTMLElement2_get_clientHeight(IHTMLElement2 *iface, long *p)
|
||||
{
|
||||
HTMLElement *This = HTMLELEM2_THIS(iface);
|
||||
nsIDOMNSHTMLElement *nselem;
|
||||
nsIDOMNSElement *nselem;
|
||||
PRInt32 height=0;
|
||||
nsresult nsres;
|
||||
|
||||
TRACE("(%p)->(%p)\n", This, p);
|
||||
|
||||
nsres = nsIDOMHTMLElement_QueryInterface(This->nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem);
|
||||
nsres = nsIDOMHTMLElement_QueryInterface(This->nselem, &IID_nsIDOMNSElement, (void**)&nselem);
|
||||
if(NS_SUCCEEDED(nsres)) {
|
||||
nsIDOMNSHTMLElement_GetClientHeight(nselem, &height);
|
||||
nsIDOMNSHTMLElement_Release(nselem);
|
||||
nsIDOMNSElement_GetClientHeight(nselem, &height);
|
||||
nsIDOMNSElement_Release(nselem);
|
||||
}else {
|
||||
ERR("Could not get nsIDOMHTMLNSElement: %08x\n", nsres);
|
||||
ERR("Could not get nsIDOMNSElement: %08x\n", nsres);
|
||||
}
|
||||
|
||||
*p = height;
|
||||
|
@ -569,18 +569,18 @@ static HRESULT WINAPI HTMLElement2_get_clientHeight(IHTMLElement2 *iface, long *
|
|||
static HRESULT WINAPI HTMLElement2_get_clientWidth(IHTMLElement2 *iface, long *p)
|
||||
{
|
||||
HTMLElement *This = HTMLELEM2_THIS(iface);
|
||||
nsIDOMNSHTMLElement *nselem;
|
||||
nsIDOMNSElement *nselem;
|
||||
PRInt32 width=0;
|
||||
nsresult nsres;
|
||||
|
||||
TRACE("(%p)->(%p)\n", This, p);
|
||||
|
||||
nsres = nsIDOMHTMLElement_QueryInterface(This->nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem);
|
||||
nsres = nsIDOMHTMLElement_QueryInterface(This->nselem, &IID_nsIDOMNSElement, (void**)&nselem);
|
||||
if(NS_SUCCEEDED(nsres)) {
|
||||
nsIDOMNSHTMLElement_GetClientWidth(nselem, &width);
|
||||
nsIDOMNSHTMLElement_Release(nselem);
|
||||
nsIDOMNSElement_GetClientWidth(nselem, &width);
|
||||
nsIDOMNSElement_Release(nselem);
|
||||
}else {
|
||||
ERR("Could not get nsIDOMHTMLNSElement: %08x\n", nsres);
|
||||
ERR("Could not get nsIDOMNSElement: %08x\n", nsres);
|
||||
}
|
||||
|
||||
*p = width;
|
||||
|
@ -727,7 +727,7 @@ static HRESULT WINAPI HTMLElement2_createControlRange(IHTMLElement2 *iface, IDis
|
|||
static HRESULT WINAPI HTMLElement2_get_scrollHeight(IHTMLElement2 *iface, long *p)
|
||||
{
|
||||
HTMLElement *This = HTMLELEM2_THIS(iface);
|
||||
nsIDOMNSHTMLElement *nselem;
|
||||
nsIDOMNSElement *nselem;
|
||||
PRInt32 height = 0;
|
||||
nsresult nsres;
|
||||
|
||||
|
@ -735,15 +735,15 @@ static HRESULT WINAPI HTMLElement2_get_scrollHeight(IHTMLElement2 *iface, long *
|
|||
|
||||
nsres = nsIDOMElement_QueryInterface(This->nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem);
|
||||
if(NS_SUCCEEDED(nsres)) {
|
||||
nsres = nsIDOMNSHTMLElement_GetScrollHeight(nselem, &height);
|
||||
nsIDOMNSHTMLElement_Release(nselem);
|
||||
nsres = nsIDOMNSElement_GetScrollHeight(nselem, &height);
|
||||
nsIDOMNSElement_Release(nselem);
|
||||
if(NS_FAILED(nsres))
|
||||
ERR("GetScrollHeight failed: %08x\n", nsres);
|
||||
}else {
|
||||
ERR("Could not get nsIDOMNSHTMLElement interface: %08x\n", nsres);
|
||||
ERR("Could not get nsIDOMNSElement interface: %08x\n", nsres);
|
||||
}
|
||||
|
||||
*p = height;
|
||||
*p = height == -1 ? 0 : height;
|
||||
TRACE("*p = %ld\n", *p);
|
||||
|
||||
return S_OK;
|
||||
|
@ -752,20 +752,20 @@ static HRESULT WINAPI HTMLElement2_get_scrollHeight(IHTMLElement2 *iface, long *
|
|||
static HRESULT WINAPI HTMLElement2_get_scrollWidth(IHTMLElement2 *iface, long *p)
|
||||
{
|
||||
HTMLElement *This = HTMLELEM2_THIS(iface);
|
||||
nsIDOMNSHTMLElement *nselem;
|
||||
nsIDOMNSElement *nselem;
|
||||
PRInt32 width = 0;
|
||||
nsresult nsres;
|
||||
|
||||
TRACE("(%p)->(%p)\n", This, p);
|
||||
|
||||
nsres = nsIDOMElement_QueryInterface(This->nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem);
|
||||
nsres = nsIDOMElement_QueryInterface(This->nselem, &IID_nsIDOMNSElement, (void**)&nselem);
|
||||
if(NS_SUCCEEDED(nsres)) {
|
||||
nsres = nsIDOMNSHTMLElement_GetScrollWidth(nselem, &width);
|
||||
nsIDOMNSHTMLElement_Release(nselem);
|
||||
nsres = nsIDOMNSElement_GetScrollWidth(nselem, &width);
|
||||
nsIDOMNSElement_Release(nselem);
|
||||
if(NS_FAILED(nsres))
|
||||
ERR("GetScrollWidth failed: %08x\n", nsres);
|
||||
}else {
|
||||
ERR("Could not get nsIDOMNSHTMLElement interface: %08x\n", nsres);
|
||||
ERR("Could not get nsIDOMNSElement interface: %08x\n", nsres);
|
||||
}
|
||||
|
||||
*p = width;
|
||||
|
@ -777,7 +777,7 @@ static HRESULT WINAPI HTMLElement2_get_scrollWidth(IHTMLElement2 *iface, long *p
|
|||
static HRESULT WINAPI HTMLElement2_put_scrollTop(IHTMLElement2 *iface, long v)
|
||||
{
|
||||
HTMLElement *This = HTMLELEM2_THIS(iface);
|
||||
nsIDOMNSHTMLElement *nselem;
|
||||
nsIDOMNSElement *nselem;
|
||||
nsresult nsres;
|
||||
|
||||
TRACE("(%p)->(%ld)\n", This, v);
|
||||
|
@ -787,12 +787,12 @@ static HRESULT WINAPI HTMLElement2_put_scrollTop(IHTMLElement2 *iface, long v)
|
|||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
nsres = nsIDOMHTMLElement_QueryInterface(This->nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem);
|
||||
nsres = nsIDOMHTMLElement_QueryInterface(This->nselem, &IID_nsIDOMNSElement, (void**)&nselem);
|
||||
if(NS_SUCCEEDED(nsres)) {
|
||||
nsIDOMNSHTMLElement_SetScrollTop(nselem, v);
|
||||
nsIDOMNSHTMLElement_Release(nselem);
|
||||
nsIDOMNSElement_SetScrollTop(nselem, v);
|
||||
nsIDOMNSElement_Release(nselem);
|
||||
}else {
|
||||
ERR("Could not get nsIDOMNSHTMLElement interface: %08x\n", nsres);
|
||||
ERR("Could not get nsIDOMNSElement interface: %08x\n", nsres);
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
|
@ -801,20 +801,20 @@ static HRESULT WINAPI HTMLElement2_put_scrollTop(IHTMLElement2 *iface, long v)
|
|||
static HRESULT WINAPI HTMLElement2_get_scrollTop(IHTMLElement2 *iface, long *p)
|
||||
{
|
||||
HTMLElement *This = HTMLELEM2_THIS(iface);
|
||||
nsIDOMNSHTMLElement *nselem;
|
||||
nsIDOMNSElement *nselem;
|
||||
PRInt32 top = 0;
|
||||
nsresult nsres;
|
||||
|
||||
TRACE("(%p)->(%p)\n", This, p);
|
||||
|
||||
nsres = nsIDOMElement_QueryInterface(This->nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem);
|
||||
nsres = nsIDOMElement_QueryInterface(This->nselem, &IID_nsIDOMNSElement, (void**)&nselem);
|
||||
if(NS_SUCCEEDED(nsres)) {
|
||||
nsres = nsIDOMNSHTMLElement_GetScrollTop(nselem, &top);
|
||||
nsIDOMNSHTMLElement_Release(nselem);
|
||||
nsres = nsIDOMNSElement_GetScrollTop(nselem, &top);
|
||||
nsIDOMNSElement_Release(nselem);
|
||||
if(NS_FAILED(nsres))
|
||||
ERR("GetScrollTop failed: %08x\n", nsres);
|
||||
}else {
|
||||
ERR("Could not get nsIDOMNSHTMLElement interface: %08x\n", nsres);
|
||||
ERR("Could not get nsIDOMNSElement interface: %08x\n", nsres);
|
||||
}
|
||||
|
||||
*p = top;
|
||||
|
@ -826,7 +826,7 @@ static HRESULT WINAPI HTMLElement2_get_scrollTop(IHTMLElement2 *iface, long *p)
|
|||
static HRESULT WINAPI HTMLElement2_put_scrollLeft(IHTMLElement2 *iface, long v)
|
||||
{
|
||||
HTMLElement *This = HTMLELEM2_THIS(iface);
|
||||
nsIDOMNSHTMLElement *nselem;
|
||||
nsIDOMNSElement *nselem;
|
||||
nsresult nsres;
|
||||
|
||||
TRACE("(%p)->(%ld)\n", This, v);
|
||||
|
@ -836,12 +836,12 @@ static HRESULT WINAPI HTMLElement2_put_scrollLeft(IHTMLElement2 *iface, long v)
|
|||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
nsres = nsIDOMHTMLElement_QueryInterface(This->nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem);
|
||||
nsres = nsIDOMElement_QueryInterface(This->nselem, &IID_nsIDOMNSElement, (void**)&nselem);
|
||||
if(NS_SUCCEEDED(nsres)) {
|
||||
nsIDOMNSHTMLElement_SetScrollLeft(nselem, v);
|
||||
nsIDOMNSHTMLElement_Release(nselem);
|
||||
nsIDOMNSElement_SetScrollLeft(nselem, v);
|
||||
nsIDOMNSElement_Release(nselem);
|
||||
}else {
|
||||
ERR("Could not get nsIDOMNSHTMLElement interface: %08x\n", nsres);
|
||||
ERR("Could not get nsIDOMNSElement interface: %08x\n", nsres);
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
|
@ -850,7 +850,7 @@ static HRESULT WINAPI HTMLElement2_put_scrollLeft(IHTMLElement2 *iface, long v)
|
|||
static HRESULT WINAPI HTMLElement2_get_scrollLeft(IHTMLElement2 *iface, long *p)
|
||||
{
|
||||
HTMLElement *This = HTMLELEM2_THIS(iface);
|
||||
nsIDOMNSHTMLElement *nselem;
|
||||
nsIDOMNSElement *nselem;
|
||||
PRInt32 left = 0;
|
||||
nsresult nsres;
|
||||
|
||||
|
@ -865,11 +865,11 @@ static HRESULT WINAPI HTMLElement2_get_scrollLeft(IHTMLElement2 *iface, long *p)
|
|||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
nsres = nsIDOMHTMLElement_QueryInterface(This->nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem);
|
||||
nsres = nsIDOMHTMLElement_QueryInterface(This->nselem, &IID_nsIDOMNSElement, (void**)&nselem);
|
||||
if(NS_SUCCEEDED(nsres))
|
||||
{
|
||||
nsres = nsIDOMNSHTMLElement_GetScrollLeft(nselem, &left);
|
||||
nsIDOMNSHTMLElement_Release(nselem);
|
||||
nsres = nsIDOMNSElement_GetScrollLeft(nselem, &left);
|
||||
nsIDOMNSElement_Release(nselem);
|
||||
if(NS_FAILED(nsres))
|
||||
left = 0;
|
||||
}
|
||||
|
|
|
@ -296,6 +296,13 @@ typedef struct {
|
|||
NSContainer *This;
|
||||
} nsEventListener;
|
||||
|
||||
typedef struct _mutation_queue_t {
|
||||
DWORD type;
|
||||
nsISupports *nsiface;
|
||||
|
||||
struct _mutation_queue_t *next;
|
||||
} mutation_queue_t;
|
||||
|
||||
struct NSContainer {
|
||||
const nsIWebBrowserChromeVtbl *lpWebBrowserChromeVtbl;
|
||||
const nsIContextMenuListenerVtbl *lpContextMenuListenerVtbl;
|
||||
|
@ -306,6 +313,10 @@ struct NSContainer {
|
|||
const nsIWeakReferenceVtbl *lpWeakReferenceVtbl;
|
||||
const nsISupportsWeakReferenceVtbl *lpSupportsWeakReferenceVtbl;
|
||||
|
||||
const nsIDocumentObserverVtbl *lpDocumentObserverVtbl;
|
||||
|
||||
const nsIRunnableVtbl *lpRunnableVtbl;
|
||||
|
||||
nsEventListener blur_listener;
|
||||
nsEventListener focus_listener;
|
||||
nsEventListener keypress_listener;
|
||||
|
@ -330,6 +341,9 @@ struct NSContainer {
|
|||
|
||||
HWND hwnd;
|
||||
|
||||
mutation_queue_t *mutation_queue;
|
||||
mutation_queue_t *mutation_queue_tail;
|
||||
|
||||
nsChannelBSC *bscallback; /* hack */
|
||||
HWND reset_focus; /* hack */
|
||||
|
||||
|
@ -434,6 +448,10 @@ typedef struct {
|
|||
#define NSWEAKREF(x) ((nsIWeakReference*) &(x)->lpWeakReferenceVtbl)
|
||||
#define NSSUPWEAKREF(x) ((nsISupportsWeakReference*) &(x)->lpSupportsWeakReferenceVtbl)
|
||||
|
||||
#define NSDOCOBS(x) ((nsIDocumentObserver*) &(x)->lpDocumentObserverVtbl)
|
||||
|
||||
#define NSRUNNABLE(x) ((nsIRunnable*) &(x)->lpRunnableVtbl)
|
||||
|
||||
#define NSCHANNEL(x) ((nsIChannel*) &(x)->lpHttpChannelVtbl)
|
||||
#define NSHTTPCHANNEL(x) ((nsIHttpChannel*) &(x)->lpHttpChannelVtbl)
|
||||
#define NSUPCHANNEL(x) ((nsIUploadChannel*) &(x)->lpUploadChannelVtbl)
|
||||
|
@ -487,6 +505,10 @@ void ConnectionPointContainer_Destroy(ConnectionPointContainer*);
|
|||
NSContainer *NSContainer_Create(HTMLDocument*,NSContainer*);
|
||||
void NSContainer_Release(NSContainer*);
|
||||
|
||||
void init_mutation(NSContainer*);
|
||||
void set_mutation_observer(NSContainer*,nsIDOMHTMLDocument*);
|
||||
BOOL handle_insert_comment(HTMLDocument *doc, const PRUnichar *comment);
|
||||
|
||||
void HTMLDocument_LockContainer(HTMLDocument*,BOOL);
|
||||
void show_context_menu(HTMLDocument*,DWORD,POINT*,IDispatch*);
|
||||
void notif_focus(HTMLDocument*);
|
||||
|
|
|
@ -0,0 +1,437 @@
|
|||
/*
|
||||
* Copyright 2008 Jacek Caban for CodeWeavers
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#define COBJMACROS
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
#include "winreg.h"
|
||||
#include "ole2.h"
|
||||
|
||||
#include "mshtml_private.h"
|
||||
#include "htmlevent.h"
|
||||
|
||||
#include "wine/debug.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
|
||||
|
||||
enum {
|
||||
MUTATION_COMMENT,
|
||||
MUTATION_SCRIPT
|
||||
};
|
||||
|
||||
void set_mutation_observer(NSContainer *nscontainer, nsIDOMHTMLDocument *nshtmldoc)
|
||||
{
|
||||
nsIDOMNSDocument *nsdoc;
|
||||
nsresult nsres;
|
||||
|
||||
nsres = nsIDOMHTMLDocument_QueryInterface(nshtmldoc, &IID_nsIDOMNSDocument, (void**)&nsdoc);
|
||||
if(NS_FAILED(nsres)) {
|
||||
ERR("Could not get nsIDOMNSDocument: %08x\n", nsres);
|
||||
return;
|
||||
}
|
||||
|
||||
nsIDOMNSDocument_WineAddObserver(nsdoc, NSDOCOBS(nscontainer));
|
||||
nsIDOMNSDocument_Release(nsdoc);
|
||||
}
|
||||
|
||||
static void add_script_runner(NSContainer *This)
|
||||
{
|
||||
nsIDOMNSDocument *nsdoc;
|
||||
nsresult nsres;
|
||||
|
||||
nsres = nsIDOMHTMLDocument_QueryInterface(This->doc->nsdoc, &IID_nsIDOMNSDocument, (void**)&nsdoc);
|
||||
if(NS_FAILED(nsres)) {
|
||||
ERR("Could not get nsIDOMNSDocument: %08x\n", nsres);
|
||||
return;
|
||||
}
|
||||
|
||||
nsIDOMNSDocument_WineAddScriptRunner(nsdoc, NSRUNNABLE(This));
|
||||
nsIDOMNSDocument_Release(nsdoc);
|
||||
}
|
||||
|
||||
#define NSRUNNABLE_THIS(iface) DEFINE_THIS(NSContainer, Runnable, iface)
|
||||
|
||||
static nsresult NSAPI nsRunnable_QueryInterface(nsIRunnable *iface,
|
||||
nsIIDRef riid, nsQIResult result)
|
||||
{
|
||||
NSContainer *This = NSRUNNABLE_THIS(iface);
|
||||
|
||||
if(IsEqualGUID(riid, &IID_nsISupports)) {
|
||||
TRACE("(%p)->(IID_nsISupports %p)\n", This, result);
|
||||
*result = NSRUNNABLE(This);
|
||||
}else if(IsEqualGUID(riid, &IID_nsIRunnable)) {
|
||||
TRACE("(%p)->(IID_nsIRunnable %p)\n", This, result);
|
||||
*result = NSRUNNABLE(This);
|
||||
}else {
|
||||
*result = NULL;
|
||||
WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), result);
|
||||
return NS_NOINTERFACE;
|
||||
}
|
||||
|
||||
nsISupports_AddRef((nsISupports*)*result);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
static nsrefcnt NSAPI nsRunnable_AddRef(nsIRunnable *iface)
|
||||
{
|
||||
NSContainer *This = NSRUNNABLE_THIS(iface);
|
||||
return nsIWebBrowserChrome_AddRef(NSWBCHROME(This));
|
||||
}
|
||||
|
||||
static nsrefcnt NSAPI nsRunnable_Release(nsIRunnable *iface)
|
||||
{
|
||||
NSContainer *This = NSRUNNABLE_THIS(iface);
|
||||
return nsIWebBrowserChrome_Release(NSWBCHROME(This));
|
||||
}
|
||||
|
||||
static void pop_mutation_queue(NSContainer *nscontainer)
|
||||
{
|
||||
mutation_queue_t *tmp = nscontainer->mutation_queue;
|
||||
|
||||
if(!tmp)
|
||||
return;
|
||||
|
||||
nscontainer->mutation_queue = tmp->next;
|
||||
if(!tmp->next)
|
||||
nscontainer->mutation_queue_tail = NULL;
|
||||
|
||||
nsISupports_Release(tmp->nsiface);
|
||||
heap_free(tmp);
|
||||
}
|
||||
|
||||
static nsresult NSAPI nsRunnable_Run(nsIRunnable *iface)
|
||||
{
|
||||
NSContainer *This = NSRUNNABLE_THIS(iface);
|
||||
nsresult nsres;
|
||||
|
||||
TRACE("(%p)\n", This);
|
||||
|
||||
while(This->mutation_queue) {
|
||||
switch(This->mutation_queue->type) {
|
||||
case MUTATION_COMMENT: {
|
||||
nsIDOMComment *nscomment;
|
||||
nsAString comment_str;
|
||||
BOOL remove_comment = FALSE;
|
||||
|
||||
nsres = nsISupports_QueryInterface(This->mutation_queue->nsiface, &IID_nsIDOMComment, (void**)&nscomment);
|
||||
if(NS_FAILED(nsres)) {
|
||||
ERR("Could not get nsIDOMComment iface:%08x\n", nsres);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsAString_Init(&comment_str, NULL);
|
||||
nsres = nsIDOMComment_GetData(nscomment, &comment_str);
|
||||
if(NS_SUCCEEDED(nsres)) {
|
||||
const PRUnichar *comment;
|
||||
|
||||
nsAString_GetData(&comment_str, &comment);
|
||||
remove_comment = handle_insert_comment(This->doc, comment);
|
||||
}
|
||||
|
||||
nsAString_Finish(&comment_str);
|
||||
|
||||
if(remove_comment) {
|
||||
nsIDOMNode *nsparent, *tmp;
|
||||
nsAString magic_str;
|
||||
|
||||
static const PRUnichar remove_comment_magicW[] =
|
||||
{'#','!','w','i','n','e', 'r','e','m','o','v','e','!','#',0};
|
||||
|
||||
nsAString_Init(&magic_str, remove_comment_magicW);
|
||||
nsres = nsIDOMComment_SetData(nscomment, &magic_str);
|
||||
nsAString_Finish(&magic_str);
|
||||
if(NS_FAILED(nsres))
|
||||
ERR("SetData failed: %08x\n", nsres);
|
||||
|
||||
nsIDOMComment_GetParentNode(nscomment, &nsparent);
|
||||
if(nsparent) {
|
||||
nsIDOMNode_RemoveChild(nsparent, (nsIDOMNode*)nscomment, &tmp);
|
||||
nsIDOMNode_Release(nsparent);
|
||||
nsIDOMNode_Release(tmp);
|
||||
}
|
||||
}
|
||||
|
||||
nsIDOMComment_Release(nscomment);
|
||||
break;
|
||||
}
|
||||
|
||||
case MUTATION_SCRIPT: {
|
||||
nsIDOMHTMLScriptElement *nsscript;
|
||||
|
||||
nsres = nsISupports_QueryInterface(This->mutation_queue->nsiface, &IID_nsIDOMHTMLScriptElement,
|
||||
(void**)&nsscript);
|
||||
if(NS_FAILED(nsres)) {
|
||||
ERR("Could not get nsIDOMHTMLScriptElement: %08x\n", nsres);
|
||||
break;
|
||||
}
|
||||
|
||||
doc_insert_script(This->doc, nsscript);
|
||||
nsIDOMHTMLScriptElement_Release(nsscript);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
ERR("invalid type %d\n", This->mutation_queue->type);
|
||||
}
|
||||
|
||||
pop_mutation_queue(This);
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
#undef NSRUNNABLE_THIS
|
||||
|
||||
static const nsIRunnableVtbl nsRunnableVtbl = {
|
||||
nsRunnable_QueryInterface,
|
||||
nsRunnable_AddRef,
|
||||
nsRunnable_Release,
|
||||
nsRunnable_Run
|
||||
};
|
||||
|
||||
#define NSDOCOBS_THIS(iface) DEFINE_THIS(NSContainer, DocumentObserver, iface)
|
||||
|
||||
static nsresult NSAPI nsDocumentObserver_QueryInterface(nsIDocumentObserver *iface,
|
||||
nsIIDRef riid, nsQIResult result)
|
||||
{
|
||||
NSContainer *This = NSDOCOBS_THIS(iface);
|
||||
|
||||
if(IsEqualGUID(&IID_nsISupports, riid)) {
|
||||
TRACE("(%p)->(IID_nsISupports, %p)\n", This, result);
|
||||
*result = NSWBCHROME(This);
|
||||
}else if(IsEqualGUID(&IID_nsIMutationObserver, riid)) {
|
||||
TRACE("(%p)->(IID_nsIMutationObserver %p)\n", This, result);
|
||||
*result = NSDOCOBS(This);
|
||||
}else if(IsEqualGUID(&IID_nsIDocumentObserver, riid)) {
|
||||
TRACE("(%p)->(IID_nsIDocumentObserver %p)\n", This, result);
|
||||
*result = NSDOCOBS(This);
|
||||
}else {
|
||||
*result = NULL;
|
||||
TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), result);
|
||||
return NS_NOINTERFACE;
|
||||
}
|
||||
|
||||
nsIWebBrowserChrome_AddRef(NSWBCHROME(This));
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
static nsrefcnt NSAPI nsDocumentObserver_AddRef(nsIDocumentObserver *iface)
|
||||
{
|
||||
NSContainer *This = NSDOCOBS_THIS(iface);
|
||||
return nsIWebBrowserChrome_AddRef(NSWBCHROME(This));
|
||||
}
|
||||
|
||||
static nsrefcnt NSAPI nsDocumentObserver_Release(nsIDocumentObserver *iface)
|
||||
{
|
||||
NSContainer *This = NSDOCOBS_THIS(iface);
|
||||
return nsIWebBrowserChrome_Release(NSWBCHROME(This));
|
||||
}
|
||||
|
||||
static void NSAPI nsDocumentObserver_CharacterDataWillChange(nsIDocumentObserver *iface,
|
||||
nsIDocument *aDocument, nsIContent *aContent, void /*CharacterDataChangeInfo*/ *aInfo)
|
||||
{
|
||||
}
|
||||
|
||||
static void NSAPI nsDocumentObserver_CharacterDataChanged(nsIDocumentObserver *iface,
|
||||
nsIDocument *aDocument, nsIContent *aContent, void /*CharacterDataChangeInfo*/ *aInfo)
|
||||
{
|
||||
}
|
||||
|
||||
static void NSAPI nsDocumentObserver_AttributeChanged(nsIDocumentObserver *iface, nsIDocument *aDocument,
|
||||
nsIContent *aContent, PRInt32 aNameSpaceID, nsIAtom *aAttribute, PRInt32 aModType, PRUint32 aStateMask)
|
||||
{
|
||||
}
|
||||
|
||||
static void NSAPI nsDocumentObserver_ContentAppended(nsIDocumentObserver *iface, nsIDocument *aDocument,
|
||||
nsIContent *aContainer, PRInt32 aNewIndexInContainer)
|
||||
{
|
||||
}
|
||||
|
||||
static void NSAPI nsDocumentObserver_ContentInserted(nsIDocumentObserver *iface, nsIDocument *aDocument,
|
||||
nsIContent *aContainer, nsIContent *aChild, PRInt32 aIndexInContainer)
|
||||
{
|
||||
}
|
||||
|
||||
static void NSAPI nsDocumentObserver_ContentRemoved(nsIDocumentObserver *iface, nsIDocument *aDocument,
|
||||
nsIContent *aContainer, nsIContent *aChild, PRInt32 aIndexInContainer)
|
||||
{
|
||||
}
|
||||
|
||||
static void NSAPI nsDocumentObserver_NodeWillBeDestroyed(nsIDocumentObserver *iface, const nsINode *aNode)
|
||||
{
|
||||
}
|
||||
|
||||
static void NSAPI nsDocumentObserver_ParentChainChanged(nsIDocumentObserver *iface, nsIContent *aContent)
|
||||
{
|
||||
}
|
||||
|
||||
static void NSAPI nsDocumentObserver_BeginUpdate(nsIDocumentObserver *iface, nsIDocument *aDocument,
|
||||
nsUpdateType aUpdateType)
|
||||
{
|
||||
}
|
||||
|
||||
static void NSAPI nsDocumentObserver_EndUpdate(nsIDocumentObserver *iface, nsIDocument *aDocument,
|
||||
nsUpdateType aUpdateType)
|
||||
{
|
||||
}
|
||||
|
||||
static void NSAPI nsDocumentObserver_BeginLoad(nsIDocumentObserver *iface, nsIDocument *aDocument)
|
||||
{
|
||||
}
|
||||
|
||||
static void NSAPI nsDocumentObserver_EndLoad(nsIDocumentObserver *iface, nsIDocument *aDocument)
|
||||
{
|
||||
}
|
||||
|
||||
static void NSAPI nsDocumentObserver_ContentStatesChanged(nsIDocumentObserver *iface, nsIDocument *aDocument,
|
||||
nsIContent *aContent1, nsIContent *aContent2, PRInt32 aStateMask)
|
||||
{
|
||||
}
|
||||
|
||||
static void NSAPI nsDocumentObserver_StyleSheetAdded(nsIDocumentObserver *iface, nsIDocument *aDocument,
|
||||
nsIStyleSheet *aStyleSheet, PRBool aDocumentSheet)
|
||||
{
|
||||
}
|
||||
|
||||
static void NSAPI nsDocumentObserver_StyleSheetRemoved(nsIDocumentObserver *iface, nsIDocument *aDocument,
|
||||
nsIStyleSheet *aStyleSheet, PRBool aDocumentSheet)
|
||||
{
|
||||
}
|
||||
|
||||
static void NSAPI nsDocumentObserver_StyleSheetApplicableStateChanged(nsIDocumentObserver *iface,
|
||||
nsIDocument *aDocument, nsIStyleSheet *aStyleSheet, PRBool aApplicable)
|
||||
{
|
||||
}
|
||||
|
||||
static void NSAPI nsDocumentObserver_StyleRuleChanged(nsIDocumentObserver *iface, nsIDocument *aDocument,
|
||||
nsIStyleSheet *aStyleSheet, nsIStyleRule *aOldStyleRule, nsIStyleSheet *aNewStyleRule)
|
||||
{
|
||||
}
|
||||
|
||||
static void NSAPI nsDocumentObserver_StyleRuleAdded(nsIDocumentObserver *iface, nsIDocument *aDocument,
|
||||
nsIStyleSheet *aStyleSheet, nsIStyleRule *aStyleRule)
|
||||
{
|
||||
}
|
||||
|
||||
static void NSAPI nsDocumentObserver_StyleRuleRemoved(nsIDocumentObserver *iface, nsIDocument *aDocument,
|
||||
nsIStyleSheet *aStyleSheet, nsIStyleRule *aStyleRule)
|
||||
{
|
||||
}
|
||||
|
||||
static void push_mutation_queue(NSContainer *nscontainer, DWORD type, nsISupports *nsiface)
|
||||
{
|
||||
mutation_queue_t *elem;
|
||||
|
||||
elem = heap_alloc(sizeof(mutation_queue_t));
|
||||
if(!elem)
|
||||
return;
|
||||
|
||||
elem->next = NULL;
|
||||
elem->type = type;
|
||||
elem->nsiface = nsiface;
|
||||
nsISupports_AddRef(nsiface);
|
||||
|
||||
if(nscontainer->mutation_queue_tail)
|
||||
nscontainer->mutation_queue_tail = nscontainer->mutation_queue_tail->next = elem;
|
||||
else
|
||||
nscontainer->mutation_queue = nscontainer->mutation_queue_tail = elem;
|
||||
}
|
||||
|
||||
static void NSAPI nsDocumentObserver_BindToDocument(nsIDocumentObserver *iface, nsIDocument *aDocument,
|
||||
nsIContent *aContent)
|
||||
{
|
||||
NSContainer *This = NSDOCOBS_THIS(iface);
|
||||
nsIDOMComment *nscomment;
|
||||
nsIDOMElement *nselem;
|
||||
nsresult nsres;
|
||||
|
||||
TRACE("(%p)\n", This);
|
||||
|
||||
nsres = nsISupports_QueryInterface(aContent, &IID_nsIDOMElement, (void**)&nselem);
|
||||
if(NS_SUCCEEDED(nsres)) {
|
||||
check_event_attr(This->doc, nselem);
|
||||
nsIDOMElement_Release(nselem);
|
||||
}
|
||||
|
||||
nsres = nsISupports_QueryInterface(aContent, &IID_nsIDOMComment, (void**)&nscomment);
|
||||
if(NS_SUCCEEDED(nsres)) {
|
||||
TRACE("comment node\n");
|
||||
|
||||
push_mutation_queue(This, MUTATION_COMMENT, (nsISupports*)nscomment);
|
||||
nsIDOMComment_Release(nscomment);
|
||||
add_script_runner(This);
|
||||
}
|
||||
}
|
||||
|
||||
static void NSAPI nsDocumentObserver_DoneAddingChildren(nsIDocumentObserver *iface, nsIContent *aContent,
|
||||
PRBool aHaveNotified)
|
||||
{
|
||||
NSContainer *This = NSDOCOBS_THIS(iface);
|
||||
nsIDOMHTMLScriptElement *nsscript;
|
||||
nsresult nsres;
|
||||
|
||||
TRACE("(%p)->(%p %x)\n", This, aContent, aHaveNotified);
|
||||
|
||||
nsres = nsISupports_QueryInterface(aContent, &IID_nsIDOMHTMLScriptElement, (void**)&nsscript);
|
||||
if(NS_SUCCEEDED(nsres)) {
|
||||
push_mutation_queue(This, MUTATION_SCRIPT, (nsISupports*)nsscript);
|
||||
nsIDOMHTMLScriptElement_Release(nsscript);
|
||||
add_script_runner(This);
|
||||
}
|
||||
}
|
||||
|
||||
#undef NSMUTATIONOBS_THIS
|
||||
|
||||
static const nsIDocumentObserverVtbl nsDocumentObserverVtbl = {
|
||||
nsDocumentObserver_QueryInterface,
|
||||
nsDocumentObserver_AddRef,
|
||||
nsDocumentObserver_Release,
|
||||
nsDocumentObserver_CharacterDataWillChange,
|
||||
nsDocumentObserver_CharacterDataChanged,
|
||||
nsDocumentObserver_AttributeChanged,
|
||||
nsDocumentObserver_ContentAppended,
|
||||
nsDocumentObserver_ContentInserted,
|
||||
nsDocumentObserver_ContentRemoved,
|
||||
nsDocumentObserver_NodeWillBeDestroyed,
|
||||
nsDocumentObserver_ParentChainChanged,
|
||||
nsDocumentObserver_BeginUpdate,
|
||||
nsDocumentObserver_EndUpdate,
|
||||
nsDocumentObserver_BeginLoad,
|
||||
nsDocumentObserver_EndLoad,
|
||||
nsDocumentObserver_ContentStatesChanged,
|
||||
nsDocumentObserver_StyleSheetAdded,
|
||||
nsDocumentObserver_StyleSheetRemoved,
|
||||
nsDocumentObserver_StyleSheetApplicableStateChanged,
|
||||
nsDocumentObserver_StyleRuleChanged,
|
||||
nsDocumentObserver_StyleRuleAdded,
|
||||
nsDocumentObserver_StyleRuleRemoved,
|
||||
nsDocumentObserver_BindToDocument,
|
||||
nsDocumentObserver_DoneAddingChildren
|
||||
};
|
||||
|
||||
void init_mutation(NSContainer *nscontainer)
|
||||
{
|
||||
nscontainer->lpDocumentObserverVtbl = &nsDocumentObserverVtbl;
|
||||
nscontainer->lpRunnableVtbl = &nsRunnableVtbl;
|
||||
}
|
|
@ -661,7 +661,7 @@ static void nsnode_to_nsstring_rec(nsIContentSerializer *serializer, nsIDOMNode
|
|||
case ELEMENT_NODE: {
|
||||
nsIDOMElement *nselem;
|
||||
nsIDOMNode_QueryInterface(nsnode, &IID_nsIDOMElement, (void**)&nselem);
|
||||
nsIContentSerializer_AppendElementStart(serializer, nselem, has_children, str);
|
||||
nsIContentSerializer_AppendElementStart(serializer, nselem, nselem, str);
|
||||
nsIDOMElement_Release(nselem);
|
||||
break;
|
||||
}
|
||||
|
@ -733,7 +733,7 @@ void nsnode_to_nsstring(nsIDOMNode *nsdoc, nsAString *str)
|
|||
return;
|
||||
}
|
||||
|
||||
nsres = nsIContentSerializer_Init(serializer, 0, 100, NULL, FALSE);
|
||||
nsres = nsIContentSerializer_Init(serializer, 0, 100, NULL, FALSE, FALSE /* FIXME */);
|
||||
if(NS_FAILED(nsres))
|
||||
ERR("Init failed: %08x\n", nsres);
|
||||
|
||||
|
@ -816,7 +816,8 @@ void set_ns_editmode(NSContainer *This)
|
|||
return;
|
||||
}
|
||||
|
||||
nsres = nsIEditingSession_MakeWindowEditable(editing_session, dom_window, NULL, FALSE);
|
||||
nsres = nsIEditingSession_MakeWindowEditable(editing_session, dom_window,
|
||||
NULL, FALSE, TRUE, TRUE);
|
||||
nsIEditingSession_Release(editing_session);
|
||||
nsIDOMWindow_Release(dom_window);
|
||||
if(NS_FAILED(nsres)) {
|
||||
|
@ -865,6 +866,9 @@ void update_nsdocument(HTMLDocument *doc)
|
|||
nsIDOMHTMLDocument_Release(doc->nsdoc);
|
||||
|
||||
doc->nsdoc = nsdoc;
|
||||
|
||||
if(nsdoc)
|
||||
set_mutation_observer(doc->nscontainer, nsdoc);
|
||||
}
|
||||
|
||||
void close_gecko(void)
|
||||
|
@ -1668,6 +1672,7 @@ NSContainer *NSContainer_Create(HTMLDocument *doc, NSContainer *parent)
|
|||
|
||||
ret->doc = doc;
|
||||
ret->ref = 1;
|
||||
init_mutation(ret);
|
||||
|
||||
nsres = nsIComponentManager_CreateInstanceByContractID(pCompMgr, NS_WEBBROWSER_CONTRACTID,
|
||||
NULL, &IID_nsIWebBrowser, (void**)&ret->webbrowser);
|
||||
|
|
|
@ -178,7 +178,7 @@ static nsresult NSAPI handle_load(nsIDOMEventListener *iface, nsIDOMEvent *event
|
|||
#define IE_MAJOR_VERSION 7
|
||||
#define IE_MINOR_VERSION 0
|
||||
|
||||
static BOOL handle_insert_comment(HTMLDocument *doc, const PRUnichar *comment)
|
||||
BOOL handle_insert_comment(HTMLDocument *doc, const PRUnichar *comment)
|
||||
{
|
||||
DWORD len;
|
||||
int majorv = 0, minorv = 0;
|
||||
|
@ -484,8 +484,6 @@ void init_nsevents(NSContainer *This)
|
|||
static const PRUnichar wsz_focus[] = {'f','o','c','u','s',0};
|
||||
static const PRUnichar wsz_keypress[] = {'k','e','y','p','r','e','s','s',0};
|
||||
static const PRUnichar wsz_load[] = {'l','o','a','d',0};
|
||||
static const PRUnichar DOMNodeInsertedW[] =
|
||||
{'D','O','M','N','o','d','e','I','n','s','e','r','t','e','d',0};
|
||||
|
||||
init_listener(&This->blur_listener, This, &blur_vtbl);
|
||||
init_listener(&This->focus_listener, This, &focus_vtbl);
|
||||
|
@ -511,7 +509,6 @@ void init_nsevents(NSContainer *This)
|
|||
init_event(target, wsz_focus, NSEVENTLIST(&This->focus_listener), TRUE);
|
||||
init_event(target, wsz_keypress, NSEVENTLIST(&This->keypress_listener), FALSE);
|
||||
init_event(target, wsz_load, NSEVENTLIST(&This->load_listener), TRUE);
|
||||
init_event(target, DOMNodeInsertedW,NSEVENTLIST(&This->node_insert_listener),TRUE);
|
||||
|
||||
nsIDOMEventTarget_Release(target);
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* compatible with XPCOM, usable in C code.
|
||||
*/
|
||||
|
||||
cpp_quote("#define GECKO_VERSION \"0.1.0\"")
|
||||
cpp_quote("#define GECKO_VERSION \"0.9.0\"")
|
||||
cpp_quote("#define GECKO_VERSION_STRING \"Wine Gecko \" GECKO_VERSION")
|
||||
|
||||
import "wtypes.idl";
|
||||
|
@ -83,6 +83,7 @@ interface nsIEditActionListener;
|
|||
interface nsIDocumentStateListener;
|
||||
interface nsIDOMCSSStyleSheet;
|
||||
interface nsIDOMDocumentView;
|
||||
interface nsIDocumentObserver;
|
||||
|
||||
interface IMoniker;
|
||||
|
||||
|
@ -126,6 +127,15 @@ typedef nsISupports nsIContentFilter;
|
|||
typedef nsISupports nsIDOMMediaList;
|
||||
typedef nsISupports nsIDOMHTMLTableCaptionElement;
|
||||
typedef nsISupports nsIDOMHTMLTableSectionElement;
|
||||
typedef nsISupports nsIDOMClientRectList;
|
||||
typedef nsISupports nsIDOMClientRect;
|
||||
typedef nsISupports nsIDOMLocation;
|
||||
typedef nsISupports nsIBoxObject;
|
||||
typedef nsISupports nsIDocument;
|
||||
typedef nsISupports nsIContent;
|
||||
typedef nsISupports nsINode;
|
||||
typedef nsISupports nsIStyleSheet;
|
||||
typedef nsISupports nsIStyleRule;
|
||||
|
||||
[
|
||||
object,
|
||||
|
@ -228,6 +238,17 @@ interface nsIInterfaceRequestor : nsISupports
|
|||
nsresult GetInterface(const nsIID *riid, void **result);
|
||||
}
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(4a2abaf0-6886-11d3-9382-00104ba0fd40),
|
||||
local
|
||||
/* NOT_FROZEN */
|
||||
]
|
||||
interface nsIRunnable : nsISupports
|
||||
{
|
||||
nsresult Run();
|
||||
}
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(d1899240-f9d2-11d2-bdd6-000064657374),
|
||||
|
@ -635,6 +656,35 @@ interface nsIDOMElementCSSInlineStyle : nsISupports
|
|||
nsresult GetStyle(nsIDOMCSSStyleDeclaration **aStyle);
|
||||
}
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(f0aef489-18c5-4de6-99d5-58b3758b098c),
|
||||
local
|
||||
/* NOT_FROZEN */
|
||||
]
|
||||
interface nsIDOMNSElement : nsISupports
|
||||
{
|
||||
nsresult GetElementsByClassName(const nsAString *classes, nsIDOMNodeList **_retval);
|
||||
nsresult GetClientRects(nsIDOMClientRectList **_retval);
|
||||
nsresult GetBoundingClientRect(nsIDOMClientRect **_retval);
|
||||
nsresult GetScrollTop(PRInt32 *aScrollTop);
|
||||
nsresult SetScrollTop(PRInt32 aScrollTop);
|
||||
nsresult GetScrollLeft(PRInt32 *aScrollLeft);
|
||||
nsresult SetScrollLeft(PRInt32 aScrollLeft);
|
||||
nsresult GetScrollHeight(PRInt32 *aScrollHeight);
|
||||
nsresult GetScrollWidth(PRInt32 *aScrollWidth);
|
||||
nsresult GetClientTop(PRInt32 *aClientTop);
|
||||
nsresult GetClientLeft(PRInt32 *aClientLeft);
|
||||
nsresult GetClientHeight(PRInt32 *aClientHeight);
|
||||
nsresult GetClientWidth(PRInt32 *aClientWidth);
|
||||
nsresult GetFirstElementChild(nsIDOMElement **aFirstElementChild);
|
||||
nsresult GetLastElementChild(nsIDOMElement **aLastElementChild);
|
||||
nsresult GetPreviousElementSibling(nsIDOMElement **aPreviousElementSibling);
|
||||
nsresult GetNextElementSibling(nsIDOMElement **aNextElementSibling);
|
||||
nsresult GetChildElementCount(PRUint32 *aChildElementCount);
|
||||
nsresult GetChildren(nsIDOMNodeList **aChildren);
|
||||
}
|
||||
|
||||
cpp_quote("#undef GetClassName")
|
||||
|
||||
[
|
||||
|
@ -659,7 +709,7 @@ interface nsIDOMHTMLElement : nsIDOMElement
|
|||
|
||||
[
|
||||
object,
|
||||
uuid(da83b2ec-8264-4410-8496-ada3acd2ae42),
|
||||
uuid(7f142f9a-fba7-4949-93d6-cf08a974ac51),
|
||||
local
|
||||
/* NOT_FROZEN */
|
||||
]
|
||||
|
@ -672,19 +722,15 @@ interface nsIDOMNSHTMLElement : nsISupports
|
|||
nsresult GetOffsetParent(nsIDOMElement **aOffsetParent);
|
||||
nsresult GetInnerHTML(nsAString *aInnerHTML);
|
||||
nsresult SetInnerHTML(const nsAString *aInnerHTML);
|
||||
nsresult GetScrollTop(PRInt32 *aScrollTop);
|
||||
nsresult SetScrollTop(PRInt32 aScrollTop);
|
||||
nsresult GetScrollLeft(PRInt32 *aScrollLeft);
|
||||
nsresult SetScrollLeft(PRInt32 aScrollLeft);
|
||||
nsresult GetScrollHeight(PRInt32 *aScrollHeight);
|
||||
nsresult GetScrollWidth(PRInt32 *aScrollWidth);
|
||||
nsresult GetClientHeight(PRInt32 *aClientHeight);
|
||||
nsresult GetClientWidth(PRInt32 *aClientWidth);
|
||||
nsresult GetTabIndex(PRInt32 *aTabIndex);
|
||||
nsresult SetTabIndex(PRInt32 aTabIndex);
|
||||
nsresult GetContentEditable(nsAString *aContentEditable);
|
||||
nsresult SetContentEditable(const nsAString *aContentEditable);
|
||||
nsresult blur();
|
||||
nsresult focus();
|
||||
nsresult ScrollIntoView(PRBool top);
|
||||
nsresult GetSpellcheck(PRBool *aSpellcheck);
|
||||
nsresult SetSpellcheck(PRBool aSpellcheck);
|
||||
}
|
||||
|
||||
[
|
||||
|
@ -802,6 +848,34 @@ interface nsIDOMDocument : nsIDOMNode
|
|||
nsresult GetElementById(const nsAString *elementId, nsIDOMElement **_retval);
|
||||
}
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(533a8131-8d0c-4ebf-990b-7fad7cd51466),
|
||||
local
|
||||
/* NOT_FROZEN */
|
||||
]
|
||||
interface nsIDOMNSDocument : nsISupports
|
||||
{
|
||||
nsresult GetCharacterSet(nsAString *aCharacterSet);
|
||||
nsresult GetDir(nsAString *aDir);
|
||||
nsresult SetDir(const nsAString *aDir);
|
||||
nsresult GetLocation(nsIDOMLocation **aLocation);
|
||||
nsresult GetTitle(nsAString *aTitle);
|
||||
nsresult SetTitle(const nsAString *aTitle);
|
||||
nsresult GetContentType(nsAString *aContentType);
|
||||
nsresult GetLastModified(nsAString *aLastModified);
|
||||
nsresult GetReferrer(nsAString *aReferrer);
|
||||
nsresult GetBoxObjectFor(nsIDOMElement *elt, nsIBoxObject **_retval);
|
||||
nsresult HasFocus(PRBool *_retval);
|
||||
nsresult GetActiveElement(nsIDOMElement **aActiveElement);
|
||||
nsresult GetElementsByClassName(const nsAString *classes, nsIDOMNodeList **_retval);
|
||||
nsresult ElementFromPoint(PRInt32 x, PRInt32 y, nsIDOMElement **_retval);
|
||||
|
||||
/* Wine extensions */
|
||||
nsresult WineAddObserver(nsIDocumentObserver *aObserver);
|
||||
nsresult WineAddScriptRunner(nsIRunnable *aRunnable);
|
||||
}
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(a6cf9084-15b3-11d2-932e-00805f8add32),
|
||||
|
@ -855,7 +929,7 @@ interface nsIDOMNSHTMLDocument : nsISupports
|
|||
nsresult SetDomain(const nsAString *aDomain);
|
||||
nsresult GetEmbeds(nsIDOMHTMLCollection **aEmbeds);
|
||||
nsresult GetSelection(nsAString *_retval);
|
||||
nsresult Open(nsIDOMDocument **_retval);
|
||||
nsresult Open(nsACString *aContentType, PRBool aReplace, nsIDOMDocument **_retval);
|
||||
nsresult Write();
|
||||
nsresult Writeln();
|
||||
nsresult Clear();
|
||||
|
@ -941,17 +1015,15 @@ interface nsIDOMRange : nsISupports
|
|||
|
||||
[
|
||||
object,
|
||||
uuid(a6cf90f2-15b3-11d2-932e-00805f8add32),
|
||||
uuid(59188642-23b4-41d6-bde1-302c3906d1f0),
|
||||
local
|
||||
/* NOT_FROZEN */
|
||||
]
|
||||
interface nsIDOMNSRange : nsISupports
|
||||
{
|
||||
nsresult CreateContextualFragment([in] const nsAString *fragment, [out] nsIDOMDocumentFragment **_retval);
|
||||
nsresult IsPointInRange([in] nsIDOMNode *parent, [in] PRInt32 offset, [out] PRBool *_retval);
|
||||
nsresult ComparePoint([in] nsIDOMNode *parent, [in] PRInt32 offset, [out] PRInt16 *_retval);
|
||||
nsresult IntersectsNode([in] nsIDOMNode *n, [out] PRBool *_retval);
|
||||
nsresult CompareNode([in] nsIDOMNode *n, [out] PRUint16 *_retval);
|
||||
nsresult nSDetach();
|
||||
}
|
||||
|
||||
|
||||
|
@ -1468,7 +1540,7 @@ interface nsIWebNavigation : nsISupports
|
|||
|
||||
[
|
||||
object,
|
||||
uuid(f1094df6-ce0e-42c9-9847-2f663172c38d),
|
||||
uuid(5af07661-6477-4235-8814-4a45215855b8),
|
||||
local
|
||||
/* NOT_FROZEN */
|
||||
]
|
||||
|
@ -1479,7 +1551,7 @@ interface nsIPrintSettings : nsISupports
|
|||
nsresult SetPrintOptions(PRInt32 aType, PRBool aTurnOnOff);
|
||||
nsresult GetPrintOptions(PRInt32 aType, PRBool *_retval);
|
||||
nsresult GetPrintOptionsBits(PRInt32 *_retval);
|
||||
nsresult GetPageSizeInTwips(PRInt32 *aWidth, PRInt32 *aHeight);
|
||||
nsresult GetEffectivePageSize(double *aWidth, double *aHeight);
|
||||
nsresult Clone(nsIPrintSettings **_retval);
|
||||
nsresult Assign(nsIPrintSettings *aPS);
|
||||
nsresult GetPrintSession(nsIPrintSession **aPrintSession);
|
||||
|
@ -1488,6 +1560,14 @@ interface nsIPrintSettings : nsISupports
|
|||
nsresult SetStartPageRange(PRInt32 aStartPageRange);
|
||||
nsresult GetEndPageRange(PRInt32 *aEndPageRange);
|
||||
nsresult SetEndPageRange(PRInt32 aEndPageRange);
|
||||
nsresult GetEdgeTop(double *aEdgeTop);
|
||||
nsresult SetEdgeTop(double aEdgeTop);
|
||||
nsresult GetEdgeLeft(double *aEdgeLeft);
|
||||
nsresult SetEdgeLeft(double aEdgeLeft);
|
||||
nsresult GetEdgeBottom(double *aEdgeBottom);
|
||||
nsresult SetEdgeBottom(double aEdgeBottom);
|
||||
nsresult GetEdgeRight(double *aEdgeRight);
|
||||
nsresult SetEdgeRight(double aEdgeRight);
|
||||
nsresult GetMarginTop(double *aMarginTop);
|
||||
nsresult SetMarginTop(double aMarginTop);
|
||||
nsresult GetMarginLeft(double *aMarginLeft);
|
||||
|
@ -1496,6 +1576,14 @@ interface nsIPrintSettings : nsISupports
|
|||
nsresult SetMarginBottom(double aMarginBottom);
|
||||
nsresult GetMarginRight(double *aMarginRight);
|
||||
nsresult SetMarginRight(double aMarginRight);
|
||||
nsresult GetUnwriteableMarginTop(double *aUnwriteableMarginTop);
|
||||
nsresult SetUnwriteableMarginTop(double aUnwriteableMarginTop);
|
||||
nsresult GetUnwriteableMarginLeft(double *aUnwriteableMarginLeft);
|
||||
nsresult SetUnwriteableMarginLeft(double aUnwriteableMarginLeft);
|
||||
nsresult GetUnwriteableMarginBottom(double *aUnwriteableMarginBottom);
|
||||
nsresult SetUnwriteableMarginBottom(double aUnwriteableMarginBottom);
|
||||
nsresult GetUnwriteableMarginRight(double *aUnwriteableMarginRight);
|
||||
nsresult SetUnwriteableMarginRight(double aUnwriteableMarginRight);
|
||||
nsresult GetScaling(double *aScaling);
|
||||
nsresult SetScaling(double aScaling);
|
||||
nsresult GetPrintBGColors(PRBool *aPrintBGColors);
|
||||
|
@ -1558,8 +1646,6 @@ interface nsIPrintSettings : nsISupports
|
|||
nsresult SetPrintReversed(PRBool aPrintReversed);
|
||||
nsresult GetPrintInColor(PRBool *aPrintInColor);
|
||||
nsresult SetPrintInColor(PRBool aPrintInColor);
|
||||
nsresult GetPaperSize(PRInt32 *aPaperSize);
|
||||
nsresult SetPaperSize(PRInt32 aPaperSize);
|
||||
nsresult GetOrientation(PRInt32 *aOrientation);
|
||||
nsresult SetOrientation(PRInt32 aOrientation);
|
||||
nsresult GetPrintCommand(PRUnichar **aPrintCommand);
|
||||
|
@ -1572,6 +1658,8 @@ interface nsIPrintSettings : nsISupports
|
|||
nsresult SetPrintToFile(PRBool aPrintToFile);
|
||||
nsresult GetToFileName(PRUnichar **aToFileName);
|
||||
nsresult SetToFileName(const PRUnichar *aToFileName);
|
||||
nsresult GetOutputFormat(PRInt16 *aOutputFormat);
|
||||
nsresult SetOutputFormat(PRInt16 aOutputFormat);
|
||||
nsresult GetPrintPageDelay(PRInt32 *aPrintPageDelay);
|
||||
nsresult SetPrintPageDelay(PRInt32 aPrintPageDelay);
|
||||
nsresult GetIsInitializedFromPrinter(PRBool *aIsInitializedFromPrinter);
|
||||
|
@ -1579,7 +1667,12 @@ interface nsIPrintSettings : nsISupports
|
|||
nsresult GetIsInitializedFromPrefs(PRBool *aIsInitializedFromPrefs);
|
||||
nsresult SetIsInitializedFromPrefs(PRBool aIsInitializedFromPrefs);
|
||||
nsresult SetMarginInTwips(nsMargin *aMargin);
|
||||
nsresult SetEdgeInTwips(nsMargin *aEdge);
|
||||
nsresult GetMarginInTwips(nsMargin *aMargin);
|
||||
nsresult GetEdgeInTwips(nsMargin *aEdge);
|
||||
nsresult SetupSilentPrinting();
|
||||
nsresult SetUnwriteableMarginInTwips(nsMargin *aEdge);
|
||||
nsresult GetUnwriteableMarginInTwips(nsMargin *aEdge);
|
||||
}
|
||||
|
||||
[
|
||||
|
@ -1773,14 +1866,22 @@ interface nsIIOService : nsISupports
|
|||
|
||||
[
|
||||
object,
|
||||
uuid(f0c5dddb-4713-4603-af2d-bf671838996b),
|
||||
uuid(57322c6f-f4ec-4e46-8253-b74be220de16),
|
||||
local,
|
||||
/* NOT_FROZEN */
|
||||
]
|
||||
interface nsINetUtil : nsISupports
|
||||
{
|
||||
nsresult ParseContentType(const nsACString *aTypeHeader, nsACString *aCharset,
|
||||
PRBool *aHadCharset, nsACString *aContentType);
|
||||
PRBool *aHadCharset, nsACString *_retval);
|
||||
nsresult ProtocolHasFlags(nsIURI *aURI, PRUint32 aFlag, PRBool *_retval);
|
||||
nsresult URIChainHasFlags(nsIURI *aURI, PRUint32 aFlags, PRBool *_retval);
|
||||
nsresult ToImmutableURI(nsIURI *aURI, nsIURI **_retval);
|
||||
nsresult EscapeString(const nsACString *aString, PRUint32 aEscapeType, nsACString *_retval);
|
||||
nsresult EscapeURL(const nsACString *aStr, PRUint32 aFlags, nsACString *_retval);
|
||||
nsresult UnescapeString(const nsACString *aStr, PRUint32 aFlags, nsACString *_retval);
|
||||
nsresult ExtractCharsetFromContentType(const nsACString *aTypeHeader, nsACString *aCharset,
|
||||
PRInt32 *aCharsetStart, PRInt32 *aCharsetEnd, PRBool *_retval);
|
||||
}
|
||||
|
||||
[
|
||||
|
@ -2104,7 +2205,7 @@ interface nsIWindowWatcher : nsISupports
|
|||
|
||||
[
|
||||
object,
|
||||
uuid(d39fd2b4-3978-45d2-a4be-ba448171b61b),
|
||||
uuid(274cd32e-3675-47e1-9d8a-fc6504ded9ce),
|
||||
local
|
||||
/* NOT_FROZEN */
|
||||
]
|
||||
|
@ -2112,12 +2213,16 @@ interface nsIEditingSession : nsISupports
|
|||
{
|
||||
nsresult GetEditorStatus(PRUint32 *aEditorStatus);
|
||||
nsresult MakeWindowEditable(nsIDOMWindow *window, const char *aEditorType,
|
||||
PRBool doAfterUriLoad);
|
||||
PRBool doAfterUriLoad, PRBool aMakeWholeDocumentEditable, PRBool aInteractive);
|
||||
nsresult WindowIsEditable(nsIDOMWindow *window, PRBool *_retval);
|
||||
nsresult GetEditorForWindow(nsIDOMWindow *window, nsIEditor **_retval);
|
||||
nsresult SetupEditorOnWindow(nsIDOMWindow *window);
|
||||
nsresult TearDownEditorOnWindow(nsIDOMWindow *window);
|
||||
nsresult SetEditorOnControllers(nsIDOMWindow *aWindow, nsIEditor *aEditor);
|
||||
nsresult DisableJSAndPlugins(nsIDOMWindow *aWindow);
|
||||
nsresult RestoreJSAndPlugins(nsIDOMWindow *aWindow);
|
||||
nsresult DetachFromWindow(nsIDOMWindow *aWindow);
|
||||
nsresult ReattachToWindow(nsIDOMWindow *aWindow);
|
||||
}
|
||||
|
||||
[
|
||||
|
@ -2193,13 +2298,14 @@ interface nsIController : nsISupports
|
|||
|
||||
[
|
||||
object,
|
||||
uuid(d650439a-ca29-410d-a906-b0557fb62fcd),
|
||||
uuid(34769de0-30d0-4cef-894a-fcd8bb27c4b4),
|
||||
local
|
||||
/* NOT_FROZEN */
|
||||
]
|
||||
interface nsIContentSerializer : nsISupports
|
||||
{
|
||||
nsresult Init(PRUint32 flags, PRUint32 aWrapColumn, const char* aCharSet, PRBool aIsCopying);
|
||||
nsresult Init(PRUint32 flags, PRUint32 aWrapColumn, const char* aCharSet, PRBool aIsCopying,
|
||||
PRBool aIsWholeDocument);
|
||||
nsresult AppendText(nsIDOMText *aText, PRInt32 aStartOffset, PRInt32 aEndOffset, nsAString *aStr);
|
||||
nsresult AppendCDATASection(nsIDOMCDATASection *aCDATASection, PRInt32 aStartOffset,
|
||||
PRInt32 aEndOffset, nsAString *aStr);
|
||||
|
@ -2208,7 +2314,8 @@ interface nsIContentSerializer : nsISupports
|
|||
nsresult AppendComment(nsIDOMComment *aComment, PRInt32 aStartOffset, PRInt32 aEndOffset,
|
||||
nsAString *aStr);
|
||||
nsresult AppendDoctype(nsIDOMDocumentType *aDoctype, nsAString *aStr);
|
||||
nsresult AppendElementStart(nsIDOMElement *aElement, PRBool aHasChildren, nsAString *aStr);
|
||||
nsresult AppendElementStart(nsIDOMElement *aElement, nsIDOMElement *aOriginalElement,
|
||||
nsAString *aStr);
|
||||
nsresult AppendElementEnd(nsIDOMElement *aElement, nsAString *aStr);
|
||||
nsresult Flush(nsAString *aStr);
|
||||
nsresult AppendDocumentStart(nsIDOMDocument *aDocument, nsAString *aStr);
|
||||
|
@ -2216,7 +2323,7 @@ interface nsIContentSerializer : nsISupports
|
|||
|
||||
[
|
||||
object,
|
||||
uuid(D4882FFB-E927-408b-96BE-D4391B456FA9),
|
||||
uuid(96b60ba0-634a-41e4-928e-78ab0b3c4b46),
|
||||
local
|
||||
/* NOT_FROZEN */
|
||||
]
|
||||
|
@ -2246,8 +2353,9 @@ interface nsIEditor : nsISupports
|
|||
nsresult SetDocumentCharacterSet([in] const nsACString *val);
|
||||
nsresult ResetModificationCount();
|
||||
nsresult GetModificationCount([out] PRInt32 *_retval);
|
||||
nsresult IncrementModificationCount([in] long aModCount);
|
||||
nsresult IncrementModificationCount([in] PRInt32 aModCount);
|
||||
nsresult GetTransactionManager([out] nsITransactionManager **_retval);
|
||||
nsresult SetTransactionManager(nsITransactionManager *aTransactionManager);
|
||||
nsresult DoTransaction([in] nsITransaction *txn);
|
||||
nsresult EnableUndo([in] PRBool enable);
|
||||
nsresult Undo([in] PRUint32 count);
|
||||
|
@ -2261,6 +2369,8 @@ interface nsIEditor : nsISupports
|
|||
nsresult ShouldTxnSetSelection([out] PRBool *_retval);
|
||||
nsresult SetShouldTxnSetSelection([in] PRBool should);
|
||||
nsresult GetInlineSpellChecker([out] nsIInlineSpellChecker **_retval);
|
||||
nsresult SyncRealTimeSpell();
|
||||
nsresult SetSpellcheckUserOverride(PRBool enable);
|
||||
nsresult Cut();
|
||||
nsresult CanCut([out] PRBool *_retval);
|
||||
nsresult Copy();
|
||||
|
@ -2296,6 +2406,7 @@ interface nsIEditor : nsISupports
|
|||
nsresult DumpContentTree();
|
||||
nsresult DebugDumpContent();
|
||||
nsresult DebugUnitTests([out] PRInt32 *outNumTests, [out] PRInt32 *outNumTestsFailed);
|
||||
PRBool IsModifiableNode(nsIDOMNode *aNode);
|
||||
}
|
||||
|
||||
[
|
||||
|
@ -2366,6 +2477,57 @@ interface nsIHTMLEditor : nsISupports
|
|||
nsresult SetReturnInParagraphCreatesNewParagraph([in] PRBool prb);
|
||||
}
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(32e68316-67d4-44a5-8d35-0d390fa9df11),
|
||||
local
|
||||
/* NOT_FROZEN */
|
||||
]
|
||||
interface nsIMutationObserver : nsISupports
|
||||
{
|
||||
void CharacterDataWillChange(nsIDocument *aDocument, nsIContent *aContent,
|
||||
void /*CharacterDataChangeInfo*/ *aInfo);
|
||||
void CharacterDataChanged(nsIDocument *aDocument, nsIContent *aContent,
|
||||
void /*CharacterDataChangeInfo*/ *aInfo);
|
||||
void AttributeChanged(nsIDocument *aDocument, nsIContent *aContent, PRInt32 aNameSpaceID,
|
||||
nsIAtom *aAttribute, PRInt32 aModType, PRUint32 aStateMask);
|
||||
void ContentAppended(nsIDocument *aDocument, nsIContent *aContainer, PRInt32 aNewIndexInContainer);
|
||||
void ContentInserted(nsIDocument *aDocument, nsIContent *aContainer, nsIContent *aChild,
|
||||
PRInt32 aIndexInContainer);
|
||||
void ContentRemoved(nsIDocument *aDocument, nsIContent *aContainer, nsIContent *aChild,
|
||||
PRInt32 aIndexInContainer);
|
||||
void NodeWillBeDestroyed(const nsINode *aNode);
|
||||
void ParentChainChanged(nsIContent *aContent);
|
||||
}
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(4e14e321-a4bb-49f8-a57a-2363668d14d0),
|
||||
local
|
||||
/* NOT_FROZEN */
|
||||
]
|
||||
interface nsIDocumentObserver : nsIMutationObserver
|
||||
{
|
||||
typedef int nsUpdateType;
|
||||
|
||||
void BeginUpdate(nsIDocument *aDocument, nsUpdateType aUpdateType);
|
||||
void EndUpdate(nsIDocument *aDocument, nsUpdateType aUpdateType);
|
||||
void BeginLoad(nsIDocument *aDocument);
|
||||
void EndLoad(nsIDocument *aDocument);
|
||||
void ContentStatesChanged(nsIDocument *aDocument, nsIContent *aContent1, nsIContent *aContent2,
|
||||
PRInt32 aStateMask);
|
||||
void StyleSheetAdded(nsIDocument *aDocument, nsIStyleSheet *aStyleSheet, PRBool aDocumentSheet);
|
||||
void StyleSheetRemoved(nsIDocument *aDocument, nsIStyleSheet *aStyleSheet, PRBool aDocumentSheet);
|
||||
void StyleSheetApplicableStateChanged(nsIDocument *aDocument, nsIStyleSheet *aStyleSheet,
|
||||
PRBool aApplicable);
|
||||
void StyleRuleChanged(nsIDocument *aDocument, nsIStyleSheet *aStyleSheet, nsIStyleRule *aOldStyleRule,
|
||||
nsIStyleRule *aNewStyleRule);
|
||||
void StyleRuleAdded(nsIDocument *aDocument, nsIStyleSheet *aStyleSheet, nsIStyleRule *aStyleRule);
|
||||
void StyleRuleRemoved(nsIDocument *aDocument, nsIStyleSheet *aStyleSheet, nsIStyleRule *aStyleRule);
|
||||
void BindToDocument(nsIDocument *aDocument, nsIContent *aContent);
|
||||
void DoneAddingContent(nsIContent *aContent, PRBool aHaveNotified);
|
||||
}
|
||||
|
||||
/*
|
||||
* NOTE:
|
||||
* This is a private Wine interface that is implemented by our implementation
|
||||
|
|
|
@ -2276,11 +2276,76 @@ static nsresult NSAPI nsNetUtil_ParseContentType(nsINetUtil *iface, const nsACSt
|
|||
return nsINetUtil_ParseContentType(net_util, aTypeHeader, aCharset, aHadCharset, aContentType);
|
||||
}
|
||||
|
||||
static nsresult NSAPI nsNetUtil_ProtocolHasFlags(nsINetUtil *iface, nsIURI *aURI, PRUint32 aFlags, PRBool *_retval)
|
||||
{
|
||||
TRACE("()\n");
|
||||
|
||||
return nsINetUtil_ProtocolHasFlags(net_util, aURI, aFlags, _retval);
|
||||
}
|
||||
|
||||
static nsresult NSAPI nsNetUtil_URIChainHasFlags(nsINetUtil *iface, nsIURI *aURI, PRUint32 aFlags, PRBool *_retval)
|
||||
{
|
||||
TRACE("(%p %08x %p)\n", aURI, aFlags, _retval);
|
||||
|
||||
if(aFlags == (1<<11)) {
|
||||
*_retval = FALSE;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
return nsINetUtil_URIChainHasFlags(net_util, aURI, aFlags, _retval);
|
||||
}
|
||||
|
||||
static nsresult NSAPI nsNetUtil_ToImmutableURI(nsINetUtil *iface, nsIURI *aURI, nsIURI **_retval)
|
||||
{
|
||||
TRACE("(%p %p)\n", aURI, _retval);
|
||||
|
||||
return nsINetUtil_ToImmutableURI(net_util, aURI, _retval);
|
||||
}
|
||||
|
||||
static nsresult NSAPI nsNetUtil_EscapeString(nsINetUtil *iface, const nsACString *aString,
|
||||
PRUint32 aEscapeType, nsACString *_retval)
|
||||
{
|
||||
TRACE("(%p %x %p)\n", aString, aEscapeType, _retval);
|
||||
|
||||
return nsINetUtil_EscapeString(net_util, aString, aEscapeType, _retval);
|
||||
}
|
||||
|
||||
static nsresult NSAPI nsNetUtil_EscapeURL(nsINetUtil *iface, const nsACString *aStr, PRUint32 aFlags,
|
||||
nsACString *_retval)
|
||||
{
|
||||
TRACE("(%p %08x %p)\n", aStr, aFlags, _retval);
|
||||
|
||||
return nsINetUtil_EscapeURL(net_util, aStr, aFlags, _retval);
|
||||
}
|
||||
|
||||
static nsresult NSAPI nsNetUtil_UnescapeString(nsINetUtil *iface, const nsACString *aStr,
|
||||
PRUint32 aFlags, nsACString *_retval)
|
||||
{
|
||||
TRACE("(%p %08x %p)\n", aStr, aFlags, _retval);
|
||||
|
||||
return nsINetUtil_UnescapeString(net_util, aStr, aFlags, _retval);
|
||||
}
|
||||
|
||||
static nsresult NSAPI nsNetUtil_ExtractCharsetFromContentType(nsINetUtil *iface, const nsACString *aTypeHeader,
|
||||
nsACString *aCharset, PRInt32 *aCharsetStart, PRInt32 *aCharsetEnd, PRBool *_retval)
|
||||
{
|
||||
TRACE("(%p %p %p %p %p)\n", aTypeHeader, aCharset, aCharsetStart, aCharsetEnd, _retval);
|
||||
|
||||
return nsINetUtil_ExtractCharsetFromContentType(net_util, aTypeHeader, aCharset, aCharsetStart, aCharsetEnd, _retval);
|
||||
}
|
||||
|
||||
static const nsINetUtilVtbl nsNetUtilVtbl = {
|
||||
nsNetUtil_QueryInterface,
|
||||
nsNetUtil_AddRef,
|
||||
nsNetUtil_Release,
|
||||
nsNetUtil_ParseContentType
|
||||
nsNetUtil_ParseContentType,
|
||||
nsNetUtil_ProtocolHasFlags,
|
||||
nsNetUtil_URIChainHasFlags,
|
||||
nsNetUtil_ToImmutableURI,
|
||||
nsNetUtil_EscapeString,
|
||||
nsNetUtil_EscapeURL,
|
||||
nsNetUtil_UnescapeString,
|
||||
nsNetUtil_ExtractCharsetFromContentType
|
||||
};
|
||||
|
||||
static nsINetUtil nsNetUtil = { &nsNetUtilVtbl };
|
||||
|
|
Loading…
Reference in New Issue