Source/WebCore:
authorbfulgham@apple.com <bfulgham@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 24 Jul 2015 23:24:38 +0000 (23:24 +0000)
committerbfulgham@apple.com <bfulgham@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 24 Jul 2015 23:24:38 +0000 (23:24 +0000)
[Win] Connect UserScript and UserStyleSheet through WebView.
https://bugs.webkit.org/show_bug.cgi?id=147279
<rdar://problem/21990767>

Reviewed by Dean Jackson.

Tested by http/tests/security/contentSecurityPolicy/user-style-sheet-font-crasher.html as well
as many skipped tests.

* DerivedSources.cpp: Conditionally compile JSSecurityPolicyViolationEvent.cpp if CSP_NEXT is enabled.
* DerivedSources.make: Generate bindings for SecurityPolicyViolationEvent.idl.
* WebCore.vcxproj/WebCore.vcxproj: Add missing files.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.

Source/WebKit/win:
[Win] Connect UserScript and UserStyleSheet through WebView.
https://bugs.webkit.org/show_bug.cgi?id=147279
<rdar://problem/21990767>

Reviewed by Dean Jackson.

* Interfaces/IWebViewPrivate.idl: Add updated API for 'addUserScriptToGroup' and
'addUserStyleSheetToGroup'
* WebView.cpp:
(WebView::addUserScriptToGroup): Add implementation.
(toStringVector): Added helper function.
(WebView::addUserStyleSheetToGroup): Add implementation.
(WebView::removeUserScriptFromGroup): Ditto.
(WebView::removeUserStyleSheetFromGroup): Ditto.
(WebView::removeUserScriptsFromGroup): Ditto.
(WebView::removeUserStyleSheetsFromGroup): Ditto.
(WebView::removeAllUserContentFromGroup): Ditto.
* WebView.h:

Tools:
[Win] Activate CSP_NEXT and Connect UserScript and UserStyleSheet through WebView.
https://bugs.webkit.org/show_bug.cgi?id=147279
<rdar://problem/21990767>

Reviewed by Dean Jackson.

* DumpRenderTree/win/TestRunnerWin.cpp:
(TestRunner::addUserScript):
(TestRunner::addUserStyleSheet):
(TestRunner::setDeveloperExtrasEnabled):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@187370 268f45cc-cd09-0410-ab3c-d52691b4dbfc

14 files changed:
Source/WebCore/ChangeLog
Source/WebCore/DerivedSources.cpp
Source/WebCore/DerivedSources.make
Source/WebCore/WebCore.vcxproj/WebCore.vcxproj
Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters
Source/WebKit/win/ChangeLog
Source/WebKit/win/Interfaces/IWebViewPrivate.idl
Source/WebKit/win/WebView.cpp
Source/WebKit/win/WebView.h
Tools/ChangeLog
Tools/DumpRenderTree/win/TestRunnerWin.cpp
WebKitLibraries/win/tools/vsprops/FeatureDefines.props
WebKitLibraries/win/tools/vsprops/FeatureDefinesCairo.props
WebKitLibraries/win/tools/vsprops/common.props

index e1d370a..da25bd9 100644 (file)
@@ -1,3 +1,19 @@
+2015-07-24  Brent Fulgham  <bfulgham@apple.com>
+
+        [Win] Connect UserScript and UserStyleSheet through WebView.
+        https://bugs.webkit.org/show_bug.cgi?id=147279
+        <rdar://problem/21990767>
+
+        Reviewed by Dean Jackson.
+
+        Tested by http/tests/security/contentSecurityPolicy/user-style-sheet-font-crasher.html as well
+        as many skipped tests.
+
+        * DerivedSources.cpp: Conditionally compile JSSecurityPolicyViolationEvent.cpp if CSP_NEXT is enabled.
+        * DerivedSources.make: Generate bindings for SecurityPolicyViolationEvent.idl.
+        * WebCore.vcxproj/WebCore.vcxproj: Add missing files.
+        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
+
 2015-07-24  Alexey Proskuryakov  <ap@apple.com>
 
         [Cocoa] Clean up server trust handling in ResourceHandle.
