DescriptionBrowser Plugin: Allocate Instance IDs in BrowserPluginEmbedder instead of BrowserPluginManager
This patch is a step towards enabling window.open.
How it works:
1. On the initial navigation, BrowserPlugin asynchronously requests a new Instance ID from the browser process.
2. The request and response BrowserPluginHostMsg_AllocateInstanceIDRequest, and BrowserPluginMsg_AllocateInstanceIDResponse are managed by BrowserPluginManager.
3. Once the browser process has allocated an instance ID and relayed it to BrowserPlugin, then BrowserPlugin collects all the current state of BrowserPlugin and stores it in a BrowserPluginHostMsg_CreateGuest_Params struct and ships it to the browser process using the new instance ID to create a new guest with that initial state. Initial state includes the current value of the src attribute.
4. Once BrowserPlugin has an instance ID, it will begin sending IPCs to the browser process as state changes, rather than merely accumulating state changes in member variables.
BUG=140316
Test=BrowserPluginHostTest.*, BrowserPluginTest.*, WebViewTest.*
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=178167
Patch Set 1 #Patch Set 2 : Diff against simplified focus #
Total comments: 24
Patch Set 3 : Addressed Istiaque's comments #
Total comments: 15
Patch Set 4 : Addressed creis' comments #
Total comments: 6
Patch Set 5 : Fixed nits #
Total comments: 2
Patch Set 6 : Fixed nit #Patch Set 7 : Fixed tests #Patch Set 8 : Merged with ToT #Messages
Total messages: 17 (0 generated)
|