Commit Graph

704894 Commits

Author SHA1 Message Date
Lee Salzman
f9b1f690e4 Bug 1634447 - allow SWGL shaders to work with and without perspective. r=jrmuizel
Based on ideas discussed to solve bug 1633912, this patch implements allowing each shader to switch between no-perspective and perspective on per-primitive based on whether or not the primitive's W coordinates all match. This should be a sufficient stop-gap for now to unblock testing and development. Performance and memory usage costs of this approach will need to be evaluated before we decide whether to keep it long term.

Differential Revision: https://phabricator.services.mozilla.com/D73298
2020-05-01 00:32:55 +00:00
Lee Salzman
9873811aca Bug 1633953 - refactor draw_quad_spans edge stepping to make it easier to read. r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D73041
2020-05-01 00:32:38 +00:00
Lee Salzman
8d59795c6c Bug 1633953 - check for duplicate vertices in SWGL quad rendering. r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D72989
2020-05-01 00:32:20 +00:00
Andrew Erickson
b8a2dedab4 Bug 1634226: update host-utils r=gbrown
Differential Revision: https://phabricator.services.mozilla.com/D73183
2020-04-30 23:09:49 +00:00
Perry Jiang
1ad4e039d4 Bug 1622451 - minimize stream copying across IPC boundaries r=asuth,baku
Initially, IPCInternal{Request,Response} had contained IPCStreams which would
result in unecessary copying when sending the objects over IPC. The patch
makes these streams either:

1) ParentToParentStream (just a UUID)
2) ParentToChildStream (a PIPCBlobInputStream actor, acting as a handle)
3) ChildToParentStream (a real IPCStream)

These three types are union-ed together by the BodyStreamVariant IPDL structure.
This structure replaces the IPCStream members in IPCInternal{Request,Response}
so that, depending on the particular IPDL protocol, we can avoid cloning streams
and just pass handles/IDs instead.

As a side effect, this makes file-backed Response objects cloneable. Initially,
these Responses would be backed by an nsFileInputStream, which is not cloneable
outside the parent process. They are now backed by IPCBlobInputStreams, which
are cloneable.

One thing that's not really satisfactory (IMO), is the manual management of
IPCBlobInputStreamStorage so that no streams are leaked, e.g. if we store a
stream in the IPCBlobInputStreamStorage but fail to send an IPC message and
therefore fail to remove the stream from storage on the other side of the IPC
boundary (only parent-to-parent in this case).

Differential Revision: https://phabricator.services.mozilla.com/D73173
2020-04-30 23:52:54 +00:00
Shane Caraveo
0b1ab06c29 Bug 557710 fix precedence handling with addons installed to multiple locations r=rhelmer,aswan
This fixes and verifies precedence handling where system and builtin addons are updated in higher or lower precedence addon locations than other existing addons.

Differential Revision: https://phabricator.services.mozilla.com/D70060
2020-04-30 23:26:05 +00:00
Brad Werth
4ae0e63f68 Bug 1598145 Part 3: Add a test of changed meta viewport tags. r=hiro
This test checks several replaced meta viewport tags, exercising the code in
MobileViewportManager that changes resolution to maintain the proportional
amount of content visible in the display area as the viewport size changes.
It also checks the shrink-to-fit behavior of pages with user-scalable=no.

Differential Revision: https://phabricator.services.mozilla.com/D72762
2020-04-30 23:25:53 +00:00
Brad Werth
c59bae07f0 Bug 1598145 Part 2: Make some more RDM test functions await reflow. r=mtigley,hiro
To reduce intermittents in RDM tests, setTouchAndMetaViewportSupport and
spawnViewportTask now await reflow before resolving. Additionally an awaited
reflow in setViewportSizeAndAwaitReflow was changed to use the standard
method.

Differential Revision: https://phabricator.services.mozilla.com/D72969
2020-04-30 23:25:53 +00:00
Brad Werth
fb1e4b36af Bug 1598145 Part 1: For user-scalable=no, force min and max zoom to match initial zoom, add WPT. r=hiro
This provides web compatability with Chrome's interpretation of the spec at
https://drafts.csswg.org/css-device-adapt/#user-zoom-desc. This changes makes
us treat "the user cannot interactively change the zoom factor" as inclusive
of ANY method of the user agent changing zoom levels, regardless of whether or
not the user initiated an action.

