Python 3 doesn't allow strings to be written to files opened in binary mode
(it requires a byte array in that case). As it happens, we should really be
opening these Eclipse config files in text mode since it seems on Windows the
files use Windows line ending characters. So rather than change the strings
to byte arrays, this patch simply changes the code to open the files in text
mode.
Differential Revision: https://phabricator.services.mozilla.com/D74318
The FunctionBoxes are added to head of the trace-list as they are created in
source order. This means the final list is the reverse of that and inner
functions are seen before their parent. This is exactly what we need for the
publishDeferredFunctions method.
Differential Revision: https://phabricator.services.mozilla.com/D74313
This also unifies the list between the syntax- and full-parser which is
sensible since the allocations are on a shared LifoAlloc.
Differential Revision: https://phabricator.services.mozilla.com/D74311
This data can instead be accessed from CompilationInfo. As well, the only use
is to allocate lazy BaseScripts and that code is being moved outside the
Parser.
Differential Revision: https://phabricator.services.mozilla.com/D74302
This change simply changes line endings to make diffing easier with updates from OpenVR, which have Unix line endings.
Further, .clang-format-ignore, does not seem to work for wildcard to match a directory and subdirectory, so all files are listed individually.
Differential Revision: https://phabricator.services.mozilla.com/D74100
When handling bug 1632429, I found some tests that worked on Python 2, but not Python 3.
They were marked accordingly as "expected failures". However, my system version of Python
is 3.8, while CI (and a non-trivial number of devs, probably) use 3.6.
Some of these tests marked as xfail were actually still working on versions of Python until 3.8.
The failure of this test was due to a change in default tarfile format. Explicitly setting this
format makes the tests pass in all relevant python versions.
Differential Revision: https://phabricator.services.mozilla.com/D74337
Modify PresState's string variant to also store whether the last change was
interactive, and preserve that property when saving and restoring state.
Differential Revision: https://phabricator.services.mozilla.com/D73920
Previously we were blocking older Windows and only allowing on Windows
10. This switches us to relying on the blocking to prevent WebRender
from riding the trains on Win7/8.
Differential Revision: https://phabricator.services.mozilla.com/D74409
The APZ was keeping a raw pointer to the controller thread. This was a dangerous exercise.
This was okay on desktop, as the controller thread was the main thread and would have outlived everything else. On Android however it's the UI thread and it could get deleted before we received a last input event.
So we use a strong pointer instead to prevent the thread from being deleted and as such, we now needs to explicitly clear it on shutdown.
This requires the various methods in APZThreadUtils to be made thread-safe so that the controller thread can be shutdown mid-air.
Differential Revision: https://phabricator.services.mozilla.com/D73830
RemoteContentController::PostDelayedTask must be called on the controller thread; and all the 3 implementations are doing is dispatching the task on the current MessageLoop.
The naming and that the method was pure virtual made it a bit confusing as it gave the impression we would dispatch the task on the controller's internal thread, which wasn't the case.
So we make a generic implementation and assert to the documented use.
Differential Revision: https://phabricator.services.mozilla.com/D73828
The test is a permafail without any of those changes on all my windows machine so I've been unable to diagnostic what could happen.
According to :kats, the test was never rewritten to use the new APZ. Disabling on the platform where there's high intermittent failure (about 70%)
Differential Revision: https://phabricator.services.mozilla.com/D74391
MessagePool brings no benefit over the traditional nsIThread.
Additonally, replace some incorrect use of RefPtr for xpcom objects.
Differential Revision: https://phabricator.services.mozilla.com/D73827
CompositorBridgeParent::ScheduleTask was always called from the compositor thread ; so make it explicit that we are dispatching the task to the compositor thread.
We inline the method instead.
Differential Revision: https://phabricator.services.mozilla.com/D73824
already_AddRefed destructor assert that it's nullptr.
DelayedDispatch check that the value passed isn't 0 and return an error code, leaving the already_AddRefed untouched.
Differential Revision: https://phabricator.services.mozilla.com/D73821
Depends on D73779
Reusing the same tab descriptors across process switches means that calling
getTarget on the tab descriptor must create a new target and not return the old one.
The caching mechanism on descriptor fronts relies on the fact that the TargetFront is still alive.
When TargetFront.actorID is null, the cache is invalidated and we fetch a new target.
However the current target switching mechanism relies on an event fired very early in the target
destruction sequence. This means that when we will call getTarget, the old target might still be
alive.
We also start waiting for an event in RDMs target switching, which was not waiting for anything so far
Differential Revision: https://phabricator.services.mozilla.com/D73780
Depends on D73778
Flipping this boolean can create race conditions.
We set it to false and then wait for the "close" event fired by the target front
After that, in parallel:
- the target will finish initializing fronts (async)
-> then we check shouldCloseClient
- the new target will be created (for target switching scenarios)
-> then we flip back shouldCloseClient
We have no guarantee that we will check shouldCloseClient before it is flipped back to true.
Furthermore, this target is being destroyed, there is no reason to flip the boolean.
So removing this code seems like the best option.
Differential Revision: https://phabricator.services.mozilla.com/D73779
Depends on D73777
The filter is a special argument of TabDescriptor::getTarget that is
closely linked to local-tab. It can only be set by rootFront getTab.
However if we reuse the same tab descriptor for several targets, we need
to make sure to consistently create LocalTabTargetFronts if we are debugging
a local tab.
Usually the tab descriptor target is created via getTab and cached, but under
some circumstances, we can attempt to call getTarget on a tab descriptor from
another codepath first (eg reparent remote frame).
The localTab becomes a property of the TabDescriptorFront, and getTarget takes
no argument, which is consistent with other target descriptors.
Differential Revision: https://phabricator.services.mozilla.com/D73778
Depends on D73700
The TabDescriptorActor/Front is never destroyed, but we used to clean the map entry on TabRemotenessChange.
Removing this cleanup allows to reuse tab descriptors after a navigation.
Differential Revision: https://phabricator.services.mozilla.com/D73701
With full color management enabled in bug 455077, generated
screenshots will not be saved as sRGB when the display has
a different ICC profile. As long as bug 1615395 hasn't been
fixed, force screenshots to be saved as sRGB.
Differential Revision: https://phabricator.services.mozilla.com/D74007
Depends on D62624
With the previous implementation, an uninitialized document could be returned as a root node.
Here we try to be more explicit and wait for a correct root node. However in some cases a document can remain uninitialized and will never transition to any other state.
If the document is uninitialized but is not currently loading, we should consider it as a valid root node.
Differential Revision: https://phabricator.services.mozilla.com/D62625
Depends on D62623
`new-root` is no longer a mutation, but an event emitted by the `walker` actor.
Tests watching for mutations should be updated accordingly. They also need to call watchRootNode explicitly.
Differential Revision: https://phabricator.services.mozilla.com/D62624