index 72b41a3..4bf1194 100644 (file)
 #include "JSScreen.cpp"
 #include "JSScriptProfile.cpp"
 #include "JSScriptProfileNode.cpp"
+#if ENABLE(CSP_NEXT)
+#include "JSSecurityPolicyViolationEvent.cpp"
+#endif
 #include "JSSQLError.cpp"
 #include "JSSQLException.cpp"
 #include "JSSQLResultSet.cpp"
index a8c3f4f..fa72e27 100644 (file)
@@ -318,6 +318,7 @@ NON_SVG_BINDING_IDLS = \
     $(WebCore)/dom/Range.idl \
     $(WebCore)/dom/RangeException.idl \
     $(WebCore)/dom/RequestAnimationFrameCallback.idl \
+    $(WebCore)/dom/SecurityPolicyViolationEvent.idl \
     $(WebCore)/dom/StringCallback.idl \
     $(WebCore)/dom/Text.idl \
     $(WebCore)/dom/TextEvent.idl \
index 1cb1e57..fe5d036 100644 (file)
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
     </ClCompile>
+    <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSSecurityPolicyViolationEvent.cpp">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
+    </ClCompile>
+
     <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSSQLError.cpp">
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
     <ClCompile Include="..\page\animation\CSSPropertyAnimation.cpp" />
     <ClCompile Include="..\page\DeviceController.cpp" />
     <ClCompile Include="..\page\DiagnosticLoggingKeys.cpp" />
+    <ClCompile Include="..\page\DOMSecurityPolicy.cpp" />
     <ClCompile Include="..\page\DOMSelection.cpp" />
     <ClCompile Include="..\page\DOMTimer.cpp" />
     <ClCompile Include="..\page\DOMWindow.cpp" />
     <ClInclude Include="..\page\DeviceController.h" />
     <ClInclude Include="..\page\DiagnosticLoggingKeys.h" />
     <ClInclude Include="..\page\DiagnosticLoggingResultType.h" />
+    <ClInclude Include="..\page\DOMSecurityPolicy.h" />
     <ClInclude Include="..\page\DOMSelection.h" />
     <ClInclude Include="..\page\DOMTimer.h" />
     <ClInclude Include="..\page\DOMWindow.h" />
index 834eeb8..c925943 100644 (file)
     <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSScreen.cpp">
       <Filter>DerivedSources</Filter>
     </ClCompile>
+    <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSSecurityPolicyViolationEvent.cpp">
+      <Filter>DerivedSources</Filter>
+    </ClCompile>
     <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSSQLError.cpp">
       <Filter>DerivedSources</Filter>
     </ClCompile>
     <ClCompile Include="..\platform\win\GDIUtilities.cpp">
       <Filter>platform\graphics\win</Filter>
     </ClCompile>
+    <ClCompile Include="..\page\DOMSecurityPolicy.cpp">
+      <Filter>page</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\Modules\geolocation\Coordinates.h">
     <ClInclude Include="..\platform\win\GDIUtilities.h">
       <Filter>platform\graphics\win</Filter>
     </ClInclude>
+    <ClInclude Include="..\page\DOMSecurityPolicy.h">
+      <Filter>page</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <None Include="..\css\CSSGrammar.y.in">
index d4b0b49..d49cb7b 100644 (file)
@@ -1,3 +1,24 @@
+2015-07-24  Brent Fulgham  <bfulgham@apple.com>
+
+        [Win] Connect UserScript and UserStyleSheet through WebView.
+        https://bugs.webkit.org/show_bug.cgi?id=147279
+        <rdar://problem/21990767>
+
+        Reviewed by Dean Jackson.
+
+        * Interfaces/IWebViewPrivate.idl: Add updated API for 'addUserScriptToGroup' and
+        'addUserStyleSheetToGroup'
+        * WebView.cpp:
+        (WebView::addUserScriptToGroup): Add implementation.
+        (toStringVector): Added helper function.
+        (WebView::addUserStyleSheetToGroup): Add implementation.
+        (WebView::removeUserScriptFromGroup): Ditto.
+        (WebView::removeUserStyleSheetFromGroup): Ditto.
+        (WebView::removeUserScriptsFromGroup): Ditto.
+        (WebView::removeUserStyleSheetsFromGroup): Ditto.
+        (WebView::removeAllUserContentFromGroup): Ditto.
+        * WebView.h:
+
 2015-07-24  Yusuke Suzuki  <utatane.tea@gmail.com>
 
         Remove runtime flags for symbols
