Unfortunately, nsGenericHTMLElement::GetAssociatedEditor() cannot use concrete classes because it may return nsIEditor which is set via nsIDocShell.editor. The editor set to nsIDocShell may be implemented by JS since nsIEditor isn't marked as builtinclass.
MozReview-Commit-ID: 6GY9LOYp4hM
--HG--
extra : rebase_source : 3e0464067b30daf8254805458c5358d7ea644be8
HTMLEditor inherits some interface classes. Therefore, CachedWeakPtr is confused at ambiguous conversion from HTMLEditor to nsISupports. Therefore, this patch adds second parameter to the template class.
MozReview-Commit-ID: KGSYJHfp1L5
--HG--
extra : rebase_source : 7189372c4c06218c3040701196eac51ded85d3fa
Using concrete class rather than interface classes (nsI*Editor) will allow to reduce QI and some virtual calls. Therefore, Editor classes should be used as concrete class as far as possible.
Unfortunately, if classes referring editor are initialized via scriptable interface, we cannot do this because nsI*Editor is still not marked as builtinclass. Therefore, their editor may be implemented by JS. E.g., inline nsIInlineSpellChecker.init() and nsIDocShell.editor. Such remaining cases should be fixed after nsI*Editor classes are marked as builtinclass.
Note that this patch also creates nsIdentifierMapEntry.h which is separated from nsDocument.h because ShadowRoot.h needs the class but exposing nsDocument.h to the global and includes it causes bustage on Linux and Android. Therefore, for fixing the include hell, this patch touches them and ContentChild.cpp.
MozReview-Commit-ID: i6fLWw6Qeo
--HG--
rename : dom/base/nsDocument.h => dom/base/nsIdentifierMapEntry.h
extra : rebase_source : c57bdfc1c13775acdcfd4732d8157d04d6b6613f
See bug 1374848 for why.
Source-Repo: https://github.com/servo/servo
Source-Revision: 6b99318f552c1561392208efd9030d0b4a6f91d1
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 27123c796e94135b62aae6b5669017cbdd5e3c49
<!-- Please describe your changes on the following line: -->
This PR contains fixes that address the specific errors in #17392: WTP workarounds for Windows terminals (see #8313), modifications to `mach test --all` that allow `test_tidy` to be called properly, and modifications to the test harness for WPT that allow it to run when OpenSSL isn't found. How to handle OpenSSL on Windows is probably a separate issue because it doesn't have a straightforward answer: we either need to provide specific instructions to users or bundle it in binary form ourselves.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#17392 (github issue number if applicable).
<!-- Either: -->
- [x] These changes do not require tests because they fix test running.
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: 64782bc6e3b8882630137d2e76cff4b90839bf1a
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : dea4ce5f0f1777a3dfb3a442a63153ac9c31c2d8
We deployed the Servo VCS backout service recently and want to test it. The goal is to land this PR so it is replicated to the Firefox repo. Then we'll back out this PR from the Firefox repo, which should trigger a new PR against Servo to do the backout.
The changed code is not wrong. So if things don't go as planned, it shouldn't harm anyone.
Source-Repo: https://github.com/servo/servo
Source-Revision: e364f849b009d664012475396b927d354a5b7463
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : f30d4b6a89cffd6018d7ea899b2f153e22025878
Before bug 1373150, the l10n mozconfigs would include
compilation-related mozconfigs, which include setting compiler paths,
and setting --target for cross builds. After bug 1373150, the
compilation-related mozconfigs are not included anymore, which made
--target unset for l10n builds, leaving it to configure to guess what it
is based on the host. Which for cross builds is Linux, so configure
would set things up for a linux build, which doesn't work to do osx
l10n repacks.
So we add back an explicit --target to those mozconfigs, without
including all the compilation-related things.
We set the target to x86_64-apple-darwin, which is the same as what was
set through build/macosx/cross-mozconfig.common. This is different from
what the native osx builds would get (x86_64-apple-darwin11.2.0), but
the extra version in that target is actually not relevant and native
builds shouldn't care that it's gone.
When editor has focus, input.value setter will call UpdateOverlayTextVisibility via nsTextInputListener::EditAction -> nsTextControlFrame::SetValueChanged at first. But SetValue will call UpdateOverlayTextVisibility again via ValueWasChanged.
So it is unnecessary to call UpdateOverlayTextVisibility on nsTextEditorState::SetValue when we have the editor.
MozReview-Commit-ID: Hw3Bh64Euo6
--HG--
extra : rebase_source : f33132e668fff48230f79990802a3d7e23e85207
This patch enables OSX cross compiled jobs as tier 1, and additionally adds testing for OSX Nightlies via Taskcluster. Initially tested on the 'date' project branch primarily with Bug 1373384
MozReview-Commit-ID: 7nWfiSEDbJd
--HG--
extra : source : 68ff1aa745ff36119abde734ed313209b7730ea4
Ideally this check will alert people that something is wrong with their
configuration. This check shouldn't normally be firing with our `mach
boostrap` setup, but if somebody chooses to install distribution
packages for some reason, this will at least prevent some problems.
People building without a compilation environment (artifact builds, l10n
builds) won't have a compiler available, let alone the bits to build
bindgen. We should limit our checks for bindgen-y things accordingly.
Prior to this patch, we had a not-so-great hack in place: the bit of
configure that determined bindgen config paths *and* the bit of
configure that returned various pieces of information about Stylo were
both guarded on --enable-stylo-build-bindgen. We should really only
have one place that depends on --enable-stylo-build-bindgen, and this
patch puts us in a place to do that, by making bindgen_config_paths
properly use a when= argument to determine when it needs to run.
This commit makes the `stylo` function entirely redundant, and said
function will be removed in the next patch.
stylo.build is just a copy of stylo_config.build, so we should use the
former to limit the number of duplicate concepts we have. Using
stylo_config consistently enables us to separate out what artifact
builds need vs. non-artifact builds.
On some systems, llvm-config may be installed, but not the files to
which it needs to refer. We should ensure that the values returned
actually make some sense.
--with-libclang-path is supposed to be a directory, and
--with-clang-path is supposed to be a file, but it was easy to pass a
directory for the latter, and it was easy to misinterpret the
documentation for --with-libclang-path as pointing to one of the
libraries themselves. Clearer documentation and additional checks
should help with this situation.
A number of places in JS need to drain the current thread's event queue,
which cannot be done with nsIThreadManager::spinEventLoopUntil, since we
need to not wait for an incoming event when attempting to process one.