-
-
diff --git a/content/html/content/test/test_bug588683-1.html b/content/html/content/test/test_bug588683-1.html
index 44f7977bc7f..0cbdd8162b1 100644
--- a/content/html/content/test/test_bug588683-1.html
+++ b/content/html/content/test/test_bug588683-1.html
@@ -401,12 +401,13 @@ var forms = [
var elementNames = [
'button', 'fieldset', 'input', 'label', 'object', 'output', 'select',
- 'textarea', 'progress',
+ 'textarea',
];
var todoElements = [
['keygen', 'Keygen'],
['meter', 'Meter'],
+ ['progress', 'Progress'],
];
for each(var e in todoElements) {
diff --git a/layout/base/nsCSSFrameConstructor.cpp b/layout/base/nsCSSFrameConstructor.cpp
index 769aec2e73a..af1aa23f1f5 100644
--- a/layout/base/nsCSSFrameConstructor.cpp
+++ b/layout/base/nsCSSFrameConstructor.cpp
@@ -3548,8 +3548,7 @@ nsCSSFrameConstructor::FindHTMLData(Element* aElement,
SIMPLE_TAG_CREATE(video, NS_NewHTMLVideoFrame),
SIMPLE_TAG_CREATE(audio, NS_NewHTMLVideoFrame),
#endif
- SIMPLE_TAG_CREATE(isindex, NS_NewIsIndexFrame),
- SIMPLE_TAG_CREATE(progress, NS_NewProgressFrame)
+ SIMPLE_TAG_CREATE(isindex, NS_NewIsIndexFrame)
};
return FindDataByTag(aTag, aElement, aStyleContext, sHTMLData,
diff --git a/layout/forms/Makefile.in b/layout/forms/Makefile.in
index 6fb5c1f0797..78a28ef46f9 100644
--- a/layout/forms/Makefile.in
+++ b/layout/forms/Makefile.in
@@ -72,7 +72,6 @@ CPPSRCS = \
nsGfxButtonControlFrame.cpp \
nsGfxCheckboxControlFrame.cpp \
nsGfxRadioControlFrame.cpp \
- nsProgressFrame.cpp \
nsTextControlFrame.cpp \
nsHTMLButtonControlFrame.cpp \
nsImageControlFrame.cpp \
diff --git a/layout/forms/nsProgressFrame.cpp b/layout/forms/nsProgressFrame.cpp
deleted file mode 100644
index 6c572fdc434..00000000000
--- a/layout/forms/nsProgressFrame.cpp
+++ /dev/null
@@ -1,289 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is Mozilla Foundation
- * Portions created by the Initial Developer are Copyright (C) 2010
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- * Mounir Lamouri (original author)
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either of the GNU General Public License Version 2 or later (the "GPL"),
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-#include "nsProgressFrame.h"
-
-#include "nsIDOMHTMLProgressElement.h"
-#include "nsIContent.h"
-#include "prtypes.h"
-#include "nsPresContext.h"
-#include "nsGkAtoms.h"
-#include "nsINameSpaceManager.h"
-#include "nsIDocument.h"
-#include "nsIPresShell.h"
-#include "nsNodeInfoManager.h"
-#include "nsINodeInfo.h"
-#include "nsContentCreatorFunctions.h"
-#include "nsContentUtils.h"
-#include "nsFormControlFrame.h"
-#include "nsFontMetrics.h"
-
-
-nsIFrame*
-NS_NewProgressFrame(nsIPresShell* aPresShell, nsStyleContext* aContext)
-{
- return new (aPresShell) nsProgressFrame(aContext);
-}
-
-NS_IMPL_FRAMEARENA_HELPERS(nsProgressFrame)
-
-nsProgressFrame::nsProgressFrame(nsStyleContext* aContext)
- : nsHTMLContainerFrame(aContext)
- , mBarDiv(nsnull)
-{
-}
-
-nsProgressFrame::~nsProgressFrame()
-{
-}
-
-NS_IMETHODIMP
-nsProgressFrame::SetInitialChildList(nsIAtom* aListName,
- nsFrameList& aChildList)
-{
- NS_ASSERTION(mBarDiv, "Progress bar div must exist!");
-
- nsresult rv = nsHTMLContainerFrame::SetInitialChildList(aListName,
- aChildList);
-
- nsIFrame* barFrame = mBarDiv->GetPrimaryFrame();
- nsCSSPseudoElements::Type pseudoType = nsCSSPseudoElements::ePseudo_mozProgressBar;
- nsRefPtr newStyleContext;
-
- newStyleContext = barFrame->PresContext()->StyleSet()->
- ResolvePseudoElementStyle(mContent->AsElement(), pseudoType,
- barFrame->GetParent()->GetStyleContext());
-
- if (newStyleContext) {
- barFrame->SetStyleContext(newStyleContext);
- }
-
- return rv;
-}
-
-void
-nsProgressFrame::DestroyFrom(nsIFrame* aDestructRoot)
-{
- NS_ASSERTION(!GetPrevContinuation(),
- "nsProgressFrame should not have continuations; if it does we "
- "need to call RegUnregAccessKey only for the first.");
- nsFormControlFrame::RegUnRegAccessKey(static_cast(this), PR_FALSE);
- nsContentUtils::DestroyAnonymousContent(&mBarDiv);
- nsHTMLContainerFrame::DestroyFrom(aDestructRoot);
-}
-
-nsresult
-nsProgressFrame::CreateAnonymousContent(nsTArray& aElements)
-{
- // Get the NodeInfoManager and tag necessary to create the progress bar div.
- nsCOMPtr doc = mContent->GetDocument();
-
- nsCOMPtr nodeInfo;
- nodeInfo = doc->NodeInfoManager()->GetNodeInfo(nsGkAtoms::div, nsnull,
- kNameSpaceID_XHTML);
- NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
-
- // Create the div.
- nsresult rv = NS_NewHTMLElement(getter_AddRefs(mBarDiv), nodeInfo.forget(),
- mozilla::dom::NOT_FROM_PARSER);
- NS_ENSURE_SUCCESS(rv, rv);
-
- if (!aElements.AppendElement(mBarDiv)) {
- return NS_ERROR_OUT_OF_MEMORY;
- }
-
- return NS_OK;
-}
-
-void
-nsProgressFrame::AppendAnonymousContentTo(nsBaseContentList& aElements,
- PRUint32 aFilter)
-{
- aElements.MaybeAppendElement(mBarDiv);
-}
-
-NS_QUERYFRAME_HEAD(nsProgressFrame)
- NS_QUERYFRAME_ENTRY(nsProgressFrame)
- NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
-NS_QUERYFRAME_TAIL_INHERITING(nsHTMLContainerFrame)
-
-
-NS_IMETHODIMP nsProgressFrame::Reflow(nsPresContext* aPresContext,
- nsHTMLReflowMetrics& aDesiredSize,
- const nsHTMLReflowState& aReflowState,
- nsReflowStatus& aStatus)
-{
- DO_GLOBAL_REFLOW_COUNT("nsProgressFrame");
- DISPLAY_REFLOW(aPresContext, this, aReflowState, aDesiredSize, aStatus);
-
- NS_ASSERTION(mBarDiv, "Progress bar div must exist!");
- NS_ASSERTION(!GetPrevContinuation(),
- "nsProgressFrame should not have continuations; if it does we "
- "need to call RegUnregAccessKey only for the first.");
-
- if (mState & NS_FRAME_FIRST_REFLOW) {
- nsFormControlFrame::RegUnRegAccessKey(this, PR_TRUE);
- }
-
- nsIFrame* barFrame = mBarDiv->GetPrimaryFrame();
- NS_ASSERTION(barFrame, "The progress frame should have a child with a frame!");
-
- ReflowBarFrame(barFrame, aPresContext, aReflowState, aStatus);
-
- aDesiredSize.width = aReflowState.ComputedWidth() +
- aReflowState.mComputedBorderPadding.LeftRight();
- aDesiredSize.height = aReflowState.ComputedHeight() +
- aReflowState.mComputedBorderPadding.TopBottom();
- aDesiredSize.height = NS_CSS_MINMAX(aDesiredSize.height,
- aReflowState.mComputedMinHeight,
- aReflowState.mComputedMaxHeight);
-
- aDesiredSize.SetOverflowAreasToDesiredBounds();
- ConsiderChildOverflow(aDesiredSize.mOverflowAreas, barFrame);
- FinishAndStoreOverflow(&aDesiredSize);
-
- aStatus = NS_FRAME_COMPLETE;
-
- NS_FRAME_SET_TRUNCATION(aStatus, aReflowState, aDesiredSize);
-
- return NS_OK;
-}
-
-void
-nsProgressFrame::ReflowBarFrame(nsIFrame* aBarFrame,
- nsPresContext* aPresContext,
- const nsHTMLReflowState& aReflowState,
- nsReflowStatus& aStatus)
-{
- nsHTMLReflowState reflowState(aPresContext, aReflowState, aBarFrame,
- nsSize(aReflowState.ComputedWidth(),
- NS_UNCONSTRAINEDSIZE));
- nscoord width = aReflowState.ComputedWidth();
- nscoord xoffset = aReflowState.mComputedBorderPadding.left;
- nscoord yoffset = aReflowState.mComputedBorderPadding.top;
-
- double position;
- nsCOMPtr progressElement =
- do_QueryInterface(mContent);
- progressElement->GetPosition(&position);
-
- // Force the bar's width to match the current progress.
- // When indeterminate, the progress' width will be 100%.
- if (position >= 0.0) {
- width *= position;
- }
-
- if (GetStyleVisibility()->mDirection == NS_STYLE_DIRECTION_RTL) {
- xoffset += aReflowState.ComputedWidth() - width;
- }
-
- // The bar width is fixed in these cases:
- // - the progress position is determined: the bar width is fixed according
- // to it's value.
- // - the progress position is indeterminate and the bar appearance should be
- // shown as native: the bar width is forced to 100%.
- // Otherwise (when the progress is indeterminate and the bar appearance isn't
- // native), the bar width isn't fixed and can be set by the author.
- if (position != -1 || ShouldUseNativeStyle()) {
- width -= reflowState.mComputedMargin.LeftRight() +
- reflowState.mComputedBorderPadding.LeftRight();
- width = NS_MAX(width, 0);
- reflowState.SetComputedWidth(width);
- }
-
- xoffset += reflowState.mComputedMargin.left;
- yoffset += reflowState.mComputedMargin.top;
-
- nsHTMLReflowMetrics barDesiredSize;
- ReflowChild(aBarFrame, aPresContext, barDesiredSize, reflowState, xoffset,
- yoffset, 0, aStatus);
- FinishReflowChild(aBarFrame, aPresContext, &reflowState, barDesiredSize,
- xoffset, yoffset, 0);
-}
-
-NS_IMETHODIMP
-nsProgressFrame::AttributeChanged(PRInt32 aNameSpaceID,
- nsIAtom* aAttribute,
- PRInt32 aModType)
-{
- NS_ASSERTION(mBarDiv, "Progress bar div must exist!");
-
- if (aNameSpaceID == kNameSpaceID_None &&
- (aAttribute == nsGkAtoms::value || aAttribute == nsGkAtoms::max)) {
- nsIFrame* barFrame = mBarDiv->GetPrimaryFrame();
- NS_ASSERTION(barFrame, "The progress frame should have a child with a frame!");
- PresContext()->PresShell()->FrameNeedsReflow(barFrame, nsIPresShell::eResize,
- NS_FRAME_IS_DIRTY);
- }
-
- return nsHTMLContainerFrame::AttributeChanged(aNameSpaceID, aAttribute,
- aModType);
-}
-
-nsSize
-nsProgressFrame::ComputeAutoSize(nsRenderingContext *aRenderingContext,
- nsSize aCBSize, nscoord aAvailableWidth,
- nsSize aMargin, nsSize aBorder,
- nsSize aPadding, PRBool aShrinkWrap)
-{
- nsRefPtr fontMet;
- NS_ENSURE_SUCCESS(nsLayoutUtils::GetFontMetricsForFrame(this,
- getter_AddRefs(fontMet)),
- nsSize(0, 0));
-
- nsSize autoSize;
- autoSize.height = autoSize.width = fontMet->Font().size; // 1em
- autoSize.width *= 10; // 10em
-
- return autoSize;
-}
-
-bool
-nsProgressFrame::ShouldUseNativeStyle() const
-{
- // Use the native style if these conditions are satisfied:
- // - both frames use the native appearance;
- // - neither frame has author specified rules setting the border or the
- // background.
- return GetStyleDisplay()->mAppearance == NS_THEME_PROGRESSBAR &&
- mBarDiv->GetPrimaryFrame()->GetStyleDisplay()->mAppearance == NS_THEME_PROGRESSBAR_CHUNK &&
- !PresContext()->HasAuthorSpecifiedRules(const_cast(this),
- NS_AUTHOR_SPECIFIED_BORDER | NS_AUTHOR_SPECIFIED_BACKGROUND) &&
- !PresContext()->HasAuthorSpecifiedRules(mBarDiv->GetPrimaryFrame(),
- NS_AUTHOR_SPECIFIED_BORDER | NS_AUTHOR_SPECIFIED_BACKGROUND);
-}
-
diff --git a/layout/forms/nsProgressFrame.h b/layout/forms/nsProgressFrame.h
deleted file mode 100644
index 4ff4ee0ec4d..00000000000
--- a/layout/forms/nsProgressFrame.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is Mozilla Foundation
- * Portions created by the Initial Developer are Copyright (C) 2010
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- * Mounir Lamouri (original author)
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either of the GNU General Public License Version 2 or later (the "GPL"),
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-#ifndef nsProgressFrame_h___
-#define nsProgressFrame_h___
-
-#include "nsHTMLContainerFrame.h"
-#include "nsIAnonymousContentCreator.h"
-#include "nsCOMPtr.h"
-
-
-class nsProgressFrame : public nsHTMLContainerFrame,
- public nsIAnonymousContentCreator
-{
-public:
- NS_DECL_QUERYFRAME_TARGET(nsProgressFrame)
- NS_DECL_QUERYFRAME
- NS_DECL_FRAMEARENA_HELPERS
-
- nsProgressFrame(nsStyleContext* aContext);
- virtual ~nsProgressFrame();
-
- NS_IMETHOD SetInitialChildList(nsIAtom* aListName,
- nsFrameList& aChildList);
-
- virtual void DestroyFrom(nsIFrame* aDestructRoot);
-
- NS_IMETHOD Reflow(nsPresContext* aCX,
- nsHTMLReflowMetrics& aDesiredSize,
- const nsHTMLReflowState& aReflowState,
- nsReflowStatus& aStatus);
-
-#ifdef NS_DEBUG
- NS_IMETHOD GetFrameName(nsAString& aResult) const {
- return MakeFrameName(NS_LITERAL_STRING("Progress"), aResult);
- }
-#endif
-
- virtual PRBool IsLeaf() const { return PR_TRUE; }
-
- // nsIAnonymousContentCreator
- virtual nsresult CreateAnonymousContent(nsTArray& aElements);
- virtual void AppendAnonymousContentTo(nsBaseContentList& aElements,
- PRUint32 aFilter);
-
- NS_IMETHOD AttributeChanged(PRInt32 aNameSpaceID,
- nsIAtom* aAttribute,
- PRInt32 aModType);
-
- virtual nsSize ComputeAutoSize(nsRenderingContext *aRenderingContext,
- nsSize aCBSize, nscoord aAvailableWidth,
- nsSize aMargin, nsSize aBorder,
- nsSize aPadding, PRBool aShrinkWrap);
-
- virtual PRBool IsFrameOfType(PRUint32 aFlags) const
- {
- return nsHTMLContainerFrame::IsFrameOfType(aFlags &
- ~(nsIFrame::eReplaced | nsIFrame::eReplacedContainsBlock));
- }
-
- /**
- * Returns whether the frame and its child should use the native style.
- */
- bool ShouldUseNativeStyle() const;
-
-protected:
- // Helper function which reflow the anonymous div frame.
- void ReflowBarFrame(nsIFrame* aBarFrame,
- nsPresContext* aPresContext,
- const nsHTMLReflowState& aReflowState,
- nsReflowStatus& aStatus);
-
- /**
- * The div used to show the progress bar.
- * @see nsProgressFrame::CreateAnonymousContent
- */
- nsCOMPtr mBarDiv;
-};
-
-#endif
-
diff --git a/layout/generic/nsHTMLParts.h b/layout/generic/nsHTMLParts.h
index 4428c865d3f..56f323a8c0a 100644
--- a/layout/generic/nsHTMLParts.h
+++ b/layout/generic/nsHTMLParts.h
@@ -204,8 +204,6 @@ nsIFrame*
NS_NewComboboxControlFrame(nsIPresShell* aPresShell, nsStyleContext* aContext, PRUint32 aFlags);
nsIFrame*
NS_NewIsIndexFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
-nsIFrame*
-NS_NewProgressFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
// Table frame factories
nsIFrame*
diff --git a/layout/generic/nsQueryFrame.h b/layout/generic/nsQueryFrame.h
index e88fcdf919e..e474daa9a13 100644
--- a/layout/generic/nsQueryFrame.h
+++ b/layout/generic/nsQueryFrame.h
@@ -185,7 +185,6 @@ public:
nsPageFrame_id,
nsPlaceholderFrame_id,
nsPopupSetFrame_id,
- nsProgressFrame_id,
nsProgressMeterFrame_id,
nsResizerFrame_id,
nsRootBoxFrame_id,
diff --git a/layout/reftests/bugs/474336-1-ref.xul b/layout/reftests/bugs/474336-1-ref.xul
index 6d11e409231..d9d75462d8c 100644
--- a/layout/reftests/bugs/474336-1-ref.xul
+++ b/layout/reftests/bugs/474336-1-ref.xul
@@ -10,7 +10,6 @@
background-color: blue;
}
#prog .progress-bar {
- -moz-appearance: none;
border-radius: 3px 3px;
background-color: red;
}
diff --git a/layout/reftests/bugs/474336-1.xul b/layout/reftests/bugs/474336-1.xul
index 958d6c49832..ec918284153 100644
--- a/layout/reftests/bugs/474336-1.xul
+++ b/layout/reftests/bugs/474336-1.xul
@@ -10,7 +10,6 @@
background-color: blue;
}
#prog .progress-bar {
- -moz-appearance: none;
border-radius: 3px 3px;
background-color: red;
}
diff --git a/layout/reftests/forms/progress/bar-pseudo-element-ref.html b/layout/reftests/forms/progress/bar-pseudo-element-ref.html
deleted file mode 100644
index ae95d4e233d..00000000000
--- a/layout/reftests/forms/progress/bar-pseudo-element-ref.html
+++ /dev/null
@@ -1,105 +0,0 @@
-
-
-
-
-
-