mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 11:25:00 +00:00
merge autoland to mozilla-central a=merge
This commit is contained in:
commit
c5537a7c68
@ -147,8 +147,20 @@ var gMainPane = {
|
||||
let msg = bundle.getFormattedString(e10sCheckbox.checked ?
|
||||
"featureEnableRequiresRestart" : "featureDisableRequiresRestart",
|
||||
[brandName]);
|
||||
let restartText = bundle.getFormattedString("okToRestartButton", [brandName]);
|
||||
let revertText = bundle.getString("revertNoRestartButton");
|
||||
|
||||
let title = bundle.getFormattedString("shouldRestartTitle", [brandName]);
|
||||
let shouldProceed = Services.prompt.confirm(window, title, msg)
|
||||
let prompts = Cc["@mozilla.org/embedcomp/prompt-service;1"].getService(Ci.nsIPromptService);
|
||||
let buttonFlags = (Services.prompt.BUTTON_POS_0 *
|
||||
Services.prompt.BUTTON_TITLE_IS_STRING) +
|
||||
(Services.prompt.BUTTON_POS_1 *
|
||||
Services.prompt.BUTTON_TITLE_IS_STRING) +
|
||||
Services.prompt.BUTTON_POS_0_DEFAULT;
|
||||
let shouldProceed = prompts.confirmEx(window, title, msg,
|
||||
buttonFlags, revertText, restartText,
|
||||
null, null, {});
|
||||
|
||||
if (shouldProceed) {
|
||||
let cancelQuit = Cc["@mozilla.org/supports-PRBool;1"]
|
||||
.createInstance(Ci.nsISupportsPRBool);
|
||||
|
@ -1,11 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
<p id="content"></p>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,10 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
<p id="content"></p>
|
||||
</body>
|
||||
</html>
|
@ -46,8 +46,6 @@ support-files =
|
||||
bug578096LoadChromeScript.js
|
||||
bug638112-response.txt
|
||||
bug638112.sjs
|
||||
bug682592-subframe-ref.html
|
||||
bug682592-subframe.html
|
||||
bug696301-script-1.js
|
||||
bug696301-script-1.js^headers^
|
||||
bug696301-script-2.js
|
||||
|
@ -13,7 +13,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=682592
|
||||
<body>
|
||||
<p id="display"></p>
|
||||
<div id="content">
|
||||
<iframe id="iframe-ref" src="bug682592-subframe-ref.html"></iframe>
|
||||
<iframe id="iframe-ref"></iframe>
|
||||
<iframe id="iframe-test"></iframe>
|
||||
</div>
|
||||
<pre id="test">
|
||||
@ -39,11 +39,13 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=682592
|
||||
*/
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
SimpleTest.requestLongerTimeout(2);
|
||||
SimpleTest.requestLongerTimeout(3);
|
||||
if (navigator.platform.startsWith("Linux arm")) { /* bugs 982875, 999429 */
|
||||
SimpleTest.expectAssertions(0, 4);
|
||||
}
|
||||
|
||||
var page = `data:text/html;charset=UTF-8,<!DOCTYPE html>
|
||||
<html><body><p id="content"></p></body></html>`;
|
||||
var refFrame = document.getElementById("iframe-ref")
|
||||
var testFrame = document.getElementById("iframe-test");
|
||||
|
||||
@ -60,8 +62,9 @@ refFrame.addEventListener("load", function() {
|
||||
SimpleTest.finish();
|
||||
}
|
||||
}, false);
|
||||
testFrame.src = "bug682592-subframe.html"
|
||||
testFrame.src = page;
|
||||
}, false);
|
||||
refFrame.src = page;
|
||||
|
||||
var rtl = "עִבְרִית";
|
||||
var non8bit = "ʃ";
|
||||
|
@ -71,24 +71,34 @@ GLScreenBuffer::CreateFactory(GLContext* gl,
|
||||
const SurfaceCaps& caps,
|
||||
const RefPtr<layers::CompositableForwarder>& forwarder,
|
||||
const layers::TextureFlags& flags)
|
||||
{
|
||||
return CreateFactory(gl, caps, forwarder, forwarder->GetCompositorBackendType(), flags);
|
||||
}
|
||||
|
||||
/* static */ UniquePtr<SurfaceFactory>
|
||||
GLScreenBuffer::CreateFactory(GLContext* gl,
|
||||
const SurfaceCaps& caps,
|
||||
const RefPtr<layers::ClientIPCAllocator>& allocator,
|
||||
const mozilla::layers::LayersBackend backend,
|
||||
const layers::TextureFlags& flags)
|
||||
{
|
||||
UniquePtr<SurfaceFactory> factory = nullptr;
|
||||
if (!gfxPrefs::WebGLForceLayersReadback()) {
|
||||
switch (forwarder->GetCompositorBackendType()) {
|
||||
switch (backend) {
|
||||
case mozilla::layers::LayersBackend::LAYERS_OPENGL: {
|
||||
#if defined(XP_MACOSX)
|
||||
factory = SurfaceFactory_IOSurface::Create(gl, caps, forwarder, flags);
|
||||
factory = SurfaceFactory_IOSurface::Create(gl, caps, allocator, flags);
|
||||
#elif defined(MOZ_WIDGET_GONK)
|
||||
factory = MakeUnique<SurfaceFactory_Gralloc>(gl, caps, forwarder, flags);
|
||||
factory = MakeUnique<SurfaceFactory_Gralloc>(gl, caps, allocator, flags);
|
||||
#elif defined(GL_PROVIDER_GLX)
|
||||
if (sGLXLibrary.UseTextureFromPixmap())
|
||||
factory = SurfaceFactory_GLXDrawable::Create(gl, caps, forwarder, flags);
|
||||
factory = SurfaceFactory_GLXDrawable::Create(gl, caps, allocator, flags);
|
||||
#elif defined(MOZ_WIDGET_UIKIT)
|
||||
factory = MakeUnique<SurfaceFactory_GLTexture>(mGLContext, caps, forwarder, mFlags);
|
||||
factory = MakeUnique<SurfaceFactory_GLTexture>(mGLContext, caps, allocator, mFlags);
|
||||
#else
|
||||
if (gl->GetContextType() == GLContextType::EGL) {
|
||||
if (XRE_IsParentProcess()) {
|
||||
factory = SurfaceFactory_EGLImage::Create(gl, caps, forwarder, flags);
|
||||
factory = SurfaceFactory_EGLImage::Create(gl, caps, allocator, flags);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -102,11 +112,11 @@ GLScreenBuffer::CreateFactory(GLContext* gl,
|
||||
(gl->IsWARP() == gfxWindowsPlatform::GetPlatform()->IsWARP()) &&
|
||||
gfxWindowsPlatform::GetPlatform()->CompositorD3D11TextureSharingWorks())
|
||||
{
|
||||
factory = SurfaceFactory_ANGLEShareHandle::Create(gl, caps, forwarder, flags);
|
||||
factory = SurfaceFactory_ANGLEShareHandle::Create(gl, caps, allocator, flags);
|
||||
}
|
||||
|
||||
if (!factory && gfxPrefs::WebGLDXGLEnabled()) {
|
||||
factory = SurfaceFactory_D3D11Interop::Create(gl, caps, forwarder, flags);
|
||||
factory = SurfaceFactory_D3D11Interop::Create(gl, caps, allocator, flags);
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
@ -117,7 +127,7 @@ GLScreenBuffer::CreateFactory(GLContext* gl,
|
||||
|
||||
#ifdef GL_PROVIDER_GLX
|
||||
if (!factory && sGLXLibrary.UseTextureFromPixmap()) {
|
||||
factory = SurfaceFactory_GLXDrawable::Create(gl, caps, forwarder, flags);
|
||||
factory = SurfaceFactory_GLXDrawable::Create(gl, caps, allocator, flags);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -139,6 +139,12 @@ public:
|
||||
const SurfaceCaps& caps,
|
||||
const RefPtr<layers::CompositableForwarder>& forwarder,
|
||||
const layers::TextureFlags& flags);
|
||||
static UniquePtr<SurfaceFactory>
|
||||
CreateFactory(GLContext* gl,
|
||||
const SurfaceCaps& caps,
|
||||
const RefPtr<layers::ClientIPCAllocator>& allocator,
|
||||
const mozilla::layers::LayersBackend backend,
|
||||
const layers::TextureFlags& flags);
|
||||
|
||||
protected:
|
||||
GLContext* const mGL; // Owns us.
|
||||
|
@ -795,13 +795,12 @@ struct nsCSSRendering {
|
||||
|
||||
static CompositionOp GetGFXCompositeMode(uint8_t aCompositeMode) {
|
||||
switch (aCompositeMode) {
|
||||
case NS_STYLE_MASK_COMPOSITE_ADD: return CompositionOp::OP_OVER;
|
||||
case NS_STYLE_MASK_COMPOSITE_SUBSTRACT: return CompositionOp::OP_OUT;
|
||||
case NS_STYLE_MASK_COMPOSITE_INTERSECT: return CompositionOp::OP_IN;
|
||||
case NS_STYLE_MASK_COMPOSITE_EXCLUDE: return CompositionOp::OP_XOR;
|
||||
default: MOZ_ASSERT(false); return CompositionOp::OP_OVER;
|
||||
case NS_STYLE_MASK_COMPOSITE_ADD: return CompositionOp::OP_OVER;
|
||||
case NS_STYLE_MASK_COMPOSITE_SUBTRACT: return CompositionOp::OP_OUT;
|
||||
case NS_STYLE_MASK_COMPOSITE_INTERSECT: return CompositionOp::OP_IN;
|
||||
case NS_STYLE_MASK_COMPOSITE_EXCLUDE: return CompositionOp::OP_XOR;
|
||||
default: MOZ_ASSERT(false); return CompositionOp::OP_OVER;
|
||||
}
|
||||
|
||||
}
|
||||
protected:
|
||||
static gfxRect GetTextDecorationRectInternal(
|
||||
|
@ -26,9 +26,9 @@
|
||||
mask-composite: add;
|
||||
}
|
||||
|
||||
div.substract {
|
||||
div.subtract {
|
||||
left: 120px;
|
||||
mask-composite: substract;
|
||||
mask-composite: subtract;
|
||||
}
|
||||
|
||||
div.intersect {
|
||||
@ -44,7 +44,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<div class="add"></div>
|
||||
<div class="substract"></div>
|
||||
<div class="subtract"></div>
|
||||
<div class="intersect"></div>
|
||||
<div class="exclude"></div>
|
||||
</body>
|
||||
|
@ -26,9 +26,9 @@
|
||||
mask-composite: add;
|
||||
}
|
||||
|
||||
div.substract {
|
||||
div.subtract {
|
||||
left: 120px;
|
||||
mask-composite: substract;
|
||||
mask-composite: subtract;
|
||||
}
|
||||
|
||||
div.intersect {
|
||||
@ -44,7 +44,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<div class="add"></div>
|
||||
<div class="substract"></div>
|
||||
<div class="subtract"></div>
|
||||
<div class="intersect"></div>
|
||||
<div class="exclude"></div>
|
||||
</body>
|
||||
|
@ -31,9 +31,9 @@
|
||||
mask-composite: add;
|
||||
}
|
||||
|
||||
div.substract {
|
||||
div.subtract {
|
||||
left: 120px;
|
||||
mask-composite: substract;
|
||||
mask-composite: subtract;
|
||||
}
|
||||
|
||||
div.intersect {
|
||||
@ -49,7 +49,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<div class="add"></div>
|
||||
<div class="substract"></div>
|
||||
<div class="subtract"></div>
|
||||
<div class="intersect"></div>
|
||||
<div class="exclude"></div>
|
||||
</body>
|
||||
|
@ -20,7 +20,7 @@
|
||||
background-color: blue;
|
||||
}
|
||||
|
||||
div.substract {
|
||||
div.subtract {
|
||||
left: 120px;
|
||||
background-image: url(support/blue-100x50-transparent-100x50.svg);
|
||||
}
|
||||
@ -33,7 +33,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<div class="add"></div>
|
||||
<div class="substract"></div>
|
||||
<div class="subtract"></div>
|
||||
<div class="exclude"></div>
|
||||
</body>
|
||||
</html>
|
@ -26,9 +26,9 @@
|
||||
mask-composite: add;
|
||||
}
|
||||
|
||||
div.substract {
|
||||
div.subtract {
|
||||
left: 120px;
|
||||
mask-composite: substract;
|
||||
mask-composite: subtract;
|
||||
}
|
||||
|
||||
div.intersect {
|
||||
@ -44,7 +44,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<div class="add"></div>
|
||||
<div class="substract"></div>
|
||||
<div class="subtract"></div>
|
||||
<div class="intersect"></div>
|
||||
<div class="exclude"></div>
|
||||
</body>
|
||||
|
@ -26,9 +26,9 @@
|
||||
mask-composite: add;
|
||||
}
|
||||
|
||||
div.substract {
|
||||
div.subtract {
|
||||
left: 120px;
|
||||
mask-composite: substract;
|
||||
mask-composite: subtract;
|
||||
}
|
||||
|
||||
div.intersect {
|
||||
@ -44,7 +44,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<div class="add"></div>
|
||||
<div class="substract"></div>
|
||||
<div class="subtract"></div>
|
||||
<div class="intersect"></div>
|
||||
<div class="exclude"></div>
|
||||
</body>
|
||||
|
@ -34,9 +34,9 @@
|
||||
mask-composite: add;
|
||||
}
|
||||
|
||||
div.substract {
|
||||
div.subtract {
|
||||
left: 120px;
|
||||
mask-composite: substract;
|
||||
mask-composite: subtract;
|
||||
}
|
||||
|
||||
div.intersect {
|
||||
@ -52,7 +52,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<div class="add"></div>
|
||||
<div class="substract"></div>
|
||||
<div class="subtract"></div>
|
||||
<div class="intersect"></div>
|
||||
<div class="exclude"></div>
|
||||
</body>
|
||||
|
@ -561,7 +561,7 @@ CSS_KEY(styleset, styleset)
|
||||
CSS_KEY(stylistic, stylistic)
|
||||
CSS_KEY(sub, sub)
|
||||
CSS_KEY(subgrid, subgrid)
|
||||
CSS_KEY(substract, substract)
|
||||
CSS_KEY(subtract, subtract)
|
||||
CSS_KEY(super, super)
|
||||
CSS_KEY(sw-resize, sw_resize)
|
||||
CSS_KEY(swash, swash)
|
||||
|
@ -963,7 +963,7 @@ const KTableEntry nsCSSProps::kImageLayerModeKTable[] = {
|
||||
|
||||
const KTableEntry nsCSSProps::kImageLayerCompositeKTable[] = {
|
||||
{ eCSSKeyword_add, NS_STYLE_MASK_COMPOSITE_ADD },
|
||||
{ eCSSKeyword_substract, NS_STYLE_MASK_COMPOSITE_SUBSTRACT },
|
||||
{ eCSSKeyword_subtract, NS_STYLE_MASK_COMPOSITE_SUBTRACT },
|
||||
{ eCSSKeyword_intersect, NS_STYLE_MASK_COMPOSITE_INTERSECT },
|
||||
{ eCSSKeyword_exclude, NS_STYLE_MASK_COMPOSITE_EXCLUDE },
|
||||
{ eCSSKeyword_UNKNOWN, -1 }
|
||||
|
@ -1167,7 +1167,7 @@ enum class FillMode : uint32_t;
|
||||
|
||||
// composite
|
||||
#define NS_STYLE_MASK_COMPOSITE_ADD 0
|
||||
#define NS_STYLE_MASK_COMPOSITE_SUBSTRACT 1
|
||||
#define NS_STYLE_MASK_COMPOSITE_SUBTRACT 1
|
||||
#define NS_STYLE_MASK_COMPOSITE_INTERSECT 2
|
||||
#define NS_STYLE_MASK_COMPOSITE_EXCLUDE 3
|
||||
|
||||
|
@ -90,9 +90,6 @@ bdi, output {
|
||||
unicode-bidi: isolate;
|
||||
}
|
||||
bdo, bdo[dir] {
|
||||
unicode-bidi: bidi-override;
|
||||
}
|
||||
bdo[dir="auto"] {
|
||||
unicode-bidi: isolate-override;
|
||||
}
|
||||
textarea[dir="auto"], pre[dir="auto"] { unicode-bidi: plaintext; }
|
||||
|
@ -6890,8 +6890,8 @@ if (SupportsMaskShorthand()) {
|
||||
"repeat-y",
|
||||
"no-repeat",
|
||||
"none repeat-y alpha add 0% 0%",
|
||||
"substract",
|
||||
"0% top substract alpha repeat none",
|
||||
"subtract",
|
||||
"0% top subtract alpha repeat none",
|
||||
"top",
|
||||
"left",
|
||||
"50% 50%",
|
||||
@ -6918,9 +6918,9 @@ if (SupportsMaskShorthand()) {
|
||||
"-moz-element(#test) alpha",
|
||||
/* multiple mask-image */
|
||||
"url(404.png), url(404.png)",
|
||||
"repeat-x, substract, none",
|
||||
"repeat-x, subtract, none",
|
||||
"0% top url(404.png), url(404.png) 0% top",
|
||||
"substract repeat-y top left url(404.png), repeat-x alpha",
|
||||
"subtract repeat-y top left url(404.png), repeat-x alpha",
|
||||
"url(404.png), -moz-linear-gradient(20px 20px -45deg, blue, green), -moz-element(#a) alpha",
|
||||
"top left / contain, bottom right / cover",
|
||||
/* test cases with clip+origin in the shorthand */
|
||||
@ -6988,8 +6988,8 @@ if (SupportsMaskShorthand()) {
|
||||
inherited: false,
|
||||
type: CSS_TYPE_LONGHAND,
|
||||
initial_values: [ "add" ],
|
||||
other_values: [ "substract", "intersect", "exclude", "add, add", "substract, intersect", "substract, substract, add"],
|
||||
invalid_values: [ "add substract", "intersect exclude" ]
|
||||
other_values: [ "subtract", "intersect", "exclude", "add, add", "subtract, intersect", "subtract, subtract, add"],
|
||||
invalid_values: [ "add subtract", "intersect exclude" ]
|
||||
};
|
||||
gCSSProperties["mask-origin"] = {
|
||||
domProp: "maskOrigin",
|
||||
|
@ -49,11 +49,11 @@ var tests = [
|
||||
['output', {'dir': 'auto'}, 'ltr', 'isolate'],
|
||||
['output', {'dir': ''}, 'ltr', 'isolate'],
|
||||
|
||||
['bdo', {}, 'ltr', 'bidi-override'],
|
||||
['bdo', {'dir': 'ltr'}, 'ltr', 'bidi-override'],
|
||||
['bdo', {'dir': 'rtl'}, 'rtl', 'bidi-override'],
|
||||
['bdo', {}, 'ltr', 'isolate-override'],
|
||||
['bdo', {'dir': 'ltr'}, 'ltr', 'isolate-override'],
|
||||
['bdo', {'dir': 'rtl'}, 'rtl', 'isolate-override'],
|
||||
['bdo', {'dir': 'auto'}, 'ltr', 'isolate-override'],
|
||||
['bdo', {'dir': ''}, 'ltr', 'bidi-override'],
|
||||
['bdo', {'dir': ''}, 'ltr', 'isolate-override'],
|
||||
|
||||
['textarea', {}, 'ltr', 'normal'],
|
||||
['textarea', {'dir': 'ltr'}, 'ltr', 'isolate'],
|
||||
|
@ -6,21 +6,19 @@ $inherits:
|
||||
from: tasks/branches/base_jobs.yml
|
||||
|
||||
builds:
|
||||
aries:
|
||||
platforms:
|
||||
- b2g
|
||||
types:
|
||||
debug:
|
||||
task: tasks/builds/b2g_aries_spark_debug.yml
|
||||
aries-eng:
|
||||
platforms:
|
||||
- b2g
|
||||
types:
|
||||
opt:
|
||||
task: tasks/builds/b2g_aries_eng.yml
|
||||
debug:
|
||||
task: tasks/builds/b2g_aries_debug.yml
|
||||
nexus-5l-eng:
|
||||
platforms:
|
||||
- b2g
|
||||
types:
|
||||
opt:
|
||||
task: tasks/builds/b2g_nexus_5l_eng.yml
|
||||
debug:
|
||||
task: tasks/builds/b2g_nexus_5l_debug.yml
|
||||
|
@ -1,26 +0,0 @@
|
||||
---
|
||||
# For complete sample of all build and test jobs,
|
||||
# see <gecko>/testing/taskcluster/tasks/branches/base_job_flags.yml
|
||||
|
||||
$inherits:
|
||||
from: tasks/branches/base_jobs.yml
|
||||
|
||||
builds:
|
||||
aries:
|
||||
platforms:
|
||||
- b2g
|
||||
types:
|
||||
debug:
|
||||
task: tasks/builds/b2g_aries_spark_debug.yml
|
||||
aries-eng:
|
||||
platforms:
|
||||
- b2g
|
||||
types:
|
||||
opt:
|
||||
task: tasks/builds/b2g_aries_eng.yml
|
||||
nexus-5l-eng:
|
||||
platforms:
|
||||
- b2g
|
||||
types:
|
||||
opt:
|
||||
task: tasks/builds/b2g_nexus_5l_eng.yml
|
@ -12,7 +12,6 @@ flags:
|
||||
- macosx64_gecko # b2g desktop osx 64 bit
|
||||
- win32_gecko # b2g desktop win 32 bit
|
||||
- nexus-5l-eng
|
||||
- aries
|
||||
- aries-eng
|
||||
- android-api-15
|
||||
- android-api-15-frontend
|
||||
@ -35,8 +34,10 @@ flags:
|
||||
- crashtest
|
||||
- crashtest-e10s
|
||||
- external-media-tests
|
||||
- firefox-ui-functional
|
||||
- firefox-ui-functional-e10s
|
||||
- firefox-ui-functional-local
|
||||
- firefox-ui-functional-local-e10s
|
||||
- firefox-ui-functional-remote
|
||||
- firefox-ui-functional-remote-e10s
|
||||
- gaia-build
|
||||
- gaia-build-unit
|
||||
- gaia-js-integration
|
||||
|
@ -261,22 +261,38 @@ tests:
|
||||
task: tasks/tests/fx_linux64_external_media_tests_dbg.yml
|
||||
tasks/builds/opt_linux64_pgo.yml:
|
||||
task: tasks/tests/fx_linux64_external_media_tests_opt.yml
|
||||
firefox-ui-functional:
|
||||
firefox-ui-functional-local:
|
||||
allowed_build_tasks:
|
||||
tasks/builds/opt_linux64.yml:
|
||||
task: tasks/tests/fx_linux64_firefox_ui_functional_opt.yml
|
||||
task: tasks/tests/fx_linux64_fxui_functional_local_opt.yml
|
||||
tasks/builds/dbg_linux64.yml:
|
||||
task: tasks/tests/fx_linux64_firefox_ui_functional_dbg.yml
|
||||
task: tasks/tests/fx_linux64_fxui_functional_local_dbg.yml
|
||||
tasks/builds/opt_linux64_pgo.yml:
|
||||
task: tasks/tests/fx_linux64_firefox_ui_functional_opt.yml
|
||||
firefox-ui-functional-e10s:
|
||||
task: tasks/tests/fx_linux64_fxui_functional_local_opt.yml
|
||||
firefox-ui-functional-local-e10s:
|
||||
allowed_build_tasks:
|
||||
tasks/builds/opt_linux64.yml:
|
||||
task: tasks/tests/fx_linux64_firefox_ui_functional_e10s_opt.yml
|
||||
task: tasks/tests/fx_linux64_fxui_functional_local_e10s_opt.yml
|
||||
tasks/builds/dbg_linux64.yml:
|
||||
task: tasks/tests/fx_linux64_firefox_ui_functional_e10s_dbg.yml
|
||||
task: tasks/tests/fx_linux64_fxui_functional_local_e10s_dbg.yml
|
||||
tasks/builds/opt_linux64_pgo.yml:
|
||||
task: tasks/tests/fx_linux64_firefox_ui_functional_e10s_opt.yml
|
||||
task: tasks/tests/fx_linux64_fxui_functional_local_e10s_opt.yml
|
||||
firefox-ui-functional-remote:
|
||||
allowed_build_tasks:
|
||||
tasks/builds/opt_linux64.yml:
|
||||
task: tasks/tests/fx_linux64_fxui_functional_remote_opt.yml
|
||||
tasks/builds/dbg_linux64.yml:
|
||||
task: tasks/tests/fx_linux64_fxui_functional_remote_dbg.yml
|
||||
tasks/builds/opt_linux64_pgo.yml:
|
||||
task: tasks/tests/fx_linux64_fxui_functional_remote_opt.yml
|
||||
firefox-ui-functional-remote-e10s:
|
||||
allowed_build_tasks:
|
||||
tasks/builds/opt_linux64.yml:
|
||||
task: tasks/tests/fx_linux64_fxui_functional_remote_e10s_opt.yml
|
||||
tasks/builds/dbg_linux64.yml:
|
||||
task: tasks/tests/fx_linux64_fxui_functional_remote_e10s_dbg.yml
|
||||
tasks/builds/opt_linux64_pgo.yml:
|
||||
task: tasks/tests/fx_linux64_fxui_functional_remote_e10s_opt.yml
|
||||
gtest:
|
||||
allowed_build_tasks:
|
||||
tasks/builds/opt_linux64.yml:
|
||||
|
@ -1,26 +0,0 @@
|
||||
---
|
||||
# For complete sample of all build and test jobs,
|
||||
# see <gecko>/testing/taskcluster/tasks/branches/base_job_flags.yml
|
||||
|
||||
$inherits:
|
||||
from: tasks/branches/base_jobs.yml
|
||||
|
||||
builds:
|
||||
aries:
|
||||
platforms:
|
||||
- b2g
|
||||
types:
|
||||
debug:
|
||||
task: tasks/builds/b2g_aries_spark_debug.yml
|
||||
aries-eng:
|
||||
platforms:
|
||||
- b2g
|
||||
types:
|
||||
opt:
|
||||
task: tasks/builds/b2g_aries_eng.yml
|
||||
nexus-5l-eng:
|
||||
platforms:
|
||||
- b2g
|
||||
types:
|
||||
opt:
|
||||
task: tasks/builds/b2g_nexus_5l_eng.yml
|
@ -1,26 +0,0 @@
|
||||
---
|
||||
# For complete sample of all build and test jobs,
|
||||
# see <gecko>/testing/taskcluster/tasks/branches/base_job_flags.yml
|
||||
|
||||
$inherits:
|
||||
from: tasks/branches/base_jobs.yml
|
||||
|
||||
builds:
|
||||
aries:
|
||||
platforms:
|
||||
- b2g
|
||||
types:
|
||||
debug:
|
||||
task: tasks/builds/b2g_aries_spark_debug.yml
|
||||
aries-eng:
|
||||
platforms:
|
||||
- b2g
|
||||
types:
|
||||
opt:
|
||||
task: tasks/builds/b2g_aries_eng.yml
|
||||
nexus-5l-eng:
|
||||
platforms:
|
||||
- b2g
|
||||
types:
|
||||
opt:
|
||||
task: tasks/builds/b2g_nexus_5l_eng.yml
|
@ -11,24 +11,22 @@ flags:
|
||||
- simulator
|
||||
|
||||
builds:
|
||||
aries:
|
||||
platforms:
|
||||
- b2g
|
||||
types:
|
||||
debug:
|
||||
task: tasks/builds/b2g_aries_spark_debug.yml
|
||||
aries-eng:
|
||||
platforms:
|
||||
- b2g
|
||||
types:
|
||||
opt:
|
||||
task: tasks/builds/b2g_aries_eng.yml
|
||||
debug:
|
||||
task: tasks/builds/b2g_aries_debug.yml
|
||||
nexus-5l-eng:
|
||||
platforms:
|
||||
- b2g
|
||||
types:
|
||||
opt:
|
||||
task: tasks/builds/b2g_nexus_5l_eng.yml
|
||||
debug:
|
||||
task: tasks/builds/b2g_nexus_5l_debug.yml
|
||||
|
||||
tests:
|
||||
gaia-build:
|
||||
|
@ -6,21 +6,19 @@ $inherits:
|
||||
from: tasks/branches/base_jobs.yml
|
||||
|
||||
builds:
|
||||
aries:
|
||||
platforms:
|
||||
- b2g
|
||||
types:
|
||||
debug:
|
||||
task: tasks/builds/b2g_aries_spark_debug.yml
|
||||
aries-eng:
|
||||
platforms:
|
||||
- b2g
|
||||
types:
|
||||
opt:
|
||||
task: tasks/builds/b2g_aries_eng.yml
|
||||
debug:
|
||||
task: tasks/builds/b2g_aries_debug.yml
|
||||
nexus-5l-eng:
|
||||
platforms:
|
||||
- b2g
|
||||
types:
|
||||
opt:
|
||||
task: tasks/builds/b2g_nexus_5l_eng.yml
|
||||
debug:
|
||||
task: tasks/builds/b2g_nexus_5l_debug.yml
|
||||
|
@ -115,12 +115,16 @@ builds:
|
||||
types:
|
||||
opt:
|
||||
task: tasks/builds/b2g_aries_eng.yml
|
||||
debug:
|
||||
task: tasks/builds/b2g_aries_debug.yml
|
||||
nexus-5l-eng:
|
||||
platforms:
|
||||
- b2g
|
||||
types:
|
||||
opt:
|
||||
task: tasks/builds/b2g_nexus_5l_eng.yml
|
||||
debug:
|
||||
task: tasks/builds/b2g_nexus_5l_debug.yml
|
||||
|
||||
post-build:
|
||||
upload-symbols:
|
||||
|
@ -1,13 +1,14 @@
|
||||
$inherits:
|
||||
from: 'tasks/builds/b2g_phone_base.yml'
|
||||
from: 'tasks/builds/b2g_phone_eng_base.yml'
|
||||
variables:
|
||||
build_name: 'aries'
|
||||
build_type: 'debug'
|
||||
task:
|
||||
workerType: flame-kk
|
||||
scopes:
|
||||
- 'docker-worker:cache:level-{{level}}-{{project}}-build-aries-debug'
|
||||
- 'docker-worker:cache:level-{{level}}-{{project}}-build-aries-debug-objdir-gecko'
|
||||
- 'docker-worker:relengapi-proxy:tooltool.download.internal'
|
||||
- 'docker-worker:relengapi-proxy:tooltool.download.public'
|
||||
metadata:
|
||||
name: '[TC] B2G Aries Debug'
|
||||
|
||||
@ -15,20 +16,17 @@ task:
|
||||
cache:
|
||||
level-{{level}}-{{project}}-build-aries-debug: /home/worker/workspace
|
||||
level-{{level}}-{{project}}-build-aries-debug-objdir-gecko: /home/worker/objdir-gecko
|
||||
features:
|
||||
relengAPIProxy: true
|
||||
env:
|
||||
TARGET: 'aries'
|
||||
DEBUG: 0
|
||||
VARIANT: userdebug
|
||||
GAIA_OPTIMIZE: '1'
|
||||
B2G_SYSTEM_APPS: '1'
|
||||
MOZHARNESS_CONFIG: b2g/taskcluster-spark.py
|
||||
command: ["/bin/bash", "-c", "checkout-gecko workspace && cd ./workspace/gecko/taskcluster/scripts/phone-builder && buildbot_step 'Build' ./build-phone.sh $HOME/workspace"]
|
||||
B2G_DEBUG: 1
|
||||
extra:
|
||||
treeherderEnv:
|
||||
- production
|
||||
- staging
|
||||
treeherder:
|
||||
symbol: B
|
||||
symbol: Bd
|
||||
groupSymbol: Aries
|
||||
groupName: Aries Device Image
|
||||
machine:
|
37
taskcluster/ci/legacy/tasks/builds/b2g_nexus_5l_debug.yml
Normal file
37
taskcluster/ci/legacy/tasks/builds/b2g_nexus_5l_debug.yml
Normal file
@ -0,0 +1,37 @@
|
||||
$inherits:
|
||||
from: 'tasks/builds/b2g_phone_eng_base.yml'
|
||||
variables:
|
||||
build_name: 'nexus-5-l-eng'
|
||||
build_type: 'debug'
|
||||
task:
|
||||
scopes:
|
||||
- 'docker-worker:cache:level-{{level}}-{{project}}-build-nexus-5-l-debug'
|
||||
- 'docker-worker:cache:level-{{level}}-{{project}}-build-nexus-5-l-debug-objdir-gecko'
|
||||
- 'docker-worker:relengapi-proxy:tooltool.download.internal'
|
||||
- 'docker-worker:relengapi-proxy:tooltool.download.public'
|
||||
metadata:
|
||||
name: '[TC] B2G Nexus 5-L Debug'
|
||||
|
||||
payload:
|
||||
cache:
|
||||
level-{{level}}-{{project}}-build-nexus-5-l-debug: /home/worker/workspace
|
||||
level-{{level}}-{{project}}-build-nexus-5-l-debug-objdir-gecko: /home/worker/objdir-gecko
|
||||
features:
|
||||
relengAPIProxy: true
|
||||
env:
|
||||
TARGET: 'nexus-5-l'
|
||||
B2G_DEBUG: 1
|
||||
extra:
|
||||
treeherderEnv:
|
||||
- production
|
||||
- staging
|
||||
treeherder:
|
||||
symbol: Bd
|
||||
groupSymbol: Nexus 5-L
|
||||
groupName: Nexus 5-L Device Image
|
||||
machine:
|
||||
platform: b2g-device-image
|
||||
collection:
|
||||
debug: true
|
||||
locations:
|
||||
img: 'private/build/nexus-5-l.zip'
|
@ -4,7 +4,6 @@ $inherits:
|
||||
build_name: 'nexus-5-l-eng'
|
||||
build_type: 'opt'
|
||||
task:
|
||||
workerType: flame-kk
|
||||
scopes:
|
||||
- 'docker-worker:cache:level-{{level}}-{{project}}-build-nexus-5-l-eng'
|
||||
- 'docker-worker:cache:level-{{level}}-{{project}}-build-nexus-5-l-eng-objdir-gecko'
|
||||
@ -12,6 +11,7 @@ task:
|
||||
- 'docker-worker:relengapi-proxy:tooltool.download.public'
|
||||
metadata:
|
||||
name: '[TC] B2G Nexus 5-L Eng'
|
||||
|
||||
payload:
|
||||
cache:
|
||||
level-{{level}}-{{project}}-build-nexus-5-l-eng: /home/worker/object-folder
|
||||
|
@ -1,27 +0,0 @@
|
||||
---
|
||||
$inherits:
|
||||
from: 'tasks/tests/fx_docker_desktop_generic.yml'
|
||||
task:
|
||||
payload:
|
||||
command:
|
||||
- {"task-reference": "--installer-url=https://queue.taskcluster.net/v1/task/<{{build_slugid}}>/artifacts/{{build_location}}"}
|
||||
- {"task-reference": "--test-packages-url=https://queue.taskcluster.net/v1/task/<{{build_slugid}}>/artifacts/{{test_packages_location}}"}
|
||||
- --e10s
|
||||
env:
|
||||
MOZHARNESS_SCRIPT: 'mozharness/scripts/firefox_ui_tests/functional.py'
|
||||
MOZHARNESS_CONFIG: >
|
||||
mozharness/configs/firefox_ui_tests/taskcluster.py
|
||||
mozharness/configs/remove_executables.py
|
||||
maxRunTime: 5400
|
||||
metadata:
|
||||
name: '[TC] Linux64 firefox-ui-tests functional e10s'
|
||||
description: firefox-ui-tests functional e10s run
|
||||
extra:
|
||||
suite:
|
||||
name: firefox-ui
|
||||
flavor: functional
|
||||
treeherder:
|
||||
groupName: Desktop firefox-ui-tests
|
||||
groupSymbol: tc-Fxfn-e10s
|
||||
symbol: en-US
|
||||
tier: 2
|
@ -18,9 +18,7 @@ task:
|
||||
extra:
|
||||
suite:
|
||||
name: firefox-ui
|
||||
flavor: functional
|
||||
treeherder:
|
||||
groupName: Desktop firefox-ui-tests
|
||||
groupSymbol: tc-Fxfn
|
||||
symbol: en-US
|
||||
tier: 2
|
@ -0,0 +1,17 @@
|
||||
---
|
||||
$inherits:
|
||||
from: 'tasks/tests/fx_linux64_fxui_functional.yml'
|
||||
task:
|
||||
payload:
|
||||
command:
|
||||
- --tag local
|
||||
metadata:
|
||||
name: '[TC] Linux64 firefox-ui-tests functional local'
|
||||
description: firefox-ui-tests functional local run
|
||||
extra:
|
||||
suite:
|
||||
name: firefox-ui
|
||||
flavor: functional local
|
||||
treeherder:
|
||||
groupName: Desktop firefox-ui-tests (local)
|
||||
groupSymbol: tc-Fxfn-l
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
$inherits:
|
||||
from: 'tasks/tests/fx_linux64_firefox_ui_functional.yml'
|
||||
from: 'tasks/tests/fx_linux64_fxui_functional_local.yml'
|
||||
task:
|
||||
payload:
|
||||
command:
|
@ -0,0 +1,13 @@
|
||||
---
|
||||
$inherits:
|
||||
from: 'tasks/tests/fx_linux64_fxui_functional_local.yml'
|
||||
task:
|
||||
payload:
|
||||
command:
|
||||
- --e10s
|
||||
metadata:
|
||||
name: '[TC] Linux64 firefox-ui-tests functional local e10s'
|
||||
description: firefox-ui-tests functional local e10s run
|
||||
extra:
|
||||
treeherder:
|
||||
groupSymbol: tc-Fxfn-l-e10s
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
$inherits:
|
||||
from: 'tasks/tests/fx_linux64_firefox_ui_functional_e10s.yml'
|
||||
from: 'tasks/tests/fx_linux64_fxui_functional_local_e10s.yml'
|
||||
task:
|
||||
payload:
|
||||
command:
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
$inherits:
|
||||
from: 'tasks/tests/fx_linux64_firefox_ui_functional_e10s.yml'
|
||||
from: 'tasks/tests/fx_linux64_fxui_functional_local_e10s.yml'
|
||||
task:
|
||||
payload:
|
||||
command:
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
$inherits:
|
||||
from: 'tasks/tests/fx_linux64_firefox_ui_functional.yml'
|
||||
from: 'tasks/tests/fx_linux64_fxui_functional_local.yml'
|
||||
task:
|
||||
payload:
|
||||
command:
|
@ -0,0 +1,18 @@
|
||||
---
|
||||
$inherits:
|
||||
from: 'tasks/tests/fx_linux64_fxui_functional.yml'
|
||||
task:
|
||||
payload:
|
||||
command:
|
||||
- --tag remote
|
||||
metadata:
|
||||
name: '[TC] Linux64 firefox-ui-tests functional remote'
|
||||
description: firefox-ui-tests functional remote run
|
||||
extra:
|
||||
suite:
|
||||
name: firefox-ui
|
||||
flavor: functional remote
|
||||
treeherder:
|
||||
groupName: Desktop firefox-ui-tests (remote)
|
||||
groupSymbol: tc-Fxfn-r
|
||||
tier: 2
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
$inherits:
|
||||
from: 'tasks/tests/fx_linux64_fxui_functional_remote.yml'
|
||||
task:
|
||||
payload:
|
||||
command:
|
||||
- --download-symbols=true
|
@ -0,0 +1,13 @@
|
||||
---
|
||||
$inherits:
|
||||
from: 'tasks/tests/fx_linux64_fxui_functional_remote.yml'
|
||||
task:
|
||||
payload:
|
||||
command:
|
||||
- --e10s
|
||||
metadata:
|
||||
name: '[TC] Linux64 firefox-ui-tests functional remote e10s'
|
||||
description: firefox-ui-tests functional remote e10s run
|
||||
extra:
|
||||
treeherder:
|
||||
groupSymbol: tc-Fxfn-r-e10s
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
$inherits:
|
||||
from: 'tasks/tests/fx_linux64_fxui_functional_remote_e10s.yml'
|
||||
task:
|
||||
payload:
|
||||
command:
|
||||
- --download-symbols=true
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
$inherits:
|
||||
from: 'tasks/tests/fx_linux64_fxui_functional_remote_e10s.yml'
|
||||
task:
|
||||
payload:
|
||||
command:
|
||||
- --download-symbols=ondemand
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
$inherits:
|
||||
from: 'tasks/tests/fx_linux64_fxui_functional_remote.yml'
|
||||
task:
|
||||
payload:
|
||||
command:
|
||||
- --download-symbols=ondemand
|
@ -47,6 +47,10 @@ firefox_ui_tests_config_options = [
|
||||
'help': 'absolute path to directory containing breakpad '
|
||||
'symbols, or the url of a zip file containing symbols.',
|
||||
}],
|
||||
[['--tag=TAG'], {
|
||||
'dest': 'tag',
|
||||
'help': 'Subset of tests to run (local, remote).',
|
||||
}],
|
||||
] + copy.deepcopy(testing_config_options)
|
||||
|
||||
# Command line arguments for update tests
|
||||
@ -260,6 +264,9 @@ class FirefoxUITests(TestingMixin, VCSToolsScript):
|
||||
if self.query_minidump_stackwalk():
|
||||
env['MINIDUMP_STACKWALK'] = self.minidump_stackwalk_path
|
||||
|
||||
if self.config.get('tag'):
|
||||
cmd.extend(['--tag', self.config['tag']])
|
||||
|
||||
parser = StructuredOutputParser(config=self.config,
|
||||
log_obj=self.log_obj,
|
||||
strict=False)
|
||||
|
@ -4878,6 +4878,11 @@ mozilla::BrowserTabsRemoteAutostart()
|
||||
}
|
||||
gBrowserTabsRemoteAutostartInitialized = true;
|
||||
|
||||
// If we're in the content process, we are running E10S.
|
||||
if (XRE_IsContentProcess()) {
|
||||
gBrowserTabsRemoteAutostart = true;
|
||||
return gBrowserTabsRemoteAutostart;
|
||||
}
|
||||
|
||||
bool optInPref = Preferences::GetBool("browser.tabs.remote.autostart", false);
|
||||
bool trialPref = Preferences::GetBool("browser.tabs.remote.autostart.2", false);
|
||||
|
@ -93,6 +93,15 @@ public:
|
||||
*/
|
||||
bool IsComposing() const { return mIsComposing; }
|
||||
|
||||
/**
|
||||
* IsInNativeInputTransaction() returns true if native IME handler began a
|
||||
* transaction and it's not finished yet.
|
||||
*/
|
||||
bool IsInNativeInputTransaction() const
|
||||
{
|
||||
return mInputTransactionType == eNativeInputTransaction;
|
||||
}
|
||||
|
||||
/**
|
||||
* IsDispatchingEvent() returns true while this instance dispatching an event.
|
||||
*/
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -53,6 +53,12 @@ class TSFTextStore final : public ITextStoreACP
|
||||
, public ITfContextOwnerCompositionSink
|
||||
, public ITfMouseTrackerACP
|
||||
{
|
||||
private:
|
||||
typedef IMENotification::SelectionChangeDataBase SelectionChangeDataBase;
|
||||
typedef IMENotification::SelectionChangeData SelectionChangeData;
|
||||
typedef IMENotification::TextChangeDataBase TextChangeDataBase;
|
||||
typedef IMENotification::TextChangeData TextChangeData;
|
||||
|
||||
public: /*IUnknown*/
|
||||
STDMETHODIMP QueryInterface(REFIID, void**);
|
||||
|
||||
@ -109,7 +115,6 @@ public:
|
||||
WPARAM& aWParam, LPARAM& aLParam,
|
||||
MSGResult& aResult);
|
||||
|
||||
|
||||
static void SetIMEOpenState(bool);
|
||||
static bool GetIMEOpenState(void);
|
||||
|
||||
@ -276,9 +281,6 @@ protected:
|
||||
bool InsertTextAtSelectionInternal(const nsAString& aInsertStr,
|
||||
TS_TEXTCHANGE* aTextChange);
|
||||
void CommitCompositionInternal(bool);
|
||||
nsresult OnTextChangeInternal(const IMENotification& aIMENotification);
|
||||
nsresult OnSelectionChangeInternal(const IMENotification& aIMENotification);
|
||||
nsresult OnMouseButtonEventInternal(const IMENotification& aIMENotification);
|
||||
HRESULT GetDisplayAttribute(ITfProperty* aProperty,
|
||||
ITfRange* aRange,
|
||||
TF_DISPLAYATTRIBUTE* aResult);
|
||||
@ -310,10 +312,23 @@ protected:
|
||||
// MaybeFlushPendingNotifications() performs pending notifications to TSF.
|
||||
void MaybeFlushPendingNotifications();
|
||||
|
||||
nsresult OnTextChangeInternal(const IMENotification& aIMENotification);
|
||||
nsresult OnSelectionChangeInternal(const IMENotification& aIMENotification);
|
||||
nsresult OnMouseButtonEventInternal(const IMENotification& aIMENotification);
|
||||
nsresult OnLayoutChangeInternal();
|
||||
nsresult OnUpdateCompositionInternal();
|
||||
|
||||
void NotifyTSFOfTextChange(const TS_TEXTCHANGE& aTextChange);
|
||||
// mPendingSelectionChangeData stores selection change data until notifying
|
||||
// TSF of selection change. If two or more selection changes occur, this
|
||||
// stores the latest selection change data because only it is necessary.
|
||||
SelectionChangeData mPendingSelectionChangeData;
|
||||
|
||||
// mPendingTextChangeData stores one or more text change data until notifying
|
||||
// TSF of text change. If two or more text changes occur, this merges
|
||||
// every text change data.
|
||||
TextChangeData mPendingTextChangeData;
|
||||
|
||||
void NotifyTSFOfTextChange();
|
||||
void NotifyTSFOfSelectionChange();
|
||||
bool NotifyTSFOfLayoutChange();
|
||||
void NotifyTSFOfLayoutChangeAgain();
|
||||
@ -407,6 +422,14 @@ protected:
|
||||
// information.
|
||||
Composition mComposition;
|
||||
|
||||
/**
|
||||
* IsComposingInContent() returns true if there is a composition in the
|
||||
* focused editor and it's caused by native IME (either TIP of TSF or IME of
|
||||
* IMM). I.e., returns true between eCompositionStart and
|
||||
* eCompositionCommit(AsIs).
|
||||
*/
|
||||
bool IsComposingInContent() const;
|
||||
|
||||
class Selection
|
||||
{
|
||||
public:
|
||||
@ -531,22 +554,35 @@ protected:
|
||||
return mWritingMode;
|
||||
}
|
||||
|
||||
bool EqualsExceptDirection(const TS_SELECTION_ACP& aACP) const
|
||||
{
|
||||
if (mACP.style.ase == aACP.style.ase) {
|
||||
return mACP.acpStart == aACP.acpStart &&
|
||||
mACP.acpEnd == aACP.acpEnd;
|
||||
}
|
||||
return mACP.acpStart == aACP.acpEnd &&
|
||||
mACP.acpEnd == aACP.acpStart;
|
||||
}
|
||||
|
||||
private:
|
||||
TS_SELECTION_ACP mACP;
|
||||
WritingMode mWritingMode;
|
||||
bool mDirty;
|
||||
};
|
||||
// Don't access mSelection directly except at calling MarkDirty().
|
||||
// Use CurrentSelection() instead. This is marked as dirty when the
|
||||
// selection or content is changed without document lock.
|
||||
Selection mSelection;
|
||||
// Use SelectionForTSFRef() instead. This is modified immediately when
|
||||
// TSF requests to set selection and not updated by selection change in
|
||||
// content until mContentForTSF is cleared.
|
||||
Selection mSelectionForTSF;
|
||||
|
||||
// Get "current selection". If the document is locked, this initializes
|
||||
// mSelection with the selection at the first call during a lock and returns
|
||||
// it. However, mSelection is NOT modified immediately. When pending
|
||||
// changes are flushed at unlocking the document, cached mSelection is
|
||||
// modified. Note that this is also called by LockedContent().
|
||||
Selection& CurrentSelection();
|
||||
/**
|
||||
* Get the selection expected by TSF. If mSelectionForTSF is already valid,
|
||||
* this just return the reference to it. Otherwise, this initializes it
|
||||
* with eQuerySelectedText. Please check if the result is valid before
|
||||
* actually using it.
|
||||
* Note that this is also called by ContentForTSFRef().
|
||||
*/
|
||||
Selection& SelectionForTSFRef();
|
||||
|
||||
struct PendingAction final
|
||||
{
|
||||
@ -785,18 +821,24 @@ protected:
|
||||
|
||||
bool mInitialized;
|
||||
};
|
||||
// mLockedContent starts to cache content of the document at first query of
|
||||
// the content during a document lock. This is abandoned after document is
|
||||
// unlocked and dispatched events are handled. This is initialized by
|
||||
// LockedContent() automatically. So, don't access this member directly
|
||||
// except at calling Clear(), IsInitialized(), IsLayoutChangedAfter() or
|
||||
// IsLayoutChanged().
|
||||
Content mLockedContent;
|
||||
// mContentForTSF is cache of content. The information is expected by TSF
|
||||
// and TIP. Therefore, this is useful for answering the query from TSF or
|
||||
// TIP.
|
||||
// This is initialized by ContentForTSFRef() automatically (therefore, don't
|
||||
// access this member directly except at calling Clear(), IsInitialized(),
|
||||
// IsLayoutChangeAfter() or IsLayoutChanged()).
|
||||
// This is cleared when:
|
||||
// - When there is no composition, the document is unlocked.
|
||||
// - When there is a composition, all dispatched events are handled by
|
||||
// the focused editor which may be in a remote process.
|
||||
// So, if two compositions are created very quickly, this cache may not be
|
||||
// cleared between eCompositionCommit(AsIs) and eCompositionStart.
|
||||
Content mContentForTSF;
|
||||
|
||||
Content& LockedContent();
|
||||
Content& ContentForTSFRef();
|
||||
|
||||
// While the documet is locked, this returns the text stored by
|
||||
// mLockedContent. Otherwise, return the current text content.
|
||||
// While mContentForTSF is valid, this returns the text stored by it.
|
||||
// Otherwise, return the current text content retrieved by eQueryTextContent.
|
||||
bool GetCurrentText(nsAString& aTextContent);
|
||||
|
||||
class MouseTracker final
|
||||
@ -863,14 +905,6 @@ protected:
|
||||
// If edit actions are being recorded without document lock, this is true.
|
||||
// Otherwise, false.
|
||||
bool mIsRecordingActionsWithoutLock;
|
||||
// During recording actions, we shouldn't call mSink->OnSelectionChange()
|
||||
// because it may cause TSF request new lock. This is a problem if the
|
||||
// selection change is caused by a call of On*Composition() without document
|
||||
// lock since RequestLock() tries to flush the pending actions again (which
|
||||
// are flushing). Therefore, OnSelectionChangeInternal() sets this true
|
||||
// during recoding actions and then, RequestLock() will call
|
||||
// mSink->OnSelectionChange() after mLock becomes 0.
|
||||
bool mPendingOnSelectionChange;
|
||||
// If GetTextExt() or GetACPFromPoint() is called and the layout hasn't been
|
||||
// calculated yet, these methods return TS_E_NOLAYOUT. At that time,
|
||||
// mHasReturnedNoLayoutError is set to true.
|
||||
@ -884,8 +918,8 @@ protected:
|
||||
// If this is true, the instance will be destroyed after unlocked.
|
||||
bool mPendingDestroy;
|
||||
// If this is false, MaybeFlushPendingNotifications() will clear the
|
||||
// mLockedContent.
|
||||
bool mDeferClearingLockedContent;
|
||||
// mContentForTSF.
|
||||
bool mDeferClearingContentForTSF;
|
||||
// While there is native caret, this is true. Otherwise, false.
|
||||
bool mNativeCaretIsCreated;
|
||||
// While the instance is dispatching events, the event may not be handled
|
||||
|
Loading…
Reference in New Issue
Block a user