:D

sorry for my java Ignorance.


Talking about the Java-only-caja feature,

is there any chance to have a service that "cajoles" the App XML so the PHP
can consume it?

perhaps a JAR that has the caja and a little webservice that gets the XML
and returns it sanitarized?

or a gcaja.com/ that provides that service?

or a PHP port (2nd, or 3rd pahse...)

my 2 cent

ropu


On Thu, Jul 17, 2008 at 5:13 PM, Chris Chabot <[EMAIL PROTECTED]> wrote:

> the res:// is something that works with jars, pots and kettles and coffee
> beans i think ? Well i overheard something like that the other night
>
> i.a.w: it's a java / jar resource locator, for now thats fine since php
> doesn't do caja jar's either and caja is only available in jar format :)
>
>        -- Chris
>
>
> On Jul 17, 2008, at 10:09 PM, Ropu wrote:
>
>  just did a fast reading
>>
>> and, if not mistaken, in the PHP version at least, if the require feature
>> in
>> the features.xml is an "absolute" path (at least http://*) we included
>> literaly in the iframe. if not, is inlined.
>>
>> so i thought that that may be a references to an internal goog repository
>> that uses domita.js..
>>
>> but maybe res:// in the java version has an other functionality.
>>
>> just a warning
>>
>> ropu
>>
>> On Thu, Jul 17, 2008 at 4:55 PM, Cassie <[EMAIL PROTECTED]> wrote:
>>
>>  hey ropu - thanks for reading the change!
>>> i don't think i quite understand your comment though - what did you see
>>> what
>>> wrong?
>>>
>>> - cassie
>>>
>>>
>>> On Thu, Jul 17, 2008 at 12:52 PM, Ropu <[EMAIL PROTECTED]> wrote:
>>>
>>>  hi cassie
>>>>
>>>> is this line OK?
>>>> +++ incubator/shindig/trunk/features/caja/feature.xml Thu Jul 17
>>>> 12:37:30
>>>> 2008
>>>> +    <script
>>>> src="res:///com/google/caja/plugin/domita-minified.js"></script>
>>>>
>>>>
>>>> ropu
>>>>
>>>> On Thu, Jul 17, 2008 at 4:37 PM, <[EMAIL PROTECTED]> wrote:
>>>>
>>>>  Author: doll
>>>>> Date: Thu Jul 17 12:37:30 2008
>>>>> New Revision: 677699
>>>>>
>>>>> URL: http://svn.apache.org/viewvc?rev=677699&view=rev
>>>>> Log:
>>>>> SHINDIG-436
>>>>> Patch from Mike Samuel. The caja js is now pulled directly from the
>>>>>
>>>> caja
>>>
>>>> maven repo. The java integration has been updated and the caja
>>>>>
>>>> integration
>>>>
>>>>> now works.
>>>>>
>>>>> If you uncomment the caja dependency in opensocial-current/feature.xml
>>>>>
>>>> and
>>>>
>>>>> toggle the "use caja" box in the sample container you should be able to
>>>>>
>>>> see
>>>>
>>>>> this work on the java side.
>>>>>
>>>>>
>>>>> Removed:
>>>>>  incubator/shindig/trunk/features/caja/caja.js
>>>>>  incubator/shindig/trunk/features/caja/domita.js
>>>>>  incubator/shindig/trunk/features/caja/html-sanitizer.js
>>>>>  incubator/shindig/trunk/features/caja/html4-defs.js
>>>>>  incubator/shindig/trunk/features/caja/log-to-console.js
>>>>>  incubator/shindig/trunk/features/caja/permissive.js
>>>>>  incubator/shindig/trunk/features/caja/unicode.js
>>>>> Modified:
>>>>>  incubator/shindig/trunk/features/caja/feature.xml
>>>>>  incubator/shindig/trunk/features/opensocial-current/feature.xml
>>>>>  incubator/shindig/trunk/features/opensocial-reference/container.js
>>>>>  incubator/shindig/trunk/features/pom.xml
>>>>>  incubator/shindig/trunk/java/gadgets/pom.xml
>>>>>
>>>>>
>>>>>
>>>> incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/CajaContentFilter.java
>>>
>>>>
>>>>> incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.html
>>>>
>>>>>  incubator/shindig/trunk/pom.xml
>>>>>
>>>>> Modified: incubator/shindig/trunk/features/caja/feature.xml
>>>>> URL:
>>>>>
>>>>>
>>>>
>>> http://svn.apache.org/viewvc/incubator/shindig/trunk/features/caja/feature.xml?rev=677699&r1=677698&r2=677699&view=diff
>>>
>>>>
>>>>>
>>>>>
>>>> ==============================================================================
>>>
>>>> --- incubator/shindig/trunk/features/caja/feature.xml (original)
>>>>> +++ incubator/shindig/trunk/features/caja/feature.xml Thu Jul 17
>>>>>
>>>> 12:37:30
>>>
>>>> 2008
>>>>> @@ -16,18 +16,11 @@
>>>>> KIND, either express or implied. See the License for the
>>>>> specific language governing permissions and limitations under the
>>>>>
>>>> License.
>>>>
>>>>>
>>>>> -  TODO(doll): The caja.js file referenced here should come from maven
>>>>> -  or something. We should not have our own copy of it.
>>>>> +The javascript referenced here should be found in the caja jar.
>>>>> -->
>>>>> <feature>
>>>>>  <name>caja</name>
>>>>>  <gadget>
>>>>> -    <script src="caja.js"></script>
>>>>> -    <script src="html4-defs.js"></script>
>>>>> -    <script src="html-sanitizer.js"></script>
>>>>> -    <script src="unicode.js"></script>
>>>>> -    <script src="domita.js"></script>
>>>>> -    <script src="log-to-console.js"></script>
>>>>> -    <script src="permissive.js"></script>
>>>>> +    <script
>>>>> src="res:///com/google/caja/plugin/domita-minified.js"></script>
>>>>>  </gadget>
>>>>> </feature>
>>>>>
>>>>> Modified:
>>>>>
>>>> incubator/shindig/trunk/features/opensocial-current/feature.xml
>>>
>>>> URL:
>>>>>
>>>>>
>>>>
>>> http://svn.apache.org/viewvc/incubator/shindig/trunk/features/opensocial-current/feature.xml?rev=677699&r1=677698&r2=677699&view=diff
>>>
>>>>
>>>>>
>>>>>
>>>> ==============================================================================
>>>
>>>> --- incubator/shindig/trunk/features/opensocial-current/feature.xml
>>>>> (original)
>>>>> +++ incubator/shindig/trunk/features/opensocial-current/feature.xml Thu
>>>>>
>>>> Jul
>>>>
>>>>> 17 12:37:30 2008
>>>>> @@ -20,6 +20,9 @@
>>>>> <feature>
>>>>>  <name>opensocial-0.8</name>
>>>>>  <dependency>opensocial-reference</dependency>
>>>>> +  <!-- <dependency>caja</dependency> -->
>>>>> +  <!-- Must include the "caja" feature to display samplecontainer -->
>>>>> +  <!-- gadgets when "use caja" is checked -->
>>>>>  <gadget>
>>>>>   <script src="jsonperson.js"></script>
>>>>>   <script src="jsonactivity.js"></script>
>>>>> @@ -57,7 +60,7 @@
>>>>>           opensocial.Container.setContainer(new ShindigContainer());
>>>>>         }
>>>>>
>>>>> -          if (configParams.enableCaja) {
>>>>> +          if (window['caja']) {
>>>>>           opensocial.Container.get().enableCaja();
>>>>>         }
>>>>>     });
>>>>>
>>>>> Modified:
>>>>> incubator/shindig/trunk/features/opensocial-reference/container.js
>>>>> URL:
>>>>>
>>>>>
>>>>
>>> http://svn.apache.org/viewvc/incubator/shindig/trunk/features/opensocial-reference/container.js?rev=677699&r1=677698&r2=677699&view=diff
>>>
>>>>
>>>>>
>>>>>
>>>> ==============================================================================
>>>
>>>> --- incubator/shindig/trunk/features/opensocial-reference/container.js
>>>>> (original)
>>>>> +++ incubator/shindig/trunk/features/opensocial-reference/container.js
>>>>>
>>>> Thu
>>>>
>>>>> Jul 17 12:37:30 2008
>>>>> @@ -514,6 +514,9 @@
>>>>>   // By default, only allow references to anchors.
>>>>>   if (/^#/.test(uri)) {
>>>>>     return '#' +
>>>>> encodeURIComponent(decodeURIComponent(uri.substring(1)));
>>>>> +    // and files on the same host
>>>>> +    } else if (/^\/(?:[^\/][^?#]*)?$/) {
>>>>> +      return encodeURI(decodeURI(uri));
>>>>>   }
>>>>>   // This callback can be replaced with one that passes the URL
>>>>>
>>>> through
>>>
>>>>   // a proxy that checks the mimetype.
>>>>> @@ -535,77 +538,548 @@
>>>>>  caja = window["caja"];
>>>>>  attachDocumentStub = window["attachDocumentStub"];
>>>>>
>>>>> -  var outers = caja.copy(___.sharedOuters);
>>>>> +  var imports = caja.copy(___.sharedImports);
>>>>> +  ___.getNewModuleHandler().setImports(imports);
>>>>>
>>>>> -  // TODO(doll): We need to add caja allows for the gadgets namespace
>>>>>
>>>> so
>>>
>>>> that
>>>>> -  // this works properly. It does not belong in gadgets.
>>>>> -  var igOnload = window["_IG_RegisterOnloadHandler"];
>>>>> -  if (igOnload) {
>>>>> -    outers._IG_RegisterOnloadHandler = ___.simpleFunc(igOnload);
>>>>> +  attachDocumentStub('-g___', uriCallback, imports);
>>>>> +  var gadgetRoot = document.createElement('div');
>>>>> +  gadgetRoot.className = 'g___';
>>>>> +  imports.htmlEmitter___ = new HtmlEmitter(gadgetRoot);
>>>>> +  document.body.appendChild(gadgetRoot);
>>>>> +
>>>>> +  // Add the opensocial APIs and mark them callable and readable.
>>>>> +  imports.gadgets = gadgets;
>>>>> +  imports.opensocial = opensocial;
>>>>> +  // The below described the opensocial reference APIs.
>>>>> +  // A prefix of "c_" specifies a class, "m_" a method, "f_" a field,
>>>>> +  // and "s_" a static member.
>>>>> +  // Derived from
>>>>> http://code.google.com/apis/opensocial/docs/0.8/reference/ .
>>>>> +  var opensocialSchema = {
>>>>> +    c_gadgets: {
>>>>> +      c_MiniMessage: {
>>>>> +        m_createDismissibleMessage: 0,
>>>>> +        m_createStaticMessage: 0,
>>>>> +        m_createTimerMessage: 0,
>>>>> +        m_dismissMessage: 0
>>>>> +      },
>>>>> +      c_Prefs: {
>>>>> +        m_getArray: 0,
>>>>> +        m_getBool: 0,
>>>>> +        m_getCountry: 0,
>>>>> +        m_getFloat: 0,
>>>>> +        m_getInt: 0,
>>>>> +        m_getLang: 0,
>>>>> +        m_getMsg: 0,
>>>>> +        m_getString: 0,
>>>>> +        m_set: 0,
>>>>> +        m_setArray: 0
>>>>> +      },
>>>>> +      c_Tab: {
>>>>> +        m_getCallback: 0,
>>>>> +        m_getContentContainer: 0,
>>>>> +        m_getIndex: 0,
>>>>> +        m_getName: 0,
>>>>> +        m_getNameContainer: 0
>>>>> +      },
>>>>> +      c_TabSet: {
>>>>> +        m_addTab: 0,
>>>>> +        m_alignTabs: 0,
>>>>> +        m_displayTabs: 0,
>>>>> +        m_getHeaderContainer: 0,
>>>>> +        m_getSelectedTab: 0,
>>>>> +        m_getTabs: 0,
>>>>> +        m_removeTab: 0,
>>>>> +        m_setSelectedTab: 0,
>>>>> +        m_swapTabs: 0
>>>>> +      },
>>>>> +      c_flash: {
>>>>> +        s_embedCachedFlash: 0,
>>>>> +        s_embedFlash: 0,
>>>>> +        s_getMajorVersion: 0
>>>>> +      },
>>>>> +      c_io: {
>>>>> +        c_AuthorizationType: {
>>>>> +          s_NONE: 0,
>>>>> +          s_OAUTH: 0,
>>>>> +          s_SIGNED: 0
>>>>> +        },
>>>>> +        c_ContentType: {
>>>>> +          s_DOM: 0,
>>>>> +          s_FEED: 0,
>>>>> +          s_JSON: 0,
>>>>> +          s_TEXT: 0
>>>>> +        },
>>>>> +        c_MethodType: {
>>>>> +          s_DELETE: 0,
>>>>> +          s_GET: 0,
>>>>> +          s_HEAD: 0,
>>>>> +          s_POST: 0,
>>>>> +          s_PUT: 0
>>>>> +        },
>>>>> +        c_ProxyUrlRequestParameters: {
>>>>> +          s_REFRESH_INTERVAL: 0
>>>>> +        },
>>>>> +        c_RequestParameters: {
>>>>> +          s_AUTHORIZATION: 0,
>>>>> +          s_CONTENT_TYPE: 0,
>>>>> +          s_GET_SUMMARIES: 0,
>>>>> +          s_HEADERS: 0,
>>>>> +          s_METHOD: 0,
>>>>> +          s_NUM_ENTRIES: 0,
>>>>> +          s_POST_DATA: 0
>>>>> +        },
>>>>> +        s_encodeValues: 0,
>>>>> +        s_getProxyUrl: 0,
>>>>> +        s_makeRequest: 0
>>>>> +      },
>>>>> +      c_json: {
>>>>> +        s_parse: 0,
>>>>> +        s_stringify: 0
>>>>> +      },
>>>>> +      c_pubsub: {
>>>>> +        s_publish: 0,
>>>>> +        s_subscribe: 0,
>>>>> +        s_unsubscribe: 0
>>>>> +      },
>>>>> +      c_rpc: {
>>>>> +        s_call: 0,
>>>>> +        s_register: 0,
>>>>> +        s_registerDefault: 0,
>>>>> +        s_unregister: 0,
>>>>> +        s_unregisterDefault: 0
>>>>> +      },
>>>>> +      c_skins: {
>>>>> +        c_Property: {
>>>>> +          s_ANCHOR_COLOR: 0,
>>>>> +          s_BG_COLOR: 0,
>>>>> +          s_BG_IMAGE: 0,
>>>>> +          s_FONT_COLOR: 0
>>>>> +        },
>>>>> +        s_getProperty: 0
>>>>> +      },
>>>>> +      c_util: {
>>>>> +        s_escapeString: 0,
>>>>> +        s_getFeatureParameters: 0,
>>>>> +        s_hasFeature: 0,
>>>>> +        s_registerOnLoadHandler: 0,
>>>>> +        s_unescapeString: 0
>>>>> +      },
>>>>> +      c_views: {
>>>>> +        c_View: {
>>>>> +          m_bind: 0,
>>>>> +          m_getUrlTemplate: 0,
>>>>> +          m_isOnlyVisibleGadget: 0
>>>>> +        },
>>>>> +        c_ViewType: {
>>>>> +          s_CANVAS: 0,
>>>>> +          s_HOME: 0,
>>>>> +          s_PREVIEW: 0,
>>>>> +          s_PROFILE: 0
>>>>> +        },
>>>>> +        s_bind: 0,
>>>>> +        s_getCurrentView: 0,
>>>>> +        s_getParams: 0,
>>>>> +        s_requestNavigateTo: 0
>>>>> +      },
>>>>> +      c_window: {
>>>>> +        s_adjustHeight: 0,
>>>>> +        s_getViewportDimensions: 0,
>>>>> +        s_setTitle: 0
>>>>> +      }
>>>>> +    },
>>>>> +    c_opensocial: {
>>>>> +      c_Activity: {
>>>>> +        c_Field: {
>>>>> +          s_APP_ID: 0,
>>>>> +          s_BODY: 0,
>>>>> +          s_BODY_ID: 0,
>>>>> +          s_EXTERNAL_ID: 0,
>>>>> +          s_ID: 0,
>>>>> +          s_MEDIA_ITEMS: 0,
>>>>> +          s_POSTED_TIME: 0,
>>>>> +          s_PRIORITY: 0,
>>>>> +          s_STREAM_FAVICON_URL: 0,
>>>>> +          s_STREAM_SOURCE_URL: 0,
>>>>> +          s_STREAM_TITLE: 0,
>>>>> +          s_STREAM_URL: 0,
>>>>> +          s_TEMPLATE_PARAMS: 0,
>>>>> +          s_TITLE: 0,
>>>>> +          s_TITLE_ID: 0,
>>>>> +          s_URL: 0,
>>>>> +          s_USER_ID: 0
>>>>> +        },
>>>>> +        m_getField: 0,
>>>>> +        m_getId: 0,
>>>>> +        m_setField: 0
>>>>> +      },
>>>>> +      c_Address: {
>>>>> +        c_Field: {
>>>>> +          s_COUNTRY: 0,
>>>>> +          s_EXTENDED_ADDRESS: 0,
>>>>> +          s_LATITUDE: 0,
>>>>> +          s_LOCALITY: 0,
>>>>> +          s_LONGITUDE: 0,
>>>>> +          s_POSTAL_CODE: 0,
>>>>> +          s_PO_BOX: 0,
>>>>> +          s_REGION: 0,
>>>>> +          s_STREET_ADDRESS: 0,
>>>>> +          s_TYPE: 0,
>>>>> +          s_UNSTRUCTURED_ADDRESS: 0
>>>>> +        },
>>>>> +        m_getField: 0
>>>>> +      },
>>>>> +      c_BodyType: {
>>>>> +        c_Field: {
>>>>> +          s_BUILD: 0,
>>>>> +          s_EYE_COLOR: 0,
>>>>> +          s_HAIR_COLOR: 0,
>>>>> +          s_HEIGHT: 0,
>>>>> +          s_WEIGHT: 0
>>>>> +        },
>>>>> +        m_getField: 0
>>>>> +      },
>>>>> +      c_Collection: {
>>>>> +        m_asArray: 0,
>>>>> +        m_each: 0,
>>>>> +        m_getById: 0,
>>>>> +        m_getOffset: 0,
>>>>> +        m_getTotalSize: 0,
>>>>> +        m_size: 0
>>>>> +      },
>>>>> +      c_CreateActivityPriority: {
>>>>> +        s_HIGH: 0,
>>>>> +        s_LOW: 0
>>>>> +      },
>>>>> +      c_DataRequest: {
>>>>> +        c_DataRequestFields: {
>>>>> +          s_ESCAPE_TYPE: 0
>>>>> +        },
>>>>> +        c_FilterType: {
>>>>> +          s_ALL: 0,
>>>>> +          s_HAS_APP: 0,
>>>>> +          s_TOP_FRIENDS: 0
>>>>> +        },
>>>>> +        c_PeopleRequestFields: {
>>>>> +          s_FILTER: 0,
>>>>> +          s_FILTER_OPTIONS: 0,
>>>>> +          s_FIRST: 0,
>>>>> +          s_MAX: 0,
>>>>> +          s_PROFILE_DETAILS: 0,
>>>>> +          s_SORT_ORDER: 0
>>>>> +        },
>>>>> +        c_SortOrder: {
>>>>> +          s_NAME: 0,
>>>>> +          s_TOP_FRIENDS: 0
>>>>> +        },
>>>>> +        m_add: 0,
>>>>> +        m_newFetchActivitiesRequest: 0,
>>>>> +        m_newFetchPeopleRequest: 0,
>>>>> +        m_newFetchPersonAppDataRequest: 0,
>>>>> +        m_newFetchPersonRequest: 0,
>>>>> +        m_newRemovePersonAppDataRequest: 0,
>>>>> +        m_newUpdatePersonAppDataRequest: 0,
>>>>> +        m_send: 0
>>>>> +      },
>>>>> +      c_DataResponse: {
>>>>> +        m_get: 0,
>>>>> +        m_getErrorMessage: 0,
>>>>> +        m_hadError: 0
>>>>> +      },
>>>>> +      c_Email: {
>>>>> +        c_Field: {
>>>>> +          s_ADDRESS: 0,
>>>>> +          s_TYPE: 0
>>>>> +        },
>>>>> +        m_getField: 0
>>>>> +      },
>>>>> +      c_Enum: {
>>>>> +        c_Drinker: {
>>>>> +          s_HEAVILY: 0,
>>>>> +          s_NO: 0,
>>>>> +          s_OCCASIONALLY: 0,
>>>>> +          s_QUIT: 0,
>>>>> +          s_QUITTING: 0,
>>>>> +          s_REGULARLY: 0,
>>>>> +          s_SOCIALLY: 0,
>>>>> +          s_YES: 0
>>>>> +        },
>>>>> +        c_Gender: {
>>>>> +          s_FEMALE: 0,
>>>>> +          s_MALE: 0
>>>>> +        },
>>>>> +        c_LookingFor: {
>>>>> +          s_ACTIVITY_PARTNERS: 0,
>>>>> +          s_DATING: 0,
>>>>> +          s_FRIENDS: 0,
>>>>> +          s_NETWORKING: 0,
>>>>> +          s_RANDOM: 0,
>>>>> +          s_RELATIONSHIP: 0
>>>>> +        },
>>>>> +        c_Presence: {
>>>>> +          s_AWAY: 0,
>>>>> +          s_CHAT: 0,
>>>>> +          s_DND: 0,
>>>>> +          s_OFFLINE: 0,
>>>>> +          s_ONLINE: 0,
>>>>> +          s_XA: 0
>>>>> +        },
>>>>> +        c_Smoker: {
>>>>> +          s_HEAVILY: 0,
>>>>> +          s_NO: 0,
>>>>> +          s_OCCASIONALLY: 0,
>>>>> +          s_QUIT: 0,
>>>>> +          s_QUITTING: 0,
>>>>> +          s_REGULARLY: 0,
>>>>> +          s_SOCIALLY: 0,
>>>>> +          s_YES: 0
>>>>> +        },
>>>>> +        m_getDisplayValue: 0,
>>>>> +        m_getKey: 0
>>>>> +      },
>>>>> +      c_Environment: {
>>>>> +        c_ObjectType: {
>>>>> +          s_ACTIVITY: 0,
>>>>> +          s_ACTIVITY_MEDIA_ITEM: 0,
>>>>> +          s_ADDRESS: 0,
>>>>> +          s_BODY_TYPE: 0,
>>>>> +          s_EMAIL: 0,
>>>>> +          s_FILTER_TYPE: 0,
>>>>> +          s_MESSAGE: 0,
>>>>> +          s_MESSAGE_TYPE: 0,
>>>>> +          s_NAME: 0,
>>>>> +          s_ORGANIZATION: 0,
>>>>> +          s_PERSON: 0,
>>>>> +          s_PHONE: 0,
>>>>> +          s_SORT_ORDER: 0,
>>>>> +          s_URL: 0
>>>>> +        },
>>>>> +        m_getDomain: 0,
>>>>> +        m_supportsField: 0
>>>>> +      },
>>>>> +      c_EscapeType: {
>>>>> +        s_HTML_ESCAPE: 0,
>>>>> +        s_NONE: 0
>>>>> +      },
>>>>> +      c_IdSpec: {
>>>>> +        c_Field: {
>>>>> +          s_GROUP_ID: 0,
>>>>> +          s_NETWORK_DISTANCE: 0,
>>>>> +          s_USER_ID: 0
>>>>> +        },
>>>>> +        c_PersonId: {
>>>>> +          s_OWNER: 0,
>>>>> +          s_VIEWER: 0
>>>>> +        },
>>>>> +        m_getField: 0,
>>>>> +        m_setField: 0
>>>>> +      },
>>>>> +      c_MediaItem: {
>>>>> +        c_Field: {
>>>>> +          s_MIME_TYPE: 0,
>>>>> +          s_TYPE: 0,
>>>>> +          s_URL: 0
>>>>> +        },
>>>>> +        c_Type: {
>>>>> +          s_AUDIO: 0,
>>>>> +          s_IMAGE: 0,
>>>>> +          s_VIDEO: 0
>>>>> +        },
>>>>> +        m_getField: 0,
>>>>> +        m_setField: 0
>>>>> +      },
>>>>> +      c_Message: {
>>>>> +        c_Field: {
>>>>> +          s_BODY: 0,
>>>>> +          s_BODY_ID: 0,
>>>>> +          s_TITLE: 0,
>>>>> +          s_TITLE_ID: 0,
>>>>> +          s_TYPE: 0
>>>>> +        },
>>>>> +        c_Type: {
>>>>> +          s_EMAIL: 0,
>>>>> +          s_NOTIFICATION: 0,
>>>>> +          s_PRIVATE_MESSAGE: 0,
>>>>> +          s_PUBLIC_MESSAGE: 0
>>>>> +        },
>>>>> +        m_getField: 0,
>>>>> +        m_setField: 0
>>>>> +      },
>>>>> +      c_Name: {
>>>>> +        c_Field: {
>>>>> +          s_ADDITIONAL_NAME: 0,
>>>>> +          s_FAMILY_NAME: 0,
>>>>> +          s_GIVEN_NAME: 0,
>>>>> +          s_HONORIFIC_PREFIX: 0,
>>>>> +          s_HONORIFIC_SUFFIX: 0,
>>>>> +          s_UNSTRUCTURED: 0
>>>>> +        },
>>>>> +        m_getField: 0
>>>>> +      },
>>>>> +      c_NavigationParameters: {
>>>>> +        c_DestinationType: {
>>>>> +          s_RECIPIENT_DESTINATION: 0,
>>>>> +          s_VIEWER_DESTINATION: 0
>>>>> +        },
>>>>> +        c_Field: {
>>>>> +          s_OWNER: 0,
>>>>> +          s_PARAMETERS: 0,
>>>>> +          s_VIEW: 0
>>>>> +        },
>>>>> +        m_getField: 0,
>>>>> +        m_setField: 0
>>>>> +      },
>>>>> +      c_Organization: {
>>>>> +        c_Field: {
>>>>> +          s_ADDRESS: 0,
>>>>> +          s_DESCRIPTION: 0,
>>>>> +          s_END_DATE: 0,
>>>>> +          s_FIELD: 0,
>>>>> +          s_NAME: 0,
>>>>> +          s_SALARY: 0,
>>>>> +          s_START_DATE: 0,
>>>>> +          s_SUB_FIELD: 0,
>>>>> +          s_TITLE: 0,
>>>>> +          s_WEBPAGE: 0
>>>>> +        },
>>>>> +        m_getField: 0
>>>>> +      },
>>>>> +      c_Permission: {
>>>>> +        s_VIEWER: 0
>>>>> +      },
>>>>> +      c_Person: {
>>>>> +        c_Field: {
>>>>> +          s_ABOUT_ME: 0,
>>>>> +          s_ACTIVITIES: 0,
>>>>> +          s_ADDRESSES: 0,
>>>>> +          s_AGE: 0,
>>>>> +          s_BODY_TYPE: 0,
>>>>> +          s_BOOKS: 0,
>>>>> +          s_CARS: 0,
>>>>> +          s_CHILDREN: 0,
>>>>> +          s_CURRENT_LOCATION: 0,
>>>>> +          s_DATE_OF_BIRTH: 0,
>>>>> +          s_DRINKER: 0,
>>>>> +          s_EMAILS: 0,
>>>>> +          s_ETHNICITY: 0,
>>>>> +          s_FASHION: 0,
>>>>> +          s_FOOD: 0,
>>>>> +          s_GENDER: 0,
>>>>> +          s_HAPPIEST_WHEN: 0,
>>>>> +          s_HAS_APP: 0,
>>>>> +          s_HEROES: 0,
>>>>> +          s_HUMOR: 0,
>>>>> +          s_ID: 0,
>>>>> +          s_INTERESTS: 0,
>>>>> +          s_JOBS: 0,
>>>>> +          s_JOB_INTERESTS: 0,
>>>>> +          s_LANGUAGES_SPOKEN: 0,
>>>>> +          s_LIVING_ARRANGEMENT: 0,
>>>>> +          s_LOOKING_FOR: 0,
>>>>> +          s_MOVIES: 0,
>>>>> +          s_MUSIC: 0,
>>>>> +          s_NAME: 0,
>>>>> +          s_NETWORK_PRESENCE: 0,
>>>>> +          s_NICKNAME: 0,
>>>>> +          s_PETS: 0,
>>>>> +          s_PHONE_NUMBERS: 0,
>>>>> +          s_POLITICAL_VIEWS: 0,
>>>>> +          s_PROFILE_SONG: 0,
>>>>> +          s_PROFILE_URL: 0,
>>>>> +          s_PROFILE_VIDEO: 0,
>>>>> +          s_QUOTES: 0,
>>>>> +          s_RELATIONSHIP_STATUS: 0,
>>>>> +          s_RELIGION: 0,
>>>>> +          s_ROMANCE: 0,
>>>>> +          s_SCARED_OF: 0,
>>>>> +          s_SCHOOLS: 0,
>>>>> +          s_SEXUAL_ORIENTATION: 0,
>>>>> +          s_SMOKER: 0,
>>>>> +          s_SPORTS: 0,
>>>>> +          s_STATUS: 0,
>>>>> +          s_TAGS: 0,
>>>>> +          s_THUMBNAIL_URL: 0,
>>>>> +          s_TIME_ZONE: 0,
>>>>> +          s_TURN_OFFS: 0,
>>>>> +          s_TURN_ONS: 0,
>>>>> +          s_TV_SHOWS: 0,
>>>>> +          s_URLS: 0
>>>>> +        },
>>>>> +        m_getDisplayName: 0,
>>>>> +        m_getField: 0,
>>>>> +        m_getId: 0,
>>>>> +        m_isOwner: 0,
>>>>> +        m_isViewer: 0
>>>>> +      },
>>>>> +      c_Phone: {
>>>>> +        c_Field: {
>>>>> +          s_NUMBER: 0,
>>>>> +          s_TYPE: 0
>>>>> +        },
>>>>> +        m_getField: 0
>>>>> +      },
>>>>> +      c_ResponseItem: {
>>>>> +        c_Error: {
>>>>> +          s_BAD_REQUEST: 0,
>>>>> +          s_FORBIDDEN: 0,
>>>>> +          s_INTERNAL_ERROR: 0,
>>>>> +          s_LIMIT_EXCEEDED: 0,
>>>>> +          s_NOT_IMPLEMENTED: 0,
>>>>> +          s_UNAUTHORIZED: 0
>>>>> +        },
>>>>> +        m_getData: 0,
>>>>> +        m_getErrorCode: 0,
>>>>> +        m_getErrorMessage: 0,
>>>>> +        m_getOriginalDataRequest: 0,
>>>>> +        m_hadError: 0
>>>>> +      },
>>>>> +      c_Url: {
>>>>> +        c_Field: {
>>>>> +          s_ADDRESS: 0,
>>>>> +          s_LINK_TEXT: 0,
>>>>> +          s_TYPE: 0
>>>>> +        },
>>>>> +        m_getField: 0
>>>>> +      },
>>>>> +      s_getEnvironment: 0,
>>>>> +      s_hasPermission: 0,
>>>>> +      s_newActivity: 0,
>>>>> +      s_newDataRequest: 0,
>>>>> +      s_newMediaItem: 0,
>>>>> +      s_newMessage: 0,
>>>>> +      s_newNavigationParameters: 0,
>>>>> +      s_requestCreateActivity: 0,
>>>>> +      s_requestPermission: 0,
>>>>> +      s_requestSendMessage: 0,
>>>>> +      s_requestShareApp: 0
>>>>> +    }
>>>>> +  };
>>>>> +  function whitelist(schema, obj) {
>>>>> +    if (!obj) { return; }  // Occurs for optional features
>>>>> +    for (var k in schema) {
>>>>> +      if (schema.hasOwnProperty(k)) {
>>>>> +        var m = k.match(/^([mcs])_(\w+)$/);
>>>>> +        var type = m[1], name = m[2];
>>>>> +        switch (type) {
>>>>> +          case 'c':
>>>>> +            ___.allowRead(obj, name);
>>>>> +            whitelist(schema[k], obj[name]);
>>>>> +            break;
>>>>> +          case 'm':
>>>>> +            ___.allowCall(obj.prototype, name);
>>>>> +            break;
>>>>> +          case 'f':
>>>>> +            ___.allowRead(obj.prototype, name);
>>>>> +            break;
>>>>> +          case 's':
>>>>> +            if ('function' === typeof obj[name]) {
>>>>> +              ___.allowCall(obj, name);
>>>>> +            } else {
>>>>> +              ___.allowRead(obj, name);
>>>>> +            }
>>>>> +            break;
>>>>> +        }
>>>>> +      }
>>>>> +    }
>>>>>  }
>>>>> -
>>>>> -  attachDocumentStub('pre-', uriCallback, outers);
>>>>> -
>>>>> -  // Temporarily adding some gadgets calls to the opensocial code.
>>>>> -  // This should move into the gadgets js code very soon.
>>>>> -  outers.gadgets = gadgets;
>>>>> -
>>>>> -  // Adding all of the available opensocial calls as defined in the
>>>>>
>>>> spec
>>>
>>>> -  outers.opensocial = opensocial;
>>>>> -  ___.all2(
>>>>> -      ___.allowCall, outers.opensocial,
>>>>> -      ['requestSendMessage', 'requestShareApp',
>>>>>
>>>> 'requestCreateActivity',
>>>
>>>> -       'hasPermission', 'requestPermission', 'getEnvironment',
>>>>> 'newDataRequest',
>>>>> -       'newActivity', 'newActivityMediaItem', 'newMessage']);
>>>>> -
>>>>> -  ___.all2(
>>>>> -      ___.allowCall, opensocial.Collection.prototype,
>>>>> -      ['getById', 'size', 'each', 'asArray', 'getTotalSize',
>>>>> 'getOffset']);
>>>>> -
>>>>> -  ___.all2(
>>>>> -      ___.allowCall, opensocial.Person.prototype,
>>>>> -      ['getId', 'getDisplayName', 'getField', 'isViewer', 'isOwner']);
>>>>> -
>>>>> -  ___.allowCall(opensocial.Address.prototype, 'getField');
>>>>> -  ___.allowCall(opensocial.BodyType.prototype, 'getField');
>>>>> -  ___.allowCall(opensocial.Email.prototype, 'getField');
>>>>> -  ___.allowCall(opensocial.Name.prototype, 'getField');
>>>>> -  ___.allowCall(opensocial.Organization.prototype, 'getField');
>>>>> -  ___.allowCall(opensocial.Phone.prototype, 'getField');
>>>>> -  ___.allowCall(opensocial.Url.prototype, 'getField');
>>>>> -
>>>>> -  ___.allowCall(opensocial.Activity.prototype, 'getId');
>>>>> -  ___.allowCall(opensocial.Activity.prototype, 'getField');
>>>>> -
>>>>> -  ___.allowCall(opensocial.MediaItem.prototype, 'getField');
>>>>> -
>>>>> -  ___.allowCall(opensocial.ResponseItem.prototype, 'hadError');
>>>>> -  ___.allowCall(opensocial.ResponseItem.prototype, 'getError');
>>>>> -  ___.allowCall(opensocial.ResponseItem.prototype,
>>>>> 'getOriginalDataRequest');
>>>>> -  ___.allowCall(opensocial.ResponseItem.prototype, 'getData');
>>>>> -
>>>>> -  ___.allowCall(opensocial.DataResponse.prototype, 'hadError');
>>>>> -  ___.allowCall(opensocial.DataResponse.prototype, 'get');
>>>>> -
>>>>> -  ___.all2(
>>>>> -      ___.allowCall, opensocial.DataRequest.prototype,
>>>>> -      ['getRequestObjects', 'add', 'send', 'newFetchPersonRequest',
>>>>> -       'newFetchPeopleRequest', 'newFetchPersonAppDataRequest',
>>>>> -       'newUpdatePersonAppDataRequest', 'newFetchActivitiesRequest']);
>>>>> -
>>>>> -  ___.allowCall(opensocial.Environment.prototype, 'getDomain');
>>>>> -  ___.allowCall(opensocial.Environment.prototype, 'supportsField');
>>>>> -
>>>>> -  ___.allowCall(opensocial.Enum.prototype, 'getKey');
>>>>> -  ___.allowCall(opensocial.Enum.prototype, 'getDisplayValue');
>>>>> -
>>>>> -  ___.allowCall(opensocial.Message.prototype, 'getField');
>>>>> -  ___.allowCall(opensocial.Message.prototype, 'setField');
>>>>> -
>>>>> -  var moduleHandler = ___.freeze({
>>>>> -    getOuters: ___.simpleFunc(function() { return outers; }),
>>>>> -    handle: ___.simpleFunc(function(newModule) { newModule(outers); })
>>>>> -  });
>>>>> -
>>>>> -  ___.setNewModuleHandler(moduleHandler);
>>>>> +  whitelist(opensocialSchema, window);
>>>>> };
>>>>>
>>>>> Modified: incubator/shindig/trunk/features/pom.xml
>>>>> URL:
>>>>>
>>>>>
>>>>
>>> http://svn.apache.org/viewvc/incubator/shindig/trunk/features/pom.xml?rev=677699&r1=677698&r2=677699&view=diff
>>>
>>>>
>>>>>
>>>>>
>>>> ==============================================================================
>>>
>>>> --- incubator/shindig/trunk/features/pom.xml (original)
>>>>> +++ incubator/shindig/trunk/features/pom.xml Thu Jul 17 12:37:30 2008
>>>>> @@ -72,8 +72,7 @@
>>>>>             <exclude>**/*.gif</exclude>
>>>>>             <exclude>**/*.jpeg</exclude>
>>>>>             <exclude>**/*.png</exclude>
>>>>> -
>>>>> -              <!-- Caja has some bugs too -->
>>>>> +              <!-- Caja is already minified -->
>>>>>             <exclude>**/caja/*.js</exclude>
>>>>>           </excludes>
>>>>>         </configuration>
>>>>>
>>>>> Modified: incubator/shindig/trunk/java/gadgets/pom.xml
>>>>> URL:
>>>>>
>>>>>
>>>>
>>> http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/pom.xml?rev=677699&r1=677698&r2=677699&view=diff
>>>
>>>>
>>>>>
>>>>>
>>>> ==============================================================================
>>>
>>>> --- incubator/shindig/trunk/java/gadgets/pom.xml (original)
>>>>> +++ incubator/shindig/trunk/java/gadgets/pom.xml Thu Jul 17 12:37:30
>>>>>
>>>> 2008
>>>
>>>> @@ -131,6 +131,11 @@
>>>>>     <scope>compile</scope>
>>>>>   </dependency>
>>>>>   <dependency>
>>>>> +      <groupId>caja</groupId>
>>>>> +      <artifactId>json_simple</artifactId>
>>>>> +      <scope>compile</scope>
>>>>> +    </dependency>
>>>>> +    <dependency>
>>>>>     <groupId>net.oauth</groupId>
>>>>>     <artifactId>core</artifactId>
>>>>>     <scope>compile</scope>
>>>>>
>>>>> Modified:
>>>>>
>>>>>
>>>> incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/CajaContentFilter.java
>>>
>>>> URL:
>>>>>
>>>>>
>>>>
>>> http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/CajaContentFilter.java?rev=677699&r1=677698&r2=677699&view=diff
>>>
>>>>
>>>>>
>>>>>
>>>> ==============================================================================
>>>
>>>> ---
>>>>>
>>>>>
>>>> incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/CajaContentFilter.java
>>>
>>>> (original)
>>>>> +++
>>>>>
>>>>>
>>>> incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/CajaContentFilter.java
>>>
>>>> Thu Jul 17 12:37:30 2008
>>>>> @@ -21,17 +21,19 @@
>>>>> import org.apache.shindig.gadgets.GadgetContentFilter;
>>>>> import org.apache.shindig.gadgets.GadgetException;
>>>>>
>>>>> +import com.google.caja.lexer.CharProducer;
>>>>> import com.google.caja.lexer.ExternalReference;
>>>>> +import com.google.caja.lexer.FilePosition;
>>>>> +import com.google.caja.lexer.InputSource;
>>>>> import com.google.caja.opensocial.DefaultGadgetRewriter;
>>>>> -import com.google.caja.opensocial.GadgetContentRewriter;
>>>>> -import com.google.caja.opensocial.UriCallback;
>>>>> import com.google.caja.opensocial.GadgetRewriteException;
>>>>> +import com.google.caja.opensocial.UriCallback;
>>>>> import com.google.caja.opensocial.UriCallbackException;
>>>>> import com.google.caja.opensocial.UriCallbackOption;
>>>>> -import com.google.caja.reporting.SimpleMessageQueue;
>>>>> -import com.google.caja.reporting.MessageQueue;
>>>>> import com.google.caja.reporting.Message;
>>>>> import com.google.caja.reporting.MessageContext;
>>>>> +import com.google.caja.reporting.MessageQueue;
>>>>> +import com.google.caja.reporting.SimpleMessageQueue;
>>>>>
>>>>> import java.io.IOException;
>>>>> import java.io.Reader;
>>>>> @@ -65,16 +67,16 @@
>>>>>   };
>>>>>
>>>>>   MessageQueue mq = new SimpleMessageQueue();
>>>>> -    GadgetContentRewriter rw = new DefaultGadgetRewriter(mq);
>>>>> -    Readable input = new StringReader(content);
>>>>> -    Appendable output = new StringBuilder();
>>>>> +    DefaultGadgetRewriter rw = new DefaultGadgetRewriter(mq);
>>>>> +    CharProducer input = CharProducer.Factory.create(
>>>>> +        new StringReader(content),
>>>>> +        FilePosition.instance(new InputSource(retrievedUri), 2, 2, 1,
>>>>>
>>>> 1));
>>>>
>>>>> +    StringBuilder output = new StringBuilder();
>>>>>
>>>>>   try {
>>>>>     rw.rewriteContent(retrievedUri, input, cb, output);
>>>>>   } catch (GadgetRewriteException e) {
>>>>>     throwCajolingException(e, mq);
>>>>> -    } catch (UriCallbackException e) {
>>>>> -      throwCajolingException(e, mq);
>>>>>   } catch (IOException e) {
>>>>>     throwCajolingException(e, mq);
>>>>>   }
>>>>>
>>>>> Modified:
>>>>> incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.html
>>>>> URL:
>>>>>
>>>>>
>>>>
>>> http://svn.apache.org/viewvc/incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.html?rev=677699&r1=677698&r2=677699&view=diff
>>>
>>>>
>>>>>
>>>>>
>>>> ==============================================================================
>>>
>>>> ---
>>>>>
>>>> incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.html
>>>>
>>>>> (original)
>>>>> +++
>>>>>
>>>> incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.html
>>>>
>>>>> Thu Jul 17 12:37:30 2008
>>>>> @@ -51,10 +51,10 @@
>>>>> var stateFileUrl = baseUrl + 'state-basicfriendlist.xml';
>>>>> var stateFileUrlCookie = 'sampleContainerStateFileUrl';
>>>>>
>>>>> -var useCaja = false;
>>>>> -var useCache = true;
>>>>> -var usePermissive = false;
>>>>> -var doEvil = false;
>>>>> +var useCaja;
>>>>> +var useCache;
>>>>> +var usePermissive;
>>>>> +var doEvil;
>>>>> var gadget;
>>>>>
>>>>> var viewerId = "john.doe";
>>>>> @@ -93,13 +93,18 @@
>>>>>  });
>>>>> };
>>>>>
>>>>> -function changeGadgetUrl() {
>>>>> +function unpackFormState() {
>>>>>  useCaja = document.getElementById("useCajaCheckbox").checked;
>>>>>  useCache = document.getElementById("useCacheCheckbox").checked;
>>>>> -  gadgets.container.nocache_ = useCache ? 0 : 1;
>>>>> -
>>>>>  usePermissive =
>>>>>
>>>> document.getElementById("usePermissiveCheckbox").checked;
>>>>
>>>>>  doEvil = document.getElementById("doEvilCheckbox").checked;
>>>>> +}
>>>>> +
>>>>> +function changeGadgetUrl() {
>>>>> +  unpackFormState();
>>>>> +
>>>>> +  gadgets.container.nocache_ = useCache ? 0 : 1;
>>>>> +
>>>>>  setEvilBit();
>>>>>
>>>>>  stateFileUrl = document.getElementById("stateFileUrl").value;
>>>>> @@ -260,19 +265,23 @@
>>>>>
>>>>> </script>
>>>>> </head>
>>>>> -<body onLoad="initGadget();">
>>>>> +<body onLoad="unpackFormState(); initGadget();">
>>>>>  <div id="headerDiv">
>>>>>   <div style="float:left">Gadget testing container</div>
>>>>>   <div class="subTitle">
>>>>>     Displaying gadget: <input type="text" size="75" id="gadgetUrl"/>
>>>>> -      <input type="checkbox" id="useCacheCheckbox" checked="true"/>use
>>>>> cache
>>>>> -      <input type="checkbox" id="useCajaCheckbox"/>use caja
>>>>> -      <input type="checkbox" id="usePermissiveCheckbox"/>use
>>>>>
>>>> permissive
>>>
>>>> +      <input type="checkbox" id="useCacheCheckbox" checked="true"
>>>>> +       /><label for="useCacheCheckbox">use cache</label>
>>>>> +      <input type="checkbox" id="useCajaCheckbox"
>>>>> +       /><label for="useCajaCheckbox">use caja</label>
>>>>> +      <input type="checkbox" id="usePermissiveCheckbox"
>>>>> +       /><label for="usePermissiveCheckbox">use permissive</label>
>>>>>
>>>>>     <br/>
>>>>>
>>>>>     Using state: <input type="text" size="75" id="stateFileUrl"/>
>>>>> -      <input type="checkbox" id="doEvilCheckbox"/>do evil
>>>>> +      <input type="checkbox" id="doEvilCheckbox"
>>>>> +       /><label for="doEvilCheckbox">do evil</label>
>>>>>
>>>>>     <br/>
>>>>>     <br/>
>>>>>
>>>>> Modified: incubator/shindig/trunk/pom.xml
>>>>> URL:
>>>>>
>>>>>
>>>>
>>> http://svn.apache.org/viewvc/incubator/shindig/trunk/pom.xml?rev=677699&r1=677698&r2=677699&view=diff
>>>
>>>>
>>>>>
>>>>>
>>>> ==============================================================================
>>>
>>>> --- incubator/shindig/trunk/pom.xml (original)
>>>>> +++ incubator/shindig/trunk/pom.xml Thu Jul 17 12:37:30 2008
>>>>> @@ -771,7 +771,13 @@
>>>>>     <dependency>
>>>>>       <groupId>caja</groupId>
>>>>>       <artifactId>caja</artifactId>
>>>>> -        <version>r820</version>
>>>>> +        <version>r1899</version>
>>>>> +        <scope>compile</scope>
>>>>> +      </dependency>
>>>>> +      <dependency>
>>>>> +        <groupId>caja</groupId>
>>>>> +        <artifactId>json_simple</artifactId>
>>>>> +        <version>r1</version>
>>>>>       <scope>compile</scope>
>>>>>     </dependency>
>>>>>     <dependency>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>> .-. --- .--. ..-
>>>> R o p u
>>>>
>>>>
>>>
>>
>>
>> --
>> .-. --- .--. ..-
>> R o p u
>>
>
>


-- 
.-. --- .--. ..-
R o p u

Reply via email to