index 0d9354f..ac93319 100644 (file)
@@ -50,6 +50,11 @@ typedef enum {
     WebInjectAtDocumentEnd,
 } WebUserScriptInjectionTime;
 
+typedef enum {
+    WebInjectInAllFrames = 0,
+    WebInjectInTopFrameOnly,
+} WebUserContentInjectedFrames;
+
 [
     object,
     oleautomation,
@@ -304,4 +309,14 @@ interface IWebViewPrivate2 : IWebViewPrivate
 
     HRESULT setCustomBackingScaleFactor([in] double);
     HRESULT backingScaleFactor([out] double*);
+
+    HRESULT addUserScriptToGroup([in] BSTR groupName, [in] IWebScriptWorld*, [in] BSTR source, [in] BSTR url,
+        [in] unsigned whitelistCount, [in, size_is(whitelistCount)] BSTR* whitelist,
+        [in] unsigned blacklistCount, [in, size_is(blacklistCount)] BSTR* blacklist,
+        [in] WebUserScriptInjectionTime injectionTime, [in] WebUserContentInjectedFrames injectedFrames);
+
+    HRESULT addUserStyleSheetToGroup([in] BSTR groupName, [in] IWebScriptWorld*, [in] BSTR source, [in] BSTR url,
+        [in] unsigned whitelistCount, [in, size_is(whitelistCount)] BSTR* whitelist,
+        [in] unsigned blacklistCount, [in, size_is(blacklistCount)] BSTR* blacklist,
+        [in] WebUserContentInjectedFrames injectedFrames);
 }
\ No newline at end of file
index 050acb8..941b3e7 100644 (file)
 #include <WebCore/Settings.h>
 #include <WebCore/SystemInfo.h>
 #include <WebCore/UserContentController.h>
+#include <WebCore/UserScript.h>
+#include <WebCore/UserStyleSheet.h>
 #include <WebCore/WindowMessageBroadcaster.h>
 #include <WebCore/WindowsTouch.h>
 #include <bindings/ScriptValue.h>
