PaintRequest.cpp 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  2. /* This Source Code Form is subject to the terms of the Mozilla Public
  3. * License, v. 2.0. If a copy of the MPL was not distributed with this
  4. * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  5. #include "mozilla/dom/PaintRequest.h"
  6. #include "mozilla/dom/PaintRequestBinding.h"
  7. #include "mozilla/dom/PaintRequestListBinding.h"
  8. #include "mozilla/dom/DOMRect.h"
  9. namespace mozilla {
  10. namespace dom {
  11. /******************************************************************************
  12. * mozilla::dom::PaintRequest
  13. *****************************************************************************/
  14. NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(PaintRequest, mParent)
  15. NS_INTERFACE_TABLE_HEAD(PaintRequest)
  16. NS_WRAPPERCACHE_INTERFACE_TABLE_ENTRY
  17. NS_INTERFACE_TABLE(PaintRequest, nsIDOMPaintRequest)
  18. NS_INTERFACE_TABLE_TO_MAP_SEGUE_CYCLE_COLLECTION(PaintRequest)
  19. NS_INTERFACE_MAP_END
  20. NS_IMPL_CYCLE_COLLECTING_ADDREF(PaintRequest)
  21. NS_IMPL_CYCLE_COLLECTING_RELEASE(PaintRequest)
  22. /* virtual */ JSObject*
  23. PaintRequest::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
  24. {
  25. return PaintRequestBinding::Wrap(aCx, this, aGivenProto);
  26. }
  27. already_AddRefed<DOMRect>
  28. PaintRequest::ClientRect()
  29. {
  30. RefPtr<DOMRect> clientRect = new DOMRect(this);
  31. clientRect->SetLayoutRect(mRequest.mRect);
  32. return clientRect.forget();
  33. }
  34. NS_IMETHODIMP
  35. PaintRequest::GetClientRect(nsIDOMClientRect** aResult)
  36. {
  37. RefPtr<DOMRect> clientRect = ClientRect();
  38. clientRect.forget(aResult);
  39. return NS_OK;
  40. }
  41. NS_IMETHODIMP
  42. PaintRequest::GetXPCOMReason(nsAString& aResult)
  43. {
  44. GetReason(aResult);
  45. return NS_OK;
  46. }
  47. /******************************************************************************
  48. * mozilla::dom::PaintRequestList
  49. *****************************************************************************/
  50. NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(PaintRequestList, mParent)
  51. NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(PaintRequestList)
  52. NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
  53. NS_INTERFACE_MAP_ENTRY(nsISupports)
  54. NS_INTERFACE_MAP_END
  55. NS_IMPL_CYCLE_COLLECTING_ADDREF(PaintRequestList)
  56. NS_IMPL_CYCLE_COLLECTING_RELEASE(PaintRequestList)
  57. JSObject*
  58. PaintRequestList::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
  59. {
  60. return PaintRequestListBinding::Wrap(aCx, this, aGivenProto);
  61. }
  62. } // namespace dom
  63. } // namespace mozilla