browser/app/firefox.exe.manifest
author Nicholas Nethercote <nnethercote@mozilla.com>
Wed, 12 Jul 2017 15:13:37 +1000
changeset 419917 129793760f2d718ed61ba17d9aacd57c7ec6785b
parent 405968 ede9819237516b2e48b95b1d3e95f8eafe53b9fd
child 500348 3eb04f5363eb661fa2ae544a934a7ace85b65282
permissions -rw-r--r--
Bug 1380227 - Avoid many UTF16toUTF8 and UTF8toUTF16 conversions in nsStringBundle. r=emk. Most of the names passed to nsIStringBundle::{Get,Format}StringFromUTF8Name have one of the two following forms: - a 16-bit C string literal, which is then converted to an 8-bit string in order for the lookup to occur; - an 8-bit C string literal converted to a 16-bit string, which is then converted back to an 8-bit string in order for the lookup to occur. This patch introduces and uses alternative methods that can take an 8-bit C string literal, which requires changing some signatures in other methods and functions. It replaces all C++ uses of the old methods. The patch also changes the existing {Get,Format}StringFromName() methods so they take an AUTF8String argument for the name instead of a wstring, because that's nicer for JS code. Even though there is a method for C++ code and a different one for JS code, |binaryname| is used so that the existing method names can be used for the common case in both languages. The change reduces the number of NS_ConvertUTF8toUTF16 and NS_ConvertUTF16toUTF8 conversions while running Speedometer v2 from ~270,000 to ~160,000. (Most of these conversions involved the string "deprecatedReferrerDirective" in nsCSPParser.cpp.)

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
        version="1.0.0.0"
        processorArchitecture="*"
        name="Firefox"
        type="win32"
/>
<description>Firefox</description>
<dependency>
        <dependentAssembly>
                <assemblyIdentity
                        type="win32"
                        name="Microsoft.Windows.Common-Controls"
                        version="6.0.0.0"
                        processorArchitecture="*"
                        publicKeyToken="6595b64144ccf1df"
                        language="*"
                />
        </dependentAssembly>
</dependency>
<ms_asmv3:trustInfo xmlns:ms_asmv3="urn:schemas-microsoft-com:asm.v3">
  <ms_asmv3:security>
    <ms_asmv3:requestedPrivileges>
      <ms_asmv3:requestedExecutionLevel level="asInvoker" uiAccess="false" />
    </ms_asmv3:requestedPrivileges>
  </ms_asmv3:security>
</ms_asmv3:trustInfo>
  <ms_asmv3:application xmlns:ms_asmv3="urn:schemas-microsoft-com:asm.v3">
    <ms_asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
      <dpiAware>True/PM</dpiAware>
      <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2,PerMonitor</dpiAwareness>
    </ms_asmv3:windowsSettings>
  </ms_asmv3:application>
  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>
      <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
      <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
      <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
    </application>
  </compatibility>
</assembly>