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
8d28f09d
Commit
8d28f09d
authored
Dec 30, 2008
by
Jacek Caban
Committed by
Alexandre Julliard
Dec 30, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mshtml: Wine Gecko 0.9.0 release.
parent
03a83c49
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
764 additions
and
75 deletions
+764
-75
Makefile.in
dlls/mshtml/Makefile.in
+1
-0
htmlelem2.c
dlls/mshtml/htmlelem2.c
+39
-39
mshtml_private.h
dlls/mshtml/mshtml_private.h
+22
-0
mutation.c
dlls/mshtml/mutation.c
+437
-0
nsembed.c
dlls/mshtml/nsembed.c
+8
-3
nsevents.c
dlls/mshtml/nsevents.c
+1
-4
nsiface.idl
dlls/mshtml/nsiface.idl
+190
-28
nsio.c
dlls/mshtml/nsio.c
+66
-1
No files found.
dlls/mshtml/Makefile.in
View file @
8d28f09d
...
...
@@ -45,6 +45,7 @@ C_SRCS = \
install.c
\
loadopts.c
\
main.c
\
mutation.c
\
navigate.c
\
nsembed.c
\
nsevents.c
\
...
...
dlls/mshtml/htmlelem2.c
View file @
8d28f09d
...
...
@@ -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
);
nsIDOMNS
HTML
Element
*
nselem
;
nsIDOMNSElement
*
nselem
;
PRInt32
height
=
0
;
nsresult
nsres
;
TRACE
(
"(%p)->(%p)
\n
"
,
This
,
p
);
nsres
=
nsIDOMHTMLElement_QueryInterface
(
This
->
nselem
,
&
IID_nsIDOMNS
HTML
Element
,
(
void
**
)
&
nselem
);
nsres
=
nsIDOMHTMLElement_QueryInterface
(
This
->
nselem
,
&
IID_nsIDOMNSElement
,
(
void
**
)
&
nselem
);
if
(
NS_SUCCEEDED
(
nsres
))
{
nsIDOMNS
HTML
Element_GetClientHeight
(
nselem
,
&
height
);
nsIDOMNS
HTML
Element_Release
(
nselem
);
nsIDOMNSElement_GetClientHeight
(
nselem
,
&
height
);
nsIDOMNSElement_Release
(
nselem
);
}
else
{
ERR
(
"Could not get nsIDOM
HTML
NSElement: %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
);
nsIDOMNS
HTML
Element
*
nselem
;
nsIDOMNSElement
*
nselem
;
PRInt32
width
=
0
;
nsresult
nsres
;
TRACE
(
"(%p)->(%p)
\n
"
,
This
,
p
);
nsres
=
nsIDOMHTMLElement_QueryInterface
(
This
->
nselem
,
&
IID_nsIDOMNS
HTML
Element
,
(
void
**
)
&
nselem
);
nsres
=
nsIDOMHTMLElement_QueryInterface
(
This
->
nselem
,
&
IID_nsIDOMNSElement
,
(
void
**
)
&
nselem
);
if
(
NS_SUCCEEDED
(
nsres
))
{
nsIDOMNS
HTML
Element_GetClientWidth
(
nselem
,
&
width
);
nsIDOMNS
HTML
Element_Release
(
nselem
);
nsIDOMNSElement_GetClientWidth
(
nselem
,
&
width
);
nsIDOMNSElement_Release
(
nselem
);
}
else
{
ERR
(
"Could not get nsIDOM
HTML
NSElement: %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
);
nsIDOMNS
HTML
Element
*
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
=
nsIDOMNS
HTML
Element_GetScrollHeight
(
nselem
,
&
height
);
nsIDOMNS
HTML
Element_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 nsIDOMNS
HTML
Element 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
);
nsIDOMNS
HTML
Element
*
nselem
;
nsIDOMNSElement
*
nselem
;
PRInt32
width
=
0
;
nsresult
nsres
;
TRACE
(
"(%p)->(%p)
\n
"
,
This
,
p
);
nsres
=
nsIDOMElement_QueryInterface
(
This
->
nselem
,
&
IID_nsIDOMNS
HTML
Element
,
(
void
**
)
&
nselem
);
nsres
=
nsIDOMElement_QueryInterface
(
This
->
nselem
,
&
IID_nsIDOMNSElement
,
(
void
**
)
&
nselem
);
if
(
NS_SUCCEEDED
(
nsres
))
{
nsres
=
nsIDOMNS
HTML
Element_GetScrollWidth
(
nselem
,
&
width
);
nsIDOMNS
HTML
Element_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 nsIDOMNS
HTML
Element 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
);
nsIDOMNS
HTML
Element
*
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_nsIDOMNS
HTML
Element
,
(
void
**
)
&
nselem
);
nsres
=
nsIDOMHTMLElement_QueryInterface
(
This
->
nselem
,
&
IID_nsIDOMNSElement
,
(
void
**
)
&
nselem
);
if
(
NS_SUCCEEDED
(
nsres
))
{
nsIDOMNS
HTML
Element_SetScrollTop
(
nselem
,
v
);
nsIDOMNS
HTML
Element_Release
(
nselem
);
nsIDOMNSElement_SetScrollTop
(
nselem
,
v
);
nsIDOMNSElement_Release
(
nselem
);
}
else
{
ERR
(
"Could not get nsIDOMNS
HTML
Element 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
);
nsIDOMNS
HTML
Element
*
nselem
;
nsIDOMNSElement
*
nselem
;
PRInt32
top
=
0
;
nsresult
nsres
;
TRACE
(
"(%p)->(%p)
\n
"
,
This
,
p
);
nsres
=
nsIDOMElement_QueryInterface
(
This
->
nselem
,
&
IID_nsIDOMNS
HTML
Element
,
(
void
**
)
&
nselem
);
nsres
=
nsIDOMElement_QueryInterface
(
This
->
nselem
,
&
IID_nsIDOMNSElement
,
(
void
**
)
&
nselem
);
if
(
NS_SUCCEEDED
(
nsres
))
{
nsres
=
nsIDOMNS
HTML
Element_GetScrollTop
(
nselem
,
&
top
);
nsIDOMNS
HTML
Element_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 nsIDOMNS
HTML
Element 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
);
nsIDOMNS
HTML
Element
*
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
=
nsIDOM
HTMLElement_QueryInterface
(
This
->
nselem
,
&
IID_nsIDOMNSHTML
Element
,
(
void
**
)
&
nselem
);
nsres
=
nsIDOM
Element_QueryInterface
(
This
->
nselem
,
&
IID_nsIDOMNS
Element
,
(
void
**
)
&
nselem
);
if
(
NS_SUCCEEDED
(
nsres
))
{
nsIDOMNS
HTML
Element_SetScrollLeft
(
nselem
,
v
);
nsIDOMNS
HTML
Element_Release
(
nselem
);
nsIDOMNSElement_SetScrollLeft
(
nselem
,
v
);
nsIDOMNSElement_Release
(
nselem
);
}
else
{
ERR
(
"Could not get nsIDOMNS
HTML
Element 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
);
nsIDOMNS
HTML
Element
*
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_nsIDOMNS
HTML
Element
,
(
void
**
)
&
nselem
);
nsres
=
nsIDOMHTMLElement_QueryInterface
(
This
->
nselem
,
&
IID_nsIDOMNSElement
,
(
void
**
)
&
nselem
);
if
(
NS_SUCCEEDED
(
nsres
))
{
nsres
=
nsIDOMNS
HTML
Element_GetScrollLeft
(
nselem
,
&
left
);
nsIDOMNS
HTML
Element_Release
(
nselem
);
nsres
=
nsIDOMNSElement_GetScrollLeft
(
nselem
,
&
left
);
nsIDOMNSElement_Release
(
nselem
);
if
(
NS_FAILED
(
nsres
))
left
=
0
;
}
...
...
dlls/mshtml/mshtml_private.h
View file @
8d28f09d
...
...
@@ -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
*
);
...
...
dlls/mshtml/mutation.c
0 → 100644
View file @
8d28f09d
/*
* 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
;
}
dlls/mshtml/nsembed.c
View file @
8d28f09d
...
...
@@ -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
);
...
...
dlls/mshtml/nsevents.c
View file @
8d28f09d
...
...
@@ -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
);
}
dlls/mshtml/nsiface.idl
View file @
8d28f09d
...
...
@@ -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,
...
...
@@ -230,6 +240,17 @@ interface nsIInterfaceRequestor : nsISupports
[
object,
uuid(4a2abaf0-6886-11d3-9382-00104ba0fd40),
local
/* NOT_FROZEN */
]
interface nsIRunnable : nsISupports
{
nsresult Run();
}
[
object,
uuid(d1899240-f9d2-11d2-bdd6-000064657374),
local
/* FROZEN */
...
...
@@ -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);
}
[
...
...
@@ -804,6 +850,34 @@ interface nsIDOMDocument : nsIDOMNode
[
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),
local
/* FROZEN */
...
...
@@ -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(ns
ACString *aContentType, PRBool aReplace, ns
IDOMDocument **_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 Get
PageSizeInTwips(PRInt32 *aWidth, PRInt32
*aHeight);
nsresult Get
EffectivePageSize(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
...
...
dlls/mshtml/nsio.c
View file @
8d28f09d
...
...
@@ -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
};
...
...
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