Bug 1333503 - Remove some dead code relating to overfill calculation. r?mchang
MozReview-Commit-ID: HiT0jJynpyC
--- a/dom/base/nsGlobalWindow.cpp
+++ b/dom/base/nsGlobalWindow.cpp
@@ -7996,34 +7996,16 @@ nsGlobalWindow::MozScrollSnap()
FlushPendingNotifications(FlushType::Layout);
nsIScrollableFrame *sf = GetScrollFrame();
if (sf) {
sf->ScrollSnap();
}
}
void
-nsGlobalWindow::MozRequestOverfill(OverfillCallback& aCallback,
- mozilla::ErrorResult& aError)
-{
- MOZ_ASSERT(IsInnerWindow());
-
- nsIWidget* widget = nsContentUtils::WidgetForDocument(mDoc);
- if (widget) {
- mozilla::layers::LayerManager* manager = widget->GetLayerManager();
- if (manager) {
- manager->RequestOverfill(&aCallback);
- return;
- }
- }
-
- aError.Throw(NS_ERROR_NOT_AVAILABLE);
-}
-
-void
nsGlobalWindow::ClearTimeout(int32_t aHandle)
{
MOZ_RELEASE_ASSERT(IsInnerWindow());
if (aHandle > 0) {
mTimeoutManager->ClearTimeout(aHandle, Timeout::Reason::eTimeoutOrInterval);
}
}
--- a/dom/base/nsGlobalWindow.h
+++ b/dom/base/nsGlobalWindow.h
@@ -1066,17 +1066,16 @@ public:
return GetScrollX(aError);
}
int32_t GetScrollYOuter();
int32_t GetScrollY(mozilla::ErrorResult& aError);
int32_t GetPageYOffset(mozilla::ErrorResult& aError)
{
return GetScrollY(aError);
}
- void MozRequestOverfill(mozilla::dom::OverfillCallback& aCallback, mozilla::ErrorResult& aError);
void GetScreenX(JSContext* aCx, JS::MutableHandle<JS::Value> aValue,
mozilla::dom::CallerType aCallerType,
mozilla::ErrorResult& aError);
void SetScreenX(JSContext* aCx, JS::Handle<JS::Value> aValue,
mozilla::dom::CallerType aCallerType,
mozilla::ErrorResult& aError);
void GetScreenY(JSContext* aCx, JS::MutableHandle<JS::Value> aValue,
mozilla::dom::CallerType aCallerType,
--- a/dom/webidl/Window.webidl
+++ b/dom/webidl/Window.webidl
@@ -202,27 +202,16 @@ partial interface Window {
//[Replaceable, Throws] readonly attribute double outerWidth;
//[Replaceable, Throws] readonly attribute double outerHeight;
[Throws, NeedsCallerType] attribute any screenX;
[Throws, NeedsCallerType] attribute any screenY;
[Throws, NeedsCallerType] attribute any outerWidth;
[Throws, NeedsCallerType] attribute any outerHeight;
};
-/**
- * Special function that gets the fill ratio from the compositor used for testing
- * and is an indicator that we're layerizing correctly.
- * This function will call the given callback current fill ratio for a
- * composited frame. We don't guarantee which frame fill ratios will be returned.
- */
-partial interface Window {
- [ChromeOnly, Throws] void mozRequestOverfill(OverfillCallback callback);
-};
-callback OverfillCallback = void (unsigned long overfill);
-
// https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/RequestAnimationFrame/Overview.html
partial interface Window {
[Throws] long requestAnimationFrame(FrameRequestCallback callback);
[Throws] void cancelAnimationFrame(long handle);
};
callback FrameRequestCallback = void (DOMHighResTimeStamp time);
// https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html
--- a/gfx/layers/Layers.h
+++ b/gfx/layers/Layers.h
@@ -65,20 +65,16 @@ class StyleAnimationValue;
namespace gl {
class GLContext;
} // namespace gl
namespace gfx {
class DrawTarget;
} // namespace gfx
-namespace dom {
-class OverfillCallback;
-} // namespace dom
-
namespace layers {
class Animation;
class AnimationData;
class AsyncCanvasRenderer;
class AsyncPanZoomController;
class BasicLayerManager;
class ClientLayerManager;
@@ -637,18 +633,16 @@ public:
// avoid loading the compositor!
return LayersBackend::LAYERS_BASIC != aBackend && LayersBackend::LAYERS_NONE != aBackend;
}
virtual bool IsCompositingCheap() { return true; }
bool IsInTransaction() const { return mInTransaction; }
virtual void GetFrameUniformity(FrameUniformityData* aOutData) { }
- virtual bool RequestOverfill(mozilla::dom::OverfillCallback* aCallback) { return true; }
- virtual void RunOverfillCallback(const uint32_t aOverfill) { }
virtual void SetRegionToClear(const nsIntRegion& aRegion)
{
mRegionToClear = aRegion;
}
virtual float RequestProperty(const nsAString& property) { return -1; }
--- a/gfx/layers/client/ClientLayerManager.cpp
+++ b/gfx/layers/client/ClientLayerManager.cpp
@@ -21,17 +21,16 @@
#include "mozilla/layers/PersistentBufferProvider.h"
#include "ClientReadbackLayer.h" // for ClientReadbackLayer
#include "nsAString.h"
#include "nsDisplayList.h"
#include "nsIWidgetListener.h"
#include "nsTArray.h" // for AutoTArray
#include "nsXULAppAPI.h" // for XRE_GetProcessType, etc
#include "TiledLayerBuffer.h"
-#include "mozilla/dom/WindowBinding.h" // for Overfill Callback
#include "FrameLayerBuilder.h" // for FrameLayerbuilder
#ifdef MOZ_WIDGET_ANDROID
#include "AndroidBridge.h"
#include "LayerMetricsWrapper.h"
#endif
#ifdef XP_WIN
#include "mozilla/gfx/DeviceManagerDx.h"
#include "gfxDWriteFonts.h"
@@ -540,45 +539,16 @@ ClientLayerManager::GetFrameUniformity(F
CompositorBridgeChild* child = GetRemoteRenderer();
child->SendGetFrameUniformity(aOutData);
return;
}
return LayerManager::GetFrameUniformity(aOutData);
}
-bool
-ClientLayerManager::RequestOverfill(mozilla::dom::OverfillCallback* aCallback)
-{
- MOZ_ASSERT(aCallback != nullptr);
- MOZ_ASSERT(HasShadowManager(), "Request Overfill only supported on b2g for now");
-
- if (HasShadowManager()) {
- CompositorBridgeChild* child = GetRemoteRenderer();
- NS_ASSERTION(child, "Could not get CompositorBridgeChild");
-
- child->AddOverfillObserver(this);
- child->SendRequestOverfill();
- mOverfillCallbacks.AppendElement(aCallback);
- }
-
- return true;
-}
-
-void
-ClientLayerManager::RunOverfillCallback(const uint32_t aOverfill)
-{
- for (size_t i = 0; i < mOverfillCallbacks.Length(); i++) {
- ErrorResult error;
- mOverfillCallbacks[i]->Call(aOverfill, error);
- }
-
- mOverfillCallbacks.Clear();
-}
-
void
ClientLayerManager::MakeSnapshotIfRequired()
{
if (!mShadowTarget) {
return;
}
if (mWidget) {
if (CompositorBridgeChild* remoteRenderer = GetRemoteRenderer()) {
--- a/gfx/layers/client/ClientLayerManager.h
+++ b/gfx/layers/client/ClientLayerManager.h
@@ -169,18 +169,16 @@ public:
void SetNeedsComposite(bool aNeedsComposite)
{
mNeedsComposite = aNeedsComposite;
}
bool NeedsComposite() const { return mNeedsComposite; }
virtual void Composite() override;
virtual void GetFrameUniformity(FrameUniformityData* aFrameUniformityData) override;
- virtual bool RequestOverfill(mozilla::dom::OverfillCallback* aCallback) override;
- virtual void RunOverfillCallback(const uint32_t aOverfill) override;
void DidComposite(uint64_t aTransactionId,
const mozilla::TimeStamp& aCompositeStart,
const mozilla::TimeStamp& aCompositeEnd);
virtual bool AreComponentAlphaLayersEnabled() override;
// Log APZ test data for the current paint. We supply the paint sequence
@@ -331,17 +329,16 @@ private:
// A sequence number for checking whether we have not yet acknowledged
// a device reset.
uint64_t mDeviceResetSequenceNumber;
APZTestData mApzTestData;
RefPtr<ShadowLayerForwarder> mForwarder;
- AutoTArray<dom::OverfillCallback*,0> mOverfillCallbacks;
mozilla::TimeStamp mTransactionStart;
nsTArray<DidCompositeObserver*> mDidCompositeObservers;
RefPtr<MemoryPressureObserver> mMemoryPressureObserver;
uint64_t mDeviceCounter;
};
--- a/gfx/layers/ipc/CompositorBridgeChild.cpp
+++ b/gfx/layers/ipc/CompositorBridgeChild.cpp
@@ -581,33 +581,16 @@ CompositorBridgeChild::RecvDidComposite(
for (size_t i = 0; i < mTexturePools.Length(); i++) {
mTexturePools[i]->ReturnDeferredClients();
}
return IPC_OK();
}
mozilla::ipc::IPCResult
-CompositorBridgeChild::RecvOverfill(const uint32_t &aOverfill)
-{
- for (size_t i = 0; i < mOverfillObservers.Length(); i++) {
- mOverfillObservers[i]->RunOverfillCallback(aOverfill);
- }
- mOverfillObservers.Clear();
- return IPC_OK();
-}
-
-void
-CompositorBridgeChild::AddOverfillObserver(ClientLayerManager* aLayerManager)
-{
- MOZ_ASSERT(aLayerManager);
- mOverfillObservers.AppendElement(aLayerManager);
-}
-
-mozilla::ipc::IPCResult
CompositorBridgeChild::RecvClearCachedResources(const uint64_t& aId)
{
dom::TabChild* child = dom::TabChild::GetFrom(aId);
if (child) {
child->ClearCachedResources();
}
return IPC_OK();
}
--- a/gfx/layers/ipc/CompositorBridgeChild.h
+++ b/gfx/layers/ipc/CompositorBridgeChild.h
@@ -88,18 +88,16 @@ public:
static CompositorBridgeChild* Get();
static bool ChildProcessHasCompositorBridge();
// Returns whether the compositor is in the GPU process (false if in the UI
// process). This may only be called on the main thread.
static bool CompositorIsInGPUProcess();
- void AddOverfillObserver(ClientLayerManager* aLayerManager);
-
virtual mozilla::ipc::IPCResult
RecvClearCachedResources(const uint64_t& id) override;
virtual mozilla::ipc::IPCResult
RecvDidComposite(const uint64_t& aId, const uint64_t& aTransactionId,
const TimeStamp& aCompositeStart,
const TimeStamp& aCompositeEnd) override;
@@ -107,19 +105,16 @@ public:
RecvInvalidateLayers(const uint64_t& aLayersId) override;
virtual mozilla::ipc::IPCResult
RecvCompositorUpdated(const uint64_t& aLayersId,
const TextureFactoryIdentifier& aNewIdentifier,
const uint64_t& aSequenceNumber) override;
virtual mozilla::ipc::IPCResult
- RecvOverfill(const uint32_t &aOverfill) override;
-
- virtual mozilla::ipc::IPCResult
RecvUpdatePluginConfigurations(const LayoutDeviceIntPoint& aContentOffset,
const LayoutDeviceIntRegion& aVisibleRegion,
nsTArray<PluginWindowData>&& aPlugins) override;
virtual mozilla::ipc::IPCResult
RecvCaptureAllPlugins(const uintptr_t& aParentWidget) override;
virtual mozilla::ipc::IPCResult
@@ -303,19 +298,16 @@ private:
nsClassHashtable<nsUint64HashKey, SharedFrameMetricsData> mFrameMetricsTable;
// Weakly hold the TabChild that made a request to be alerted when
// the transaction has been received.
nsWeakPtr mWeakTabChild; // type is TabChild
DISALLOW_EVIL_CONSTRUCTORS(CompositorBridgeChild);
- // When we receive overfill numbers, notify these client layer managers
- AutoTArray<ClientLayerManager*,0> mOverfillObservers;
-
// True until the beginning of the two-step shutdown sequence of this actor.
bool mCanSend;
/**
* Transaction id of ShadowLayerForwarder.
* It is incrementaed by UpdateFwdTransactionId() in each BeginTransaction() call.
*/
uint64_t mFwdTransactionId;
--- a/gfx/layers/ipc/CompositorBridgeParent.cpp
+++ b/gfx/layers/ipc/CompositorBridgeParent.cpp
@@ -1268,24 +1268,16 @@ CompositorBridgeParent::ApplyAsyncProper
mozilla::ipc::IPCResult
CompositorBridgeParent::RecvGetFrameUniformity(FrameUniformityData* aOutData)
{
mCompositionManager->GetFrameUniformity(aOutData);
return IPC_OK();
}
-mozilla::ipc::IPCResult
-CompositorBridgeParent::RecvRequestOverfill()
-{
- uint32_t overfillRatio = mCompositor->GetFillRatio();
- Unused << SendOverfill(overfillRatio);
- return IPC_OK();
-}
-
void
CompositorBridgeParent::FlushApzRepaints(const LayerTransactionParent* aLayerTree)
{
MOZ_ASSERT(mApzcTreeManager);
uint64_t layersId = aLayerTree->GetId();
if (layersId == 0) {
// The request is coming from the parent-process layer tree, so we should
// use the compositor's root layer tree id.
--- a/gfx/layers/ipc/CompositorBridgeParent.h
+++ b/gfx/layers/ipc/CompositorBridgeParent.h
@@ -172,17 +172,16 @@ public:
bool Bind(Endpoint<PCompositorBridgeParent>&& aEndpoint);
virtual mozilla::ipc::IPCResult RecvInitialize(const uint64_t& aRootLayerTreeId) override;
virtual mozilla::ipc::IPCResult RecvReset(nsTArray<LayersBackend>&& aBackendHints,
const uint64_t& aSeqNo,
bool* aResult,
TextureFactoryIdentifier* aOutIdentifier) override;
virtual mozilla::ipc::IPCResult RecvGetFrameUniformity(FrameUniformityData* aOutData) override;
- virtual mozilla::ipc::IPCResult RecvRequestOverfill() override;
virtual mozilla::ipc::IPCResult RecvWillClose() override;
virtual mozilla::ipc::IPCResult RecvPause() override;
virtual mozilla::ipc::IPCResult RecvResume() override;
virtual mozilla::ipc::IPCResult RecvNotifyChildCreated(const uint64_t& child) override;
virtual mozilla::ipc::IPCResult RecvNotifyChildRecreated(const uint64_t& child) override;
virtual mozilla::ipc::IPCResult RecvAdoptChild(const uint64_t& child) override;
virtual mozilla::ipc::IPCResult RecvMakeSnapshot(const SurfaceDescriptor& aInSnapshot,
const gfx::IntRect& aRect) override;
--- a/gfx/layers/ipc/CrossProcessCompositorBridgeParent.h
+++ b/gfx/layers/ipc/CrossProcessCompositorBridgeParent.h
@@ -45,17 +45,16 @@ public:
// FIXME/bug 774388: work out what shutdown protocol we need.
virtual mozilla::ipc::IPCResult RecvInitialize(const uint64_t& aRootLayerTreeId) override { return IPC_FAIL_NO_REASON(this); }
virtual mozilla::ipc::IPCResult RecvReset(nsTArray<LayersBackend>&& aBackendHints,
const uint64_t& aSeqNo,
bool* aResult,
TextureFactoryIdentifier* aOutIdentifier) override
{ return IPC_FAIL_NO_REASON(this); }
- virtual mozilla::ipc::IPCResult RecvRequestOverfill() override { return IPC_OK(); }
virtual mozilla::ipc::IPCResult RecvWillClose() override { return IPC_OK(); }
virtual mozilla::ipc::IPCResult RecvPause() override { return IPC_OK(); }
virtual mozilla::ipc::IPCResult RecvResume() override { return IPC_OK(); }
virtual mozilla::ipc::IPCResult RecvForceIsFirstPaint() override { return IPC_OK(); }
virtual mozilla::ipc::IPCResult RecvNotifyChildCreated(const uint64_t& child) override;
virtual mozilla::ipc::IPCResult RecvNotifyChildRecreated(const uint64_t& child) override { return IPC_FAIL_NO_REASON(this); }
virtual mozilla::ipc::IPCResult RecvAdoptChild(const uint64_t& child) override { return IPC_FAIL_NO_REASON(this); }
virtual mozilla::ipc::IPCResult RecvMakeSnapshot(const SurfaceDescriptor& aInSnapshot,
--- a/gfx/layers/ipc/PCompositorBridge.ipdl
+++ b/gfx/layers/ipc/PCompositorBridge.ipdl
@@ -90,19 +90,16 @@ child:
// The compositor completed a layers transaction. id is the layers id
// of the child layer tree that was composited (or 0 when notifying
// the root layer tree).
// transactionId is the id of the transaction before this composite, or 0
// if there was no transaction since the last composite.
async DidComposite(uint64_t id, uint64_t transactionId,
TimeStamp compositeStart, TimeStamp compositeEnd);
- // The parent sends the child the requested fill ratio numbers.
- async Overfill(uint32_t aOverfill);
-
/**
* Parent informs the child that the graphics objects are ready for
* compositing. This usually means that the graphics objects (textures
* and the like) are available on the GPU. This is used for chrome UI.
* @see RequestNotifyAfterRemotePaint
* @see PBrowser
*/
async RemotePaintIsReady();
@@ -159,19 +156,16 @@ parent:
* Confirmation callback for UpdatePluginConfigurations and HideAllPlugins.
*/
async RemotePluginsReady();
// Confirmation that the child has invalidated all its layers, and will not
// request layers against an old compositor.
async AcknowledgeCompositorUpdate(uint64_t aLayersId, uint64_t aSeqNo);
- // Child sends the parent a request for fill ratio numbers.
- async RequestOverfill();
-
// Child requests frame uniformity measurements
sync GetFrameUniformity() returns (FrameUniformityData data);
// The child is about to be destroyed, so perform any necessary cleanup.
sync WillClose();
// Pause/resume the compositor. These are intended to be used on mobile, when
// the compositor needs to pause/resume in lockstep with the application.