summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/WebKit/Source/core/html/forms/BaseChooserOnlyDateAndTimeInputType.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/WebKit/Source/core/html/forms/BaseChooserOnlyDateAndTimeInputType.cpp')
-rw-r--r--chromium/third_party/WebKit/Source/core/html/forms/BaseChooserOnlyDateAndTimeInputType.cpp28
1 files changed, 19 insertions, 9 deletions
diff --git a/chromium/third_party/WebKit/Source/core/html/forms/BaseChooserOnlyDateAndTimeInputType.cpp b/chromium/third_party/WebKit/Source/core/html/forms/BaseChooserOnlyDateAndTimeInputType.cpp
index 3967a8ac871..76f32aba3de 100644
--- a/chromium/third_party/WebKit/Source/core/html/forms/BaseChooserOnlyDateAndTimeInputType.cpp
+++ b/chromium/third_party/WebKit/Source/core/html/forms/BaseChooserOnlyDateAndTimeInputType.cpp
@@ -29,17 +29,16 @@
#include "bindings/v8/ExceptionStatePlaceholder.h"
#include "core/dom/shadow/ShadowRoot.h"
+#include "core/frame/FrameHost.h"
#include "core/html/HTMLDivElement.h"
#include "core/html/HTMLInputElement.h"
#include "core/page/Chrome.h"
-#include "core/page/Page.h"
#include "platform/UserGestureIndicator.h"
namespace WebCore {
BaseChooserOnlyDateAndTimeInputType::~BaseChooserOnlyDateAndTimeInputType()
{
- closeDateTimeChooser();
}
void BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent(Event*)
@@ -54,25 +53,29 @@ void BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent(Event*)
DateTimeChooserParameters parameters;
if (!element().setupDateTimeChooserParameters(parameters))
return;
- m_dateTimeChooser = element().document().page()->chrome().openDateTimeChooser(this, parameters);
+ m_dateTimeChooser = element().document().frameHost()->chrome().openDateTimeChooser(this, parameters);
}
void BaseChooserOnlyDateAndTimeInputType::createShadowSubtree()
{
DEFINE_STATIC_LOCAL(AtomicString, valueContainerPseudo, ("-webkit-date-and-time-value", AtomicString::ConstructFromLiteral));
- RefPtr<HTMLDivElement> valueContainer = HTMLDivElement::create(element().document());
- valueContainer->setPseudo(valueContainerPseudo);
+ RefPtrWillBeRawPtr<HTMLDivElement> valueContainer = HTMLDivElement::create(element().document());
+ valueContainer->setShadowPseudoId(valueContainerPseudo);
element().userAgentShadowRoot()->appendChild(valueContainer.get());
- updateAppearance();
+ updateView();
}
-void BaseChooserOnlyDateAndTimeInputType::updateAppearance()
+void BaseChooserOnlyDateAndTimeInputType::updateView()
{
Node* node = element().userAgentShadowRoot()->firstChild();
if (!node || !node->isHTMLElement())
return;
- String displayValue = visibleValue();
+ String displayValue;
+ if (!element().suggestedValue().isNull())
+ displayValue = element().suggestedValue();
+ else
+ displayValue = visibleValue();
if (displayValue.isEmpty()) {
// Need to put something to keep text baseline.
displayValue = " ";
@@ -84,7 +87,7 @@ void BaseChooserOnlyDateAndTimeInputType::setValue(const String& value, bool val
{
BaseDateAndTimeInputType::setValue(value, valueChanged, eventBehavior);
if (valueChanged)
- updateAppearance();
+ updateView();
}
void BaseChooserOnlyDateAndTimeInputType::closePopupView()
@@ -138,5 +141,12 @@ void BaseChooserOnlyDateAndTimeInputType::accessKeyAction(bool sendMouseEvents)
BaseClickableWithKeyInputType::accessKeyAction(element(), sendMouseEvents);
}
+void BaseChooserOnlyDateAndTimeInputType::trace(Visitor* visitor)
+{
+ visitor->trace(m_dateTimeChooser);
+ BaseDateAndTimeInputType::trace(visitor);
+ DateTimeChooserClient::trace(visitor);
+}
+
}
#endif