Граф коммитов

81 Коммитов

Автор SHA1 Сообщение Дата
Boris Zbarsky c878a8bb26 Bug 1619112 part 2. Pass char literals instead of char16_t literals into ErrorResult throwing methods. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D65538

--HG--
extra : moz-landing-system : lando
2020-03-06 21:04:58 +00:00
Hiroyuki Ikezoe 367473435d Bug 1619857 - Early return from GetOopIframeMetrics in cases where either the presshell or the docshell is being destroyed. r=emilio
I gave up writing crash tests for this since it's quite hard to destroy
an OOP iframe during processing IntersectionObserver's update step in the
OOP process.

Differential Revision: https://phabricator.services.mozilla.com/D65417

--HG--
extra : moz-landing-system : lando
2020-03-05 01:56:48 +00:00
Emilio Cobos Álvarez 6974cefbeb Bug 1619858 - Minimal cleanup of the image lazy loading code. r=hiro
We don't really need to wait till we have an inner window, really.

The mOwner is only used to create a reflector, and we don't even want to expose
this observer to script, so we could leave it null if we wanted.

Differential Revision: https://phabricator.services.mozilla.com/D65369

--HG--
extra : moz-landing-system : lando
2020-03-04 21:34:20 +00:00
Boris Zbarsky 9d69c2d87d Bug 1617972. Add a table that stores the exception type of DOM errors. r=peterv
The callsite in DOMIntersectionObserver did end up throwing a RangeError, as the
spec requires, because in the end we just used the exception code to determine
the kind of exception to throw, but was misleading about what it was doing.

Differential Revision: https://phabricator.services.mozilla.com/D64175

--HG--
extra : moz-landing-system : lando
2020-03-03 15:47:22 +00:00
Frederic Wang f70d494fe7 Bug 1617154 - [intersection-observer] Accept a Document as an explicit root. r=emilio,bzbarsky
This patch allows users to specify a Document as an explicit root of an
intersection observer. For rationale, see the intent-to thread:
https://groups.google.com/forum/#!topic/mozilla.dev.platform/64nDLTAZGzY

It is implemented under a preference option enabled in Nightly:
dom.IntersectionObserverExplicitDocumentRoot.enabled
When disabled, the current TypeError exception is preserved so that
people can continue to feature detect the support.

The enhancement is tested by and enabled for the following test:
https://w3c-test.org/intersection-observer/document-scrolling-element-root.html

Differential Revision: https://phabricator.services.mozilla.com/D63766

--HG--
extra : moz-landing-system : lando
2020-03-03 12:25:30 +00:00
Emilio Cobos Álvarez b6a0b062af Bug 1618601 - Make lazy-load margin configurable. r=hiro
But keep it being zero by default.

Depends on D64611

Differential Revision: https://phabricator.services.mozilla.com/D64612

--HG--
extra : moz-landing-system : lando
2020-02-27 21:14:43 +00:00
Emilio Cobos Álvarez 7dbe3f32c3 Bug 1615609 - Rename nsRefreshDriver::IntersectionObservationAdded. r=hiro
The existing name is wrong since recently.

Differential Revision: https://phabricator.services.mozilla.com/D62922

--HG--
extra : moz-landing-system : lando
2020-02-15 07:23:51 +00:00
Mihai Alexandru Michis 7a12252825 Backed out changeset 93c88e36d8ea (bug 1615609) for causing bustages in DOMIntersectionObserver.cpp
CLOSED TREE
2020-02-15 03:17:43 +02:00
Emilio Cobos Álvarez bb6f2791e3 Bug 1615609 - Rename nsRefreshDriver::IntersectionObservationAdded. r=hiro
The existing name is wrong since recently.

Differential Revision: https://phabricator.services.mozilla.com/D62922

--HG--
extra : moz-landing-system : lando
2020-02-14 21:16:06 +00:00
Hiroyuki Ikezoe 8398acfafe Bug 1542784 - Implement lazy loading for images. r=emilio,hsivonen
Though with this initial implementation, we do create an IntersectionObserver
only for the root document in each processes, once we found issues on this
model, we can create an IntersectionObserver in each _document_.

Depends on D61437

Differential Revision: https://phabricator.services.mozilla.com/D61438