So, in addition to preventing things like double-tap-to-zoom and pinch-zoom,
this change prevents zoom changes to fit all content into the viewport, or to
maintain visible content proportionality if the viewport is resized dynamically.

This also adds an assert to cases where Document::GetViewportInfo returns a
viewport with a non-positive scale factor that it also sets the auto scale
flag.

This also adds a tentative web-platform test.

Differential Revision: https://phabricator.services.mozilla.com/D72004
2020-04-30 23:25:53 +00:00
Mats Palmgren
fa99004b91 Bug 1633720 - [css-grid-2] Adjust the grid area stored in the Subgrid property as well for removed 'auto-fit' tracks in the parent. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D73007
2020-04-30 11:34:20 +00:00
Gerald Squelart
d6e98da86d Bug 1634234 - Only allow powers of 2 for buffer size in about:profiling - r=gregtatum
Display the buffer size as powers of 2, using binary-friendly units (e.g., 64MiB).
Presets have been adjusted to powers of 2.

Note that the profiler still uses this number as maximum per process, but this will change when bug 1632750 lands.

Differential Revision: https://phabricator.services.mozilla.com/D73213
2020-04-30 23:21:03 +00:00
Gerald Squelart
983fefb005 Bug 1634216 - PROFILE_ENTRY_SIZE = 8, as expected by the Gecko Profiler - r=gregtatum
Differential Revision: https://phabricator.services.mozilla.com/D73174
2020-04-30 23:20:43 +00:00
Edwin Takahashi
e1fc47fa66 Bug 1631990 - additional filters on mach try selectors r=jmaher
Changes:

Add several build types to the blacklist, so that for `try fuzzy/try chooser` users, these will not show unless `--full` is applied. For `try syntax` users, these will become non-schedulable.

Differential Revision: https://phabricator.services.mozilla.com/D72068
2020-04-30 22:55:50 +00:00
Dana Keeler
ab4256c574 Bug 1633879 - check for smart card changes at most once every 3 seconds r=kjacobs
Differential Revision: https://phabricator.services.mozilla.com/D73357
2020-04-30 22:41:06 +00:00
David Parks
cbf4e1a5cc Bug 1621762: Part 7 - Add IpdlQueue actor traits to WebGLParent/WebGLChild r=jgilbert,jld
Adds IpdlQueue capability to PWebGL actors.  The WebGLChild, used in content processes, implements SyncProducerActor and AsyncConsumerActor because it sends (sync and async) messages and receives responses to them that it reads as async messages.  The WebGLParent, used in the compositor process, is a SyncConsumerActor and AsyncProducerActor for dual reasons.

Differential Revision: https://phabricator.services.mozilla.com/D68264
2020-04-30 22:24:44 +00:00
David Parks
180f310d81 Bug 1621762: Part 6 - Add and define IpdlQueue for WebGL IPC r=jgilbert
The IpdlQueue (de)serializes types into arrays that are then passed to another process via IPDL messages.  This means much less bloat than generating IPDL routines for each of the commands we send with WebGL.  This IPDL queue is fairly basic -- it simply sends "async" commands through an async IPDL message and sync commands through a sync message.  Future extensions, such as a facility for buffering async messages to be sent in bulk, are planned.
The IpdlQueue uses an existing actor to send messages.  That actor should derive from one of the provided base classes and implement any needed IPDL message.  For example, if the actor is used as the comsumer for sync messages then it should subclass SyncConsumerActor and should Recv (via IPDL) the ExchangeIpdlQueueData message -- the handler method for which is defined in the SyncProducerActor base class.

Differential Revision: https://phabricator.services.mozilla.com/D68263
2020-04-30 22:24:00 +00:00
David Parks
b18b3bfd97 Bug 1621762: Part 5 - Change PWebGL alloc+constructor to Initialize message r=jgilbert,jld
We need to separate WebGL actor construction and initialization since IpdlQueue initialization needs the actor to already exist.

