Utility process - detailed architecture overview

  • Startup
    • the entry point for the Utility process
  • Utility
    • utility box represents the Utility Main
  • Loop
    • MainMessageLoop
      • is used to process events for a particular thread
      • puts the incoming messages, tasks to a queue
      • pops a task from the queue and starts it
      • strong relationship with the IPC communication framework
      • has task reentrancy protection
        • second task cannot be started until first task finishes
  • IPC / Mojo
    • framework which is used for inter-process communication
    • connects directly to the MainMessageLoop
    • provides communication channels through which the messages can be sent
    • message creating, sending and receiving
    • asynchronous message handling
  • Extensions
    • ExtensionsHandler
      • dispatches IPCs for Chrome extensions utility messages
    • UtilityHandler
      • a handler for extensions-related IPC from within utility processes
    • unpack extensions
      • extensions::Unpacker
        • this class unpacks an extension
        • it is designed to be used in a sandboxed child process
        • various bits of the extension gets parsed, then it is reported back to the browser process, who then transcodes the pre-parsed bits and writes them back out to disk for later use
  • ResourceBundle
    • initialize the ResourceBundle for this process
    • returns the language selected
  • icu
    • initialize icu
    • create default TimeZone
  • V8Initializer
    • initialize V8
      • load V8 natives from user provided platform file descriptors
      • without the natives the startup cannot continue

Sources:


© 2016 University of Szeged, DSE; Sprocket Team