--HG--
extra : moz-landing-system : lando
2020-02-12 21:31:48 +00:00
Hiroyuki Ikezoe 878e272a90 Bug 1542784 - Make DOMIntersectionObserver::mCallback Variant. r=emilio,bzbarsky
So that it can accept a callback function implemented in C++ for lazy-loading.

Depends on D61435

Differential Revision: https://phabricator.services.mozilla.com/D61436

--HG--
extra : moz-landing-system : lando
2020-02-12 21:29:19 +00:00
Hiroyuki Ikezoe b9fb72c857 Bug 1599795 - Make IntersectionObserver work in fission world. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D61938

--HG--
extra : moz-landing-system : lando
2020-02-11 03:59:14 +00:00
Ting-Yu Lin c81d3e5f5f Bug 1610670 - Add AllPhysicalSides() to support range-based for loops. r=mats
This patch is generated via:
1. Manually modify gfx/2d/Types.h
2. Run the following script and clang-format.

```

function rename() {
    echo "Renaming $1 to $2"
    rg -l "$1" | xargs sed -i -E -e s/"$1"/"$2"/g
}

rename "NS_FOR_CSS_SIDES\(side\)" "for (const auto side : mozilla::AllPhysicalSides())"
rename "NS_FOR_CSS_SIDES\(s\)" "for (const auto s : mozilla::AllPhysicalSides())"
rename "NS_FOR_CSS_SIDES\(i\)" "for (const auto i : mozilla::AllPhysicalSides())"
rename "NS_FOR_CSS_SIDES\(ix\)" "for (const auto ix : mozilla::AllPhysicalSides())"
```

Differential Revision: https://phabricator.services.mozilla.com/D61250

--HG--
extra : moz-landing-system : lando
2020-02-04 03:28:27 +00:00
Boris Zbarsky 5cd4320f78 Bug 1612007. Add convenience methods for throwing various spec-defined DOMExceptions on ErrorResult. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D61202

--HG--
extra : moz-landing-system : lando
2020-01-29 09:09:11 +00:00
Emilio Cobos Álvarez 2261c719d0 Bug 1608931 - Ensure we tick the refresh driver at least once after calling IntersectionObserver.observe. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D60015

--HG--
extra : moz-landing-system : lando
2020-01-21 23:21:32 +00:00
Emilio Cobos Álvarez 3c12d374bc Bug 1600362 - Cleanup IntersectionObserver. r=smaug
Initially this was going to be a simple cleanup: Remove some useless namespaces
here and there and so on, remove `using` statements from the header and so on.

But unfortunately, DOMIntersectionObserver.h (which is included in Element.h,
unnecessarily) ended up exposing `Element` unnamespaced to a lot of code, so I
had to fix that.

Differential Revision: https://phabricator.services.mozilla.com/D55316

--HG--
extra : moz-landing-system : lando
2019-11-29 20:39:36 +00:00
Emilio Cobos Álvarez edaf23ca5b Bug 1551716 - Factor out some intersection observer code, and add spec quotes. r=mstange
This would've made my life a lot easier. There's a couple things that don't
match the spec that I've left as comments.

Differential Revision: https://phabricator.services.mozilla.com/D31151

--HG--
extra : moz-landing-system : lando
2019-11-22 22:36:27 +00:00
Geoff Lankow 3e41bcb779 Bug 1580462 - Follow-up: include a missing header file. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D50435

--HG--
extra : moz-landing-system : lando
2019-10-24 07:32:23 +00:00
Boris Zbarsky 417c6749c3 Bug 1581276. Require a message arg to ThrowDOMException. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D46250

--HG--
extra : moz-landing-system : lando
2019-09-20 02:17:01 +00:00
Hiroyuki Ikezoe 42cf2e1cb4 Bug 1581974 - Change DOMIntersectionObserver::Update to use the BrowsingContext parent chain. r=jwatt
Using the BrowsingUsing parent chain is able to avoid 1) obtaining a wrong
root in cross-process documents and also avoid 2) not being able to obtain
the proper root in same-origin documents in the case where there is a
cross-process document in between the top level document and the same-origin
documents.

dom/base/test/test_intersectionobservers.html is a test of case 1).
testing/web-platform/tests/intersection-observer/same-origin-grand-child-iframe.sub.html
is a test case of case 2).

Differential Revision: https://phabricator.services.mozilla.com/D46432

