Bug 1472491: Part 5q - Add SelectChild actor. r=felipe

MozReview-Commit-ID: J5MAJMbblyr

--HG--
rename : toolkit/modules/SelectContentHelper.jsm => toolkit/actors/SelectChild.jsm
extra : rebase_source : 4ade8f5f0f3b68124c5f0f3cf2eae545db4b6854
This commit is contained in:
Kris Maglione 2018-07-29 21:59:16 -07:00
parent d19429b2f0
commit 08e6ae3629
6 changed files with 35 additions and 27 deletions

View File

@ -1,7 +1,8 @@
function hideSelectPopup(selectPopup, mode = "enter", win = window) {
let browser = win.gBrowser.selectedBrowser;
let selectClosedPromise = ContentTask.spawn(browser, null, async function() {
ChromeUtils.import("resource://gre/modules/SelectContentHelper.jsm");
let {SelectContentHelper} =
ChromeUtils.import("resource://gre/actors/SelectChild.jsm", {});
return ContentTaskUtils.waitForCondition(() => !SelectContentHelper.open);
});

View File

@ -1,9 +1,12 @@
/* vim: set ts=2 sw=2 sts=2 et tw=80: */
/* 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/. */
"use strict";
var EXPORTED_SYMBOLS = ["SelectChild"];
ChromeUtils.import("resource://gre/modules/ActorChild.jsm");
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
ChromeUtils.defineModuleGetter(this, "BrowserUtils",
@ -28,10 +31,6 @@ const SUPPORTED_PROPERTIES = [
// via SelectContentHelper.open.
var gOpen = false;
var EXPORTED_SYMBOLS = [
"SelectContentHelper"
];
var SelectContentHelper = function(aElement, aOptions, aGlobal) {
this.element = aElement;
this.initialSelection = aElement[aElement.selectedIndex] || null;
@ -422,3 +421,21 @@ function buildOptionListForChildren(node) {
}
return result;
}
class SelectChild extends ActorChild {
handleEvent(event) {
if (SelectContentHelper.open) {
return;
}
switch (event.type) {
case "mozshowdropdown":
new SelectContentHelper(event.target, {isOpenedViaTouch: false}, this.mm);
break;
case "mozshowdropdown-sourcetouch":
new SelectContentHelper(event.target, {isOpenedViaTouch: true}, this.mm);
break;
}
}
}

View File

@ -7,4 +7,5 @@
FINAL_TARGET_FILES.actors += [
'AudioPlaybackChild.jsm',
'FindBarChild.jsm',
'SelectChild.jsm',
]

View File

@ -17,8 +17,6 @@ ChromeUtils.defineModuleGetter(this, "AutoCompletePopup",
"resource://gre/modules/AutoCompletePopupContent.jsm");
ChromeUtils.defineModuleGetter(this, "AutoScrollController",
"resource://gre/modules/AutoScrollController.jsm");
ChromeUtils.defineModuleGetter(this, "SelectContentHelper",
"resource://gre/modules/SelectContentHelper.jsm");
ChromeUtils.defineModuleGetter(this, "FindContent",
"resource://gre/modules/FindContent.jsm");
ChromeUtils.defineModuleGetter(this, "PrintingContent",
@ -211,24 +209,6 @@ let AutoComplete = {
AutoComplete.init();
addEventListener("mozshowdropdown", event => {
if (!event.isTrusted)
return;
if (!SelectContentHelper.open) {
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);
}
});
let ExtFind = {
init() {
addMessageListener("ext-Finder:CollectResults", this);

View File

@ -120,6 +120,16 @@ let ACTORS = {
},
},
},
Select: {
child: {
module: "resource://gre/actors/SelectChild.jsm",
events: {
"mozshowdropdown": {},
"mozshowdropdown-sourcetouch": {},
},
},
},
};
class ActorSet {

View File

@ -242,7 +242,6 @@ EXTRA_JS_MODULES += [
'RemoteWebProgress.jsm',
'ResetProfile.jsm',
'ResponsivenessMonitor.jsm',
'SelectContentHelper.jsm',
'SelectionSourceContent.jsm',
'SelectParentHelper.jsm',
'ServiceRequest.jsm',