Wine Gecko 2.40-beta1

Jacek Caban jacek at codeweavers.com
Mon Jul 6 10:21:42 CDT 2015


Hi all,

It's time for another Wine Gecko update. I uploaded new builds to
SourceForge. The new version is updated to use upcoming Firefox 40
engine and brings a few Wine-specific fixes. It also adds support for
building with MSVC, contributed by Austin.

If you want to test it, just build Wine with the attached patch. Wine
will download Gecko for you. All feedback is appreciated.

Thanks,
Jacek
-------------- next part --------------
commit 4f17e58a6394c9815a6eb3f4594e8509648fe032
Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Jul 3 18:43:42 2015 +0200

    mshtml: Wine Gecko 2.40-beta1 release.

diff --git a/dlls/appwiz.cpl/addons.c b/dlls/appwiz.cpl/addons.c
index b4fcc25..6583767 100644
--- a/dlls/appwiz.cpl/addons.c
+++ b/dlls/appwiz.cpl/addons.c
@@ -51,14 +51,14 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(appwizcpl);
 
-#define GECKO_VERSION "2.36"
+#define GECKO_VERSION "2.40-beta1"
 
 #ifdef __i386__
 #define ARCH_STRING "x86"
-#define GECKO_SHA "08b02bf0e3ff3a315135afa1132ddb3a25a63e15"
+#define GECKO_SHA "73047a4b3f917b851137ac23fc9521bb303ae15e"
 #elif defined(__x86_64__)
 #define ARCH_STRING "x86_64"
-#define GECKO_SHA "a7624eb685d04c4ef1f4f093095a5a324808d57c"
+#define GECKO_SHA "e83d6d0e74fa5681e01334082a8102f364e0098f"
 #else
 #define ARCH_STRING ""
 #define GECKO_SHA "???"
diff --git a/dlls/mshtml/nsembed.c b/dlls/mshtml/nsembed.c
index df2e130..93f4277 100644
--- a/dlls/mshtml/nsembed.c
+++ b/dlls/mshtml/nsembed.c
@@ -1577,12 +1577,12 @@ static nsresult NSAPI nsURIContentListener_OnStartURIOpen(nsIURIContentListener
 }
 
 static nsresult NSAPI nsURIContentListener_DoContent(nsIURIContentListener *iface,
-        const char *aContentType, cpp_bool aIsContentPreferred, nsIRequest *aRequest,
+        const nsACString *aContentType, cpp_bool aIsContentPreferred, nsIRequest *aRequest,
         nsIStreamListener **aContentHandler, cpp_bool *_retval)
 {
     NSContainer *This = impl_from_nsIURIContentListener(iface);
 
-    TRACE("(%p)->(%s %x %p %p %p)\n", This, debugstr_a(aContentType), aIsContentPreferred,
+    TRACE("(%p)->(%p %x %p %p %p)\n", This, aContentType, aIsContentPreferred,
             aRequest, aContentHandler, _retval);
 
     return This->content_listener
@@ -2199,7 +2199,7 @@ nsIXMLHttpRequest *create_nsxhr(nsIDOMWindow *nswindow)
         return NULL;
     }
 
-    nsres = nsIXMLHttpRequest_Init(nsxhr, nspri, NULL, nsglo, NULL);
+    nsres = nsIXMLHttpRequest_Init(nsxhr, nspri, NULL, nsglo, NULL, NULL);
 
     nsISupports_Release(nspri);
     nsIGlobalObject_Release(nsglo);
diff --git a/dlls/mshtml/nsiface.idl b/dlls/mshtml/nsiface.idl
index 5da113e..abed7b6 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 \"2.36\"")
+cpp_quote("#define GECKO_VERSION \"2.40-beta1\"")
 cpp_quote("#define GECKO_VERSION_STRING \"Wine Gecko \" GECKO_VERSION")
 
 import "wtypes.idl";
@@ -145,7 +145,6 @@ typedef nsISupports nsIAtom;
 typedef nsISupports nsISupportsArray;
 typedef nsISupports nsIContentFilter;
 typedef nsISupports nsIDOMMediaList;
-typedef nsISupports nsIDOMHTMLTableCaptionElement;
 typedef nsISupports nsIDOMHTMLTableSectionElement;
 typedef nsISupports nsIDOMClientRectList;
 typedef nsISupports nsINode;
@@ -608,7 +607,7 @@ interface nsIHttpHeaderVisitor : nsISupports
 
 [
     object,
-    uuid(82083578-fb78-4f9a-953c-cecbae500697),
+    uuid(86ad7e1f-3a64-4e0f-a104-395ebecd7d5c),
     local
 ]
 interface nsIHttpChannel : nsIChannel
@@ -636,12 +635,13 @@ interface nsIHttpChannel : nsIChannel
     nsresult VisitResponseHeaders(nsIHttpHeaderVisitor *aVisitor);
     nsresult IsNoStoreResponse(bool *_retval);
     nsresult IsNoCacheResponse(bool *_retval);
+    nsresult IsPrivateResponse(bool *_retval);
     nsresult RedirectTo(nsIURI *aNewURI);
 }
 
 [
     object,
-    uuid(62a8d6e2-3418-4c6f-9d90-88573838f6dd),
+    uuid(26833ec7-4555-4f23-9281-3a12d4b76db1),
     local
 ]
 interface nsIHttpChannelInternal : nsISupports
@@ -666,17 +666,23 @@ interface nsIHttpChannelInternal : nsISupports
     nsresult HTTPUpgrade(const nsACString *aProtocolName, nsIHttpUpgradeListener *aListener);
     nsresult GetAllowSpdy(bool *aAllowSpdy);
     nsresult SetAllowSpdy(bool aAllowSpdy);
-    nsresult GetLoadAsBlocking(bool *aLoadAsBlocking);
-    nsresult SetLoadAsBlocking(bool aLoadAsBlocking);
-    nsresult GetLoadUnblocked(bool *aLoadUnblocked);
-    nsresult SetLoadUnblocked(bool aLoadUnblocked);
     nsresult GetResponseTimeoutEnabled(bool *aResponseTimeoutEnabled);
     nsresult SetResponseTimeoutEnabled(bool aResponseTimeoutEnabled);
     nsresult GetApiRedirectToURI(nsIURI **aApiRedirectToURI);
