Merge mozilla-inbound and mozilla-central
authorEhsan Akhgari <ehsan@mozilla.com>
Wed, 13 Jul 2011 17:27:28 -0400
changeset 72787 9fa7c7deda8f020aac4db65e164c2f228efdd2bb
parent 72786 cacb0abe58b9cc8dcc8c2793726995b4cca87d3c (current diff)
parent 72743 4162bda16a6a30cd4ffd95b1ac047dcdd915df0e (diff)
child 72788 060ce592979905e9f21e9fa9428ce958d06e48d9
push id20772
push usereakhgari@mozilla.com
push dateThu, 14 Jul 2011 16:20:50 +0000
treeherdermozilla-central@89b5fccb0514 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
milestone8.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Merge mozilla-inbound and mozilla-central
new file mode 100644
--- /dev/null
+++ b/layout/forms/crashtests/669767.html
@@ -0,0 +1,14 @@
+<html>
+<head>
+<title>Untitled</title>
+
+
+</head>
+<body>
+<iframe src="data:text/html;charset=utf-8,%3Chtml%3E%3Chead%3E%3C/head%3E%3Cbody%3E%0A%3Ctextarea%3E%3C/textarea%3E%0A%0A%0A%3Cstyle%3E%0A@font-face%20%7B%0A%20%20%20%20%20%20font-family%3A%20%22cutabovetherest%22%3B%0A%20%20%20%20%20%20src%3A%20url%28%22http%3A//www.webpagepublicity.com/free-fonts/a/A%2520Cut%2520Above%2520The%2520Rest.ttf%22%29%3B%0A%7D%20%20%20%20%0A%0A%3C/style%3E%0A%0A%3Coptgroup%20contenteditable%3D%22true%22%20style%3D%22display%3A%20inline%3B%22%3E%3C/optgroup%3E%0A%0A%3C/body%3E%3C/html%3E"></iframe>
+<script>
+
+
+</script>
+</body>
+</html>
--- a/layout/forms/crashtests/crashtests.list
+++ b/layout/forms/crashtests/crashtests.list
@@ -41,8 +41,9 @@ load 478219-1.xhtml
 load 513113-1.html
 load 538062-1.xhtml
 load 570624-1.html
 load 498698-1.html
 asserts(1) load 578604-1.html # bug 584564
 asserts(3-5) load 590302-1.xhtml # bug 584564
 load 626014.xhtml
 load 639733.xhtml
+load 669767.html
--- a/layout/forms/nsTextControlFrame.h
+++ b/layout/forms/nsTextControlFrame.h
@@ -290,22 +290,28 @@ protected:
 
   class EditorInitializer : public nsRunnable {
   public:
     EditorInitializer(nsTextControlFrame* aFrame) :
       mFrame(aFrame) {}
 
     NS_IMETHOD Run() {
       if (mFrame) {
+        // need to block script to avoid bug 669767
+        nsAutoScriptBlocker scriptBlocker;
+
         nsCOMPtr<nsIPresShell> shell =
           mFrame->PresContext()->GetPresShell();
         PRBool observes = shell->ObservesNativeAnonMutationsForPrint();
         shell->ObserveNativeAnonMutationsForPrint(PR_TRUE);
+        // This can cause the frame to be destroyed (and call Revoke()
         mFrame->EnsureEditorInitialized();
         shell->ObserveNativeAnonMutationsForPrint(observes);
+
+        NS_ASSERTION(mFrame,"Frame destroyed even though we had a scriptblocker");
         mFrame->FinishedInitializer();
       }
       return NS_OK;
     }
 
     // avoids use of nsWeakFrame
     void Revoke() {
       mFrame = nsnull;
--- a/testing/jetpack/jetpack-location.txt
+++ b/testing/jetpack/jetpack-location.txt
@@ -1,1 +1,1 @@
-http://hg.mozilla.org/projects/addon-sdk/archive/19b2d58d7fa6.tar.bz2
+http://hg.mozilla.org/projects/addon-sdk/archive/49e4c09bca42.tar.bz2
--- a/toolkit/components/telemetry/TelemetryPing.js
+++ b/toolkit/components/telemetry/TelemetryPing.js
@@ -58,16 +58,22 @@ const MEM_HISTOGRAMS = {
   "resident": "MEMORY_RESIDENT",
   "explicit/layout/all": "MEMORY_LAYOUT_ALL",
   "explicit/images/content/used/uncompressed":
     "MEMORY_IMAGES_CONTENT_USED_UNCOMPRESSED",
   "heap-used": "MEMORY_HEAP_USED",
   "page-faults-hard": "PAGE_FAULTS_HARD"
 };
 
+function getLocale() {
+  return Cc["@mozilla.org/chrome/chrome-registry;1"].
+         getService(Ci.nsIXULChromeRegistry).
+         getSelectedLocale('global');
+}
+
 XPCOMUtils.defineLazyGetter(this, "Telemetry", function () {
   return Cc["@mozilla.org/base/telemetry;1"].getService(Ci.nsITelemetry);
 });
 
 /**
  * Returns a set of histograms that can be converted into JSON
  * @return a snapshot of the histograms of form:
  *  { histogram_name: {range:[minvalue,maxvalue], bucket_count:<number of buckets>,
@@ -138,16 +144,17 @@ function getMetadata(reason) {
   let ret = {
     reason: reason,
     OS: ai.OS,
     appID: ai.ID,
     appVersion: ai.version,
     appName: ai.name,
     appBuildID: ai.appBuildID,
     platformBuildID: ai.platformBuildID,
+    locale: getLocale(),
   };
 
   // sysinfo fields is not always available, get what we can.
   let sysInfo = Cc["@mozilla.org/system-info;1"].getService(Ci.nsIPropertyBag2);
   let fields = ["cpucount", "memsize", "arch", "version", "device", "manufacturer", "hardware"];
   for each (let field in fields) {
     let value;
     try {