OLD | NEW |
| (Empty) |
1 <html> | |
2 <head> | |
3 <script> | |
4 | |
5 var apiHandle; | |
6 var newTabPageHandle; | |
7 var savedUserText = null; | |
8 var suggestionIndex = -1; | |
9 var suggestions = ["result 1", "result 2", "http://www.google.com"]; | |
10 var suggestion; | |
11 var suggestionType = 0; // INSTANT_SUGGESTION_SEARCH | |
12 var behavior = 2; // INSTANT_COMPLETE_NEVER | |
13 var onMostVisitedChangedCalls = 0; | |
14 var mostVisitedItemsCount = 0; | |
15 var firstMostVisitedItemId = 0; | |
16 var onNativeSuggestionsCalls = 0; | |
17 var onChangeCalls = 0; | |
18 var submitCount = 0; | |
19 var onEscKeyPressedCalls = 0; | |
20 var onFocusChangedCalls = 0; | |
21 var onToggleVoiceSearchCalls = 0; | |
22 var prefetchQuery = ''; | |
23 var isFocused = false; | |
24 var onvisibilitycalls = 0; | |
25 var onThemeChangedCalls = 0; | |
26 | |
27 function getApiHandle() { | |
28 if (window.navigator && window.navigator.searchBox) | |
29 return window.navigator.searchBox; | |
30 if (window.chrome && window.chrome.searchBox) | |
31 return window.chrome.searchBox; | |
32 return null; | |
33 } | |
34 | |
35 function getNewTabPageHandle() { | |
36 if (window.navigator && window.navigator.embeddedSearch && | |
37 window.navigator.embeddedSearch.newTabPage) | |
38 return window.navigator.embeddedSearch.newTabPage; | |
39 if (window.chrome && window.chrome.embeddedSearch && | |
40 window.chrome.embeddedSearch.newTabPage) | |
41 return window.chrome.embeddedSearch.newTabPage; | |
42 return null; | |
43 } | |
44 | |
45 function handleNativeSuggestions() { | |
46 onNativeSuggestionsCalls++; | |
47 // Showing the loader at 100% height. | |
48 apiHandle.hideBars(); | |
49 apiHandle.showOverlay(); | |
50 } | |
51 | |
52 function handleSubmit() { | |
53 location.hash = 'q=' + encodeURIComponent(apiHandle.value); | |
54 submitCount++; | |
55 } | |
56 | |
57 function handleOnChange() { | |
58 onChangeCalls++; | |
59 savedUserText = apiHandle.value; | |
60 suggestionIndex = -1; | |
61 apiHandle.setAutocompleteText(suggestion, behavior); | |
62 } | |
63 | |
64 function nextSuggestion() { | |
65 if (suggestionIndex < suggestions.length - 1) { | |
66 suggestionIndex++; | |
67 apiHandle.setValue(suggestions[suggestionIndex], suggestionType); | |
68 } | |
69 } | |
70 | |
71 function previousSuggestion() { | |
72 if (suggestionIndex != -1) { | |
73 suggestionIndex--; | |
74 if (suggestionIndex == -1) { | |
75 apiHandle.setValue(savedUserText, suggestionType); | |
76 } else { | |
77 apiHandle.setValue(suggestions[suggestionIndex], suggestionType); | |
78 } | |
79 } | |
80 } | |
81 | |
82 function handleKeyPress(event) { | |
83 var VKEY_ESCAPE = 0x1B; | |
84 var VKEY_UP = 0x26; | |
85 var VKEY_DOWN = 0x28; | |
86 | |
87 if (event.keyCode == VKEY_ESCAPE) { | |
88 onEscKeyPressedCalls++; | |
89 if (suggestionIndex != -1) { | |
90 suggestionIndex = -1; | |
91 apiHandle.setAutocompleteText(suggestion, behavior); | |
92 } | |
93 } else if (event.keyCode == VKEY_DOWN) { | |
94 nextSuggestion(); | |
95 } else if (event.keyCode == VKEY_UP) { | |
96 previousSuggestion(); | |
97 } | |
98 } | |
99 | |
100 function handleMostVisitedChange() { | |
101 onMostVisitedChangedCalls++; | |
102 var items = newTabPageHandle.mostVisited; | |
103 if (items) { | |
104 mostVisitedItemsCount = items.length; | |
105 firstMostVisitedItemId = items[0] ? items[0].rid : 0; | |
106 } | |
107 } | |
108 | |
109 document.addEventListener("visibilitychange", function() { | |
110 onvisibilitycalls++; | |
111 }, false); | |
112 | |
113 function handleFocusChange() { | |
114 onFocusChangedCalls++; | |
115 isFocused = apiHandle.isFocused; | |
116 } | |
117 | |
118 function handleToggleVoiceSearch() { | |
119 onToggleVoiceSearchCalls++; | |
120 } | |
121 | |
122 function handleSuggestionChange() { | |
123 prefetchQuery = getApiHandle().suggestion.text; | |
124 } | |
125 | |
126 function handleThemeChange() { | |
127 onThemeChangedCalls++; | |
128 } | |
129 | |
130 function setUp() { | |
131 apiHandle = getApiHandle(); | |
132 if (!apiHandle) | |
133 return; | |
134 | |
135 newTabPageHandle = getNewTabPageHandle(); | |
136 apiHandle.onnativesuggestions = handleNativeSuggestions; | |
137 apiHandle.onsubmit = handleSubmit; | |
138 apiHandle.onchange = handleOnChange; | |
139 apiHandle.onkeypress = handleKeyPress; | |
140 apiHandle.onfocuschange = handleFocusChange; | |
141 apiHandle.ontogglevoicesearch = handleToggleVoiceSearch; | |
142 apiHandle.onsuggestionchange = handleSuggestionChange; | |
143 newTabPageHandle.onmostvisitedchange = handleMostVisitedChange; | |
144 newTabPageHandle.onthemechange = handleThemeChange; | |
145 if (apiHandle.value) { | |
146 handleNativeSuggestions(); | |
147 handleOnChange(); | |
148 } | |
149 if (newTabPageHandle.mostVisited && newTabPageHandle.mostVisited.length) { | |
150 handleMostVisitedChange(); | |
151 } | |
152 handleFocusChange(); | |
153 } | |
154 | |
155 setUp(); | |
156 | |
157 </script> | |
158 | |
159 <meta name="referrer" content="origin" /> | |
160 | |
161 </head> | |
162 <body> | |
163 <h1>Instant</h1> | |
164 </body> | |
165 </html> | |
OLD | NEW |