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

16 Коммитов

Автор SHA1 Сообщение Дата
Daniel Holbert e3c9b94f23 Bug 1590639 part 2: Fix non-unified build issues in layout/base. r=TYLin
Changes here:
- Adding a "dom::" prefix in GeckoMVMContext.cpp (could've also added
  a "using" decl, but I'm just adding a one-off prefix to match "dom::Document"
  usage elsewhere in this file).
- Giving nsLayoutUtils an include for ViewportFrame.h since it uses that type.
- Giving nsPresArena.cpp an include for nsDisplayList.h to provide the
  DisplayListArenaObjectId enum type.

Depends on D50163

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

--HG--
extra : moz-landing-system : lando
2019-10-23 22:10:11 +00:00
Sylvestre Ledru f12b9fa5c3 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-10-06 18:29:55 +00:00
Emilio Cobos Álvarez 161cb16ca8 Bug 1551659 - Remove MVMContext::ResizeEventFlag and related code. r=botond,hiro
D46944 / bug 1583534 is what fixes the root cause of bug 1528052 by not
having the first call to ResizeReflow have a wrong old size of 0x0.

This removes the code that bug introduces to suppress resize events, which
fixes this bug. I think our behavior now is pretty sane.

In particular, consider the test-case:

<!doctype html>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<a href="" target="_blank">Open me in a separate tab</a>
<pre id="log"></pre>
<script>
  // This shouldn't be needed, but otherwise Fenix doesn't show the tooltip on
  // longpress...
  document.querySelector("a").href = location.href;

  function logSize() {
    log.innerText += window.innerWidth + "x" + window.innerHeight + "\n";
  }
  logSize();
  onresize = logSize;
</script>

