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

