OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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_function_dispatcher.h" | 5 #include "chrome/browser/extensions/extension_function_dispatcher.h" |
6 | 6 |
7 #include "base/json_reader.h" | 7 #include "base/json_reader.h" |
8 #include "base/json_writer.h" | 8 #include "base/json_writer.h" |
9 #include "base/process_util.h" | 9 #include "base/process_util.h" |
10 #include "base/singleton.h" | 10 #include "base/singleton.h" |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 | 45 |
46 FactoryRegistry* FactoryRegistry::instance() { | 46 FactoryRegistry* FactoryRegistry::instance() { |
47 return Singleton<FactoryRegistry>::get(); | 47 return Singleton<FactoryRegistry>::get(); |
48 } | 48 } |
49 | 49 |
50 FactoryRegistry::FactoryRegistry() { | 50 FactoryRegistry::FactoryRegistry() { |
51 // Register all functions here. | 51 // Register all functions here. |
52 | 52 |
53 // Tabs | 53 // Tabs |
54 factories_["GetWindows"] = &NewExtensionFunction<GetWindowsFunction>; | 54 factories_["GetWindows"] = &NewExtensionFunction<GetWindowsFunction>; |
| 55 factories_["CreateWindow"] = &NewExtensionFunction<CreateWindowFunction>; |
55 factories_["GetTabsForWindow"] = | 56 factories_["GetTabsForWindow"] = |
56 &NewExtensionFunction<GetTabsForWindowFunction>; | 57 &NewExtensionFunction<GetTabsForWindowFunction>; |
57 factories_["GetTab"] = &NewExtensionFunction<GetTabFunction>; | 58 factories_["GetTab"] = &NewExtensionFunction<GetTabFunction>; |
58 factories_["CreateTab"] = &NewExtensionFunction<CreateTabFunction>; | 59 factories_["CreateTab"] = &NewExtensionFunction<CreateTabFunction>; |
59 factories_["UpdateTab"] = &NewExtensionFunction<UpdateTabFunction>; | 60 factories_["UpdateTab"] = &NewExtensionFunction<UpdateTabFunction>; |
60 factories_["MoveTab"] = &NewExtensionFunction<MoveTabFunction>; | 61 factories_["MoveTab"] = &NewExtensionFunction<MoveTabFunction>; |
61 factories_["RemoveTab"] = &NewExtensionFunction<RemoveTabFunction>; | 62 factories_["RemoveTab"] = &NewExtensionFunction<RemoveTabFunction>; |
62 | 63 |
63 // Bookmarks | 64 // Bookmarks |
64 factories_["GetBookmarks"] = &NewExtensionFunction<GetBookmarksFunction>; | 65 factories_["GetBookmarks"] = &NewExtensionFunction<GetBookmarksFunction>; |
(...skipping 25 matching lines...) Expand all Loading... |
90 | 91 |
91 // ExtensionFunctionDispatcher ------------------------------------------------- | 92 // ExtensionFunctionDispatcher ------------------------------------------------- |
92 | 93 |
93 void ExtensionFunctionDispatcher::GetAllFunctionNames( | 94 void ExtensionFunctionDispatcher::GetAllFunctionNames( |
94 std::vector<std::string>* names) { | 95 std::vector<std::string>* names) { |
95 FactoryRegistry::instance()->GetAllNames(names); | 96 FactoryRegistry::instance()->GetAllNames(names); |
96 } | 97 } |
97 | 98 |
98 ExtensionFunctionDispatcher::ExtensionFunctionDispatcher( | 99 ExtensionFunctionDispatcher::ExtensionFunctionDispatcher( |
99 RenderViewHost* render_view_host, | 100 RenderViewHost* render_view_host, |
| 101 Browser* browser, |
100 const std::string& extension_id) | 102 const std::string& extension_id) |
101 : render_view_host_(render_view_host), | 103 : render_view_host_(render_view_host), |
| 104 browser_(browser), |
102 extension_id_(extension_id) { | 105 extension_id_(extension_id) { |
103 } | 106 } |
104 | 107 |
105 void ExtensionFunctionDispatcher::HandleRequest(const std::string& name, | 108 void ExtensionFunctionDispatcher::HandleRequest(const std::string& name, |
106 const std::string& args, | 109 const std::string& args, |
107 int callback_id) { | 110 int callback_id) { |
108 scoped_ptr<Value> value; | 111 scoped_ptr<Value> value; |
109 if (!args.empty()) { | 112 if (!args.empty()) { |
110 JSONReader reader; | 113 JSONReader reader; |
111 value.reset(reader.JsonToValue(args, false, false)); | 114 value.reset(reader.JsonToValue(args, false, false)); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
147 } else { | 150 } else { |
148 NOTREACHED(); | 151 NOTREACHED(); |
149 base::KillProcess(render_view_host_->process()->process().handle(), | 152 base::KillProcess(render_view_host_->process()->process().handle(), |
150 ResultCodes::KILLED_BAD_MESSAGE, false); | 153 ResultCodes::KILLED_BAD_MESSAGE, false); |
151 } | 154 } |
152 } | 155 } |
153 | 156 |
154 Profile* ExtensionFunctionDispatcher::profile() { | 157 Profile* ExtensionFunctionDispatcher::profile() { |
155 return render_view_host_->process()->profile(); | 158 return render_view_host_->process()->profile(); |
156 } | 159 } |
OLD | NEW |