Bug 1412180 - implement regionID on TextTrackRegion. r=smaug, rillian draft
authorbechen@mozilla.com <bechen@mozilla.com>
Mon, 06 Nov 2017 11:18:55 +0800
changeset 693402 6d22a6ae6cc9cc3eedb4d029c0b8f24552368f97
parent 686628 15663d3f8728823e6e48eca1d785b84d1de1edcd
child 739015 1078bdcf5d38892d30795e3b5e9424c8b3cab8d2
push id87783
push userbmo:bechen@mozilla.com
push dateMon, 06 Nov 2017 04:08:25 +0000
reviewerssmaug, rillian
bugs1412180
milestone58.0a1
Bug 1412180 - implement regionID on TextTrackRegion. r=smaug, rillian MozReview-Commit-ID: 3uFAQuNfGjO
dom/media/TextTrackRegion.cpp
dom/media/TextTrackRegion.h
dom/media/webvtt/vtt.jsm
dom/webidl/VTTRegion.webidl
--- a/dom/media/TextTrackRegion.cpp
+++ b/dom/media/TextTrackRegion.cpp
@@ -46,16 +46,17 @@ TextTrackRegion::TextTrackRegion(nsISupp
   , mViewportAnchorX(0)
   , mViewportAnchorY(100)
 {
 }
 
 void
 TextTrackRegion::CopyValues(TextTrackRegion& aRegion)
 {
+  mId = aRegion.Id();
   mWidth = aRegion.Width();
   mLines = aRegion.Lines();
   mRegionAnchorX = aRegion.RegionAnchorX();
   mRegionAnchorY = aRegion.RegionAnchorY();
   mViewportAnchorX = aRegion.ViewportAnchorX();
   mViewportAnchorY = aRegion.ViewportAnchorY();
   mScroll = aRegion.Scroll();
 }
--- a/dom/media/TextTrackRegion.h
+++ b/dom/media/TextTrackRegion.h
@@ -122,33 +122,48 @@ public:
     if (!aScroll.EqualsLiteral("") && !aScroll.EqualsLiteral("up")) {
       aRv.Throw(NS_ERROR_DOM_SYNTAX_ERR);
       return;
     }
 
     mScroll = aScroll;
   }
 
+  void GetId(nsAString& aId) const
+  {
+    aId = mId;
+  }
+
+  void SetId(const nsAString& aId)
+  {
+    mId = aId;
+  }
+
   /** end WebIDL Methods. */
 
 
   // Helper to aid copying of a given TextTrackRegion's width, lines,
   // anchor, viewport and scroll values.
   void CopyValues(TextTrackRegion& aRegion);
 
   // -----helpers-------
   const nsAString& Scroll() const
   {
     return mScroll;
   }
+  const nsAString& Id() const
+  {
+    return mId;
+  }
 
 private:
   ~TextTrackRegion() {}
 
   nsCOMPtr<nsISupports> mParent;
+  nsString mId;
   double mWidth;
   long mLines;
   double mRegionAnchorX;
   double mRegionAnchorY;
   double mViewportAnchorX;
   double mViewportAnchorY;
   nsString mScroll;
 
--- a/dom/media/webvtt/vtt.jsm
+++ b/dom/media/webvtt/vtt.jsm
@@ -1111,16 +1111,17 @@ const { XPCOMUtils } = require("resource
           }
         }, /=/, /\s/);
 
         // Create the region, using default values for any values that were not
         // specified.
         if (settings.has("id")) {
           try {
             var region = new self.window.VTTRegion();
+            region.id = settings.get("id", "");
             region.width = settings.get("width", 100);
             region.lines = settings.get("lines", 3);
             region.regionAnchorX = settings.get("regionanchorX", 0);
             region.regionAnchorY = settings.get("regionanchorY", 100);
             region.viewportAnchorX = settings.get("viewportanchorX", 0);
             region.viewportAnchorY = settings.get("viewportanchorY", 100);
             region.scroll = settings.get("scroll", "");
             // Register the region.
--- a/dom/webidl/VTTRegion.webidl
+++ b/dom/webidl/VTTRegion.webidl
@@ -4,16 +4,17 @@
  * You can obtain one at http://mozilla.org/MPL/2.0/.
  *
  * The origin of this IDL file is
  *  http://dev.w3.org/html5/webvtt/#extension-of-the-texttrack-interface-for-region-support
  */
 
 [Constructor, Pref="media.webvtt.regions.enabled"]
 interface VTTRegion {
+           attribute DOMString id;
            [SetterThrows]
            attribute double width;
 
            attribute long lines;
 
            [SetterThrows]
            attribute double regionAnchorX;
            [SetterThrows]