+    nsresult GetAllowAltSvc(bool *aAllowAltSvc);
+    nsresult SetAllowAltSvc(bool aAllowAltSvc);
     nsresult AddRedirect(nsIPrincipal *aPrincipal);
     nsresult GetLastModifiedTime(PRTime *aLastModifiedTime);
     nsresult ForceNoIntercept();
+    nsresult GetCorsIncludeCredentials(bool *aCorsIncludeCredentials);
+    nsresult SetCorsIncludeCredentials(bool aCorsIncludeCredentials);
+    nsresult GetCorsMode(uint32_t *aCorsMode);
+    nsresult SetCorsMode(uint32_t aCorsMode);
     nsresult GetTopWindowURI(nsIURI **aTopWindowURI);
+    nsresult GetNetworkInterfaceId(nsACString *aNetworkInterfaceId);
+    nsresult SetNetworkInterfaceId(const nsACString *aNetworkInterfaceId);
+    nsresult ContinueBeginConnect();
+    nsresult GetProxyURI(nsIURI **aProxyURI);
 }
 
 [
@@ -703,7 +709,7 @@ interface nsIAsyncVerifyRedirectCallback : nsISupports
 
 [
     object,
-    uuid(a430d870-df77-4502-9570-d46a8de33154),
+    uuid(0197720d-37ed-4e75-8956-d0d296e4d8a6),
     local
 ]
 interface nsIChannelEventSink : nsISupports
@@ -711,6 +717,7 @@ interface nsIChannelEventSink : nsISupports
     const UINT REDIRECT_TEMPORARY = 1;
     const UINT REDIRECT_PERMANENT = 2;
     const UINT REDIRECT_INTERNAL  = 4;
+    const UINT REDIRECT_STS_UPGRADE = 8;
 
     nsresult AsyncOnChannelRedirect(nsIChannel *oldChannel, nsIChannel *newChannel, uint32_t flags,
                                     nsIAsyncVerifyRedirectCallback *callback);
@@ -1381,7 +1388,7 @@ interface nsIDOMWindowCollection : nsISupports
 
 [
     object,
-    uuid(ed7cc4e4-cf5b-42af-9c2e-8df074a01470),
+    uuid(8146f3fc-9fc1-47c5-85ef-95d686e4ca6d),
     local
 ]
 interface nsIDOMWindow : nsISupports
@@ -1429,7 +1436,6 @@ interface nsIDOMWindow : nsISupports
     nsresult GetSessionStorage(nsISupports **aSessionStorage);
     nsresult GetLocalStorage(nsISupports **aLocalStorage);
     nsresult GetIndexedDB(nsISupports **aIndexedDB);
-    nsresult GetMozIndexedDB(nsISupports **aMozIndexedDB);
     nsresult GetSelection(nsISelection **_retval);
     nsresult MatchMedia(const nsAString *media_query_list, nsISupports **_retval);
     nsresult GetScreen(nsIDOMScreen **aScreen);
@@ -1974,8 +1980,8 @@ interface nsIDOMHTMLLinkElement : nsISupports
 ]
 interface nsIDOMHTMLTableElement : nsISupports
 {
-    nsresult GetCaption(nsIDOMHTMLTableCaptionElement **aCaption);
-    nsresult SetCaption(nsIDOMHTMLTableCaptionElement *aCaption);
+    nsresult GetCaption(nsIDOMHTMLElement **aCaption);
+    nsresult SetCaption(nsIDOMHTMLElement *aCaption);
     nsresult GetTHead(nsIDOMHTMLElement **aTHead);
     nsresult SetTHead(nsIDOMHTMLElement *aTHead);
     nsresult GetTFoot(nsIDOMHTMLElement **aTFoot);
@@ -2202,13 +2208,13 @@ interface nsIDOMHTMLStyleElement : nsISupports
 
 [
     object,
-    uuid(94928ab3-8b63-11d3-989d-001083010e9b),
+    uuid(10a28f38-32e8-4c63-8aa1-12eaaebc369a),
     local
 ]
 interface nsIURIContentListener : nsISupports
 {
     nsresult OnStartURIOpen(nsIURI *aURI, bool *_retval);
-    nsresult DoContent(const char *aContentType, bool aIsContentPreferred, nsIRequest *aRequest,
+    nsresult DoContent(const nsACString *aContentType, bool aIsContentPreferred, nsIRequest *aRequest,
         nsIStreamListener **aContentHandler, bool *_retval);
     nsresult IsPreferred(const char *aContentType, char **aDesiredContentType, bool *_retval);
     nsresult CanHandleContent(const char *aContentType, bool aIsContentPreferred,
@@ -2300,7 +2306,7 @@ interface nsIBaseWindow : nsISupports
 
 [
     object,
-    uuid(b7568a50-4c50-442c-a6be-3a340a48d89a),
+    uuid(0e92d522-53a5-4af6-9a24-4eccdcbf4f91),
     local
 ]
 interface nsIWebNavigation : nsISupports
@@ -2330,7 +2336,7 @@ interface nsIWebNavigation : nsISupports
     nsresult GotoIndex(int32_t index);
     nsresult LoadURI(const PRUnichar *aURI, uint32_t aLoadFlags, nsIURI *aReferrer,
             nsIInputStream *aPostData, nsIInputStream *aHeaders);
-    nsresult LoadURIWithBase(const PRUnichar *aURI, uint32_t aLoadFlags, nsIURI *aReferrer,
+    nsresult LoadURIWithOptions(const PRUnichar *aURI, uint32_t aLoadFlags, nsIURI *aReferrer, uint32_t aReferrerPolicy,
             nsIInputStream *aPostData, nsIInputStream *aHeaders, nsIURI *aBaseURI);
     nsresult Reload(uint32_t aReloadFlags);
     nsresult Stop(uint32_t aStopFlags);
@@ -2745,7 +2751,7 @@ interface nsIExternalProtocolHandler : nsIProtocolHandler
 
 [
     object,
-    uuid(d8555f58-203a-465a-a33e-442ae4c6c4cf),
+    uuid(4286de5a-b2ea-446f-8f70-e2a461f42694),
     local
 ]
 interface nsIIOService : nsISupports
@@ -2758,6 +2764,7 @@ interface nsIIOService : nsISupports
     nsresult NewChannelFromURI2(nsIURI *aURI, nsIDOMNode *aLoadingNode, nsIPrincipal *aLoadingPrincipal,
             nsIPrincipal *aTriggeringPrincipal, uint32_t aSecurityFlags, uint32_t aContentPolicyType,
             nsIChannel **_retval);
+    nsresult NewChannelFromURIWithLoadInfo(nsIURI *aURI, nsILoadInfo *aLoadInfo, nsIChannel **_retval);
     nsresult NewChannelFromURI(nsIURI *aURI, nsIChannel **_retval);
     nsresult NewChannel2(const nsACString *aSpec, const char *aOriginCharset, nsIURI *aBaseURI,
             nsIDOMNode *aLoadingNode, nsIPrincipal *aLoadingPrincipal, nsIPrincipal *aTriggeringPrincipal,
@@ -2766,11 +2773,14 @@ interface nsIIOService : nsISupports
                         nsIChannel **_retval);
     nsresult GetOffline(bool *aOffline);
     nsresult SetOffline(bool aOffline);
+    nsresult GetConnectivity(bool *aConnectivity);
     nsresult SetAppOffline(uint32_t appId, int32_t state);
     nsresult IsAppOffline(uint32_t appId, bool *_retval);
     nsresult GetAppOfflineState(uint32_t appId, int32_t *_retval);
     nsresult AllowPort(int32_t aPort, const char *aScheme, bool *_retval);
     nsresult ExtractScheme(const nsACString *urlString, nsACString *_retval);
+    nsresult NewLoadInfo(nsIPrincipal *aLoadingPrincipal, nsIPrincipal *aTriggeringPrincipal,
+            nsIDOMNode *aLoadingNode, uint32_t aSecurityFlags, uint32_t aContentPolicyType, nsILoadInfo **_retval);
 }
 
 [
@@ -2891,7 +2901,7 @@ interface nsIDOMEvent : nsISupports
 
 [
     object,
-    uuid(9621eb05-b498-4e87-a012-95d817987624),
+    uuid(1a75c351-d115-4d51-94df-731dd1723a1f),
     local
 ]
 interface nsIDOMWindowUtils : nsISupports
@@ -2911,8 +2921,9 @@ interface nsIDOMWindowUtils : nsISupports
     nsresult SetDisplayPortMarginsForElement(float aLeftMargin, float aTopMargin, float aRightMargin, float aBottomMargin,
             uint32_t aAlignmentX, uint32_t aAlignmentY, nsIDOMElement *aElement, uint32_t aPriority);
     nsresult SetDisplayPortBaseForElement(int32_t aX, int32_t aY, int32_t aWidth, int32_t aHeight, nsIDOMElement *aElement);
-    nsresult SetResolution(float aXResolution, float aYResolution);
-    nsresult GetResolution(float *aXResolution, float *aYResolution);
+    nsresult SetResolution(float aResolution);
+    nsresult GetResolution(float *aResolution);
+    nsresult SetResolutionAndScaleTo(float aResolution);
     nsresult GetIsResolutionSet(bool *aIsResolutionSet);
     nsresult GetIsFirstPaint(bool *aIsFirstPaint);
     nsresult SetIsFirstPaint(bool aIsFirstPaint);
@@ -2941,15 +2952,16 @@ interface nsIDOMWindowUtils : nsISupports
     nsresult SendKeyEvent(const nsAString *aType, int32_t aKeyCode, int32_t aCharCode, int32_t aModifiers,
            uint32_t aAdditionalFlags, bool *_retval);
     nsresult SendNativeKeyEvent(int32_t aNativeKeyboardLayout, int32_t aNativeKeyCode, int32_t aModifierFlags,
-           const nsAString *aCharacters, const nsAString *aUnmodifiedCharacters);
+           const nsAString *aCharacters, const nsAString *aUnmodifiedCharacters, nsIObserver *aObserver);
     nsresult SendNativeMouseEvent(int32_t aScreenX, int32_t aScreenY, int32_t aNativeMessage, int32_t aModifierFlags,
-           nsIDOMElement *aElement);
+           nsIDOMElement *aElement, nsIObserver *aObserver);
     nsresult SendNativeMouseScrollEvent(int32_t aScreenX, int32_t aScreenY, uint32_t aNativeMessage, double aDeltaX,
-           double aDeltaY, double aDeltaZ, uint32_t aModifierFlags, uint32_t aAdditionalFlags, nsIDOMElement *aElement);
+           double aDeltaY, double aDeltaZ, uint32_t aModifierFlags, uint32_t aAdditionalFlags, nsIDOMElement *aElement,
+           nsIObserver *aObserver);
     nsresult SendNativeTouchPoint(uint32_t aPointerId, uint32_t aTouchState, int32_t aScreenX, int32_t aScreenY,
-           double aPressure, uint32_t aOrientation);
-    nsresult SendNativeTouchTap(int32_t aScreenX, int32_t aScreenY, bool aLongTap);
-    nsresult ClearNativeTouchSequence();
+           double aPressure, uint32_t aOrientation, nsIObserver *aObserver);
+    nsresult SendNativeTouchTap(int32_t aScreenX, int32_t aScreenY, bool aLongTap, nsIObserver *aObserver);
+    nsresult ClearNativeTouchSequence(nsIObserver *aObserver);
     nsresult ActivateNativeMenuItemAt(const nsAString *indexString);
     nsresult ForceUpdateNativeMenuAt(const nsAString *indexString);
     nsresult Focus(nsIDOMElement *aElement);
@@ -2981,8 +2993,6 @@ interface nsIDOMWindowUtils : nsISupports
     nsresult DispatchEventToChromeOnly(nsIDOMEventTarget *aTarget, nsIDOMEvent *aEvent, bool *_retval);
     nsresult GetClassName(const /*JS::Value*/ void *aObject, JSContext *cx, char **_retval);
     nsresult SendContentCommandEvent(const nsAString *aType, nsITransferable *aTransferable);
-    nsresult SendCompositionEvent(const nsAString *aType, const nsAString *aData, const nsAString *aLocale);
-    nsresult CreateCompositionStringSynthesizer(int /*nsICompositionStringSynthesizer*/ **_retval);
     nsresult SendQueryContentEvent(uint32_t aType, uint32_t aOffset, uint32_t aLength, int32_t aX, int32_t aY,
             uint32_t aAdditionalFlags, nsIQueryContentEventResult **_retval);
     nsresult RemoteFrameFullscreenChanged(nsIDOMElement *aFrameElement, const nsAString *aNewOrigin);
@@ -2992,16 +3002,17 @@ interface nsIDOMWindowUtils : nsISupports
     nsresult SelectAtPoint(float aX, float aY, uint32_t aSelectBehavior, bool *_retval);
     nsresult GetVisitedDependentComputedStyle(nsIDOMElement *aElement, const nsAString *aPseudoElement,
            const nsAString *aPropertyName, nsAString *_retval);
-    nsresult GetParent(const /*JS::Value*/ void *obj, JSContext *cx, /*JS::Value*/ void *_retval);
     nsresult GetOuterWindowID(uint64_t *aOuterWindowID);
     nsresult GetCurrentInnerWindowID(uint64_t *aCurrentInnerWindowID);
     nsresult EnterModalState();
     nsresult LeaveModalState();
     nsresult IsInModalState(bool *_retval);
+    nsresult SetDesktopModeViewport(bool aDesktopModeViewport);
     nsresult SuspendTimeouts();
     nsresult ResumeTimeouts();
     nsresult GetLayerManagerType(nsAString *aLayerManagerType);
     nsresult GetLayerManagerRemote(bool *aLayerManagerRemote);
+    nsresult GetSupportsHardwareH264Decoding(bool *aSupportsHardwareH264Decoding);
     nsresult StartFrameTimeRecording(uint32_t *startIndex);
     nsresult StopFrameTimeRecording(uint32_t startIndex, uint32_t *frameCount, float **frameIntervals);
     nsresult BeginTabSwitch();
@@ -3021,8 +3032,9 @@ interface nsIDOMWindowUtils : nsISupports
     nsresult FindElementWithViewId(long /*nsViewID*/ aId, nsIDOMElement **_retval);
     nsresult GetViewId(nsIDOMElement *aElement, long /*nsViewID*/ *_retval);
     nsresult LeafLayersPartitionWindow(bool *_retval);
-    nsresult GetMayHaveTouchEventListeners(bool *aMayHaveTouchEventListeners);
     nsresult CheckAndClearPaintedState(nsIDOMElement *aElement, bool *_retval);
+    nsresult IsPartOfOpaqueLayer(nsIDOMElement *aElement, bool *_retval);
+    nsresult NumberOfAssignedPaintedLayers(nsIDOMElement **aElements, uint32_t count, uint32_t *_retval);
     nsresult GetFileId(const /*JS::Value*/ void *aFile, JSContext *cx, int64_t *_retval);
     nsresult GetFilePath(void /*JS::HandleValue*/ *aFile, JSContext *cx, nsAString *_retval);
     nsresult GetFileReferences(const nsAString *aDatabaseName, int64_t aId, void /*JS::HandleValue*/ *aOptions,
@@ -3059,12 +3071,18 @@ interface nsIDOMWindowUtils : nsISupports
     nsresult SetHandlingUserInput(bool aHandlingInput, void /*nsIJSRAIIHelper*/ **_retval);
     nsresult GetContentAPZTestData(JSContext *cx, int /*JS::MutableHandleValue*/ _retval);
     nsresult GetCompositorAPZTestData(JSContext *cx, void /*JS::MutableHandleValue*/ *_retval);
+    nsresult PostRestyleSelfEvent(nsIDOMElement *aElement);
     nsresult GetAudioMuted(bool *aAudioMuted) ;
     nsresult SetAudioMuted(bool aAudioMuted);
     nsresult GetAudioVolume(float *aAudioVolume);
     nsresult SetAudioVolume(float aAudioVolume);
     nsresult XpconnectArgument(nsIDOMWindowUtils *aThis);
     nsresult AskPermission(void /*nsIContentPermissionRequest*/ *aRequest);
+    nsresult GetFramesConstructed(uint64_t *aFramesConstructed);
+    nsresult GetFramesReflowed(uint64_t *aFramesReflowed);
+    nsresult SetChromeMargin(int32_t aTop, int32_t aRight, int32_t aBottom, int32_t aLeft);
+    nsresult GetServiceWorkersTestingEnabled(bool *aServiceWorkersTestingEnabled);
+    nsresult SetServiceWorkersTestingEnabled(bool aServiceWorkersTestingEnabled);
 }
 
 cpp_quote("#define CONTEXT_NONE              0x00")
@@ -3356,7 +3374,7 @@ interface nsIController : nsISupports
 
 [
     object,
-    uuid(697a2fe1-5549-48e7-9a1a-c29dab14e239),
+    uuid(70f7e9ea-a9bf-48cc-ad9d-8acaeed29b68),
     local
 ]
 interface nsIContent : nsISupports
@@ -3366,7 +3384,7 @@ interface nsIContent : nsISupports
 
 [
     object,
-    uuid(f63d2f6e-d1c1-49b9-8826-d59e5d722a42),
+    uuid(0b78eabe-8b94-4ea1-9331-5d48e83ada95),
     local
 ]
 interface nsIDocument : nsISupports
@@ -3492,7 +3510,7 @@ interface nsIEditor  : nsISupports
 
 [
     object,
-    uuid(393a364f-e8e2-48a1-a271-a0067b6bac9b),
+    uuid(87ee993e-985f-4a43-a974-0d9512da2fb0),
     local
 ]
 interface nsIHTMLEditor : nsISupports
@@ -3550,7 +3568,6 @@ interface nsIHTMLEditor : nsISupports
     nsresult IsAnonymousElement([in] nsIDOMElement *aElement, [out] bool *_retval);
     nsresult GetReturnInParagraphCreatesNewParagraph([out] bool *_retval);
     nsresult SetReturnInParagraphCreatesNewParagraph([in] bool prb);
-    nsresult BreakIsVisible(nsIDOMNode *aNode, bool *_retval);
     void /*Element*/ *GetActiveEditingHost();
 }
 
