author | Ehsan Akhgari <ehsan@mozilla.com> |
Mon, 07 Oct 2013 22:21:07 -0400 | |
changeset 150284 | 1c7428ab1e13f175975618569bd809c40ab796cc |
parent 150283 | bf817ca7c19a3ce0f6a02c0d30f8f4340bfbb2fb |
child 150285 | 05c32b7824e6f609b1dc037d9e1b6acf8d6184d2 |
push id | 34808 |
push user | eakhgari@mozilla.com |
push date | Thu, 10 Oct 2013 00:22:40 +0000 |
treeherder | mozilla-inbound@1c7428ab1e13 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | jst |
bugs | 924248 |
milestone | 27.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/browser/components/shell/src/nsMacShellService.cpp +++ b/browser/components/shell/src/nsMacShellService.cpp @@ -15,16 +15,18 @@ #include "nsIServiceManager.h" #include "nsIStringBundle.h" #include "nsIURL.h" #include "nsIWebBrowserPersist.h" #include "nsMacShellService.h" #include "nsNetUtil.h" #include "nsShellService.h" #include "nsStringAPI.h" +#include "nsIDocShell.h" +#include "nsILoadContext.h" #include <CoreFoundation/CoreFoundation.h> #include <ApplicationServices/ApplicationServices.h> #define NETWORK_PREFPANE NS_LITERAL_CSTRING("/System/Library/PreferencePanes/Network.prefPane") #define DESKTOP_PREFPANE NS_LITERAL_CSTRING("/System/Library/PreferencePanes/DesktopScreenEffectsPref.prefPane") #define SAFARI_BUNDLE_IDENTIFIER "com.apple.Safari" @@ -188,18 +190,25 @@ nsMacShellService::SetDesktopBackground( uint32_t flags = nsIWebBrowserPersist::PERSIST_FLAGS_NO_CONVERSION | nsIWebBrowserPersist::PERSIST_FLAGS_REPLACE_EXISTING_FILES | nsIWebBrowserPersist::PERSIST_FLAGS_FROM_CACHE; wbp->SetPersistFlags(flags); wbp->SetProgressListener(this); + nsCOMPtr<nsILoadContext> loadContext; + nsCOMPtr<nsISupports> container = content->OwnerDoc()->GetContainer(); + nsCOMPtr<nsIDocShell> docShell = do_QueryInterface(container); + if (docShell) { + loadContext = do_QueryInterface(docShell); + } + return wbp->SaveURI(imageURI, nullptr, docURI, nullptr, nullptr, - mBackgroundFile, content->OwnerDoc()->GetLoadContext()); + mBackgroundFile, loadContext); } NS_IMETHODIMP nsMacShellService::OnProgressChange(nsIWebProgress* aWebProgress, nsIRequest* aRequest, int32_t aCurSelfProgress, int32_t aMaxSelfProgress, int32_t aCurTotalProgress,
--- a/content/base/public/nsIDocument.h +++ b/content/base/public/nsIDocument.h @@ -1,32 +1,26 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef nsIDocument_h___ #define nsIDocument_h___ -#include "mozilla/Attributes.h" #include "mozFlushType.h" // for enum #include "nsAutoPtr.h" // for member #include "nsCOMArray.h" // for member #include "nsCRT.h" // for NS_DECL_AND_IMPL_ZEROING_OPERATOR_NEW #include "nsCompatibility.h" // for member #include "nsCOMPtr.h" // for member #include "nsGkAtoms.h" // for static class members -#include "nsIChannel.h" // for member -#include "nsIDocumentEncoder.h" // for member (in nsCOMPtr) #include "nsIDocumentObserver.h" // for typedef (nsUpdateType) -#include "nsIFrameRequestCallback.h" // for member (in nsCOMPtr) -#include "nsILoadContext.h" // for member (in nsCOMPtr) #include "nsILoadGroup.h" // for member (in nsCOMPtr) #include "nsINode.h" // for base class #include "nsIScriptGlobalObject.h" // for member (in nsCOMPtr) -#include "nsIStructuredCloneContainer.h" // for member (in nsCOMPtr) #include "nsPIDOMWindow.h" // for use in inline functions #include "nsPropertyTable.h" // for member #include "nsTHashtable.h" // for member #include "mozilla/dom/DocumentBinding.h" #include "Units.h" #include "nsExpirationTracker.h" #include "nsClassHashtable.h" @@ -43,33 +37,36 @@ class nsHTMLDocument; class nsHTMLStyleSheet; class nsIAtom; class nsIBFCacheEntry; class nsIBoxObject; class nsIChannel; class nsIContent; class nsIContentSink; class nsIDocShell; +class nsIDocumentEncoder; class nsIDocumentObserver; class nsIDOMDocument; class nsIDOMDocumentFragment; class nsIDOMDocumentType; class nsIDOMElement; class nsIDOMNodeFilter; class nsIDOMNodeList; class nsIDOMXPathExpression; class nsIDOMXPathNSResolver; class nsIHTMLCollection; class nsILayoutHistoryState; +class nsILoadContext; class nsIObjectLoadingContent; class nsIObserver; class nsIPresShell; class nsIPrincipal; class nsIRequest; class nsIStreamListener; +class nsIStructuredCloneContainer; class nsIStyleRule; class nsIStyleSheet; class nsIURI; class nsIVariant; class nsViewManager; class nsPresContext; class nsRange; class nsScriptLoader; @@ -1160,25 +1157,17 @@ public: { nsCOMPtr<nsISupports> container = do_QueryReferent(mDocumentContainer); return container.forget(); } /** * Get the container's load context for this document. */ - nsILoadContext* GetLoadContext() const - { - nsCOMPtr<nsISupports> container = GetContainer(); - if (container) { - nsCOMPtr<nsILoadContext> loadContext = do_QueryInterface(container); - return loadContext; - } - return nullptr; - } + nsILoadContext* GetLoadContext() const; /** * Set and get XML declaration. If aVersion is null there is no declaration. * aStandalone takes values -1, 0 and 1 indicating respectively that there * was no standalone parameter in the declaration, that it was given as no, * or that it was given as yes. */ virtual void SetXMLDeclaration(const PRUnichar *aVersion, @@ -1476,25 +1465,19 @@ public: return mMayStartLayout; } void SetMayStartLayout(bool aMayStartLayout) { mMayStartLayout = aMayStartLayout; } - already_AddRefed<nsIDocumentEncoder> GetCachedEncoder() - { - return mCachedEncoder.forget(); - } + already_AddRefed<nsIDocumentEncoder> GetCachedEncoder(); - void SetCachedEncoder(already_AddRefed<nsIDocumentEncoder> aEncoder) - { - mCachedEncoder = aEncoder; - } + void SetCachedEncoder(already_AddRefed<nsIDocumentEncoder> aEncoder); // In case of failure, the document really can't initialize the frame loader. virtual nsresult InitializeFrameLoader(nsFrameLoader* aLoader) = 0; // In case of failure, the caller must handle the error, for example by // finalizing frame loader asynchronously. virtual nsresult FinalizeFrameLoader(nsFrameLoader* aLoader) = 0; // Removes the frame loader of aShell from the initialization list. virtual void TryCancelFrameLoaderInitialization(nsIDocShell* aShell) = 0; @@ -1767,21 +1750,17 @@ public: Doc_Theme_Dark, Doc_Theme_Bright }; /** * Set the document's pending state object (as serialized using structured * clone). */ - void SetStateObject(nsIStructuredCloneContainer *scContainer) - { - mStateObjectContainer = scContainer; - mStateObjectCached = nullptr; - } + void SetStateObject(nsIStructuredCloneContainer *scContainer); /** * Returns Doc_Theme_None if there is no lightweight theme specified, * Doc_Theme_Dark for a dark theme, Doc_Theme_Bright for a light theme, and * Doc_Theme_Neutral for any other theme. This is used to determine the state * of the pseudoclasses :-moz-lwtheme and :-moz-lwtheme-text. */ virtual int GetDocumentLWTheme() { return Doc_Theme_None; } @@ -2214,21 +2193,17 @@ protected: virtual void MutationEventDispatched(nsINode* aTarget) = 0; friend class mozAutoSubtreeModified; virtual Element* GetNameSpaceElement() { return GetRootElement(); } - void SetContentTypeInternal(const nsACString& aType) - { - mCachedEncoder = nullptr; - mContentType = aType; - } + void SetContentTypeInternal(const nsACString& aType); nsCString GetContentTypeInternal() const { return mContentType; } mozilla::dom::XPathEvaluator* XPathEvaluator();
--- a/content/base/src/Element.cpp +++ b/content/base/src/Element.cpp @@ -13,16 +13,17 @@ #include "mozilla/dom/ElementInlines.h" #include "mozilla/DebugOnly.h" #include "mozilla/dom/Attr.h" #include "nsDOMAttributeMap.h" #include "nsIAtom.h" #include "nsIContentInlines.h" #include "nsINodeInfo.h" +#include "nsIDocumentEncoder.h" #include "nsIDocumentInlines.h" #include "nsIDOMNodeList.h" #include "nsIDOMDocument.h" #include "nsIContentIterator.h" #include "nsEventListenerManager.h" #include "nsFocusManager.h" #include "nsILinkHandler.h" #include "nsIScriptGlobalObject.h"
--- a/content/base/src/nsContentUtils.cpp +++ b/content/base/src/nsContentUtils.cpp @@ -88,16 +88,17 @@ #include "nsIChromeRegistry.h" #include "nsIConsoleService.h" #include "nsIContent.h" #include "nsIContentSecurityPolicy.h" #include "nsIContentSink.h" #include "nsIContentViewer.h" #include "nsIDocShell.h" #include "nsIDocument.h" +#include "nsIDocumentEncoder.h" #include "nsIDOMDocument.h" #include "nsIDOMDocumentType.h" #include "nsIDOMEvent.h" #include "nsIDOMHTMLElement.h" #include "nsIDOMHTMLFormElement.h" #include "nsIDOMHTMLInputElement.h" #include "nsIDOMNode.h" #include "nsIDOMNodeList.h"
--- a/content/base/src/nsDocument.cpp +++ b/content/base/src/nsDocument.cpp @@ -208,16 +208,18 @@ #include "nsIEditor.h" #include "nsIDOMCSSStyleRule.h" #include "mozilla/css/Rule.h" #include "nsIDOMLocation.h" #include "nsIHttpChannelInternal.h" #include "nsISecurityConsoleMessage.h" #include "nsCharSeparatedTokenizer.h" #include "mozilla/dom/XPathEvaluator.h" +#include "nsIDocumentEncoder.h" +#include "nsIStructuredCloneContainer.h" using namespace mozilla; using namespace mozilla::dom; typedef nsTArray<Link*> LinkArray; #ifdef PR_LOGGING static PRLogModuleInfo* gDocumentLeakPRLog; @@ -11370,16 +11372,53 @@ XPathEvaluator* nsIDocument::XPathEvaluator() { if (!mXPathEvaluator) { mXPathEvaluator = new dom::XPathEvaluator(this); } return mXPathEvaluator; } +already_AddRefed<nsIDocumentEncoder> +nsIDocument::GetCachedEncoder() +{ + return mCachedEncoder.forget(); +} + +void +nsIDocument::SetCachedEncoder(already_AddRefed<nsIDocumentEncoder> aEncoder) +{ + mCachedEncoder = aEncoder; +} + +void +nsIDocument::SetContentTypeInternal(const nsACString& aType) +{ + mCachedEncoder = nullptr; + mContentType = aType; +} + +nsILoadContext* +nsIDocument::GetLoadContext() const +{ + nsCOMPtr<nsISupports> container = GetContainer(); + if (container) { + nsCOMPtr<nsILoadContext> loadContext = do_QueryInterface(container); + return loadContext; + } + return nullptr; +} + +void +nsIDocument::SetStateObject(nsIStructuredCloneContainer *scContainer) +{ + mStateObjectContainer = scContainer; + mStateObjectCached = nullptr; +} + bool MarkDocumentTreeToBeInSyncOperation(nsIDocument* aDoc, void* aData) { nsCOMArray<nsIDocument>* documents = static_cast<nsCOMArray<nsIDocument>*>(aData); if (aDoc) { aDoc->SetIsInSyncOperation(true); documents->AppendObject(aDoc);
--- a/dom/base/nsGlobalWindow.cpp +++ b/dom/base/nsGlobalWindow.cpp @@ -143,16 +143,17 @@ #include "nsEventStateManager.h" #include "nsITimedChannel.h" #include "nsServiceManagerUtils.h" #ifdef MOZ_XUL #include "nsIDOMXULControlElement.h" #include "nsMenuPopupFrame.h" #endif #include "nsIDOMCustomEvent.h" +#include "nsIFrameRequestCallback.h" #include "xpcprivate.h" #ifdef NS_PRINTING #include "nsIPrintSettings.h" #include "nsIPrintSettingsService.h" #include "nsIWebBrowserPrint.h" #endif @@ -12142,9 +12143,9 @@ nsGlobalWindow::DisableNetworkEvent(uint } #define WINDOW_ONLY_EVENT EVENT #define TOUCH_EVENT EVENT #include "nsEventNameList.h" #undef TOUCH_EVENT #undef WINDOW_ONLY_EVENT #undef BEFOREUNLOAD_EVENT #undef ERROR_EVENT -#undef EVENT \ No newline at end of file +#undef EVENT
--- a/dom/ipc/TabChild.cpp +++ b/dom/ipc/TabChild.cpp @@ -62,16 +62,17 @@ #include "nsThreadUtils.h" #include "nsWeakReference.h" #include "PCOMContentPermissionRequestChild.h" #include "PuppetWidget.h" #include "StructuredCloneUtils.h" #include "nsViewportInfo.h" #include "JavaScriptChild.h" #include "APZCCallbackHelper.h" +#include "nsILoadContext.h" #define BROWSER_ELEMENT_CHILD_SCRIPT \ NS_LITERAL_STRING("chrome://global/content/BrowserElementChild.js") using namespace mozilla; using namespace mozilla::dom; using namespace mozilla::dom::ipc; using namespace mozilla::ipc;
--- a/dom/plugins/base/nsNPAPIPluginInstance.cpp +++ b/dom/plugins/base/nsNPAPIPluginInstance.cpp @@ -33,16 +33,17 @@ #include "nsJSNPRuntime.h" #include "nsPluginStreamListenerPeer.h" #include "nsSize.h" #include "nsNetCID.h" #include "nsIContent.h" #include "nsVersionComparator.h" #include "mozilla/Preferences.h" #include "mozilla/unused.h" +#include "nsILoadContext.h" using namespace mozilla; #ifdef MOZ_WIDGET_ANDROID #include "ANPBase.h" #include <android/log.h> #include "android_npapi.h" #include "mozilla/Mutex.h"
--- a/embedding/browser/webBrowser/nsWebBrowser.cpp +++ b/embedding/browser/webBrowser/nsWebBrowser.cpp @@ -30,16 +30,17 @@ #include "nsIURI.h" #include "nsIWebBrowserPersist.h" #include "nsCWebBrowserPersist.h" #include "nsIServiceManager.h" #include "nsAutoPtr.h" #include "nsFocusManager.h" #include "Layers.h" #include "gfxContext.h" +#include "nsILoadContext.h" // for painting the background window #include "mozilla/LookAndFeel.h" // Printing Includes #ifdef NS_PRINTING #include "nsIWebBrowserPrint.h" #include "nsIContentViewer.h"
--- a/layout/base/nsRefreshDriver.cpp +++ b/layout/base/nsRefreshDriver.cpp @@ -42,16 +42,17 @@ #include "nsViewManager.h" #include "GeckoProfiler.h" #include "nsNPAPIPluginInstance.h" #include "nsPerformance.h" #include "mozilla/dom/WindowBinding.h" #include "RestyleManager.h" #include "Layers.h" #include "imgIContainer.h" +#include "nsIFrameRequestCallback.h" using namespace mozilla; using namespace mozilla::widget; #ifdef PR_LOGGING static PRLogModuleInfo *gLog = nullptr; #define LOG(...) PR_LOG(gLog, PR_LOG_NOTICE, (__VA_ARGS__)) #else
--- a/layout/printing/nsPrintEngine.cpp +++ b/layout/printing/nsPrintEngine.cpp @@ -115,16 +115,17 @@ static const char kPrintingPromptService #include "nsIDocumentViewerPrint.h" #include "nsFocusManager.h" #include "nsRange.h" #include "nsCDefaultURIFixup.h" #include "nsIURIFixup.h" #include "mozilla/dom/Element.h" #include "nsContentList.h" +#include "nsIChannel.h" using namespace mozilla; using namespace mozilla::dom; //----------------------------------------------------- // PR LOGGING #ifdef MOZ_LOGGING #define FORCE_PR_LOG /* Allow logging in the release build */
--- a/toolkit/components/satchel/nsFormFillController.cpp +++ b/toolkit/components/satchel/nsFormFillController.cpp @@ -30,16 +30,17 @@ #include "nsIDOMMouseEvent.h" #include "mozilla/ModuleUtils.h" #include "nsToolkitCompsCID.h" #include "nsEmbedCID.h" #include "nsIDOMNSEditableElement.h" #include "mozilla/dom/Element.h" #include "nsContentUtils.h" #include "nsDOMEvent.h" +#include "nsILoadContext.h" using namespace mozilla::dom; NS_IMPL_ISUPPORTS6(nsFormFillController, nsIFormFillController, nsIAutoCompleteInput, nsIAutoCompleteSearch, nsIDOMEventListener,