@@ -6518,34 +6520,141 @@ HRESULT WebView::addUserScriptToGroup(BSTR groupName, IWebScriptWorld* iWorld, B
                                       unsigned blacklistCount, BSTR* blacklist,
                                       WebUserScriptInjectionTime injectionTime)
 {
-    return E_NOTIMPL;
+    return addUserScriptToGroup(groupName, iWorld, source, url, whitelistCount, whitelist, blacklistCount, blacklist, injectionTime, WebInjectInAllFrames);
+}
+
+static Vector<String> toStringVector(BSTR* entries, unsigned count)
+{
+    Vector<String> entriesVector;
+    if (!entries || !count)
+        return entriesVector;
+
+    for (unsigned i = 0; i < count; ++i)
+        entriesVector.append(toString(entries[i]));
+
+    return entriesVector;
+}
+
+HRESULT WebView::addUserScriptToGroup(BSTR groupName, IWebScriptWorld* iWorld, BSTR source, BSTR url,
+    unsigned whitelistCount, BSTR* whitelist, unsigned blacklistCount, BSTR* blacklist,
+    WebUserScriptInjectionTime injectionTime, WebUserContentInjectedFrames injectedFrames)
+{
+    String group = toString(groupName);
+    if (group.isEmpty())
+        return E_FAIL;
+
+    auto viewGroup = WebViewGroup::getOrCreate(group, String());
+    if (!viewGroup)
+        return E_FAIL;
+
+    if (!iWorld)
+        return E_POINTER;
+
+    WebScriptWorld* world = reinterpret_cast<WebScriptWorld*>(iWorld);
+    auto userScript = std::make_unique<UserScript>(source, toURL(url), toStringVector(whitelist, whitelistCount),
+        toStringVector(blacklist, blacklistCount), injectionTime == WebInjectAtDocumentStart ? InjectAtDocumentStart : InjectAtDocumentEnd,
+        injectedFrames == WebInjectInAllFrames ? InjectInAllFrames : InjectInTopFrameOnly);
+    viewGroup->userContentController().addUserScript(world->world(), WTF::move(userScript));
+    return S_OK;
 }
 
 HRESULT WebView::addUserStyleSheetToGroup(BSTR groupName, IWebScriptWorld* iWorld, BSTR source, BSTR url,
-                                          unsigned whitelistCount, BSTR* whitelist,
-                                          unsigned blacklistCount, BSTR* blacklist)
+    unsigned whitelistCount, BSTR* whitelist, unsigned blacklistCount, BSTR* blacklist)
 {
-    return E_NOTIMPL;
+    return addUserStyleSheetToGroup(groupName, iWorld, source, url, whitelistCount, whitelist, blacklistCount, blacklist, WebInjectInAllFrames);
+}
+
+HRESULT WebView::addUserStyleSheetToGroup(BSTR groupName, IWebScriptWorld* iWorld, BSTR source, BSTR url,
+    unsigned whitelistCount, BSTR* whitelist, unsigned blacklistCount, BSTR* blacklist, WebUserContentInjectedFrames injectedFrames)
+{
+    String group = toString(groupName);
+    if (group.isEmpty())
+        return E_FAIL;
+
+    auto viewGroup = WebViewGroup::getOrCreate(group, String());
+    if (!viewGroup)
+        return E_FAIL;
+
+    if (!iWorld)
+        return E_POINTER;
+
+    WebScriptWorld* world = reinterpret_cast<WebScriptWorld*>(iWorld);
+    auto styleSheet = std::make_unique<UserStyleSheet>(source, toURL(url), toStringVector(whitelist, whitelistCount), toStringVector(blacklist, blacklistCount),
+        injectedFrames == WebInjectInAllFrames ? InjectInAllFrames : InjectInTopFrameOnly, UserStyleUserLevel);
+    viewGroup->userContentController().addUserStyleSheet(world->world(), WTF::move(styleSheet), InjectInExistingDocuments);
+    return S_OK;
 }
 
 HRESULT WebView::removeUserScriptFromGroup(BSTR groupName, IWebScriptWorld* iWorld, BSTR url)
 {
-    return E_NOTIMPL;
+    String group = toString(groupName);
+    if (group.isEmpty())
+        return E_FAIL;
+
+    auto viewGroup = WebViewGroup::get(group);
+    if (!viewGroup)
+        return S_OK;
+
+    if (!iWorld)
+        return E_POINTER;
+
+    WebScriptWorld* world = reinterpret_cast<WebScriptWorld*>(iWorld);
+    viewGroup->userContentController().removeUserScript(world->world(), toURL(url));
+    return S_OK;
 }
 
 HRESULT WebView::removeUserStyleSheetFromGroup(BSTR groupName, IWebScriptWorld* iWorld, BSTR url)
 {
-    return E_NOTIMPL;
+    String group = toString(groupName);
+    if (group.isEmpty())
+        return E_FAIL;
+
+    auto viewGroup = WebViewGroup::get(group);
+    if (!viewGroup)
+        return S_OK;
+
+    if (!iWorld)
+        return E_POINTER;
+
+    WebScriptWorld* world = reinterpret_cast<WebScriptWorld*>(iWorld);
+    viewGroup->userContentController().removeUserStyleSheet(world->world(), toURL(url));
+    return S_OK;
 }
 
 HRESULT WebView::removeUserScriptsFromGroup(BSTR groupName, IWebScriptWorld* iWorld)
 {
-    return E_NOTIMPL;
+    String group = toString(groupName);
+    if (group.isEmpty())
+        return E_FAIL;
+
+    auto viewGroup = WebViewGroup::get(group);
+    if (!viewGroup)
+        return S_OK;
+
+    if (!iWorld)
+        return E_POINTER;
+
+    WebScriptWorld* world = reinterpret_cast<WebScriptWorld*>(iWorld);
+    viewGroup->userContentController().removeUserScripts(world->world());
+    return S_OK;
 }
 
 HRESULT WebView::removeUserStyleSheetsFromGroup(BSTR groupName, IWebScriptWorld* iWorld)
 {
-    return E_NOTIMPL;
+    String group = toString(groupName);
+    if (group.isEmpty())
+        return E_FAIL;
+
+    auto viewGroup = WebViewGroup::get(group);
+    if (!viewGroup)
+        return S_OK;
+
+    if (!iWorld)
+        return E_POINTER;
+
+    WebScriptWorld* world = reinterpret_cast<WebScriptWorld*>(iWorld);
+    viewGroup->userContentController().removeUserStyleSheets(world->world());
+    return S_OK;
 }
 
 HRESULT WebView::removeAllUserContentFromGroup(BSTR groupName)
