Bug 1300784 - Update single-process firefox to implement new e10s select-dropdown draft
authormiguel <wrigh517@msu.edu>
Tue, 01 Nov 2016 00:00:37 -0400
changeset 432024 437f6e81d7793e86dc4c4df6ce1cfe7357d8566f
parent 432023 a24d56061af15451e1b24ed6a7b02fd4980dc2bf
child 535523 a3295dbb5c2003ade67c491800610502f99e8337
push id34172
push userbmo:wrigh517@msu.edu
push dateTue, 01 Nov 2016 04:03:23 +0000
bugs1300784, 1311450
milestone52.0a1
Bug 1300784 - Update single-process firefox to implement new e10s select-dropdown MozReview-Commit-ID: KPmtrauzOg3 *** remove 'hi miguel.' MozReview-Commit-ID: IVreqC1NuuD *** Pls MozReview-Commit-ID: 4Npd64gQ4lc *** Remove newline at EOF MozReview-Commit-ID: HCb2yF8qyNN *** Merge touch additions from 1311450
.hgignore
browser/base/content/test/general/browser_selectpopup.js
layout/forms/nsListControlFrame.cpp
toolkit/content/browser-content.js
toolkit/content/jar.mn
--- a/.hgignore
+++ b/.hgignore
@@ -127,8 +127,9 @@ GPATH
 ^testing/talos/talos/tests/tp5n
 ^testing/talos/talos/tests/devtools/damp.manifest.develop
 
 # Ignore files created when running a reftest.
 ^lextab.py$
 
 # tup database
 ^\.tup
+evolve
--- a/browser/base/content/test/general/browser_selectpopup.js
+++ b/browser/base/content/test/general/browser_selectpopup.js
@@ -464,18 +464,16 @@ add_task(function* test_large_popup() {
   const pageUrl = "data:text/html," + escape(PAGECONTENT_SMALL);
   let tab = yield BrowserTestUtils.openNewForegroundTab(gBrowser, pageUrl);
 
   yield* performLargePopupTests(window);
 
   yield BrowserTestUtils.removeTab(tab);
 });
 
-<<<<<<< local
-=======
 // This test checks the same as the previous test but in a new smaller window.
 add_task(function* test_large_popup_in_small_window() {
   let newwin = yield BrowserTestUtils.openNewBrowserWindow({ width: 400, height: 400 });
 
   const pageUrl = "data:text/html," + escape(PAGECONTENT_SMALL);
   let browserLoadedPromise = BrowserTestUtils.browserLoaded(newwin.gBrowser.selectedBrowser);
   yield BrowserTestUtils.loadURI(newwin.gBrowser.selectedBrowser, pageUrl);
   yield browserLoadedPromise;
@@ -521,17 +519,16 @@ add_task(function* test_mousemove_correc
     BrowserFullScreen();
     yield sizeModeChanged;
     yield popupHiddenPromise;
   }
 
   yield BrowserTestUtils.removeTab(tab);
 });
 
