| Index: chrome/browser/extensions/api/messaging/extension_message_port.cc
|
| diff --git a/chrome/browser/extensions/api/messaging/extension_message_port.cc b/chrome/browser/extensions/api/messaging/extension_message_port.cc
|
| index e224597b093424844c9b416d7f52862a61380e79..72acfee8d9c75e14ba484195f3b14fba26210510 100644
|
| --- a/chrome/browser/extensions/api/messaging/extension_message_port.cc
|
| +++ b/chrome/browser/extensions/api/messaging/extension_message_port.cc
|
| @@ -114,6 +114,23 @@ ExtensionMessagePort::ExtensionMessagePort(
|
|
|
| ExtensionMessagePort::~ExtensionMessagePort() {}
|
|
|
| +void ExtensionMessagePort::RemoveCommonFrames(const MessagePort& port) {
|
| + // Avoid overlap in the set of frames to make sure that it does not matter
|
| + // when UnregisterFrame is called.
|
| + for (std::set<content::RenderFrameHost*>::iterator it = frames_.begin();
|
| + it != frames_.end(); ) {
|
| + if (port.HasFrame(*it)) {
|
| + frames_.erase(it++);
|
| + } else {
|
| + ++it;
|
| + }
|
| + }
|
| +}
|
| +
|
| +bool ExtensionMessagePort::HasFrame(content::RenderFrameHost* rfh) const {
|
| + return frames_.find(rfh) != frames_.end();
|
| +}
|
| +
|
| bool ExtensionMessagePort::IsValidPort() {
|
| return !frames_.empty();
|
| }
|
|
|