DescriptionDon't send unnecessary ExtensionMsg_Loaded IPCs.
Each time ExtensionMsg_Loaded is sent it re-creates the set of Extensions it
gives, invalidating the existing ones. This means that anything that holds onto
Extensions for long periods of time - like ScriptContextSet - can end up in
situations where they have an Extension with the same ID as an installed
Extension, but different in pointer equality.
It turns out that we send ExtensionMsg_Loaded every time a RenderViewHost is
created, but it should only be send every time a RenderProcessHost is created,
because the Extension sets are process-wide.
While this bug is fundamental, one way it manifests itself is by the
chrome.permissions.request API not updating the JavaScript context when
permissions are granted.
BUG=435141
Committed: https://crrev.com/8bcbc759e797556b4bd4ec80d22e597a8ca12695
Cr-Commit-Position: refs/heads/master@{#332720}
Patch Set 1 #Patch Set 2 : test fixes #Patch Set 3 : a test #
Total comments: 17
Patch Set 4 : commnets #Messages
Total messages: 13 (3 generated)
|