[Win] Remove Windows XP Compatibility Requirements
authorpeavo@outlook.com <peavo@outlook.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 3 May 2016 18:22:18 +0000 (18:22 +0000)
committerpeavo@outlook.com <peavo@outlook.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 3 May 2016 18:22:18 +0000 (18:22 +0000)
https://bugs.webkit.org/show_bug.cgi?id=152899

Reviewed by Brent Fulgham.

Source/JavaScriptCore:

Windows XP is not supported anymore, we can remove workarounds.

* JavaScriptCore.vcxproj/jsc/DLLLauncherMain.cpp:
(enableTerminationOnHeapCorruption):

Source/WebCore:

Windows XP is not supported anymore, we can remove compatibility workarounds.

* platform/text/win/LocaleWin.cpp:
(WebCore::extractLanguageCode):
(WebCore::LCIDFromLocaleInternal):
(WebCore::LCIDFromLocale):
(WebCore::removeLastComponent): Deleted.
(WebCore::ensureNameToLCIDMap): Deleted.
(WebCore::convertLocaleNameToLCID): Deleted.

Source/WTF:

Windows XP is not supported anymore, we can remove workarounds.

* wtf/Assertions.cpp:

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

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/JavaScriptCore.vcxproj/jsc/DLLLauncherMain.cpp
Source/WTF/ChangeLog
Source/WTF/wtf/Assertions.cpp
Source/WebCore/ChangeLog
Source/WebCore/platform/text/win/LocaleWin.cpp

index c546e75..4aa7ec7 100644 (file)
@@ -1,3 +1,15 @@
+2016-05-03  Per Arne Vollan  <peavo@outlook.com>
+
+        [Win] Remove Windows XP Compatibility Requirements
+        https://bugs.webkit.org/show_bug.cgi?id=152899
+
+        Reviewed by Brent Fulgham.
+
+        Windows XP is not supported anymore, we can remove workarounds.
+
+        * JavaScriptCore.vcxproj/jsc/DLLLauncherMain.cpp:
+        (enableTerminationOnHeapCorruption):
+
 2016-05-03  Joseph Pecoraro  <pecoraro@apple.com>
 
         Web Inspector: console.assert should do far less work when the assertion is true
index 0ff5b61..b883a32 100644 (file)
@@ -54,21 +54,8 @@ using namespace std;
 
 static void enableTerminationOnHeapCorruption()
 {
-    // Enable termination on heap corruption on OSes that support it (Vista and XPSP3).
-    // http://msdn.microsoft.com/en-us/library/aa366705(VS.85).aspx
-
     HEAP_INFORMATION_CLASS heapEnableTerminationOnCorruption = static_cast<HEAP_INFORMATION_CLASS>(1);
-
-    HMODULE module = ::GetModuleHandleW(L"kernel32.dll");
-    if (!module)
-        return;
-
-    typedef BOOL (WINAPI*HSI)(HANDLE, HEAP_INFORMATION_CLASS, PVOID, SIZE_T);
-    HSI heapSetInformation = reinterpret_cast<HSI>(::GetProcAddress(module, "HeapSetInformation"));
-    if (!heapSetInformation)
-        return;
-
-    heapSetInformation(0, heapEnableTerminationOnCorruption, 0, 0);
+    HeapSetInformation(0, heapEnableTerminationOnCorruption, 0, 0);
 }
 
 static wstring getStringValue(HKEY key, const wstring& valueName)
index 7b6b92c..2e502b0 100644 (file)
@@ -1,5 +1,16 @@
 2016-05-03  Per Arne Vollan  <peavo@outlook.com>
 
+        [Win] Remove Windows XP Compatibility Requirements
+        https://bugs.webkit.org/show_bug.cgi?id=152899
+
+        Reviewed by Brent Fulgham.
+
+        Windows XP is not supported anymore, we can remove workarounds.
+
+        * wtf/Assertions.cpp:
+
+2016-05-03  Per Arne Vollan  <peavo@outlook.com>
+
         [Win] Warning fix.
         https://bugs.webkit.org/show_bug.cgi?id=157309
 
index dba4ac0..8e709f2 100644 (file)
@@ -237,21 +237,7 @@ void WTFGetBacktrace(void** stack, int* size)
 #if OS(DARWIN) || (OS(LINUX) && defined(__GLIBC__) && !defined(__UCLIBC__))
     *size = backtrace(stack, *size);
 #elif OS(WINDOWS)
-    // The CaptureStackBackTrace function is available in XP, but it is not defined
-    // in the Windows Server 2003 R2 Platform SDK. So, we'll grab the function
-    // through GetProcAddress.
-    typedef WORD (NTAPI* RtlCaptureStackBackTraceFunc)(DWORD, DWORD, PVOID*, PDWORD);
-    HMODULE kernel32 = ::GetModuleHandleW(L"Kernel32.dll");
-    if (!kernel32) {
-        *size = 0;
-        return;
-    }
-    RtlCaptureStackBackTraceFunc captureStackBackTraceFunc = reinterpret_cast<RtlCaptureStackBackTraceFunc>(
-        ::GetProcAddress(kernel32, "RtlCaptureStackBackTrace"));
-    if (captureStackBackTraceFunc)
-        *size = captureStackBackTraceFunc(0, *size, stack, 0);
-    else
-        *size = 0;
+    *size = RtlCaptureStackBackTrace(0, *size, stack, 0);
 #else
     *size = 0;
 #endif
