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