зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1344642 - Part 1: Cleanup dom.forms.datepicker related code. r=smaug
This patch basically reverts Bug 825294. --HG-- extra : rebase_source : 58b235bfddb5acd1ec0cf1afd8f34cbb8c4e09c1
This commit is contained in:
Родитель
0f05af4ad2
Коммит
3c909e1184
|
@ -114,15 +114,12 @@
|
|||
#include <limits>
|
||||
|
||||
#include "nsIColorPicker.h"
|
||||
#include "nsIDatePicker.h"
|
||||
#include "nsIStringEnumerator.h"
|
||||
#include "HTMLSplitOnSpacesTokenizer.h"
|
||||
#include "nsIController.h"
|
||||
#include "nsIMIMEInfo.h"
|
||||
#include "nsFrameSelection.h"
|
||||
|
||||
#include "nsIConsoleService.h"
|
||||
|
||||
// input type=date
|
||||
#include "js/Date.h"
|
||||
|
||||
|
@ -547,8 +544,7 @@ GetDOMFileOrDirectoryPath(const OwningFileOrDirectory& aData,
|
|||
bool
|
||||
HTMLInputElement::ValueAsDateEnabled(JSContext* cx, JSObject* obj)
|
||||
{
|
||||
return IsExperimentalFormsEnabled() || IsDatePickerEnabled() ||
|
||||
IsInputDateTimeEnabled();
|
||||
return IsExperimentalFormsEnabled() || IsInputDateTimeEnabled();
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
|
@ -751,60 +747,6 @@ nsColorPickerShownCallback::Done(const nsAString& aColor)
|
|||
|
||||
NS_IMPL_ISUPPORTS(nsColorPickerShownCallback, nsIColorPickerShownCallback)
|
||||
|
||||
class DatePickerShownCallback final : public nsIDatePickerShownCallback
|
||||
{
|
||||
~DatePickerShownCallback() {}
|
||||
public:
|
||||
DatePickerShownCallback(HTMLInputElement* aInput,
|
||||
nsIDatePicker* aDatePicker)
|
||||
: mInput(aInput)
|
||||
, mDatePicker(aDatePicker)
|
||||
{}
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
NS_IMETHOD Done(const nsAString& aDate) override;
|
||||
NS_IMETHOD Cancel() override;
|
||||
|
||||
private:
|
||||
RefPtr<HTMLInputElement> mInput;
|
||||
nsCOMPtr<nsIDatePicker> mDatePicker;
|
||||
};
|
||||
|
||||
NS_IMETHODIMP
|
||||
DatePickerShownCallback::Cancel()
|
||||
{
|
||||
mInput->PickerClosed();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
DatePickerShownCallback::Done(const nsAString& aDate)
|
||||
{
|
||||
nsAutoString oldValue;
|
||||
|
||||
mInput->PickerClosed();
|
||||
mInput->GetValue(oldValue, CallerType::System);
|
||||
|
||||
if(!oldValue.Equals(aDate)){
|
||||
IgnoredErrorResult rv;
|
||||
mInput->SetValue(aDate, CallerType::System, rv);
|
||||
nsContentUtils::DispatchTrustedEvent(mInput->OwnerDoc(),
|
||||
static_cast<nsIDOMHTMLInputElement*>(mInput.get()),
|
||||
NS_LITERAL_STRING("input"), true,
|
||||
false);
|
||||
return nsContentUtils::DispatchTrustedEvent(mInput->OwnerDoc(),
|
||||
static_cast<nsIDOMHTMLInputElement*>(mInput.get()),
|
||||
NS_LITERAL_STRING("change"), true,
|
||||
false);
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMPL_ISUPPORTS(DatePickerShownCallback, nsIDatePickerShownCallback)
|
||||
|
||||
|
||||
bool
|
||||
HTMLInputElement::IsPopupBlocked() const
|
||||
{
|
||||
|
@ -829,56 +771,6 @@ HTMLInputElement::IsPopupBlocked() const
|
|||
return permission == nsIPopupWindowManager::DENY_POPUP;
|
||||
}
|
||||
|
||||
nsresult
|
||||
HTMLInputElement::InitDatePicker()
|
||||
{
|
||||
if (!IsDatePickerEnabled()) {
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
if (mPickerRunning) {
|
||||
NS_WARNING("Just one nsIDatePicker is allowed");
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIDocument> doc = OwnerDoc();
|
||||
|
||||
nsCOMPtr<nsPIDOMWindowOuter> win = doc->GetWindow();
|
||||
if (!win) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
if (IsPopupBlocked()) {
|
||||
win->FirePopupBlockedEvent(doc, nullptr, EmptyString(), EmptyString());
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// Get Loc title
|
||||
nsXPIDLString title;
|
||||
nsContentUtils::GetLocalizedString(nsContentUtils::eFORMS_PROPERTIES,
|
||||
"DatePicker", title);
|
||||
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIDatePicker> datePicker = do_CreateInstance("@mozilla.org/datepicker;1", &rv);
|
||||
if (!datePicker) {
|
||||
return rv;
|
||||
}
|
||||
|
||||
nsAutoString initialValue;
|
||||
GetNonFileValueInternal(initialValue);
|
||||
rv = datePicker->Init(win, title, initialValue);
|
||||
|
||||
nsCOMPtr<nsIDatePickerShownCallback> callback =
|
||||
new DatePickerShownCallback(this, datePicker);
|
||||
|
||||
rv = datePicker->Open(callback);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
mPickerRunning = true;
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
nsresult
|
||||
HTMLInputElement::InitColorPicker()
|
||||
{
|
||||
|
@ -2548,9 +2440,8 @@ HTMLInputElement::ApplyStep(int32_t aStep)
|
|||
bool
|
||||
HTMLInputElement::IsExperimentalMobileType(uint8_t aType)
|
||||
{
|
||||
return (aType == NS_FORM_INPUT_DATE &&
|
||||
!IsInputDateTimeEnabled() && !IsDatePickerEnabled()) ||
|
||||
(aType == NS_FORM_INPUT_TIME && !IsInputDateTimeEnabled());
|
||||
return (aType == NS_FORM_INPUT_DATE || aType == NS_FORM_INPUT_TIME) &&
|
||||
!IsInputDateTimeEnabled();
|
||||
}
|
||||
|
||||
bool
|
||||
|
@ -4383,9 +4274,6 @@ HTMLInputElement::MaybeInitPickers(EventChainPostVisitor& aVisitor)
|
|||
if (mType == NS_FORM_INPUT_COLOR) {
|
||||
return InitColorPicker();
|
||||
}
|
||||
if (mType == NS_FORM_INPUT_DATE) {
|
||||
return InitDatePicker();
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
@ -5816,10 +5704,8 @@ HTMLInputElement::ParseTime(const nsAString& aValue, uint32_t* aResult)
|
|||
/* static */ bool
|
||||
HTMLInputElement::IsDateTimeTypeSupported(uint8_t aDateTimeInputType)
|
||||
{
|
||||
return (aDateTimeInputType == NS_FORM_INPUT_DATE &&
|
||||
(IsInputDateTimeEnabled() || IsExperimentalFormsEnabled() ||
|
||||
IsDatePickerEnabled())) ||
|
||||
(aDateTimeInputType == NS_FORM_INPUT_TIME &&
|
||||
return ((aDateTimeInputType == NS_FORM_INPUT_DATE ||
|
||||
aDateTimeInputType == NS_FORM_INPUT_TIME) &&
|
||||
(IsInputDateTimeEnabled() || IsExperimentalFormsEnabled())) ||
|
||||
((aDateTimeInputType == NS_FORM_INPUT_MONTH ||
|
||||
aDateTimeInputType == NS_FORM_INPUT_WEEK ||
|
||||
|
@ -5871,20 +5757,6 @@ HTMLInputElement::IsDirPickerEnabled()
|
|||
return sDirPickerEnabled;
|
||||
}
|
||||
|
||||
/* static */ bool
|
||||
HTMLInputElement::IsDatePickerEnabled()
|
||||
{
|
||||
static bool sDatePickerEnabled = false;
|
||||
static bool sDatePickerPrefCached = false;
|
||||
if (!sDatePickerPrefCached) {
|
||||
sDatePickerPrefCached = true;
|
||||
Preferences::AddBoolVarCache(&sDatePickerEnabled, "dom.forms.datepicker",
|
||||
false);
|
||||
}
|
||||
|
||||
return sDatePickerEnabled;
|
||||
}
|
||||
|
||||
/* static */ bool
|
||||
HTMLInputElement::IsExperimentalFormsEnabled()
|
||||
{
|
||||
|
|
|
@ -1460,7 +1460,6 @@ protected:
|
|||
};
|
||||
nsresult InitFilePicker(FilePickerType aType);
|
||||
nsresult InitColorPicker();
|
||||
nsresult InitDatePicker();
|
||||
|
||||
/**
|
||||
* Use this function before trying to open a picker.
|
||||
|
@ -1668,7 +1667,7 @@ private:
|
|||
|
||||
/**
|
||||
* Checks if aDateTimeInputType should be supported based on "dom.forms.datetime",
|
||||
* "dom.forms.datepicker" and "dom.experimental_forms".
|
||||
* and "dom.experimental_forms".
|
||||
*/
|
||||
static bool
|
||||
IsDateTimeTypeSupported(uint8_t aDateTimeInputType);
|
||||
|
@ -1694,13 +1693,6 @@ private:
|
|||
static bool
|
||||
IsDirPickerEnabled();
|
||||
|
||||
/**
|
||||
* Checks preference "dom.forms.datepicker" to determine if date picker should
|
||||
* be supported.
|
||||
*/
|
||||
static bool
|
||||
IsDatePickerEnabled();
|
||||
|
||||
/**
|
||||
* Checks preference "dom.experimental_forms" to determine if experimental
|
||||
* implementation of input element should be enabled.
|
||||
|
|
|
@ -37,23 +37,15 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=764481
|
|||
inputType: "color",
|
||||
expectedType: "color"
|
||||
}, {
|
||||
prefs: [["dom.experimental_forms", false], ["dom.forms.datepicker", false],
|
||||
["dom.forms.datetime", false]],
|
||||
prefs: [["dom.experimental_forms", false], ["dom.forms.datetime", false]],
|
||||
inputType: "date",
|
||||
expectedType: "text"
|
||||
}, {
|
||||
prefs: [["dom.experimental_forms", true], ["dom.forms.datepicker", false],
|
||||
["dom.forms.datetime", false]],
|
||||
prefs: [["dom.experimental_forms", true], ["dom.forms.datetime", false]],
|
||||
inputType: "date",
|
||||
expectedType: "date"
|
||||
}, {
|
||||
prefs: [["dom.experimental_forms", false], ["dom.forms.datepicker", true],
|
||||
["dom.forms.datetime", false]],
|
||||
inputType: "date",
|
||||
expectedType: "date"
|
||||
}, {
|
||||
prefs: [["dom.experimental_forms", false], ["dom.forms.datepicker", false],
|
||||
["dom.forms.datetime", true]],
|
||||
prefs: [["dom.experimental_forms", false], ["dom.forms.datetime", true]],
|
||||
inputType: "date",
|
||||
expectedType: "date"
|
||||
}, {
|
||||
|
|
|
@ -12,12 +12,11 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=874640
|
|||
|
||||
/** Test for Bug 874640 **/
|
||||
var states = [
|
||||
// dom.experimental_forms, dom.forms.datepicker, dom.forms.datetime, expectedValueAsDate
|
||||
[ 'true', 'true', 'true', 'true' ],
|
||||
[ 'true', 'false', 'false', 'true' ],
|
||||
[ 'false', 'true', 'false', 'true' ],
|
||||
[ 'false', 'false', 'true', 'true' ],
|
||||
[ 'false', 'false', 'false', 'false' ],
|
||||
// dom.experimental_forms, dom.forms.datetime, expectedValueAsDate
|
||||
[ 'true', 'true', 'true' ],
|
||||
[ 'true', 'false', 'true' ],
|
||||
[ 'false', 'true', 'true' ],
|
||||
[ 'false', 'false', 'false' ],
|
||||
'end'
|
||||
];
|
||||
|
||||
|
@ -33,12 +32,11 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=874640
|
|||
|
||||
SpecialPowers.pushPrefEnv({"set":[
|
||||
["dom.experimental_forms", state[0] === 'true'],
|
||||
["dom.forms.datepicker", state[1] === 'true'],
|
||||
["dom.forms.datetime", state[2] === 'true']]},
|
||||
["dom.forms.datetime", state[1] === 'true']]},
|
||||
function() {
|
||||
iframe.src = 'data:text/html,<script>' +
|
||||
'parent.is("valueAsDate" in document.createElement("input"), ' +
|
||||
state[3] + ', "valueAsDate presence state should be ' + state[3] + '");' +
|
||||
state[2] + ', "valueAsDate presence state should be ' + state[2] + '");' +
|
||||
'<\/script>'
|
||||
});
|
||||
}
|
||||
|
|
|
@ -1,87 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
||||
/* 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/. */
|
||||
|
||||
#include "DatePickerParent.h"
|
||||
#include "nsComponentManagerUtils.h"
|
||||
#include "nsIDocument.h"
|
||||
#include "nsIDOMWindow.h"
|
||||
#include "mozilla/Unused.h"
|
||||
#include "mozilla/dom/Element.h"
|
||||
#include "mozilla/dom/TabParent.h"
|
||||
|
||||
using mozilla::Unused;
|
||||
using namespace mozilla::dom;
|
||||
|
||||
NS_IMPL_ISUPPORTS(DatePickerParent::DatePickerShownCallback,
|
||||
nsIDatePickerShownCallback);
|
||||
|
||||
NS_IMETHODIMP
|
||||
DatePickerParent::DatePickerShownCallback::Cancel()
|
||||
{
|
||||
if (mDatePickerParent) {
|
||||
Unused << mDatePickerParent->SendCancel();
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
DatePickerParent::DatePickerShownCallback::Done(const nsAString& aDate)
|
||||
{
|
||||
if (mDatePickerParent) {
|
||||
Unused << mDatePickerParent->Send__delete__(mDatePickerParent,
|
||||
nsString(aDate));
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
void
|
||||
DatePickerParent::DatePickerShownCallback::Destroy()
|
||||
{
|
||||
mDatePickerParent = nullptr;
|
||||
}
|
||||
|
||||
bool
|
||||
DatePickerParent::CreateDatePicker()
|
||||
{
|
||||
mPicker = do_CreateInstance("@mozilla.org/datepicker;1");
|
||||
if (!mPicker) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Element* ownerElement = TabParent::GetFrom(Manager())->GetOwnerElement();
|
||||
if (!ownerElement) {
|
||||
return false;
|
||||
}
|
||||
|
||||
nsCOMPtr<mozIDOMWindowProxy> window = do_QueryInterface(ownerElement->OwnerDoc()->GetWindow());
|
||||
if (!window) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return NS_SUCCEEDED(mPicker->Init(window, mTitle, mInitialDate));
|
||||
}
|
||||
|
||||
mozilla::ipc::IPCResult
|
||||
DatePickerParent::RecvOpen()
|
||||
{
|
||||
if (!CreateDatePicker()) {
|
||||
Unused << Send__delete__(this, mInitialDate);
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
mCallback = new DatePickerShownCallback(this);
|
||||
|
||||
mPicker->Open(mCallback);
|
||||
return IPC_OK();
|
||||
};
|
||||
|
||||
void
|
||||
DatePickerParent::ActorDestroy(ActorDestroyReason aWhy)
|
||||
{
|
||||
if (mCallback) {
|
||||
mCallback->Destroy();
|
||||
}
|
||||
}
|
|
@ -1,61 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
||||
/* 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 mozilla_dom_DatePickerParent_h
|
||||
#define mozilla_dom_DatePickerParent_h
|
||||
|
||||
#include "mozilla/dom/PDatePickerParent.h"
|
||||
#include "nsIDatePicker.h"
|
||||
|
||||
namespace mozilla {
|
||||
namespace dom {
|
||||
|
||||
class DatePickerParent : public PDatePickerParent
|
||||
{
|
||||
public:
|
||||
DatePickerParent(const nsString& aTitle,
|
||||
const nsString& aInitialDate)
|
||||
: mTitle(aTitle)
|
||||
, mInitialDate(aInitialDate)
|
||||
{}
|
||||
|
||||
virtual mozilla::ipc::IPCResult RecvOpen() override;
|
||||
virtual void ActorDestroy(ActorDestroyReason aWhy) override;
|
||||
|
||||
class DatePickerShownCallback final
|
||||
: public nsIDatePickerShownCallback
|
||||
{
|
||||
public:
|
||||
explicit DatePickerShownCallback(DatePickerParent* aDatePickerParnet)
|
||||
: mDatePickerParent(aDatePickerParnet)
|
||||
{}
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSIDATEPICKERSHOWNCALLBACK
|
||||
|
||||
void Destroy();
|
||||
|
||||
private:
|
||||
~DatePickerShownCallback() {}
|
||||
DatePickerParent* mDatePickerParent;
|
||||
};
|
||||
|
||||
private:
|
||||
virtual ~DatePickerParent() {}
|
||||
|
||||
bool CreateDatePicker();
|
||||
|
||||
RefPtr<DatePickerShownCallback> mCallback;
|
||||
nsCOMPtr<nsIDatePicker> mPicker;
|
||||
|
||||
nsString mTitle;
|
||||
nsString mInitialDate;
|
||||
};
|
||||
|
||||
} // namespace dom
|
||||
} // namespace mozilla
|
||||
|
||||
#endif // mozilla_dom_DatePickerParent_h
|
|
@ -9,7 +9,6 @@ include protocol PBlob;
|
|||
include protocol PColorPicker;
|
||||
include protocol PContent;
|
||||
include protocol PContentBridge;
|
||||
include protocol PDatePicker;
|
||||
include protocol PDocAccessible;
|
||||
include protocol PDocumentRenderer;
|
||||
include protocol PFilePicker;
|
||||
|
@ -117,7 +116,6 @@ nested(upto inside_cpow) sync protocol PBrowser
|
|||
manager PContent or PContentBridge;
|
||||
|
||||
manages PColorPicker;
|
||||
manages PDatePicker;
|
||||
manages PDocAccessible;
|
||||
manages PDocumentRenderer;
|
||||
manages PFilePicker;
|
||||
|
@ -443,12 +441,6 @@ parent:
|
|||
*/
|
||||
async PColorPicker(nsString title, nsString initialColor);
|
||||
|
||||
/**
|
||||
* Create an asynchronous date picker on the parent side,
|
||||
* but don't open it yet.
|
||||
*/
|
||||
async PDatePicker(nsString title, nsString initialDate);
|
||||
|
||||
async PFilePicker(nsString aTitle, int16_t aMode);
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
/* -*- Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 8 -*- */
|
||||
/* vim: set sw=4 ts=8 et tw=80 ft=cpp : */
|
||||
|
||||
/* 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/. */
|
||||
|
||||
include protocol PBrowser;
|
||||
|
||||
namespace mozilla {
|
||||
namespace dom {
|
||||
|
||||
protocol PDatePicker
|
||||
{
|
||||
manager PBrowser;
|
||||
|
||||
parent:
|
||||
async Open();
|
||||
|
||||
child:
|
||||
async Cancel();
|
||||
|
||||
async __delete__(nsString color);
|
||||
};
|
||||
|
||||
} // namespace dom
|
||||
} // namespace mozilla
|
|
@ -104,7 +104,6 @@
|
|||
#include "LayersLogging.h"
|
||||
#include "nsDOMClassInfoID.h"
|
||||
#include "nsColorPickerProxy.h"
|
||||
#include "nsDatePickerProxy.h"
|
||||
#include "nsContentPermissionHelper.h"
|
||||
#include "nsNetUtil.h"
|
||||
#include "nsIPermissionManager.h"
|
||||
|
@ -2136,21 +2135,6 @@ TabChild::DeallocPColorPickerChild(PColorPickerChild* aColorPicker)
|
|||
return true;
|
||||
}
|
||||
|
||||
PDatePickerChild*
|
||||
TabChild::AllocPDatePickerChild(const nsString&, const nsString&)
|
||||
{
|
||||
MOZ_CRASH("unused");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
bool
|
||||
TabChild::DeallocPDatePickerChild(PDatePickerChild* aDatePicker)
|
||||
{
|
||||
nsDatePickerProxy* picker = static_cast<nsDatePickerProxy*>(aDatePicker);
|
||||
NS_RELEASE(picker);
|
||||
return true;
|
||||
}
|
||||
|
||||
PFilePickerChild*
|
||||
TabChild::AllocPFilePickerChild(const nsString&, const int16_t&)
|
||||
{
|
||||
|
|
|
@ -472,10 +472,6 @@ public:
|
|||
|
||||
virtual bool DeallocPColorPickerChild(PColorPickerChild* aActor) override;
|
||||
|
||||
virtual PDatePickerChild*
|
||||
AllocPDatePickerChild(const nsString& title, const nsString& initialDate) override;
|
||||
virtual bool DeallocPDatePickerChild(PDatePickerChild* actor) override;
|
||||
|
||||
virtual PFilePickerChild*
|
||||
AllocPFilePickerChild(const nsString& aTitle, const int16_t& aMode) override;
|
||||
|
||||
|
|
|
@ -79,7 +79,6 @@
|
|||
#include "PermissionMessageUtils.h"
|
||||
#include "StructuredCloneData.h"
|
||||
#include "ColorPickerParent.h"
|
||||
#include "DatePickerParent.h"
|
||||
#include "FilePickerParent.h"
|
||||
#include "TabChild.h"
|
||||
#include "LoadContext.h"
|
||||
|
@ -2470,20 +2469,6 @@ TabParent::DeallocPColorPickerParent(PColorPickerParent* actor)
|
|||
return true;
|
||||
}
|
||||
|
||||
PDatePickerParent*
|
||||
TabParent::AllocPDatePickerParent(const nsString& aTitle,
|
||||
const nsString& aInitialDate)
|
||||
{
|
||||
return new DatePickerParent(aTitle, aInitialDate);
|
||||
}
|
||||
|
||||
bool
|
||||
TabParent::DeallocPDatePickerParent(PDatePickerParent* actor)
|
||||
{
|
||||
delete actor;
|
||||
return true;
|
||||
}
|
||||
|
||||
PRenderFrameParent*
|
||||
TabParent::AllocPRenderFrameParent()
|
||||
{
|
||||
|
|
|
@ -346,10 +346,6 @@ public:
|
|||
virtual bool
|
||||
DeallocPColorPickerParent(PColorPickerParent* aColorPicker) override;
|
||||
|
||||
virtual PDatePickerParent*
|
||||
AllocPDatePickerParent(const nsString& aTitle, const nsString& aInitialDate) override;
|
||||
virtual bool DeallocPDatePickerParent(PDatePickerParent* aDatePicker) override;
|
||||
|
||||
virtual PDocAccessibleParent*
|
||||
AllocPDocAccessibleParent(PDocAccessibleParent*, const uint64_t&,
|
||||
const uint32_t&, const IAccessibleHolder&) override;
|
||||
|
|
|
@ -58,7 +58,6 @@ UNIFIED_SOURCES += [
|
|||
'ContentPrefs.cpp',
|
||||
'ContentProcess.cpp',
|
||||
'ContentProcessManager.cpp',
|
||||
'DatePickerParent.cpp',
|
||||
'FilePickerParent.cpp',
|
||||
'MemoryReportRequest.cpp',
|
||||
'nsIContentChild.cpp',
|
||||
|
@ -94,7 +93,6 @@ IPDL_SOURCES += [
|
|||
'PContentPermission.ipdlh',
|
||||
'PContentPermissionRequest.ipdl',
|
||||
'PCycleCollectWithLogs.ipdl',
|
||||
'PDatePicker.ipdl',
|
||||
'PDocumentRenderer.ipdl',
|
||||
'PFilePicker.ipdl',
|
||||
'PPluginWidget.ipdl',
|
||||
|
|
|
@ -34,7 +34,6 @@ NoDirSelected=No directory selected.
|
|||
# %S will be a number greater or equal to 2.
|
||||
XFilesSelected=%S files selected.
|
||||
ColorPicker=Choose a color
|
||||
DatePicker=Choose a date
|
||||
# LOCALIZATION NOTE (AndNMoreFiles): Semi-colon list of plural forms.
|
||||
# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
|
||||
# This string is shown at the end of the tooltip text for <input type='file'
|
||||
|
|
|
@ -64,7 +64,6 @@ XPIDL_SOURCES += [
|
|||
'nsIClipboardHelper.idl',
|
||||
'nsIClipboardOwner.idl',
|
||||
'nsIColorPicker.idl',
|
||||
'nsIDatePicker.idl',
|
||||
'nsIDisplayInfo.idl',
|
||||
'nsIDragService.idl',
|
||||
'nsIDragSession.idl',
|
||||
|
@ -151,7 +150,6 @@ UNIFIED_SOURCES += [
|
|||
'nsClipboardProxy.cpp',
|
||||
'nsColorPickerProxy.cpp',
|
||||
'nsContentProcessWidgetFactory.cpp',
|
||||
'nsDatePickerProxy.cpp',
|
||||
'nsDragServiceProxy.cpp',
|
||||
'nsFilePickerProxy.cpp',
|
||||
'nsHTMLFormatConverter.cpp',
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
#include "nsWidgetsCID.h"
|
||||
#include "nsClipboardProxy.h"
|
||||
#include "nsColorPickerProxy.h"
|
||||
#include "nsDatePickerProxy.h"
|
||||
#include "nsDragServiceProxy.h"
|
||||
#include "nsFilePickerProxy.h"
|
||||
#include "nsScreenManagerProxy.h"
|
||||
|
@ -22,7 +21,6 @@ using namespace mozilla::widget;
|
|||
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsClipboardProxy)
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsColorPickerProxy)
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsDatePickerProxy)
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsDragServiceProxy)
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsFilePickerProxy)
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsScreenManagerProxy)
|
||||
|
@ -30,7 +28,6 @@ NS_GENERIC_FACTORY_CONSTRUCTOR(PuppetBidiKeyboard)
|
|||
|
||||
NS_DEFINE_NAMED_CID(NS_CLIPBOARD_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_COLORPICKER_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_DATEPICKER_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_DRAGSERVICE_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_FILEPICKER_CID);
|
||||
NS_DEFINE_NAMED_CID(PUPPETBIDIKEYBOARD_CID);
|
||||
|
@ -41,8 +38,6 @@ static const mozilla::Module::CIDEntry kWidgetCIDs[] = {
|
|||
Module::CONTENT_PROCESS_ONLY },
|
||||
{ &kNS_COLORPICKER_CID, false, nullptr, nsColorPickerProxyConstructor,
|
||||
Module::CONTENT_PROCESS_ONLY },
|
||||
{ &kNS_DATEPICKER_CID, false, nullptr, nsDatePickerProxyConstructor,
|
||||
Module::CONTENT_PROCESS_ONLY },
|
||||
{ &kNS_DRAGSERVICE_CID, false, nullptr, nsDragServiceProxyConstructor,
|
||||
Module::CONTENT_PROCESS_ONLY },
|
||||
{ &kNS_FILEPICKER_CID, false, nullptr, nsFilePickerProxyConstructor,
|
||||
|
@ -57,7 +52,6 @@ static const mozilla::Module::CIDEntry kWidgetCIDs[] = {
|
|||
static const mozilla::Module::ContractIDEntry kWidgetContracts[] = {
|
||||
{ "@mozilla.org/widget/clipboard;1", &kNS_CLIPBOARD_CID, Module::CONTENT_PROCESS_ONLY },
|
||||
{ "@mozilla.org/colorpicker;1", &kNS_COLORPICKER_CID, Module::CONTENT_PROCESS_ONLY },
|
||||
{ "@mozilla.org/datepicker;1", &kNS_DATEPICKER_CID, Module::CONTENT_PROCESS_ONLY },
|
||||
{ "@mozilla.org/filepicker;1", &kNS_FILEPICKER_CID, Module::CONTENT_PROCESS_ONLY },
|
||||
{ "@mozilla.org/gfx/screenmanager;1", &kNS_SCREENMANAGER_CID, Module::CONTENT_PROCESS_ONLY },
|
||||
{ "@mozilla.org/widget/dragservice;1", &kNS_DRAGSERVICE_CID, Module::CONTENT_PROCESS_ONLY },
|
||||
|
|
|
@ -1,61 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
*
|
||||
* 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/. */
|
||||
|
||||
#include "nsDatePickerProxy.h"
|
||||
|
||||
#include "mozilla/dom/TabChild.h"
|
||||
|
||||
using namespace mozilla::dom;
|
||||
|
||||
NS_IMPL_ISUPPORTS(nsDatePickerProxy, nsIDatePicker)
|
||||
|
||||
/* void init (in nsIDOMWindow parent, in AString title, in short mode); */
|
||||
NS_IMETHODIMP
|
||||
nsDatePickerProxy::Init(mozIDOMWindowProxy* aParent, const nsAString& aTitle,
|
||||
const nsAString& aInitialDate)
|
||||
{
|
||||
TabChild* tabChild = TabChild::GetFrom(aParent);
|
||||
if (!tabChild) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
tabChild->SendPDatePickerConstructor(this,
|
||||
nsString(aTitle),
|
||||
nsString(aInitialDate));
|
||||
NS_ADDREF_THIS(); //Released in DeallocPDatePickerChild
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* void open (in nsIDatePickerShownCallback aDatePickerShownCallback); */
|
||||
NS_IMETHODIMP
|
||||
nsDatePickerProxy::Open(nsIDatePickerShownCallback* aDatePickerShownCallback)
|
||||
{
|
||||
NS_ENSURE_STATE(!mCallback);
|
||||
mCallback = aDatePickerShownCallback;
|
||||
|
||||
SendOpen();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
mozilla::ipc::IPCResult
|
||||
nsDatePickerProxy::RecvCancel()
|
||||
{
|
||||
if (mCallback) {
|
||||
mCallback->Cancel();
|
||||
mCallback = nullptr;
|
||||
}
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
mozilla::ipc::IPCResult
|
||||
nsDatePickerProxy::Recv__delete__(const nsString& aDate)
|
||||
{
|
||||
if (mCallback) {
|
||||
mCallback->Done(aDate);
|
||||
mCallback = nullptr;
|
||||
}
|
||||
return IPC_OK();
|
||||
}
|
|
@ -1,33 +0,0 @@
|
|||
/* -*- 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 nsDatePickerProxy_h
|
||||
#define nsDatePickerProxy_h
|
||||
|
||||
#include "nsIDatePicker.h"
|
||||
|
||||
#include "mozilla/dom/PDatePickerChild.h"
|
||||
|
||||
class nsDatePickerProxy final : public nsIDatePicker,
|
||||
public mozilla::dom::PDatePickerChild
|
||||
{
|
||||
public:
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSIDATEPICKER
|
||||
|
||||
nsDatePickerProxy() {}
|
||||
|
||||
virtual mozilla::ipc::IPCResult RecvCancel() override;
|
||||
virtual mozilla::ipc::IPCResult Recv__delete__(const nsString& aDate) override;
|
||||
|
||||
private:
|
||||
~nsDatePickerProxy() {}
|
||||
|
||||
nsCOMPtr<nsIDatePickerShownCallback> mCallback;
|
||||
nsString mTitle;
|
||||
nsString mInitialDate;
|
||||
};
|
||||
|
||||
#endif // nsDatePickerProxy_h
|
|
@ -1,50 +0,0 @@
|
|||
/* -*- 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/. */
|
||||
|
||||
#include "nsISupports.idl"
|
||||
|
||||
interface mozIDOMWindowProxy;
|
||||
|
||||
[scriptable, uuid(13388a28-1b0b-4218-a31b-588f7a4ec26c)]
|
||||
interface nsIDatePickerShownCallback : nsISupports
|
||||
{
|
||||
/**
|
||||
* Callback called when the user selects cancel in the date picker
|
||||
* This callback can not be called after done() is called.
|
||||
*/
|
||||
void cancel();
|
||||
|
||||
/**
|
||||
* Callback called when the user has finished selecting the date
|
||||
*
|
||||
* @param date The new selected date value following the format "YYYY-MM-DD"
|
||||
*/
|
||||
void done(in AString date);
|
||||
};
|
||||
|
||||
[scriptable, uuid(7becfc64-966b-4d53-87d2-9161f36bd3b3)]
|
||||
interface nsIDatePicker : nsISupports
|
||||
{
|
||||
/**
|
||||
* Initialize the date picker widget. The date picker will not be shown until
|
||||
* open() is called.
|
||||
* If the initialDate parameter does not follow the format "YYYY-MM-DD" then
|
||||
* the behavior will be unspecified.
|
||||
*
|
||||
* @param parent nsIDOMWindow parent. This dialog will be dependent
|
||||
* on this parent. parent may be null.
|
||||
* @param title The title for the date picker widget.
|
||||
* @param initialDate The date to show when the widget is opened. The
|
||||
* parameter has to follow the format "YYYY-MM-DD"
|
||||
*/
|
||||
void init(in mozIDOMWindowProxy parent, in AString title, in AString initialDate);
|
||||
|
||||
/**
|
||||
* Opens the date dialog asynchrounously.
|
||||
* The results are provided via the callback object.
|
||||
*/
|
||||
void open(in nsIDatePickerShownCallback callback);
|
||||
};
|
|
@ -33,11 +33,6 @@
|
|||
{ 0x0f872c8c, 0x3ee6, 0x46bd, \
|
||||
{ 0x92, 0xa2, 0x69, 0x65, 0x2c, 0x6b, 0x47, 0x4e } }
|
||||
|
||||
/* 0ca832f8-978a-4dc7-a57d-adb803925d39 */
|
||||
#define NS_DATEPICKER_CID \
|
||||
{ 0x0ca832f8, 0x978a, 0x4dc7, \
|
||||
{ 0xa5, 0x7d, 0xad, 0xb8, 0x03, 0x92, 0x5d, 0x39 } }
|
||||
|
||||
/* 2d96b3df-c051-11d1-a827-0040959a28c9 */
|
||||
#define NS_APPSHELL_CID \
|
||||
{ 0x2d96b3df, 0xc051, 0x11d1, \
|
||||
|
|
Загрузка…
Ссылка в новой задаче