index 7a6697d..bc2b23a 100644 (file)
@@ -1,3 +1,20 @@
+2016-05-03  Per Arne Vollan  <peavo@outlook.com>
+
+        [Win] Remove Windows XP Compatibility Requirements
+        https://bugs.webkit.org/show_bug.cgi?id=152899
+
+        Reviewed by Brent Fulgham.
+
+        Windows XP is not supported anymore, we can remove compatibility workarounds.
+
+        * platform/text/win/LocaleWin.cpp:
+        (WebCore::extractLanguageCode):
+        (WebCore::LCIDFromLocaleInternal):
+        (WebCore::LCIDFromLocale):
+        (WebCore::removeLastComponent): Deleted.
+        (WebCore::ensureNameToLCIDMap): Deleted.
+        (WebCore::convertLocaleNameToLCID): Deleted.
+
 2016-05-02  Antti Koivisto  <antti@apple.com>
 
         REGRESSION (r198943): Transitions don't work if they animate display property
index e67e269..65d1928 100644 (file)
@@ -47,7 +47,6 @@ using namespace std;
 
 namespace WebCore {
 
-typedef LCID (WINAPI* LocaleNameToLCIDPtr)(LPCWSTR, DWORD);
 typedef HashMap<String, LCID, ASCIICaseInsensitiveHash> NameToLCIDMap;
 
 static String extractLanguageCode(const String& locale)
@@ -58,88 +57,24 @@ static String extractLanguageCode(const String& locale)
     return locale.left(dashPosition);
 }
 
-static String removeLastComponent(const String& name)
-{
-    size_t lastSeparator = name.reverseFind('-');
-    if (lastSeparator == notFound)
-        return emptyString();
-    return name.left(lastSeparator);
-}
-
-static void ensureNameToLCIDMap(NameToLCIDMap& map)
-{
-    if (!map.isEmpty())
-        return;
-    // http://www.microsoft.com/resources/msdn/goglobal/default.mspx
-    // We add only locales used in layout tests for now.
-    map.add("ar", 0x0001);
-    map.add("ar-eg", 0x0C01);
-    map.add("de", 0x0007);
-    map.add("de-de", 0x0407);
-    map.add("el", 0x0008);
-    map.add("el-gr", 0x0408);
-    map.add("en", 0x0009);
-    map.add("en-gb", 0x0809);
-    map.add("en-us", 0x0409);
-    map.add("fr", 0x000C);
-    map.add("fr-fr", 0x040C);
-    map.add("he", 0x000D);
-    map.add("he-il", 0x040D);
-    map.add("hi", 0x0039);
-    map.add("hi-in", 0x0439);
-    map.add("ja", 0x0011);
-    map.add("ja-jp", 0x0411);
-    map.add("ko", 0x0012);
-    map.add("ko-kr", 0x0412);
-    map.add("ru", 0x0019);
-    map.add("ru-ru", 0x0419);
-    map.add("zh-cn", 0x0804);
-    map.add("zh-tw", 0x0404);
-}
-
-// Fallback implementation of LocaleNameToLCID API. This is used for
-// testing on Windows XP.
-// FIXME: Remove this, ensureNameToLCIDMap, and removeLastComponent when we drop
-// Windows XP support.
-static LCID WINAPI convertLocaleNameToLCID(LPCWSTR name, DWORD)
-{
-    if (!name || !name[0])
-        return LOCALE_USER_DEFAULT;
-    DEPRECATED_DEFINE_STATIC_LOCAL(NameToLCIDMap, map, ());
-    ensureNameToLCIDMap(map);
-    String localeName = String(name).replace('_', '-');
-    do {
-        NameToLCIDMap::const_iterator iterator = map.find(localeName);
-        if (iterator != map.end())
-            return iterator->value;
-        localeName = removeLastComponent(localeName);
-    } while (!localeName.isEmpty());
-    return LOCALE_USER_DEFAULT;
-}
-
-static LCID LCIDFromLocaleInternal(LCID userDefaultLCID, const String& userDefaultLanguageCode, LocaleNameToLCIDPtr localeNameToLCID, String& locale)
+static LCID LCIDFromLocaleInternal(LCID userDefaultLCID, const String& userDefaultLanguageCode, String& locale)
 {
     if (equalIgnoringASCIICase(extractLanguageCode(locale), userDefaultLanguageCode))
         return userDefaultLCID;
-    return localeNameToLCID(locale.charactersWithNullTermination().data(), 0);
+    return LocaleNameToLCID(locale.charactersWithNullTermination().data(), 0);
 }
 
 static LCID LCIDFromLocale(const AtomicString& locale)
 {
-    // LocaleNameToLCID() is available since Windows Vista.
-    LocaleNameToLCIDPtr localeNameToLCID = reinterpret_cast<LocaleNameToLCIDPtr>(::GetProcAddress(::GetModuleHandle(L"kernel32"), "LocaleNameToLCID"));
-    if (!localeNameToLCID)
-        localeNameToLCID = convertLocaleNameToLCID;
-
     // According to MSDN, 9 is enough for LOCALE_SISO639LANGNAME.
     const size_t languageCodeBufferSize = 9;
     WCHAR lowercaseLanguageCode[languageCodeBufferSize];
     ::GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SISO639LANGNAME, lowercaseLanguageCode, languageCodeBufferSize);
     String userDefaultLanguageCode = String(lowercaseLanguageCode);
 
-    LCID lcid = LCIDFromLocaleInternal(LOCALE_USER_DEFAULT, userDefaultLanguageCode, localeNameToLCID, String(locale));
+    LCID lcid = LCIDFromLocaleInternal(LOCALE_USER_DEFAULT, userDefaultLanguageCode, String(locale));
     if (!lcid)
-        lcid = LCIDFromLocaleInternal(LOCALE_USER_DEFAULT, userDefaultLanguageCode, localeNameToLCID, defaultLanguage());
+        lcid = LCIDFromLocaleInternal(LOCALE_USER_DEFAULT, userDefaultLanguageCode, defaultLanguage());
     return lcid;
 }