• ben@chromium.org's avatar
    Attempt at cleaning up a bunch of shutdown issues. · 4e72e787
    ben@chromium.org authored
    1. Defers command buffer destruction until after the native viewport client has had a chance to cleanup.
    2. Destroy the compositor before quitting the view manager message loop.
    3. Make various NodeObservers properly unhook themselves as node/view observers during destruction and view swapping.
    4. Adds a "ViewManagerDisconnected" method to ViewManagerDelegate to allow the application to exit when the connection to the view manager is closed. This is necessary in addition to root monitoring because for some connections (e.g. the root node->window manager) the root node is not destroyed. I'm not entirely happy with imposing this burden on application developers but I will try and tidy this up later.
    5. Instantiate nested AtExitManagers only in a static build. In the component build we can use the shell's.
    6. Adds a callback to notify the ViewManagerInitServiceImpl when the NativeViewport is destroyed. The VMISI uses this callback to close its connection to the view manager, which triggers the view manager to shut down.
    
    Since this still crashes, I can't test this yet.
    
    R=sky@chromium.org
    http://crbug.com/325901
    
    Review URL: https://codereview.chromium.org/372273004
    
    git-svn-id: svn://svn.chromium.org/chrome/trunk/src@282683 0039d316-1c4b-4281-b951-d872f2087c98
    4e72e787
native_widget_view_manager.h 2.18 KB