Modern OSs adjust process scheduling based on CPU-boundedness and Interface-boundedness. A process performing a lot of UI tasks requires lower-latency than a CPU-bound process. For this reason, at least on Windows (but probably also Linux and Mac), in e10s, resize events are sent at a much higher rate than non-e10s, where the main process has to do the work to respond to them. This was supposed to be handled by the 'compress' option in IPDL but its duplicate-event test was very imprecise - it only tested the *oldest* message in the queue. This patch searches the messagequeue/deque to remove *any* duplicate. deque::erase is linear but this is a very uncommon case - currently only two compressed IPDL messages exist in the entire code base. Also, these queues are small.