[tbb-bugs] #28874 [Applications/Tor Browser]: https://browserleaks.com/webgl crashes tab on 64bit Tor Browser for Windows

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Dec 20 11:14:38 UTC 2018


#28874: https://browserleaks.com/webgl crashes tab on 64bit Tor Browser for Windows
---------------------------------------------+-----------------------------
 Reporter:  gk                               |          Owner:  tbb-team
     Type:  defect                           |         Status:
                                             |  needs_information
 Priority:  High                             |      Milestone:
Component:  Applications/Tor Browser         |        Version:
 Severity:  Normal                           |     Resolution:
 Keywords:  tbb-crash, TorBrowserTeam201812  |  Actual Points:
Parent ID:                                   |         Points:
 Reviewer:                                   |        Sponsor:
---------------------------------------------+-----------------------------

Comment (by gk):

 Thanks!

 Replying to [comment:6 gl]:
 > ERR: ensureInitialized(141): D3D compiler module not found.

 I guess that's the reason for the trouble you are seeing. The relevant
 code around it is:
 {{{
 #if !defined(ANGLE_ENABLE_WINDOWS_STORE)
 #if defined(ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES)
     // Find a D3DCompiler module that had already been loaded based on a
 predefined list of versions.
     static const char *d3dCompilerNames[] =
 ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES;

     for (size_t i = 0; i < ArraySize(d3dCompilerNames); ++i)
     {
         if (GetModuleHandleExA(0, d3dCompilerNames[i],
 &mD3DCompilerModule))
         {
             break;
         }
     }
 #endif  // ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES

     if (!mD3DCompilerModule)
     {
         // Load the version of the D3DCompiler DLL associated with the
 Direct3D version ANGLE was built with.
         mD3DCompilerModule = LoadLibrary(D3DCOMPILER_DLL);
     }

     if (!mD3DCompilerModule)
     {
         ERR() << "D3D compiler module not found.";
         return gl::OutOfMemory() << "D3D compiler module not found.";
     }

     mD3DCompileFunc =
 reinterpret_cast<pD3DCompile>(GetProcAddress(mD3DCompilerModule,
 "D3DCompile"));
     ASSERT(mD3DCompileFunc);

     mD3DDisassembleFunc =
 reinterpret_cast<pD3DDisassemble>(GetProcAddress(mD3DCompilerModule,
 "D3DDisassemble"));
     ASSERT(mD3DDisassembleFunc);

 #else
     // D3D Shader compiler is linked already into this module, so the
 export
     // can be directly assigned.
     mD3DCompilerModule = nullptr;
     mD3DCompileFunc = reinterpret_cast<pD3DCompile>(D3DCompile);
     mD3DDisassembleFunc =
 reinterpret_cast<pD3DDisassemble>(D3DDisassemble);
 #endif
 }}}
 in HLSLCompiler.cpp

 We are not defining `ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES` in
 https://dxr.mozilla.org/mozilla-esr60/source/gfx/angle/update-
 angle.py#257. But I wonder where `D3DCOMPILER_DLL` is supposed to come
 from in our case. From `d3dcompiler.rs`??

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/28874#comment:7>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tbb-bugs mailing list