From df6e4fd53bbc15c16335b10fa167d458853c90ae Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Aug 14 2015 20:59:30 +0000 Subject: Apply patch for gecko 2.40 support --- diff --git a/wine-gecko-2.40.patch b/wine-gecko-2.40.patch new file mode 100644 index 0000000..00b3ff0 --- /dev/null +++ b/wine-gecko-2.40.patch @@ -0,0 +1,780 @@ +From a556f9e5c12b76e1d331e49c38b0f63f54e808b9 Mon Sep 17 00:00:00 2001 +From: Jacek Caban +Date: Tue, 11 Aug 2015 15:11:35 +0200 +Subject: [PATCH 1/1] mshtml: Wine Gecko 2.40 release. + +--- + dlls/appwiz.cpl/addons.c | 6 +- + dlls/mshtml/nsembed.c | 6 +- + dlls/mshtml/nsiface.idl | 114 ++++++++++++++++++++-------------- + dlls/mshtml/nsio.c | 155 +++++++++++++++++++++++++++++++++++++---------- + 4 files changed, 199 insertions(+), 82 deletions(-) + +diff --git a/dlls/appwiz.cpl/addons.c b/dlls/appwiz.cpl/addons.c +index b4fcc25..48cd062 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" + + #ifdef __i386__ + #define ARCH_STRING "x86" +-#define GECKO_SHA "08b02bf0e3ff3a315135afa1132ddb3a25a63e15" ++#define GECKO_SHA "7001a6ed5b02d0ae4e73b14c92018d604b87f3ad" + #elif defined(__x86_64__) + #define ARCH_STRING "x86_64" +-#define GECKO_SHA "a7624eb685d04c4ef1f4f093095a5a324808d57c" ++#define GECKO_SHA "356c414527b08b015b6dc53dbbf78d752320ae90" + #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 3fc2ca6..13c610f 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\"") + 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); +@@ -2012,8 +2018,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); +@@ -2240,13 +2246,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, +@@ -2338,7 +2344,7 @@ interface nsIBaseWindow : nsISupports + + [ + object, +- uuid(b7568a50-4c50-442c-a6be-3a340a48d89a), ++ uuid(0e92d522-53a5-4af6-9a24-4eccdcbf4f91), + local + ] + interface nsIWebNavigation : nsISupports +@@ -2368,7 +2374,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); +@@ -2783,7 +2789,7 @@ interface nsIExternalProtocolHandler : nsIProtocolHandler + + [ + object, +- uuid(d8555f58-203a-465a-a33e-442ae4c6c4cf), ++ uuid(4286de5a-b2ea-446f-8f70-e2a461f42694), + local + ] + interface nsIIOService : nsISupports +@@ -2796,6 +2802,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, +@@ -2804,11 +2811,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); + } + + [ +@@ -2929,7 +2939,7 @@ interface nsIDOMEvent : nsISupports + + [ + object, +- uuid(9621eb05-b498-4e87-a012-95d817987624), ++ uuid(1a75c351-d115-4d51-94df-731dd1723a1f), + local + ] + interface nsIDOMWindowUtils : nsISupports +@@ -2949,8 +2959,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); +@@ -2979,15 +2990,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); +@@ -3019,8 +3031,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); +@@ -3030,16 +3040,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(); +@@ -3059,8 +3070,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, +@@ -3097,12 +3109,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") +@@ -3394,7 +3412,7 @@ interface nsIController : nsISupports + + [ + object, +- uuid(697a2fe1-5549-48e7-9a1a-c29dab14e239), ++ uuid(70f7e9ea-a9bf-48cc-ad9d-8acaeed29b68), + local + ] + interface nsIContent : nsISupports +@@ -3404,7 +3422,7 @@ interface nsIContent : nsISupports + + [ + object, +- uuid(f63d2f6e-d1c1-49b9-8826-d59e5d722a42), ++ uuid(0b78eabe-8b94-4ea1-9331-5d48e83ada95), + local + ] + interface nsIDocument : nsISupports +@@ -3530,7 +3548,7 @@ interface nsIEditor : nsISupports + + [ + object, +- uuid(393a364f-e8e2-48a1-a271-a0067b6bac9b), ++ uuid(87ee993e-985f-4a43-a974-0d9512da2fb0), + local + ] + interface nsIHTMLEditor : nsISupports +@@ -3588,7 +3606,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(); + } + +@@ -3756,7 +3773,7 @@ interface nsIDocShellLoadInfo : nsISupports + + [ + object, +- uuid(c2756385-bc54-417b-9ae4-c5a40053a2a3), ++ uuid(696b32a1-3cf1-4909-b501-474b25fc7954), + local + ] + interface nsIDocShell : nsIDocShellTreeItem +@@ -3800,6 +3817,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); +@@ -3856,6 +3875,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); +@@ -3925,13 +3946,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); + } + + [ +@@ -4063,7 +4086,7 @@ interface nsIPluginInstance : nsISupports + + [ + object, +- uuid(e2538ded-13ef-4f4d-946b-65d333b4f03c), ++ uuid(11afa8be-d997-4e07-a6a3-6f872ec3ee7f), + local + ] + interface nsIGlobalObject : nsISupports +@@ -4072,7 +4095,7 @@ interface nsIGlobalObject : nsISupports + + [ + object, +- uuid(2e91e088-e9fa-4ba4-9887-2a0b7cf27a3e), ++ uuid(6f54214c-7175-498d-9d2d-0429e38c2869), + local + ] + interface nsIXMLHttpRequest : nsISupports +@@ -4090,7 +4113,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); +@@ -4100,7 +4122,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); +@@ -4110,7 +4132,7 @@ interface nsIXMLHttpRequest : nsISupports + + [ + object, +- uuid(f649959d-dae3-4027-83fd-5b7f8c8a8815), ++ uuid(ba602ca6-dc7a-457e-a57a-ee5b343fd863), + local + ] + interface nsIScriptSecurityManager : nsISupports { +@@ -4135,6 +4157,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 9bced99..a661c4d 100644 +--- a/dlls/mshtml/nsio.c ++++ b/dlls/mshtml/nsio.c +@@ -1469,6 +1469,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); +@@ -1538,6 +1547,7 @@ static const nsIHttpChannelVtbl nsChannelVtbl = { + nsChannel_VisitResponseHeaders, + nsChannel_IsNoStoreResponse, + nsChannel_IsNoCacheResponse, ++ nsChannel_IsPrivateResponse, + nsChannel_RedirectTo + }; + +@@ -1828,75 +1838,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; + } + +@@ -1907,6 +1933,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, +@@ -1931,17 +1987,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 + }; + + +@@ -3581,7 +3643,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; +@@ -3601,6 +3663,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; + } +@@ -3609,16 +3674,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, +@@ -3650,6 +3735,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); +@@ -3691,11 +3782,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, +-- +1.9.1 + diff --git a/wine.spec b/wine.spec index 3f2a891..f6ab030 100644 --- a/wine.spec +++ b/wine.spec @@ -22,7 +22,7 @@ Name: wine Version: 1.7.49 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -72,6 +72,8 @@ Patch511: wine-cjk.patch Patch512: wine-gcc5.patch # prelink has been retired, use linker method of base address relocation Patch513: wine-relocate-base.patch +# backport patch for gecko 2.40 support, should be released in wine 1.7.50 +Patch514: wine-gecko-2.40.patch # wine compholio patches for pipelight. # pulseaudio-patch is covered by that patch-set, too. @@ -629,6 +631,7 @@ This package adds the opencl driver for wine. #patch512 -p1 -b.gcc5 %endif %patch513 -p1 -b.relocate +%patch514 -p1 -b.gecko # setup and apply compholio-patches or pulseaudio-patch. # since the pulse patch is included in the compholio patches use it from @@ -1902,6 +1905,9 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Fri Aug 14 2015 Michael Cronenworth 1.7.49-2 +- backport gecko 2.40 patch + * Fri Aug 14 2015 Michael Cronenworth 1.7.49-1 - version upgrade