| OLD | NEW | 
|---|
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 var chrome; | 5 var chrome; | 
| 6 if (!chrome) | 6 if (!chrome) | 
| 7   chrome = {}; | 7   chrome = {}; | 
| 8 | 8 | 
| 9 if (!chrome.embeddedSearch) { | 9 if (!chrome.embeddedSearch) { | 
| 10   chrome.embeddedSearch = new function() { | 10   chrome.embeddedSearch = new function() { | 
| 11 | 11 | 
| 12     // ========================================================================= | 12     // ========================================================================= | 
| 13     //                            Private functions | 13     //                            Private functions | 
| 14     // ========================================================================= | 14     // ========================================================================= | 
| 15     native function GetFont(); | 15     native function GetFont(); | 
|  | 16     // DEPRECATED. TODO(sreeram): Remove once google.com no longer uses this. | 
| 16     native function NavigateContentWindow(); | 17     native function NavigateContentWindow(); | 
| 17 | 18 | 
| 18     function escapeHTML(text) { | 19     function escapeHTML(text) { | 
| 19       return text.replace(/[<>&"']/g, function(match) { | 20       return text.replace(/[<>&"']/g, function(match) { | 
| 20         switch (match) { | 21         switch (match) { | 
| 21           case '<': return '<'; | 22           case '<': return '<'; | 
| 22           case '>': return '>'; | 23           case '>': return '>'; | 
| 23           case '&': return '&'; | 24           case '&': return '&'; | 
| 24           case '"': return '"'; | 25           case '"': return '"'; | 
| 25           case "'": return '''; | 26           case "'": return '''; | 
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 57       // |embeddedSearchOnWindowReady| is used for initializing window context | 58       // |embeddedSearchOnWindowReady| is used for initializing window context | 
| 58       // and should be called only once per context. | 59       // and should be called only once per context. | 
| 59       safeObjects.createShadowRoot = Element.prototype.webkitCreateShadowRoot; | 60       safeObjects.createShadowRoot = Element.prototype.webkitCreateShadowRoot; | 
| 60       safeObjects.defineProperty = Object.defineProperty; | 61       safeObjects.defineProperty = Object.defineProperty; | 
| 61       delete window.chrome.embeddedSearchOnWindowReady; | 62       delete window.chrome.embeddedSearchOnWindowReady; | 
| 62     }; | 63     }; | 
| 63 | 64 | 
| 64     // ========================================================================= | 65     // ========================================================================= | 
| 65     //                           Exported functions | 66     //                           Exported functions | 
| 66     // ========================================================================= | 67     // ========================================================================= | 
|  | 68     // DEPRECATED. TODO(sreeram): Remove once google.com no longer uses this. | 
| 67     this.navigateContentWindow = function(destination, disposition) { | 69     this.navigateContentWindow = function(destination, disposition) { | 
| 68       return NavigateContentWindow(destination, disposition); | 70       return NavigateContentWindow(destination, disposition); | 
| 69     }; | 71     }; | 
| 70 | 72 | 
| 71     this.searchBox = new function() { | 73     this.searchBox = new function() { | 
| 72 | 74 | 
| 73       // ======================================================================= | 75       // ======================================================================= | 
| 74       //                                  Constants | 76       //                                  Constants | 
| 75       // ======================================================================= | 77       // ======================================================================= | 
| 76       var MAX_CLIENT_SUGGESTIONS_TO_DEDUPE = 6; | 78       var MAX_CLIENT_SUGGESTIONS_TO_DEDUPE = 6; | 
| (...skipping 18 matching lines...) Expand all  Loading... | 
| 95       native function IsKeyCaptureEnabled(); | 97       native function IsKeyCaptureEnabled(); | 
| 96       native function SetSuggestions(); | 98       native function SetSuggestions(); | 
| 97       native function SetQuerySuggestion(); | 99       native function SetQuerySuggestion(); | 
| 98       native function SetQuerySuggestionFromAutocompleteResult(); | 100       native function SetQuerySuggestionFromAutocompleteResult(); | 
| 99       native function SetQuery(); | 101       native function SetQuery(); | 
| 100       native function SetQueryFromAutocompleteResult(); | 102       native function SetQueryFromAutocompleteResult(); | 
| 101       native function ShowOverlay(); | 103       native function ShowOverlay(); | 
| 102       native function FocusOmnibox(); | 104       native function FocusOmnibox(); | 
| 103       native function StartCapturingKeyStrokes(); | 105       native function StartCapturingKeyStrokes(); | 
| 104       native function StopCapturingKeyStrokes(); | 106       native function StopCapturingKeyStrokes(); | 
|  | 107       native function NavigateSearchBox(); | 
| 105 | 108 | 
| 106       function SafeWrapSuggestion(restrictedText) { | 109       function SafeWrapSuggestion(restrictedText) { | 
| 107         return SafeWrap(restrictedText, window.innerWidth - 155, 22); | 110         return SafeWrap(restrictedText, window.innerWidth - 155, 22); | 
| 108       } | 111       } | 
| 109 | 112 | 
| 110       // Wraps the AutocompleteResult query and URL into ShadowDOM nodes so that | 113       // Wraps the AutocompleteResult query and URL into ShadowDOM nodes so that | 
| 111       // the JS cannot access them and deletes the raw values. | 114       // the JS cannot access them and deletes the raw values. | 
| 112       function GetAutocompleteResultsWrapper() { | 115       function GetAutocompleteResultsWrapper() { | 
| 113         var autocompleteResults = DedupeAutocompleteResults( | 116         var autocompleteResults = DedupeAutocompleteResults( | 
| 114             GetAutocompleteResults()); | 117             GetAutocompleteResults()); | 
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 259       }; | 262       }; | 
| 260       this.focus = function() { | 263       this.focus = function() { | 
| 261         FocusOmnibox(); | 264         FocusOmnibox(); | 
| 262       }; | 265       }; | 
| 263       this.startCapturingKeyStrokes = function() { | 266       this.startCapturingKeyStrokes = function() { | 
| 264         StartCapturingKeyStrokes(); | 267         StartCapturingKeyStrokes(); | 
| 265       }; | 268       }; | 
| 266       this.stopCapturingKeyStrokes = function() { | 269       this.stopCapturingKeyStrokes = function() { | 
| 267         StopCapturingKeyStrokes(); | 270         StopCapturingKeyStrokes(); | 
| 268       }; | 271       }; | 
|  | 272       this.navigateContentWindow = function(destination, disposition) { | 
|  | 273         NavigateSearchBox(destination, disposition); | 
|  | 274       } | 
| 269       this.onchange = null; | 275       this.onchange = null; | 
| 270       this.onsubmit = null; | 276       this.onsubmit = null; | 
| 271       this.oncancel = null; | 277       this.oncancel = null; | 
| 272       this.onresize = null; | 278       this.onresize = null; | 
| 273       this.onkeypress = null; | 279       this.onkeypress = null; | 
| 274       this.onkeycapturechange = null; | 280       this.onkeycapturechange = null; | 
| 275       this.oncontextchange = null; | 281       this.oncontextchange = null; | 
| 276       this.onmarginchange = null; | 282       this.onmarginchange = null; | 
| 277       this.onnativesuggestions = null; | 283       this.onnativesuggestions = null; | 
| 278 | 284 | 
| (...skipping 12 matching lines...) Expand all  Loading... | 
| 291     this.newTabPage = new function() { | 297     this.newTabPage = new function() { | 
| 292 | 298 | 
| 293       // ======================================================================= | 299       // ======================================================================= | 
| 294       //                            Private functions | 300       //                            Private functions | 
| 295       // ======================================================================= | 301       // ======================================================================= | 
| 296       native function GetMostVisitedItems(); | 302       native function GetMostVisitedItems(); | 
| 297       native function GetThemeBackgroundInfo(); | 303       native function GetThemeBackgroundInfo(); | 
| 298       native function DeleteMostVisitedItem(); | 304       native function DeleteMostVisitedItem(); | 
| 299       native function UndoAllMostVisitedDeletions(); | 305       native function UndoAllMostVisitedDeletions(); | 
| 300       native function UndoMostVisitedDeletion(); | 306       native function UndoMostVisitedDeletion(); | 
|  | 307       native function NavigateNewTabPage(); | 
| 301 | 308 | 
| 302       function SafeWrapMostVisited(restrictedText, width, opt_direction) { | 309       function SafeWrapMostVisited(restrictedText, width, opt_direction) { | 
| 303         return SafeWrap(restrictedText, width, 18, 11, opt_direction); | 310         return SafeWrap(restrictedText, width, 18, 11, opt_direction); | 
| 304       } | 311       } | 
| 305 | 312 | 
| 306       function GetMostVisitedItemsWrapper() { | 313       function GetMostVisitedItemsWrapper() { | 
| 307         var mostVisitedItems = GetMostVisitedItems(); | 314         var mostVisitedItems = GetMostVisitedItems(); | 
| 308         for (var i = 0, item; item = mostVisitedItems[i]; ++i) { | 315         for (var i = 0, item; item = mostVisitedItems[i]; ++i) { | 
| 309           var title = escapeHTML(item.title); | 316           var title = escapeHTML(item.title); | 
| 310           var domain = escapeHTML(item.domain); | 317           var domain = escapeHTML(item.domain); | 
| (...skipping 14 matching lines...) Expand all  Loading... | 
| 325 | 332 | 
| 326       this.deleteMostVisitedItem = function(restrictId) { | 333       this.deleteMostVisitedItem = function(restrictId) { | 
| 327         DeleteMostVisitedItem(restrictId); | 334         DeleteMostVisitedItem(restrictId); | 
| 328       }; | 335       }; | 
| 329       this.undoAllMostVisitedDeletions = function() { | 336       this.undoAllMostVisitedDeletions = function() { | 
| 330         UndoAllMostVisitedDeletions(); | 337         UndoAllMostVisitedDeletions(); | 
| 331       }; | 338       }; | 
| 332       this.undoMostVisitedDeletion = function(restrictId) { | 339       this.undoMostVisitedDeletion = function(restrictId) { | 
| 333         UndoMostVisitedDeletion(restrictId); | 340         UndoMostVisitedDeletion(restrictId); | 
| 334       }; | 341       }; | 
|  | 342       this.navigateContentWindow = function(destination, disposition) { | 
|  | 343         NavigateNewTabPage(destination, disposition); | 
|  | 344       } | 
| 335 | 345 | 
| 336       this.onmostvisitedchange = null; | 346       this.onmostvisitedchange = null; | 
| 337       this.onthemechange = null; | 347       this.onthemechange = null; | 
| 338     }; | 348     }; | 
| 339 | 349 | 
| 340     // Export legacy searchbox API. | 350     // Export legacy searchbox API. | 
| 341     // TODO: Remove this when Instant Extended is fully launched. | 351     // TODO: Remove this when Instant Extended is fully launched. | 
| 342     chrome.searchBox = this.searchBox; | 352     chrome.searchBox = this.searchBox; | 
| 343   }; | 353   }; | 
| 344 } | 354 } | 
| OLD | NEW | 
|---|