initial: nsJson plugin 1.1.3
This commit is contained in:
@@ -0,0 +1,193 @@
|
||||
!include MUI2.nsh
|
||||
|
||||
Name `nsJSON plug-in`
|
||||
OutFile nsJSON_ConsoleExec.exe
|
||||
RequestExecutionLevel user
|
||||
ShowInstDetails show
|
||||
|
||||
!define MUI_COMPONENTSPAGE_SMALLDESC
|
||||
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE ComponentsPage_Leave
|
||||
!insertmacro MUI_PAGE_COMPONENTS
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
|
||||
!insertmacro MUI_LANGUAGE English
|
||||
|
||||
Section
|
||||
|
||||
CreateDirectory $EXEDIR\Output
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `Console App` NATIVE
|
||||
|
||||
InitPluginsDir
|
||||
StrCpy $R0 $PLUGINSDIR\ConsoleApp.exe
|
||||
File /oname=$R0 Bin\ConsoleApp.exe
|
||||
|
||||
nsJSON::Set /tree ConsoleExec /value `{ "Path": "$R0", "WorkingDir": "$PLUGINSDIR", "RawOutput": true }`
|
||||
|
||||
; Provide arguments as a single string or an array.
|
||||
nsJSON::Set /tree ConsoleExec Arguments /value `[]`
|
||||
nsJSON::Set /tree ConsoleExec Arguments /value `"arg1"`
|
||||
nsJSON::Set /tree ConsoleExec Arguments /value `"arg2"`
|
||||
|
||||
; Provide input as a single string or an array.
|
||||
nsJSON::Set /tree ConsoleExec Input /value `"hello"`
|
||||
|
||||
; Export the tree to file for debugging.
|
||||
DetailPrint `Generate: $EXEDIR\Output\ConsoleExecInput.json from ConsoleExec`
|
||||
nsJSON::Serialize /tree ConsoleExec /format /file $EXEDIR\Output\ConsoleExecInput.json
|
||||
|
||||
; Execute the console application.
|
||||
DetailPrint `Exec: $R0`
|
||||
nsJSON::Set /tree ConsoleExecOutput /exec ConsoleExec
|
||||
|
||||
; Save the output to file.
|
||||
DetailPrint `Generate: $EXEDIR\Output\ConsoleExecOutput.json from ConsoleExecOutput`
|
||||
nsJSON::Serialize /tree ConsoleExecOutput /format /file $EXEDIR\Output\ConsoleExecOutput.json
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `Async Console App` NATIVEASYNC
|
||||
|
||||
InitPluginsDir
|
||||
StrCpy $R0 $PLUGINSDIR\ConsoleApp.exe
|
||||
File /oname=$R0 Bin\ConsoleApp.exe
|
||||
|
||||
nsJSON::Set /tree ConsoleExec /value `{ "Async": true, "Path": "$R0", "WorkingDir": "$PLUGINSDIR", "RawOutput": true }`
|
||||
|
||||
; Provide arguments as a single string or an array.
|
||||
nsJSON::Set /tree ConsoleExec Arguments /value `[]`
|
||||
nsJSON::Set /tree ConsoleExec Arguments /value `"arg1"`
|
||||
nsJSON::Set /tree ConsoleExec Arguments /value `"arg2"`
|
||||
|
||||
; Provide input as a single string or an array.
|
||||
nsJSON::Set /tree ConsoleExec Input /value `"hello"`
|
||||
|
||||
; Export the tree to file for debugging.
|
||||
DetailPrint `Generate: $EXEDIR\Output\AsyncConsoleExecInput.json from ConsoleExec`
|
||||
nsJSON::Serialize /tree ConsoleExec /format /file $EXEDIR\Output\AsyncConsoleExecInput.json
|
||||
|
||||
; Execute the console application.
|
||||
DetailPrint `Exec: $R0`
|
||||
nsJSON::Set /tree AsyncConsoleExecOutput /exec ConsoleExec
|
||||
|
||||
; Wait until done.
|
||||
${Do}
|
||||
Sleep 1000
|
||||
nsJSON::Wait ConsoleExec /timeout 0
|
||||
Pop $R0
|
||||
${If} $R0 != wait
|
||||
${Break}
|
||||
${EndIf}
|
||||
DetailPrint `Waiting...`
|
||||
${Loop}
|
||||
|
||||
DetailPrint `Finished...`
|
||||
|
||||
; Save the output to file.
|
||||
DetailPrint `Generate: $EXEDIR\Output\AsyncConsoleExecOutput.json from AsyncConsoleExecOutput`
|
||||
nsJSON::Serialize /tree AsyncConsoleExecOutput /format /file $EXEDIR\Output\AsyncConsoleExecOutput.json
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `.NET Console App` DOTNET
|
||||
|
||||
InitPluginsDir
|
||||
StrCpy $R0 $PLUGINSDIR\ConsoleAppDotNet.exe
|
||||
File /oname=$R0 Bin\ConsoleAppDotNet.exe
|
||||
|
||||
nsJSON::Set /tree ConsoleExec /value `{ "Path": "$R0", "WorkingDir": "$PLUGINSDIR" }`
|
||||
|
||||
; Provide arguments as a single string or an array.
|
||||
nsJSON::Set /tree ConsoleExec Arguments /value `[]`
|
||||
nsJSON::Set /tree ConsoleExec Arguments /value `"arg1"`
|
||||
nsJSON::Set /tree ConsoleExec Arguments /value `"arg2"`
|
||||
|
||||
; Provide input as a single string or an array.
|
||||
nsJSON::Set /tree ConsoleExec Input /value `"hello"`
|
||||
|
||||
; Export the tree to file for debugging.
|
||||
DetailPrint `Generate: $EXEDIR\Output\ConsoleExecDotNetInput.json from ConsoleExec`
|
||||
nsJSON::Serialize /tree ConsoleExec /format /file $EXEDIR\Output\ConsoleExecDotNetInput.json
|
||||
|
||||
; Execute the console application.
|
||||
DetailPrint `Exec: $R0`
|
||||
nsJSON::Set /tree ConsoleExecOutput /exec ConsoleExec
|
||||
|
||||
; Save the output to file.
|
||||
DetailPrint `Generate: $EXEDIR\Output\ConsoleExecDotNetOutput.json from ConsoleExecOutput`
|
||||
nsJSON::Serialize /tree ConsoleExecOutput /format /file $EXEDIR\Output\ConsoleExecDotNetOutput.json
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `UI Thread Console App` UINATIVE
|
||||
|
||||
SectionEnd
|
||||
|
||||
Function ComponentsPage_Leave
|
||||
|
||||
${IfNot} ${SectionIsSelected} ${UINATIVE}
|
||||
Return
|
||||
${EndIf}
|
||||
|
||||
GetDlgItem $R0 $HWNDPARENT 1
|
||||
EnableWindow $R0 0
|
||||
GetDlgItem $R0 $HWNDPARENT 2
|
||||
EnableWindow $R0 0
|
||||
GetDlgItem $R0 $HWNDPARENT 3
|
||||
EnableWindow $R0 0
|
||||
FindWindow $R0 `#32770` `` $HWNDPARENT
|
||||
GetDlgItem $R0 $R0 1032
|
||||
EnableWindow $R0 0
|
||||
|
||||
Banner::Show /set 76 `Executing ConsoleApp.exe` `Please wait...`
|
||||
|
||||
InitPluginsDir
|
||||
StrCpy $R0 $PLUGINSDIR\ConsoleApp.exe
|
||||
File /oname=$R0 Bin\ConsoleApp.exe
|
||||
|
||||
nsJSON::Set /tree ConsoleExec /value `{ "UIAsync": true, "Path": "$R0", "WorkingDir": "$PLUGINSDIR", "RawOutput": true }`
|
||||
|
||||
; Provide arguments as a single string or an array.
|
||||
nsJSON::Set /tree ConsoleExec Arguments /value `[]`
|
||||
nsJSON::Set /tree ConsoleExec Arguments /value `"arg1"`
|
||||
nsJSON::Set /tree ConsoleExec Arguments /value `"arg2"`
|
||||
|
||||
; Provide input as a single string or an array.
|
||||
nsJSON::Set /tree ConsoleExec Input /value `"hello"`
|
||||
|
||||
; Export the tree to file for debugging.
|
||||
nsJSON::Serialize /tree ConsoleExec /format /file $EXEDIR\Output\UIConsoleExecInput.json
|
||||
|
||||
; Execute the console application.
|
||||
nsJSON::Set /tree UIConsoleExecOutput /exec ConsoleExec
|
||||
|
||||
; Save the output to file.
|
||||
nsJSON::Serialize /tree UIConsoleExecOutput /format /file $EXEDIR\Output\UIConsoleExecOutput.json
|
||||
|
||||
Banner::Destroy
|
||||
|
||||
GetDlgItem $R0 $HWNDPARENT 1
|
||||
EnableWindow $R0 1
|
||||
GetDlgItem $R0 $HWNDPARENT 2
|
||||
EnableWindow $R0 1
|
||||
GetDlgItem $R0 $HWNDPARENT 3
|
||||
EnableWindow $R0 1
|
||||
FindWindow $R0 `#32770` `` $HWNDPARENT
|
||||
GetDlgItem $R0 $R0 1032
|
||||
EnableWindow $R0 1
|
||||
|
||||
FunctionEnd
|
||||
|
||||
LangString NATIVEDesc ${LANG_ENGLISH} `Executes native console app with STDIN data and reads JSON from STDOUT`
|
||||
LangString NATIVEASYNCDesc ${LANG_ENGLISH} `Executes native console app asynchronously with STDIN data and reads JSON from STDOUT`
|
||||
LangString DOTNETDesc ${LANG_ENGLISH} `Executes .NET console app with STDIN data and reads JSON from STDOUT`
|
||||
LangString UINATIVEDesc ${LANG_ENGLISH} `Executes native console app asynchronously while processing window messages`
|
||||
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${NATIVE} $(NATIVEDesc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${NATIVEASYNC} $(NATIVEASYNCDesc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${DOTNET} $(DOTNETDesc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${UINATIVE} $(UINATIVEDesc)
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
@@ -0,0 +1,509 @@
|
||||
!include MUI2.nsh
|
||||
|
||||
Name `nsJSON plug-in`
|
||||
OutFile nsJSON_Example.exe
|
||||
RequestExecutionLevel user
|
||||
ShowInstDetails show
|
||||
|
||||
!define MUI_COMPONENTSPAGE_SMALLDESC
|
||||
!insertmacro MUI_PAGE_COMPONENTS
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
|
||||
!insertmacro MUI_LANGUAGE English
|
||||
|
||||
Section
|
||||
|
||||
CreateDirectory $EXEDIR\Output
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `Parse Example1.json` EXAMPLE1
|
||||
|
||||
; Input: Example1.json; output: Example1.json.
|
||||
nsJSON::Set /file $EXEDIR\Input\Example1.json
|
||||
nsJSON::Serialize /format /file $EXEDIR\Output\Example1.json
|
||||
DetailPrint `Generate: $EXEDIR\Output\Example1.json`
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `Convert Example1_Unicode.json (no BOM)` EXAMPLE1B
|
||||
|
||||
; Use the /unicode switch if the input file is Unicode.
|
||||
nsJSON::Set /file /unicode $EXEDIR\Input\Example1_Unicode.json
|
||||
|
||||
; Generate an ANSII output file.
|
||||
nsJSON::Serialize /format /file $EXEDIR\Output\Example1B_ASCII.json
|
||||
DetailPrint `Generate: $EXEDIR\Output\Example1B_ASCII.json`
|
||||
|
||||
; Generate a Unicode output file.
|
||||
nsJSON::Serialize /format /file /unicode $EXEDIR\Output\Example1B_Unicode.json
|
||||
DetailPrint `Generate: $EXEDIR\Output\Example1B_Unicode.json`
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `Convert Example1_Unicode_UTF16BE.json (BOM)` EXAMPLE1C
|
||||
|
||||
; Use the /unicode switch if the input file is Unicode.
|
||||
nsJSON::Set /file /unicode $EXEDIR\Input\Example1_Unicode_UTF16BE.json
|
||||
|
||||
; Generate an ANSII output file.
|
||||
nsJSON::Serialize /format /file $EXEDIR\Output\Example1C_ASCII.json
|
||||
DetailPrint `Generate: $EXEDIR\Output\Example1C_ASCII.json`
|
||||
|
||||
; Generate a Unicode output file.
|
||||
nsJSON::Serialize /format /file /unicode $EXEDIR\Output\Example1C_Unicode.json
|
||||
DetailPrint `Generate: $EXEDIR\Output\Example1C_Unicode.json`
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `Convert Example1_Unicode_UTF16LE.json (BOM)` EXAMPLE1D
|
||||
|
||||
; Use the /unicode switch if the input file is Unicode.
|
||||
nsJSON::Set /file /unicode $EXEDIR\Input\Example1_Unicode_UTF16LE.json
|
||||
|
||||
; Generate an ANSII output file.
|
||||
nsJSON::Serialize /format /file $EXEDIR\Output\Example1D_ASCII.json
|
||||
DetailPrint `Generate: $EXEDIR\Output\Example1D_ASCII.json`
|
||||
|
||||
; Generate a Unicode output file.
|
||||
nsJSON::Serialize /format /file /unicode $EXEDIR\Output\Example1D_Unicode.json
|
||||
DetailPrint `Generate: $EXEDIR\Output\Example1D_Unicode.json`
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `Convert Example1_Unicode_UTF8.json (sig)` EXAMPLE1E
|
||||
|
||||
; No /unicode switch is used for UTF8.
|
||||
nsJSON::Set /file $EXEDIR\Input\Example1_Unicode_UTF8.json
|
||||
|
||||
; Generate an ANSII output file.
|
||||
nsJSON::Serialize /format /file $EXEDIR\Output\Example1_ASCII.json
|
||||
DetailPrint `Generate: $EXEDIR\Output\Example1_ASCII.json`
|
||||
|
||||
; Generate a Unicode output file.
|
||||
nsJSON::Serialize /format /file /unicode $EXEDIR\Output\Example1_Unicode.json
|
||||
DetailPrint `Generate: $EXEDIR\Output\Example1_Unicode.json`
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `Parse Example2.json` EXAMPLE2
|
||||
|
||||
; Input: Example2.json; output: Example2.json.
|
||||
nsJSON::Set /file $EXEDIR\Input\Example2.json
|
||||
nsJSON::Serialize /format /file $EXEDIR\Output\Example2.json
|
||||
DetailPrint `Generate: $EXEDIR\Output\Example2.json`
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `Parse Example3.json` EXAMPLE3
|
||||
|
||||
; Input: Example3.json; output: Example3.json.
|
||||
nsJSON::Set /file $EXEDIR\Input\Example3.json
|
||||
nsJSON::Serialize /format /file $EXEDIR\Output\Example3.json
|
||||
DetailPrint `Generate: $EXEDIR\Output\Example3.json`
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `Parse Example4.json` EXAMPLE4
|
||||
|
||||
; Input: Example4.json; output: Example4.json.
|
||||
nsJSON::Set /file $EXEDIR\Input\Example4.json
|
||||
nsJSON::Serialize /format /file $EXEDIR\Output\Example4.json
|
||||
DetailPrint `Generate: $EXEDIR\Output\Example4.json`
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `Parse Example5.json` EXAMPLE5
|
||||
|
||||
; Input: Example5.json; output: Example5.json.
|
||||
nsJSON::Set /file $EXEDIR\Input\Example5.json
|
||||
nsJSON::Serialize /format /file $EXEDIR\Output\Example5.json
|
||||
DetailPrint `Generate: $EXEDIR\Output\Example5.json`
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `Parse Example5.json (via $$R0)` EXAMPLE5B
|
||||
|
||||
; Input: Example5.json; output: Example5.json.
|
||||
nsJSON::Set /file $EXEDIR\Input\Example5.json
|
||||
nsJSON::Serialize /format
|
||||
Pop $R0
|
||||
FileOpen $R1 $EXEDIR\Output\Example5B.json w
|
||||
FileWrite $R1 $R0
|
||||
FileClose $R1
|
||||
DetailPrint `Generate: $EXEDIR\Output\Example5B.json`
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `Generate Example6.json` EXAMPLE6
|
||||
|
||||
nsJSON::Set /value `{}`
|
||||
nsJSON::Set `html` `head` `title` /value `"Example6"`
|
||||
|
||||
; Build an array using individual calls.
|
||||
nsJSON::Set `html` `body` `h1` /value `[]`
|
||||
nsJSON::Set `html` `body` `h1` /value `"Hello,\tmy name is"`
|
||||
nsJSON::Set `html` `body` `h1` `i` /value `"Stuart."`
|
||||
nsJSON::Set `html` `body` `h1` /value `"Howdy"`
|
||||
nsJSON::Set `html` `body` `h1` /value `"!"`
|
||||
nsJSON::Set `html` `body` `h1` /value `[ true, "hello", false ]`
|
||||
|
||||
; Build an array using a JSON string.
|
||||
nsJSON::Set `html` `body` `h2` /value `[ "I like", { "u": { "i" : "programming" } }, "very much!" ]`
|
||||
|
||||
; Quotes in node keys are allowed; they are escaped automatically.
|
||||
nsJSON::Set `html` `body` `a href="http://www.afrowsoft.co.uk"` /value `"My website!"`
|
||||
|
||||
; Open the file below in Notepad.
|
||||
nsJSON::Serialize /format /file $EXEDIR\Output\Example6.json
|
||||
DetailPrint `Generate: $EXEDIR\Output\Example6.json`
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `Reading from Example1.json` EXAMPLE7
|
||||
|
||||
nsJSON::Set /file $EXEDIR\Input\Example1.json
|
||||
|
||||
; Read quoted string value.
|
||||
ClearErrors
|
||||
nsJSON::Get `glossary` `GlossDiv` `GlossList` `GlossEntry` `GlossTerm` /end
|
||||
${IfNot} ${Errors}
|
||||
Pop $R0
|
||||
DetailPrint `glossary->GlossDiv->GlossList->GlossEntry->GlossTerm = $R0`
|
||||
${EndIf}
|
||||
|
||||
; Read quoted string value with escaping.
|
||||
ClearErrors
|
||||
nsJSON::Set `glossary` `GlossDiv` `GlossList` `GlossEntry` `GlossDef` `para2` /value `"A meta-markup language, used to create markup languages\r\nsuch as DocBook."`
|
||||
nsJSON::Get `glossary` `GlossDiv` `GlossList` `GlossEntry` `GlossDef` `para2` /end
|
||||
${IfNot} ${Errors}
|
||||
Pop $R0
|
||||
DetailPrint `glossary->GlossDiv->GlossList->GlossEntry->GlossDef->para2 = $R0`
|
||||
${EndIf}
|
||||
|
||||
; Read quoted string value without expanding escape sequences.
|
||||
ClearErrors
|
||||
nsJSON::Set `glossary` `GlossDiv` `GlossList` `GlossEntry` `GlossDef` `para3` /value `"A meta-markup language, used to create markup languages\r\nsuch as DocBook."`
|
||||
nsJSON::Get /noexpand `glossary` `GlossDiv` `GlossList` `GlossEntry` `GlossDef` `para3` /end
|
||||
${IfNot} ${Errors}
|
||||
Pop $R0
|
||||
DetailPrint `glossary->GlossDiv->GlossList->GlossEntry->GlossDef->para3 = $R0`
|
||||
${EndIf}
|
||||
|
||||
; Read the value of an array (returns a comma delimited list).
|
||||
ClearErrors
|
||||
nsJSON::Get `glossary` `GlossDiv` `GlossList` `GlossEntry` `GlossDef` `GlossSeeAlso` /end
|
||||
${IfNot} ${Errors}
|
||||
Pop $R0
|
||||
DetailPrint `glossary->GlossDiv->GlossList->GlossEntry->GlossDef->GlossSeeAlso = $R0`
|
||||
${EndIf}
|
||||
|
||||
; Try reading a node that does not exist.
|
||||
ClearErrors
|
||||
nsJSON::Get `glossary` `GlossDiv` `GlossList` `GlossEntry` `GlossDef` `GlossSeeAlso2` /end
|
||||
${IfNot} ${Errors}
|
||||
Pop $R0
|
||||
DetailPrint `glossary->GlossDiv->GlossList->GlossEntry->GlossDef->GlossSeeAlso2 = $R0`
|
||||
${Else}
|
||||
DetailPrint `glossary->GlossDiv->GlossList->GlossEntry->GlossDef->GlossSeeAlso2 = Does not exist!`
|
||||
${EndIf}
|
||||
|
||||
; Try reading an array element that does not exist.
|
||||
ClearErrors
|
||||
nsJSON::Get `glossary` `GlossDiv` `GlossList` `GlossEntry` `GlossDef` `GlossSeeAlso` 99 /end
|
||||
${IfNot} ${Errors}
|
||||
Pop $R0
|
||||
DetailPrint `glossary->GlossDiv->GlossList->GlossEntry->GlossDef->GlossSeeAlso->#99 = $R0`
|
||||
${Else}
|
||||
DetailPrint `glossary->GlossDiv->GlossList->GlossEntry->GlossDef->GlossSeeAlso->#99 = Does not exist!`
|
||||
${EndIf}
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `Arrays test` EXAMPLE8
|
||||
|
||||
nsJSON::Set /value `{}`
|
||||
|
||||
; You can add an array this way.
|
||||
nsJSON::Set `array1` /value `[ "value 1", "value 2", { "value 3": "node value" }, "value 4", 5 ]`
|
||||
|
||||
; Inspect array1.
|
||||
nsJSON::Get `array1` /end
|
||||
Pop $R0
|
||||
DetailPrint `array1 = [$R0]`
|
||||
|
||||
; Or you can build it this way.
|
||||
nsJSON::Set `array2` /value `[]`
|
||||
nsJSON::Set `array2` /value `"value 1"`
|
||||
nsJSON::Set `array2` /value `"value 2"`
|
||||
nsJSON::Set `array2` `value 3` /value `"node value"`
|
||||
nsJSON::Set `array2` /value `"value 4"`
|
||||
nsJSON::Set `array2` /value `5`
|
||||
|
||||
; You cannot add the same value again.
|
||||
nsJSON::Set `array2` /value `5`
|
||||
|
||||
; More.
|
||||
nsJSON::Set `array2` /value `blah1`
|
||||
nsJSON::Set `array2` /value `blah2`
|
||||
|
||||
; Inspect array2.
|
||||
nsJSON::Get `array2` /end
|
||||
Pop $R0
|
||||
DetailPrint `array2 = [$R0]`
|
||||
|
||||
; Does an array element exist at the given index?
|
||||
nsJSON::Get /exists `array2` /index 0 /end
|
||||
Pop $R0
|
||||
DetailPrint `array2[0] exists? = $R0`
|
||||
${If} $R0 == yes
|
||||
nsJSON::Get `array2` /index 0 /end
|
||||
Pop $R0
|
||||
DetailPrint `array2[0] = $R0`
|
||||
${EndIf}
|
||||
|
||||
; Does an array element exist at the given index?
|
||||
nsJSON::Get /exists `array2` /index -2 /end
|
||||
Pop $R0
|
||||
DetailPrint `array2[-2] exists? = $R0`
|
||||
${If} $R0 == yes
|
||||
nsJSON::Get `array2` /index -2 /end
|
||||
Pop $R0
|
||||
DetailPrint `array2[-2] = $R0`
|
||||
${EndIf}
|
||||
|
||||
; Does an array element exist that matches the value?
|
||||
nsJSON::Get /exists `array2` `5` /end
|
||||
Pop $R0
|
||||
DetailPrint `array2->5 exists? = $R0`
|
||||
|
||||
; Does an array element exist at the given index?
|
||||
nsJSON::Get /exists `array2` /index 6 /end
|
||||
Pop $R0
|
||||
DetailPrint `array2[6] exists? = $R0`
|
||||
|
||||
; Open Example8_1.json to see what it now looks like.
|
||||
nsJSON::Serialize /format /file $EXEDIR\Output\Example8_1.json
|
||||
DetailPrint `Generate: $EXEDIR\Output\Example8_1.json`
|
||||
|
||||
; Now delete the element at the given index.
|
||||
nsJSON::Delete `array1` /index 2 `value 3` /end
|
||||
DetailPrint `Delete: array1[2]->value 3`
|
||||
nsJSON::Delete `array2` /index 5 /end
|
||||
DetailPrint `Delete: array2[5]`
|
||||
|
||||
; Now delete the elements with the given values.
|
||||
nsJSON::Delete `array1` `value 1` /end
|
||||
DetailPrint `Delete: array1->value 1`
|
||||
nsJSON::Delete `array2` `value 2` /end
|
||||
DetailPrint `Delete: array2->value 2`
|
||||
|
||||
; Inspect array1.
|
||||
nsJSON::Get `array1` /end
|
||||
Pop $R0
|
||||
DetailPrint `array1 = [$R0]`
|
||||
|
||||
; Inspect array2.
|
||||
nsJSON::Get `array2` /end
|
||||
Pop $R0
|
||||
DetailPrint `array2 = [$R0]`
|
||||
|
||||
; Open Example8_2.json to see what it now looks like.
|
||||
nsJSON::Serialize /format /file $EXEDIR\Output\Example8_2.json
|
||||
DetailPrint `Generate: $EXEDIR\Output\Example8_2.json`
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `Node iteration test` EXAMPLE9
|
||||
|
||||
nsJSON::Set /file $EXEDIR\Input\Example4.json
|
||||
|
||||
; Get the node count.
|
||||
nsJSON::Get /count `web-app` `servlet` /index 0 `init-param` /end
|
||||
Pop $R0
|
||||
|
||||
DetailPrint `Node web-app->servlet[0]->init-param contains $R0 children:`
|
||||
${For} $R1 0 $R0
|
||||
|
||||
nsJSON::Get /key `web-app` `servlet` /index 0 `init-param` /index $R1 /end
|
||||
Pop $R2
|
||||
nsJSON::Get `web-app` `servlet` /index 0 `init-param` /index $R1 /end
|
||||
Pop $R3
|
||||
nsJSON::Get /type `web-app` `servlet` /index 0 `init-param` /index $R1 /end
|
||||
Pop $R4
|
||||
DetailPrint `$R2 = $R3 (type: $R4)`
|
||||
|
||||
${Next}
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `Load Example5.json into Example4.json` EXAMPLE10
|
||||
|
||||
; Input: Example5.json; output: Example5.json.
|
||||
nsJSON::Set /file $EXEDIR\Input\Example5.json
|
||||
nsJSON::Set `menu` `example4` /file $EXEDIR\Input\Example4.json
|
||||
nsJSON::Serialize /format /file $EXEDIR\Output\Example10.json
|
||||
DetailPrint `Generate: $EXEDIR\Output\Example10.json`
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `Copies Preferences.json into PreferencesNew.json` EXAMPLE11
|
||||
|
||||
; Input: Preferences.json; output: PreferencesNew.json.
|
||||
nsJSON::Set /file $EXEDIR\Input\Preferences.json
|
||||
nsJSON::Serialize /format /file $EXEDIR\Output\PreferencesNew.json
|
||||
DetailPrint `Generate: $EXEDIR\Output\PreferencesNew.json`
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `Copies Preferences2.json into Preferences2New.json` EXAMPLE12
|
||||
|
||||
; Input: Preferences2.json; output: Preferences2New.json.
|
||||
nsJSON::Set /file $EXEDIR\Input\Preferences2.json
|
||||
nsJSON::Serialize /format /file $EXEDIR\Output\Preferences2New.json
|
||||
DetailPrint `Generate: $EXEDIR\Output\Preferences2New.json`
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `Buffer overflow` EXAMPLE13
|
||||
|
||||
; Input: Example2.json.
|
||||
nsJSON::Set /file $EXEDIR\Input\Example2.json
|
||||
nsJSON::Serialize /format
|
||||
Pop $R0
|
||||
StrLen $R1 $R0
|
||||
DetailPrint `Output length: $R1`
|
||||
MessageBox MB_OK $R0
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `Get tests` EXAMPLE14
|
||||
|
||||
nsJSON::Set /value `{ "a": "a", "b": 1, "c": {} }`
|
||||
nsJSON::Serialize /format
|
||||
Pop $R0
|
||||
DetailPrint `Test: $R0`
|
||||
|
||||
nsJSON::Get /key /index 0 /end
|
||||
Pop $R0
|
||||
DetailPrint `Key at index 0: $R0`
|
||||
|
||||
nsJSON::Get /keys /end
|
||||
Pop $R0
|
||||
DetailPrint `Total keys: $R0`
|
||||
StrCpy $R1 0
|
||||
${DoWhile} $R0 > 0
|
||||
Pop $R2
|
||||
DetailPrint `Key at index $R1: $R2`
|
||||
IntOp $R0 $R0 - 1
|
||||
IntOp $R1 $R1 + 1
|
||||
${Loop}
|
||||
|
||||
nsJSON::Get /type /index 0 /end
|
||||
Pop $R0
|
||||
DetailPrint `Type at index 0: $R0`
|
||||
|
||||
nsJSON::Get /exists /index 0 /end
|
||||
Pop $R0
|
||||
DetailPrint `Index 0 exists?: $R0`
|
||||
|
||||
nsJSON::Get /count /end
|
||||
Pop $R0
|
||||
DetailPrint `Count: $R0`
|
||||
|
||||
nsJSON::Get /isempty /end
|
||||
Pop $R0
|
||||
DetailPrint `Is empty?: $R0`
|
||||
|
||||
nsJSON::Get /isempty /index 2 /end
|
||||
Pop $R0
|
||||
DetailPrint `Is empty at index 2?: $R0`
|
||||
|
||||
ClearErrors
|
||||
nsJSON::Get /isempty /index 99 /end
|
||||
IfErrors 0 +2
|
||||
DetailPrint `Is empty at index 99?: Error flag is set`
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `Delete tests` EXAMPLE15
|
||||
|
||||
nsJSON::Set /value `{ "a": "a", "b": 1, "c": {} }`
|
||||
nsJSON::Serialize /format
|
||||
Pop $R0
|
||||
DetailPrint `Test: $R0`
|
||||
|
||||
nsJSON::Delete a /end
|
||||
Pop $R0
|
||||
DetailPrint `Delete key "a": $R0`
|
||||
|
||||
nsJSON::Serialize /format
|
||||
Pop $R0
|
||||
DetailPrint `Now: $R0`
|
||||
|
||||
ClearErrors
|
||||
nsJSON::Delete /index 99 /end
|
||||
IfErrors 0 +2
|
||||
DetailPrint `Delete at index 99: Error flag is set`
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `Empty keys` EXAMPLE16
|
||||
|
||||
nsJSON::Set /value `{ "": "a", 1, "c": {} }`
|
||||
nsJSON::Serialize /format
|
||||
Pop $R0
|
||||
DetailPrint `Test: $R0`
|
||||
|
||||
nsJSON::Set a "" /value `"abc"`
|
||||
nsJSON::Serialize /format
|
||||
Pop $R0
|
||||
DetailPrint `Test: $R0`
|
||||
|
||||
SectionEnd
|
||||
|
||||
LangString Example1Desc ${LANG_ENGLISH} `Parses Example1.json and then generates Output\Example1.json`
|
||||
LangString Example1BDesc ${LANG_ENGLISH} `Parses Example1_Unicode.json (no BOM) and then generates Unicode and ASCII copies`
|
||||
LangString Example1CDesc ${LANG_ENGLISH} `Parses Example1_Unicode_UTF16BE.json (BOM) and then generates Unicode and ASCII copies`
|
||||
LangString Example1DDesc ${LANG_ENGLISH} `Parses Example1_Unicode_UTF16LE.json (BOM) and then generates Unicode and ASCII copies`
|
||||
LangString Example1EDesc ${LANG_ENGLISH} `Parses Example1_Unicode_UTF8.json (sig) and then generates Unicode and ASCII copies`
|
||||
LangString Example2Desc ${LANG_ENGLISH} `Parses Example2.json and then generates Output\Example2.json`
|
||||
LangString Example3Desc ${LANG_ENGLISH} `Parses Example3.json and then generates Output\Example3.json`
|
||||
LangString Example4Desc ${LANG_ENGLISH} `Parses Example4.json and then generates Output\Example4.json`
|
||||
LangString Example5Desc ${LANG_ENGLISH} `Parses Example5.json and then generates Output\Example5.json`
|
||||
LangString Example5BDesc ${LANG_ENGLISH} `Parses Example5.json and then generates Output\Example5B.json using $$R0`
|
||||
LangString Example6Desc ${LANG_ENGLISH} `Generates Output\Example6.json using Parse, Set and Serialize`
|
||||
LangString Example7Desc ${LANG_ENGLISH} `Parses Example1.json and then reads values from the tree using Get`
|
||||
LangString Example8Desc ${LANG_ENGLISH} `Tests JSON array manipulation while generating Output\Example8.json`
|
||||
LangString Example9Desc ${LANG_ENGLISH} `Iterates through some nodes in Example4.json by index`
|
||||
LangString Example10Desc ${LANG_ENGLISH} `Parses Example5.json into Example4.json and then generates Output\Example10.json`
|
||||
LangString Example11Desc ${LANG_ENGLISH} `Parses Preferences.json and then generates Output\PreferencesNew.json`
|
||||
LangString Example12Desc ${LANG_ENGLISH} `Parses Preferences2.json and then generates Output\Preferences2New.json`
|
||||
LangString Example13Desc ${LANG_ENGLISH} `Parses Example2.json (size>NSIS_MAX_STRLEN) and outputs the result.`
|
||||
LangString Example14Desc ${LANG_ENGLISH} `Simple Get function tests.`
|
||||
LangString Example15Desc ${LANG_ENGLISH} `Simple Delete function tests.`
|
||||
LangString Example16Desc ${LANG_ENGLISH} `Empty/missing value keys tests.`
|
||||
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${EXAMPLE1} $(Example1Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${EXAMPLE1B} $(Example1BDesc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${EXAMPLE1C} $(Example1CDesc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${EXAMPLE1D} $(Example1DDesc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${EXAMPLE1E} $(Example1EDesc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${EXAMPLE2} $(Example2Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${EXAMPLE3} $(Example3Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${EXAMPLE4} $(Example4Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${EXAMPLE5} $(Example5Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${EXAMPLE5B} $(Example5BDesc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${EXAMPLE6} $(Example6Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${EXAMPLE7} $(Example7Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${EXAMPLE8} $(Example8Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${EXAMPLE9} $(Example9Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${EXAMPLE10} $(Example10Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${EXAMPLE11} $(Example11Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${EXAMPLE12} $(Example12Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${EXAMPLE13} $(Example13Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${EXAMPLE14} $(Example14Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${EXAMPLE15} $(Example15Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${EXAMPLE16} $(Example16Desc)
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
@@ -0,0 +1,127 @@
|
||||
!include MUI2.nsh
|
||||
|
||||
!define HttpWebRequestURL `http://www.afrowsoft.co.uk/test/HttpWebRequest.php`
|
||||
|
||||
Name `nsJSON plug-in`
|
||||
OutFile nsJSON_HttpWebRequest.exe
|
||||
RequestExecutionLevel user
|
||||
ShowInstDetails show
|
||||
|
||||
!define MUI_COMPONENTSPAGE_SMALLDESC
|
||||
!insertmacro MUI_PAGE_COMPONENTS
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
|
||||
!insertmacro MUI_LANGUAGE English
|
||||
|
||||
Section
|
||||
|
||||
CreateDirectory $EXEDIR\Output
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `POST` DATAPOST
|
||||
|
||||
StrCpy $R0 `{ "Name": "Jonathan Doe", "Age": 23, "Formula": "a + b == 13%!", "ViewTimes": [ "10:00", "13:43", "21:19", "03:10" ] }`
|
||||
|
||||
nsJSON::Set /tree HttpWebRequest /value `{ "Url": "${HttpWebRequestURL}", "Verb": "POST", "Agent": "Mozilla/5.0 (Windows NT 10.0; rv:10.0) Gecko/20100101 Firefox/10.0" }`
|
||||
DetailPrint `Send: $R0`
|
||||
DetailPrint `Send to: ${HttpWebRequestURL}`
|
||||
nsJSON::Set /tree HttpWebRequest Data /value $R0
|
||||
|
||||
nsJSON::Set /tree HttpWebRequest Params /value `{ "a": "string", "b": true, "c": 2 }`
|
||||
|
||||
DetailPrint `Generate: $EXEDIR\Output\HttpWebRequest.json from HttpWebRequest`
|
||||
nsJSON::Serialize /tree HttpWebRequest /format /file $EXEDIR\Output\HttpWebRequest.json
|
||||
|
||||
DetailPrint `Download: ${HttpWebRequestURL}`
|
||||
nsJSON::Set /tree HttpWebResponse /http HttpWebRequest
|
||||
|
||||
DetailPrint `Generate: $EXEDIR\Output\HttpWebResponse.json from HttpWebResponse`
|
||||
nsJSON::Serialize /tree HttpWebResponse /format /file $EXEDIR\Output\HttpWebResponse.json
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `Async POST` DATAPOSTASYNC
|
||||
|
||||
StrCpy $R0 `{ "Name": "Jonathan Doe", "Age": 23, "Formula": "a + b == 13%!", "ViewTimes": [ "10:00", "13:43", "21:19", "03:10" ] }`
|
||||
|
||||
nsJSON::Set /tree HttpWebRequest /value `{ "Url": "${HttpWebRequestURL}", "Verb": "POST", "Async": true }`
|
||||
DetailPrint `Send: $R0`
|
||||
DetailPrint `Send to: ${HttpWebRequestURL}`
|
||||
nsJSON::Set /tree HttpWebRequest Data /value $R0
|
||||
|
||||
nsJSON::Set /tree HttpWebRequest Params /value `{ "a": "string", "b": true, "c": 2 }`
|
||||
|
||||
DetailPrint `Generate: $EXEDIR\Output\HttpWebRequest.json from HttpWebRequest`
|
||||
nsJSON::Serialize /tree HttpWebRequest /format /file $EXEDIR\Output\HttpWebRequest.json
|
||||
|
||||
DetailPrint `Download: ${HttpWebRequestURL}`
|
||||
nsJSON::Set /tree AsyncHttpWebResponse /http HttpWebRequest
|
||||
|
||||
; Wait until done.
|
||||
${Do}
|
||||
Sleep 1000
|
||||
nsJSON::Wait HttpWebRequest /timeout 0
|
||||
Pop $R0
|
||||
${If} $R0 != wait
|
||||
${Break}
|
||||
${EndIf}
|
||||
DetailPrint `Waiting...`
|
||||
${Loop}
|
||||
|
||||
DetailPrint `Finished...`
|
||||
|
||||
DetailPrint `Generate: $EXEDIR\Output\AsyncHttpWebResponse.json from AsyncHttpWebResponse`
|
||||
nsJSON::Serialize /tree AsyncHttpWebResponse /format /file $EXEDIR\Output\AsyncHttpWebResponse.json
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `Raw POST` RAWDATAPOST
|
||||
|
||||
StrCpy $R0 `Name=Jonathan+Doe&Age=23&Formula=a+%2B+b+%3D%3D+13%25%21&ViewTimes[]=10%3A00&ViewTimes[]=13%3A43&ViewTimes[]=21%3A19&ViewTimes[]=03%3A10`
|
||||
|
||||
nsJSON::Set /tree HttpWebRequest /value `{ "Url": "${HttpWebRequestURL}", "Verb": "POST", "DataType": "Raw" }`
|
||||
DetailPrint `Send: $R0`
|
||||
DetailPrint `Send to: ${HttpWebRequestURL}`
|
||||
nsJSON::Set /tree HttpWebRequest Data /value `"$R0"`
|
||||
|
||||
DetailPrint `Generate: $EXEDIR\Output\HttpWebRequest_Raw.json from HttpWebRequest`
|
||||
nsJSON::Serialize /tree HttpWebRequest /format /file $EXEDIR\Output\HttpWebRequest_Raw.json
|
||||
|
||||
DetailPrint `Download: ${HttpWebRequestURL}`
|
||||
nsJSON::Set /tree HttpWebResponse /http HttpWebRequest
|
||||
|
||||
DetailPrint `Generate: $EXEDIR\Output\HttpWebResponse_Raw.json from HttpWebResponse`
|
||||
nsJSON::Serialize /tree HttpWebResponse /format /file $EXEDIR\Output\HttpWebResponse_Raw.json
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section /o `JSON POST` JSONPOST
|
||||
|
||||
nsJSON::Set /tree HttpWebRequest /value `{ "Url": "${HttpWebRequestURL}", "Verb": "POST", "DataType": "JSON" }`
|
||||
DetailPrint `Send: $EXEDIR\Input\Example1.json`
|
||||
DetailPrint `Send to: ${HttpWebRequestURL}`
|
||||
nsJSON::Set /tree HttpWebRequest Data /file $EXEDIR\Input\Example1.json
|
||||
|
||||
DetailPrint `Generate: $EXEDIR\Output\HttpWebRequest_JSON.json from HttpWebRequest`
|
||||
nsJSON::Serialize /tree HttpWebRequest /format /file $EXEDIR\Output\HttpWebRequest_JSON.json
|
||||
|
||||
DetailPrint `Download: ${HttpWebRequestURL}`
|
||||
nsJSON::Set /tree HttpWebResponse /http HttpWebRequest
|
||||
|
||||
DetailPrint `Generate: $EXEDIR\Output\HttpWebResponse_JSON.json from HttpWebResponse`
|
||||
nsJSON::Serialize /tree HttpWebResponse /format /file $EXEDIR\Output\HttpWebResponse_JSON.json
|
||||
|
||||
SectionEnd
|
||||
|
||||
LangString DataPOSTDesc ${LANG_ENGLISH} `Sends POST data and parses the JSON response`
|
||||
LangString DataPOSTAsyncDesc ${LANG_ENGLISH} `Asynchronously sends POST data and parses the JSON response`
|
||||
LangString RawDataPOSTDesc ${LANG_ENGLISH} `Sends raw POST data and parses the JSON response`
|
||||
LangString JSONPOSTDesc ${LANG_ENGLISH} `Sends Example1.json and parses the JSON response`
|
||||
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${DATAPOST} $(DataPOSTDesc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${DATAPOSTASYNC} $(DataPOSTAsyncDesc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${RAWDATAPOST} $(RawDataPOSTDesc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${JSONPOST} $(JSONPOSTDesc)
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"glossary": {
|
||||
"title": "example glossary",
|
||||
"GlossDiv": {
|
||||
"title": "S",
|
||||
"GlossList": {
|
||||
"GlossEntry": {
|
||||
"ID": "SGML",
|
||||
"SortAs": "SGML",
|
||||
"GlossTerm": "Standard Generalized Markup Language",
|
||||
"Acronym": "SGML",
|
||||
"Abbrev": "ISO 8879:1986",
|
||||
"GlossDef": {
|
||||
"para": "A meta-markup language, used to create markup languages such as DocBook.",
|
||||
"GlossSeeAlso": ["GML", "XML"]
|
||||
},
|
||||
"GlossSee": "markup"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"glossary": {
|
||||
"title": "example glossary",
|
||||
"GlossDiv": {
|
||||
"title": "S",
|
||||
"GlossList": {
|
||||
"GlossEntry": {
|
||||
"ID": "SGML",
|
||||
"SortAs": "SGML",
|
||||
"GlossTerm": "Standard Generalized Markup Language",
|
||||
"Acronym": "SGML",
|
||||
"Abbrev": "ISO 8879:1986",
|
||||
"GlossDef": {
|
||||
"para": "A meta-markup language, used to create markup languages such as DocBook.",
|
||||
"GlossSeeAlso": ["GML", "XML"]
|
||||
},
|
||||
"GlossSee": "markup"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"menu": {
|
||||
"id": "file",
|
||||
"value": "File",
|
||||
"popup": {
|
||||
"menuitem": [
|
||||
{"value": "New", "onclick": "CreateNewDoc()"},
|
||||
{"value": "Open", "onclick": "OpenDoc()"},
|
||||
{"value": "Close", "onclick": "CloseDoc()"},
|
||||
{"value": "Import", "onclick": "Import('somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_somereallylongvalue_')"}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"widget": {
|
||||
"debug": "on",
|
||||
"window": {
|
||||
"title": "Sample Konfabulator Widget",
|
||||
"name": "main_window",
|
||||
"width": 500,
|
||||
"height": 500
|
||||
},
|
||||
"image": {
|
||||
"src": "Images/Sun.png",
|
||||
"name": "sun1",
|
||||
"hOffset": 250,
|
||||
"vOffset": 250,
|
||||
"alignment": "center"
|
||||
},
|
||||
"text": {
|
||||
"data": "Click Here",
|
||||
"size": 36,
|
||||
"style": "bold",
|
||||
"name": "text1",
|
||||
"hOffset": 250,
|
||||
"vOffset": 100,
|
||||
"alignment": "center",
|
||||
"onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
{
|
||||
"web-app": {
|
||||
"servlet": [
|
||||
{
|
||||
"servlet-name": "cofaxCDS",
|
||||
"servlet-class": "org.cofax.cds.CDSServlet",
|
||||
"init-param": {
|
||||
"configGlossary:installationAt": "Philadelphia, PA",
|
||||
"configGlossary:adminEmail": "ksm@pobox.com",
|
||||
"configGlossary:poweredBy": "Cofax",
|
||||
"configGlossary:poweredByIcon": "/images/cofax.gif",
|
||||
"configGlossary:staticPath": "/content/static",
|
||||
"templateProcessorClass": "org.cofax.WysiwygTemplate",
|
||||
"templateLoaderClass": "org.cofax.FilesTemplateLoader",
|
||||
"templatePath": "templates",
|
||||
"templateOverridePath": "",
|
||||
"defaultListTemplate": "listTemplate.htm",
|
||||
"defaultFileTemplate": "articleTemplate.htm",
|
||||
"useJSP": false,
|
||||
"jspListTemplate": "listTemplate.jsp",
|
||||
"jspFileTemplate": "articleTemplate.jsp",
|
||||
"cachePackageTagsTrack": 200,
|
||||
"cachePackageTagsStore": 200,
|
||||
"cachePackageTagsRefresh": 60,
|
||||
"cacheTemplatesTrack": 100,
|
||||
"cacheTemplatesStore": 50,
|
||||
"cacheTemplatesRefresh": 15,
|
||||
"cachePagesTrack": 200,
|
||||
"cachePagesStore": 100,
|
||||
"cachePagesRefresh": 10,
|
||||
"cachePagesDirtyRead": 10,
|
||||
"searchEngineListTemplate": "forSearchEnginesList.htm",
|
||||
"searchEngineFileTemplate": "forSearchEngines.htm",
|
||||
"searchEngineRobotsDb": "WEB-INF/robots.db",
|
||||
"useDataStore": true,
|
||||
"dataStoreClass": "org.cofax.SqlDataStore",
|
||||
"redirectionClass": "org.cofax.SqlRedirection",
|
||||
"dataStoreName": "cofax",
|
||||
"dataStoreDriver": "com.microsoft.jdbc.sqlserver.SQLServerDriver",
|
||||
"dataStoreUrl": "jdbc:microsoft:sqlserver://LOCALHOST:1433;DatabaseName=goon",
|
||||
"dataStoreUser": "sa",
|
||||
"dataStorePassword": "dataStoreTestQuery",
|
||||
"dataStoreTestQuery": "SET NOCOUNT ON;select test='test';",
|
||||
"dataStoreLogFile": "/usr/local/tomcat/logs/datastore.log",
|
||||
"dataStoreInitConns": 10,
|
||||
"dataStoreMaxConns": 100,
|
||||
"dataStoreConnUsageLimit": 100,
|
||||
"dataStoreLogLevel": "debug",
|
||||
"maxUrlLength": 500
|
||||
}
|
||||
},
|
||||
{
|
||||
"servlet-name": "cofaxEmail",
|
||||
"servlet-class": "org.cofax.cds.EmailServlet",
|
||||
"init-param": {
|
||||
"mailHost": "mail1",
|
||||
"mailHostOverride": "mail2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"servlet-name": "cofaxAdmin",
|
||||
"servlet-class": "org.cofax.cds.AdminServlet"
|
||||
},
|
||||
{
|
||||
"servlet-name": "fileServlet",
|
||||
"servlet-class": "org.cofax.cds.FileServlet"
|
||||
},
|
||||
{
|
||||
"servlet-name": "cofaxTools",
|
||||
"servlet-class": "org.cofax.cms.CofaxToolsServlet",
|
||||
"init-param": {
|
||||
"templatePath": "toolstemplates/",
|
||||
"log": 1,
|
||||
"logLocation": "/usr/local/tomcat/logs/CofaxTools.log",
|
||||
"logMaxSize": "",
|
||||
"dataLog": 1,
|
||||
"dataLogLocation": "/usr/local/tomcat/logs/dataLog.log",
|
||||
"dataLogMaxSize": "",
|
||||
"removePageCache": "/content/admin/remove?cache=pages&id=",
|
||||
"removeTemplateCache": "/content/admin/remove?cache=templates&id=",
|
||||
"fileTransferFolder": "/usr/local/tomcat/webapps/content/fileTransferFolder",
|
||||
"lookInContext": 1,
|
||||
"adminGroupID": 4,
|
||||
"betaServer": true
|
||||
}
|
||||
} ],
|
||||
"servlet-mapping": {
|
||||
"cofaxCDS": "/",
|
||||
"cofaxEmail": "/cofaxutil/aemail/*",
|
||||
"cofaxAdmin": "/admin/*",
|
||||
"fileServlet": "/static/*",
|
||||
"cofaxTools": "/tools/*"
|
||||
},
|
||||
"taglib": {
|
||||
"taglib-uri": "cofax.tld",
|
||||
"taglib-location": "/WEB-INF/tlds/cofax.tld"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"menu": {
|
||||
"header": "SVG Viewer",
|
||||
"items": [
|
||||
{"id": "Open"},
|
||||
{"id": "OpenNew", "label": "Open New"},
|
||||
null,
|
||||
{"id": "ZoomIn", "label": "Zoom In"},
|
||||
{"id": "ZoomOut", "label": "Zoom Out"},
|
||||
{"id": "OriginalView", "label": "Original View"},
|
||||
null,
|
||||
{"id": "Quality"},
|
||||
{"id": "Pause"},
|
||||
{"id": "Mute"},
|
||||
null,
|
||||
{"id": "Find", "label": "Find..."},
|
||||
{"id": "FindAgain", "label": "Find Again"},
|
||||
{"id": "Copy"},
|
||||
{"id": "CopyAgain", "label": "Copy Again"},
|
||||
{"id": "CopySVG", "label": "Copy SVG"},
|
||||
{"id": "ViewSVG", "label": "View SVG"},
|
||||
{"id": "ViewSource", "label": "View Source"},
|
||||
{"id": "SaveAs", "label": "Save As"},
|
||||
null,
|
||||
{"id": "Help"},
|
||||
{"id": "About", "label": "About Adobe CVG Viewer..."}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,992 @@
|
||||
{
|
||||
"apps": {
|
||||
"shortcuts_have_been_created": true
|
||||
},
|
||||
"browser": {
|
||||
"last_known_google_url": "https://www.google.co.uk/",
|
||||
"last_prompted_google_url": "https://www.google.co.uk/",
|
||||
"window_placement": {
|
||||
"bottom": 1087,
|
||||
"left": 682,
|
||||
"maximized": false,
|
||||
"right": 1627,
|
||||
"top": 67,
|
||||
"work_area_bottom": 1040,
|
||||
"work_area_left": 0,
|
||||
"work_area_right": 1920,
|
||||
"work_area_top": 0
|
||||
}
|
||||
},
|
||||
"countryid_at_install": 21843,
|
||||
"default_apps_install_state": 3,
|
||||
"default_search_provider": {
|
||||
"alternate_urls": [ "{google:baseURL}#q={searchTerms}", "{google:baseURL}search#q={searchTerms}", "{google:baseURL}webhp#q={searchTerms}" ],
|
||||
"enabled": true,
|
||||
"encodings": "UTF-8",
|
||||
"icon_url": "http://www.google.com/favicon.ico",
|
||||
"id": "2",
|
||||
"image_url": "{google:baseURL}searchbyimage/upload",
|
||||
"image_url_post_params": "encoded_image={google:imageThumbnail},image_url={google:imageURL},sbisrc={google:imageSearchSource},original_width={google:imageOriginalWidth},original_height={google:imageOriginalHeight}",
|
||||
"instant_url": "{google:baseURL}webhp?sourceid=chrome-instant&{google:RLZ}{google:forceInstantResults}{google:instantExtendedEnabledParameter}{google:ntpIsThemedParameter}{google:omniboxStartMarginParameter}ie={inputEncoding}",
|
||||
"instant_url_post_params": "",
|
||||
"keyword": "google.co.uk",
|
||||
"name": "Google",
|
||||
"new_tab_url": "{google:baseURL}_/chrome/newtab?{google:RLZ}{google:instantExtendedEnabledParameter}{google:ntpIsThemedParameter}ie={inputEncoding}",
|
||||
"prepopulate_id": "1",
|
||||
"search_terms_replacement_key": "espv",
|
||||
"search_url": "{google:baseURL}search?q={searchTerms}&{google:RLZ}{google:originalQueryForSuggestion}{google:assistedQueryStats}{google:searchFieldtrialParameter}{google:bookmarkBarPinned}{google:searchClient}{google:sourceId}{google:instantExtendedEnabledParameter}{google:omniboxStartMarginParameter}ie={inputEncoding}",
|
||||
"search_url_post_params": "",
|
||||
"suggest_url": "{google:baseSuggestURL}search?{google:searchFieldtrialParameter}client={google:suggestClient}&gs_ri={google:suggestRid}&xssi=t&q={searchTerms}&{google:cursorPosition}{google:currentPageUrl}{google:pageClassification}sugkey={google:suggestAPIKeyParameter}",
|
||||
"suggest_url_post_params": ""
|
||||
},
|
||||
"extensions": {
|
||||
"alerts": {
|
||||
"initialized": true
|
||||
},
|
||||
"autoupdate": {
|
||||
"next_check": "13040578803125671",
|
||||
"test": "E:\\",
|
||||
"test2": "E:\\\""
|
||||
},
|
||||
"chrome_url_overrides": {
|
||||
"bookmarks": [ "chrome-extension://eemcgdkfndhakfknompkggombfjjjeno/main.html" ]
|
||||
},
|
||||
"known_disabled": [ ],
|
||||
"last_chrome_version": "33.0.1750.154",
|
||||
"settings": {
|
||||
"ahfgeienlihckogmohjhadlkjgocpleb": {
|
||||
"active_permissions": {
|
||||
"api": [ "management", "webstorePrivate" ],
|
||||
"manifest_permissions": [ ]
|
||||
},
|
||||
"app_launcher_ordinal": "t",
|
||||
"content_settings": [ ],
|
||||
"creation_flags": 1,
|
||||
"events": [ ],
|
||||
"from_bookmark": false,
|
||||
"from_webstore": false,
|
||||
"incognito_content_settings": [ ],
|
||||
"incognito_preferences": {
|
||||
|
||||
},
|
||||
"install_time": "13040559080062671",
|
||||
"location": 5,
|
||||
"manifest": {
|
||||
"app": {
|
||||
"launch": {
|
||||
"web_url": "https://chrome.google.com/webstore"
|
||||
},
|
||||
"urls": [ "https://chrome.google.com/webstore" ]
|
||||
},
|
||||
"description": "Chrome Web Store",
|
||||
"icons": {
|
||||
"128": "webstore_icon_128.png",
|
||||
"16": "webstore_icon_16.png"
|
||||
},
|
||||
"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCtl3tO0osjuzRsf6xtD2SKxPlTfuoy7AWoObysitBPvH5fE1NaAA1/2JkPWkVDhdLBWLaIBPYeXbzlHp3y4Vv/4XG+aN5qFE3z+1RU/NqkzVYHtIpVScf3DjTYtKVL66mzVGijSoAIwbFCC3LpGdaoe6Q1rSRDp76wR6jjFzsYwQIDAQAB",
|
||||
"name": "Store",
|
||||
"permissions": [ "webstorePrivate", "management" ],
|
||||
"version": "0.2"
|
||||
},
|
||||
"page_ordinal": "n",
|
||||
"path": "C:\\Program Files (x86)\\Google\\Chrome\\Application\\33.0.1750.154\\resources\\web_store",
|
||||
"preferences": {
|
||||
|
||||
},
|
||||
"regular_only_preferences": {
|
||||
|
||||
},
|
||||
"was_installed_by_default": false
|
||||
},
|
||||
"aohghmighlieiainnegkcijnfilokake": {
|
||||
"ack_external": true,
|
||||
"active_permissions": {
|
||||
"api": [ ],
|
||||
"manifest_permissions": [ ]
|
||||
},
|
||||
"app_launcher_ordinal": "w",
|
||||
"content_settings": [ ],
|
||||
"creation_flags": 137,
|
||||
"events": [ ],
|
||||
"from_bookmark": false,
|
||||
"from_webstore": true,
|
||||
"granted_permissions": {
|
||||
"api": [ ],
|
||||
"manifest_permissions": [ ]
|
||||
},
|
||||
"incognito_content_settings": [ ],
|
||||
"incognito_preferences": {
|
||||
|
||||
},
|
||||
"initial_keybindings_set": true,
|
||||
"install_time": "13040559089376747",
|
||||
"lastpingday": "13040550028882747",
|
||||
"location": 1,
|
||||
"manifest": {
|
||||
"api_console_project_id": "619683526622",
|
||||
"app": {
|
||||
"launch": {
|
||||
"local_path": "main.html"
|
||||
}
|
||||
},
|
||||
"container": "GOOGLE_DRIVE",
|
||||
"current_locale": "en_GB",
|
||||
"default_locale": "en_US",
|
||||
"description": "Create and edit documents",
|
||||
"icons": {
|
||||
"128": "icon_128.png",
|
||||
"16": "icon_16.png"
|
||||
},
|
||||
"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJhLK6fk/BWTEvJhywpk7jDe4A2r0bGXGOLZW4/AdBp3IiD9o9nx4YjLAtv0tIPxi7MvFd/GUUbQBwHT5wQWONJj1z/0Rc2qBkiJA0yqXh42p0snuA8dCfdlhOLsp7/XTMEwAVasjV5hC4awl78eKfJYlZ+8fM/UldLWJ/51iBQwIDAQAB",
|
||||
"manifest_version": 2,
|
||||
"name": "Google Docs",
|
||||
"offline_enabled": true,
|
||||
"update_url": "http://clients2.google.com/service/update2/crx",
|
||||
"version": "0.5"
|
||||
},
|
||||
"page_ordinal": "n",
|
||||
"path": "aohghmighlieiainnegkcijnfilokake\\0.5_0",
|
||||
"preferences": {
|
||||
|
||||
},
|
||||
"regular_only_preferences": {
|
||||
|
||||
},
|
||||
"state": 1,
|
||||
"was_installed_by_default": true
|
||||
},
|
||||
"apdfllckaahabafndbhieahigkjlhalf": {
|
||||
"ack_external": true,
|
||||
"active_permissions": {
|
||||
"api": [ "background", "clipboardRead", "clipboardWrite", "notifications", "unlimitedStorage" ],
|
||||
"manifest_permissions": [ ]
|
||||
},
|
||||
"app_launcher_ordinal": "yn",
|
||||
"content_settings": [ ],
|
||||
"creation_flags": 137,
|
||||
"events": [ ],
|
||||
"from_bookmark": false,
|
||||
"from_webstore": true,
|
||||
"granted_permissions": {
|
||||
"api": [ "background", "clipboardRead", "clipboardWrite", "notifications", "unlimitedStorage" ],
|
||||
"manifest_permissions": [ ]
|
||||
},
|
||||
"incognito_content_settings": [ ],
|
||||
"incognito_preferences": {
|
||||
|
||||
},
|
||||
"install_time": "13040559088240747",
|
||||
"lastpingday": "13040550028882747",
|
||||
"location": 1,
|
||||
"manifest": {
|
||||
"app": {
|
||||
"launch": {
|
||||
"web_url": "https://drive.google.com/?usp=chrome_app"
|
||||
},
|
||||
"urls": [ "http://docs.google.com/", "http://drive.google.com/", "https://docs.google.com/", "https://drive.google.com/" ]
|
||||
},
|
||||
"background": {
|
||||
"allow_js_access": false
|
||||
},
|
||||
"current_locale": "en_GB",
|
||||
"default_locale": "en_US",
|
||||
"description": "Google Drive: create, share and keep all your stuff in one place.",
|
||||
"icons": {
|
||||
"128": "128.png"
|
||||
},
|
||||
"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIl5KlKwL2TSkntkpY3naLLz5jsN0YwjhZyObcTOK6Nda4Ie21KRqZau9lx5SHcLh7pE2/S9OiArb+na2dn7YK5EvH+aRXS1ec3uxVlBhqLdnleVgwgwlg5fH95I52IeHcoeK6pR4hW/Nv39GNlI/Uqk6O6GBCCsAxYrdxww9BiQIDAQAB",
|
||||
"manifest_version": 2,
|
||||
"name": "Google Drive",
|
||||
"offline_enabled": true,
|
||||
"options_page": "https://drive.google.com/settings",
|
||||
"permissions": [ "background", "clipboardRead", "clipboardWrite", "notifications", "unlimitedStorage" ],
|
||||
"update_url": "http://clients2.google.com/service/update2/crx",
|
||||
"version": "6.3"
|
||||
},
|
||||
"page_ordinal": "n",
|
||||
"path": "apdfllckaahabafndbhieahigkjlhalf\\6.3_0",
|
||||
"preferences": {
|
||||
|
||||
},
|
||||
"regular_only_preferences": {
|
||||
|
||||
},
|
||||
"state": 1,
|
||||
"was_installed_by_default": true
|
||||
},
|
||||
"blpcfgokakmgnkcojhhkbfbldkacnbeo": {
|
||||
"ack_external": true,
|
||||
"active_permissions": {
|
||||
"api": [ ],
|
||||
"manifest_permissions": [ ]
|
||||
},
|
||||
"app_launcher_ordinal": "x",
|
||||
"content_settings": [ ],
|
||||
"creation_flags": 153,
|
||||
"events": [ ],
|
||||
"from_bookmark": true,
|
||||
"from_webstore": true,
|
||||
"granted_permissions": {
|
||||
"api": [ ],
|
||||
"manifest_permissions": [ ]
|
||||
},
|
||||
"incognito_content_settings": [ ],
|
||||
"incognito_preferences": {
|
||||
|
||||
},
|
||||
"install_time": "13040559088955747",
|
||||
"lastpingday": "13040550028882747",
|
||||
"location": 1,
|
||||
"manifest": {
|
||||
"app": {
|
||||
"launch": {
|
||||
"container": "tab",
|
||||
"web_url": "http://www.youtube.com/?feature=ytca"
|
||||
},
|
||||
"web_content": {
|
||||
"enabled": true,
|
||||
"origin": "http://www.youtube.com"
|
||||
}
|
||||
},
|
||||
"current_locale": "en_GB",
|
||||
"default_locale": "en",
|
||||
"description": "The world's most popular online video community.",
|
||||
"icons": {
|
||||
"128": "128.png"
|
||||
},
|
||||
"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDC/HotmFlyuz5FaHaIbVBhhL4BwbcUtsfWwzgUMpZt5ZsLB2nW/Y5xwNkkPANYGdVsJkT2GPpRRIKBO5QiJ7jPMa3EZtcZHpkygBlQLSjMhdrAKevpKgIl6YTkwzNvExY6rzVDzeE9zqnIs33eppY4S5QcoALMxuSWlMKqgFQjHQIDAQAB",
|
||||
"manifest_version": 2,
|
||||
"name": "YouTube",
|
||||
"permissions": [ "appNotifications" ],
|
||||
"update_url": "http://clients2.google.com/service/update2/crx",
|
||||
"version": "4.2.6"
|
||||
},
|
||||
"page_ordinal": "n",
|
||||
"path": "blpcfgokakmgnkcojhhkbfbldkacnbeo\\4.2.6_0",
|
||||
"preferences": {
|
||||
|
||||
},
|
||||
"regular_only_preferences": {
|
||||
|
||||
},
|
||||
"state": 1,
|
||||
"was_installed_by_default": true
|
||||
},
|
||||
"coobgpohoikkiipiblmjeljniedjpjpf": {
|
||||
"ack_external": true,
|
||||
"active_permissions": {
|
||||
"api": [ ],
|
||||
"manifest_permissions": [ ]
|
||||
},
|
||||
"app_launcher_ordinal": "z",
|
||||
"content_settings": [ ],
|
||||
"creation_flags": 153,
|
||||
"events": [ ],
|
||||
"from_bookmark": true,
|
||||
"from_webstore": true,
|
||||
"granted_permissions": {
|
||||
"api": [ ],
|
||||
"manifest_permissions": [ ]
|
||||
},
|
||||
"incognito_content_settings": [ ],
|
||||
"incognito_preferences": {
|
||||
|
||||
},
|
||||
"install_time": "13040559087816747",
|
||||
"lastpingday": "13040550028882747",
|
||||
"location": 1,
|
||||
"manifest": {
|
||||
"app": {
|
||||
"launch": {
|
||||
"web_url": "http://www.google.com/webhp?source=search_app"
|
||||
},
|
||||
"urls": [ "*://www.google.com/search", "*://www.google.com/webhp", "*://www.google.com/imgres" ]
|
||||
},
|
||||
"current_locale": "en_GB",
|
||||
"default_locale": "en",
|
||||
"description": "The fastest way to search the web.",
|
||||
"icons": {
|
||||
"128": "128.png",
|
||||
"16": "16.png",
|
||||
"32": "32.png",
|
||||
"48": "48.png"
|
||||
},
|
||||
"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIiso3Loy5VJHL40shGhUl6it5ZG55XB9q/2EX6aa88jAxwPutbCgy5d9bm1YmBzLfSgpX4xcpgTU08ydWbd7b50fbkLsqWl1mRhxoqnN01kuNfv9Hbz9dWWYd+O4ZfD3L2XZs0wQqo0y6k64n+qeLkUMd1MIhf6MR8Xz1SOA8pwIDAQAB",
|
||||
"manifest_version": 2,
|
||||
"name": "Google Search",
|
||||
"permissions": [ ],
|
||||
"update_url": "http://clients2.google.com/service/update2/crx",
|
||||
"version": "0.0.0.20"
|
||||
},
|
||||
"page_ordinal": "n",
|
||||
"path": "coobgpohoikkiipiblmjeljniedjpjpf\\0.0.0.20_0",
|
||||
"preferences": {
|
||||
|
||||
},
|
||||
"regular_only_preferences": {
|
||||
|
||||
},
|
||||
"state": 1,
|
||||
"was_installed_by_default": true
|
||||
},
|
||||
"eemcgdkfndhakfknompkggombfjjjeno": {
|
||||
"active_permissions": {
|
||||
"api": [ "bookmarks", "bookmarkManagerPrivate", "metricsPrivate", "systemPrivate", "tabs" ],
|
||||
"explicit_host": [ "chrome://favicon/*", "chrome://resources/*" ],
|
||||
"manifest_permissions": [ ]
|
||||
},
|
||||
"content_settings": [ ],
|
||||
"creation_flags": 1,
|
||||
"events": [ ],
|
||||
"from_bookmark": false,
|
||||
"from_webstore": false,
|
||||
"incognito_content_settings": [ ],
|
||||
"incognito_preferences": {
|
||||
|
||||
},
|
||||
"initial_keybindings_set": true,
|
||||
"install_time": "13040559080062671",
|
||||
"location": 5,
|
||||
"manifest": {
|
||||
"chrome_url_overrides": {
|
||||
"bookmarks": "main.html"
|
||||
},
|
||||
"content_security_policy": "object-src 'none'; script-src chrome://resources 'self'",
|
||||
"description": "Bookmark Manager",
|
||||
"icons": {
|
||||
|
||||
},
|
||||
"incognito": "split",
|
||||
"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQcByy+eN9jzazWF/DPn7NW47sW7lgmpk6eKc0BQM18q8hvEM3zNm2n7HkJv/R6fU+X5mtqkDuKvq5skF6qqUF4oEyaleWDFhd1xFwV7JV+/DU7bZ00w2+6gzqsabkerFpoP33ZRIw7OviJenP0c0uWqDWF8EGSyMhB3txqhOtiQIDAQAB",
|
||||
"manifest_version": 2,
|
||||
"name": "Bookmark Manager",
|
||||
"permissions": [ "bookmarks", "bookmarkManagerPrivate", "metricsPrivate", "systemPrivate", "tabs", "chrome://favicon/", "chrome://resources/" ],
|
||||
"version": "0.1"
|
||||
},
|
||||
"path": "C:\\Program Files (x86)\\Google\\Chrome\\Application\\33.0.1750.154\\resources\\bookmark_manager",
|
||||
"preferences": {
|
||||
|
||||
},
|
||||
"regular_only_preferences": {
|
||||
|
||||
},
|
||||
"was_installed_by_default": false
|
||||
},
|
||||
"ennkphjdgehloodpbhlhldgbnhmacadg": {
|
||||
"active_permissions": {
|
||||
"api": [ "app.currentWindowInternal", "app.runtime", "app.window" ],
|
||||
"explicit_host": [ "chrome://settings-frame/*" ],
|
||||
"manifest_permissions": [ ]
|
||||
},
|
||||
"content_settings": [ ],
|
||||
"creation_flags": 1,
|
||||
"events": [ "app.runtime.onLaunched" ],
|
||||
"from_bookmark": false,
|
||||
"from_webstore": false,
|
||||
"incognito_content_settings": [ ],
|
||||
"incognito_preferences": {
|
||||
|
||||
},
|
||||
"initial_keybindings_set": true,
|
||||
"install_time": "13040559080062671",
|
||||
"location": 5,
|
||||
"manifest": {
|
||||
"app": {
|
||||
"background": {
|
||||
"scripts": [ "settings_app.js" ]
|
||||
}
|
||||
},
|
||||
"description": "Settings",
|
||||
"display_in_launcher": false,
|
||||
"icons": {
|
||||
"128": "settings_app_icon_128.png",
|
||||
"16": "settings_app_icon_16.png",
|
||||
"32": "settings_app_icon_32.png",
|
||||
"48": "settings_app_icon_48.png"
|
||||
},
|
||||
"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDoVDPGX6fvKPVVgc+gnkYlGqHuuapgFDyKhsy4z7UzRLO/95zXPv8h8e5EacqbAQJLUbP6DERH5jowyNEYVxq9GJyntJMwP1ejvoz/52hnY3CCGGCmttmKzzpp5zwLuq3iZf8bslwywfflNUYtaCFSDa0TtrBZz0aOPrAAd/AhNwIDAQAB",
|
||||
"manifest_version": 2,
|
||||
"name": "Settings",
|
||||
"permissions": [ "chrome://settings-frame/" ],
|
||||
"version": "0.2"
|
||||
},
|
||||
"path": "C:\\Program Files (x86)\\Google\\Chrome\\Application\\33.0.1750.154\\resources\\settings_app",
|
||||
"preferences": {
|
||||
|
||||
},
|
||||
"regular_only_preferences": {
|
||||
|
||||
},
|
||||
"running": false,
|
||||
"was_installed_by_default": false
|
||||
},
|
||||
"gfdkimpbcpahaombhbimeihdjnejgicl": {
|
||||
"active_permissions": {
|
||||
"api": [ "app.currentWindowInternal", "app.runtime", "app.window", "feedbackPrivate" ],
|
||||
"explicit_host": [ "chrome://resources/*" ],
|
||||
"manifest_permissions": [ ]
|
||||
},
|
||||
"content_settings": [ ],
|
||||
"creation_flags": 1,
|
||||
"events": [ "feedbackPrivate.onFeedbackRequested" ],
|
||||
"from_bookmark": false,
|
||||
"from_webstore": false,
|
||||
"incognito_content_settings": [ ],
|
||||
"incognito_preferences": {
|
||||
|
||||
},
|
||||
"initial_keybindings_set": true,
|
||||
"install_time": "13040559080062671",
|
||||
"location": 5,
|
||||
"manifest": {
|
||||
"app": {
|
||||
"background": {
|
||||
"scripts": [ "js/event_handler.js" ]
|
||||
},
|
||||
"content_security_policy": "default-src 'none'; script-src 'self' chrome://resources; style-src 'unsafe-inline' *; img-src *; media-src 'self'"
|
||||
},
|
||||
"description": "User feedback extension",
|
||||
"display_in_launcher": false,
|
||||
"display_in_new_tab_page": false,
|
||||
"icons": {
|
||||
"32": "images/icon32.png",
|
||||
"64": "images/icon64.png"
|
||||
},
|
||||
"incognito": "split",
|
||||
"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMZElzFX2J1g1nRQ/8S3rg/1CjFyDltWOxQg+9M8aVgNVxbutEWFQz+oQzIP9BB67mJifULgiv12ToFKsae4NpEUR8sPZjiKDIHumc6pUdixOm8SJ5Rs16SMR6+VYxFUjlVW+5CA3IILptmNBxgpfyqoK0qRpBDIhGk1KDEZ4zqQIDAQAB",
|
||||
"manifest_version": 2,
|
||||
"name": "Feedback",
|
||||
"permissions": [ "feedbackPrivate", "chrome://resources/" ],
|
||||
"version": "1.0"
|
||||
},
|
||||
"path": "C:\\Program Files (x86)\\Google\\Chrome\\Application\\33.0.1750.154\\resources\\feedback",
|
||||
"preferences": {
|
||||
|
||||
},
|
||||
"regular_only_preferences": {
|
||||
|
||||
},
|
||||
"running": false,
|
||||
"was_installed_by_default": false
|
||||
},
|
||||
"mfehgcgbbipciphmccgaenjidiccnmng": {
|
||||
"active_permissions": {
|
||||
"api": [ "cloudPrintPrivate" ],
|
||||
"manifest_permissions": [ ]
|
||||
},
|
||||
"content_settings": [ ],
|
||||
"creation_flags": 1,
|
||||
"events": [ ],
|
||||
"from_bookmark": false,
|
||||
"from_webstore": false,
|
||||
"incognito_content_settings": [ ],
|
||||
"incognito_preferences": {
|
||||
|
||||
},
|
||||
"install_time": "13040559080062671",
|
||||
"location": 5,
|
||||
"manifest": {
|
||||
"app": {
|
||||
"launch": {
|
||||
"web_url": "https://www.google.com/cloudprint"
|
||||
},
|
||||
"urls": [ "https://www.google.com/cloudprint/enable_chrome_connector" ]
|
||||
},
|
||||
"description": "Cloud Print",
|
||||
"display_in_launcher": false,
|
||||
"icons": {
|
||||
|
||||
},
|
||||
"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDqOhnwk4+HXVfGyaNsAQdU/js1Na56diW08oF1MhZiwzSnJsEaeuMN9od9q9N4ZdK3o1xXOSARrYdE+syV7Dl31nf6qz3A6K+D5NHe6sSB9yvYlIiN37jdWdrfxxE0pRYEVYZNTe3bzq3NkcYJlOdt1UPcpJB+isXpAGUKUvt7EQIDAQAB",
|
||||
"name": "Cloud Print",
|
||||
"permissions": [ "cloudPrintPrivate" ],
|
||||
"version": "0.1"
|
||||
},
|
||||
"path": "C:\\Program Files (x86)\\Google\\Chrome\\Application\\33.0.1750.154\\resources\\cloud_print",
|
||||
"preferences": {
|
||||
|
||||
},
|
||||
"regular_only_preferences": {
|
||||
|
||||
},
|
||||
"was_installed_by_default": false
|
||||
},
|
||||
"mgndgikekgjfcpckkfioiadnlibdjbkf": {
|
||||
"active_permissions": {
|
||||
"api": [ ],
|
||||
"manifest_permissions": [ ]
|
||||
},
|
||||
"app_launcher_ordinal": "n",
|
||||
"content_settings": [ ],
|
||||
"creation_flags": 1,
|
||||
"events": [ ],
|
||||
"from_bookmark": false,
|
||||
"from_webstore": false,
|
||||
"incognito_content_settings": [ ],
|
||||
"incognito_preferences": {
|
||||
|
||||
},
|
||||
"install_time": "13040559080062671",
|
||||
"location": 5,
|
||||
"manifest": {
|
||||
"app": {
|
||||
"launch": {
|
||||
"web_url": "http://THIS-WILL-BE-REPLACED"
|
||||
}
|
||||
},
|
||||
"description": "Chrome as an app",
|
||||
"display_in_launcher": true,
|
||||
"display_in_new_tab_page": false,
|
||||
"icons": {
|
||||
"128": "product_logo_128.png",
|
||||
"16": "product_logo_16.png"
|
||||
},
|
||||
"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDNuYLEQ1QPMcc5HfWI/9jiEf6FdJWqEtgRmIeI7qtjPLBM5oje+Ny2E2mTAhou5qdJiO2CHWdU1DQXY2F7Zu2gZaKZgHLfK4WimHxUT5Xd9/aro/R9PCzjguM1BLusiWYc9xlj1IsZpyiN1hcjU7SCnBhv1feQlv2WSB5KRiXwhQIDAQAB",
|
||||
"name": "Chrome",
|
||||
"version": "0.1"
|
||||
},
|
||||
"page_ordinal": "n",
|
||||
"path": "C:\\Program Files (x86)\\Google\\Chrome\\Application\\33.0.1750.154\\resources\\chrome_app",
|
||||
"preferences": {
|
||||
|
||||
},
|
||||
"regular_only_preferences": {
|
||||
|
||||
},
|
||||
"was_installed_by_default": false
|
||||
},
|
||||
"neajdppkdcdipfabeoofebfddakdcjhd": {
|
||||
"active_permissions": {
|
||||
"api": [ "systemPrivate", "ttsEngine" ],
|
||||
"explicit_host": [ "https://www.google.com/*" ],
|
||||
"manifest_permissions": [ ]
|
||||
},
|
||||
"content_settings": [ ],
|
||||
"creation_flags": 1,
|
||||
"events": [ "ttsEngine.onPause", "ttsEngine.onResume", "ttsEngine.onSpeak", "ttsEngine.onStop" ],
|
||||
"from_bookmark": false,
|
||||
"from_webstore": false,
|
||||
"incognito_content_settings": [ ],
|
||||
"incognito_preferences": {
|
||||
|
||||
},
|
||||
"initial_keybindings_set": true,
|
||||
"install_time": "13040559080062671",
|
||||
"location": 5,
|
||||
"manifest": {
|
||||
"background": {
|
||||
"persistent": false,
|
||||
"scripts": [ "tts_extension.js" ]
|
||||
},
|
||||
"description": "Component extension providing speech via the Google network text-to-speech service.",
|
||||
"key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8GSbNUMGygqQTNDMFGIjZNcwXsHLzkNkHjWbuY37PbNdSDZ4VqlVjzbWqODSe+MjELdv5Keb51IdytnoGYXBMyqKmWpUrg+RnKvQ5ibWr4MW9pyIceOIdp9GrzC1WZGgTmZismYR3AjaIpufZ7xDdQQv+XrghPWCkdVqLN+qZDA1HU+DURznkMICiDDSH2sU0egm9UbWfS218bZqzKeQDiC3OnTPlaxcbJtKUuupIm5knjze3Wo9Ae9poTDMzKgchg0VlFCv3uqox+wlD8sjXBoyBCCK9HpImdVAF1a7jpdgiUHpPeV/26oYzM9/grltwNR3bzECQgSpyXp0eyoegwIDAQAB",
|
||||
"manifest_version": 2,
|
||||
"name": "Google Network Speech",
|
||||
"permissions": [ "systemPrivate", "ttsEngine", "https://www.google.com/" ],
|
||||
"tts_engine": {
|
||||
"voices": [ {
|
||||
"event_types": [ "start", "end", "error" ],
|
||||
"gender": "female",
|
||||
"lang": "en-US",
|
||||
"remote": true,
|
||||
"voice_name": "Google US English"
|
||||
}, {
|
||||
"event_types": [ "start", "end", "error" ],
|
||||
"gender": "male",
|
||||
"lang": "en-GB",
|
||||
"remote": true,
|
||||
"voice_name": "Google UK English Male"
|
||||
}, {
|
||||
"event_types": [ "start", "end", "error" ],
|
||||
"gender": "female",
|
||||
"lang": "en-GB",
|
||||
"remote": true,
|
||||
"voice_name": "Google UK English Female"
|
||||
}, {
|
||||
"event_types": [ "start", "end", "error" ],
|
||||
"gender": "female",
|
||||
"lang": "es-ES",
|
||||
"remote": true,
|
||||
"voice_name": "Google Español"
|
||||
}, {
|
||||
"event_types": [ "start", "end", "error" ],
|
||||
"gender": "female",
|
||||
"lang": "fr-FR",
|
||||
"remote": true,
|
||||
"voice_name": "Google Français"
|
||||
}, {
|
||||
"event_types": [ "start", "end", "error" ],
|
||||
"gender": "female",
|
||||
"lang": "it-IT",
|
||||
"remote": true,
|
||||
"voice_name": "Google Italiano"
|
||||
}, {
|
||||
"event_types": [ "start", "end", "error" ],
|
||||
"gender": "female",
|
||||
"lang": "de-DE",
|
||||
"remote": true,
|
||||
"voice_name": "Google Deutsch"
|
||||
}, {
|
||||
"event_types": [ "start", "end", "error" ],
|
||||
"gender": "female",
|
||||
"lang": "ja-JP",
|
||||
"remote": true,
|
||||
"voice_name": "Google 日本人"
|
||||
}, {
|
||||
"event_types": [ "start", "end", "error" ],
|
||||
"gender": "female",
|
||||
"lang": "ko-KR",
|
||||
"remote": true,
|
||||
"voice_name": "Google 한국의"
|
||||
}, {
|
||||
"event_types": [ "start", "end", "error" ],
|
||||
"gender": "female",
|
||||
"lang": "zh-CN",
|
||||
"remote": true,
|
||||
"voice_name": "Google 中国的"
|
||||
} ]
|
||||
},
|
||||
"version": "1.0"
|
||||
},
|
||||
"path": "C:\\Program Files (x86)\\Google\\Chrome\\Application\\33.0.1750.154\\resources\\network_speech_synthesis",
|
||||
"preferences": {
|
||||
|
||||
},
|
||||
"regular_only_preferences": {
|
||||
|
||||
},
|
||||
"was_installed_by_default": false
|
||||
},
|
||||
"nkeimhogjdpnpccoofpliimaahmaaome": {
|
||||
"active_permissions": {
|
||||
"api": [ "alarms", "desktopCapture", "webConnectable", "webrtcAudioPrivate", "webrtcLoggingPrivate", "system.cpu" ],
|
||||
"manifest_permissions": [ ]
|
||||
},
|
||||
"content_settings": [ ],
|
||||
"creation_flags": 1,
|
||||
"events": [ "alarms.onAlarm", "runtime.onStartup" ],
|
||||
"from_bookmark": false,
|
||||
"from_webstore": false,
|
||||
"incognito_content_settings": [ ],
|
||||
"incognito_preferences": {
|
||||
|
||||
},
|
||||
"initial_keybindings_set": true,
|
||||
"install_time": "13040559080062671",
|
||||
"location": 5,
|
||||
"manifest": {
|
||||
"background": {
|
||||
"page": "background.html",
|
||||
"persistent": false
|
||||
},
|
||||
"externally_connectable": {
|
||||
"matches": [ "https://*.google.com/hangouts*", "*://localhost/*" ]
|
||||
},
|
||||
"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDAQt2ZDdPfoSe/JI6ID5bgLHRCnCu9T36aYczmhw/tnv6QZB2I6WnOCMZXJZlRdqWc7w9jo4BWhYS50Vb4weMfh/I0On7VcRwJUgfAxW2cHB+EkmtI1v4v/OU24OqIa1Nmv9uRVeX0GjhQukdLNhAE6ACWooaf5kqKlCeK+1GOkQIDAQAB",
|
||||
"manifest_version": 2,
|
||||
"name": "Hangout Services",
|
||||
"permissions": [ "alarms", "desktopCapture", "system.cpu", "webrtcAudioPrivate", "webrtcLoggingPrivate" ],
|
||||
"version": "1.0"
|
||||
},
|
||||
"path": "C:\\Program Files (x86)\\Google\\Chrome\\Application\\33.0.1750.154\\resources\\hangout_services",
|
||||
"preferences": {
|
||||
|
||||
},
|
||||
"regular_only_preferences": {
|
||||
|
||||
},
|
||||
"was_installed_by_default": false
|
||||
},
|
||||
"nmmhkkegccagdldgiimedpiccmgmieda": {
|
||||
"ack_external": true,
|
||||
"active_permissions": {
|
||||
"api": [ "app.currentWindowInternal", "app.runtime", "app.window", "identity", "webRequestInternal", "webview" ],
|
||||
"explicit_host": [ "https://checkout.google.com/*", "https://sandbox.google.com/*", "https://www.google.com/*", "https://www.googleapis.com/*" ],
|
||||
"manifest_permissions": [ ]
|
||||
},
|
||||
"content_settings": [ ],
|
||||
"creation_flags": 137,
|
||||
"events": [ "app.runtime.onLaunched" ],
|
||||
"from_bookmark": false,
|
||||
"from_webstore": true,
|
||||
"incognito_content_settings": [ ],
|
||||
"incognito_preferences": {
|
||||
|
||||
},
|
||||
"initial_keybindings_set": true,
|
||||
"install_time": "13040559086619747",
|
||||
"lastpingday": "13040550028882747",
|
||||
"location": 10,
|
||||
"manifest": {
|
||||
"app": {
|
||||
"background": {
|
||||
"scripts": [ "craw_background.js" ]
|
||||
}
|
||||
},
|
||||
"current_locale": "en_GB",
|
||||
"default_locale": "en",
|
||||
"description": "Google Wallet for digital goods",
|
||||
"display_in_launcher": false,
|
||||
"display_in_new_tab_page": false,
|
||||
"icons": {
|
||||
"128": "images/icon_128.png",
|
||||
"16": "images/icon_16.png"
|
||||
},
|
||||
"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrKfMnLqViEyokd1wk57FxJtW2XXpGXzIHBzv9vQI/01UsuP0IV5/lj0wx7zJ/xcibUgDeIxobvv9XD+zO1MdjMWuqJFcKuSS4Suqkje6u+pMrTSGOSHq1bmBVh0kpToN8YoJs/P/yrRd7FEtAXTaFTGxQL4C385MeXSjaQfiRiQIDAQAB",
|
||||
"manifest_version": 2,
|
||||
"minimum_chrome_version": "29",
|
||||
"name": "Google Wallet",
|
||||
"oauth2": {
|
||||
"auto_approve": true,
|
||||
"client_id": "203784468217.apps.googleusercontent.com",
|
||||
"scopes": [ "https://www.googleapis.com/auth/sierra", "https://www.googleapis.com/auth/sierrasandbox", "https://www.googleapis.com/auth/chromewebstore", "https://www.googleapis.com/auth/chromewebstore.readonly" ]
|
||||
},
|
||||
"permissions": [ "identity", "webview", "https://checkout.google.com/", "https://sandbox.google.com/checkout/", "https://www.google.com/", "https://www.googleapis.com/*" ],
|
||||
"update_url": "https://clients2.google.com/service/update2/crx",
|
||||
"version": "0.0.6.1"
|
||||
},
|
||||
"path": "nmmhkkegccagdldgiimedpiccmgmieda\\0.0.6.1_0",
|
||||
"preferences": {
|
||||
|
||||
},
|
||||
"regular_only_preferences": {
|
||||
|
||||
},
|
||||
"running": false,
|
||||
"state": 1,
|
||||
"was_installed_by_default": true
|
||||
},
|
||||
"pjkljhegncpnkpknbcohdijeoejaedia": {
|
||||
"ack_external": true,
|
||||
"active_permissions": {
|
||||
"api": [ "notifications" ],
|
||||
"manifest_permissions": [ ]
|
||||
},
|
||||
"app_launcher_ordinal": "y",
|
||||
"content_settings": [ ],
|
||||
"creation_flags": 137,
|
||||
"events": [ ],
|
||||
"from_bookmark": false,
|
||||
"from_webstore": true,
|
||||
"granted_permissions": {
|
||||
"api": [ "notifications" ],
|
||||
"manifest_permissions": [ ]
|
||||
},
|
||||
"incognito_content_settings": [ ],
|
||||
"incognito_preferences": {
|
||||
|
||||
},
|
||||
"install_time": "13040559088625747",
|
||||
"lastpingday": "13040550028882747",
|
||||
"location": 1,
|
||||
"manifest": {
|
||||
"app": {
|
||||
"launch": {
|
||||
"container": "tab",
|
||||
"web_url": "https://mail.google.com/mail/ca"
|
||||
},
|
||||
"urls": [ "*://mail.google.com/mail/ca" ]
|
||||
},
|
||||
"current_locale": "en_GB",
|
||||
"default_locale": "en",
|
||||
"description": "Fast, searchable email with less spam.",
|
||||
"icons": {
|
||||
"128": "128.png"
|
||||
},
|
||||
"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCuGglK43iAz3J9BEYK/Mz6ZhloIMMDqQSAaf3vJt4eHbTbSDsu4WdQ9dQDRcKlg8nwQdePBt0C3PSUBtiSNSS37Z3qEGfS7LCju3h6pI1Yr9MQtxw+jUa7kXXIS09VV73pEFUT/F7c6Qe8L5ZxgAcBvXBh1Fie63qb02I9XQ/CQIDAQAB",
|
||||
"name": "Gmail",
|
||||
"options_page": "https://mail.google.com/mail/ca/#settings",
|
||||
"permissions": [ "notifications" ],
|
||||
"update_url": "http://clients2.google.com/service/update2/crx",
|
||||
"version": "7"
|
||||
},
|
||||
"page_ordinal": "n",
|
||||
"path": "pjkljhegncpnkpknbcohdijeoejaedia\\7_1",
|
||||
"preferences": {
|
||||
|
||||
},
|
||||
"regular_only_preferences": {
|
||||
|
||||
},
|
||||
"state": 1,
|
||||
"was_installed_by_default": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"google": {
|
||||
"services": {
|
||||
"signin": {
|
||||
"LSID": "",
|
||||
"SID": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"intl": {
|
||||
"accept_languages": "en-GB,en-US,en"
|
||||
},
|
||||
"invalidator": {
|
||||
"client_id": "XAP6G30QHyob9Zo8hpj1aA=="
|
||||
},
|
||||
"media": {
|
||||
"device_id_salt": "mKmmRGOM8msXbtxkKMl0Hw=="
|
||||
},
|
||||
"net": {
|
||||
"http_server_properties": {
|
||||
"servers": {
|
||||
"accounts.google.com:443": {
|
||||
"alternate_protocol": {
|
||||
"port": 443,
|
||||
"protocol_str": "quic"
|
||||
},
|
||||
"settings": {
|
||||
"4": 100
|
||||
},
|
||||
"supports_spdy": true
|
||||
},
|
||||
"accounts.youtube.com:443": {
|
||||
"settings": {
|
||||
"4": 100
|
||||
},
|
||||
"supports_spdy": true
|
||||
},
|
||||
"apis.google.com:443": {
|
||||
"settings": {
|
||||
"4": 100
|
||||
},
|
||||
"supports_spdy": true
|
||||
},
|
||||
"clients2.google.com:443": {
|
||||
"settings": {
|
||||
"4": 100
|
||||
},
|
||||
"supports_spdy": true
|
||||
},
|
||||
"clients2.googleusercontent.com:443": {
|
||||
"alternate_protocol": {
|
||||
"port": 443,
|
||||
"protocol_str": "quic"
|
||||
},
|
||||
"settings": {
|
||||
"4": 100
|
||||
},
|
||||
"supports_spdy": true
|
||||
},
|
||||
"developer.android.com:443": {
|
||||
"settings": {
|
||||
"4": 100
|
||||
},
|
||||
"supports_spdy": true
|
||||
},
|
||||
"fonts.googleapis.com:443": {
|
||||
"alternate_protocol": {
|
||||
"port": 443,
|
||||
"protocol_str": "quic"
|
||||
},
|
||||
"settings": {
|
||||
"4": 100
|
||||
},
|
||||
"supports_spdy": true
|
||||
},
|
||||
"oauth.googleusercontent.com:443": {
|
||||
"alternate_protocol": {
|
||||
"port": 443,
|
||||
"protocol_str": "quic"
|
||||
},
|
||||
"supports_spdy": false
|
||||
},
|
||||
"s.ytimg.com:443": {
|
||||
"settings": {
|
||||
"4": 100
|
||||
},
|
||||
"supports_spdy": true
|
||||
},
|
||||
"ssl.google-analytics.com:443": {
|
||||
"alternate_protocol": {
|
||||
"port": 443,
|
||||
"protocol_str": "quic"
|
||||
},
|
||||
"settings": {
|
||||
"4": 100
|
||||
},
|
||||
"supports_spdy": true
|
||||
},
|
||||
"ssl.gstatic.com:443": {
|
||||
"alternate_protocol": {
|
||||
"port": 443,
|
||||
"protocol_str": "quic"
|
||||
},
|
||||
"settings": {
|
||||
"4": 100
|
||||
},
|
||||
"supports_spdy": true
|
||||
},
|
||||
"themes.googleusercontent.com:443": {
|
||||
"alternate_protocol": {
|
||||
"port": 443,
|
||||
"protocol_str": "quic"
|
||||
},
|
||||
"settings": {
|
||||
"4": 100
|
||||
},
|
||||
"supports_spdy": true
|
||||
},
|
||||
"tools.google.com:80": {
|
||||
"alternate_protocol": {
|
||||
"port": 80,
|
||||
"protocol_str": "quic"
|
||||
},
|
||||
"supports_spdy": false
|
||||
},
|
||||
"www.google.com:443": {
|
||||
"alternate_protocol": {
|
||||
"port": 443,
|
||||
"protocol_str": "quic"
|
||||
},
|
||||
"settings": {
|
||||
"4": 100
|
||||
},
|
||||
"supports_spdy": true
|
||||
},
|
||||
"www.youtube.com:443": {
|
||||
"settings": {
|
||||
"4": 100
|
||||
},
|
||||
"supports_spdy": true
|
||||
}
|
||||
},
|
||||
"version": 2
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"migrated_to_pepper_flash": true,
|
||||
"plugins_list": [ ],
|
||||
"removed_old_component_pepper_flash_settings": true
|
||||
},
|
||||
"profile": {
|
||||
"avatar_index": 0,
|
||||
"content_settings": {
|
||||
"clear_on_exit_migrated": true,
|
||||
"pattern_pairs": {
|
||||
|
||||
},
|
||||
"pref_version": 1
|
||||
},
|
||||
"created_by_version": "33.0.1750.154",
|
||||
"exit_type": "Crashed",
|
||||
"exited_cleanly": true,
|
||||
"icon_version": 2,
|
||||
"managed_user_id": "",
|
||||
"name": "First user"
|
||||
},
|
||||
"session": {
|
||||
"restore_on_startup_migrated": true,
|
||||
"startup_urls_migration_time": "13040559080052671"
|
||||
},
|
||||
"sync_promo": {
|
||||
"startup_count": 1
|
||||
},
|
||||
"translate_blocked_languages": [ "en" ],
|
||||
"translate_whitelists": {
|
||||
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,26 @@
|
||||
!include MUI2.nsh
|
||||
|
||||
Name `nsJSON plug-in`
|
||||
OutFile nsJSON_MultiTree.exe
|
||||
RequestExecutionLevel user
|
||||
ShowInstDetails show
|
||||
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
|
||||
!insertmacro MUI_LANGUAGE English
|
||||
|
||||
Section
|
||||
|
||||
CreateDirectory $EXEDIR\Output
|
||||
|
||||
DetailPrint `Read: $EXEDIR\Input\Example1.json into Example1`
|
||||
nsJSON::Set /tree Example1 /file $EXEDIR\Input\Example1.json
|
||||
DetailPrint `Read: $EXEDIR\Input\Example2.json into Example2`
|
||||
nsJSON::Set /tree Example2 /file $EXEDIR\Input\Example2.json
|
||||
|
||||
DetailPrint `Generate: $EXEDIR\Output\Example2.json from Example2`
|
||||
nsJSON::Serialize /tree Example2 /format /file $EXEDIR\Output\Example2.json
|
||||
DetailPrint `Generate: $EXEDIR\Output\Example1.json from Example1`
|
||||
nsJSON::Serialize /tree Example1 /format /file $EXEDIR\Output\Example1.json
|
||||
|
||||
SectionEnd
|
||||
@@ -0,0 +1,46 @@
|
||||
!include MUI2.nsh
|
||||
|
||||
Name `nsJSON plug-in`
|
||||
OutFile nsJSON_Quote.exe
|
||||
RequestExecutionLevel user
|
||||
ShowInstDetails show
|
||||
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
|
||||
!insertmacro MUI_LANGUAGE English
|
||||
|
||||
!macro nJSON_Quote_Test Unicode Always Input
|
||||
!if `${Always}` == true
|
||||
nsJSON::Quote /always `${Input}`
|
||||
!else if `${Unicode}` == true
|
||||
nsJSON::Quote /unicode `${Input}`
|
||||
!else
|
||||
nsJSON::Quote `${Input}`
|
||||
!endif
|
||||
Pop $R0
|
||||
!if `${Always}` == true
|
||||
DetailPrint `${Input} -> $R0 (/always)`
|
||||
!else if `${Unicode}` == true
|
||||
DetailPrint `${Input} -> $R0 (/unicode)`
|
||||
!else
|
||||
DetailPrint `${Input} -> $R0`
|
||||
!endif
|
||||
!macroend
|
||||
!define nJSON_Quote_Test `!insertmacro nJSON_Quote_Test false false`
|
||||
!define nJSON_Quote_Test_Unicode `!insertmacro nJSON_Quote_Test true false`
|
||||
!define nJSON_Quote_Test_Always `!insertmacro nJSON_Quote_Test false true`
|
||||
|
||||
Section
|
||||
|
||||
${nJSON_Quote_Test} `"`
|
||||
${nJSON_Quote_Test} `\`
|
||||
${nJSON_Quote_Test} `£`
|
||||
${nJSON_Quote_Test} `¡`
|
||||
${nJSON_Quote_Test} `"¡"`
|
||||
${nJSON_Quote_Test} `"some"text"`
|
||||
${nJSON_Quote_Test_Always} `"some"text"`
|
||||
${nJSON_Quote_Test_Unicode} `£`
|
||||
${nJSON_Quote_Test_Unicode} `¡`
|
||||
${nJSON_Quote_Test_Unicode} `"¡"`
|
||||
|
||||
SectionEnd
|
||||
@@ -0,0 +1,36 @@
|
||||
!include MUI2.nsh
|
||||
|
||||
Name `nsJSON plug-in`
|
||||
OutFile nsJSON_Sort.exe
|
||||
RequestExecutionLevel user
|
||||
ShowInstDetails show
|
||||
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
|
||||
!insertmacro MUI_LANGUAGE English
|
||||
|
||||
!macro nJSON_Sort_Test Options
|
||||
nsJSON::Sort /options ${Options} /end
|
||||
nsJSON::Get /end
|
||||
Pop $R0
|
||||
DetailPrint $R0
|
||||
!macroend
|
||||
!define nJSON_Sort_Test `!insertmacro nJSON_Sort_Test`
|
||||
|
||||
Section
|
||||
|
||||
nsJSON::Set /value `{ "D": "X", "b": 3, "a": 22, "c" : 2, "d": "x", "y": { "f": 33, "a": 9, "n": [ 1, 5, -10, 11, "m" ] } }` /end
|
||||
|
||||
DetailPrint `Sorted root node values only`
|
||||
${nJSON_Sort_Test} 0
|
||||
|
||||
DetailPrint `Sorted root node values only numerically`
|
||||
${nJSON_Sort_Test} 2
|
||||
|
||||
DetailPrint `Sorted root node by keys only`
|
||||
${nJSON_Sort_Test} 8
|
||||
|
||||
DetailPrint `Sorted values numerically + recursively`
|
||||
${nJSON_Sort_Test} 18
|
||||
|
||||
SectionEnd
|
||||
@@ -0,0 +1,35 @@
|
||||
!include MUI2.nsh
|
||||
|
||||
Name `nsJSON plug-in`
|
||||
OutFile nsJSON_Syntax.exe
|
||||
RequestExecutionLevel user
|
||||
ShowInstDetails show
|
||||
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
|
||||
!insertmacro MUI_LANGUAGE English
|
||||
|
||||
!macro DoTest JSON Description
|
||||
StrCpy $R0 ``
|
||||
ClearErrors
|
||||
nsJSON::Set /value `${JSON}`
|
||||
nsJSON::Serialize
|
||||
Pop $R0
|
||||
DetailPrint `${Description}:`
|
||||
DetailPrint `${JSON} -> $R0`
|
||||
IfErrors 0 +2
|
||||
DetailPrint `Error flag is set!`
|
||||
DetailPrint ``
|
||||
!macroend
|
||||
|
||||
Section
|
||||
|
||||
!insertmacro DoTest `{ "Input": [ { "test1": false, } ] }` `Trailing comma`
|
||||
|
||||
!insertmacro DoTest `{ "Input": [ { "test1": false } .? ] }` `Junk characters`
|
||||
|
||||
!insertmacro DoTest `{ "Input": [ { "test1": false } }` `Missing square bracket`
|
||||
|
||||
!insertmacro DoTest `{ "Input": [ { "test1": false ] }` `Missing curly brace`
|
||||
|
||||
SectionEnd
|
||||
@@ -0,0 +1,25 @@
|
||||
!include MUI2.nsh
|
||||
|
||||
Name `nsJSON plug-in`
|
||||
OutFile nsJSON_UnicodeNSIS.exe
|
||||
RequestExecutionLevel user
|
||||
ShowInstDetails show
|
||||
Unicode true
|
||||
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
|
||||
!insertmacro MUI_LANGUAGE English
|
||||
|
||||
Section
|
||||
|
||||
nsJSON::Set /tree testTree testNode /value testValue
|
||||
|
||||
nsJSON::Get /tree testTree testNode /end
|
||||
Pop $R0
|
||||
DetailPrint $R0
|
||||
|
||||
nsJSON::Serialize /tree testTree
|
||||
Pop $R0
|
||||
DetailPrint $R0
|
||||
|
||||
SectionEnd
|
||||
Reference in New Issue
Block a user