Differential Revision: https://phabricator.services.mozilla.com/D68262
2020-04-30 22:23:48 +00:00
David Parks
7ac7bc9be6 Bug 1621762: Part 4 - Move some code from ProducerConsumerQueue.h to QueueParamTraits.h r=jgilbert
Move QueueParamTraits, which are common between PCQ and IpdlQueue, to a file they both include.  This also changes the namespace of a handful of the classes, like the Marshaller.

Differential Revision: https://phabricator.services.mozilla.com/D68260
2020-04-30 22:23:10 +00:00
David Parks
8bd91e6a36 Bug 1621762: Part 3 - Make some classes generic to support multiple remote WebGL implementations r=jgilbert
* Templatize ProducerView/ConsumerView/(Sync)CommandSource/(Sync)CommandSink to allow both Pcq and Ipdl versions, as the client code is identical.
* Rename Producer/Consumer -> PcqProducer/PcqConsumer.

Differential Revision: https://phabricator.services.mozilla.com/D68259
2020-04-30 22:23:02 +00:00
David Parks
fa401253a4 Bug 1621762 - Part 2: Refactor WebGL MethodDispatcher code used in remoting r=jgilbert
* Remove CommandSink from WebGLMethodDispatcher.  The parameter is unneeded.
* Make MethodDispatcher code simpler.  This removes a layer of complexity (CommandDispatchDriver) involved in finding the correct method for a given ID number.
* Require WebGL methods whose signatures don't allow them to be remoted to directly call on the host object.  They are: ReadPixels, GetVRFrame, GetInternalFormatParameter, GetBufferSubData, GetLinkResult and TexImage.
* Fix a bunch of compilation issues with busted PcqParamTraits.
* implement PcqParamTraits for some missing types

Differential Revision: https://phabricator.services.mozilla.com/D68257
2020-04-30 22:22:52 +00:00
David Parks
ac84c81927 Bug 1621762 - Part 1: Basic refactoring of ProducerConsumerQueue & CommandQueue r=jgilbert
A lot of simple changes to prepare for later patches in the series:

* PcqCommand -> QueueCommand, PcqStatus -> QueueStatus, PcqParamTraits -> QueueParamTraits
* Consolidate BasicSink/Source into CommandSink/Source
* SyncCommandSource::mConsumer -> mResponseSink, SyncCommandSink::mProducer -> mResponseSource, CommandSource::mProducer -> mSource, CommandSink::mConsumer -> mSink
* Rename WebGLPcqParamTraits.h to WebGLQueueParamTraits.h
* ProducerConsumerQueue struct -> class.
* ProducerConsumerQueue::mProducer/mConsumer access -> ProducerConsumerQueue::TakeProducer/TakeConsumer
* Rename QueueStatus enum elements to follow style convention.
* Rename Status() to GetStatus() in ProducerView and ConsumerView to appease Linux.
* Rename CommandResult enum values to fit convention (and avoid Linux conflict with Success).

Differential Revision: https://phabricator.services.mozilla.com/D68256
2020-04-30 22:21:45 +00:00
Liang-Heng Chen
16a940c040 Bug 1634303 - make test support BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN; r=johannh
Differential Revision: https://phabricator.services.mozilla.com/D73257
2020-04-30 21:40:02 +00:00
Toshihito Kikuchi
fae0df7eaf Bug 1633718 - Make sure not to call OpenThemeData if it failed before. r=mstange
As bug 1544435, we blocked wbload.dll from being loaded in content processes.
Because that modules is injected via `user32!RegisterUserApiHook` and Windows
keeps trying to load hooking modules even if the previous attempt has failed,
blocking wbload.dll caused repetitive loading attempts in the tab process,
resulting in bad rendering performance.

This patch is to mitigate that performance issue by not calling `OpenThemeData`,
which is one of the entrypoints triggering user api hook, if the previous call
has failed.  With this patch, performance is still slower than with the default
theme.  We will seek out a long-term solution to solve the issue.

