Bug 1335895 - part 1: Update CompositorSession to hold a pointer to UiCompositorControllerChild on Android r=dvander
--- a/gfx/ipc/CompositorSession.h
+++ b/gfx/ipc/CompositorSession.h
@@ -5,16 +5,19 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef _include_mozilla_gfx_ipc_CompositorSession_h_
#define _include_mozilla_gfx_ipc_CompositorSession_h_
#include "base/basictypes.h"
#include "mozilla/layers/LayersTypes.h"
#include "mozilla/layers/CompositorTypes.h"
#include "nsISupportsImpl.h"
+#if defined(MOZ_WIDGET_ANDROID)
+#include "mozilla/layers/UiCompositorControllerChild.h"
+#endif // defined(MOZ_WIDGET_ANDROID)
class nsIWidget;
namespace mozilla {
namespace widget {
class CompositorWidget;
class CompositorWidgetDelegate;
} // namespace widget
@@ -67,27 +70,40 @@ public:
return mCompositorWidgetDelegate;
}
// Return the id of the root layer tree.
uint64_t RootLayerTreeId() const {
return mRootLayerTreeId;
}
+#if defined(MOZ_WIDGET_ANDROID)
+ // Set the UiCompositorControllerChild after Session creation so the Session constructor
+ // doesn't get mucked up for other platforms.
+ virtual void SetUiCompositorControllerChild(RefPtr<UiCompositorControllerChild> aUiController) {
+ mUiCompositorControllerChild = aUiController;
+ }
+
+ virtual RefPtr<UiCompositorControllerChild> GetUiCompositorControllerChild() {
+ return mUiCompositorControllerChild;
+ }
+#endif // defined(MOZ_WIDGET_ANDROID)
protected:
CompositorSession(CompositorWidgetDelegate* aDelegate,
CompositorBridgeChild* aChild,
const uint64_t& aRootLayerTreeId);
virtual ~CompositorSession();
protected:
CompositorWidgetDelegate* mCompositorWidgetDelegate;
RefPtr<CompositorBridgeChild> mCompositorBridgeChild;
uint64_t mRootLayerTreeId;
-
+#if defined(MOZ_WIDGET_ANDROID)
+ RefPtr<UiCompositorControllerChild> mUiCompositorControllerChild;
+#endif // defined(MOZ_WIDGET_ANDROID)
private:
DISALLOW_COPY_AND_ASSIGN(CompositorSession);
};
} // namespace layers
} // namespace mozilla
#endif // _include_mozilla_gfx_ipc_CompositorSession_h_