PrintProgressDialogChild.cpp 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. /* This Source Code Form is subject to the terms of the Mozilla Public
  2. * License, v. 2.0. If a copy of the MPL was not distributed with this
  3. * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  4. #include "mozilla/Unused.h"
  5. #include "nsIObserver.h"
  6. #include "PrintProgressDialogChild.h"
  7. class nsIWebProgress;
  8. class nsIRequest;
  9. using mozilla::Unused;
  10. namespace mozilla {
  11. namespace embedding {
  12. NS_IMPL_ISUPPORTS(PrintProgressDialogChild,
  13. nsIWebProgressListener,
  14. nsIPrintProgressParams)
  15. PrintProgressDialogChild::PrintProgressDialogChild(
  16. nsIObserver* aOpenObserver) :
  17. mOpenObserver(aOpenObserver)
  18. {
  19. MOZ_COUNT_CTOR(PrintProgressDialogChild);
  20. }
  21. PrintProgressDialogChild::~PrintProgressDialogChild()
  22. {
  23. // When the printing engine stops supplying information about printing
  24. // progress, it'll drop references to us and destroy us. We need to signal
  25. // the parent to decrement its refcount, as well as prevent it from attempting
  26. // to contact us further.
  27. Unused << Send__delete__(this);
  28. MOZ_COUNT_DTOR(PrintProgressDialogChild);
  29. }
  30. bool
  31. PrintProgressDialogChild::RecvDialogOpened()
  32. {
  33. // nsPrintEngine's observer, which we're reporting to here, doesn't care
  34. // what gets passed as the subject, topic or data, so we'll just send
  35. // nullptrs.
  36. mOpenObserver->Observe(nullptr, nullptr, nullptr);
  37. return true;
  38. }
  39. // nsIWebProgressListener
  40. NS_IMETHODIMP
  41. PrintProgressDialogChild::OnStateChange(nsIWebProgress* aProgress,
  42. nsIRequest* aRequest,
  43. uint32_t aStateFlags,
  44. nsresult aStatus)
  45. {
  46. Unused << SendStateChange(aStateFlags, aStatus);
  47. return NS_OK;
  48. }
  49. NS_IMETHODIMP
  50. PrintProgressDialogChild::OnProgressChange(nsIWebProgress * aProgress,
  51. nsIRequest * aRequest,
  52. int32_t aCurSelfProgress,
  53. int32_t aMaxSelfProgress,
  54. int32_t aCurTotalProgress,
  55. int32_t aMaxTotalProgress)
  56. {
  57. Unused << SendProgressChange(aCurSelfProgress, aMaxSelfProgress,
  58. aCurTotalProgress, aMaxTotalProgress);
  59. return NS_OK;
  60. }
  61. NS_IMETHODIMP
  62. PrintProgressDialogChild::OnLocationChange(nsIWebProgress* aProgress,
  63. nsIRequest* aRequest,
  64. nsIURI* aURI,
  65. uint32_t aFlags)
  66. {
  67. return NS_OK;
  68. }
  69. NS_IMETHODIMP
  70. PrintProgressDialogChild::OnStatusChange(nsIWebProgress* aProgress,
  71. nsIRequest* aRequest,
  72. nsresult aStatus,
  73. const char16_t* aMessage)
  74. {
  75. return NS_OK;
  76. }
  77. NS_IMETHODIMP
  78. PrintProgressDialogChild::OnSecurityChange(nsIWebProgress* aProgress,
  79. nsIRequest* aRequest,
  80. uint32_t aState)
  81. {
  82. return NS_OK;
  83. }
  84. // nsIPrintProgressParams
  85. NS_IMETHODIMP PrintProgressDialogChild::GetDocTitle(char16_t* *aDocTitle)
  86. {
  87. NS_ENSURE_ARG(aDocTitle);
  88. *aDocTitle = ToNewUnicode(mDocTitle);
  89. return NS_OK;
  90. }
  91. NS_IMETHODIMP PrintProgressDialogChild::SetDocTitle(const char16_t* aDocTitle)
  92. {
  93. mDocTitle = aDocTitle;
  94. Unused << SendDocTitleChange(nsString(aDocTitle));
  95. return NS_OK;
  96. }
  97. NS_IMETHODIMP PrintProgressDialogChild::GetDocURL(char16_t **aDocURL)
  98. {
  99. NS_ENSURE_ARG(aDocURL);
  100. *aDocURL = ToNewUnicode(mDocURL);
  101. return NS_OK;
  102. }
  103. NS_IMETHODIMP PrintProgressDialogChild::SetDocURL(const char16_t* aDocURL)
  104. {
  105. mDocURL = aDocURL;
  106. Unused << SendDocURLChange(nsString(aDocURL));
  107. return NS_OK;
  108. }
  109. } // namespace embedding
  110. } // namespace mozilla