Differential Revision: https://phabricator.services.mozilla.com/D73344
2020-04-30 21:28:21 +00:00
Morgan Reschenberg
1c82fd0b4b Bug 1624954: query attribute string for aria-haspopup instead of relying on flag alone. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D70264
2020-04-30 21:38:45 +00:00
Morgan Reschenberg
b499462d93 Bug 1624954: Send state-change event when aria-haspopup value is changed to allow for caching. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D71221
2020-04-30 21:38:33 +00:00
Mike Hommey
71ccad7a1b Bug 1634187 - Turn xpcom/idl-parser/xpidl into a proper python 3-ready module. r=rstewart
Differential Revision: https://phabricator.services.mozilla.com/D73151
2020-04-30 21:49:10 +00:00
championshuttler
6c014fbaf2 Bug 1634374 - Rename the doc title from Mozilla to Firefox in directory overview docs.r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D73266
2020-04-30 18:39:36 +00:00
Mike Hommey
6c89f2aacb Bug 1633969 - Add bug 1298559 to .{hg-annotate,git-blame}-ignore-revs. r=sylvestre
Differential Revision: https://phabricator.services.mozilla.com/D73223
2020-04-30 12:54:10 +00:00
Mike Hommey
f8b4d7bd33 Bug 1633969 - Refresh .git-blame-ignore-revs. r=sylvestre
It was generated by mixing every commit with "ignore-this-changeset" and
everything listed in .hg-annotate-ignore-revs, in topologic order.

The format was changed to:

  ```
  # hg-sha1 - author - subject
  cinnabar-sha1 # cinnabar
  gecko-dev-sha1 # gecko-dev
  ```

The comment line corresponds to entries in .hg-annotate-ignore-revs (or
what they would look like for commits with "ignore-this-changeset").

Differential Revision: https://phabricator.services.mozilla.com/D73210
2020-04-30 16:38:19 +00:00
Mike Hommey
59a05d8e5d Bug 1633969 - Adjust messages in .hg-annotate-ignore-revs to match what is actually in the changesets. r=sylvestre
Differential Revision: https://phabricator.services.mozilla.com/D73209
2020-04-30 12:55:39 +00:00
Mike Hommey
f39f000c88 Bug 1633969 - Add a changeset marked as "skip-blame" to .hg-annotate-ignore-revs. r=sylvestre
Differential Revision: https://phabricator.services.mozilla.com/D73208
2020-04-30 16:37:44 +00:00
Mike Hommey
7313119a23 Bug 1633969 - Reorder .hg-annotate-ignore-revs by topologic order. r=sylvestre
Differential Revision: https://phabricator.services.mozilla.com/D73207
2020-04-30 16:37:31 +00:00
Mike Hommey
3f27580a43 Bug 1633969 - Add changesets that appear in .git-blame-ignore-revs but aren't already marked as ignored for mercurial. r=sylvestre
Differential Revision: https://phabricator.services.mozilla.com/D73206
2020-04-30 16:37:19 +00:00
Mike Hommey
f4b39b1077 Bug 1633969 - Fix the ignore changeset for bug 1563300. r=sylvestre
Differential Revision: https://phabricator.services.mozilla.com/D73205
2020-04-30 16:37:06 +00:00
Mike Hommey
5e4961624f Bug 1633969 - Remove mercurial changesets that are marked "ignore-this-changeset". r=sylvestre
Per its definition in v-c-t, hg smart-annotate skips them in addition to
the contents of the .hg-annotate-ignore-revs file, so they don't need to
appear in the file.

Differential Revision: https://phabricator.services.mozilla.com/D73204
2020-04-30 16:36:56 +00:00
Markus Stange
74091d0878 Bug 1634547 - Remove an unnecessary (and sometimes incorrect) clip. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D73346
2020-04-30 20:39:53 +00:00
Ted Campbell
02b8648f33 Bug 1634519 - Removing uses of FunctionBox::function. r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D73336
2020-04-30 20:25:56 +00:00
Arthur Iakab
0dd3332a55 Backed out 4 changesets (bug 1622384) for causing build bustages on JsepSession.h
CLOSED TREE