index 95d7430..6b79fce 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2014 Apple Inc.  All rights reserved.
+ * Copyright (C) 2006-2012, 2014-2015 Apple Inc.  All rights reserved.
  * Copyright (C) 2009, 2010, 2011 Appcelerator, Inc. All rights reserved.
  * Copyright (C) 2011 Brent Fulgham. All rights reserved.
  *
@@ -846,6 +846,10 @@ public:
     HRESULT STDMETHODCALLTYPE dispatchPendingLoadRequests();
     virtual HRESULT STDMETHODCALLTYPE setCustomBackingScaleFactor(double);
     virtual HRESULT STDMETHODCALLTYPE backingScaleFactor(double*);
+    virtual HRESULT STDMETHODCALLTYPE addUserScriptToGroup(BSTR groupName, IWebScriptWorld*, BSTR source, BSTR url,
+        unsigned whitelistCount, BSTR* whitelist, unsigned blacklistCount, BSTR* blacklist, WebUserScriptInjectionTime, WebUserContentInjectedFrames);
+    virtual HRESULT STDMETHODCALLTYPE addUserStyleSheetToGroup(BSTR groupName, IWebScriptWorld*, BSTR source, BSTR url,
+        unsigned whitelistCount, BSTR* whitelist, unsigned blacklistCount, BSTR* blacklist, WebUserContentInjectedFrames);
 
     // WebView
     bool shouldUseEmbeddedView(const WTF::String& mimeType) const;
index ff71e49..1f869b0 100644 (file)
@@ -1,3 +1,16 @@
+2015-07-24  Brent Fulgham  <bfulgham@apple.com>
+
+        [Win] Activate CSP_NEXT and Connect UserScript and UserStyleSheet through WebView.
+        https://bugs.webkit.org/show_bug.cgi?id=147279
+        <rdar://problem/21990767>
+
+        Reviewed by Dean Jackson.
+
+        * DumpRenderTree/win/TestRunnerWin.cpp:
+        (TestRunner::addUserScript):
+        (TestRunner::addUserStyleSheet):
+        (TestRunner::setDeveloperExtrasEnabled):
+
 2015-07-24  Basile Clement  <basile_clement@apple.com>
 
         Call fixChangeLogPatch when generating patches from webkit-patch
index 29b190e..7445514 100644 (file)
@@ -997,7 +997,9 @@ void TestRunner::addUserScript(JSStringRef source, bool runAtStart, bool allFram
     if (FAILED(WebKitCreateInstance(__uuidof(WebScriptWorld), 0, __uuidof(world), reinterpret_cast<void**>(&world))))
         return;
 
-    webView->addUserScriptToGroup(_bstr_t(L"org.webkit.DumpRenderTree").GetBSTR(), world.get(), bstrT(source).GetBSTR(), 0, 0, 0, 0, 0, runAtStart ? WebInjectAtDocumentStart : WebInjectAtDocumentEnd);
+    webView->addUserScriptToGroup(_bstr_t(L"org.webkit.DumpRenderTree").GetBSTR(), world.get(), bstrT(source).GetBSTR(),
+        nullptr, 0, nullptr, 0, nullptr, runAtStart ? WebInjectAtDocumentStart : WebInjectAtDocumentEnd,
+        allFrames ? WebInjectInAllFrames : WebInjectInTopFrameOnly);
 }
 
 void TestRunner::addUserStyleSheet(JSStringRef source, bool allFrames)