@@ -3718,7 +3735,7 @@ interface nsIDocShellLoadInfo : nsISupports
 
 [
     object,
-    uuid(c2756385-bc54-417b-9ae4-c5a40053a2a3),
+    uuid(696b32a1-3cf1-4909-b501-474b25fc7954),
     local
 ]
 interface nsIDocShell : nsIDocShellTreeItem
@@ -3762,6 +3779,8 @@ interface nsIDocShell : nsIDocShellTreeItem
     nsresult SetAllowWindowControl(bool aAllowWindowControl);
     nsresult GetAllowContentRetargeting(bool *aAllowContentRetargeting);
     nsresult SetAllowContentRetargeting(bool aAllowContentRetargeting);
+    nsresult GetAllowContentRetargetingOnChildren(bool *aAllowContentRetargetingOnChildren);
+    nsresult SetAllowContentRetargetingOnChildren(bool aAllowContentRetargetingOnChildren);
     nsresult GetDocShellEnumerator(int32_t aItemType, int32_t aDirection, nsISimpleEnumerator **_retval);
     nsresult GetAppType(uint32_t *aAppType);
     nsresult SetAppType(uint32_t aAppType);
@@ -3818,6 +3837,8 @@ interface nsIDocShell : nsIDocShellTreeItem
     nsresult GetCanExecuteScripts(bool *aCanExecuteScripts);
     nsresult GetIsActive(bool *aIsActive);
     nsresult SetIsActive(bool aIsActive);
