• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 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/extensions/extension_messages.h"
10 
11 namespace chromeos {
12 
~BalloonViewHost()13 BalloonViewHost::~BalloonViewHost() {
14   STLDeleteContainerPairSecondPointers(message_callbacks_.begin(),
15                                        message_callbacks_.end());
16 }
17 
AddWebUIMessageCallback(const std::string & message,MessageCallback * callback)18 bool BalloonViewHost::AddWebUIMessageCallback(
19     const std::string& message,
20     MessageCallback* callback) {
21   std::pair<MessageCallbackMap::iterator, bool> ret;
22   ret = message_callbacks_.insert(std::make_pair(message, callback));
23   if (!ret.second)
24     delete callback;
25   return ret.second;
26 }
27 
ProcessWebUIMessage(const ExtensionHostMsg_DomMessage_Params & params)28 void BalloonViewHost::ProcessWebUIMessage(
29     const ExtensionHostMsg_DomMessage_Params& params) {
30   ::BalloonViewHost::ProcessWebUIMessage(params);
31 
32   // Look up the callback for this message.
33   MessageCallbackMap::const_iterator callback =
34       message_callbacks_.find(params.name);
35   if (callback == message_callbacks_.end())
36     return;
37 
38   // Run callback.
39   callback->second->Run(&params.arguments);
40 }
41 
42 }  // namespace chromeos
43