Just a recap of my understanding of how we do our book keeping here: 1. `NotifyTabDestroying` is meant to mark a content process as dead, if `mNumDestroyingTabs` reaches the total number of `BrowserParent`s managed by this `ContentParent`. Only in this case it will start the `ForceKillTimer` and mark it as dead. 2. `NotifyTabDestroyed` is meant to actually kill the process if the number of managed `BrowserParent`s reached 1 The symptoms we see in the crash could well apply to a situation where we did 1. but 2. did not happen or did not find the right number of expected browser parents for whatever reasons and thus did not trigger the actual shutdown. But I cannot see anything obvious here that would make us fail our book keeping here, assuming that `MarkAsDead` will always prevent us from adding a new `BrowserParent` and that `BrowserParent::ActorDestroy` is triggered.
Bug 1789803 Comment 6 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
Just a recap of my understanding of how we do our book keeping here: 1. `NotifyTabDestroying` is meant to mark a content process as dead, if `mNumDestroyingTabs` reaches the total number of `BrowserParent`s managed by this `ContentParent`. Only in this case it will start the `ForceKillTimer` and mark it as dead. 2. `NotifyTabDestroyed` is meant to actually shutdown the process if the number of managed `BrowserParent`s reached 1 The symptoms we see in the crash could well apply to a situation where we did 1. but 2. did not happen or did not find the right number of expected browser parents for whatever reasons and thus did not trigger the actual shutdown. But I cannot see anything obvious here that would make us fail our book keeping here, assuming that `MarkAsDead` will always prevent us from adding a new `BrowserParent` and that `BrowserParent::ActorDestroy` is triggered.
Just a recap of my understanding of how we do our book keeping here: 1. `NotifyTabDestroying` is meant to mark a content process as dead, if `mNumDestroyingTabs` reaches the total number of `BrowserParent`s managed by this `ContentParent`. Only in this case it will start the `ForceKillTimer` and mark it as dead. 2. `NotifyTabDestroyed` is meant to actually shutdown the process if the number of managed `BrowserParent`s reached 1 The symptoms we see in the crash could well apply to a situation where we did 1. but 2. did not happen or did not find the right number of expected browser parents for whatever reasons and thus did not trigger the actual shutdown. But I cannot see anything obvious here that would make us fail our book keeping here, assuming that `MarkAsDead` will always prevent us from adding a new `BrowserParent` and that `BrowserParent::ActorDestroy` is triggered for all instances.