--HG--
extra : moz-landing-system : lando
2019-09-20 04:59:56 +00:00
Emilio Cobos Álvarez 88b5840556 Bug 1553673 - Round intersection observer percentage margins with NSToCoordRound rather than the default rounder. r=dholbert
The default rounder floors percentages instead of rounding, which can cause
subtle issues.

This is generally desirable for most lengths, AIUI, so that pages don't cause
undesired overflow when using percentage widths and such, but for the
intersection observer root margin, it can cause some annoyance as the percentage
going negative may cause the root rect to be negatively sized and report no
intersection.

This also seems to match Blink[1], though it goes back to the initial
implementation of IntersectionObserver.rootMargin[2].

[1]: https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/intersection_observer/intersection_geometry.cc?l=52&rcl=8671a050dd117b730bffbad5838f218fcc024845
[2]: c88a8ad4f1

Differential Revision: https://phabricator.services.mozilla.com/D32873

--HG--
extra : moz-landing-system : lando
2019-06-11 19:16:46 +00:00
Emilio Cobos Álvarez bbc403524a Bug 1551716 - Deindent some IntersectionObserver code. r=mstange
Just trying to make it slightly nicer. Probably should get a function to get the
root target document frame.

Will file a bug for fission since I _suspect_ fission is going to do something
about IntersectionObserver.

Depends on D31149

Differential Revision: https://phabricator.services.mozilla.com/D31150

--HG--
extra : moz-landing-system : lando
2019-05-15 17:34:30 +00:00
Emilio Cobos Álvarez 415558991d Bug 1551716 - Use ranged-for loop in DOMIntersectionObserver. r=mstange
There's nothing here that should be mutating us (and if there was we'd be hosed
already given the amount of weak pointers we keep around), so this is nicer.

Depends on D31148

Differential Revision: https://phabricator.services.mozilla.com/D31149

--HG--
extra : moz-landing-system : lando
2019-05-15 17:33:45 +00:00
Emilio Cobos Álvarez 4d7db14635 Bug 1551716 - Simplify the cross-origin check in IntersectionObserver. r=mstange
Should've no behavior change given the spec issue, but it should read nicer.

Differential Revision: https://phabricator.services.mozilla.com/D31148

--HG--
extra : moz-landing-system : lando
2019-05-15 17:32:28 +00:00
Emilio Cobos Álvarez 097c6e63b1 Bug 1505471 - Map intersection observer rects to the right viewport. r=mstange
targetFrame is modified during the intersection computation loop, so it's not
the viewport you want if there are scrollframes around.

The test is the same as iframe-no-root.html but with a wrapping scroller which
triggers this bug.

This code is quite subtle, so will refactor and clean it up in a followup.

Differential Revision: https://phabricator.services.mozilla.com/D31147

--HG--
extra : moz-landing-system : lando
2019-05-15 17:29:33 +00:00
Masayuki Nakano de2d589e58 Bug 1540015 - part 3: Rename Document::GetShell() to Document::GetPresShell() and make it return PresShell* rather than nsIPresShell* r=smaug,emilio
This makes `Document::GetShell()` return `PresShell*` instead of `nsIPresShell`.

Additonally, "shell" is unclear ("docshell" vs. "presshell").  Therefore, this
also renames `Document::GetShell()` to `Document::GetPresShell()`.

Similarly, some other method names of `Document` are also renamed from
`*Shell*` to `*PresShell*`.

Differential Revision: https://phabricator.services.mozilla.com/D25338

--HG--
extra : moz-landing-system : lando
2019-03-29 15:12:47 +00:00
Dorel Luca 5a0fa68b78 Backed out 3 changesets (bug 1540015) for build bustage. CLOSED TREE
Backed out changeset 7b71c9da0214 (bug 1540015)
Backed out changeset 5723ddbc5c44 (bug 1540015)
Backed out changeset 9561d2c36fa5 (bug 1540015)
2019-03-29 16:14:26 +02:00
Masayuki Nakano 9273f25ce2 Bug 1540015 - part 3: Rename Document::GetShell() to Document::GetPresShell() and make it return PresShell* rather than nsIPresShell* r=smaug,emilio
This makes `Document::GetShell()` return `PresShell*` instead of `nsIPresShell`.

Additonally, "shell" is unclear ("docshell" vs. "presshell").  Therefore, this
also renames `Document::GetShell()` to `Document::GetPresShell()`.

