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 // Custom binding for the omnibox API. Only injected into the v8 contexts | 5 // Custom binding for the omnibox API. Only injected into the v8 contexts |
6 // for extensions which have permission for the omnibox API. | 6 // for extensions which have permission for the omnibox API. |
7 | 7 |
8 var binding = require('binding').Binding.create('omnibox'); | 8 var binding = require('binding').Binding.create('omnibox'); |
9 | 9 |
10 var chromeHidden = requireNative('chrome_hidden').GetChromeHidden(); | 10 var chromeHidden = requireNative('chrome_hidden').GetChromeHidden(); |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 | 80 |
81 return result; | 81 return result; |
82 } | 82 } |
83 | 83 |
84 binding.registerCustomHook(function(bindingsAPI) { | 84 binding.registerCustomHook(function(bindingsAPI) { |
85 var apiFunctions = bindingsAPI.apiFunctions; | 85 var apiFunctions = bindingsAPI.apiFunctions; |
86 | 86 |
87 apiFunctions.setHandleRequest('setDefaultSuggestion', function(details) { | 87 apiFunctions.setHandleRequest('setDefaultSuggestion', function(details) { |
88 var parseResult = parseOmniboxDescription(details.description); | 88 var parseResult = parseOmniboxDescription(details.description); |
89 sendRequest(this.name, [parseResult], this.definition.parameters); | 89 sendRequest(this.name, [parseResult], this.definition.parameters); |
90 }); | 90 }, true); |
91 | 91 |
92 apiFunctions.setUpdateArgumentsPostValidate( | 92 apiFunctions.setUpdateArgumentsPostValidate( |
93 'sendSuggestions', function(requestId, userSuggestions) { | 93 'sendSuggestions', function(requestId, userSuggestions) { |
94 var suggestions = []; | 94 var suggestions = []; |
95 for (var i = 0; i < userSuggestions.length; i++) { | 95 for (var i = 0; i < userSuggestions.length; i++) { |
96 var parseResult = parseOmniboxDescription( | 96 var parseResult = parseOmniboxDescription( |
97 userSuggestions[i].description); | 97 userSuggestions[i].description); |
98 parseResult.content = userSuggestions[i].content; | 98 parseResult.content = userSuggestions[i].content; |
99 suggestions.push(parseResult); | 99 suggestions.push(parseResult); |
100 } | 100 } |
101 return [requestId, suggestions]; | 101 return [requestId, suggestions]; |
102 }); | 102 }); |
103 }); | 103 }); |
104 | 104 |
105 chromeHidden.Event.registerArgumentMassager('omnibox.onInputChanged', | 105 chromeHidden.Event.registerArgumentMassager('omnibox.onInputChanged', |
106 function(args, dispatch) { | 106 function(args, dispatch) { |
107 var text = args[0]; | 107 var text = args[0]; |
108 var requestId = args[1]; | 108 var requestId = args[1]; |
109 var suggestCallback = function(suggestions) { | 109 var suggestCallback = function(suggestions) { |
110 chrome.omnibox.sendSuggestions(requestId, suggestions); | 110 chrome.omnibox.sendSuggestions(requestId, suggestions); |
111 }; | 111 }; |
112 dispatch([text, suggestCallback]); | 112 dispatch([text, suggestCallback]); |
113 }); | 113 }); |
114 | 114 |
115 exports.binding = binding.generate(); | 115 exports.binding = binding.generate(); |
OLD | NEW |