Merge inbound to mozilla-central. a=merge
authorMihai Alexandru Michis <malexandru@mozilla.com>
Tue, 13 Aug 2019 00:53:10 +0300
changeset 487482 1ca06cd3e226f80adf2b1b8837ed9a475fa90baa
parent 487481 076dd880cd6728ebcc021f8ebcf82ce0f515d8d0 (current diff)
parent 487440 be6d151634b6da1d25c47713ccff7445ee7acc0b (diff)
child 487493 deb8af704ac64123a30aba807dd595a6a0879ba5
child 487525 a9697d53f08cd4e9874fe725cc7cf41b152e1feb
push id113879
push usermalexandru@mozilla.com
push dateMon, 12 Aug 2019 22:02:50 +0000
treeherdermozilla-inbound@1ca06cd3e226 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge
milestone70.0a1
first release with
nightly linux32
1ca06cd3e226 / 70.0a1 / 20190812215403 / files
nightly linux64
1ca06cd3e226 / 70.0a1 / 20190812215403 / files
nightly mac
1ca06cd3e226 / 70.0a1 / 20190812215403 / files
nightly win32
1ca06cd3e226 / 70.0a1 / 20190812215403 / files
nightly win64
1ca06cd3e226 / 70.0a1 / 20190812215403 / files
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
releases
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Merge inbound to mozilla-central. a=merge
--- a/browser/installer/windows/nsis/shared.nsh
+++ b/browser/installer/windows/nsis/shared.nsh
@@ -445,16 +445,17 @@
   ${EndIf}
 
   ${AddAssociationIfNoneExist} ".pdf" "FirefoxHTML$5"
   ${AddAssociationIfNoneExist} ".oga" "FirefoxHTML$5"
   ${AddAssociationIfNoneExist} ".ogg" "FirefoxHTML$5"
   ${AddAssociationIfNoneExist} ".ogv" "FirefoxHTML$5"
   ${AddAssociationIfNoneExist} ".pdf" "FirefoxHTML$5"
   ${AddAssociationIfNoneExist} ".webm" "FirefoxHTML$5"
+  ${AddAssociationIfNoneExist} ".svg" "FirefoxHTML$5"
 
   ; An empty string is used for the 5th param because FirefoxHTML is not a
   ; protocol handler
   ${AddDisabledDDEHandlerValues} "FirefoxHTML$5" "$2" "$8,1" \
                                  "${AppRegName} HTML Document" ""
 
   ${AddDisabledDDEHandlerValues} "FirefoxURL$5" "$2" "$8,1" "${AppRegName} URL" \
                                  "true"
@@ -528,16 +529,17 @@
   WriteRegStr ${RegKey} "$0\Capabilities" "ApplicationIcon" "$8,0"
   WriteRegStr ${RegKey} "$0\Capabilities" "ApplicationName" "${BrandShortName}"
 
   WriteRegStr ${RegKey} "$0\Capabilities\FileAssociations" ".htm"   "FirefoxHTML$2"
   WriteRegStr ${RegKey} "$0\Capabilities\FileAssociations" ".html"  "FirefoxHTML$2"
   WriteRegStr ${RegKey} "$0\Capabilities\FileAssociations" ".shtml" "FirefoxHTML$2"
   WriteRegStr ${RegKey} "$0\Capabilities\FileAssociations" ".xht"   "FirefoxHTML$2"
   WriteRegStr ${RegKey} "$0\Capabilities\FileAssociations" ".xhtml" "FirefoxHTML$2"
+  WriteRegStr ${RegKey} "$0\Capabilities\FileAssociations" ".svg" "FirefoxHTML$2"
 
   WriteRegStr ${RegKey} "$0\Capabilities\StartMenu" "StartMenuInternet" "$1"
 
   WriteRegStr ${RegKey} "$0\Capabilities\URLAssociations" "ftp"    "FirefoxURL$2"
   WriteRegStr ${RegKey} "$0\Capabilities\URLAssociations" "http"   "FirefoxURL$2"
   WriteRegStr ${RegKey} "$0\Capabilities\URLAssociations" "https"  "FirefoxURL$2"
 
   ; Registered Application
