blob: bba7b2850e41a51671b309887c97007ee9b53782 [file] [log] [blame]
// Copyright 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
var chrome;
if (!chrome)
chrome = {};
if (!chrome.embeddedSearch) {
chrome.embeddedSearch = new function() {
this.searchBox = new function() {
// =======================================================================
// Private functions
// =======================================================================
native function Focus();
native function GetDisplayInstantResults();
native function GetMostVisitedItemData();
native function GetQuery();
native function GetRightToLeft();
native function GetStartMargin();
native function GetSuggestionToPrefetch();
native function IsFocused();
native function IsKeyCaptureEnabled();
native function Paste();
native function SetVoiceSearchSupported();
native function StartCapturingKeyStrokes();
native function StopCapturingKeyStrokes();
// =======================================================================
// Exported functions
// =======================================================================
this.__defineGetter__('displayInstantResults', GetDisplayInstantResults);
this.__defineGetter__('isFocused', IsFocused);
this.__defineGetter__('isKeyCaptureEnabled', IsKeyCaptureEnabled);
this.__defineGetter__('rtl', GetRightToLeft);
this.__defineGetter__('startMargin', GetStartMargin);
this.__defineGetter__('suggestion', GetSuggestionToPrefetch);
this.__defineGetter__('value', GetQuery);
this.focus = function() {
Focus();
};
// This method is restricted to chrome-search://most-visited pages by
// checking the invoking context's origin in searchbox_extension.cc.
this.getMostVisitedItemData = function(restrictedId) {
return GetMostVisitedItemData(restrictedId);
};
this.paste = function(value) {
Paste(value);
};
this.setVoiceSearchSupported = function(supported) {
SetVoiceSearchSupported(supported);
};
this.startCapturingKeyStrokes = function() {
StartCapturingKeyStrokes();
};
this.stopCapturingKeyStrokes = function() {
StopCapturingKeyStrokes();
};
this.onfocuschange = null;
this.onkeycapturechange = null;
this.onmarginchange = null;
this.onsubmit = null;
this.onsuggestionchange = null;
this.ontogglevoicesearch = null;
//TODO(jered): Remove this empty method when google no longer requires it.
this.setRestrictedValue = function() {};
};
this.newTabPage = new function() {
// =======================================================================
// Private functions
// =======================================================================
native function CheckIsUserSignedInToChromeAs();
native function DeleteMostVisitedItem();
native function GetAppLauncherEnabled();
native function GetMostVisitedItems();
native function GetThemeBackgroundInfo();
native function IsInputInProgress();
native function LogEvent();
native function LogImpression();
native function NavigateContentWindow();
native function UndoAllMostVisitedDeletions();
native function UndoMostVisitedDeletion();
function GetMostVisitedItemsWrapper() {
var mostVisitedItems = GetMostVisitedItems();
for (var i = 0, item; item = mostVisitedItems[i]; ++i) {
item.faviconUrl = GenerateFaviconURL(item.renderViewId, item.rid);
// These properties are private data and should not be returned to
// the page. They are only accessible via getMostVisitedItemData().
item.url = null;
item.title = null;
item.domain = null;
item.direction = null;
item.renderViewId = null;
}
return mostVisitedItems;
}
function GenerateFaviconURL(renderViewId, rid) {
return "chrome-search://favicon/size/16@" +
window.devicePixelRatio + "x/" +
renderViewId + "/" + rid;
}
// =======================================================================
// Exported functions
// =======================================================================
this.__defineGetter__('appLauncherEnabled', GetAppLauncherEnabled);
this.__defineGetter__('isInputInProgress', IsInputInProgress);
this.__defineGetter__('mostVisited', GetMostVisitedItemsWrapper);
this.__defineGetter__('themeBackgroundInfo', GetThemeBackgroundInfo);
this.deleteMostVisitedItem = function(restrictedId) {
DeleteMostVisitedItem(restrictedId);
};
this.checkIsUserSignedIntoChromeAs = function(identity) {
CheckIsUserSignedInToChromeAs(identity);
};
// This method is restricted to chrome-search://most-visited pages by
// checking the invoking context's origin in searchbox_extension.cc.
this.logEvent = function(histogram_name) {
LogEvent(histogram_name);
};
// This method is restricted to chrome-search://most-visited pages by
// checking the invoking context's origin in searchbox_extension.cc.
this.logImpression = function(position, provider) {
LogImpression(position, provider);
};
this.navigateContentWindow = function(destination, disposition) {
NavigateContentWindow(destination, disposition);
};
this.undoAllMostVisitedDeletions = function() {
UndoAllMostVisitedDeletions();
};
this.undoMostVisitedDeletion = function(restrictedId) {
UndoMostVisitedDeletion(restrictedId);
};
this.onsignedincheckdone = null;
this.oninputcancel = null;
this.oninputstart = null;
this.onmostvisitedchange = null;
this.onthemechange = null;
};
// TODO(jered): Remove when google no longer expects this object.
chrome.searchBox = this.searchBox;
};
}