(Hosted at https://crisal.io/tmp/gecko-mobile-resize.html for convenience)

Right now on trunk, when you click the link from GVE or Fenix, we're only
getting an initial size of 0x0 (which is not great, btw), and only after first
paint we get the real device size, but content doesn't get a resize event.

This is obviously wrong, every time the layout viewport changes we should fire
resize events.

Pages that get opened in new tabs and get refreshed when resized may get an
extra reload with this approach, but this seems not avoidable unless widget sets
the viewport size right in advance (which from discussion with snorp and agi
doesn't seem possible in the general case).

What used to happen is that we were triggering a redundant resize reflow from
the initial paint which didn't update the layout viewport (because the content
viewer and co had the right viewport from the previous navigation).

Now that we optimize those away, I think our behavior should be correct.

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

--HG--
extra : moz-landing-system : lando
2019-09-25 19:35:29 +00:00
Emilio Cobos Álvarez 848d89d65f Bug 1583534 - Further simplify PresShell::ResizeReflow. r=botond
In particular, not let ResizeReflow take the old and new size. Most of the
callers pass dummy values anyway.

Instead, use the old size of the layout viewport. This ensures we fire resize
events only if the layout viewport actually changes.

This is important because the first resize of the mobile viewport manager
after a navigation has an "old size" of 0x0, even though the layout viewport
is initialized on presshell initialization to the right size.

Thus, we fire resize events unnecessarily in that case, which is the root cause
for bug 1528052.

To do this, we need to shuffle a bit of code in nsDocumentViewer that deals with
delayed resizes, to set the visible area _and_ invalidate layout, rather than
setting the visible area and _then_ relying on doing a resize reflow.

Further cleanup is possible, though not required for my android resizing fix, so
will do separately.

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

--HG--
extra : moz-landing-system : lando
2019-09-25 19:12:44 +00:00
Botond Ballo 52a4f25b4b Bug 1573014 - Early-exit ShrinkToDisplaySizeIfNeeded() in reader mode. r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D42967

--HG--
extra : moz-landing-system : lando
2019-08-21 23:33:14 +00:00
Botond Ballo 9d1532ac71 Bug 1575093 - Ensure initial-scale in a meta viewport tag is respected. r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D42949

--HG--
extra : moz-landing-system : lando
2019-08-21 22:00:43 +00:00
Brad Werth c9e9805838 Bug 1523844 Part 2: Make MVMContext::SetResolutionAndScaleTo accept a ResolutionChangeOrigin. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D41631

--HG--
extra : moz-landing-system : lando
2019-08-12 22:22:12 +00:00
Brad Werth be668ed4e1 Bug 1523844 Part 1: Rename ResolutionChangeOrigin::MainThreadRestore in anticipation of adding a related enum. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D41625

--HG--
extra : moz-landing-system : lando
2019-08-12 22:21:51 +00:00
Hiroyuki Ikezoe 901885347c Bug 1562503 - Create GeckoMVMContext and ZoomConstraintsClient only for the root top level document. r=botond
browserElement_ScrollEvent.js is affected by this change. Before this change
the document for iframe mozbrowser was not considered as the root content
document, but after this change, it's considered as the root content document.
Given the nature of iframe mozbrowser, I believe it's the right behavior.

The browser mochitest in this commit fails without this change since
the minimum-scale size is used in the out-of-process iframe so that the visual
viewport size gets 3x bigger than the expected size.

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

--HG--
extra : moz-landing-system : lando
2019-07-08 22:39:31 +00:00
Matt Woodrow 3fc4716479 Bug 1535945 - Don't skip invalidating frames when creating displayports for async scrollable ancestors. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D23816

--HG--
extra : moz-landing-system : lando
2019-05-01 04:23:07 +00:00
Masayuki Nakano 2933c032e7 Bug 1545342 - part 3: Move remaining public enum of nsIPresShell to mozilla namespace in mozilla/PresShellForwards.h and make them enum class r=smaug
This patch moves remaining public `enum` of `nsIPresShell` to `mozilla`
namespace in `mozilla/PresShellForwards.h` and make them `enum class`es.

Additionally, some methods which use the moving `enum`s from `nsIPresShell`
to `PresShell`.

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

--HG--
extra : moz-landing-system : lando
2019-04-25 05:04:23 +00:00
Masayuki Nakano 5932f01d53 Bug 1545342 - part 1: Create mozilla/PresShellForwards.h and move global enums/constants in nsIPresShell.h and mozilla/PresShell.h into the new one r=smaug
This patch creates new header, `mozilla/PresShellForwards.h`.  It should have
all forward declarations of global class/struct in `nsIPresShell.h` and
`mozilla/PresShell.h`.

Additionally, this moves all `enum`s and `constant`s in them into the new file
with changing them to `enum class`es.

This will make other headers which require only specific types in the header
files not include them.

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

--HG--
extra : moz-landing-system : lando
2019-04-25 05:02:20 +00:00
Hiroyuki Ikezoe 8bd0453a43 Bug 1528052 - Suppress resize events until the initial paint has finished on mobile. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D28172

--HG--
extra : moz-landing-system : lando
2019-04-23 04:14:55 +00:00
Masayuki Nakano f5737567dd Bug 1544343 - part 3: Make layout use mozilla::PresShell instead of nsIPresShell as far as possible r=emilio
This patch changes remaining things under `layout/`.  However, there are some
places which still need to use `nsIPresShell`.  That will be fixed in a
follow up bug.

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

--HG--
extra : moz-landing-system : lando
2019-04-16 07:25:10 +00:00
Masayuki Nakano 40f02a6603 Bug 1543315 - part 5: Mark ResizeReflowIgnoreOverride() as MOZ_CAN_RUN_SCRIPT r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D27221

--HG--
extra : moz-landing-system : lando
2019-04-13 12:40:10 +00:00
Botond Ballo fbb1036cee Bug 1531962 - Extract an MVMContext interface used by MobileViewportManager to interact with its surroundings. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D26246

--HG--
extra : moz-landing-system : lando
2019-04-04 22:11:40 +00:00