--- a/browser/installer/windows/nsis/uninstaller.nsi
+++ b/browser/installer/windows/nsis/uninstaller.nsi
@@ -326,16 +326,17 @@ Section "Uninstall"
   ${un.RegCleanFileHandler}  ".shtml" "FirefoxHTML-$AppUserModelID"
   ${un.RegCleanFileHandler}  ".xht"   "FirefoxHTML-$AppUserModelID"
   ${un.RegCleanFileHandler}  ".xhtml" "FirefoxHTML-$AppUserModelID"
   ${un.RegCleanFileHandler}  ".oga"  "FirefoxHTML-$AppUserModelID"
   ${un.RegCleanFileHandler}  ".ogg"  "FirefoxHTML-$AppUserModelID"
   ${un.RegCleanFileHandler}  ".ogv"  "FirefoxHTML-$AppUserModelID"
   ${un.RegCleanFileHandler}  ".pdf"  "FirefoxHTML-$AppUserModelID"
   ${un.RegCleanFileHandler}  ".webm"  "FirefoxHTML-$AppUserModelID"
+  ${un.RegCleanFileHandler} ".svg" "FirefoxHTML-$AppUserModelID"
 
   SetShellVarContext all  ; Set SHCTX to HKLM
   ${un.GetSecondInstallPath} "Software\Mozilla" $R9
   ${If} $R9 == "false"
     SetShellVarContext current  ; Set SHCTX to HKCU
     ${un.GetSecondInstallPath} "Software\Mozilla" $R9
   ${EndIf}
 
--- a/servo/components/style/values/specified/text.rs
+++ b/servo/components/style/values/specified/text.rs
@@ -780,17 +780,17 @@ impl Parse for TextEmphasisStyle {
         if shape.is_none() {
             shape = input.try(TextEmphasisShapeKeyword::parse).ok();
         }
 
         if shape.is_none() && fill.is_none() {
             return Err(input.new_custom_error(StyleParseErrorKind::UnspecifiedError));
         }
 
-        // If a shape keyword is specified but neither of filled nor open is
+        // If a shape keyword is specified but neither filled nor open is
         // specified, filled is assumed.
         let fill = fill.unwrap_or(TextEmphasisFillMode::Filled);
 
         // We cannot do the same because the default `<shape>` depends on the
         // computed writing-mode.
         Ok(TextEmphasisStyle::Keyword { fill, shape })
     }
 }
--- a/tools/profiler/core/ProfilerMarker.h
+++ b/tools/profiler/core/ProfilerMarker.h
@@ -128,16 +128,26 @@ class ProfilerSignalSafeLinkedList {
 
   ~ProfilerSignalSafeLinkedList() {
     if (mSignalLock) {
       // Some thread is modifying the list. We should only be released on that
       // thread.
       abort();
     }
 
+    reset();
+  }
+
+  // Reset the list of pending signals in this list.
+  // We assume that this is called at a time when it is
+  // guaranteed that no more than a single user (the caller)
+  // is accessing the list. In particular, it is only
+  // called from within the RacyRegisteredThread::ReinitializeOnResume
+  // method.
+  void reset() {
     while (mList.peek()) {
       delete mList.popHead();
     }
   }
 
   // Insert an item into the list. Must only be called from the owning thread.
   // Must not be called while the list from accessList() is being accessed.
   // In the profiler, we ensure that by interrupting the profiled thread
--- a/tools/profiler/core/RegisteredThread.h
+++ b/tools/profiler/core/RegisteredThread.h
@@ -54,16 +54,18 @@ class RacyRegisteredThread final {
     // Unless the profiled thread was in the middle of changing the list when
     // we interrupted it - in that case, accessList() will return null.
     return mPendingMarkers.accessList();
   }
 
   // This is called on every profiler restart. Put things that should happen at
   // that time here.
   void ReinitializeOnResume() {
+    mPendingMarkers.reset();
+
     // This is needed to cause an initial sample to be taken from sleeping
     // threads that had been observed prior to the profiler stopping and
     // restarting. Otherwise sleeping threads would not have any samples to
     // copy forward while sleeping.
     (void)mSleep.compareExchange(SLEEPING_OBSERVED, SLEEPING_NOT_OBSERVED);
   }
 
   // This returns true for the second and subsequent calls in each sleep cycle.