Closed
Bug 532215
Opened 15 years ago
Closed 10 years ago
Plugins: Add BROWSER/PLUGIN-object state to PPluginScriptableObject
Categories
(Core :: IPC, defect)
Core
IPC
Tracking
()
RESOLVED
INCOMPLETE
People
(Reporter: cjones, Unassigned)
References
(Depends on 1 open bug, Blocks 1 open bug)
Details
PPluginInstance really represents browser->plugin proxy objects, and plugin->browser proxy objects. Understandably though, it's a single protocol to keep the NPRuntime methods synchronized. I'm going to codify these rules into a state machine; the basic idea is
protocol Object {
both:
// all NPRuntime messages
start state BROWSER_OBJECT:
recv ...; // only take messages from the plugin
recv __delete__;
start state PLUGIN_OBJECT:
send ...; // only send messages from the browser
send __delete__;
This protocol means that upon creating a PPluginInstance, C++ must choose whether it's a BROWSER_OBJECT or PLUGIN_OBJECT, and thereafter never the twain shall meet.
Reporter | ||
Comment 1•15 years ago
|
||
Oops, brain-dead typo.
Summary: Plugins: Add BROWSER/PLUGIN-object state to PPluginInstance → Plugins: Add BROWSER/PLUGIN-object state to PPluginScriptableObject
Reporter | ||
Comment 2•15 years ago
|
||
(In reply to comment #0)
> protocol Object {
> both:
> // all NPRuntime messages
>
> start state BROWSER_OBJECT:
> recv ...; // only take messages from the plugin
> recv __delete__;
>
> start state PLUGIN_OBJECT:
> send ...; // only send messages from the browser
> send __delete__;
This protocol is all wrong, because all messages *can* go both ways, except the destructor. Needs a little more thought.
Updated•10 years ago
|
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → INCOMPLETE
You need to log in
before you can comment on or make changes to this bug.
Description
•