V8DOMWindowShell lazily sets static hooks in V8 that call back into WebCore. WebKit::shutdown() should clear these, so that V8 doesn't crash if it continues being used after that time.
Created attachment 59082 [details]
I'm concerned that the pattern of shutting down WebKit and re-initializing it is going to be hard to support in the future since no other port requires it. It will be fragile to support. We don't need it for Chrome. We only need it because our unit_tests are constructed to initialize, shutdown, and re-initialize WebKit. Perhaps our unit_tests should change instead. Note that webkit_unit_tests initializes WebKit once for the entire process. That is the only currently supported usage.
I notice that the comments in WebKit.h do not make this clear, and the implementation of WebKit::initialize does not assert that initialization is a one-time deal. It probably should have had such a check to prevent abuse.
Ok, thanks. I will track down the paths that are causing initialization in Chrome's unit tests.
Committed r61466: <http://trac.webkit.org/changeset/61466>
Reverted r61466 for reason:
Landed wrong change
Committed r61467: <http://trac.webkit.org/changeset/61467>
Comment on attachment 59082 [details]
As discussed on chromium-dev, I think our current plan is to make the unit tests not assume they can restart WebKit.
V8 is gone from WebKit.