Closed Bug 1091970 Opened 9 years ago Closed 9 years ago

[e10s] Package the shim's "object tag" along with all new CPOWs

Categories

(Core :: JavaScript Engine, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla36
Tracking Status
e10s m4+ ---

People

(Reporter: billm, Assigned: billm)

References

Details

Attachments

(1 file)

Attached patch cache-obj-tagSplinter Review
Whenever the add-on shims wrap an object, they first compute its "object tag". They really just do a few instanceof checks to see if it's a XUL node, a window, a docshell, or whatever. In particular, when the object is a CPOW, we do two instanceof checks. Each one sends a sync IPC message.

Like in bug 1091964, this information is constant for a given object. So this patch just sends the tag along with the CPOW, same as in bug 1091964. I had to make a new interface for doing this.

This patch reduces the number of CPOW IPCs we do on my testcase from 16837 to 8100.
Attachment #8514716 - Flags: review?(mrbkap)
Comment on attachment 8514716 [details] [diff] [review]
cache-obj-tag

Review of attachment 8514716 [details] [diff] [review]:
-----------------------------------------------------------------

::: js/xpconnect/idl/xpccomponents.idl
@@ +441,5 @@
> +     * nsIRemoteTagService.getRemoteObjectTag method. It's sent along
> +     * with the CPOW to the remote process, where it can be fetched
> +     * with this function, getCrossProcessWrapperTag.
> +     */
> +    ACString getCrossProcessWrapperTag(in jsval obj);

Need to bump the IID.
Attachment #8514716 - Flags: review?(mrbkap) → review+
The rooting hazards that this patch was implicated in did not go away after the backout. Relanding.
https://hg.mozilla.org/integration/mozilla-inbound/rev/c97553c13fb6
https://hg.mozilla.org/mozilla-central/rev/c97553c13fb6
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla36
You need to log in before you can comment on or make changes to this bug.