michael@0: /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: /* michael@0: * nsStubDocumentObserver is an implementation of the nsIDocumentObserver michael@0: * interface (except for the methods on nsISupports) that is intended to be michael@0: * used as a base class within the content/layout library. All methods do michael@0: * nothing. michael@0: */ michael@0: michael@0: #ifndef nsStubDocumentObserver_h_ michael@0: #define nsStubDocumentObserver_h_ michael@0: michael@0: #include "nsIDocumentObserver.h" michael@0: michael@0: /** michael@0: * There are two advantages to inheriting from nsStubDocumentObserver michael@0: * rather than directly from nsIDocumentObserver: michael@0: * 1. smaller compiled code size (since there's no need for the code michael@0: * for the empty virtual function implementations for every michael@0: * nsIDocumentObserver implementation) michael@0: * 2. the performance of document's loop over observers benefits from michael@0: * the fact that more of the functions called are the same (which michael@0: * can reduce instruction cache misses and perhaps improve branch michael@0: * prediction) michael@0: */ michael@0: class nsStubDocumentObserver : public nsIDocumentObserver { michael@0: public: michael@0: NS_DECL_NSIDOCUMENTOBSERVER michael@0: }; michael@0: michael@0: #endif /* !defined(nsStubDocumentObserver_h_) */