+    nsresult SetIsPrerendered(bool prerendered);
+    nsresult GetIsPrerendered(bool *aIsPrerendered);
     nsresult GetHistoryID(uint64_t *aHistoryID);
     nsresult GetIsAppTab(bool *aIsAppTab);
     nsresult SetIsAppTab(bool aIsAppTab);
@@ -3887,13 +3908,15 @@ interface nsIDocShell : nsIDocShellTreeItem
     nsresult SetDeviceSizeIsPageSize(bool aDeviceSizeIsPageSize);
     void /* thiscall */ SetOpener(void /*nsITabParent*/ *aOpener);
     void /* thiscall nsITabParent */ *GetOpener();
-    void /* thiscall */ SetOpenedRemote(void /*nsITabParent*/ *aOpenedRemote);
-    void /* thiscall nsITabParent */ *GetOpenedRemote();
     void /*mozilla::dom::URLSearchParams */ *GetURLSearchParams();
-    void /* thiscall */ NotifyJSRunToCompletionStart();
+    void /* thiscall */ NotifyJSRunToCompletionStart(const char *aReason, const char16_t *functionName,
+            const char16_t *fileName, uint32_t lineNumber);
     void /* thiscall */ NotifyJSRunToCompletionStop();
     nsresult GetHasLoadedNonBlankURI(bool *aHasLoadedNonBlankURI);