Backed out changeset d339ce87c2ef (bug 1622384)
Backed out changeset 13101fc544bc (bug 1622384)
Backed out changeset aad4412b43e2 (bug 1622384)
Backed out changeset eba5d05e59b2 (bug 1622384)
2020-05-01 00:03:03 +03:00
Emma Malysz
b7c5fd62b7 Bug 1634026, lazy load panic button panel by storing in HTML template r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D73106
2020-04-30 20:34:35 +00:00
Byron Campen [:bwc]
2f19c48e08 Bug 1622384: Fix this test to not expect onn, and add a slightly different test that should expect onn at the very end. r=jib
Differential Revision: https://phabricator.services.mozilla.com/D70450
2020-04-29 18:44:15 +00:00
Byron Campen [:bwc]
47eb88729c Bug 1622384: Some wpt cleanup while I'm in here. r=jib
Differential Revision: https://phabricator.services.mozilla.com/D70449
2020-04-29 02:48:22 +00:00
Byron Campen [:bwc]
d2457e5246 Bug 1622384: Implement stable indexing for JSEP transceivers. r=mjf
JSEP transceivers were previously held in a vector, in the order that they were
created. However, these could be removed, which meant that the indexing was not
stable. Under most circumstances this did not matter, however there was a
wrinkle with implicit rollback in repeated sRD. Re-applying a remote offer that
had created a transceiver would destroy that transceiver, and create a new one
to replace it. However, JS was not informed, because to PeerConnectionImpl it
looked like nothing had changed. Now, transceivers are indexed in a stable way,
which allows this bug to be fixed, and makes things a little less confusing.

Differential Revision: https://phabricator.services.mozilla.com/D70400
2020-04-29 02:48:07 +00:00
Byron Campen [:bwc]
a82fa5316d Bug 1622384: Test-case for bug. r=jib
Differential Revision: https://phabricator.services.mozilla.com/D70399
2020-04-29 19:01:11 +00:00
Csoregi Natalia
86e79fe5d2 Backed out changeset d91e35044576 (bug 1630066) for failures on test_ext_sendmessage_reply2.html. CLOSED TREE 2020-04-30 23:40:17 +03:00
Csoregi Natalia
5ca61e2a3c Backed out 2 changesets (bug 1624954) for eslint failure on browser_aria_haspopup.js. CLOSED TREE
Backed out changeset 2a3f592412a2 (bug 1624954)
Backed out changeset 74085e028726 (bug 1624954)
2020-04-30 23:37:28 +03:00
Morgan Reschenberg
5636f6c7df Bug 1624954: query attribute string for aria-haspopup instead of relying on flag alone. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D70264
2020-04-30 20:12:45 +00:00
Morgan Reschenberg
13bb4618ce Bug 1624954: Send state-change event when aria-haspopup value is changed to allow for caching. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D71221
2020-04-30 20:12:29 +00:00
Glenn Watson
88eb2e5226 Bug 1632705 - Part 5 - Port some more clips to explicit rect API. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D73179
2020-04-30 12:08:54 +00:00
Tom Schuster
0ac6524608 Bug 1633145 - Bustage fix for jsglue.cpp
Differential Revision: https://phabricator.services.mozilla.com/D73343
2020-04-30 20:03:58 +00:00
Toshihito Kikuchi
e83bcb5130 Bug 1630281 - Cache the executable's IAT for ntdll.dll before COM initialization. r=mhowell
When the browser process starts a sandbox process, we copy the executable's IAT
for ntdll.dll into the new process to prevent DLL injection via IAT tampering as
the launcher process does.  However, if IAT has been modified by a module injected
via `SetWindowHookEx`, the browser process cannot copy IAT because a modified IAT
is invalid in a different process, failing to start any sandbox processes.

The proposed fix is to cache IAT before COM initialization which may load
modules via `SetWindowHookEx` for the first time in the process.

Differential Revision: https://phabricator.services.mozilla.com/D73303
2020-04-30 18:26:18 +00:00