nsINode::GetSelectionRootContent() uses nsIEditor since nsContentUtils::GetHTMLEditor() returned nsIEditor. Therefore, it needed to use GetEditorRootContent() to retrieve the editor root element as nsIContent*.
Now, it can use HTMLEditor and HTMLEditor::GetRoot() returns the editor root element as nsIContent* directly. So, it should use HTMLEditor instead.
MozReview-Commit-ID: I937a5TuxVD
--HG--
extra : rebase_source : 5c00be8b590ca3d4d4290a69eef1e2e177ee069d
nsGenericHTMLElement::GetAssociatedEditor() retrieves TextEditor if the element is <input type="text"> or something, or <textarea>, or if it's editable, HTMLEditor associated to the document. So, this method can return TextEditor (HTMLEditor is a subclass of TextEditor).
MozReview-Commit-ID: BvpFPaPLY70
--HG--
extra : rebase_source : 69edbe17aeb1ac72a8f8d247e5baca998569250e
nsContentUtils::GetHTMLEditor() currently returns nsIEditor* since editor of doc shell may be any type of editors such as TextEditor or editor object which is implemented by JS. However, nsIEditor is now a builtin class. So, it can return HTMLEditor.
MozReview-Commit-ID: 3YoFOplZa7W
--HG--
extra : rebase_source : 46f42d23babd64bf0a5003e66e8fe3b9e0bd7166
<!-- Please describe your changes on the following line: -->
https://bugzilla.mozilla.org/show_bug.cgi?id=1387941
---
<!-- 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
Source-Repo: https://github.com/servo/servo
Source-Revision: 421a553799b6e71c2bf7a0f5bba4082060445533
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 1ade80b1376d7e773397564d48b88a99549628fd
nsHTMLDocument retrieves its associated editor from nsIEditingSession and nsIDocShell. So, both of them have methods returning HTMLEditor*. Therefore, nsHTMLDocument should treat all of them as HTMLEditor.
MozReview-Commit-ID: 5zPH708Vev3
--HG--
extra : rebase_source : 09e87fab64bc3e8a00300bc3109e45a1b8c8b797
nsIHTMLDocument::TearingDownEditor() takes nsIEditor as an argument. However, it's not used in it. So, we can remove it.
MozReview-Commit-ID: KUmIsnVGB6H
--HG--
extra : rebase_source : ddd344b9df18e0b33d54d2f99e6335449f55df81
nsEditingSession should treat editor as HTMLEditor in its internal handling.
MozReview-Commit-ID: 51SfY4oeq3p
--HG--
extra : rebase_source : 90535267e62de17755fff9f21b6a0f74244d849a
Some users of HTMLEditor retrieve pointer to editors with nsIEditingSession::GetEditorForWindow() but it returns nsIEditor. So, there should be a method which returns HTMLEditor*.
MozReview-Commit-ID: Bzc1LIlTSDF
--HG--
extra : rebase_source : f6fb3e5852809487883e3e6fedda9580206b2cb5
This commit:
- Makes the window controls have exactly the same height as tabs when the
menubar is hidden, and have the same height as the menubar when it is shown.
This requires us to remove the menubar height before flushing layout in
case it is shown, since we need its original height for the calculation.
- Removes the top margin between the menu bar and the window border
that was present on Windows 10 and makes it apply on Windows 7 only.
The border was causing miscalculations of the window control height,
which could have been handled in browser-tabsintitlebar.js, but since
it's not part of the Photon spec we decide to remove it entirely.
- Makes window control height calculations ignore vertical tabs toolbar
margins. The only margin it has right now is -1px and the calculation
code doesn't work right with negative margins.
MozReview-Commit-ID: HJXxUUJFX8x
--HG--
extra : rebase_source : fdb5db7e5b410cb45cef054d5cbec41048211f75
This patch changes UpdateAnimationOnlyStyles to only flush animation styles if
there are throttled animation styles that could affect hit-testing and renames
the function to UpdateAnimationStylesForHitTesting at the same time.
For GeckoRestyleManager, the original UpdateAnimationOnlyStyles which flushes
animation styles if there are any pending animation styles, is renamed to
UpdateAnimationStyles for consistency.
MozReview-Commit-ID: 89UleXjI2OE
--HG--
extra : rebase_source : cac59f9d48b096aee718f89ffe203d38d39027fd
From https://bugzilla.mozilla.org/show_bug.cgi?id=1389937. Reviewed by Xidorn there. Waiting until try server is back up and running before landing this, though.
Source-Repo: https://github.com/servo/servo
Source-Revision: b0422b89108301495520de88f2765c78f429692d
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 5c80f87c9194ffee54a7a1d5488b5b0ccd0bea56
We convert a perspective function into a ComputedMatrix, but we apply the
perspective length to a wrong matrix item. We should put it into m34,
instead of m43. m43 is for translate parameter Z.
---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix [Bug 1389023](https://bugzilla.mozilla.org/show_bug.cgi?id=1389023).
- [X] These changes do not require tests because we have many transform tests in Gecko already. However, those tests may not be enough, so we should add more in Gecko later.
Source-Repo: https://github.com/servo/servo
Source-Revision: cd1251082511a44ef9ad020b7196336bca812a49
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : fd5b13ac29076c2aed7c0c7778932ed7cfbd8b8d
Since we made -moz-appearance animatable, append to the moz prefixed properties
test.
MozReview-Commit-ID: 9tdouU1umEB
--HG--
extra : rebase_source : 79e9639360461452249ce54ff538294f25b6cd4f
<!-- Please describe your changes on the following line: -->
---
<!-- 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
<!-- Either: -->
- [X] There are tests for these changes. The test code is patch part 2 in https://bugzilla.mozilla.org/show_bug.cgi?id=1382138
<!-- 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: f93c6dfbd54f1ec40a0feba12932ef5aac379624
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 98467479ffc5ff76f72403be82321be487380d65
Now, clip-path can animate as basic-shape in CSS Transitions.
However, the serialization of computed value both Gecko and Servo is
difference. Also, the serialization of Servo is correct.
Therefor, add the expected value for Servo.
MozReview-Commit-ID: 5hr2PRlLnPd
--HG--
extra : rebase_source : 417faa4d8819cd8d1fd2c7c79df1f54efdc2086b
When Gecko started to support Cocoa widget, we needed to use NSInputManager.
That allowed applications to access only focused IME context. Therefore, commit
composition request handler for Cocoa is designed as handling asynchronosly if
it's requested when the window is not active or is being inactivated.
Additionally, the asynchronous handling isn't perfect. We hit some MOZ_ASSERT()
now in some places. E.g., in SelectedRange(), it doesn't assume that it's
called during deactive.
On the other hand, NSInputManager was alreay obsolete and we already stopped using it
(bug 810225). Instead, we're using NSTextInputContext and it allows applications
to access IME anytime. Therefore, if we make IMEInputHandler handles commit/cancel
composition requests synchronsly, that behaves same as the other platforms. So, we
can get rid of macOS specific issue completely.
MozReview-Commit-ID: X7aWmGq95x
--HG--
extra : rebase_source : a472a03e3ef6f424fe73c2d438b8326bed80278d
When a remote process has focus and it loses focus,
IMEStateManager::OnChangeFocusInternal() sends NOTIFY_IME_OF_BLUR via
IMEStateManager::NotifyIMEOfBlurForChildProcess(). Therefore,
sFocusedIMETabParent and sFocusedIMEWidget are set to nullptr here. So, if a
window becomes active, REQUEST_IME_TO_COMMIT_COMPOSITION in
IMEStateManager::OnChangeFocusInternal() won't work because
IMEStateManager::NotifyIME() ignores the request because of coming from wrong
process.
Therefore, IMEStateManager::OnChangeFocusInternal() needs to send
REQUEST_TO_COMMIT_COMPOSITION with proper process information which is only
stored by TextComposition instance.
MozReview-Commit-ID: KNEvOoQtK1E
--HG--
extra : rebase_source : 2d0c9297a6ffd3e7883130c80deec0479212148e
This patch changes the event to listen on the search textbox from "command" to
"input", which means the code will run with every keystroke, instead of once
a few keystrokes after a timeout. It will make the search very responsive.
However, with that change, each keystroke will be blocked by the search function,
which go through the entire DOM of the page. This patch fixes that by making the
search function async. The search will now check the execution time with
Performance API, and give way when it blocks the page for more than 1/60 sec.
Further care was taken to make sure page won't flash unchecked content while
the loop go through the entire DOM. The elements to be checked can't be hidden
because of the JS bindings, so CSS rules are set to ensure they are kept
visually hidden. Unfortunately, CSS cannot change XUL layout so they still
occupies page space.
Additional check was made to make sure the search function skips hidden elements,
if the previous query is a substring of the search query. This is done so that
search function does not unhide and hide these elements, and causes the search
result to flash as the user types.
MozReview-Commit-ID: BwBoJmTperw
--HG--
rename : browser/components/preferences/in-content-new/tests/browser_search_subdialogs_within_preferences_1.js => browser/components/preferences/in-content-new/tests/browser_search_subdialogs_within_preferences_5.js
rename : browser/components/preferences/in-content-new/tests/browser_search_subdialogs_within_preferences_2.js => browser/components/preferences/in-content-new/tests/browser_search_subdialogs_within_preferences_6.js
rename : browser/components/preferences/in-content-new/tests/browser_search_subdialogs_within_preferences_3.js => browser/components/preferences/in-content-new/tests/browser_search_subdialogs_within_preferences_7.js
rename : browser/components/preferences/in-content-new/tests/browser_search_subdialogs_within_preferences_4.js => browser/components/preferences/in-content-new/tests/browser_search_subdialogs_within_preferences_8.js
extra : rebase_source : 2f1b6cd9f50d79c24dcddc22c61c50d347ddf3f0
This patch moves measurement of ComputedValues objects from Rust to C++.
Measurement now happens (a) via DOM elements and (b) remaining elements via
the frame tree. Likewise for the style structs hanging off ComputedValues
objects.
Here is an example of the output.
> ├──27,600,448 B (26.49%) -- active/window(https://en.wikipedia.org/wiki/Barack_Obama)
> │ ├──12,772,544 B (12.26%) -- layout
> │ │ ├───4,483,744 B (04.30%) -- frames
> │ │ │ ├──1,653,552 B (01.59%) ── nsInlineFrame
> │ │ │ ├──1,415,760 B (01.36%) ── nsTextFrame
> │ │ │ ├────431,376 B (00.41%) ── nsBlockFrame
> │ │ │ ├────340,560 B (00.33%) ── nsHTMLScrollFrame
> │ │ │ ├────302,544 B (00.29%) ── nsContinuingTextFrame
> │ │ │ ├────156,408 B (00.15%) ── nsBulletFrame
> │ │ │ ├─────73,024 B (00.07%) ── nsPlaceholderFrame
> │ │ │ ├─────27,656 B (00.03%) ── sundries
> │ │ │ ├─────23,520 B (00.02%) ── nsTableCellFrame
> │ │ │ ├─────16,704 B (00.02%) ── nsImageFrame
> │ │ │ ├─────15,488 B (00.01%) ── nsTableRowFrame
> │ │ │ ├─────13,776 B (00.01%) ── nsTableColFrame
> │ │ │ └─────13,376 B (00.01%) ── nsTableFrame
> │ │ ├───3,412,192 B (03.28%) -- servo-style-structs
> │ │ │ ├──1,288,224 B (01.24%) ── Display
> │ │ │ ├────742,400 B (00.71%) ── Position
> │ │ │ ├────308,736 B (00.30%) ── Font
> │ │ │ ├────226,512 B (00.22%) ── Background
> │ │ │ ├────218,304 B (00.21%) ── TextReset
> │ │ │ ├────214,896 B (00.21%) ── Text
> │ │ │ ├────130,560 B (00.13%) ── Border
> │ │ │ ├─────81,408 B (00.08%) ── UIReset
> │ │ │ ├─────61,440 B (00.06%) ── Padding
> │ │ │ ├─────38,176 B (00.04%) ── UserInterface
> │ │ │ ├─────29,232 B (00.03%) ── Margin
> │ │ │ ├─────21,824 B (00.02%) ── sundries
> │ │ │ ├─────20,080 B (00.02%) ── Color
> │ │ │ ├─────20,080 B (00.02%) ── Column
> │ │ │ └─────10,320 B (00.01%) ── Effects
> │ │ ├───2,227,680 B (02.14%) -- computed-values
> │ │ │ ├──1,182,928 B (01.14%) ── non-dom
> │ │ │ └──1,044,752 B (01.00%) ── dom
> │ │ ├───1,500,016 B (01.44%) ── text-runs
> │ │ ├─────492,640 B (00.47%) ── line-boxes
> │ │ ├─────326,688 B (00.31%) ── frame-properties
> │ │ ├─────301,760 B (00.29%) ── pres-shell
> │ │ ├──────27,648 B (00.03%) ── pres-contexts
> │ │ └─────────176 B (00.00%) ── style-sets
The 'servo-style-structs' and 'computed-values' sub-trees are new. (Prior to
this patch, ComputedValues under DOM elements were tallied under the the
'dom/element-nodes' sub-tree, and ComputedValues not under DOM element were
ignored.) 'servo-style-structs/sundries' aggregates all the style structs that
are smaller than 8 KiB.
Other notable things done by the patch are as follows.
- It significantly changes the signatures of the methods measuring nsINode and
its subclasses, in order to handle the tallying of style structs separately
from element-nodes. Likewise for nsIFrame.
- It renames the 'layout/style-structs' sub-tree as
'layout/gecko-style-structs', to clearly distinguish it from the new
'layout/servo-style-structs' sub-tree.
- It adds some FFI functions to access various Rust-side data structures from
C++ code.
- There is a nasty hack used twice to measure Arcs, by stepping backwards from
an interior pointer to a base pointer. It works, but I want to replace it
with something better eventually. The "XXX WARNING" comments have details.
- It makes DMD print a line to the console if it sees a pointer it doesn't
recognise. This is useful for detecting when we are measuring an interior
pointer instead of a base pointer, which is bad but easy to do when Arcs are
involved.
- It removes the Rust code for measuring CVs, because it's now all done on the
C++ side.
MozReview-Commit-ID: BKebACLKtCi
--HG--
extra : rebase_source : 4d9a8c6b198a0ff025b811759a6bfa9f33a260ba
<!-- Please describe your changes on the following line: -->
See https://bugzilla.mozilla.org/show_bug.cgi?id=1387956.
---
<!-- 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
- [ ] These changes fix #__ (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because the tests are in Gecko.
<!-- 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: 0eabba3c6fa232fd732eb2127f8fe285efd04288
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : b7934ee159cccbbd1908828b700c4ff5c8fda5a4
This new trait merges the former `Animatable` methods `compute_distance` and `compute_squared_distance`.
Source-Repo: https://github.com/servo/servo
Source-Revision: 60c44b072c12d65d70649391631dd28f1d939b65
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 9ed43b92d954d6fd6248f8e39a194bb0488957fd