->>>>>>> other
 // This test checks when a <select> element has some options with altered display values.
 add_task(function* test_somehidden() {
   const pageUrl = "data:text/html," + escape(PAGECONTENT_SOMEHIDDEN);
   let tab = yield BrowserTestUtils.openNewForegroundTab(gBrowser, pageUrl);
 
   let selectPopup = document.getElementById("ContentSelectDropdown").menupopup;
 
   let popupShownPromise = BrowserTestUtils.waitForEvent(selectPopup, "popupshown");
--- a/layout/forms/nsListControlFrame.cpp
+++ b/layout/forms/nsListControlFrame.cpp
@@ -1,17 +1,13 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-
-// Hi, miguel.
-
-
 #include "nscore.h"
 #include "nsCOMPtr.h"
 #include "nsUnicharUtils.h"
 #include "nsListControlFrame.h"
 #include "nsFormControlFrame.h" // for COMPARE macro
 #include "nsGkAtoms.h"
 #include "nsIDOMHTMLSelectElement.h"
 #include "nsIDOMHTMLOptionElement.h"
@@ -140,17 +136,18 @@ nsListControlFrame::DestroyFrom(nsIFrame
                                       mEventListener, false);
   mContent->RemoveSystemEventListener(NS_LITERAL_STRING("mousedown"),
                                       mEventListener, false);
   mContent->RemoveSystemEventListener(NS_LITERAL_STRING("mouseup"),
                                       mEventListener, false);
   mContent->RemoveSystemEventListener(NS_LITERAL_STRING("mousemove"),
                                       mEventListener, false);
 
-  if (Preferences::GetBool("browser.tabs.remote.desktopbehavior", false)) {
+  if (XRE_IsContentProcess() &&
+      Preferences::GetBool("browser.tabs.remote.desktopbehavior", false)) {
     nsContentUtils::AddScriptRunner(
       new AsyncEventDispatcher(mContent,
                                NS_LITERAL_STRING("mozhidedropdown"), true,
                                true));
   }
 
   nsFormControlFrame::RegUnRegAccessKey(static_cast<nsIFrame*>(this), false);
   nsHTMLScrollFrame::DestroyFrom(aDestructRoot);
@@ -1780,18 +1777,17 @@ nsListControlFrame::GetIndexFromDOMEvent
   return NS_ERROR_FAILURE;
 }
 
 static bool
 FireShowDropDownEvent(nsIContent* aContent, bool aShow, bool aIsSourceTouchEvent)
 {
   if (XRE_IsContentProcess() &&
       Preferences::GetBool("browser.tabs.remote.desktopbehavior", false) ||
-      Preferences::GetBool("dom.select_popup_in_parent.enabled"))
-      ) {
+      Preferences::GetBool("dom.select_popup_in_parent.enabled")) {
     nsString eventName;
     if (aShow) {
       eventName = aIsSourceTouchEvent ? NS_LITERAL_STRING("mozshowdropdown-sourcetouch") :
                                         NS_LITERAL_STRING("mozshowdropdown");
     } else {
       eventName = NS_LITERAL_STRING("mozhidedropdown");
     }
     nsContentUtils::DispatchChromeEvent(aContent->OwnerDoc(), aContent,
--- a/toolkit/content/browser-content.js
+++ b/toolkit/content/browser-content.js
@@ -3,25 +3,25 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 var Cc = Components.classes;
 var Ci = Components.interfaces;
 var Cu = Components.utils;
 var Cr = Components.results;
 
+Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-Cu.import("resource://gre/modules/Services.jsm");
 
 XPCOMUtils.defineLazyModuleGetter(this, "ReaderMode",
   "resource://gre/modules/ReaderMode.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "BrowserUtils",
   "resource://gre/modules/BrowserUtils.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "SelectContentHelper",
-                                  "resource://gre/modules/SelectContentHelper.jsm");
+  "resource://gre/modules/SelectContentHelper.jsm");
 
 var global = this;
 
 
 
 
 // Lazily load the finder code
 addMessageListener("Finder:Initialize", function () {
@@ -1726,11 +1726,20 @@ let DateTimePickerListener = {
 
 DateTimePickerListener.init();
 
 addEventListener("mozshowdropdown", event => {
   if (!event.isTrusted)
     return;
 
   if (!SelectContentHelper.open) {
-    new SelectContentHelper(event.target, this);
+    new SelectContentHelper(event.target, {isOpenedViaTouch: false}, this);
   }
 });
+
+addEventListener("mozshowdropdown-sourcetouch", event => {
+  if (!event.isTrusted)
+    return;
+
+  if (!SelectContentHelper.open) {
+    new SelectContentHelper(event.target, {isOpenedViaTouch: true}, this);
+  }
+});
--- a/toolkit/content/jar.mn
+++ b/toolkit/content/jar.mn
@@ -112,9 +112,9 @@ toolkit.jar:
    content/global/bindings/videocontrols.css   (widgets/videocontrols.css)
 *  content/global/bindings/wizard.xml          (widgets/wizard.xml)
 #ifdef XP_MACOSX
    content/global/macWindowMenu.js
 #endif
    content/global/svg/svgBindings.xml          (/layout/svg/resources/content/svgBindings.xml)
    content/global/gmp-sources/eme-adobe.json   (gmp-sources/eme-adobe.json)
    content/global/gmp-sources/openh264.json    (gmp-sources/openh264.json)
-   content/global/gmp-sources/widevinecdm.json (gmp-sources/widevinecdm.json)
+   content/global/gmp-sources/widevinecdm.json (gmp-sources/widevinecdm.json)
\ No newline at end of file