Similarly, some other method names of `Document` are also renamed from
`*Shell*` to `*PresShell*`.

Differential Revision: https://phabricator.services.mozilla.com/D25338

--HG--
extra : moz-landing-system : lando
2019-03-29 13:09:26 +00:00
Boris Zbarsky 1c3e10afc5 Bug 1535384 part 1. Eliminate some easy cases of MOZ_CAN_RUN_SCRIPT_BOUNDARY on webidl callbacks. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D23771

--HG--
extra : moz-landing-system : lando
2019-03-19 05:24:39 +00:00
Emilio Cobos Álvarez 8101ae2ea8 Bug 1523071 - Use Rust lengths for margin / padding / inset. r=jwatt
Also for the intersection observer root margin, since it was easier to fix it
up and clean it up than not doing it.

This is the first big step to get rid of nscoord. It duplicates a bit of logic
in nsLayoutUtils since for now max/min-width/height are still represented with
nsStyleCoord, but I think I prefer to land this incrementally.

I didn't add helpers for the physical accessors of the style rect sides that
nsStyleSides has (top/bottom/left/right) since I think we generally should
encourage the logical versions, but let me know if you want me to do that.

Differential Revision: https://phabricator.services.mozilla.com/D17739
2019-02-10 04:11:58 +01:00
Emilio Cobos Álvarez d2ed260822 Bug 1517241 - Rename nsIDocument to mozilla::dom::Document. r=smaug
Summary: Really sorry for the size of the patch. It's mostly automatic
s/nsIDocument/Document/ but I had to fix up in a bunch of places manually to
add the right namespacing and such.

Overall it's not a very interesting patch I think.

nsDocument.cpp turns into Document.cpp, nsIDocument.h into Document.h and
nsIDocumentInlines.h into DocumentInlines.h.

I also changed a bunch of nsCOMPtr usage to RefPtr, but not all of it.

While fixing up some of the bits I also removed some unneeded OwnerDoc() null
checks and such, but I didn't do anything riskier than that.
2019-01-03 17:48:33 +01:00
Sylvestre Ledru 265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Emilio Cobos Álvarez f8233b4454 Bug 1456471: Remove nsCSSParser.h. r=xidorn
MozReview-Commit-ID: 4qa7llzCXeR
2018-04-25 10:38:37 +02:00
Blake Kaplan 543e672dd4 Bug 1391154 - Handle edge cases around the borders of IntersectionObservers more consistently. r=dholbert
The old code would ignore mThresholds if we happened to update when the
observed element was edge-adjacent to its root. This could cause spurious
notifications if it happened to run during a CSS transformation. The new code
more closely follows the spec with a slight deviation where the code treats
all values less than the smallest passed-in threshold as equivalent (when
looking at previousIndex). This matches Chrome's implementation and the tests.

MozReview-Commit-ID: 7oAh1EdjMiY

--HG--
extra : rebase_source : 46de4aee9c7da36bd1b41c07fa9b6bbe8ee15dc0
2018-04-10 18:54:01 -07:00
Xidorn Quan 65a9ee4d6a Bug 1448763 part 1 - Make DOMIntersectionObserver use nsStyleSides for mRootMargin, and use Servo code to serialize it. r=emilio
MozReview-Commit-ID: 8RsoLflRtzE

--HG--
extra : rebase_source : 7e9c53dafe473e77087c880ab39e5265638f0f7e
2018-04-05 18:27:33 +10:00
Emilio Cobos Álvarez 8fcda0e92d Bug 1448690: Remove IsStyledByServo. r=xidorn
MozReview-Commit-ID: I3MDbo2Yu7d
2018-03-26 09:39:26 +02:00
Emilio Cobos Álvarez f7522ae728 Bug 1447358: Unifdef the old style system code. r=jwatt
Summary:
This has been automatically generated using:

  http://dotat.at/prog/unifdef/

And:

find $OBJDIR -type f -name '*.h' |
while read FILE; do
  echo "$FILE"
  unifdef -m -DMOZ_STYLO -UMOZ_OLD_STYLE "$FILE";
done

find $OBJDIR -type f -name '*.cpp' |
while read FILE; do
  echo "$FILE"
  unifdef -m -DMOZ_STYLO -UMOZ_OLD_STYLE "$FILE";
done

