Merge inbound to mozilla-central. a=merge

This commit is contained in:
Noemi Erli 2018-09-16 12:50:28 +03:00
Родитель 737bd284b4 ccda8a2b19
Коммит bdc89dfd78
17 изменённых файлов: 179 добавлений и 57 удалений

12
Cargo.lock сгенерированный
Просмотреть файл

@ -827,7 +827,7 @@ dependencies = [
[[package]]
name = "geckodriver"
version = "0.21.0"
version = "0.22.0"
dependencies = [
"base64 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
"chrono 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)",
@ -835,8 +835,8 @@ dependencies = [
"hyper 0.12.7 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
"mozprofile 0.3.0",
"mozrunner 0.7.0",
"mozprofile 0.4.0",
"mozrunner 0.8.0",
"mozversion 0.1.3",
"regex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1378,17 +1378,17 @@ dependencies = [
[[package]]
name = "mozprofile"
version = "0.3.0"
version = "0.4.0"
dependencies = [
"tempdir 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "mozrunner"
version = "0.7.0"
version = "0.8.0"
dependencies = [
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
"mozprofile 0.3.0",
"mozprofile 0.4.0",
"winreg 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
]

Просмотреть файл

@ -34,8 +34,7 @@ this.search = class extends ExtensionAPI {
search: {
async get() {
await searchInitialized;
let engines = Services.search.getEngines();
let visibleEngines = engines.filter(engine => !engine.hidden);
let visibleEngines = Services.search.getVisibleEngines();
return Promise.all(visibleEngines.map(async engine => {
let favIconUrl;
if (engine.iconURI) {

Просмотреть файл

@ -152,7 +152,7 @@
#include "nsIScriptSecurityManager.h"
#include "nsISiteSecurityService.h"
#include "nsISound.h"
#include "nsISpellChecker.h"
#include "mozilla/mozSpellChecker.h"
#include "nsIStringBundle.h"
#include "nsISupportsPrimitives.h"
#include "nsITimer.h"
@ -2405,7 +2405,7 @@ ContentParent::InitInternal(ProcessPriority aInitialPriority)
bidi->GetHaveBidiKeyboards(&xpcomInit.haveBidiKeyboards());
}
nsCOMPtr<nsISpellChecker> spellChecker(do_GetService(NS_SPELLCHECKER_CONTRACTID));
nsCOMPtr<nsISpellChecker> spellChecker(mozSpellChecker::Create());
MOZ_ASSERT(spellChecker, "No spell checker?");
spellChecker->GetDictionaryList(&xpcomInit.dictionaries());
@ -4615,7 +4615,7 @@ ContentParent::IgnoreIPCPrincipal()
void
ContentParent::NotifyUpdatedDictionaries()
{
nsCOMPtr<nsISpellChecker> spellChecker(do_GetService(NS_SPELLCHECKER_CONTRACTID));
nsCOMPtr<nsISpellChecker> spellChecker(mozSpellChecker::Create());
MOZ_ASSERT(spellChecker, "No spell checker?");
InfallibleTArray<nsString> dictionaries;

Просмотреть файл

@ -323,9 +323,8 @@ EditorSpellCheck::CanSpellCheck(bool* aCanSpellCheck)
{
RefPtr<mozSpellChecker> spellChecker = mSpellChecker;
if (!spellChecker) {
spellChecker = new mozSpellChecker();
DebugOnly<nsresult> rv = spellChecker->Init();
MOZ_ASSERT(NS_SUCCEEDED(rv));
spellChecker = mozSpellChecker::Create();
MOZ_ASSERT(spellChecker);
}
nsTArray<nsString> dictList;
nsresult rv = spellChecker->GetDictionaryList(&dictList);
@ -389,7 +388,8 @@ EditorSpellCheck::InitSpellChecker(nsIEditor* aEditor,
// mSpellChecker->GetTextServicesDocument(). Therefore, we need to
// initialize them before calling TextServicesDocument::InitWithEditor()
// since it calls EditorBase::AddEditActionListener().
mSpellChecker = new mozSpellChecker();
mSpellChecker = mozSpellChecker::Create();
MOZ_ASSERT(mSpellChecker);
rv = mSpellChecker->SetDocument(textServicesDocument, true);
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
@ -432,9 +432,6 @@ EditorSpellCheck::InitSpellChecker(nsIEditor* aEditor,
}
}
}
rv = mSpellChecker->Init();
MOZ_ASSERT(NS_SUCCEEDED(rv));
// do not fail if UpdateCurrentDictionary fails because this method may
// succeed later.
rv = UpdateCurrentDictionary(aCallback);

Просмотреть файл

@ -11,8 +11,6 @@
#include "nsStringFwd.h"
#include "nsTArray.h"
#define NS_SPELLCHECKER_CONTRACTID "@mozilla.org/spellchecker;1"
#define NS_ISPELLCHECKER_IID \
{ /* 27bff957-b486-40ae-9f5d-af0cdd211868 */ \
0x27bff957, 0xb486, 0x40ae, \

Просмотреть файл

@ -5,14 +5,14 @@
#include "RemoteSpellCheckEngineParent.h"
#include "mozilla/Unused.h"
#include "nsISpellChecker.h"
#include "mozilla/mozSpellChecker.h"
#include "nsServiceManagerUtils.h"
namespace mozilla {
RemoteSpellcheckEngineParent::RemoteSpellcheckEngineParent()
{
mSpellChecker = do_CreateInstance(NS_SPELLCHECKER_CONTRACTID);
mSpellChecker = mozSpellChecker::Create();
}
RemoteSpellcheckEngineParent::~RemoteSpellcheckEngineParent()

Просмотреть файл

@ -22,15 +22,20 @@ namespace mozilla {
class RemoteSpellcheckEngineChild;
} // namespace mozilla
class mozSpellChecker : public nsISpellChecker
class mozSpellChecker final : public nsISpellChecker
{
public:
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
NS_DECL_CYCLE_COLLECTION_CLASS(mozSpellChecker)
mozSpellChecker();
nsresult Init();
static already_AddRefed<mozSpellChecker>
Create()
{
RefPtr<mozSpellChecker> spellChecker = new mozSpellChecker();
nsresult rv = spellChecker->Init();
NS_ENSURE_SUCCESS(rv, nullptr);
return spellChecker.forget();
}
// nsISpellChecker
NS_IMETHOD SetDocument(mozilla::TextServicesDocument* aTextServicesDocument,
@ -57,8 +62,11 @@ public:
mozilla::TextServicesDocument* GetTextServicesDocument();
protected:
mozSpellChecker();
virtual ~mozSpellChecker();
nsresult Init();
RefPtr<mozEnglishWordUtils> mConverter;
RefPtr<mozilla::TextServicesDocument> mTextServicesDocument;
nsCOMPtr<mozIPersonalDictionary> mPersonalDictionary;

Просмотреть файл

@ -6,33 +6,23 @@
#include "mozilla/ModuleUtils.h"
#include "mozHunspell.h"
#include "mozSpellChecker.h"
#include "mozPersonalDictionary.h"
#include "nsIFile.h"
#define NS_SPELLCHECKER_CID \
{ /* 8227f019-afc7-461e-b030-9f185d7a0e29 */ \
0x8227F019, 0xAFC7, 0x461e, \
{ 0xB0, 0x30, 0x9F, 0x18, 0x5D, 0x7A, 0x0E, 0x29} }
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(mozHunspell, Init)
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(mozSpellChecker, Init)
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(mozPersonalDictionary, Init)
NS_DEFINE_NAMED_CID(MOZ_HUNSPELL_CID);
NS_DEFINE_NAMED_CID(NS_SPELLCHECKER_CID);
NS_DEFINE_NAMED_CID(MOZ_PERSONALDICTIONARY_CID);
static const mozilla::Module::CIDEntry kSpellcheckCIDs[] = {
{ &kMOZ_HUNSPELL_CID, false, nullptr, mozHunspellConstructor },
{ &kNS_SPELLCHECKER_CID, false, nullptr, mozSpellCheckerConstructor },
{ &kMOZ_PERSONALDICTIONARY_CID, false, nullptr, mozPersonalDictionaryConstructor },
{ nullptr }
};
static const mozilla::Module::ContractIDEntry kSpellcheckContracts[] = {
{ MOZ_HUNSPELL_CONTRACTID, &kMOZ_HUNSPELL_CID },
{ NS_SPELLCHECKER_CONTRACTID, &kNS_SPELLCHECKER_CID },
{ MOZ_PERSONALDICTIONARY_CONTRACTID, &kMOZ_PERSONALDICTIONARY_CID },
{ nullptr }
};

Просмотреть файл

@ -48,16 +48,6 @@ bool CanUsePartialPresents(ID3D11Device* aDevice);
const FLOAT sBlendFactor[] = { 0, 0, 0, 0 };
namespace TexSlot {
static const int RGB = 0;
static const int Y = 1;
static const int Cb = 2;
static const int Cr = 3;
static const int RGBWhite = 4;
static const int Mask = 5;
static const int Backdrop = 6;
}
CompositorD3D11::CompositorD3D11(CompositorBridgeParent* aParent, widget::CompositorWidget* aWidget)
: Compositor(aWidget, aParent)
, mAttachments(nullptr)

Просмотреть файл

@ -240,6 +240,16 @@ private:
bool mUseMutexOnPresent;
};
namespace TexSlot {
static const int RGB = 0;
static const int Y = 1;
static const int Cb = 2;
static const int Cr = 3;
static const int RGBWhite = 4;
static const int Mask = 5;
static const int Backdrop = 6;
}
}
}

Просмотреть файл

@ -1583,6 +1583,7 @@ MLGDeviceD3D11::SetPrimitiveTopology(MLGPrimitiveTopology aTopology)
break;
default:
MOZ_ASSERT_UNREACHABLE("Unknown topology");
topology = D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED;
break;
}

Просмотреть файл

@ -582,6 +582,3 @@ if CONFIG['MOZ_ENABLE_SKIA']:
UNIFIED_SOURCES += [
'composite/PaintCounter.cpp',
]
if CONFIG['CC_TYPE'] == 'clang-cl':
AllowCompilerWarnings() # workaround for bug 1090497

Просмотреть файл

@ -4,22 +4,84 @@ Change log
All notable changes to this program is documented in this file.
Unreleased
----------
0.22.0 (2018-09-15)
-------------------
This release marks an important milestone on the path towards
a stable release of geckodriver. Large portions of geckodriver
and the [webdriver] library it is based on has been refactored to
accommodate using [serde] for JSON serialization.
We have also made great strides to improving [WebDriver conformance],
to the extent that geckodriver is now _almost_ entirely conforming
to the standard.
### Added
- Support for WebDriver web element, web frame, and web window
- Support for WebDriver web element-, web frame-, and web window
identifiers from Firefox.
- Added support for the non-configurable `setWindowRect` capability
from WebDriver.
This capability informs whether the attached browser supports
manipulating the window dimensions and position.
- A new extension capability `moz:geckodriverVersion` is returned
upon session creation.
### Changed
- The HTTP status codes used for [`ScriptTimeout`] and [`Timeout`]
- All JSON serialization and deserialisation has moved from
rustc_serialize to [serde].
- The HTTP status codes used for [script timeout] and [timeout]
errors has changed from Request Timeout (408) to Internal Server
Error (500) in order to not break HTTP/1.1 `Keep-Alive` support,
as HTTP clients interpret the old status code to mean they should
duplicate the request.
- The HTTP/1.1 `Keep-Alive` timeout for persistent connections has
been increased to 90 seconds.
- An [invalid session ID] error is now returned when there is no
active session.
- An [invalid argument] error is now returned when [Add Cookie]
is given invalid parameters.
- The handshake when geckodriver connects to Marionette has been
hardened by killing the Firefox process if it fails.
- The handshake read timeout has been reduced to 10 seconds instead
of waiting forever.
- The HTTP server geckodriver uses, [hyper], has been upgraded to
version 0.12, thanks to [Bastien Orivel].
- geckodriver version number is no longer logged on startup, as
the log level is not configured until a session is created.
The version number is available through `--version`, and now
also through a new `moz:geckodriverVersion` field in the matched
capabilities.
- The webdriver library has been updated to version 0.37.0.
### Fixed
- Parsing [timeout object] values has been made WebDriver conforming,
by allowing floats as input.
- Implicit downloads of OpenH264 and Widevine plugins has been disabled.
- The commit hash and date displayed when invoking `--version`
is now well-formatted when built from an hg repository, thanks to
[Jeremy Lempereur].
- Many documentation improvements, now published on
https://firefox-source-docs.mozilla.org/testing/geckodriver/geckodriver/.
0.21.0 (2018-06-15)
-------------------
@ -914,6 +976,7 @@ and greater.
[README]: https://github.com/mozilla/geckodriver/blob/master/README.md
[Browser Toolbox]: https://developer.mozilla.org/en-US/docs/Tools/Browser_Toolbox
[WebDriver conformance]: https://wpt.fyi/results/webdriver/tests?label=experimental
[`CloseWindowResponse`]: https://docs.rs/webdriver/newest/webdriver/response/struct.CloseWindowResponse.html
[`CookieResponse`]: https://docs.rs/webdriver/newest/webdriver/response/struct.CookieResponse.html
@ -939,7 +1002,16 @@ and greater.
[`UnknownError`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.UnknownError
[`WindowRectParameters`]: https://docs.rs/webdriver/newest/webdriver/command/struct.WindowRectParameters.html
[Add Cookie]: https://developer.mozilla.org/en-US/docs/Web/WebDriver/Commands/AddCookie
[invalid argument]: https://developer.mozilla.org/en-US/docs/Web/WebDriver/Errors/InvalidArgument
[invalid session id]: https://developer.mozilla.org/en-US/docs/Web/WebDriver/Errors/InvalidSessionID
[script timeout]: https://developer.mozilla.org/en-US/docs/Web/WebDriver/Errors/ScriptTimeout
[timeout]: https://developer.mozilla.org/en-US/docs/Web/WebDriver/Errors/Timeout
[timeout object]: https://developer.mozilla.org/en-US/docs/Web/WebDriver/Timeouts
[hyper]: https://hyper.rs/
[mozrunner crate]: https://crates.io/crates/mozrunner
[serde]: https://serde.rs/
[webdriver crate]: https://crates.io/crates/webdriver
[Actions]: https://w3c.github.io/webdriver/webdriver-spec.html#actions
@ -957,7 +1029,9 @@ and greater.
[Take Element Screenshot]: https://w3c.github.io/webdriver/webdriver-spec.html#take-element-screenshot
[WebDriver errors]: https://w3c.github.io/webdriver/webdriver-spec.html#handling-errors
[Bastien Orivel]: https://github.com/Eijebong
[Jason Juang]: https://github.com/juangj
[Jeremy Lempereur]: https://github.com/o0Ignition0o
[Joshua Bruning]: https://github.com/joshbruning
[Kalpesh Krishna]: https://github.com/martiansideofthemoon
[Mike Pennisi]: https://github.com/jugglinmike

Просмотреть файл

@ -1,6 +1,6 @@
[package]
name = "geckodriver"
version = "0.21.0"
version = "0.22.0"
description = "Proxy for using WebDriver clients to interact with Gecko-based browsers."
keywords = ["webdriver", "w3c", "httpd", "mozilla", "firefox"]
repository = "https://hg.mozilla.org/mozilla-central/file/tip/testing/geckodriver"

Просмотреть файл

@ -1,6 +1,63 @@
Supported platforms
===================
The following table shows a mapping between [geckodriver releases],
supported versions of Firefox, and required Selenium version:
<table>
<thead>
<tr>
<th rowspan="2">geckodriver
<th rowspan="2">Selenium
<th colspan="2">Supported versions of Firefox
</tr>
<tr>
<th>min
<th>max
</tr>
</thead>
<tr>
<td>0.22.0
<td>≥ 3.11 (3.14 Python)
<td>57
<td>n/a
<tr>
<td>0.21.0
<td>≥ 3.11 (3.14 Python)
<td>57
<td>n/a
<tr>
<td>0.20.1
<td>≥ 3.5
<td>55
<td>62
<tr>
<td>0.20.0
<td>≥ 3.5
<td>55
<td>62
<tr>
<td>0.19.1
<td>≥ 3.5
<td>55
<td>62
<tr>
<td>0.19.0
<td>≥ 3.5
<td>55
<td>62
<tr>
<td>0.18.0
<td>≥ 3.4
<td>53
<td>62
<tr>
<td>0.17.0
<td>≥ 3.4
<td>52
<td>62
Clients
-------
@ -28,6 +85,7 @@ latest [Firefox Nightly] with geckodriver. Since Windows XP support
in Firefox was dropped with Firefox 53, we do not support this platform.
[geckodriver releases]: https://github.com/mozilla/geckodriver/releases
[Selenium]: https://github.com/seleniumhq/selenium
[WebDriver]: https://w3c.github.io/webdriver/
[implementation status]: https://bugzilla.mozilla.org/showdependencytree.cgi?id=721859&hide_resolved=1

Просмотреть файл

@ -1,7 +1,7 @@
[package]
name = "mozprofile"
version = "0.3.0"
authors = ["Mozilla Tools and Automation <auto-tools@mozilla.com>"]
version = "0.4.0"
authors = ["Mozilla"]
description = "Library for working with Mozilla profiles."
repository = "https://hg.mozilla.org/mozilla-central/file/tip/testing/mozbase/rust/mozprofile"
license = "MPL-2.0"

Просмотреть файл

@ -1,6 +1,6 @@
[package]
name = "mozrunner"
version = "0.7.0"
version = "0.8.0"
authors = ["Mozilla"]
description = "Reliable Firefox process management."
repository = "https://hg.mozilla.org/mozilla-central/file/tip/testing/mozbase/rust/mozrunner"