balloon_view_host.cc revision bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293
1// Copyright (c) 2010 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "chrome/browser/chromeos/notifications/balloon_view_host.h" 6 7#include "base/stl_util-inl.h" 8#include "base/values.h" 9#include "chrome/common/render_messages.h" 10#include "chrome/common/render_messages_params.h" 11 12namespace chromeos { 13 14BalloonViewHost::~BalloonViewHost() { 15 STLDeleteContainerPairSecondPointers(message_callbacks_.begin(), 16 message_callbacks_.end()); 17} 18 19bool BalloonViewHost::AddDOMUIMessageCallback( 20 const std::string& message, 21 MessageCallback* callback) { 22 std::pair<MessageCallbackMap::iterator, bool> ret; 23 ret = message_callbacks_.insert(std::make_pair(message, callback)); 24 if (!ret.second) 25 delete callback; 26 return ret.second; 27} 28 29void BalloonViewHost::ProcessDOMUIMessage( 30 const ViewHostMsg_DomMessage_Params& params) { 31 ::BalloonViewHost::ProcessDOMUIMessage(params); 32 33 // Look up the callback for this message. 34 MessageCallbackMap::const_iterator callback = 35 message_callbacks_.find(params.name); 36 if (callback == message_callbacks_.end()) 37 return; 38 39 // Run callback. 40 callback->second->Run(¶ms.arguments); 41} 42 43} // namespace chromeos 44