1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-22 21:40:55 +01:00
No description
Find a file
epriestley fc4cb57357 Fix JSON encoding of PhutilSafeHTML for browser consumption
Summary:
If you run this code:

  json_encode(array('tag' => phutil_tag('div', array())));

...you get this result, because json_encode() does not call toString() on objects:

  {"tag":{}}

Instead, convert such objects to their underlying strings. Javelin has support for JX.HTML and for implicit conversion (which is kind of sketchy for other reasons) but it's sort of complicated (only happens on Ajax, not behaviors) and messy (not metadata-based), so ignore it for now.

We'll need to do something similar for serialization to the database. My plan there is just to throw on any objects. The only time we put HTML in the database is cache-related and those tiny number of callsites can manually handle it.

Test Plan: Various ajax things now receive the correct data.

Reviewers: vrana

Reviewed By: vrana

CC: aran

Maniphest Tasks: T2432

Differential Revision: https://secure.phabricator.com/D4684
2013-01-28 18:11:27 -08:00
bin Port Diviner Core to Phabricator 2013-01-07 14:04:23 -08:00
conf Remove PhabricatorSetup and make PHABRICATOR_ENV optional 2013-01-23 12:03:19 -08:00
externals Fix JSON encoding of PhutilSafeHTML for browser consumption 2013-01-28 18:11:27 -08:00
resources Notifcation icons for Conpherence 2013-01-26 17:04:18 -08:00
scripts Use direct inclusion, not submodules, to bring Javelin into Phabricator 2013-01-22 12:43:55 -08:00
src Fix JSON encoding of PhutilSafeHTML for browser consumption 2013-01-28 18:11:27 -08:00
support Raise early fatal for bad rewrite with no "/" 2013-01-22 17:17:37 -08:00
webroot Conpherence - make updating title + picture a dialogue that uses drag and drop upload control 2013-01-26 17:14:58 -08:00
.arcconfig Delete license headers from files 2012-11-05 11:16:51 -08:00
.divinerconfig Centralize rendering of application mail bodies 2012-07-16 19:01:43 -07:00
.editorconfig Specify config for text editors 2012-11-03 22:34:44 -07:00
.gitignore Remove PhabricatorSetup and make PHABRICATOR_ENV optional 2013-01-23 12:03:19 -08:00
LICENSE Delete license headers from files 2012-11-05 11:16:51 -08:00
NOTICE Increment year. 2013-01-03 05:45:08 -08:00
README Delete license headers from files 2012-11-05 11:16:51 -08:00

Phabricator is a open source collection of web applications which make it easier
to write, review, and share source code. Phabricator was developed at Facebook.

This is an early release. It's pretty high-quality and usable, but under
active development so things may change quickly.

You can learn more about the project and find links to documentation and
resources at: http://phabricator.org/

LICENSE

Phabricator is released under the Apache 2.0 license except as otherwise noted.