Skip to main content

How to make Chrome Packaged App that's trying to load realtime data model

A packaged app (Chrome App) cannot have less restrictive CSP (Content Security Policy) than the default CSP value. And it looks like the Google Drive Realtime API cannot be used in the Packaged app's without any hacks. Because the default packaged app Content Security Policy (CSP) value disallows the use of eval() or new Function(). However, a variety of library uses eval() and eval-like constructs such as new Fucntions() for performance optimization and for ease of expression. It will result in following error:

"EvalError when trying to load realtime data model"

Steps to resolve this issue:
  1. Load GAPI using a webview tag.
  2. Load Webview inside standalone localhost. Use a chrome socket.
  3. Handle your own OAuth flow and supply the token to the gapi auth client.
This way you can make your Chrome Packaged App to work with Google Drive Realtime API.

Comments

Popular posts from this blog

How to Design a Good Realtime Data Model in your own Collabrative App

Use Case Requirement of my Mobile App: Let us consider the following use case of my mobile app to design a good realtime data model. Use case: Reconcile chat messages in multiple devices. I need to show up history data generated by one device in another device in real time when user login in two different devices using same account details. To implement this we need a central storage server and a synchronization service. Solution: Google Drive can be used as a file storage server and also I need to look for a javascript library or we should implement Operational Transformations (OT) that would allow us to synchronize history data in realtime between multiple devices. And Operational Transformations seems to fit my need for realtime sync. Google Drive Realtime API provides synchronization service for files in Google Drive via the use of Operational Transforms. This API is a JavaScript library hosted by google that provides collaborative objects, events, and method...

How to Build Realtime Collaborative Apps using Google Drive Realtime API

Google Drive lets users create Docs, Sheets, and Slides, collaborate on them in realtime. The Google Drive Realtime API provides collaboration as service for files in Google Drive via the use of Operational Transforms. Using Google Drive Realtime API, you can now easily build your own collaborative apps. Realtime API is based on the same collaboration technology used by Google Docs. Realtime Collaboration System: What Google Drive Realtime API does for you ? And what you have to do ? Realtime API handles everything for you like network communication, storage, conflict resolution, and other collaborative details: Functions to load and work with Realtime documents. Built-in collaborative objects (Strings, Lists and Maps) Also you can create your own custom collaborative objects. Events for detecting changes to the collaborative data model. A text binder to bind your collaborative objects to the DOM. Google Drive Realtime API provides all the tools you need to ...

How to do Live Streaming using amazon EC2 and Adobe Media Server

This tutorial walk through how to launch amazon EC2 instances and the process of configuring live streaming with Adobe Media Server, the platform for streaming HD video with good audio quality. This platform will help to deliver your live video directly to a target audience of almost any size. To get started with amazon EC2: You will primarily use AWS Management Console, a point-and-click web-based interface. Sign up for EC2 – AWS account. Sign in to the AWS Management Console and open the Amazon EC2 console at https://console.aws.amazon.com/ec2/ . From the navigation bar, select the region for the instance . You can also use the default region. Otherwise this choice is important because some EC2 resources can be shared between regions, while others cant.  For example, if you'd like to connect your instance to an existing EBS volume, you must launch the instance in the same region as the volume. Click -> Launch instance – An instance is a virtual server in the clo...