Commit Graph

18 Commits

Author SHA1 Message Date
Joey Parrish 66abf9cb27 Remove all protocol-relative URIs
According to @beaufortfrancois, we should no longer be using protocol-
relative URIs.  He quotes this passage from Paul Irish:

> Now that SSL is encouraged for everyone and doesn’t have performance
> concerns, this technique is now an anti-pattern. If the asset you
> need is available on SSL, then always use the https:// asset.

> Allowing the snippet to request over HTTP opens the door for attacks
> like the recent Github Man-on-the-side attack. It’s always safe to
> request HTTPS assets even if your site is on HTTP, however the
> reverse is not true.

Source: https://www.paulirish.com/2010/the-protocol-relative-url/

This change was begun with the following command:
  git grep -l "'//" | xargs sed -i "s@'//@'https://@g"

Some changes made by that command were false-positives, which I then
reverted manually.  Others required additional cleanup to meet style
rules.

I've also just discovered that the "max-len" rule in eslint's Google
style config exempts URIs, so there's no need to disable the max-len
rule on URIs in the assets list.  These have been removed in the asset
list where unnecessary.

Finally, testing these updated URIs led to the discovery that two of
our third-party demo assets are no longer available.  One URI needed
to be updated.  The other had no obvious replacement, so it was
removed.

Closes #1390

Change-Id: I2fe23faec04f1904c1741236b364d5089900092a
2018-04-09 18:06:18 +00:00
Joey Parrish f0a3dbe1e2 Update architecture diagrams
This updates the existing diagrams and adds new ones for cast and
offline.  The offline diagrams will need to be updated again after
we resolve #1248.

Closes #1197

Change-Id: I6b6b1fac732b4997c579f58c7f12f0f84f202380
2018-03-15 08:07:22 +00:00
Jacob Trimble 62a4735343 Add document describing DASH manifests.
Closes #1233
Issue #1265

Change-Id: I3f207bedd4a943ca49ddc580f152e92e33d7e89a
2018-03-01 17:23:58 +00:00
Joey Parrish 1f58664d6b Update architecture diagrams
Issue #1183

Change-Id: If68b6aca71cb09756af2bbb0836c381397741508
2017-12-18 22:14:42 +00:00
Tim Plummer 775d755259 Remove deprecated @expose annotations.
Added externs for error.js and removed the @expose declarations from the
actual error.js file. Updated the jscompiler flags and docs.

Change-Id: I2aa95ef1c82fc7bd349c637cca3141d5a003b646
2017-09-26 13:51:36 -07:00
Joey Parrish d8ad38b36f Document design for DASH audio channel parsing
Issue #424

Change-Id: Ibd771b7426bc822aeb236415c2ca5bccacb05497
2017-07-25 02:34:50 -07:00
Jacob Trimble 0ca0cb9aba Add design doc for gap jumping.
Issue #555

Change-Id: Ifb8525ad8924f2581f1aa72bc2278b8bc9d857f3
2017-04-03 13:33:56 -07:00
Jacob Trimble cbbc61ec4c Add a diagram for the PresentationTimeline
Change-Id: I6ca8dcd88e56daaf99820816ca9f3c9f02a2076f
2017-02-27 17:06:30 -08:00
Joey Parrish 8ba088a38f Generate externs automatically
We were not able to get our externs generated by the Closure compiler.
There were many issues with the Closure-generated externs, including
the order of the externs and the replacement of record types and enums
with their underlying types.

We made a few attempts to patch the compiler, but could not get our
patches accepted upstream.

This change introduces a new script to generate our externs from
scratch.  It uses a JavaScript parser called 'esprima'.

Some interfaces need to be exported to the generated externs, but are
not actually attached to the namespace by the compiler.  For this, we
introduce a new annotation.  These are the currently-supported export
annotations:

 - @export: truly exported (attached to namespace) by the compiler
 - @expose: truly exposed (not renamed) by the compiler
 - @exportDoc: considered part of the exports in the docs
 - @exportInterface: considered part of the exports in generated externs

These annotations are now documented in docs/design/export.md

Change-Id: I33bf7384889c14c9edb0fa5f11caa7c4f4d79af6
2017-02-01 11:42:16 -08:00
Joey Parrish 0c8f74493c v2 Chromecast support
This introduces Chromecast support directly in the v2 library, as well
as in the demo app.

See the included design doc for details.

Issue #261

Change-Id: I26a707e7fa6bd829c3ebc70e4c9345ec25eed000
2016-07-06 11:47:04 -07:00
Joey Parrish 63e793bdad Design doc for offline
Issue #343

Change-Id: I8c2ff4b2dd1777f28b1dd427527c83576ca8fcbc
2016-06-10 17:13:22 +00:00
Joey Parrish c29fdf401b Shaka v2 Upgrade Guide
Also fixes docs export on some of our external structures.

Change-Id: Ia31f2ad46c6f07845c289c6ca2f206a6fd6cf341
2016-04-13 21:15:40 +00:00
Joey Parrish 1208ab58f0 Update design docs for v2
Change-Id: I3d3fe5c86d6223a10fc69f8e3cd3692b00967ea4
2016-04-07 14:02:47 -07:00
Timothy Drews 415414154d Remove the receipt buffer from StreamingEngine.
The receipt buffer mechanism allowed us use byte-based
eviction; however, it increased the complexity of StreamingEngine
and required us to make strict assumptions about the manifest.

With the receipt buffer gone, we will now do time-based eviction.
Applications can specify a maximum "buffer tail" length instead of a
maximum byte limit.

Change-Id: Iafdbe2e71516ea0ae18254b9767ecfc1d6813644
2016-03-17 22:33:24 +00:00
Joey Parrish acad020d77 Sketch the rest of Player APIs
Lots of TODOs to be filled in.

Change-Id: I571bba91526f334d4bbd89a71974e74f5e499592
2016-03-11 20:04:26 +00:00
Joey Parrish cd2d25cbb2 Convert TextSourceBuffer to TextEngine
This changes the text APIs to correctly handle buffered ranges of
segmented text.

b/25517444

Related to issue #150

Change-Id: I3a11b87e8d93376a5012566deb3bf0d015f52391
2016-02-17 00:19:49 +00:00
Joey Parrish 1a8f873f27 Update design docs
Change-Id: I787b418f203fbbc3279b4a6584673b8181e5a898
2016-01-16 00:50:53 +00:00
Joey Parrish 58003ff9d6 Overhaul build and docs layout
* Move redesign docs to docs/design/
* Put all build output (including closure deps) in dist/
* Restore doc-building scripts
* Fix small doc error in MPD utils

Change-Id: I930f4f976370885b3c3c37c59f1ae7fcc5522413
2016-01-04 12:33:10 -08:00