author Masayuki Nakano <>
Fri, 19 May 2017 17:49:41 +0900
changeset 407399 b75c111837a802ceb953dba50a3c5a193d53ca22
parent 403749 c6af127dce9d85ee8c42b13235b5fa6133d3a0e2
child 418685 c72f79ecb0dda81850fd2434db9f58b60da51d29
permissions -rw-r--r--
Bug 1339543 part 4 Change nsIWidget::ExecuteNativeKeyBinding() to nsIWidget::GetEditCommands() which just retrieves edit commands for the type r=smaug Now, nsIWidget::ExecuteNativeKeyBinding() isn't used by anybody for executing edit commands. Instead, they need array of edit commands for the key combination. So, the method should be renamed to GetEditCommands() and just return edit commands as an array. MozReview-Commit-ID: 4G0B1lJ8Lbe

/* -*- 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 */

 * Declaration of HTML <label> elements.
#ifndef HTMLLabelElement_h
#define HTMLLabelElement_h

#include "mozilla/Attributes.h"
#include "nsGenericHTMLElement.h"
#include "nsIDOMHTMLLabelElement.h"

namespace mozilla {
class EventChainPostVisitor;
namespace dom {

class HTMLLabelElement final : public nsGenericHTMLElement,
                               public nsIDOMHTMLLabelElement
  explicit HTMLLabelElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
    : nsGenericHTMLElement(aNodeInfo),


  // nsISupports

  // Element
  virtual bool IsInteractiveHTMLContent(bool aIgnoreTabindex) const override
    return true;

  // nsIDOMHTMLLabelElement

  HTMLFormElement* GetForm() const;
  void GetHtmlFor(nsString& aHtmlFor)
    GetHTMLAttr(nsGkAtoms::_for, aHtmlFor);
  void SetHtmlFor(const nsAString& aHtmlFor, ErrorResult& aError)
    SetHTMLAttr(nsGkAtoms::_for, aHtmlFor, aError);
  nsGenericHTMLElement* GetControl() const
    return GetLabeledElement();

  using nsGenericHTMLElement::Focus;
  virtual void Focus(mozilla::ErrorResult& aError) override;

  virtual bool IsDisabled() const override { return false; }

  // nsIContent
  virtual nsresult PostHandleEvent(
                     EventChainPostVisitor& aVisitor) override;
  virtual bool PerformAccesskey(bool aKeyCausesActivation,
                                bool aIsTrustedEvent) override;
  virtual nsresult Clone(mozilla::dom::NodeInfo *aNodeInfo, nsINode **aResult,
                         bool aPreallocateChildren) const override;

  nsGenericHTMLElement* GetLabeledElement() const;
  virtual ~HTMLLabelElement();

  virtual JSObject* WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto) override;

  nsGenericHTMLElement* GetFirstLabelableDescendant() const;

  // XXX It would be nice if we could use an event flag instead.
  bool mHandlingEvent;

} // namespace dom
} // namespace mozilla

#endif /* HTMLLabelElement_h */