<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>6521</bug_id>
          
          <creation_ts>2009-02-02 22:35:22 +0000</creation_ts>
          <short_desc>add JSON callback support</short_desc>
          <delta_ts>2009-02-04 01:54:04 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Validator</product>
          <component>Templates</component>
          <version>0.8.4</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc>http://lists.w3.org/Archives/Public/www-validator/2008Oct/0020.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Olivier Thereaux">ot</reporter>
          <assigned_to name="This bug has no owner yet - up for the taking">dave.null</assigned_to>
          <cc>karl+w3c</cc>
          
          <qa_contact name="qa-dev tracking">www-validator-cvs</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>23398</commentid>
    <comment_count>0</comment_count>
    <who name="Olivier Thereaux">ot</who>
    <bug_when>2009-02-02 22:35:22 +0000</bug_when>
    <thetext>As requested on the mailing-list by brian gianforcaro:

This http://www.w3.org/QA/2008/08/markup_validator_updated.html post
describes json support for the Markup validator.
It mentions that it followed the design of validator.nu

One of the feature&apos;s that validator.nu supports for it&apos;s JSON output
is  JSONP or JSON callback parameter.
Essentially the entire json is rapped in a function call that you
specify, very nice for some specific use cases.

I havn&apos;t found this feature to be supported on the markup validator.
Have I missed something?

If not I would like to submit a feature request to add &quot; callback &quot; as
a parameter to the validator when output is set to &quot;json&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23415</commentid>
    <comment_count>1</comment_count>
    <who name="Karl Dubost">karl+w3c</who>
    <bug_when>2009-02-03 16:26:59 +0000</bug_when>
    <thetext>I asked henri sivonen how it was supposed to work.

[01:32]  &lt;hsivonen&gt; karl: not by default, but you can get a callback by appending &amp;callback=foo to the URL
[01:36]  &lt;karl&gt; hsivonen: oh I see :) so the foo is more the choice of the developer who wants to use the output
[01:36]  &lt;hsivonen&gt; karl: you can use any ECMAScript-compatible identifier in place of foo
[01:37]  &lt;hsivonen&gt; (yes, it actually validates whether it is an ECMA-compliant ident)
[01:37]  &lt;karl&gt; hsivonen: what I meant… is that the &quot;foo&quot; is not imposed by me but by the user
[01:38]  &lt;hsivonen&gt; karl: foo is chosen by whoever puts together the URL
[01:38]  &lt;karl&gt; cool
[01:38]  &lt;karl&gt; thanks

So the template is to be modified and the main source code to give the possibility of constructing such URI and sending to the template. It also seems that we have to be careful about the &quot;foo&quot; value which as to be a valid ECMAscript identifier. So a sanitizer seems to be necessary.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23419</commentid>
    <comment_count>2</comment_count>
    <who name="Olivier Thereaux">ot</who>
    <bug_when>2009-02-03 16:32:51 +0000</bug_when>
    <thetext>http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf for the Identifier syntax.

If we&apos;re lazy and want to use a CPAN module to validate the syntax:
http://search.cpan.org/dist/JE/
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23427</commentid>
    <comment_count>3</comment_count>
      <attachid>621</attachid>
    <who name="Karl Dubost">karl+w3c</who>
    <bug_when>2009-02-04 01:20:22 +0000</bug_when>
    <thetext>Created attachment 621
main program with callback support but no verification of the json value</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23428</commentid>
    <comment_count>4</comment_count>
      <attachid>622</attachid>
    <who name="Karl Dubost">karl+w3c</who>
    <bug_when>2009-02-04 01:21:22 +0000</bug_when>
    <thetext>Created attachment 622
