diff --git a/mozilla/content/html/content/src/nsHTMLAtomList.h b/mozilla/content/html/content/src/nsHTMLAtomList.h
index 6ba1f449afa..98b61a5ea54 100644
--- a/mozilla/content/html/content/src/nsHTMLAtomList.h
+++ b/mozilla/content/html/content/src/nsHTMLAtomList.h
@@ -62,7 +62,6 @@ HTML_ATOM(mozSingleLineTextControlFrame, ":-moz-singleline-textcontrol-frame")
HTML_ATOM(mozFocusInnerPseudo, ":-moz-focus-inner")
HTML_ATOM(mozFocusOuterPseudo, ":-moz-focus-outer")
HTML_ATOM(mozDisplayComboboxControlFrame, ":-moz-display-comboboxcontrol-frame")
-HTML_ATOM(inputCheckedPseudo, "_moz-input-checked")
HTML_ATOM(_baseHref, NS_HTML_BASE_HREF)
HTML_ATOM(_baseTarget, NS_HTML_BASE_TARGET)
diff --git a/mozilla/content/html/content/src/nsHTMLInputElement.cpp b/mozilla/content/html/content/src/nsHTMLInputElement.cpp
index b2227e91546..fd5a66dd3f4 100644
--- a/mozilla/content/html/content/src/nsHTMLInputElement.cpp
+++ b/mozilla/content/html/content/src/nsHTMLInputElement.cpp
@@ -94,6 +94,7 @@
#include "nsMutationEvent.h"
#include "nsRuleNode.h"
+#include "nsCSSAtoms.h"
// input type=file
#include "nsIMIMEService.h"
@@ -881,14 +882,10 @@ nsHTMLInputElement::SetCheckedInternal(PRBool aChecked)
// You don't refcount frames.
}
}
- // special attr for XBL form controls
- else if (type == NS_FORM_INPUT_CHECKBOX) {
- if (aChecked)
- SetAttr(kNameSpaceID_None, nsHTMLAtoms::inputCheckedPseudo,
- NS_LITERAL_STRING(""), PR_TRUE);
- else
- UnsetAttr(kNameSpaceID_None, nsHTMLAtoms::inputCheckedPseudo, PR_TRUE);
- }
+
+ // Notify the document that the CSS :checked pseudoclass for this element
+ // has changed state.
+ mDocument->ContentStatesChanged(this, nsnull, nsCSSAtoms::checkedPseudo);
return NS_OK;
}
diff --git a/mozilla/content/html/style/src/nsCSSStyleSheet.cpp b/mozilla/content/html/style/src/nsCSSStyleSheet.cpp
index 51ceaef5422..6d25d50daf2 100644
--- a/mozilla/content/html/style/src/nsCSSStyleSheet.cpp
+++ b/mozilla/content/html/style/src/nsCSSStyleSheet.cpp
@@ -70,6 +70,7 @@
#include "nsIDOMHTMLAnchorElement.h"
#include "nsIDOMHTMLLinkElement.h"
#include "nsIDOMHTMLAreaElement.h"
+#include "nsIDOMHTMLInputElement.h"
#include "nsIDOMHTMLOptionElement.h"
#include "nsIDOMStyleSheetList.h"
#include "nsIDOMCSSStyleSheet.h"
@@ -3312,6 +3313,9 @@ RuleProcessorData::RuleProcessorData(nsIPresContext* aPresContext,
if (mContentTag == nsHTMLAtoms::option) {
nsCOMPtr optEl = do_QueryInterface(mContent);
optEl->GetSelected(&isChecked);
+ } else if (mContentTag == nsHTMLAtoms::input) {
+ nsCOMPtr inputEl = do_QueryInterface(mContent);
+ inputEl->GetChecked(&isChecked);
}
mIsChecked = isChecked;
diff --git a/mozilla/content/shared/public/nsHTMLAtomList.h b/mozilla/content/shared/public/nsHTMLAtomList.h
index 6ba1f449afa..98b61a5ea54 100644
--- a/mozilla/content/shared/public/nsHTMLAtomList.h
+++ b/mozilla/content/shared/public/nsHTMLAtomList.h
@@ -62,7 +62,6 @@ HTML_ATOM(mozSingleLineTextControlFrame, ":-moz-singleline-textcontrol-frame")
HTML_ATOM(mozFocusInnerPseudo, ":-moz-focus-inner")
HTML_ATOM(mozFocusOuterPseudo, ":-moz-focus-outer")
HTML_ATOM(mozDisplayComboboxControlFrame, ":-moz-display-comboboxcontrol-frame")
-HTML_ATOM(inputCheckedPseudo, "_moz-input-checked")
HTML_ATOM(_baseHref, NS_HTML_BASE_HREF)
HTML_ATOM(_baseTarget, NS_HTML_BASE_TARGET)
diff --git a/mozilla/layout/forms/resources/skin/checkbox.css b/mozilla/layout/forms/resources/skin/checkbox.css
index 4732b6535b2..85c7fea3dce 100644
--- a/mozilla/layout/forms/resources/skin/checkbox.css
+++ b/mozilla/layout/forms/resources/skin/checkbox.css
@@ -56,11 +56,11 @@ input[type="checkbox"][disabled="true"] {
/* ..... checked state ..... */
-input[type="checkbox"][_moz-input-checked] {
+input[type="checkbox"]:checked {
list-style-image: url("chrome://global/skin/checkbox/cbox-check.gif");
}
-input[type="checkbox"][_moz-input-checked][disabled="true"] {
+input[type="checkbox"][disabled="true"]:checked {
list-style-image: url("chrome://global/skin/checkbox/cbox-check-dis.gif") !important
}
diff --git a/mozilla/layout/html/forms/resources/skin/checkbox.css b/mozilla/layout/html/forms/resources/skin/checkbox.css
index 4732b6535b2..85c7fea3dce 100644
--- a/mozilla/layout/html/forms/resources/skin/checkbox.css
+++ b/mozilla/layout/html/forms/resources/skin/checkbox.css
@@ -56,11 +56,11 @@ input[type="checkbox"][disabled="true"] {
/* ..... checked state ..... */
-input[type="checkbox"][_moz-input-checked] {
+input[type="checkbox"]:checked {
list-style-image: url("chrome://global/skin/checkbox/cbox-check.gif");
}
-input[type="checkbox"][_moz-input-checked][disabled="true"] {
+input[type="checkbox"][disabled="true"]:checked {
list-style-image: url("chrome://global/skin/checkbox/cbox-check-dis.gif") !important
}
diff --git a/mozilla/layout/style/nsCSSStyleSheet.cpp b/mozilla/layout/style/nsCSSStyleSheet.cpp
index 51ceaef5422..6d25d50daf2 100644
--- a/mozilla/layout/style/nsCSSStyleSheet.cpp
+++ b/mozilla/layout/style/nsCSSStyleSheet.cpp
@@ -70,6 +70,7 @@
#include "nsIDOMHTMLAnchorElement.h"
#include "nsIDOMHTMLLinkElement.h"
#include "nsIDOMHTMLAreaElement.h"
+#include "nsIDOMHTMLInputElement.h"
#include "nsIDOMHTMLOptionElement.h"
#include "nsIDOMStyleSheetList.h"
#include "nsIDOMCSSStyleSheet.h"
@@ -3312,6 +3313,9 @@ RuleProcessorData::RuleProcessorData(nsIPresContext* aPresContext,
if (mContentTag == nsHTMLAtoms::option) {
nsCOMPtr optEl = do_QueryInterface(mContent);
optEl->GetSelected(&isChecked);
+ } else if (mContentTag == nsHTMLAtoms::input) {
+ nsCOMPtr inputEl = do_QueryInterface(mContent);
+ inputEl->GetChecked(&isChecked);
}
mIsChecked = isChecked;
diff --git a/mozilla/themes/classic/forms/checkbox.css b/mozilla/themes/classic/forms/checkbox.css
index 4732b6535b2..85c7fea3dce 100644
--- a/mozilla/themes/classic/forms/checkbox.css
+++ b/mozilla/themes/classic/forms/checkbox.css
@@ -56,11 +56,11 @@ input[type="checkbox"][disabled="true"] {
/* ..... checked state ..... */
-input[type="checkbox"][_moz-input-checked] {
+input[type="checkbox"]:checked {
list-style-image: url("chrome://global/skin/checkbox/cbox-check.gif");
}
-input[type="checkbox"][_moz-input-checked][disabled="true"] {
+input[type="checkbox"][disabled="true"]:checked {
list-style-image: url("chrome://global/skin/checkbox/cbox-check-dis.gif") !important
}