@@ -1010,7 +1012,8 @@ void TestRunner::addUserStyleSheet(JSStringRef source, bool allFrames)
     if (FAILED(WebKitCreateInstance(__uuidof(WebScriptWorld), 0, __uuidof(world), reinterpret_cast<void**>(&world))))
         return;
 
-    webView->addUserStyleSheetToGroup(_bstr_t(L"org.webkit.DumpRenderTree").GetBSTR(), world.get(), bstrT(source).GetBSTR(), 0, 0, 0, 0, 0);
+    webView->addUserStyleSheetToGroup(_bstr_t(L"org.webkit.DumpRenderTree").GetBSTR(), world.get(), bstrT(source).GetBSTR(),
+        nullptr, 0, nullptr, 0, nullptr, allFrames ? WebInjectInAllFrames : WebInjectInTopFrameOnly);
 }
 
 void TestRunner::setDeveloperExtrasEnabled(bool enabled)
index 802d31f..b8177f1 100644 (file)
@@ -8,7 +8,7 @@
     <ENABLE_CANVAS_PATH>ENABLE_CANVAS_PATH</ENABLE_CANVAS_PATH>
     <ENABLE_CANVAS_PROXY />
     <ENABLE_CHANNEL_MESSAGING>ENABLE_CHANNEL_MESSAGING</ENABLE_CHANNEL_MESSAGING>
-    <ENABLE_CSP_NEXT />
+    <ENABLE_CSP_NEXT>ENABLE_CSP_NEXT</ENABLE_CSP_NEXT>
     <ENABLE_CSS3_CONDITIONAL_RULES>ENABLE_CSS3_CONDITIONAL_RULES</ENABLE_CSS3_CONDITIONAL_RULES>
     <ENABLE_CSS3_TEXT />
     <ENABLE_CSS_BOX_DECORATION_BREAK>ENABLE_CSS_BOX_DECORATION_BREAK</ENABLE_CSS_BOX_DECORATION_BREAK>
index 8aa3689..ae4896e 100644 (file)
@@ -8,7 +8,7 @@
     <ENABLE_CANVAS_PATH>ENABLE_CANVAS_PATH</ENABLE_CANVAS_PATH>
     <ENABLE_CANVAS_PROXY />
     <ENABLE_CHANNEL_MESSAGING>ENABLE_CHANNEL_MESSAGING</ENABLE_CHANNEL_MESSAGING>
-    <ENABLE_CSP_NEXT />
+    <ENABLE_CSP_NEXT>ENABLE_CSP_NEXT</ENABLE_CSP_NEXT>
     <ENABLE_CSS3_CONDITIONAL_RULES>ENABLE_CSS3_CONDITIONAL_RULES</ENABLE_CSS3_CONDITIONAL_RULES>
     <ENABLE_CSS3_TEXT />
     <ENABLE_CSS_BOX_DECORATION_BREAK>ENABLE_CSS_BOX_DECORATION_BREAK</ENABLE_CSS_BOX_DECORATION_BREAK>
index 55e4557..2d8288a 100644 (file)
@@ -41,7 +41,7 @@ nmake /nologo -f $(ProjectName).make clean</NMakeCleanCommandLine>
     <ClCompile>
       <AdditionalOptions>/bigobj /GS %(AdditionalOptions)</AdditionalOptions>
       <PreprocessorDefinitions>_WINDOWS;WINVER=0x502;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_HAS_EXCEPTIONS=0;BUILDING_$(ProjectName);NOMINMAX;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <PreprocessorDefinitions Condition="$(Platform)=='Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions Condition="$(Platform)=='Win32'">WIN32;WINVER=0x601;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <PreprocessorDefinitions Condition="$(Platform)=='Win64'">x64</PreprocessorDefinitions>
       <ExceptionHandling>false</ExceptionHandling>
       <RuntimeTypeInfo>false</RuntimeTypeInfo>