This corrects/normalizes license headers in misc. files, such as
config files, docs, build tools, tests, and externs. This does not
affect the compiled output, and is only done for consistency.
Issue #2638
Change-Id: I9d8da2de55243b08d7df2b743aac73c6f15e858a
When we changed the font for the icons without changing the class
name, we lost upstream styles from the font server. This was not
obvious in our demo, but was more obvious in other apps where the font
size was different.
By using the same class name as used by the font server, we get those
upstream styles applied correctly.
Issue #2633
Change-Id: I615c1dfd86e5b9802d03050c5db0154ac196c2ef
The IMA SDK URLs in the service worker were http, and should have been
https. This caused an issue when deploying v3.0.0 to appspot.
The IMA SDK URLs in the demo specified no protocol, but that is not
necessary, since https works in all contexts.
The IMA SDK URLs in the docs also specified no protocol, and one of
them was incorrect.
This corrects the mistaken URLs and makes them universally https.
Change-Id: I53dbf25ddb16ec882fcf3c070bcebed726277be1
The Closure Library's base.js, the Closure Compiler, and the Closure
deps-writer are all now loaded via NPM instead of commiting them
directly to the repo. This also updates both the library and compiler
to the latest version: 20200406.
We still have a fork of the Closure Library's URI parser. The latest
upstream version of that has too many dependencies on the rest of the
library to import directly from NPM.
Some internals of the build system have been refactored, and the
"complete" set of files in the build system now includes third_party.
Our forked URI parser does not pass lint checks yet, so the linter
does not run over third_party yet.
A couple of overly-severe sets of compiler checks have been disabled,
since even the latest Closure Library's base.js doesn't pass them.
The script-loader in load.js had to be updated for compatibility with
the new Closure Library. If you don't return "true" now, Closure's
base.js will stop loading subsequent source files.
Some local externs that we had written are now available from the
compiler, so our local copies have been deleted.
A few type-related changes have been made as well, removing casts that
were necessary with the old compiler, but not necessary with the new
one.
Finally, this corrects some type issues in the tests using the new
"typeof" annotation from the compiler. This allows us to type a
variable as a class defined elsewhere. For example, after loading the
compiled library, we can reference compiledShaka.Player, which has the
type "typeof shaka.Player". The compiler can then type-check all uses
of it in the tests.
Closes#2528 (bad polyfill code generated by the old compiler)
Change-Id: I62ec61e82d4edf342b2c576c2d4f89f11562ee65
Loading pwacompat off of jsdelivr was flagged as a security issue
through an automated scan. Since Google does not control jsdelivr,
that is theoretically true.
This just loads a local version of pwacompat via npm, and uses that
instead.
Change-Id: Iba9288a1d440dfdfa039a32b530f6da981c5b055
CDNJS isn't updating correctly and maintenance of that mirror's config
is nearly impossible.
Also adds a reference to jsDelivr in the README, matching what's in
the demo app.
Closes#2343
Change-Id: I3a337ccd55ebc4c193ab205a7f8c8a77c33a4b4b
The correct message id is REPORT_BUG; we had it as DEMO_REPORT_BUG,
which is the id of the localized string.
Closes#2340
Change-Id: I7c737d7a74e5d0258db0d70e4f90f9d85abcd391
This CL does:
- define CS IMA externs
- define Ad Insertion classes and sctructures
- add a (non-working) skeleton for the Ad UI
- provide a (working) early draft of the CS implementation
This CL does not:
- add any SS logic
- have a working ad UI
- provide a final and complete implementation for the CS logic
- fully follow the finalized Ad Insertion design
Change-Id: I645cdcb3a1d4041792b940c2d6faf011be5eb682
In compiled mode, UI calls player methods by their compiled, renamed names.
The proxy object doesn't know those, so an error used to be thrown while
casting in compiled mode. This change adds a map from compiled to extern
names that cast proxy can use.
It also cleans up proxy code a bit and points the demo to the nightly
build of cast receiver.
Closes#2130.
Change-Id: I39b83c6a1e050a68d70e7923d1a07ad8929daeeb
In noinput mode, we avoided loading the tabs, since they were unnecessary.
However, it turns out that we did need to load them if we wanted to load
custom assets, since they can only be loaded properly if the custom tab
exists.
This changes the demo to load the tabs, and just hide their contents.
Closes#2098
Change-Id: I2c4702fbaae3c88b44d86c7ac9e383728af42867
Previously, in uncompiled mode, we were loading Shaka Player using
goog.require calls, but loading the demo code directly. This meant that
the demo code was loaded before the Shaka Player, code, which lead to
issues if something needed the "shaka" namespace to exist during
load-time; for example, if a demo class wanted to extend a Shaka class.
This adds goog.provide calls to the demo, so that it can be loaded with
goog.require also while in uncompiled mode.
Change-Id: If6cc92db0ce05dd9c3f298e9bd1a5119452ad8a4
Previously, we were using MDL tooltips for our tooltips.
They seemed fine at first, but proved very temperamental; we had to
jump through hoops to get them to work inside MDL cards, and they kept
breaking for various reasons.
This instead adds the third-party tippy.js module, and uses that to make
tooltips instead.
Change-Id: I37ae9c9ade4e3c4dd6cbb1b86601377ed5d9e54f
When we upgraded the node modules, we missed the fact that this path
changed. This broke the demo app on Firefox, but not on Chrome, where
the polyfill is not needed.
Closes#1947
Change-Id: If889c46f840df7e3ee4aa67ab5026f0cebec2a41
The new mux.js release fixes support for a minified build, so we
should use that from now on.
videojs/mux.js#173
Change-Id: I08cff8d33a520fe753c5490a4719cba3bb27f19e
Importing in less is not enough. It will not necessarily inline what
is imported by default. The "inline" option, however, will force the
CSS file to be inlined. Without this, some of the `@import`
statements are put directly into the output file, triggering
additional network requests at runtime. This also adds the "css"
option, which forces less to treat these inputs as CSS and not as
LESS.
Finally, we import MDL for the demo app as a node dependency instead
of loading it from another origin.
This improves the demo's Lighthouse scores of "First Contentful Paint"
by 27% and "First Meaningful Paint" by 14%.
Change-Id: I28e627d3df494e3c4893d31b6bf818f09e8153e9
This reduces the number of resources we have to load by using LESS to
import them into the compiled CSS bundle.
This also gets rid of a flash of unstyled content in compiled mode by
always including the compiled CSS in HTML directly, regardless of
mode. If the app is running in uncompiled mode, LESS is still loaded
and can override the compiled styles.
Change-Id: I8cde25c15c281029a129225fc85a8baee767f424
This is so that the video is properly fullscreen on Safari.
Changing video-container into a class changes its specificity, and thus
changes in which order the css properties are applied.
Change-Id: I8b1e9e9479724d009014b97973a1aa1271a33773
With the correct ID, the receiver is now understanding our signals.
Everything on the screen advances and updates as it should.
Fixes b/131253795
Change-Id: Id779cf299e66b8dff863960867831a2b2bb38b65
- Use a minified mux.js and awesomplete.js
- Add rel=noopener to offsite target=_blank links for security
- Improve contrast on selected nav button and footer text
- Add empty alt attributes to asset images, since these are
not necessary to understand the page
Change-Id: I253c7354243aaa0fe98e1f075dae304ddad4a3e2
- Don't cache Roboto Condensed, which is no longer used
- Add back style sheet to load the Roboto font, which is used
- Cache dialog and datalist polyfills used by the demo app
Change-Id: I0e347748a9830d95db0e4ba6bbfda7033edd3ac1
The service worker should not only be deciding what to cache, but what
to pull from cache. A recent refactor to this file overlooked this,
which caused resources from other origins not to be available offline,
even though they were cached.
Change-Id: I62d7c2f96827e778a991b06d0bd222c4f0cb336b
Also adds a getConfiguration method to the ui, so that the demo does
not need to construct a config object from scratch.
Change-Id: Ic583fbcc0815494c7668242f6c798b8c15f09697
This is a complete replacement for the old demo page, made to be more
modern-looking and easier to maintain. It contains new features such as
remembering the URIs you provide for custom assets, and searching through
the default assets by feature.
This demo page is not quite ready for release yet, but it's getting close.
Change-Id: Iad01d1fc02c3cd238d73b9b9e02dbb4301cb6f2a
At some point, a compiler upgrade introduced a built-in polyfill for
Promise. A third-party polyfill for Promises on IE11 is no longer
required.
Change-Id: Ie5a649232d949b0bba0c6c68ea54ceed6fb30891
This config lets you override the availability window of a live stream.
It is in config.manifest, and passed along on start.
This will let users configure the parser so that they can seek with HLS
live streams, for example.
Closes#1177Closes#1307
Change-Id: Icd3c1d81c6b52ebdbb72137df42fc91cd73a0207
A bug in our Promise polyfill caused issues with the recently-added
AbortableOperation class on IE11. Since external polyfills for this
are smaller, it is easier to remove ours in favor of a third-party
polyfill. Applications that wish to support IE11 must now load this
additional polyfill.
We are using the "es6-promise-polyfill" module from npm, but any
compliant polyfill should suffice.
One feature our own polyfill offered was the ability to flush all
Promises, which allowed us to write synchronous unit tests that
simulated async processes. To get this ability back, we are now
using the "promise-mock" module in our tests.
Getting "promise-mock" to load correctly involved switching from
"requirejs" to "cajon", which builds on requirejs and supports
AMD modules more directly.
Closes#1260
Change-Id: I5de48e88a910736ae5c1897a7a509bc5641acb70
This is to disambiguate with video.autoplay and to more clearly state
what this checkbox does.
Closes#1114
Change-Id: I23138957bda1fe6159b42bd4ae3327a426d379f9
This also modifies the build scripts to produce debug builds of the
demo and the receiver when doing debug builds.
Change-Id: I386a7b8f541332594a5022955a69970ebbe79200
When using the compiled version of the library, use a compiled version
of the demo app, as well. This makes use of the generated externs, so
we now have additional confidence that they are correctly generated.
Refactor the load.js script to use a configurable list of sources.
This enables us to use the same load.js in both the demo and cast
receiver.
This, ultimately, makes it easier to cache demo resources in our PWA.
Issue #876
Change-Id: I274660fe2ea23236ceea3c2d3c97572762d2f785