diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp
index 4a9049b..c0ac9db 100644
--- a/src/corelib/io/qfilesystemengine_unix.cpp
+++ b/src/corelib/io/qfilesystemengine_unix.cpp
@@ -242,9 +242,8 @@ QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry,
 #else
     char *ret = 0;
 # if defined(Q_OS_MAC) && !defined(Q_OS_IOS)
-    // When using -mmacosx-version-min=10.4, we get the legacy realpath implementation,
-    // which does not work properly with the realpath(X,0) form. See QTBUG-28282.
-    if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_6) {
+    // In Nix-on-Darwin, we don't support ancient macOS anyway, and the deleted branch relies on
+    // a symbol that's been deprecated for years and that our CF doesn't have
         ret = (char*)malloc(PATH_MAX + 1);
         if (ret && realpath(entry.nativeFilePath().constData(), (char*)ret) == 0) {
             const int savedErrno = errno; // errno is checked below, and free() might change it
@@ -252,19 +251,6 @@ QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry,
             errno = savedErrno;
             ret = 0;
         }
-    } else {
-        // on 10.5 we can use FSRef to resolve the file path.
-        QString path = QDir::cleanPath(entry.filePath());
-        FSRef fsref;
-        if (FSPathMakeRef((const UInt8 *)path.toUtf8().data(), &fsref, 0) == noErr) {
-            CFURLRef urlref = CFURLCreateFromFSRef(NULL, &fsref);
-            CFStringRef canonicalPath = CFURLCopyFileSystemPath(urlref, kCFURLPOSIXPathStyle);
-            QString ret = QCFString::toQString(canonicalPath);
-            CFRelease(canonicalPath);
-            CFRelease(urlref);
-            return QFileSystemEntry(ret);
-        }
-    }
 # else
 #  if _POSIX_VERSION >= 200801L
     ret = realpath(entry.nativeFilePath().constData(), (char*)0);
diff --git a/src/3rdparty/webkit/Source/WebCore/platform/mac/WebCoreNSStringExtras.h b/src/3rdparty/webkit/Source/WebCore/platform/mac/WebCoreNSStringExtras.h
index 3bf7342..b6bcfc0 100644
--- a/src/3rdparty/webkit/Source/WebCore/platform/mac/WebCoreNSStringExtras.h
+++ b/src/3rdparty/webkit/Source/WebCore/platform/mac/WebCoreNSStringExtras.h
@@ -43,7 +43,6 @@ BOOL stringIsCaseInsensitiveEqualToString(NSString *first, NSString *second);
 BOOL hasCaseInsensitiveSuffix(NSString *string, NSString *suffix);
 BOOL hasCaseInsensitiveSubstring(NSString *string, NSString *substring);
 NSString *filenameByFixingIllegalCharacters(NSString *string);
-CFStringEncoding stringEncodingForResource(Handle resource);
 
 #ifdef __cplusplus
 }
diff --git a/src/3rdparty/webkit/Source/WebCore/platform/mac/WebCoreNSStringExtras.mm b/src/3rdparty/webkit/Source/WebCore/platform/mac/WebCoreNSStringExtras.mm
index d6c3f0c..c88ca76 100644
--- a/src/3rdparty/webkit/Source/WebCore/platform/mac/WebCoreNSStringExtras.mm
+++ b/src/3rdparty/webkit/Source/WebCore/platform/mac/WebCoreNSStringExtras.mm
@@ -68,45 +68,4 @@ BOOL hasCaseInsensitiveSubstring(NSString *string, NSString *substring)
     return filename;
 }
 
-CFStringEncoding stringEncodingForResource(Handle resource)
-{
-    short resRef = HomeResFile(resource);
-    if (ResError() != noErr)
-        return NSMacOSRomanStringEncoding;
-    
-    // Get the FSRef for the current resource file
-    FSRef fref;
-    OSStatus error = FSGetForkCBInfo(resRef, 0, NULL, NULL, NULL, &fref, NULL);
-    if (error != noErr)
-        return NSMacOSRomanStringEncoding;
-    
-    RetainPtr<CFURLRef> url(AdoptCF, CFURLCreateFromFSRef(NULL, &fref));
-    if (!url)
-        return NSMacOSRomanStringEncoding;
-
-    NSString *path = [(NSURL *)url.get() path];
-
-    // Get the lproj directory name
-    path = [path stringByDeletingLastPathComponent];
-    if (!stringIsCaseInsensitiveEqualToString([path pathExtension], @"lproj"))
-        return NSMacOSRomanStringEncoding;
-    
-    NSString *directoryName = [[path stringByDeletingPathExtension] lastPathComponent];
-    RetainPtr<CFStringRef> locale(AdoptCF, CFLocaleCreateCanonicalLocaleIdentifierFromString(NULL, (CFStringRef)directoryName));
-    if (!locale)
-        return NSMacOSRomanStringEncoding;
-
-    LangCode lang;
-    RegionCode region;
-    error = LocaleStringToLangAndRegionCodes([(NSString *)locale.get() UTF8String], &lang, &region);
-    if (error != noErr)
-        return NSMacOSRomanStringEncoding;
-
-    TextEncoding encoding;
-    error = UpgradeScriptInfoToTextEncoding(kTextScriptDontCare, lang, region, NULL, &encoding);
-    if (error != noErr)
-        return NSMacOSRomanStringEncoding;
-    
-    return encoding;
-}
 
