New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 700509 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner: ----
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 1
Type: Bug



Sign in to add a comment

Many DLLs seem to be loading before chrome_elf.dll on Win10

Project Member Reported by scottmg@chromium.org, Mar 10 2017

Issue description

In https://bugs.chromium.org/p/chromium/issues/detail?id=700371 we discovered that crash init was broken again, but only on win7 this time.

chrome_elf was accidentally loading advapi32.dll in DllMain, which is bad. However, it works fine on win10 because that dll's already loaded. But why is that dll already loaded?? Here's a log from windbg on win10 for the current stable 57.0.2987.98 (64-bit).

Symbol search path is: SRV*c:\Symbols*https://msdl.microsoft.com/download/symbols;SRV*c:\Symbols*https://chromium-browser-symsrv.commondatastorage.googleapis.com;srv*c:\stuff\3023-symbols*https://chromium-browser-symsrv.commondatastorage.googleapis.com
Executable search path is: 
ModLoad: 00007ff6`f5fd0000 00007ff6`f60e7000   chrome.exe
ModLoad: 00007ff8`37a90000 00007ff8`37c61000   ntdll.dll
ModLoad: 00007ff8`37170000 00007ff8`3721b000   C:\WINDOWS\System32\KERNEL32.DLL
ModLoad: 00007ff8`342e0000 00007ff8`344fd000   C:\WINDOWS\System32\KERNELBASE.dll
ModLoad: 00007ff8`30dd0000 00007ff8`30e4a000   C:\WINDOWS\system32\apphelp.dll
ModLoad: 00007ff8`1f020000 00007ff8`1f073000   C:\WINDOWS\AppPatch\AppPatch64\AcGenral.dll
ModLoad: 00007ff8`35290000 00007ff8`3532e000   C:\WINDOWS\System32\msvcrt.dll
ModLoad: 00007ff8`35190000 00007ff8`351e9000   C:\WINDOWS\System32\sechost.dll
ModLoad: 00007ff8`373e0000 00007ff8`37501000   C:\WINDOWS\System32\RPCRT4.dll
ModLoad: 00007ff8`351f0000 00007ff8`35242000   C:\WINDOWS\System32\SHLWAPI.dll
ModLoad: 00007ff8`377b0000 00007ff8`37a78000   C:\WINDOWS\System32\combase.dll
ModLoad: 00007ff8`34d00000 00007ff8`34df5000   C:\WINDOWS\System32\ucrtbase.dll
ModLoad: 00007ff8`34e60000 00007ff8`34eca000   C:\WINDOWS\System32\bcryptPrimitives.dll
ModLoad: 00007ff8`35250000 00007ff8`35284000   C:\WINDOWS\System32\GDI32.dll
ModLoad: 00007ff8`33f80000 00007ff8`34102000   C:\WINDOWS\System32\gdi32full.dll
ModLoad: 00007ff8`359e0000 00007ff8`35b45000   C:\WINDOWS\System32\USER32.dll
ModLoad: 00007ff8`34c30000 00007ff8`34c4e000   C:\WINDOWS\System32\win32u.dll
ModLoad: 00007ff8`37220000 00007ff8`37357000   C:\WINDOWS\System32\ole32.dll
ModLoad: 00007ff8`35c60000 00007ff8`37169000   C:\WINDOWS\System32\SHELL32.dll
ModLoad: 00007ff8`34be0000 00007ff8`34c22000   C:\WINDOWS\System32\cfgmgr32.dll
ModLoad: 00007ff8`34500000 00007ff8`34bda000   C:\WINDOWS\System32\windows.storage.dll
ModLoad: 00007ff8`33f20000 00007ff8`33f6c000   C:\WINDOWS\System32\powrprof.dll
ModLoad: 00007ff8`350e0000 00007ff8`35182000   C:\WINDOWS\System32\advapi32.dll
ModLoad: 00007ff8`33f10000 00007ff8`33f1f000   C:\WINDOWS\System32\kernel.appcore.dll
ModLoad: 00007ff8`34ed0000 00007ff8`34f79000   C:\WINDOWS\System32\shcore.dll
ModLoad: 00007ff8`33ef0000 00007ff8`33f04000   C:\WINDOWS\System32\profapi.dll
ModLoad: 00007ff8`33bf0000 00007ff8`33c1c000   C:\WINDOWS\SYSTEM32\SspiCli.dll
ModLoad: 00007ff8`336a0000 00007ff8`336bf000   C:\WINDOWS\SYSTEM32\USERENV.dll
ModLoad: 00007ff8`24b70000 00007ff8`24b8b000   C:\WINDOWS\SYSTEM32\MPR.dll
ModLoad: 00007ff8`35bc0000 00007ff8`35bee000   C:\WINDOWS\System32\IMM32.DLL
ModLoad: 00007ff8`37a80000 00007ff8`37a88000   C:\WINDOWS\System32\PSAPI.DLL
ModLoad: 00007ff8`12e20000 00007ff8`12eb4000   C:\Program Files (x86)\Google\Chrome\Application\57.0.2987.98\chrome_elf.dll
ModLoad: 00007ff8`30a30000 00007ff8`30a3a000   C:\WINDOWS\SYSTEM32\VERSION.dll
ModLoad: 00007ff8`30ad0000 00007ff8`30af3000   C:\WINDOWS\SYSTEM32\WINMM.dll
ModLoad: 00007ff8`31d60000 00007ff8`31e2d000   C:\WINDOWS\SYSTEM32\WINHTTP.dll
ModLoad: 00007ff8`30a70000 00007ff8`30a9b000   C:\WINDOWS\SYSTEM32\WINMMBASE.dll
ModLoad: 00007ff8`339c0000 00007ff8`339cb000   C:\WINDOWS\SYSTEM32\CRYPTBASE.DLL
(a6a4.614): Break instruction exception - code 80000003 (first chance)
ntdll!LdrpDoDebuggerBreak+0x30:
00007ff8`37b634e0 cc              int     3


Is this bad? (in particular that all the modules of the world appear to be loading before we get around to chrome_elf.dll?)
 
Here's the load from Win7 for comparison:


Microsoft (R) Windows Debugger Version 10.0.14321.1024 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.

CommandLine: "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
Symbol search path is: srv*
Executable search path is: 
ModLoad: 00000001`3f3c0000 00000001`3f4d7000   chrome.exe
ModLoad: 00000000`76ce0000 00000000`76e89000   ntdll.dll
ModLoad: 00000000`76bc0000 00000000`76cdf000   C:\Windows\system32\kernel32.dll
ModLoad: 000007fe`fcce0000 000007fe`fcd4b000   C:\Windows\system32\KERNELBASE.dll
ModLoad: 000007fe`f2b20000 000007fe`f2bb4000   C:\Program Files (x86)\Google\Chrome\Application\57.0.2987.98\chrome_elf.dll
ModLoad: 000007fe`fbd80000 000007fe`fbd8c000   C:\Windows\system32\VERSION.dll
ModLoad: 000007fe`fe4b0000 000007fe`fe54f000   C:\Windows\system32\msvcrt.dll
ModLoad: 000007fe`fd440000 000007fe`fd51b000   C:\Windows\system32\ADVAPI32.dll
ModLoad: 000007fe`fd000000 000007fe`fd01f000   C:\Windows\SYSTEM32\sechost.dll
ModLoad: 000007fe`fe930000 000007fe`fea5d000   C:\Windows\system32\RPCRT4.dll
ModLoad: 00000000`76ea0000 00000000`76ea7000   C:\Windows\system32\PSAPI.DLL
ModLoad: 000007fe`fd600000 000007fe`fe388000   C:\Windows\system32\SHELL32.dll
ModLoad: 000007fe`fe890000 000007fe`fe901000   C:\Windows\system32\SHLWAPI.dll
ModLoad: 000007fe`fd280000 000007fe`fd2e7000   C:\Windows\system32\GDI32.dll
ModLoad: 00000000`76ac0000 00000000`76bba000   C:\Windows\system32\USER32.dll
ModLoad: 000007fe`fe4a0000 000007fe`fe4ae000   C:\Windows\system32\LPK.dll
ModLoad: 000007fe`fd370000 000007fe`fd439000   C:\Windows\system32\USP10.dll
ModLoad: 000007fe`f7410000 000007fe`f744b000   C:\Windows\system32\WINMM.dll
ModLoad: 000007fe`fbf80000 000007fe`fbf9e000   C:\Windows\system32\USERENV.dll
ModLoad: 000007fe`fcc30000 000007fe`fcc3f000   C:\Windows\system32\profapi.dll
ModLoad: 000007fe`f9c60000 000007fe`f9cd1000   C:\Windows\system32\WINHTTP.dll
ModLoad: 000007fe`f9bf0000 000007fe`f9c54000   C:\Windows\system32\webio.dll
(7a8.528): Break instruction exception - code 80000003 (first chance)


which looks like we'd want it to look from my understanding.
I guess it's apphelp/apppatch64 that's messing things up? So maybe it's only on my/some win10 machines?

I'll try setting up a vanilla Win10 VM to compare there next I guess.
Here's the results of a clean Win10 x64 1607 install, then chrome x64 m57 stable, then windbg:


Microsoft (R) Windows Debugger Version 10.0.14321.1024 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.

CommandLine: "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
Symbol search path is: srv*
Executable search path is: 
ModLoad: 00007ff6`61610000 00007ff6`61727000   chrome.exe
ModLoad: 00007ffa`13010000 00007ffa`131e1000   ntdll.dll
ModLoad: 00007ffa`12400000 00007ffa`124ab000   C:\Windows\System32\KERNEL32.DLL
ModLoad: 00007ffa`0f900000 00007ffa`0fb1d000   C:\Windows\System32\KERNELBASE.dll
ModLoad: 00007ffa`0de70000 00007ffa`0deea000   C:\Windows\system32\apphelp.dll
ModLoad: 00007ffa`017a0000 00007ffa`017f3000   C:\Windows\AppPatch\AppPatch64\AcGenral.dll
ModLoad: 00007ffa`107f0000 00007ffa`1088e000   C:\Windows\System32\msvcrt.dll
ModLoad: 00007ffa`10790000 00007ffa`107e9000   C:\Windows\System32\sechost.dll
ModLoad: 00007ffa`12780000 00007ffa`128a1000   C:\Windows\System32\RPCRT4.dll
ModLoad: 00007ffa`123a0000 00007ffa`123f2000   C:\Windows\System32\SHLWAPI.dll
ModLoad: 00007ffa`124b0000 00007ffa`12777000   C:\Windows\System32\combase.dll
ModLoad: 00007ffa`0f5b0000 00007ffa`0f6a5000   C:\Windows\System32\ucrtbase.dll
ModLoad: 00007ffa`10310000 00007ffa`1037a000   C:\Windows\System32\bcryptPrimitives.dll
ModLoad: 00007ffa`10c40000 00007ffa`10c74000   C:\Windows\System32\GDI32.dll
ModLoad: 00007ffa`0f770000 00007ffa`0f8f2000   C:\Windows\System32\gdi32full.dll
ModLoad: 00007ffa`12230000 00007ffa`12395000   C:\Windows\System32\USER32.dll
ModLoad: 00007ffa`0f6b0000 00007ffa`0f6ce000   C:\Windows\System32\win32u.dll
ModLoad: 00007ffa`109f0000 00007ffa`10b27000   C:\Windows\System32\ole32.dll
ModLoad: 00007ffa`10c80000 00007ffa`12189000   C:\Windows\System32\SHELL32.dll
ModLoad: 00007ffa`10380000 00007ffa`103c2000   C:\Windows\System32\cfgmgr32.dll
ModLoad: 00007ffa`0fb80000 00007ffa`1025a000   C:\Windows\System32\windows.storage.dll
ModLoad: 00007ffa`0f470000 00007ffa`0f4bc000   C:\Windows\System32\powrprof.dll
ModLoad: 00007ffa`12f60000 00007ffa`13002000   C:\Windows\System32\advapi32.dll
ModLoad: 00007ffa`0f4c0000 00007ffa`0f4cf000   C:\Windows\System32\kernel.appcore.dll
ModLoad: 00007ffa`10260000 00007ffa`10309000   C:\Windows\System32\shcore.dll
ModLoad: 00007ffa`0f4e0000 00007ffa`0f4f4000   C:\Windows\System32\profapi.dll
ModLoad: 00007ffa`0f0e0000 00007ffa`0f10c000   C:\Windows\SYSTEM32\SspiCli.dll
ModLoad: 00007ffa`0eaf0000 00007ffa`0eb0f000   C:\Windows\SYSTEM32\USERENV.dll
ModLoad: 00007ffa`09f70000 00007ffa`09f8b000   C:\Windows\SYSTEM32\MPR.dll
ModLoad: 00007ffa`12190000 00007ffa`121be000   C:\Windows\System32\IMM32.DLL
ModLoad: 00007ffa`12ac0000 00007ffa`12ac8000   C:\Windows\System32\PSAPI.DLL
ModLoad: 00007ff9`fdd70000 00007ff9`fde04000   C:\Program Files (x86)\Google\Chrome\Application\57.0.2987.98\chrome_elf.dll
ModLoad: 00007ffa`04510000 00007ffa`0451a000   C:\Windows\SYSTEM32\VERSION.dll
ModLoad: 00007ffa`0de40000 00007ffa`0de63000   C:\Windows\SYSTEM32\WINMM.dll
ModLoad: 00007ffa`094f0000 00007ffa`095bd000   C:\Windows\SYSTEM32\WINHTTP.dll
ModLoad: 00007ffa`0dda0000 00007ffa`0ddcb000   C:\Windows\SYSTEM32\WINMMBASE.dll
ModLoad: 00007ffa`0ef00000 00007ffa`0ef0b000   C:\Windows\SYSTEM32\CRYPTBASE.DLL
(19b0.e7c): Break instruction exception - code 80000003 (first chance)
ntdll!LdrpDoDebuggerBreak+0x30:
00007ffa`130e2740 cc              int     3



