diff --git a/dlls/appwiz.cpl/addons.c b/dlls/appwiz.cpl/addons.c index d19af66..e1f98af 100644 --- a/dlls/appwiz.cpl/addons.c +++ b/dlls/appwiz.cpl/addons.c @@ -50,7 +50,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(appwizcpl); -#define GECKO_VERSION "1.1.0" +#define GECKO_VERSION "1.2.0-beta1" #ifdef __i386__ #define ARCH_STRING "x86" diff --git a/dlls/mshtml/mutation.c b/dlls/mshtml/mutation.c index c4f7945..12ae351 100644 --- a/dlls/mshtml/mutation.c +++ b/dlls/mshtml/mutation.c @@ -305,9 +305,10 @@ static nsresult run_end_load(HTMLDocumentNode *This, nsISupports *arg1, nsISuppo return NS_OK; } -static nsresult run_insert_script(HTMLDocumentNode *doc, nsISupports *script_iface, nsISupports *arg) +static nsresult run_insert_script(HTMLDocumentNode *doc, nsISupports *script_iface, nsISupports *parser_iface) { nsIDOMHTMLScriptElement *nsscript; + nsIParser *nsparser = NULL; nsresult nsres; TRACE("(%p)->(%p)\n", doc, script_iface); @@ -318,7 +319,24 @@ static nsresult run_insert_script(HTMLDocumentNode *doc, nsISupports *script_ifa return nsres; } + if(parser_iface) { + nsres = nsISupports_QueryInterface(parser_iface, &IID_nsIParser, (void**)&nsparser); + if(NS_FAILED(nsres)) { + ERR("Could not get nsIParser iface: %08x\n", nsres); + nsparser = NULL; + } + } + + if(nsparser) + nsIParser_BeginEvaluatingParserInsertedScript(nsparser); + doc_insert_script(doc->basedoc.window, nsscript); + + if(nsparser) { + nsIParser_EndEvaluatingParserInsertedScript(nsparser); + nsIParser_Release(nsparser); + } + nsIDOMHTMLScriptElement_Release(nsscript); return NS_OK; } @@ -557,12 +575,12 @@ static void NSAPI nsDocumentObserver_EndLoad(nsIDocumentObserver *iface, nsIDocu } static void NSAPI nsDocumentObserver_ContentStatesChanged(nsIDocumentObserver *iface, nsIDocument *aDocument, - nsIContent *aContent1, nsIContent *aContent2, PRInt32 aStateMask) + nsIContent *aContent1, nsIContent *aContent2, nsEventStates aStateMask) { } static void NSAPI nsDocumentObserver_DocumentStatesChanged(nsIDocumentObserver *iface, nsIDocument *aDocument, - PRInt32 aStateMask) + nsEventStates aStateMask) { } @@ -639,8 +657,8 @@ static void NSAPI nsDocumentObserver_BindToDocument(nsIDocumentObserver *iface, } } -static void NSAPI nsDocumentObserver_DoneAddingChildren(nsIDocumentObserver *iface, nsIContent *aContent, - PRBool aHaveNotified) +static nsresult NSAPI nsDocumentObserver_DoneAddingChildren(nsIDocumentObserver *iface, nsIContent *aContent, + PRBool aHaveNotified, nsIParser *aParser) { HTMLDocumentNode *This = impl_from_nsIDocumentObserver(iface); nsIDOMHTMLScriptElement *nsscript; @@ -652,9 +670,11 @@ static void NSAPI nsDocumentObserver_DoneAddingChildren(nsIDocumentObserver *ifa if(NS_SUCCEEDED(nsres)) { TRACE("script node\n"); - add_script_runner(This, run_insert_script, (nsISupports*)nsscript, NULL); + add_script_runner(This, run_insert_script, (nsISupports*)nsscript, (nsISupports*)aParser); nsIDOMHTMLScriptElement_Release(nsscript); } + + return NS_OK; } static const nsIDocumentObserverVtbl nsDocumentObserverVtbl = { diff --git a/dlls/mshtml/nsiface.idl b/dlls/mshtml/nsiface.idl index 4248768..52c889e 100644 --- a/dlls/mshtml/nsiface.idl +++ b/dlls/mshtml/nsiface.idl @@ -23,7 +23,7 @@ * compatible with XPCOM, usable in C code. */ -cpp_quote("#define GECKO_VERSION \"1.1.0\"") +cpp_quote("#define GECKO_VERSION \"1.2.0-beta1\"") cpp_quote("#define GECKO_VERSION_STRING \"Wine Gecko \" GECKO_VERSION") import "wtypes.idl"; @@ -148,8 +148,12 @@ typedef nsISupports nsITransferable; typedef nsISupports nsIDOMHTMLHeadElement; typedef nsISupports nsIDOMFileList; typedef nsISupports nsIControllers; +typedef nsISupports nsIDOMValidityState; typedef nsISupports nsIPluginInstanceOwner; typedef nsISupports nsIPluginStreamListener; +typedef nsISupports nsIContentSink; +typedef nsISupports nsIParserFilter; +typedef nsISupports nsIDTD; [ object, @@ -469,7 +473,7 @@ interface nsIHttpChannel : nsIChannel [ object, - uuid(91dbb42a-dffc-4f47-8b27-9579c0d92c3f), + uuid(9fb2a161-d075-4bf2-b07a-26bac650cc81), local ] interface nsIHttpChannelInternal : nsISupports @@ -483,6 +487,8 @@ interface nsIHttpChannelInternal : nsISupports nsresult GetForceAllowThirdPartyCookie(PRBool *aForceAllowThirdPartyCookie); nsresult SetForceAllowThirdPartyCookie(PRBool aForceAllowThirdPartyCookie); nsresult GetCanceled(PRBool *aCanceled); + nsresult GetChannelIsForDownload(PRBool *aChannelIsForDownload); + nsresult SetChannelIsForDownload(PRBool aChannelIsForDownload); } [ @@ -920,7 +926,7 @@ interface nsIDOMDocument : nsIDOMNode [ object, - uuid(7485b35e-d215-42a0-8a67-896f86c8afd9), + uuid(92f2c6f8-3668-4a47-8251-2a900afe11fa), local ] interface nsIDOMNSDocument : nsISupports @@ -937,6 +943,7 @@ interface nsIDOMNSDocument : nsISupports nsresult GetReferrer(nsAString *aReferrer); nsresult HasFocus(PRBool *_retval); nsresult GetActiveElement(nsIDOMElement **aActiveElement); + nsresult GetCurrentScript(nsIDOMElement **aActiveElement); nsresult GetElementsByClassName(const nsAString *classes, nsIDOMNodeList **_retval); nsresult ElementFromPoint(float x, float y, nsIDOMElement **_retval); nsresult ReleaseCapture(); @@ -1204,32 +1211,36 @@ interface nsIDOMHTMLBodyElement : nsIDOMHTMLElement [ object, - uuid(a6cf908f-15b3-11d2-932e-00805f8add32), + uuid(0884ce23-e069-499e-a13c-a91c8ae0fc98), local ] interface nsIDOMHTMLFormElement : nsIDOMHTMLElement { - nsresult GetElements(nsIDOMHTMLCollection **aElements); - nsresult GetLength(PRInt32 *aLength); nsresult GetName(nsAString *aName); nsresult SetName(const nsAString *aName); nsresult GetAcceptCharset(nsAString *aAcceptCharset); nsresult SetAcceptCharset(const nsAString *aAcceptCharset); nsresult GetAction(nsAString *aAction); nsresult SetAction(const nsAString *aAction); + nsresult GetAutocomplete(nsAString *aAutocomplete); + nsresult SetAutocomplete(const nsAString *aAutocomplete); nsresult GetEnctype(nsAString *aEnctype); nsresult SetEnctype(const nsAString *aEnctype); nsresult GetMethod(nsAString *aMethod); nsresult SetMethod(const nsAString *aMethod); + nsresult GetNoValidate(PRBool *aNoValidate); + nsresult SetNoValidate(PRBool aNoValidate); nsresult GetTarget(nsAString *aTarget); nsresult SetTarget(const nsAString *aTarget); + nsresult GetElements(nsIDOMHTMLCollection **aElements); + nsresult GetLength(PRInt32 *aLength); nsresult Submit(); nsresult Reset(); } [ object, - uuid(2480b6f0-094e-484f-8717-0c204ed23e69), + uuid(0805059d-f18f-4095-ae6b-0bf6df80b7b8), local ] interface nsIDOMHTMLInputElement : nsIDOMHTMLElement @@ -1238,6 +1249,8 @@ interface nsIDOMHTMLInputElement : nsIDOMHTMLElement nsresult SetAccept(const nsAString *aAccept); nsresult GetAlt(nsAString *aAlt); nsresult SetAlt(const nsAString *aAlt); + nsresult GetAutocomplete(nsAString *aAutocomplete); + nsresult SetAutocomplete(const nsAString *aAutocomplete); nsresult GetAutofocus(PRBool *aAutofocus); nsresult SetAutofocus(PRBool aAutofocus); nsresult GetDefaultChecked(PRBool *aDefaultChecked); @@ -1247,19 +1260,34 @@ interface nsIDOMHTMLInputElement : nsIDOMHTMLElement nsresult GetDisabled(PRBool *aDisabled); nsresult SetDisabled(PRBool aDisabled); nsresult GetForm(nsIDOMHTMLFormElement **aForm); + nsresult GetFormAction(nsAString *aFormAction); + nsresult SetFormAction(const nsAString *aFormAction); + nsresult GetFormEnctype(nsAString *aFormEnctype); + nsresult SetFormEnctype(const nsAString *aFormEnctype); + nsresult GetFormMethod(nsAString *aFormMethod); + nsresult SetFormMethod(const nsAString *aFormMethod); + nsresult GetFormNoValidate(PRBool *aFormNoValidate); + nsresult SetFormNoValidate(PRBool aFormNoValidate); + nsresult GetFormTarget(nsAString *aFormTarget); + nsresult SetFormTarget(const nsAString *aFormTarget); nsresult GetFiles(nsIDOMFileList **aFiles); nsresult GetIndeterminate(PRBool *aIndeterminate); nsresult SetIndeterminate(PRBool aIndeterminate); + nsresult GetList(nsIDOMHTMLElement **aList); nsresult GetMaxLength(PRInt32 *aMaxLength); nsresult SetMaxLength(PRInt32 aMaxLength); nsresult GetMultiple(PRBool *aMultiple); nsresult SetMultiple(PRBool aMultiple); nsresult GetName(nsAString *aName); nsresult SetName(const nsAString *aName); + nsresult GetPattern(nsAString *aPattern); + nsresult SetPattern(const nsAString *aPattern); nsresult GetPlaceholder(nsAString *aPlaceholder); nsresult SetPlaceholder(const nsAString *aPlaceholder); nsresult GetReadOnly(PRBool *aReadOnly); nsresult SetReadOnly(PRBool aReadOnly); + nsresult GetRequired(PRBool *aRequired); + nsresult SetRequired(PRBool aRequired); nsresult GetAccessKey(nsAString *aAccessKey); nsresult SetAccessKey(const nsAString *aAccessKey); nsresult GetAlign(nsAString *aAlign); @@ -1274,6 +1302,11 @@ interface nsIDOMHTMLInputElement : nsIDOMHTMLElement nsresult SetDefaultValue(const nsAString *aDefaultValue); nsresult GetValue(nsAString *aValue); nsresult SetValue(const nsAString *aValue); + nsresult GetWillValidate(PRBool *aWillValidate); + nsresult GetValidity(nsIDOMValidityState **aValidity); + nsresult GetValidationMessage(nsAString *aValidationMessage); + nsresult CheckValidity(PRBool *_retval); + nsresult SetCustomValidity(const nsAString *error); nsresult Select(); nsresult GetSelectionStart(PRInt32 *aSelectionStart); nsresult SetSelectionStart(PRInt32 aSelectionStart); @@ -1332,7 +1365,7 @@ interface nsIDOMHTMLOptionsCollection : nsISupports [ object, - uuid(110a4b15-e0a2-48d7-8e59-d8d94ef510ad), + uuid(e3c6d960-972c-4a5e-a8f4-6ca65d578abf), local ] interface nsIDOMHTMLSelectElement : nsIDOMHTMLElement @@ -1364,6 +1397,11 @@ interface nsIDOMHTMLSelectElement : nsIDOMHTMLElement nsresult SetTabIndex(PRInt32 aTabIndex); nsresult Blur(); nsresult Focus(); + nsresult GetWillValidate(PRBool *aWillValidate); + nsresult GetValidity(nsIDOMValidityState **aValidity); + nsresult GetValidationMessage(nsAString *aValidationMessage); + nsresult CheckValidity(PRBool *_retval); + nsresult SetCustomValidity(const nsAString *error); } [ @@ -1642,7 +1680,7 @@ interface nsIDOMHTMLFrameElement : nsIDOMHTMLElement [ object, - uuid(a6cf90ac-15b3-11d2-932e-00805f8add32), + uuid(9b93aab4-7fe8-4f79-9ad2-0623178a0c46), local ] interface nsIDOMHTMLObjectElement : nsIDOMHTMLElement @@ -1683,6 +1721,11 @@ interface nsIDOMHTMLObjectElement : nsIDOMHTMLElement nsresult GetWidth(nsAString *aWidth); nsresult SetWidth(const nsAString *aWidth); nsresult GetContentDocument(nsIDOMDocument **aContentDocument); + nsresult GetWillValidate(PRBool *aWillValidate); + nsresult GetValidity(nsIDOMValidityState **aValidity); + nsresult GetValidationMessage(nsAString *aValidationMessage); + nsresult CheckValidity(PRBool *_retval); + nsresult SetCustomValidity(const nsAString *error); } [ @@ -2596,7 +2639,7 @@ interface nsIController : nsISupports [ object, - uuid(dd254504-e273-4923-9ec1-d8421a6635f1), + uuid(71afb9e6-e8a7-475d-89c4-e46221ebe1a4), local ] interface nsIContent : nsISupports @@ -2606,7 +2649,7 @@ interface nsIContent : nsISupports [ object, - uuid(b2274bc3-4a1c-4e64-8de4-3bc650288438), + uuid(c38a7935-c854-4df7-8fd4-a26f0d279f31), local ] interface nsIDocument : nsISupports @@ -2796,7 +2839,7 @@ interface nsIHTMLEditor : nsISupports [ object, - uuid(bf6db598-3833-400b-9e53-ec220cb2496c), + uuid(98cdbcc4-2d81-4191-a63f-b6c52085edbc), local ] interface nsIDocShell : nsISupports @@ -2879,6 +2922,9 @@ interface nsIDocShell : nsISupports nsresult GetCanExecuteScripts(PRBool *aCanExecuteScripts); nsresult GetIsActive(PRBool *aIsActive); nsresult SetIsActive(PRBool aIsActive); + nsresult GetHistoryID(PRUint64 *aHistoryID); + nsresult GetIsAppTab(PRBool *aIsAppTab); + nsresult SetIsAppTab(PRBool aIsAppTab); } [ @@ -2908,20 +2954,69 @@ interface nsIMutationObserver : nsISupports [ object, - uuid(4e14e321-a4bb-49f8-a57a-2363668d14d0), + uuid(cbc0cbd8-bbb7-46d6-a551-378a6953a714), + local +] +interface nsIParser : nsISupports +{ + typedef int nsDTDMode; + typedef int eParserCommands; + + void SetContentSink(nsIContentSink *aSink); + nsIContentSink *GetContentSink(); + void GetCommand(nsACString *aCommand); + void SetCommand2(const char *aCommand); + void SetCommand(eParserCommands aParserCommand); + void SetDocumentCharset(const nsACString *aCharset, PRInt32 aSource); + void GetDocumentCharset(nsACString *oCharset, PRInt32 *oSource); + void SetParserFilter(nsIParserFilter *aFilter); + nsresult GetChannel(nsIChannel **aChannel); + nsresult GetDTD(nsIDTD **aDTD); + nsresult GetStreamListener(nsIStreamListener **aListener); + nsresult ContinueInterruptedParsing(); + void BlockParser(); + void UnblockParser(); + PRBool IsParserEnabled(); + PRBool IsComplete(); + nsresult Parse(nsIURI *aURL, nsIRequestObserver *aListener, void *aKey, nsDTDMode aMode); + nsresult Parse2(const nsAString *aSourceBuffer, void *aKey, const nsACString *aMimeType, PRBool aLastCall, nsDTDMode aMode); + void *GetRootContextKey(); + nsresult Terminate(); + nsresult ParseFragment(const nsAString *aSourceBuffer, void *aKey, void /*nsTArray*/ *aTagStack, + PRBool aXMLMode, const nsACString *aContentType, nsDTDMode aMode); + nsresult ParseFragment2(const nsAString *aSourceBuffer, nsIContent *aTargetNode, nsIAtom *aContextLocalName, + PRInt32 aContextNamespace, PRBool aQuirks); + nsresult BuildModel(); + nsresult CancelParsingEvents(); + void Reset(); + PRBool CanInterrupt(); + PRBool IsInsertionPointDefined(); + void BeginEvaluatingParserInsertedScript(); + void EndEvaluatingParserInsertedScript(); + void MarkAsNotScriptCreated(); + PRBool IsScriptCreated(); +} + +[ + object, + uuid(3d005225-210f-4b07-b1d9-96020574c437), local ] interface nsIDocumentObserver : nsIMutationObserver { typedef int nsUpdateType; + typedef struct { + PRUint64 mStates; + } nsEventStates; + 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 DocumentStatesChanged(nsIDocument* aDocument, PRInt32 aStateMask); + nsEventStates aStateMask); + void DocumentStatesChanged(nsIDocument* aDocument, nsEventStates aStateMask); void StyleSheetAdded(nsIDocument *aDocument, nsIStyleSheet *aStyleSheet, PRBool aDocumentSheet); void StyleSheetRemoved(nsIDocument *aDocument, nsIStyleSheet *aStyleSheet, PRBool aDocumentSheet); void StyleSheetApplicableStateChanged(nsIDocument *aDocument, nsIStyleSheet *aStyleSheet, @@ -2931,7 +3026,7 @@ interface nsIDocumentObserver : nsIMutationObserver void StyleRuleAdded(nsIDocument *aDocument, nsIStyleSheet *aStyleSheet, nsIStyleRule *aStyleRule); void StyleRuleRemoved(nsIDocument *aDocument, nsIStyleSheet *aStyleSheet, nsIStyleRule *aStyleRule); void BindToDocument(nsIDocument *aDocument, nsIContent *aContent); - void DoneAddingChildren(nsIContent *aContent, PRBool aHaveNotified); + nsresult DoneAddingChildren(nsIContent *aContent, PRBool aHaveNotified, nsIParser *aParser); } /* Parts of npapi.h */ @@ -3064,6 +3159,7 @@ interface nsIPluginInstance : nsISupports { typedef void *JSContext; typedef void *JSObject; + typedef void *gfxASurface; nsresult Initialize(nsIPluginInstanceOwner *aOwner, const char *aMIMEType); nsresult Start(); @@ -3093,6 +3189,11 @@ interface nsIPluginInstance : nsISupports nsresult IsTransparent(PRBool *_retval); nsresult GetValueFromPlugin(NPPVariable variable, void *aValue); nsresult GetDrawingModel(PRInt32 *_retval); + nsresult AsyncSetWindow(NPWindow *aWindow); + nsresult NotifyPainted(); + nsresult GetSurface(gfxASurface **aSurface); + nsresult UseAsyncPainting(PRBool *_retval); + } [ diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c index 492f845..6fde0b2 100644 --- a/dlls/mshtml/nsio.c +++ b/dlls/mshtml/nsio.c @@ -1462,6 +1462,24 @@ static nsresult NSAPI nsHttpChannelInternal_GetCanceled(nsIHttpChannelInternal * return NS_ERROR_NOT_IMPLEMENTED; } +static nsresult NSAPI nsHttpChannelInternal_GetChannelIsForDownload(nsIHttpChannelInternal *iface, PRBool *aCanceled) +{ + nsChannel *This = impl_from_nsIHttpChannelInternal(iface); + + FIXME("(%p)->(%p)\n", This, aCanceled); + + return NS_ERROR_NOT_IMPLEMENTED; +} + +static nsresult NSAPI nsHttpChannelInternal_SetChannelIsForDownload(nsIHttpChannelInternal *iface, PRBool aCanceled) +{ + nsChannel *This = impl_from_nsIHttpChannelInternal(iface); + + FIXME("(%p)->(%x)\n", This, aCanceled); + + return NS_ERROR_NOT_IMPLEMENTED; +} + static const nsIHttpChannelInternalVtbl nsHttpChannelInternalVtbl = { nsHttpChannelInternal_QueryInterface, nsHttpChannelInternal_AddRef, @@ -1474,7 +1492,9 @@ static const nsIHttpChannelInternalVtbl nsHttpChannelInternalVtbl = { nsHttpChannelInternal_SetupFallbackChannel, nsHttpChannelInternal_GetForceAllowThirdPartyCookie, nsHttpChannelInternal_SetForceAllowThirdPartyCookie, - nsHttpChannelInternal_GetCanceled + nsHttpChannelInternal_GetCanceled, + nsHttpChannelInternal_GetChannelIsForDownload, + nsHttpChannelInternal_SetChannelIsForDownload }; static BOOL ensure_uri(nsWineURI *This) diff --git a/dlls/mshtml/tests/exectest.html b/dlls/mshtml/tests/exectest.html index 65d3701..1d84917 100644 --- a/dlls/mshtml/tests/exectest.html +++ b/dlls/mshtml/tests/exectest.html @@ -15,12 +15,12 @@ ok(len === 3, "init length = " + len); document.write("