diff --git a/src/3rdparty/webkit/Source/WebCore/plugins/mac/PluginPackageMac.cpp b/src/3rdparty/webkit/Source/WebCore/plugins/mac/PluginPackageMac.cpp
index 865ea32..20bda8d 100644
--- a/src/3rdparty/webkit/Source/WebCore/plugins/mac/PluginPackageMac.cpp
+++ b/src/3rdparty/webkit/Source/WebCore/plugins/mac/PluginPackageMac.cpp
@@ -101,33 +101,6 @@ static WTF::RetainPtr<CFDictionaryRef> readPListFile(CFStringRef fileName, bool
     return map;
 }
 
-static Vector<String> stringListFromResourceId(SInt16 id)
-{
-    Vector<String> list;
-
-    Handle handle = Get1Resource('STR#', id);
-    if (!handle)
-        return list;
-
-    CFStringEncoding encoding = stringEncodingForResource(handle);
-
-    unsigned char* p = (unsigned char*)*handle;
-    if (!p)
-        return list;
-
-    SInt16 count = *(SInt16*)p;
-    p += sizeof(SInt16);
-
-    for (SInt16 i = 0; i < count; ++i) {
-        unsigned char length = *p;
-        WTF::RetainPtr<CFStringRef> str = CFStringCreateWithPascalString(0, p, encoding);
-        list.append(str.get());
-        p += 1 + length;
-    }
-
-    return list;
-}
-
 bool PluginPackage::fetchInfo()
 {
     if (!load())
@@ -202,36 +175,8 @@ bool PluginPackage::fetchInfo()
         m_description = (CFStringRef)CFBundleGetValueForInfoDictionaryKey(m_module, CFSTR("WebPluginDescription"));
 
     } else {
-        int resFile = CFBundleOpenBundleResourceMap(m_module);
-
-        UseResFile(resFile);
-
-        Vector<String> mimes = stringListFromResourceId(MIMEListStringStringNumber);
-
-        if (mimes.size() % 2 != 0)
-            return false;
-
-        Vector<String> descriptions = stringListFromResourceId(MIMEDescriptionStringNumber);
-        if (descriptions.size() != mimes.size() / 2)
-            return false;
-
-        for (size_t i = 0;  i < mimes.size(); i += 2) {
-            String mime = mimes[i].lower();
-            Vector<String> extensions;
-            mimes[i + 1].lower().split(UChar(','), extensions);
-
-            m_mimeToExtensions.set(mime, extensions);
-
-            m_mimeToDescriptions.set(mime, descriptions[i / 2]);
-        }
-
-        Vector<String> names = stringListFromResourceId(PluginNameOrDescriptionStringNumber);
-        if (names.size() == 2) {
-            m_description = names[0];
-            m_name = names[1];
-        }
-
-        CFBundleCloseBundleResourceMap(m_module, resFile);
+        LOG(Plugins, "Nix removed ancient code that relies on long-deprecated functionality that we don't want to support!");
+        return false;
     }
 
     LOG(Plugins, "PluginPackage::fetchInfo(): Found plug-in '%s'", m_name.utf8().data());
diff --git a/src/3rdparty/webkit/Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm b/src/3rdparty/webkit/Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm
index b206e48..669d442 100644
--- a/src/3rdparty/webkit/Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm
+++ b/src/3rdparty/webkit/Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm
@@ -26,7 +26,6 @@
 #import "config.h"
 #import "NetscapePluginModule.h"
 
-#import <WebCore/WebCoreNSStringExtras.h>
 #import <wtf/HashSet.h>
 
 using namespace WebCore;
@@ -196,132 +195,6 @@ static bool getPluginInfoFromPropertyLists(CFBundleRef bundle, PluginInfo& plugi
     return true;    
 }
 