So I don't think chrome_elf is effective on Win10 at the moment, and we're always getting AppPatch64'd which might not really be teh awesomest either.

Comment 4 by wfh@chromium.org, Mar 10 2017

can you check the environment for the __COMPAT_LAYER variable maybe?

c.f. issue 694689
No __COMPAT_LAYER. Maybe AppPatch64 isn't compat? I'm not sure what it is, but it looks like it's mucking up our DLL loads anyway.


Microsoft (R) Windows Debugger Version 10.0.14321.1024 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.

CommandLine: "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
Symbol search path is: srv*
Executable search path is: 
ModLoad: 00007ff6`61610000 00007ff6`61727000   chrome.exe
ModLoad: 00007ffa`13010000 00007ffa`131e1000   ntdll.dll
ModLoad: 00007ffa`12400000 00007ffa`124ab000   C:\Windows\System32\KERNEL32.DLL
ModLoad: 00007ffa`0f900000 00007ffa`0fb1d000   C:\Windows\System32\KERNELBASE.dll
ModLoad: 00007ffa`0de70000 00007ffa`0deea000   C:\Windows\system32\apphelp.dll
ModLoad: 00007ffa`017a0000 00007ffa`017f3000   C:\Windows\AppPatch\AppPatch64\AcGenral.dll
ModLoad: 00007ffa`107f0000 00007ffa`1088e000   C:\Windows\System32\msvcrt.dll
ModLoad: 00007ffa`10790000 00007ffa`107e9000   C:\Windows\System32\sechost.dll
ModLoad: 00007ffa`12780000 00007ffa`128a1000   C:\Windows\System32\RPCRT4.dll
ModLoad: 00007ffa`123a0000 00007ffa`123f2000   C:\Windows\System32\SHLWAPI.dll
ModLoad: 00007ffa`124b0000 00007ffa`12777000   C:\Windows\System32\combase.dll
ModLoad: 00007ffa`0f5b0000 00007ffa`0f6a5000   C:\Windows\System32\ucrtbase.dll
ModLoad: 00007ffa`10310000 00007ffa`1037a000   C:\Windows\System32\bcryptPrimitives.dll
ModLoad: 00007ffa`10c40000 00007ffa`10c74000   C:\Windows\System32\GDI32.dll
ModLoad: 00007ffa`0f770000 00007ffa`0f8f2000   C:\Windows\System32\gdi32full.dll
ModLoad: 00007ffa`12230000 00007ffa`12395000   C:\Windows\System32\USER32.dll
ModLoad: 00007ffa`0f6b0000 00007ffa`0f6ce000   C:\Windows\System32\win32u.dll
ModLoad: 00007ffa`109f0000 00007ffa`10b27000   C:\Windows\System32\ole32.dll
ModLoad: 00007ffa`10c80000 00007ffa`12189000   C:\Windows\System32\SHELL32.dll
ModLoad: 00007ffa`10380000 00007ffa`103c2000   C:\Windows\System32\cfgmgr32.dll
ModLoad: 00007ffa`0fb80000 00007ffa`1025a000   C:\Windows\System32\windows.storage.dll
ModLoad: 00007ffa`0f470000 00007ffa`0f4bc000   C:\Windows\System32\powrprof.dll
ModLoad: 00007ffa`12f60000 00007ffa`13002000   C:\Windows\System32\advapi32.dll
ModLoad: 00007ffa`0f4c0000 00007ffa`0f4cf000   C:\Windows\System32\kernel.appcore.dll
ModLoad: 00007ffa`10260000 00007ffa`10309000   C:\Windows\System32\shcore.dll
ModLoad: 00007ffa`0f4e0000 00007ffa`0f4f4000   C:\Windows\System32\profapi.dll
ModLoad: 00007ffa`0f0e0000 00007ffa`0f10c000   C:\Windows\SYSTEM32\SspiCli.dll
ModLoad: 00007ffa`0eaf0000 00007ffa`0eb0f000   C:\Windows\SYSTEM32\USERENV.dll
ModLoad: 00007ffa`09f70000 00007ffa`09f8b000   C:\Windows\SYSTEM32\MPR.dll
ModLoad: 00007ffa`12190000 00007ffa`121be000   C:\Windows\System32\IMM32.DLL
ModLoad: 00007ffa`12ac0000 00007ffa`12ac8000   C:\Windows\System32\PSAPI.DLL
ModLoad: 00007ff9`fdd70000 00007ff9`fde04000   C:\Program Files (x86)\Google\Chrome\Application\57.0.2987.98\chrome_elf.dll
ModLoad: 00007ffa`04510000 00007ffa`0451a000   C:\Windows\SYSTEM32\VERSION.dll
ModLoad: 00007ffa`0de40000 00007ffa`0de63000   C:\Windows\SYSTEM32\WINMM.dll
ModLoad: 00007ffa`094f0000 00007ffa`095bd000   C:\Windows\SYSTEM32\WINHTTP.dll
ModLoad: 00007ffa`0dda0000 00007ffa`0ddcb000   C:\Windows\SYSTEM32\WINMMBASE.dll
ModLoad: 00007ffa`0ef00000 00007ffa`0ef0b000   C:\Windows\SYSTEM32\CRYPTBASE.DLL
(150c.15d4): Break instruction exception - code 80000003 (first chance)
ntdll!LdrpDoDebuggerBreak+0x30:
00007ffa`130e2740 cc              int     3
0:000> !peb
PEB at 000000586a959000
    InheritedAddressSpace:    No
    ReadImageFileExecOptions: No
    BeingDebugged:            Yes
    ImageBaseAddress:         00007ff661610000
    Ldr                       00007ffa131623a0
    Ldr.Initialized:          Yes
    Ldr.InInitializationOrderModuleList: 00000167623722b0 . 000001676237fef0
    Ldr.InLoadOrderModuleList:           0000016762372420 . 000001676238d590
    Ldr.InMemoryOrderModuleList:         0000016762372430 . 000001676238d5a0
                    Base TimeStamp                     Module
            7ff661610000 58c08db4 Mar 08 15:03:16 2017 C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
            7ffa13010000 5819bc32 Nov 02 03:13:06 2016 C:\Windows\SYSTEM32\ntdll.dll
            7ffa12400000 57899a29 Jul 15 19:21:29 2016 C:\Windows\System32\KERNEL32.DLL
            7ffa0f900000 57f4c4f0 Oct 05 02:16:32 2016 C:\Windows\System32\KERNELBASE.dll
            7ffa0de70000 578999e1 Jul 15 19:20:17 2016 C:\Windows\system32\apphelp.dll
            7ffa017a0000 5801a86f Oct 14 20:54:23 2016 C:\Windows\AppPatch\AppPatch64\AcGenral.dll
            7ffa107f0000 57899b47 Jul 15 19:26:15 2016 C:\Windows\System32\msvcrt.dll
            7ffa10790000 57899a7c Jul 15 19:22:52 2016 C:\Windows\System32\sechost.dll
            7ffa12780000 57a558cf Aug 05 20:26:07 2016 C:\Windows\System32\RPCRT4.dll
            7ffa123a0000 5789988d Jul 15 19:14:37 2016 C:\Windows\System32\SHLWAPI.dll
            7ffa124b0000 5801a419 Oct 14 20:35:53 2016 C:\Windows\System32\combase.dll
            7ffa0f5b0000 578997b5 Jul 15 19:11:01 2016 C:\Windows\System32\ucrtbase.dll
            7ffa10310000 57899aef Jul 15 19:24:47 2016 C:\Windows\System32\bcryptPrimitives.dll
            7ffa10c40000 57dace36 Sep 15 09:37:10 2016 C:\Windows\System32\GDI32.dll
            7ffa0f770000 5819c03e Nov 02 03:30:22 2016 C:\Windows\System32\gdi32full.dll
            7ffa12230000 5801a55b Oct 14 20:41:15 2016 C:\Windows\System32\USER32.dll
            7ffa0f6b0000 57a05800 Aug 02 01:21:20 2016 C:\Windows\System32\win32u.dll
            7ffa109f0000 5819bedb Nov 02 03:24:27 2016 C:\Windows\System32\ole32.dll
            7ffa10c80000 5819bf39 Nov 02 03:26:01 2016 C:\Windows\System32\SHELL32.dll
            7ffa10380000 57899b3c Jul 15 19:26:04 2016 C:\Windows\System32\cfgmgr32.dll
            7ffa0fb80000 57dacb3f Sep 15 09:24:31 2016 C:\Windows\System32\windows.storage.dll
            7ffa0f470000 57899a1f Jul 15 19:21:19 2016 C:\Windows\System32\powrprof.dll
            7ffa12f60000 57899904 Jul 15 19:16:36 2016 C:\Windows\System32\advapi32.dll
            7ffa0f4c0000 57899b97 Jul 15 19:27:35 2016 C:\Windows\System32\kernel.appcore.dll
            7ffa10260000 57899893 Jul 15 19:14:43 2016 C:\Windows\System32\shcore.dll
            7ffa0f4e0000 57899b70 Jul 15 19:26:56 2016 C:\Windows\System32\profapi.dll
            7ffa0f0e0000 57cf9eb1 Sep 06 21:59:29 2016 C:\Windows\SYSTEM32\SspiCli.dll
            7ffa0eaf0000 57899b1c Jul 15 19:25:32 2016 C:\Windows\SYSTEM32\USERENV.dll
            7ffa09f70000 57899ac5 Jul 15 19:24:05 2016 C:\Windows\SYSTEM32\MPR.dll
            7ffa12190000 57899b30 Jul 15 19:25:52 2016 C:\Windows\System32\IMM32.DLL
            7ffa12ac0000 57899a03 Jul 15 19:20:51 2016 C:\Windows\System32\PSAPI.DLL
            7ff9fdd70000 58c075cc Mar 08 13:21:16 2017 C:\Program Files (x86)\Google\Chrome\Application\57.0.2987.98\chrome_elf.dll
            7ffa04510000 57899b7f Jul 15 19:27:11 2016 C:\Windows\SYSTEM32\VERSION.dll
            7ffa0de40000 57899ae3 Jul 15 19:24:35 2016 C:\Windows\SYSTEM32\WINMM.dll
            7ffa094f0000 5801a4d7 Oct 14 20:39:03 2016 C:\Windows\SYSTEM32\WINHTTP.dll
            7ffa0dda0000 57899ade Jul 15 19:24:30 2016 C:\Windows\SYSTEM32\WINMMBASE.dll
            7ffa0ef00000 57899bc7 Jul 15 19:28:23 2016 C:\Windows\SYSTEM32\CRYPTBASE.DLL
    SubSystemData:     0000000000000000
    ProcessHeap:       0000016762370000
    ProcessParameters: 00000167623719e0
    CurrentDirectory:  'C:\Program Files (x86)\Windows Kits\10\Debuggers\'
    WindowTitle:  'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
    ImageFile:    'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
    CommandLine:  '"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"'
    DllPath:      '< Name not readable >'
    Environment:  0000016762370dd0
        =::=::\
        ALLUSERSPROFILE=C:\ProgramData
        APPDATA=C:\Users\scott\AppData\Roaming
        CommonProgramFiles=C:\Program Files\Common Files
        CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
        CommonProgramW6432=C:\Program Files\Common Files
        COMPUTERNAME=DESKTOP-RU76NQ0
        ComSpec=C:\Windows\system32\cmd.exe
        FPS_BROWSER_APP_PROFILE_STRING=Internet Explorer
        FPS_BROWSER_USER_PROFILE_STRING=Default
        HOMEDRIVE=C:
        HOMEPATH=\Users\scott
        LOCALAPPDATA=C:\Users\scott\AppData\Local
        LOGONSERVER=\\WIN-GKQ59H4SL9O
        NUMBER_OF_PROCESSORS=1
        OS=Windows_NT
        Path=C:\Program Files (x86)\Windows Kits\10\Debuggers\x64;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Users\scott\AppData\Local\Microsoft\WindowsApps;
        PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
        PROCESSOR_ARCHITECTURE=AMD64
        PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 63 Stepping 2, GenuineIntel
        PROCESSOR_LEVEL=6
        PROCESSOR_REVISION=3f02
        ProgramData=C:\ProgramData
        ProgramFiles=C:\Program Files
        ProgramFiles(x86)=C:\Program Files (x86)
        ProgramW6432=C:\Program Files
        PSModulePath=C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules
        PUBLIC=C:\Users\Public
        SESSIONNAME=Console
        SystemDrive=C:
        SystemRoot=C:\Windows
        TEMP=C:\Users\scott\AppData\Local\Temp
        TMP=C:\Users\scott\AppData\Local\Temp
        USERDOMAIN=DESKTOP-RU76NQ0
        USERDOMAIN_ROAMINGPROFILE=DESKTOP-RU76NQ0
        USERNAME=scott
        USERPROFILE=C:\Users\scott
        WINDBG_DIR=C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
        windir=C:\Windows

So, looks like we're getting shimmed for ConfigurePTPScrolling whatever that is, which in turn causes the earlier-than-us DLL loads.
compat.png
68.7 KB View Download
Cc: jsc...@chromium.org robliao@chromium.org
I'm going to guess not Peer-To-Peer Scolling. How about Precision Touch(p)ad https://msdn.microsoft.com/en-us/windows/hardware/commercialize/design/component-guidelines/precision-touchpad-tests .

Anyone know anything about precision touchpads, and how we might avoid being shimmed for them? Otherwise, we may as well remove chrome_elf as it's not doing anything on 10.
Labels: -Pri-3 ReleaseBlock-Stable M-59 OS-Windows Pri-1
I tried this in build/win/compatibility.manifest

      <windowsSettings>
        <highResolutionScrollingAware
          xmlns="http://schemas.microsoft.com/SMI/2013/WindowsSettings">
            true
        </highResolutionScrollingAware>

        <ultraHighResolutionScrollingAware
          xmlns="http://schemas.microsoft.com/SMI/2013/WindowsSettings">
            true
        </ultraHighResolutionScrollingAware>
      </windowsSettings>

(and also setting it to false) but doesn't make any difference either way, we still get shimmed.
Per Rob, trying to rename chrome.exe to khrome.exe changes things slightly for the better, but we still get apphelp and so advapi32 too early.

CommandLine: out\release\khrome.exe

************* Symbol Path validation summary **************
Response                         Time (ms)     Location
Deferred                                       SRV*c:\Symbols*https://msdl.microsoft.com/download/symbols
Deferred                                       SRV*c:\Symbols*https://chromium-browser-symsrv.commondatastorage.googleapis.com
Deferred                                       srv*c:\stuff\3023-symbols*https://chromium-browser-symsrv.commondatastorage.googleapis.com
Symbol search path is: SRV*c:\Symbols*https://msdl.microsoft.com/download/symbols;SRV*c:\Symbols*https://chromium-browser-symsrv.commondatastorage.googleapis.com;srv*c:\stuff\3023-symbols*https://chromium-browser-symsrv.commondatastorage.googleapis.com
Executable search path is: 
ModLoad: 002d0000 003c6000   chrome.exe
ModLoad: 76ed0000 77053000   ntdll.dll
ModLoad: 75b00000 75be0000   WOW64_IMAGE_SECTION
ModLoad: 75b00000 75be0000   C:\WINDOWS\SysWOW64\KERNEL32.DLL
ModLoad: 73a80000 73c21000   C:\WINDOWS\SysWOW64\KERNELBASE.dll
ModLoad: 73880000 73912000   C:\WINDOWS\SysWOW64\apphelp.dll
ModLoad: 76da0000 76e17000   C:\WINDOWS\SysWOW64\ADVAPI32.dll
ModLoad: 051f0000 05263000   c:\src\cr\src\out\release\chrome_elf.dll


It seems like we need to do some outreach here to Microsoft to determine why we were added, and if there's something we can fix to be removed.
Microsoft seems to have recently added a blanket policy to Chrome.

If the application matches the following, the shim will be applied:
 * Filename: chrome.exe
 * FILE_DESCRIPTION: Google Chrome
 * COMPANY_NAME: Google Inc.

Creating a Hello World like program with the above will result in running with the patched environment.

We'll need to talk to Microsoft to update the database.
Components: Internals>Core
Labels: chrome_elf
<sigh> Well that explains why this behaviour doesn't get flagged on the chrome_elf tests on win10 bot.  It doesn't match the app filter - we don't test chrome_elf with a full chrome.exe.  I'd be very interested to know why they added us to some rando shim policy.

It might be worth adding some sort of test that launches one full chrome.exe process during chrome_elf tests.  Something like ChromeElfLoadSanityTest that checks for user32.dll.


That's what I saw looking at the appcompat DB in #c6 too, but even when the binary is renamed we still get advapi32 before chrome_elf.dll due to apphelp.dll (see #c10).

Do we know why that's happening and why it's not caught by tests?


Did we get Microsoft to engage on this or should we ping them again?
Status: Available (was: Untriaged)
Hey Rob, Scott.... I just want to confirm that one of you is reaching out to MS about the shimming for scrolling/touchpad.  I had kind of assumed you were?  Please assign this ticket to yourself if you're communicating with Microsoft about the shimming.


WRT #13, I've opened another ticket (crbug/708756) for advapi32/usermode import dependencies sneaking in.

Tests are here: https://cs.chromium.org/chromium/src/chrome_elf/elf_imports_unittest.cc

Looks like advapi32 was unfortunately added to the chrome_elf import whitelist in the tests in: https://chromium.googlesource.com/chromium/src/+/69086d7673ae14680c6451cec3b1160942885327

Let's move that discussion to the new ticket and leave this ticket for the Microsoft shimming (that we have no control over from inside chrome and elf)!
I get the feeling apphelp.dll might be from a shim/appcompat situation as well.  Just based on the tests not blowing up.
I don't think anyone has made any inquiries to Microsoft.
Confirmed: apphelp.dll is the AppCompat API dll (>=vista).

https://msdn.microsoft.com/en-us/library/bb432182(v=vs.85).aspx
Labels: -ReleaseBlock-Stable
Cc: brucedaw...@chromium.org
brucedawson will be engaging with Microsoft support for this issue.
Support request 117040715574340 created. I will update this bug as I learn more.
Components: -Internals>Core Internals>EarlyLoadingFramework
Project Member

Comment 23 by sheriffbot@chromium.org, May 7 2018

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Microsoft's eventual reply, from August 2017, was:

"The ConfigurePTPScrolling shim has been removed from RS3 builds on or after 16259 and your input lead has been directly engaged with our input team."

So, as of the Fall Creators Update this issue should be resolved. Is there anything else we need to do?

Status: Fixed (was: Untriaged)
Marking as fixed. Reopen with details if needed.
An integration test would be nice, but I guess since we're mostly at the whim of the OS it'd be difficult to run in all the configs it'd need to run.

Sign in to add a comment