Home | History | Annotate | Download | only in eme_player_js
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Test configuration used by test page to configure the player app and other
      6 // test specific configurations.
      7 function TestConfig() {
      8   this.mediaFile = null;
      9   this.keySystem = null;
     10   this.mediaType = null;
     11   this.licenseServerURL = null;
     12   this.useMSE = false;
     13   this.usePrefixedEME = false;
     14   this.runFPS = false;
     15 }
     16 
     17 TestConfig.prototype.loadQueryParams = function() {
     18   // Load query parameters and set default values.
     19   var r = /([^&=]+)=?([^&]*)/g;
     20   // Lambda function for decoding extracted match values. Replaces '+' with
     21   // space so decodeURIComponent functions properly.
     22   var decodeURI = function decodeURI(s) {
     23       return decodeURIComponent(s.replace(/\+/g, ' '));
     24   };
     25   var match;
     26   while (match = r.exec(window.location.search.substring(1)))
     27     this[decodeURI(match[1])] = decodeURI(match[2]);
     28   this.useMSE = this.useMSE == '1' || this.useMSE == 'true';
     29   this.usePrefixedEME =
     30       this.usePrefixedEME == '1' || this.usePrefixedEME == 'true';
     31 };
     32 
     33 TestConfig.updateDocument = function() {
     34   this.loadQueryParams();
     35   Utils.addOptions(KEYSYSTEM_ELEMENT_ID, KEY_SYSTEMS);
     36   Utils.addOptions(MEDIA_TYPE_ELEMENT_ID, MEDIA_TYPES);
     37   Utils.addOptions(USE_PREFIXED_EME_ID, EME_VERSIONS_OPTIONS,
     38                    EME_DISABLED_OPTIONS);
     39 
     40   document.getElementById(MEDIA_FILE_ELEMENT_ID).value =
     41       this.mediaFile || DEFAULT_MEDIA_FILE;
     42 
     43   document.getElementById(LICENSE_SERVER_ELEMENT_ID).value =
     44       this.licenseServerURL || DEFAULT_LICENSE_SERVER;
     45 
     46   if (this.keySystem)
     47     Utils.ensureOptionInList(KEYSYSTEM_ELEMENT_ID, this.keySystem);
     48   if (this.mediaType)
     49     Utils.ensureOptionInList(MEDIA_TYPE_ELEMENT_ID, this.mediaType);
     50   document.getElementById(USE_MSE_ELEMENT_ID).value = this.useMSE;
     51   if (this.usePrefixedEME)
     52     document.getElementById(USE_PREFIXED_EME_ID).value = EME_PREFIXED_VERSION;
     53 };
     54 
     55 TestConfig.init = function() {
     56   // Reload test configuration from document.
     57   this.mediaFile = document.getElementById(MEDIA_FILE_ELEMENT_ID).value;
     58   this.keySystem = document.getElementById(KEYSYSTEM_ELEMENT_ID).value;
     59   this.mediaType = document.getElementById(MEDIA_TYPE_ELEMENT_ID).value;
     60   this.useMSE = document.getElementById(USE_MSE_ELEMENT_ID).value == 'true';
     61   this.usePrefixedEME = document.getElementById(USE_PREFIXED_EME_ID).value ==
     62       EME_PREFIXED_VERSION;
     63   this.licenseServerURL =
     64       document.getElementById(LICENSE_SERVER_ELEMENT_ID).value;
     65 };
     66