зеркало из https://github.com/mozilla/gecko-dev.git
Коммит
4b4b439b5e
|
@ -1766,16 +1766,17 @@ nsDocumentViewer::Destroy()
|
|||
|
||||
#ifdef NS_PRINTING
|
||||
if (mPrintEngine) {
|
||||
RefPtr<nsPrintEngine> printEngine = mozilla::Move(mPrintEngine);
|
||||
#ifdef NS_PRINT_PREVIEW
|
||||
bool doingPrintPreview;
|
||||
mPrintEngine->GetDoingPrintPreview(&doingPrintPreview);
|
||||
printEngine->GetDoingPrintPreview(&doingPrintPreview);
|
||||
if (doingPrintPreview) {
|
||||
mPrintEngine->FinishPrintPreview();
|
||||
printEngine->FinishPrintPreview();
|
||||
}
|
||||
#endif
|
||||
|
||||
mPrintEngine->Destroy();
|
||||
mPrintEngine = nullptr;
|
||||
printEngine->Destroy();
|
||||
MOZ_ASSERT(!mPrintEngine,
|
||||
"mPrintEngine shouldn't be recreated while destroying it");
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -55,7 +55,11 @@ public:
|
|||
void WaitForRemotePrint();
|
||||
void RemotePrintFinished();
|
||||
|
||||
void Disconnect() { mPrintEngine = nullptr; }
|
||||
void Disconnect()
|
||||
{
|
||||
mPrintEngine = nullptr;
|
||||
mPrintObj = nullptr;
|
||||
}
|
||||
|
||||
private:
|
||||
~nsPagePrintTimer();
|
||||
|
|
|
@ -34,7 +34,6 @@ nsPrintData::nsPrintData(ePrintDataType aType) :
|
|||
mShrinkRatio(1.0), mOrigDCScale(1.0), mPPEventListeners(nullptr),
|
||||
mBrandName(nullptr)
|
||||
{
|
||||
MOZ_COUNT_CTOR(nsPrintData);
|
||||
nsCOMPtr<nsIStringBundle> brandBundle;
|
||||
nsCOMPtr<nsIStringBundleService> svc =
|
||||
mozilla::services::GetStringBundleService();
|
||||
|
@ -53,7 +52,6 @@ nsPrintData::nsPrintData(ePrintDataType aType) :
|
|||
|
||||
nsPrintData::~nsPrintData()
|
||||
{
|
||||
MOZ_COUNT_DTOR(nsPrintData);
|
||||
// remove the event listeners
|
||||
if (mPPEventListeners) {
|
||||
mPPEventListeners->RemoveListeners();
|
||||
|
@ -110,11 +108,17 @@ nsPrintData::DoOnProgressChange(int32_t aProgress,
|
|||
bool aDoStartStop,
|
||||
int32_t aFlag)
|
||||
{
|
||||
for (int32_t i=0;i<mPrintProgressListeners.Count();i++) {
|
||||
nsIWebProgressListener* wpl = mPrintProgressListeners.ObjectAt(i);
|
||||
wpl->OnProgressChange(nullptr, nullptr, aProgress, aMaxProgress, aProgress, aMaxProgress);
|
||||
size_t numberOfListeners = mPrintProgressListeners.Length();
|
||||
for (size_t i = 0; i < numberOfListeners; ++i) {
|
||||
nsCOMPtr<nsIWebProgressListener> listener =
|
||||
mPrintProgressListeners.SafeElementAt(i);
|
||||
if (NS_WARN_IF(!listener)) {
|
||||
continue;
|
||||
}
|
||||
listener->OnProgressChange(nullptr, nullptr, aProgress, aMaxProgress,
|
||||
aProgress, aMaxProgress);
|
||||
if (aDoStartStop) {
|
||||
wpl->OnStateChange(nullptr, nullptr, aFlag, NS_OK);
|
||||
listener->OnStateChange(nullptr, nullptr, aFlag, NS_OK);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -122,12 +126,14 @@ nsPrintData::DoOnProgressChange(int32_t aProgress,
|
|||
void
|
||||
nsPrintData::DoOnStatusChange(nsresult aStatus)
|
||||
{
|
||||
uint32_t numberOfListeners = mPrintProgressListeners.Length();
|
||||
for (uint32_t i = 0; i < numberOfListeners; ++i) {
|
||||
nsIWebProgressListener* listener = mPrintProgressListeners.SafeElementAt(i);
|
||||
if (listener) {
|
||||
listener->OnStatusChange(nullptr, nullptr, aStatus, nullptr);
|
||||
size_t numberOfListeners = mPrintProgressListeners.Length();
|
||||
for (size_t i = 0; i < numberOfListeners; ++i) {
|
||||
nsCOMPtr<nsIWebProgressListener> listener =
|
||||
mPrintProgressListeners.SafeElementAt(i);
|
||||
if (NS_WARN_IF(!listener)) {
|
||||
continue;
|
||||
}
|
||||
listener->OnStatusChange(nullptr, nullptr, aStatus, nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
#include "nsDeviceContext.h"
|
||||
#include "nsIPrintProgressParams.h"
|
||||
#include "nsIPrintSettings.h"
|
||||
#include "nsISupportsImpl.h"
|
||||
#include "nsTArray.h"
|
||||
#include "nsCOMArray.h"
|
||||
|
||||
|
@ -37,11 +38,11 @@ class nsIWebProgressListener;
|
|||
//------------------------------------------------------------------------
|
||||
class nsPrintData {
|
||||
public:
|
||||
|
||||
typedef enum {eIsPrinting, eIsPrintPreview } ePrintDataType;
|
||||
|
||||
explicit nsPrintData(ePrintDataType aType);
|
||||
~nsPrintData(); // non-virtual
|
||||
|
||||
NS_INLINE_DECL_REFCOUNTING(nsPrintData)
|
||||
|
||||
// Listener Helper Methods
|
||||
void OnEndPrinting();
|
||||
|
@ -93,6 +94,7 @@ private:
|
|||
nsPrintData() = delete;
|
||||
nsPrintData& operator=(const nsPrintData& aOther) = delete;
|
||||
|
||||
~nsPrintData(); // non-virtual
|
||||
};
|
||||
|
||||
#endif /* nsPrintData_h___ */
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -265,13 +265,19 @@ protected:
|
|||
nsWeakPtr mContainer;
|
||||
float mScreenDPI;
|
||||
|
||||
mozilla::UniquePtr<nsPrintData> mPrt;
|
||||
// We are the primary owner of our nsPrintData member vars. These vars
|
||||
// are refcounted so that functions (e.g. nsPrintData methods) can create
|
||||
// temporary owning references when they need to fire a callback that
|
||||
// could conceivably destroy this nsPrintEngine owner object and all its
|
||||
// member-data.
|
||||
RefPtr<nsPrintData> mPrt;
|
||||
|
||||
nsPagePrintTimer* mPagePrintTimer;
|
||||
WeakFrame mPageSeqFrame;
|
||||
|
||||
// Print Preview
|
||||
mozilla::UniquePtr<nsPrintData> mPrtPreview;
|
||||
mozilla::UniquePtr<nsPrintData> mOldPrtPreview;
|
||||
RefPtr<nsPrintData> mPrtPreview;
|
||||
RefPtr<nsPrintData> mOldPrtPreview;
|
||||
|
||||
nsCOMPtr<nsIDocument> mDocument;
|
||||
|
||||
|
|
|
@ -120,6 +120,7 @@ TEST(ArenaAllocator, AllocateLargerThanArenaSize)
|
|||
EXPECT_EQ(uintptr_t(x) + 8, uintptr_t(y));
|
||||
}
|
||||
|
||||
#ifndef MOZ_CODE_COVERAGE
|
||||
TEST(ArenaAllocator, AllocationsPerChunk)
|
||||
{
|
||||
// Test that expected number of allocations fit in one chunk.
|
||||
|
@ -193,6 +194,7 @@ TEST(ArenaAllocator, MemoryIsValid)
|
|||
EXPECT_EQ(x[i], kMark);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
MOZ_DEFINE_MALLOC_SIZE_OF(TestSizeOf);
|
||||
|
||||
|
|
|
@ -64,6 +64,9 @@ if CONFIG['WRAP_STL_INCLUDES'] and not CONFIG['CLANG_CL']:
|
|||
'TestSTLWrappers.cpp',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_CODE_COVERAGE']:
|
||||
DEFINES['MOZ_CODE_COVERAGE'] = True
|
||||
|
||||
# Compile TestAllocReplacement separately so Windows headers don't pollute
|
||||
# the global namespace for other files.
|
||||
SOURCES += [
|
||||
|
|
Загрузка…
Ссылка в новой задаче