the template for the json output with the callback value</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23429</commentid>
    <comment_count>5</comment_count>
    <who name="Karl Dubost">karl+w3c</who>
    <bug_when>2009-02-04 01:22:28 +0000</bug_when>
    <thetext>This is a first attempt at creating the callback feature. For now there is no checking if the value is an authorized ECMAScript identifier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23430</commentid>
    <comment_count>6</comment_count>
    <who name="Olivier Thereaux">ot</who>
    <bug_when>2009-02-04 01:54:04 +0000</bug_when>
    <thetext>(In reply to comment #3)
&gt; Created an attachment (id=621) [details]
&gt; main program with callback support but no verification of the json value

I looked at the diff, seems like you were working from a slightly outdated version of the check script. Hopefully a cvs update should merge properly. 

Other than that, great start. Let&apos;s see if we can perhaps figure out a regexp for what is an acceptable ECMASCIPT identifier? Then we&apos;d be ready to go.
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>621</attachid>
            <date>2009-02-04 01:20:22 +0000</date>
            <delta_ts>2009-02-04 01:20:22 +0000</delta_ts>
            <desc>main program with callback support but no verification of the json value</desc>
            <filename>check.diff</filename>
            <type>text/plain</type>
            <size>3618</size>
            <attacher name="Karl Dubost">karl+w3c</attacher>
            
              <data encoding="base64">SW5kZXg6IGNoZWNrCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9zb3VyY2VzL3B1YmxpYy92YWxpZGF0
b3IvaHR0cGQvY2dpLWJpbi9jaGVjayx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS42NDIKZGlmZiAt
cjEuNjQyIGNoZWNrCjE3YzE3CjwgIyAkSWQ6IGNoZWNrLHYgMS42NDIgMjAwOS0wMi0wMyAwMDo0
MzozNiBvdCBFeHAgJAotLS0KPiAjICRJZDogY2hlY2ssdiAxLjY0MCAyMDA5LTAxLTMwIDIxOjE2
OjI2IHZpbGxlIEV4cCAkCjIwMmMyMDIKPCAgICRWRVJTSU9OID0gIHEkUmV2aXNpb246IDEuNjQy
ICQ7Ci0tLQo+ICAgJFZFUlNJT04gPSAgcSRSZXZpc2lvbjogMS42NDAgJDsKNDAwZDM5OQo8ICRG
aWxlLT57VGVtcGxhdGVzfS0+e1VDTn0tPnBhcmFtKGNmZ19ob21lX3BhZ2UgPT4gJENGRy0+eydI
b21lIFBhZ2UnfSk7CjQzOWE0MzksNDQyCj4gIyBQYXJhbWV0ZXIgZm9yIHNwZWNpZmljIEpTT04g
b3V0cHV0Cj4gIyAjIyBGSVhNRSAjIyB3ZSBuZWVkIHRvIGNoZWNrIGluIHRoZSBjYWxsYmFjayBw
YXJhbWV0ZXIgaXMgY29tcGF0aWJsZSBFQ01BU0NSSVBUIGlkZW50aWZpZXIKPiAkRmlsZS0+e09w
dH0tPnsnY2FsbGJhY2snfSAgICAgICAgID0gJHEtPnBhcmFtKCdjYWxsYmFjaycpICA/ICRxLT5w
YXJhbSgnY2FsbGJhY2snKSAgICA6ICcnOwo+IAoxODgzLDE4OThjMTg4NiwxODk1CjwgICAgICAg
aWYoJEZpbGUtPntDb250ZW50fS0+WyRlcnItPntsaW5lfS0xXSkgeyAjIGF2b2lkIHRydW5jYXRp
bmcgbGluZXMgdGhhdCBkbyBub3QgZXhpc3QKPCAgICAgICAgICAgaWYgKGRlZmluZWQoJGVyci0+
e2NoYXJ9KSAmJiAkZXJyLT57Y2hhcn0gPX4gL15bMC05XSskLyApewo8ICAgICAgICAgICAgICgk
bGluZSwgJGNvbCkgPSAmdHJ1bmNhdGVfbGluZSgkRmlsZS0+e0NvbnRlbnR9LT5bJGVyci0+e2xp
bmV9LTFdLCAkZXJyLT57Y2hhcn0pOwo8ICAgICAgICAgICAgICRsaW5lID0gJm1hcmtfZXJyb3Io
JGxpbmUsICRjb2wpOwo8ICAgICAgICAgICB9CjwgICAgICAgICAgIGVsc2lmIChkZWZpbmVkKCRl
cnItPntsaW5lfSkpIHsKPCAgICAgICAgICAgICAkY29sID0gbGVuZ3RoKCRGaWxlLT57Q29udGVu
dH0tPlskZXJyLT57bGluZX0tMV0pOwo8ICAgICAgICAgICAgICRjb2wgPSA4MCBpZiAoJGNvbCA+
IDgwKTsKPCAgICAgICAgICAgICAoJGxpbmUsICRjb2wpID0gJnRydW5jYXRlX2xpbmUoJEZpbGUt
PntDb250ZW50fS0+WyRlcnItPntsaW5lfS0xXSwgJGNvbCk7CjwgICAgICAgICAgICAgJGxpbmUg
PSAmZW50KCRsaW5lKSAuICLigKYiOwo8ICAgICAgICAgICAgICRjb2wgPSAwOwo8ICAgICAgICAg
ICB9CjwgICAgICAgfQo8ICAgICAgIGVsc2Ugewo8ICAgICAgICAgICAkY29sID0gMDsKPCAgICAg
ICAgICAgJGxpbmUgPSAiIjsKLS0tCj4gICAgICAgaWYgKGRlZmluZWQoJGVyci0+e2NoYXJ9KSAm
JiAkZXJyLT57Y2hhcn0gPX4gL15bMC05XSskLyApewo+ICAgICAgICAgKCRsaW5lLCAkY29sKSA9
ICZ0cnVuY2F0ZV9saW5lKCRGaWxlLT57Q29udGVudH0tPlskZXJyLT57bGluZX0tMV0sICRlcnIt
PntjaGFyfSk7Cj4gICAgICAgICAkbGluZSA9ICZtYXJrX2Vycm9yKCRsaW5lLCAkY29sKTsKPiAg
ICAgICB9Cj4gICAgICAgZWxzaWYgKGRlZmluZWQoJGVyci0+e2xpbmV9KSkgewo+ICAgICAgICAg
JGNvbCA9IGxlbmd0aCgkRmlsZS0+e0NvbnRlbnR9LT5bJGVyci0+e2xpbmV9LTFdKTsKPiAgICAg
ICAgICRjb2wgPSA4MCBpZiAoJGNvbCA+IDgwKTsKPiAgICAgICAgICgkbGluZSwgJGNvbCkgPSAm
dHJ1bmNhdGVfbGluZSgkRmlsZS0+e0NvbnRlbnR9LT5bJGVyci0+e2xpbmV9LTFdLCAkY29sKTsK
PiAgICAgICAgICRsaW5lID0gJmVudCgkbGluZSkgLiAi4oCmIjsKPiAgICAgICAgICRjb2wgPSAw
OwoyMDk3LDIxMDNjMjA5NCwyMDk4CjwgICAgICAgICAgICAgaWYgKCRDRkctPntUeXBlc30tPnsk
cHJvcGVyX0ZQSX0tPntTeXNJRH0pIHsKPCAgICAgICAgICAgICAgICAgaWYgKCRDRkctPntUeXBl
c30tPnskcHJvcGVyX0ZQSX0tPntTeXNJRH0gZXEgJFNJKSB7CjwgICAgICAgICAgICAgICAgICAg
ICAmYWRkX3dhcm5pbmcoJ1cyNicsIHtXMjZfZHRkX3B1YiA9PiAkRlBJLAo8ICAgICAgICAgICAg
ICAgICAgICAgVzI2X2R0ZF9wdWJfZGlzcGxheSA9PiRDRkctPntUeXBlc30tPnskcHJvcGVyX0ZQ
SX0tPntEaXNwbGF5fSwKPCAgICAgICAgICAgICAgICAgICAgIFcyNl9kdGRfc3lzID0+ICRTSSwK
PCAgICAgICAgICAgICAgICAgICAgIFcyNl9kdGRfcHViX3JlY29tbWVuZD0+ICRwcm9wZXJfRlBJ
IH0pOwo8ICAgICAgICAgICAgICAgICB9Ci0tLQo+ICAgICAgICAgICAgIGlmICgkQ0ZHLT57VHlw
ZXN9LT57JHByb3Blcl9GUEl9LT57U3lzSUR9IGVxICRTSSkgewo+ICAgICAgICAgICAgICAgICAm
YWRkX3dhcm5pbmcoJ1cyNicsIHtXMjZfZHRkX3B1YiA9PiAkRlBJLAo+ICAgICAgICAgICAgICAg
ICBXMjZfZHRkX3B1Yl9kaXNwbGF5ID0+JENGRy0+e1R5cGVzfS0+eyRwcm9wZXJfRlBJfS0+e0Rp
c3BsYXl9LAo+ICAgICAgICAgICAgICAgICBXMjZfZHRkX3N5cyA9PiAkU0ksCj4gICAgICAgICAg
ICAgICAgIFcyNl9kdGRfcHViX3JlY29tbWVuZD0+ICRwcm9wZXJfRlBJIH0pOwoyMTgxLDIxODJk
MjE3NQo8ICAgICAgIGlmICghICRGaWxlLT57J1Jvb3QgVmVyc2lvbid9KSB7ICRGaWxlLT57J1Jv
b3QgVmVyc2lvbid9ID0gIjAiOyB9CjwgICAgICAgaWYgKCEgJEZpbGUtPnsnUm9vdCBCYXNlUHJv
ZmlsZSd9KSB7ICRGaWxlLT57J1Jvb3QgQmFzZVByb2ZpbGUnfSA9ICIwIjsgfQoyMTg3LDIxODhj
MjE4MCwyMTgxCjwgICAgICAgfSAgICAgIAo8ICAgICAgIGlmICgoKCRGaWxlLT57J1Jvb3QgVmVy
c2lvbid9IGVxICIxLjEiKSBvciAoJEZpbGUtPnsnUm9vdCBWZXJzaW9uJ30gZXEgIjAiKSkgYW5k
ICgkRmlsZS0+eydSb290IEJhc2VQcm9maWxlJ30gZXEgInRpbnkiKSkgewotLS0KPiAgICAgICB9
Cj4gICAgICAgZWxzaWYgKCgoJEZpbGUtPnsnUm9vdCBWZXJzaW9uJ30gZXEgIjEuMSIpIG9yICgh
JEZpbGUtPnsnUm9vdCBWZXJzaW9uJ30pKSBhbmQgKCRGaWxlLT57J1Jvb3QgQmFzZVByb2ZpbGUn
fSBlcSAidGlueSIpKSB7CjIxOTNjMjE4Ngo8ICAgICAgIGVsc2lmICgoKCRGaWxlLT57J1Jvb3Qg
VmVyc2lvbid9IGVxICIxLjEiKSAgb3IgKCRGaWxlLT57J1Jvb3QgVmVyc2lvbid9IGVxICIwIikp
IGFuZCAoJEZpbGUtPnsnUm9vdCBCYXNlUHJvZmlsZSd9IGVxICJiYXNpYyIpKSB7Ci0tLQo+ICAg
ICAgIGVsc2lmICgoKCRGaWxlLT57J1Jvb3QgVmVyc2lvbid9IGVxICIxLjEiKSAgb3IgKCEkRmls
ZS0+eydSb290IFZlcnNpb24nfSkpIGFuZCAoJEZpbGUtPnsnUm9vdCBCYXNlUHJvZmlsZSd9IGVx
ICJiYXNpYyIpKSB7CjIyMDMsMjIwNGQyMTk1CjwgICAgICAgaWYgKCRGaWxlLT57J1Jvb3QgVmVy
c2lvbid9IGVxICIwIikgeyAkRmlsZS0+eydSb290IFZlcnNpb24nfSA9IHVuZGVmOyB9CjwgICAg
ICAgaWYgKCRGaWxlLT57J1Jvb3QgQmFzZVByb2ZpbGUnfSBlcSAiMCIpIHsgJEZpbGUtPnsnUm9v
dCBCYXNlUHJvZmlsZSd9ID0gdW5kZWY7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>622</attachid>
            <date>2009-02-04 01:21:22 +0000</date>
            <delta_ts>2009-02-04 01:21:22 +0000</delta_ts>
            <desc>the template for the json output with the callback value</desc>
            <filename>json_output.diff</filename>
            <type>text/plain</type>
            <size>335</size>
            <attacher name="Karl Dubost">karl+w3c</attacher>
            
              <data encoding="base64">SW5kZXg6IGpzb25fb3V0cHV0LnRtcGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL3NvdXJjZXMvcHVi
bGljL3ZhbGlkYXRvci9zaGFyZS90ZW1wbGF0ZXMvZW5fVVMvanNvbl9vdXRwdXQudG1wbCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS4xCmRpZmYgLXIxLjEganNvbl9vdXRwdXQudG1wbAo4YTkKPiA8
VE1QTF9JRiBOQU1FPSJjYWxsYmFjayI+PFRNUExfVkFSIE5BTUU9ImNhbGxiYWNrIj4oPC9UTVBM
X0lGPgoyOWEzMQo+IDxUTVBMX0lGIE5BTUU9ImNhbGxiYWNrIj4pPC9UTVBMX0lGPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>