From c60c192f1bb8bcf19d5a607a77ddaebb50d6eb03 Mon Sep 17 00:00:00 2001 From: Jonathan Pevarnek Date: Thu, 9 Apr 2015 16:41:05 -0400 Subject: [PATCH] Update chrome settings interface This fixes two errors in the settings interface for chrome: the interface was completely missing the clear method and the callback parameter of the get method was defined as being an object instead of a function. This also adds a test for the settings interface. --- chrome/chrome-tests.ts | 23 +++++++++++++++++++++++ chrome/chrome.d.ts | 12 +++++++++--- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/chrome/chrome-tests.ts b/chrome/chrome-tests.ts index 8d27a9d554..57aa25f4fc 100644 --- a/chrome/chrome-tests.ts +++ b/chrome/chrome-tests.ts @@ -174,3 +174,26 @@ function catBlock () { // extraInfoSpec ["blocking"]); } + +// contrived settings example +function proxySettings() { + chrome.proxy.settings.get({ incognito: false }, (details) => { + var val = details.value; + var level: string = details.levelOfControl; + var incognito: boolean = details.incognitoSpecific; + }); + + // bare minimum set call + chrome.proxy.settings.set({ value: 'something' }); + + // add a scope and callback + chrome.proxy.settings.set({ + value: 'something', + scope: 'regular' + }, () => {}); + + chrome.proxy.settings.clear({}); + + // clear with a scope set + chrome.proxy.settings.clear({ scope: 'regular' }); +} diff --git a/chrome/chrome.d.ts b/chrome/chrome.d.ts index f67cb39497..23eb24bef9 100755 --- a/chrome/chrome.d.ts +++ b/chrome/chrome.d.ts @@ -2061,8 +2061,11 @@ declare module chrome.ttsEngine { // Types //////////////////// declare module chrome.types { - interface ChromeSettingSetDetails { + interface ChromeSettingClearDetails { scope?: string; + } + + interface ChromeSettingSetDetails extends ChromeSettingClearDetails { value: any; } @@ -2070,6 +2073,8 @@ declare module chrome.types { incognito?: boolean; } + type DetailsCallback = (details: ChromeSettingGetResultDetails) => void; + interface ChromeSettingGetResultDetails { levelOfControl: string; value: any; @@ -2077,7 +2082,7 @@ declare module chrome.types { } interface ChromeSettingChangedEvent extends chrome.events.Event { - addListener(callback: (details: ChromeSettingGetResultDetails) => void): void; + addListener(callback: DetailsCallback): void; } interface ChromeSetting { @@ -2086,7 +2091,8 @@ declare module chrome.types { callback?: Function; }; set(details: ChromeSettingSetDetails, callback?: Function): void; - get(details: ChromeSettingGetDetails, callback?: ChromeSettingGetResultDetails): void; + get(details: ChromeSettingGetDetails, callback?: DetailsCallback): void; + clear(details: ChromeSettingClearDetails, callback?: Function): void; onChange: ChromeSettingChangedEvent; } }