Open
Bug 1054744
Opened 10 years ago
Updated 2 years ago
Replace use of boolean flags in MessageChannel with ChannelFlags apis
Categories
(Core :: IPC, defect, P3)
Tracking
()
NEW
People
(Reporter: jimm, Unassigned)
References
Details
Attachments
(1 file)
(deleted),
patch
|
billm
:
review+
|
Details | Diff | Splinter Review |
Follow up after bug 874437 sticks, get rid of boolean flags that have piled up in MessageChannel.
Reporter | ||
Comment 1•10 years ago
|
||
Reporter | ||
Updated•10 years ago
|
Attachment #8474228 -
Flags: review?(wmccloskey)
Comment 2•10 years ago
|
||
+ MOZ_ASSERT(aFlags & REQUIRE_URGENT_SCRIPT_BLOCKING ? NS_IsMainThread() : true);
+ mFlags |= aFlags;
Can any flag changes happen while the channel is in operation? Because if any changes happen after initial channel setup, then this is a giant read/write footgun. mFlags isn't an atomic, and |= operations can't be atomic anyway.
Comment on attachment 8474228 [details] [diff] [review]
patch v.1
Review of attachment 8474228 [details] [diff] [review]:
-----------------------------------------------------------------
::: ipc/glue/MessageChannel.cpp
@@ +1709,5 @@
> PostErrorNotifyTask();
> }
>
> void
> +MessageChannel::SetChannelFlags(uint32_t aFlags)
Maybe we should assert in this function and the next that we haven't opened the channel yet. I think !mLink should work. Then we'll have to move the existing SetChannelFlags above the Open calls, but that looks easy. Hopefully that will allay bsmedberg's concern.
@@ +1714,2 @@
> {
> + MOZ_ASSERT(aFlags & REQUIRE_URGENT_SCRIPT_BLOCKING ? NS_IsMainThread() : true);
Can you put this in ClearFlags as well?
::: ipc/glue/MessageChannel.h
@@ +92,5 @@
> // WindowsMessageLoop code should enable deferred native message
> // handling to prevent deadlocks. Should only be used for protocols
> // that manage child processes which might create native UI, like
> // plugins.
> + REQUIRE_DEFERRED_MESSAGE_PROTECTION = 1 << 0,
The REQUIRE_ prefix on these doesn't really seem necessary. Can we just remove it and change REQUIRE_DEFAULT to DEFAULT_FLAGS? Also, can you please put an empty line after each flag?
Attachment #8474228 -
Flags: review?(wmccloskey) → review+
Reporter | ||
Updated•7 years ago
|
Assignee: jmathies → nobody
Priority: -- → P3
Updated•2 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•