-class ResourceMap {
-public:
-    explicit ResourceMap(CFBundleRef bundle)
-        : m_bundle(bundle)
-        , m_currentResourceFile(CurResFile())
-        , m_bundleResourceMap(CFBundleOpenBundleResourceMap(m_bundle))
-    {
-        UseResFile(m_bundleResourceMap);
-    }
-
-    ~ResourceMap()
-    {
-        // Close the resource map.
-        CFBundleCloseBundleResourceMap(m_bundle, m_bundleResourceMap);
-        
-        // And restore the old resource.
-        UseResFile(m_currentResourceFile);
-    }
-
-    bool isValid() const { return m_bundleResourceMap != -1; }
-
-private:
-    CFBundleRef m_bundle;
-    ResFileRefNum m_currentResourceFile;
-    ResFileRefNum m_bundleResourceMap;
-};
-
-static bool getStringListResource(ResID resourceID, Vector<String>& stringList) {
-    Handle stringListHandle = Get1Resource('STR#', resourceID);
-    if (!stringListHandle || !*stringListHandle)
-        return false;
-
-    // Get the string list size.
-    Size stringListSize = GetHandleSize(stringListHandle);
-    if (stringListSize < static_cast<Size>(sizeof(UInt16)))
-        return false;
-
-    CFStringEncoding stringEncoding = stringEncodingForResource(stringListHandle);
-
-    unsigned char* ptr = reinterpret_cast<unsigned char*>(*stringListHandle);
-    unsigned char* end = ptr + stringListSize;
-    
-    // Get the number of strings in the string list.
-    UInt16 numStrings = *reinterpret_cast<UInt16*>(ptr);
-    ptr += sizeof(UInt16);
-
-    for (UInt16 i = 0; i < numStrings; ++i) {
-        // We're past the end of the string, bail.
-        if (ptr >= end)
-            return false;
-
-        // Get the string length.
-        unsigned char stringLength = *ptr++;
-
-        RetainPtr<CFStringRef> cfString(AdoptCF, CFStringCreateWithBytesNoCopy(kCFAllocatorDefault, ptr, stringLength, stringEncoding, false, kCFAllocatorNull));
-        if (!cfString.get())
-            return false;
-
-        stringList.append(cfString.get());
-        ptr += stringLength;
-    }
-
-    if (ptr != end)
-        return false;
-
-    return true;
-}
-
-static const ResID PluginNameOrDescriptionStringNumber = 126;
-static const ResID MIMEDescriptionStringNumber = 127;
-static const ResID MIMEListStringStringNumber = 128;
-
-static bool getPluginInfoFromCarbonResources(CFBundleRef bundle, PluginInfo& pluginInfo)
-{
-    ResourceMap resourceMap(bundle);
-    if (!resourceMap.isValid())
-        return false;
-
-    // Get the description and name string list.
-    Vector<String> descriptionAndName;
-    if (!getStringListResource(PluginNameOrDescriptionStringNumber, descriptionAndName))
-        return false;
-
-    // Get the MIME types and extensions string list. This list needs to be a multiple of two.
-    Vector<String> mimeTypesAndExtensions;
-    if (!getStringListResource(MIMEListStringStringNumber, mimeTypesAndExtensions))
-        return false;
-
-    if (mimeTypesAndExtensions.size() % 2)
-        return false;
-
-    // Now get the MIME type descriptions string list. This string list needs to be the same length as the number of MIME types.
-    Vector<String> mimeTypeDescriptions;
-    if (!getStringListResource(MIMEDescriptionStringNumber, mimeTypeDescriptions))
-        return false;
-
-    // Add all MIME types.
-    for (size_t i = 0; i < mimeTypesAndExtensions.size() / 2; ++i) {
-        MimeClassInfo mimeClassInfo;
-        
-        const String& mimeType = mimeTypesAndExtensions[i * 2];
-        String description;
-        if (i < mimeTypeDescriptions.size())
-            description = mimeTypeDescriptions[i];
-        
-        mimeClassInfo.type = mimeType.lower();
-        mimeClassInfo.desc = description;
-        
-        Vector<String> extensions;
-        mimeTypesAndExtensions[i * 2 + 1].split(',', extensions);
-        
-        for (size_t i = 0; i < extensions.size(); ++i)
-            mimeClassInfo.extensions.append(extensions[i].lower());
-
-        pluginInfo.mimes.append(mimeClassInfo);
-    }
-
-    // Set the description and name if they exist.
-    if (descriptionAndName.size() > 0)
-        pluginInfo.desc = descriptionAndName[0];
-    if (descriptionAndName.size() > 1)
-        pluginInfo.name = descriptionAndName[1];
-
-    return true;
-}
-
 bool NetscapePluginModule::getPluginInfo(const String& pluginPath, PluginInfoStore::Plugin& plugin)
 {
     RetainPtr<CFStringRef> bundlePath(AdoptCF, pluginPath.createCFString());
@@ -344,8 +217,7 @@ static bool getPluginInfoFromCarbonResources(CFBundleRef bundle, PluginInfo& plu
         return false;
     
     // Check that there's valid info for this plug-in.
-    if (!getPluginInfoFromPropertyLists(bundle.get(), plugin.info) &&
-        !getPluginInfoFromCarbonResources(bundle.get(), plugin.info))
+    if (!getPluginInfoFromPropertyLists(bundle.get(), plugin.info))
         return false;
     
     plugin.path = pluginPath;