MozReview-Commit-ID: I4NdKqbMXzJ

Reviewers: jwatt

Bug #: 1447358

Differential Revision: https://phabricator.services.mozilla.com/D779
2018-03-21 10:20:34 +01:00
Dorel Luca f41b03eca9 Backed out changeset 38577c007450 (bug 1424371) for Marionett test failure on testing/marionette/harness/marionette_harness/tests/unit/test_window_maximize.py. CLOSED TREE 2018-02-19 22:15:23 +02:00
Milan Sreckovic 7571df7e7c Bug 1424371: Use BaseRect access methods instead of member variables in dom/ r=qdot
MozReview-Commit-ID: HXWhggOMIEK

--HG--
extra : rebase_source : 9c9eacf80d2b7f78faa82a1549170b98d12cdaa8
2018-02-19 12:56:10 -05:00
Cameron McCormack cc7db5c40c Bug 1430014 - Part 4: #ifdef out unnecessary code when the old style system is not built. r=xidorn
MozReview-Commit-ID: 1FZ9VzjcPzN

--HG--
extra : source : de22d220635f8c059834b76f769d5215ab1a8b5b
2018-02-01 15:04:04 +11:00
Olli Pettay 2acfb90235 Bug 1422092 - Revert the changes made by bug 1399603. r=mrbkap 2017-12-10 14:52:49 -05:00
Cameron McCormack c5a3672a18 Bug 1408305 - Use Servo to parse IntersectionObserver rootMargin values. r=xidorn
MozReview-Commit-ID: 4CIXP73kcf2

--HG--
extra : rebase_source : d9b8bdbf374e98d0f2276be129efd7ae49123498
2017-10-16 18:02:16 +08:00
Tobias Schneider 1e70d2c43e Bug 1406102 - [intersection-observer] Calculate areas using int64_t. r=dholbert
--HG--
extra : rebase_source : 00202f13b33d74bb686a3eb8103543e5a68f88d8
2017-10-09 15:08:41 -07:00
Tobias Schneider ec303fba5c Bug 1399603 - [intersection-observer] Stop observing a target when intersection root is deleted. r=mrbkap
--HG--
extra : rebase_source : 2a24e8f42eb493ce8af1b2321cdec422080cf7d0
2017-10-06 07:39:54 -07:00
Tobias Schneider 0a2233f308 Bug 1401416 - [intersection-observer] Let intersection rect be empty if do_QueryFrame(rootFrame) returns null. r=dholbert
--HG--
extra : rebase_source : c61df51637850211f0c3cbd74fb1ac6c6831cd7e
2017-09-21 12:43:35 -07:00
Tobias Schneider 2b102d3c56 Bug 1399605 - [intersection-observer] Check if target is actually being observed when unobserving. r=mrbkap
--HG--
extra : rebase_source : d3c8c012dba2941b230cdfbf332ab3c77b7a26ef
2017-09-19 10:50:10 -07:00
Milan Sreckovic 8ad3e52a49 Bug 1387514: Upgrade BaseRect (derived classes) width and height direct member variable use to instead use Width()/SetWidth() and Height()/SetHeight() in dom/*. r=overholt
MozReview-Commit-ID: B9YWmM3C1oX

--HG--
extra : rebase_source : d7c27de968295ee13ece8bda23798cb215d60a4b
2017-08-14 08:30:10 -04:00
Brad Werth d073eb9bda Bug 1383296 Part 1: Remove all uses of the nsCSSValue::Serialization enum, now that it no longer has multiple values. r=heycam
MozReview-Commit-ID: n6px5hNHtB

--HG--
extra : rebase_source : 6269a9d52e0282d0391276dc1b9ee26dbde7b985
2017-07-21 17:26:35 -07:00
Tobias Schneider 44b1781d8a Bug 1366371 - Use signed integer for intersection threshold. r=mstange
--HG--
extra : rebase_source : 9ac9144cd74e74b084c284b0e848b3a7dbbe575a
2017-07-26 16:00:58 -07:00
Sylvestre Ledru 4e9cf83ee8 Bug 1378712 - Remove all trailing whitespaces r=Ehsan
MozReview-Commit-ID: Kdz2xtTF9EG

--HG--
extra : rebase_source : 7235b3802f25bab29a8c6ba40a181a722f3df0ce
2017-07-06 14:00:35 +02:00