-
+    nsresult GetPaymentRequestId(nsAString *aPaymentRequestId);
+    nsresult SetPaymentRequestId(const nsAString *aPaymentRequestId);
+    nsresult GetWindowDraggingAllowed(bool *aWindowDraggingAllowed);
+    nsresult SetWindowDraggingAllowed(bool aWindowDraggingAllowed);
 }
 
 [
@@ -4025,7 +4048,7 @@ interface nsIPluginInstance : nsISupports
 
 [
     object,
-    uuid(e2538ded-13ef-4f4d-946b-65d333b4f03c),
+    uuid(11afa8be-d997-4e07-a6a3-6f872ec3ee7f),
     local
 ]
 interface nsIGlobalObject : nsISupports
@@ -4034,7 +4057,7 @@ interface nsIGlobalObject : nsISupports
 
 [
     object,
-    uuid(2e91e088-e9fa-4ba4-9887-2a0b7cf27a3e),
+    uuid(6f54214c-7175-498d-9d2d-0429e38c2869),
     local
 ]
 interface nsIXMLHttpRequest : nsISupports
@@ -4052,7 +4075,6 @@ interface nsIXMLHttpRequest : nsISupports
     nsresult GetResponseHeader(const nsACString *header, nsACString *_retval);
     nsresult Open(const nsACString *method, const nsACString *url, bool async, const nsAString *user, const nsAString *password, uint8_t _argc);
     nsresult Send(nsIVariant *body);
-    nsresult SendAsBinary(const nsAString *body);
     nsresult SetRequestHeader(const nsACString *header, const nsACString *value);
     nsresult GetTimeout(uint32_t *aTimeout);
     nsresult SetTimeout(uint32_t aTimeout);
@@ -4062,7 +4084,7 @@ interface nsIXMLHttpRequest : nsISupports
     nsresult SetMozBackgroundRequest(bool aMozBackgroundRequest);
     nsresult GetWithCredentials(bool *aWithCredentials);
     nsresult SetWithCredentials(bool aWithCredentials);
-    nsresult Init(nsIPrincipal *principal, nsIScriptContext *scriptContext, nsIGlobalObject *globalObject, nsIURI *baseURI);
+    nsresult Init(nsIPrincipal *principal, nsIScriptContext *scriptContext, nsIGlobalObject *globalObject, nsIURI *baseURI, nsILoadGroup *loadGroup);
     nsresult GetUpload(nsIXMLHttpRequestUpload **aUpload);
     nsresult GetOnreadystatechange(JSContext*cx, int /*JS::MutableHandleValue*/ aOnreadystatechange);
     nsresult SetOnreadystatechange(JSContext*cx, int /*JS::HandleValue*/ aOnreadystatechange);
@@ -4072,7 +4094,7 @@ interface nsIXMLHttpRequest : nsISupports
 
 [
     object,
-    uuid(f649959d-dae3-4027-83fd-5b7f8c8a8815),
+    uuid(ba602ca6-dc7a-457e-a57a-ee5b343fd863),
     local
 ]
 interface nsIScriptSecurityManager : nsISupports {
@@ -4097,6 +4119,8 @@ interface nsIScriptSecurityManager : nsISupports {
     nsresult GetJarPrefix(uint32_t appId, bool inMozBrowser, nsACString *_retval);
     nsresult ActivateDomainPolicy(nsIDomainPolicy **_retval);
     nsresult GetDomainPolicyActive(bool *aDomainPolicyActive);
+    nsresult ActivateDomainPolicyInternal(nsIDomainPolicy **_retval);
+    void CloneDomainPolicy(int /*mozilla::dom::DomainPolicyClone*/ *aClone);
     nsresult PolicyAllowsScript(nsIURI *aDomain, bool *_retval);
 }
 
diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c
index fd811e9..3693be7 100644
--- a/dlls/mshtml/nsio.c
+++ b/dlls/mshtml/nsio.c
@@ -1468,6 +1468,15 @@ static nsresult NSAPI nsChannel_IsNoCacheResponse(nsIHttpChannel *iface, cpp_boo
     return NS_ERROR_NOT_IMPLEMENTED;
 }
 
+static nsresult NSAPI nsChannel_IsPrivateResponse(nsIHttpChannel *iface, cpp_bool *_retval)
+{
+    nsChannel *This = impl_from_nsIHttpChannel(iface);
+
+    FIXME("(%p)->(%p)\n", This, _retval);
+
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
 static nsresult NSAPI nsChannel_RedirectTo(nsIHttpChannel *iface, nsIURI *aNewURI)
 {
     nsChannel *This = impl_from_nsIHttpChannel(iface);
@@ -1537,6 +1546,7 @@ static const nsIHttpChannelVtbl nsChannelVtbl = {
     nsChannel_VisitResponseHeaders,
     nsChannel_IsNoStoreResponse,
     nsChannel_IsNoCacheResponse,
+    nsChannel_IsPrivateResponse,
     nsChannel_RedirectTo
 };
 
@@ -1827,75 +1837,91 @@ static nsresult NSAPI nsHttpChannelInternal_SetAllowSpdy(nsIHttpChannelInternal
     return NS_ERROR_NOT_IMPLEMENTED;
 }
 
-static nsresult NSAPI nsHttpChannelInternal_GetLoadAsBlocking(nsIHttpChannelInternal *iface, cpp_bool *aLoadAsBlocking)
+static nsresult NSAPI nsHttpChannelInternal_GetResponseTimeoutEnabled(nsIHttpChannelInternal *iface,
+        cpp_bool *aResponseTimeoutEnabled)
 {
     nsChannel *This = impl_from_nsIHttpChannelInternal(iface);
-    FIXME("(%p)->(%p)\n", This, aLoadAsBlocking);
+    FIXME("(%p)->(%p)\n", This, aResponseTimeoutEnabled);
     return NS_ERROR_NOT_IMPLEMENTED;
 }
 
-static nsresult NSAPI nsHttpChannelInternal_SetLoadAsBlocking(nsIHttpChannelInternal *iface, cpp_bool aLoadAsBlocking)
+static nsresult NSAPI nsHttpChannelInternal_SetResponseTimeoutEnabled(nsIHttpChannelInternal *iface,
+        cpp_bool aResponseTimeoutEnabled)
 {
     nsChannel *This = impl_from_nsIHttpChannelInternal(iface);
-    FIXME("(%p)->(%x)\n", This, aLoadAsBlocking);
+    FIXME("(%p)->(%x)\n", This, aResponseTimeoutEnabled);
     return NS_ERROR_NOT_IMPLEMENTED;
 }
 
-static nsresult NSAPI nsHttpChannelInternal_GetLoadUnblocked(nsIHttpChannelInternal *iface, cpp_bool *aLoadUnblocked)
+static nsresult NSAPI nsHttpChannelInternal_GetApiRedirectToURI(nsIHttpChannelInternal *iface, nsIURI **aApiRedirectToURI)
 {
     nsChannel *This = impl_from_nsIHttpChannelInternal(iface);
-    FIXME("(%p)->(%p)\n", This, aLoadUnblocked);
+    FIXME("(%p)->(%p)\n", This, aApiRedirectToURI);
     return NS_ERROR_NOT_IMPLEMENTED;
 }
 
-static nsresult NSAPI nsHttpChannelInternal_SetLoadUnblocked(nsIHttpChannelInternal *iface, cpp_bool aLoadUnblocked)
+static nsresult NSAPI nsHttpChannelInternal_GetAllowAltSvc(nsIHttpChannelInternal *iface, cpp_bool *aAllowAltSvc)
 {
     nsChannel *This = impl_from_nsIHttpChannelInternal(iface);
-    FIXME("(%p)->(%x)\n", This, aLoadUnblocked);
+    FIXME("(%p)->(%p)\n", This, aAllowAltSvc);
     return NS_ERROR_NOT_IMPLEMENTED;
 }
 
-static nsresult NSAPI nsHttpChannelInternal_GetResponseTimeoutEnabled(nsIHttpChannelInternal *iface,
-        cpp_bool *aResponseTimeoutEnabled)
+static nsresult NSAPI nsHttpChannelInternal_SetAllowAltSvc(nsIHttpChannelInternal *iface, cpp_bool aAllowAltSvc)
 {
     nsChannel *This = impl_from_nsIHttpChannelInternal(iface);
-    FIXME("(%p)->(%p)\n", This, aResponseTimeoutEnabled);
+    FIXME("(%p)->(%x)\n", This, aAllowAltSvc);
     return NS_ERROR_NOT_IMPLEMENTED;
 }
 
-static nsresult NSAPI nsHttpChannelInternal_SetResponseTimeoutEnabled(nsIHttpChannelInternal *iface,
-        cpp_bool aResponseTimeoutEnabled)
+static nsresult NSAPI nsHttpChannelInternal_AddRedirect(nsIHttpChannelInternal *iface, nsIPrincipal *aPrincipal)
 {
     nsChannel *This = impl_from_nsIHttpChannelInternal(iface);
-    FIXME("(%p)->(%x)\n", This, aResponseTimeoutEnabled);
+    FIXME("(%p)->(%p)\n", This, aPrincipal);
     return NS_ERROR_NOT_IMPLEMENTED;
 }
 
-static nsresult NSAPI nsHttpChannelInternal_GetApiRedirectToURI(nsIHttpChannelInternal *iface, nsIURI **aApiRedirectToURI)
+static nsresult NSAPI nsHttpChannelInternal_GetLastModifiedTime(nsIHttpChannelInternal *iface, PRTime *aLastModifiedTime)
 {
     nsChannel *This = impl_from_nsIHttpChannelInternal(iface);
-    FIXME("(%p)->(%p)\n", This, aApiRedirectToURI);
+    FIXME("(%p)->(%p)\n", This, aLastModifiedTime);
     return NS_ERROR_NOT_IMPLEMENTED;
 }
 
-static nsresult NSAPI nsHttpChannelInternal_AddRedirect(nsIHttpChannelInternal *iface, nsIPrincipal *aPrincipal)
+static nsresult NSAPI nsHttpChannelInternal_ForceNoIntercept(nsIHttpChannelInternal *iface)
 {
     nsChannel *This = impl_from_nsIHttpChannelInternal(iface);
-    FIXME("(%p)->(%p)\n", This, aPrincipal);
+    FIXME("(%p)\n", This);
     return NS_ERROR_NOT_IMPLEMENTED;
 }
 
-static nsresult NSAPI nsHttpChannelInternal_GetLastModifiedTime(nsIHttpChannelInternal *iface, PRTime *aLastModifiedTime)
+static nsresult NSAPI nsHttpChannelInternal_GetCorsIncludeCredentials(nsIHttpChannelInternal *iface,
+        cpp_bool *aCorsIncludeCredentials)
 {
     nsChannel *This = impl_from_nsIHttpChannelInternal(iface);
-    FIXME("(%p)->(%p)\n", This, aLastModifiedTime);
+    FIXME("(%p)->(%p)\n", This, aCorsIncludeCredentials);
     return NS_ERROR_NOT_IMPLEMENTED;
 }
 
-static nsresult NSAPI nsHttpChannelInternal_ForceNoIntercept(nsIHttpChannelInternal *iface)
+static nsresult NSAPI nsHttpChannelInternal_SetCorsIncludeCredentials(nsIHttpChannelInternal *iface,
+        cpp_bool aCorsIncludeCredentials)
 {
     nsChannel *This = impl_from_nsIHttpChannelInternal(iface);
-    FIXME("(%p)\n", This);
+    FIXME("(%p)->(%x)\n", This, aCorsIncludeCredentials);
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+static nsresult NSAPI nsHttpChannelInternal_GetCorsMode(nsIHttpChannelInternal *iface, UINT32 *aCorsMode)
+{
+    nsChannel *This = impl_from_nsIHttpChannelInternal(iface);
+    FIXME("(%p)->(%p)\n", This, aCorsMode);
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+static nsresult NSAPI nsHttpChannelInternal_SetCorsMode(nsIHttpChannelInternal *iface, UINT32 aCorsMode)
+{
+    nsChannel *This = impl_from_nsIHttpChannelInternal(iface);
+    FIXME("(%p)->(%d)\n", This, aCorsMode);
     return NS_ERROR_NOT_IMPLEMENTED;
 }
 
@@ -1906,6 +1932,36 @@ static nsresult NSAPI nsHttpChannelInternal_GetTopWindowURI(nsIHttpChannelIntern
     return NS_ERROR_NOT_IMPLEMENTED;
 }
 
+static nsresult NSAPI nsHttpChannelInternal_GetNetworkInterfaceId(nsIHttpChannelInternal *iface,
+        nsACString *aNetworkInterfaceId)
+{
+    nsChannel *This = impl_from_nsIHttpChannelInternal(iface);
+    FIXME("(%p)->(%p)\n", This, aNetworkInterfaceId);
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+static nsresult NSAPI nsHttpChannelInternal_SetNetworkInterfaceId(nsIHttpChannelInternal *iface,
+        const nsACString *aNetworkInterfaceId)
+{
+    nsChannel *This = impl_from_nsIHttpChannelInternal(iface);
+    FIXME("(%p)->(%s)\n", This, debugstr_nsacstr(aNetworkInterfaceId));
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+static nsresult NSAPI nsHttpChannelInternal_ContinueBeginConnect(nsIHttpChannelInternal *iface)
+{
+    nsChannel *This = impl_from_nsIHttpChannelInternal(iface);
+    FIXME("(%p)\n", This);
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+static nsresult NSAPI nsHttpChannelInternal_GetProxyURI(nsIHttpChannelInternal *iface, nsIURI **aProxyURI)
+{
+    nsChannel *This = impl_from_nsIHttpChannelInternal(iface);
+    FIXME("(%p)->(%p)\n", This, aProxyURI);
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
 static const nsIHttpChannelInternalVtbl nsHttpChannelInternalVtbl = {
     nsHttpChannelInternal_QueryInterface,
     nsHttpChannelInternal_AddRef,
@@ -1930,17 +1986,23 @@ static const nsIHttpChannelInternalVtbl nsHttpChannelInternalVtbl = {
     nsHttpChannelInternal_HTTPUpgrade,
     nsHttpChannelInternal_GetAllowSpdy,
     nsHttpChannelInternal_SetAllowSpdy,
-    nsHttpChannelInternal_GetLoadAsBlocking,
-    nsHttpChannelInternal_SetLoadAsBlocking,
-    nsHttpChannelInternal_GetLoadUnblocked,
-    nsHttpChannelInternal_SetLoadUnblocked,
     nsHttpChannelInternal_GetResponseTimeoutEnabled,
     nsHttpChannelInternal_SetResponseTimeoutEnabled,
     nsHttpChannelInternal_GetApiRedirectToURI,
+    nsHttpChannelInternal_GetAllowAltSvc,
+    nsHttpChannelInternal_SetAllowAltSvc,
     nsHttpChannelInternal_AddRedirect,
     nsHttpChannelInternal_GetLastModifiedTime,
     nsHttpChannelInternal_ForceNoIntercept,
-    nsHttpChannelInternal_GetTopWindowURI
+    nsHttpChannelInternal_GetCorsIncludeCredentials,
+    nsHttpChannelInternal_SetCorsIncludeCredentials,
+    nsHttpChannelInternal_GetCorsMode,
+    nsHttpChannelInternal_SetCorsMode,
+    nsHttpChannelInternal_GetTopWindowURI,
+    nsHttpChannelInternal_GetNetworkInterfaceId,
+    nsHttpChannelInternal_SetNetworkInterfaceId,
+    nsHttpChannelInternal_ContinueBeginConnect,
+    nsHttpChannelInternal_GetProxyURI
 };
 
 
@@ -3580,7 +3642,7 @@ static nsresult NSAPI nsIOService_NewFileURI(nsIIOService *iface, nsIFile *aFile
     return nsIIOService_NewFileURI(nsio, aFile, _retval);
 }
 
-static nsresult new_channel_from_uri(nsIURI *uri, nsIChannel **_retval)
+static nsresult new_channel_from_uri(nsIURI *uri, nsILoadInfo *load_info, nsIChannel **_retval)
 {
     nsWineURI *wine_uri;
     nsChannel *ret;
@@ -3600,6 +3662,9 @@ static nsresult new_channel_from_uri(nsIURI *uri, nsIChannel **_retval)
     nsIURI_AddRef(uri);
     ret->original_uri = uri;
 
+    if(load_info)
+        nsIHttpChannel_SetLoadInfo(&ret->nsIHttpChannel_iface, load_info);
+
     *_retval = (nsIChannel*)&ret->nsIHttpChannel_iface;
     return NS_OK;
 }
@@ -3608,16 +3673,36 @@ static nsresult NSAPI nsIOService_NewChannelFromURI2(nsIIOService *iface, nsIURI
         nsIDOMNode *aLoadingNode, nsIPrincipal *aLoadingPrincipal, nsIPrincipal *aTriggeringPrincipal,
         UINT32 aSecurityFlags, UINT32 aContentPolicyType, nsIChannel **_retval)
 {
-    FIXME("(%p %p %p %p %x %d %p) semi-stub\n", aURI, aLoadingNode, aLoadingPrincipal, aTriggeringPrincipal,
+    nsILoadInfo *load_info = NULL;
+    nsresult nsres;
+
+    TRACE("(%p %p %p %p %x %d %p)\n", aURI, aLoadingNode, aLoadingPrincipal, aTriggeringPrincipal,
           aSecurityFlags, aContentPolicyType, _retval);
-    return new_channel_from_uri(aURI, _retval);
+
+    if(aLoadingNode || aLoadingPrincipal) {
+        nsres = nsIIOService_NewLoadInfo(nsio, aLoadingPrincipal, aTriggeringPrincipal, aLoadingNode,
+                aSecurityFlags, aContentPolicyType, &load_info);
+        assert(nsres == NS_OK);
+    }
+
+    nsres = new_channel_from_uri(aURI, load_info, _retval);
+    if(load_info)
+        nsISupports_Release(load_info);
+    return nsres;
+}
+
+static nsresult NSAPI nsIOService_NewChannelFromURIWithLoadInfo(nsIIOService *iface, nsIURI *aURI,
+        nsILoadInfo *aLoadInfo, nsIChannel **_retval)
+{
+    TRACE("(%p %p %p)\n", aURI, aLoadInfo, _retval);
+    return new_channel_from_uri(aURI, aLoadInfo, _retval);
 }
 
 static nsresult NSAPI nsIOService_NewChannelFromURI(nsIIOService *iface, nsIURI *aURI,
         nsIChannel **_retval)
 {
     TRACE("(%p %p)\n", aURI, _retval);
-    return new_channel_from_uri(aURI, _retval);
+    return new_channel_from_uri(aURI, NULL, _retval);
 }
 
 static nsresult NSAPI nsIOService_NewChannel2(nsIIOService *iface, const nsACString *aSpec,
@@ -3649,6 +3734,12 @@ static nsresult NSAPI nsIOService_SetOffline(nsIIOService *iface, cpp_bool aOffl
     return nsIIOService_SetOffline(nsio, aOffline);
 }
 
+static nsresult NSAPI nsIOService_GetConnectivity(nsIIOService *iface, cpp_bool *aConnectivity)
+{
+    TRACE("(%p)\n", aConnectivity);
+    return nsIIOService_GetConnectivity(nsio, aConnectivity);
+}
+
 static nsresult NSAPI nsIOService_SetAppOffline(nsIIOService *iface, UINT32 appId, INT32 state)
 {
     TRACE("(%d %x)\n", appId, state);
@@ -3690,11 +3781,13 @@ static const nsIIOServiceVtbl nsIOServiceVtbl = {
     nsIOService_NewURI,
     nsIOService_NewFileURI,
     nsIOService_NewChannelFromURI2,
+    nsIOService_NewChannelFromURIWithLoadInfo,
     nsIOService_NewChannelFromURI,
     nsIOService_NewChannel2,
     nsIOService_NewChannel,
     nsIOService_GetOffline,
     nsIOService_SetOffline,
+    nsIOService_GetConnectivity,
     nsIOService_SetAppOffline,
     nsIOService_IsAppOffline,
     nsIOService_GetAppOfflineState,


More information about the wine-devel mailing list