Commit 699e41cd authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

mshtml: Wine Gecko 1.2.0 release.

parent e52f5773
......@@ -51,20 +51,20 @@
WINE_DEFAULT_DEBUG_CHANNEL(appwizcpl);
#define GECKO_VERSION "1.1.0"
#define GECKO_VERSION "1.2.0"
#ifdef __i386__
#define ARCH_STRING "x86"
#define GECKO_SHA "1b6c637207b6f032ae8a52841db9659433482714"
#define GECKO_SHA "6964d1877668ab7da07a60f6dcf23fb0e261a808"
#elif defined(__x86_64__)
#define ARCH_STRING "x86_64"
#define GECKO_SHA "55b4b60cd2a48631d6236fb411c3a94d806d9906"
#define GECKO_SHA "3ac3c3e880e40f7763824866372ffc56128f0abd"
#else
#define ARCH_STRING ""
#define GECKO_SHA "???"
#endif
#define GECKO_FILE_NAME "wine_gecko-" GECKO_VERSION "-" ARCH_STRING ".cab"
#define GECKO_FILE_NAME "wine_gecko-" GECKO_VERSION "-" ARCH_STRING ".msi"
static const WCHAR mshtml_keyW[] =
{'S','o','f','t','w','a','r','e',
......
......@@ -1923,7 +1923,7 @@ static void HTMLDocumentNode_destructor(HTMLDOMNode *iface)
detach_plugin_host(LIST_ENTRY(list_head(&This->plugin_hosts), PluginHost, entry));
if(This->nsdoc) {
release_mutation(This);
release_document_mutation(This);
nsIDOMHTMLDocument_Release(This->nsdoc);
}
......@@ -2024,7 +2024,7 @@ HRESULT create_doc_from_nsdoc(nsIDOMHTMLDocument *nsdoc, HTMLDocumentObj *doc_ob
nsIDOMHTMLDocument_AddRef(nsdoc);
doc->nsdoc = nsdoc;
init_mutation(doc);
init_document_mutation(doc);
HTMLDOMNode_Init(doc, &doc->node, (nsIDOMNode*)nsdoc);
doc->node.vtbl = &HTMLDocumentNodeImplVtbl;
......
......@@ -661,8 +661,9 @@ NSContainer *NSContainer_Create(HTMLDocumentObj*,NSContainer*);
void NSContainer_Release(NSContainer*);
nsresult create_chrome_window(nsIWebBrowserChrome*,nsIWebBrowserChrome**);
void init_mutation(HTMLDocumentNode*);
void release_mutation(HTMLDocumentNode*);
void init_mutation(nsIComponentManager*);
void init_document_mutation(HTMLDocumentNode*);
void release_document_mutation(HTMLDocumentNode*);
void HTMLDocument_LockContainer(HTMLDocumentObj*,BOOL);
void show_context_menu(HTMLDocumentObj*,DWORD,POINT*,IDispatch*);
......
......@@ -39,6 +39,11 @@ WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
#define IE_MAJOR_VERSION 7
#define IE_MINOR_VERSION 0
static const IID NS_ICONTENTUTILS_CID =
{0x762C4AE7,0xB923,0x422F,{0xB9,0x7E,0xB9,0xBF,0xC1,0xEF,0x7B,0xF0}};
static nsIContentUtils *content_utils;
static BOOL handle_insert_comment(HTMLDocumentNode *doc, const PRUnichar *comment)
{
DWORD len;
......@@ -410,9 +415,7 @@ static const nsIRunnableVtbl nsRunnableVtbl = {
static void add_script_runner(HTMLDocumentNode *This, runnable_proc_t proc, nsISupports *arg1, nsISupports *arg2)
{
nsIDOMNSDocument *nsdoc;
nsRunnable *runnable;
nsresult nsres;
runnable = heap_alloc_zero(sizeof(*runnable));
if(!runnable)
......@@ -433,13 +436,7 @@ static void add_script_runner(HTMLDocumentNode *This, runnable_proc_t proc, nsIS
nsISupports_AddRef(arg2);
runnable->arg2 = arg2;
nsres = nsIDOMHTMLDocument_QueryInterface(This->nsdoc, &IID_nsIDOMNSDocument, (void**)&nsdoc);
if(NS_SUCCEEDED(nsres)) {
nsIDOMNSDocument_WineAddScriptRunner(nsdoc, &runnable->nsIRunnable_iface);
nsIDOMNSDocument_Release(nsdoc);
}else {
ERR("Could not get nsIDOMNSDocument: %08x\n", nsres);
}
nsIContentUtils_AddScriptRunner(content_utils, &runnable->nsIRunnable_iface);
nsIRunnable_Release(&runnable->nsIRunnable_iface);
}
......@@ -557,12 +554,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 +636,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;
......@@ -655,6 +652,8 @@ static void NSAPI nsDocumentObserver_DoneAddingChildren(nsIDocumentObserver *ifa
add_script_runner(This, run_insert_script, (nsISupports*)nsscript, NULL);
nsIDOMHTMLScriptElement_Release(nsscript);
}
return NS_OK;
}
static const nsIDocumentObserverVtbl nsDocumentObserverVtbl = {
......@@ -686,34 +685,60 @@ static const nsIDocumentObserverVtbl nsDocumentObserverVtbl = {
nsDocumentObserver_DoneAddingChildren
};
void init_mutation(HTMLDocumentNode *doc)
void init_document_mutation(HTMLDocumentNode *doc)
{
nsIDOMNSDocument *nsdoc;
nsIDocument *nsdoc;
nsresult nsres;
doc->nsIDocumentObserver_iface.lpVtbl = &nsDocumentObserverVtbl;
nsres = nsIDOMHTMLDocument_QueryInterface(doc->nsdoc, &IID_nsIDOMNSDocument, (void**)&nsdoc);
nsres = nsIDOMHTMLDocument_QueryInterface(doc->nsdoc, &IID_nsIDocument, (void**)&nsdoc);
if(NS_FAILED(nsres)) {
ERR("Could not get nsIDocument: %08x\n", nsres);
return;
}
nsIContentUtils_AddDocumentObserver(content_utils, nsdoc, &doc->nsIDocumentObserver_iface);
nsIDocument_Release(nsdoc);
}
void release_document_mutation(HTMLDocumentNode *doc)
{
nsIDocument *nsdoc;
nsresult nsres;
nsres = nsIDOMHTMLDocument_QueryInterface(doc->nsdoc, &IID_nsIDocument, (void**)&nsdoc);
if(NS_FAILED(nsres)) {
ERR("Could not get nsIDOMNSDocument: %08x\n", nsres);
ERR("Could not get nsIDocument: %08x\n", nsres);
return;
}
nsIDOMNSDocument_WineAddObserver(nsdoc, &doc->nsIDocumentObserver_iface);
nsIDOMNSDocument_Release(nsdoc);
nsIContentUtils_RemoveDocumentObserver(content_utils, nsdoc, &doc->nsIDocumentObserver_iface);
nsIDocument_Release(nsdoc);
}
void release_mutation(HTMLDocumentNode *doc)
void init_mutation(nsIComponentManager *component_manager)
{
nsIDOMNSDocument *nsdoc;
nsIFactory *factory;
nsresult nsres;
nsres = nsIDOMHTMLDocument_QueryInterface(doc->nsdoc, &IID_nsIDOMNSDocument, (void**)&nsdoc);
if(!component_manager) {
if(content_utils) {
nsIContentUtils_Release(content_utils);
content_utils = NULL;
}
return;
}
nsres = nsIComponentManager_GetClassObject(component_manager, &NS_ICONTENTUTILS_CID,
&IID_nsIFactory, (void**)&factory);
if(NS_FAILED(nsres)) {
ERR("Could not get nsIDOMNSDocument: %08x\n", nsres);
ERR("Could not create nsIContentUtils service: %08x\n", nsres);
return;
}
nsIDOMNSDocument_WineRemoveObserver(nsdoc, &doc->nsIDocumentObserver_iface);
nsIDOMNSDocument_Release(nsdoc);
nsres = nsIFactory_CreateInstance(factory, NULL, &IID_nsIContentUtils, (void**)&content_utils);
nsIFactory_Release(factory);
if(NS_FAILED(nsres))
ERR("Could not create nsIContentUtils instance: %08x\n", nsres);
}
......@@ -394,7 +394,7 @@ static BOOL load_wine_gecko_v(PRUnichar *gre_path, HKEY mshtml_key,
{'G','e','c','k','o','P','a','t','h',0};
if(version) {
/* @@ Wine registry key: HKCU\Software\Wine\MSHTML\<version> */
/* @@ Wine registry key: HKLM\Software\Wine\MSHTML\<version> */
res = RegOpenKeyA(mshtml_key, version, &hkey);
if(res != ERROR_SUCCESS)
return FALSE;
......@@ -422,8 +422,8 @@ static BOOL load_wine_gecko(PRUnichar *gre_path)
'S','o','f','t','w','a','r','e','\\','W','i','n','e',
'\\','M','S','H','T','M','L',0};
/* @@ Wine registry key: HKCU\Software\Wine\MSHTML */
res = RegOpenKeyW(HKEY_CURRENT_USER, wszMshtmlKey, &hkey);
/* @@ Wine registry key: HKLM\Software\Wine\MSHTML */
res = RegOpenKeyW(HKEY_LOCAL_MACHINE, wszMshtmlKey, &hkey);
if(res != ERROR_SUCCESS)
return FALSE;
......@@ -599,6 +599,8 @@ static BOOL init_xpcom(const PRUnichar *gre_path)
else
ERR("NS_GetComponentRegistrar failed: %08x\n", nsres);
init_mutation(pCompMgr);
nsres = nsIComponentManager_CreateInstanceByContractID(pCompMgr, NS_APPSTARTUPNOTIFIER_CONTRACTID,
NULL, &IID_nsIObserver, (void**)&pStartNotif);
if(NS_SUCCEEDED(nsres)) {
......@@ -947,6 +949,7 @@ void close_gecko(void)
TRACE("()\n");
release_nsio();
init_mutation(NULL);
if(profile_directory) {
nsIFile_Release(profile_directory);
......
......@@ -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)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment