| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/extensions/extension_message_service.h" | 5 #include "chrome/browser/extensions/extension_message_service.h" |
| 6 | 6 |
| 7 #include "base/atomic_sequence_num.h" | 7 #include "base/atomic_sequence_num.h" |
| 8 #include "base/json/json_writer.h" | 8 #include "base/json/json_writer.h" |
| 9 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 70 args.Set(0, Value::CreateIntegerValue(dest_port_id)); | 70 args.Set(0, Value::CreateIntegerValue(dest_port_id)); |
| 71 args.Set(1, Value::CreateStringValue(channel_name)); | 71 args.Set(1, Value::CreateStringValue(channel_name)); |
| 72 args.Set(2, Value::CreateStringValue(tab_json)); | 72 args.Set(2, Value::CreateStringValue(tab_json)); |
| 73 args.Set(3, Value::CreateStringValue(source_extension_id)); | 73 args.Set(3, Value::CreateStringValue(source_extension_id)); |
| 74 args.Set(4, Value::CreateStringValue(target_extension_id)); | 74 args.Set(4, Value::CreateStringValue(target_extension_id)); |
| 75 CHECK(port.sender); | 75 CHECK(port.sender); |
| 76 port.sender->Send( | 76 port.sender->Send( |
| 77 new ExtensionMsg_MessageInvoke( | 77 new ExtensionMsg_MessageInvoke( |
| 78 port.routing_id, | 78 port.routing_id, |
| 79 target_extension_id, | 79 target_extension_id, |
| 80 ExtensionMessageService::kDispatchOnConnect, args, GURL())); | 80 ExtensionMessageService::kDispatchOnConnect, args, GURL(), |
| 81 false)); // Not a user gesture |
| 81 } | 82 } |
| 82 | 83 |
| 83 static void DispatchOnDisconnect( | 84 static void DispatchOnDisconnect( |
| 84 const ExtensionMessageService::MessagePort& port, int source_port_id, | 85 const ExtensionMessageService::MessagePort& port, int source_port_id, |
| 85 bool connection_error) { | 86 bool connection_error) { |
| 86 ListValue args; | 87 ListValue args; |
| 87 args.Set(0, Value::CreateIntegerValue(source_port_id)); | 88 args.Set(0, Value::CreateIntegerValue(source_port_id)); |
| 88 args.Set(1, Value::CreateBooleanValue(connection_error)); | 89 args.Set(1, Value::CreateBooleanValue(connection_error)); |
| 89 port.sender->Send(new ExtensionMsg_MessageInvoke(port.routing_id, | 90 port.sender->Send(new ExtensionMsg_MessageInvoke(port.routing_id, |
| 90 "", ExtensionMessageService::kDispatchOnDisconnect, args, GURL())); | 91 "", ExtensionMessageService::kDispatchOnDisconnect, args, GURL(), |
| 92 false)); // Not a user gesture |
| 91 } | 93 } |
| 92 | 94 |
| 93 static void DispatchOnMessage(const ExtensionMessageService::MessagePort& port, | 95 static void DispatchOnMessage(const ExtensionMessageService::MessagePort& port, |
| 94 const std::string& message, int target_port_id) { | 96 const std::string& message, int target_port_id) { |
| 95 port.sender->Send( | 97 port.sender->Send( |
| 96 new ExtensionMsg_DeliverMessage( | 98 new ExtensionMsg_DeliverMessage( |
| 97 port.routing_id, target_port_id, message)); | 99 port.routing_id, target_port_id, message)); |
| 98 } | 100 } |
| 99 | 101 |
| 100 static content::RenderProcessHost* GetExtensionProcess(Profile* profile, | 102 static content::RenderProcessHost* GetExtensionProcess(Profile* profile, |
| (...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 378 | 380 |
| 379 if (current->second->opener.sender == sender) { | 381 if (current->second->opener.sender == sender) { |
| 380 CloseChannelImpl(current, GET_CHANNEL_OPENER_ID(current->first), | 382 CloseChannelImpl(current, GET_CHANNEL_OPENER_ID(current->first), |
| 381 notify_other_port); | 383 notify_other_port); |
| 382 } else if (current->second->receiver.sender == sender) { | 384 } else if (current->second->receiver.sender == sender) { |
| 383 CloseChannelImpl(current, GET_CHANNEL_RECEIVERS_ID(current->first), | 385 CloseChannelImpl(current, GET_CHANNEL_RECEIVERS_ID(current->first), |
| 384 notify_other_port); | 386 notify_other_port); |
| 385 } | 387 } |
| 386 } | 388 } |
| 387 } | 389 } |
| OLD | NEW |