зеркало из https://github.com/mozilla/gecko-dev.git
Merge inbound to mozilla-central. a=merge
This commit is contained in:
Коммит
bdc89dfd78
|
@ -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"
|
||||
|
|
Загрузка…
Ссылка в новой задаче