Commit f27b7d97 authored by Mirko Brodesser's avatar Mirko Brodesser
Browse files

Bug 1831097: declare `HTMLElement`'s `togglePopover` argument `force` `optional`. r=emilio

parent 3895bbb5
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -3432,10 +3432,11 @@ void nsGenericHTMLElement::FocusPreviousElementAfterHidingPopover() {
}

// https://html.spec.whatwg.org/multipage/popover.html#dom-togglepopover
void nsGenericHTMLElement::TogglePopover(bool force, ErrorResult& aRv) {
  if (!force && PopoverOpen()) {
void nsGenericHTMLElement::TogglePopover(const Optional<bool>& aForce,
                                         ErrorResult& aRv) {
  if (PopoverOpen() && (!aForce.WasPassed() || !aForce.Value())) {
    HidePopover(aRv);
  } else if (force && !PopoverOpen()) {
  } else if (!aForce.WasPassed() || aForce.Value()) {
    ShowPopover(aRv);
  }
}
+2 −1
Original line number Diff line number Diff line
@@ -169,7 +169,8 @@ class nsGenericHTMLElement : public nsGenericHTMLElementBase {
                                              bool aFireEvents,
                                              ErrorResult& aRv);
  MOZ_CAN_RUN_SCRIPT void HidePopover(ErrorResult& aRv);
  MOZ_CAN_RUN_SCRIPT void TogglePopover(bool force, ErrorResult& aRv);
  MOZ_CAN_RUN_SCRIPT void TogglePopover(
      const mozilla::dom::Optional<bool>& aForce, ErrorResult& aRv);
  MOZ_CAN_RUN_SCRIPT void FocusPopover();
  void ForgetPreviouslyFocusedElementAfterHidingPopover();
  MOZ_CAN_RUN_SCRIPT void FocusPreviousElementAfterHidingPopover();
+1 −1
Original line number Diff line number Diff line
@@ -79,7 +79,7 @@ interface HTMLElement : Element {
  [Throws, Pref="dom.element.popover.enabled"]
  undefined hidePopover();
  [Throws, Pref="dom.element.popover.enabled"]
  undefined togglePopover(boolean force);
  undefined togglePopover(optional boolean force);
};

// http://dev.w3.org/csswg/cssom-view/#extensions-to-the-htmlelement-interface
+0 −597
Original line number Diff line number Diff line
[popover-attribute-all-elements.html]
  [A <a popover> element should behave as a popover.]
    expected: FAIL

  [A <a> element should *not* behave as a popover.]
    expected: FAIL

  [A <abbr popover> element should behave as a popover.]
    expected: FAIL

  [A <abbr> element should *not* behave as a popover.]
    expected: FAIL

  [A <address popover> element should behave as a popover.]
    expected: FAIL

  [A <address> element should *not* behave as a popover.]
    expected: FAIL

  [A <article popover> element should behave as a popover.]
    expected: FAIL

  [A <article> element should *not* behave as a popover.]
    expected: FAIL

  [A <aside popover> element should behave as a popover.]
    expected: FAIL

  [A <aside> element should *not* behave as a popover.]
    expected: FAIL

  [A <b popover> element should behave as a popover.]
    expected: FAIL

  [A <b> element should *not* behave as a popover.]
    expected: FAIL

  [A <bdi popover> element should behave as a popover.]
    expected: FAIL

  [A <bdi> element should *not* behave as a popover.]
    expected: FAIL

  [A <bdo popover> element should behave as a popover.]
    expected: FAIL

  [A <bdo> element should *not* behave as a popover.]
    expected: FAIL

  [A <blockquote popover> element should behave as a popover.]
    expected: FAIL

  [A <blockquote> element should *not* behave as a popover.]
    expected: FAIL

  [A <body popover> element should behave as a popover.]
    expected: FAIL

  [A <body> element should *not* behave as a popover.]
    expected: FAIL

  [A <button popover> element should behave as a popover.]
    expected: FAIL

  [A <button> element should *not* behave as a popover.]
    expected: FAIL

  [A <canvas popover> element should behave as a popover.]
    expected: FAIL

  [A <canvas> element should *not* behave as a popover.]
    expected: FAIL

  [A <caption popover> element should behave as a popover.]
    expected: FAIL

  [A <caption> element should *not* behave as a popover.]
    expected: FAIL

  [A <cite popover> element should behave as a popover.]
    expected: FAIL

  [A <cite> element should *not* behave as a popover.]
    expected: FAIL

  [A <code popover> element should behave as a popover.]
    expected: FAIL

  [A <code> element should *not* behave as a popover.]
    expected: FAIL

  [A <col popover> element should behave as a popover.]
    expected: FAIL

  [A <col> element should *not* behave as a popover.]
    expected: FAIL

  [A <colgroup popover> element should behave as a popover.]
    expected: FAIL

  [A <colgroup> element should *not* behave as a popover.]
    expected: FAIL

  [A <data popover> element should behave as a popover.]
    expected: FAIL

  [A <data> element should *not* behave as a popover.]
    expected: FAIL

  [A <dd popover> element should behave as a popover.]
    expected: FAIL

  [A <dd> element should *not* behave as a popover.]
    expected: FAIL

  [A <del popover> element should behave as a popover.]
    expected: FAIL

  [A <del> element should *not* behave as a popover.]
    expected: FAIL

  [A <details popover> element should behave as a popover.]
    expected: FAIL

  [A <details> element should *not* behave as a popover.]
    expected: FAIL

  [A <dfn popover> element should behave as a popover.]
    expected: FAIL

  [A <dfn> element should *not* behave as a popover.]
    expected: FAIL

  [A <div popover> element should behave as a popover.]
    expected: FAIL

  [A <div> element should *not* behave as a popover.]
    expected: FAIL

  [A <dl popover> element should behave as a popover.]
    expected: FAIL

  [A <dl> element should *not* behave as a popover.]
    expected: FAIL

  [A <dt popover> element should behave as a popover.]
    expected: FAIL

  [A <dt> element should *not* behave as a popover.]
    expected: FAIL

  [A <em popover> element should behave as a popover.]
    expected: FAIL

  [A <em> element should *not* behave as a popover.]
    expected: FAIL

  [A <fieldset popover> element should behave as a popover.]
    expected: FAIL

  [A <fieldset> element should *not* behave as a popover.]
    expected: FAIL

  [A <figcaption popover> element should behave as a popover.]
    expected: FAIL

  [A <figcaption> element should *not* behave as a popover.]
    expected: FAIL

  [A <figure popover> element should behave as a popover.]
    expected: FAIL

  [A <figure> element should *not* behave as a popover.]
    expected: FAIL

  [A <footer popover> element should behave as a popover.]
    expected: FAIL

  [A <footer> element should *not* behave as a popover.]
    expected: FAIL

  [A <form popover> element should behave as a popover.]
    expected: FAIL

  [A <form> element should *not* behave as a popover.]
    expected: FAIL

  [A <h1 popover> element should behave as a popover.]
    expected: FAIL

  [A <h1> element should *not* behave as a popover.]
    expected: FAIL

  [A <h2 popover> element should behave as a popover.]
    expected: FAIL

  [A <h2> element should *not* behave as a popover.]
    expected: FAIL

  [A <h3 popover> element should behave as a popover.]
    expected: FAIL

  [A <h3> element should *not* behave as a popover.]
    expected: FAIL

  [A <h4 popover> element should behave as a popover.]
    expected: FAIL

  [A <h4> element should *not* behave as a popover.]
    expected: FAIL

  [A <h5 popover> element should behave as a popover.]
    expected: FAIL

  [A <h5> element should *not* behave as a popover.]
    expected: FAIL

  [A <h6 popover> element should behave as a popover.]
    expected: FAIL

  [A <h6> element should *not* behave as a popover.]
    expected: FAIL

  [A <header popover> element should behave as a popover.]
    expected: FAIL

  [A <header> element should *not* behave as a popover.]
    expected: FAIL

  [A <hr popover> element should behave as a popover.]
    expected: FAIL

  [A <hr> element should *not* behave as a popover.]
    expected: FAIL

  [A <html popover> element should behave as a popover.]
    expected: FAIL

  [A <html> element should *not* behave as a popover.]
    expected: FAIL

  [A <i popover> element should behave as a popover.]
    expected: FAIL

  [A <i> element should *not* behave as a popover.]
    expected: FAIL

  [A <iframe popover> element should behave as a popover.]
    expected: FAIL

  [A <iframe> element should *not* behave as a popover.]
    expected: FAIL

  [A <img popover> element should behave as a popover.]
    expected: FAIL

  [A <img> element should *not* behave as a popover.]
    expected: FAIL

  [A <input popover> element should behave as a popover.]
    expected: FAIL

  [A <input> element should *not* behave as a popover.]
    expected: FAIL

  [A <ins popover> element should behave as a popover.]
    expected: FAIL

  [A <ins> element should *not* behave as a popover.]
    expected: FAIL

  [A <kbd popover> element should behave as a popover.]
    expected: FAIL

  [A <kbd> element should *not* behave as a popover.]
    expected: FAIL

  [A <label popover> element should behave as a popover.]
    expected: FAIL

  [A <label> element should *not* behave as a popover.]
    expected: FAIL

  [A <legend popover> element should behave as a popover.]
    expected: FAIL

  [A <legend> element should *not* behave as a popover.]
    expected: FAIL

  [A <li popover> element should behave as a popover.]
    expected: FAIL

  [A <li> element should *not* behave as a popover.]
    expected: FAIL

  [A <main popover> element should behave as a popover.]
    expected: FAIL

  [A <main> element should *not* behave as a popover.]
    expected: FAIL

  [A <map popover> element should behave as a popover.]
    expected: FAIL

  [A <map> element should *not* behave as a popover.]
    expected: FAIL

  [A <mark popover> element should behave as a popover.]
    expected: FAIL

  [A <mark> element should *not* behave as a popover.]
    expected: FAIL

  [A <menu popover> element should behave as a popover.]
    expected: FAIL

  [A <menu> element should *not* behave as a popover.]
    expected: FAIL

  [A <meter popover> element should behave as a popover.]
    expected: FAIL

  [A <meter> element should *not* behave as a popover.]
    expected: FAIL

  [A <nav popover> element should behave as a popover.]
    expected: FAIL

  [A <nav> element should *not* behave as a popover.]
    expected: FAIL

  [A <object popover> element should behave as a popover.]
    expected: FAIL

  [A <object> element should *not* behave as a popover.]
    expected: FAIL

  [A <ol popover> element should behave as a popover.]
    expected: FAIL

  [A <ol> element should *not* behave as a popover.]
    expected: FAIL

  [A <output popover> element should behave as a popover.]
    expected: FAIL

  [A <output> element should *not* behave as a popover.]
    expected: FAIL

  [A <p popover> element should behave as a popover.]
    expected: FAIL

  [A <p> element should *not* behave as a popover.]
    expected: FAIL

  [A <pre popover> element should behave as a popover.]
    expected: FAIL

  [A <pre> element should *not* behave as a popover.]
    expected: FAIL

  [A <progress popover> element should behave as a popover.]
    expected: FAIL

  [A <progress> element should *not* behave as a popover.]
    expected: FAIL

  [A <q popover> element should behave as a popover.]
    expected: FAIL

  [A <q> element should *not* behave as a popover.]
    expected: FAIL

  [A <rt popover> element should behave as a popover.]
    expected: FAIL

  [A <rt> element should *not* behave as a popover.]
    expected: FAIL

  [A <ruby popover> element should behave as a popover.]
    expected: FAIL

  [A <ruby> element should *not* behave as a popover.]
    expected: FAIL

  [A <s popover> element should behave as a popover.]
    expected: FAIL

  [A <s> element should *not* behave as a popover.]
    expected: FAIL

  [A <samp popover> element should behave as a popover.]
    expected: FAIL

  [A <samp> element should *not* behave as a popover.]
    expected: FAIL

  [A <section popover> element should behave as a popover.]
    expected: FAIL

  [A <section> element should *not* behave as a popover.]
    expected: FAIL

  [A <select popover> element should behave as a popover.]
    expected: FAIL

  [A <select> element should *not* behave as a popover.]
    expected: FAIL

  [A <small popover> element should behave as a popover.]
    expected: FAIL

  [A <small> element should *not* behave as a popover.]
    expected: FAIL

  [A <source popover> element should behave as a popover.]
    expected: FAIL

  [A <source> element should *not* behave as a popover.]
    expected: FAIL

  [A <span popover> element should behave as a popover.]
    expected: FAIL

  [A <span> element should *not* behave as a popover.]
    expected: FAIL

  [A <strong popover> element should behave as a popover.]
    expected: FAIL

  [A <strong> element should *not* behave as a popover.]
    expected: FAIL

  [A <sub popover> element should behave as a popover.]
    expected: FAIL

  [A <sub> element should *not* behave as a popover.]
    expected: FAIL

  [A <sup popover> element should behave as a popover.]
    expected: FAIL

  [A <sup> element should *not* behave as a popover.]
    expected: FAIL

  [A <summary popover> element should behave as a popover.]
    expected: FAIL

  [A <summary> element should *not* behave as a popover.]
    expected: FAIL

  [A <table popover> element should behave as a popover.]
    expected: FAIL

  [A <table> element should *not* behave as a popover.]
    expected: FAIL

  [A <tbody popover> element should behave as a popover.]
    expected: FAIL

  [A <tbody> element should *not* behave as a popover.]
    expected: FAIL

  [A <td popover> element should behave as a popover.]
    expected: FAIL

  [A <td> element should *not* behave as a popover.]
    expected: FAIL

  [A <textarea popover> element should behave as a popover.]
    expected: FAIL

  [A <textarea> element should *not* behave as a popover.]
    expected: FAIL

  [A <tfoot popover> element should behave as a popover.]
    expected: FAIL

  [A <tfoot> element should *not* behave as a popover.]
    expected: FAIL

  [A <th popover> element should behave as a popover.]
    expected: FAIL

  [A <th> element should *not* behave as a popover.]
    expected: FAIL

  [A <thead popover> element should behave as a popover.]
    expected: FAIL

  [A <thead> element should *not* behave as a popover.]
    expected: FAIL

  [A <time popover> element should behave as a popover.]
    expected: FAIL

  [A <time> element should *not* behave as a popover.]
    expected: FAIL

  [A <tr popover> element should behave as a popover.]
    expected: FAIL

  [A <tr> element should *not* behave as a popover.]
    expected: FAIL

  [A <track popover> element should behave as a popover.]
    expected: FAIL

  [A <track> element should *not* behave as a popover.]
    expected: FAIL

  [A <u popover> element should behave as a popover.]
    expected: FAIL

  [A <u> element should *not* behave as a popover.]
    expected: FAIL

  [A <ul popover> element should behave as a popover.]
    expected: FAIL

  [A <ul> element should *not* behave as a popover.]
    expected: FAIL

  [A <var popover> element should behave as a popover.]
    expected: FAIL

  [A <var> element should *not* behave as a popover.]
    expected: FAIL

  [A <video popover> element should behave as a popover.]
    expected: FAIL

  [A <video> element should *not* behave as a popover.]
    expected: FAIL

  [A <area popover> element should not be rendered.]
    expected: FAIL

  [A <audio popover> element should not be rendered.]
    expected: FAIL

  [A <base popover> element should not be rendered.]
    expected: FAIL

  [A <br popover> element should not be rendered.]
    expected: FAIL

  [A <datalist popover> element should not be rendered.]
    expected: FAIL

  [A <dialog popover> element should not be rendered.]
    expected: FAIL

  [A <embed popover> element should not be rendered.]
    expected: FAIL

  [A <head popover> element should not be rendered.]
    expected: FAIL

  [A <link popover> element should not be rendered.]
    expected: FAIL

  [A <meta popover> element should not be rendered.]
    expected: FAIL

  [A <noscript popover> element should not be rendered.]
    expected: FAIL

  [A <optgroup popover> element should not be rendered.]
    expected: FAIL

  [A <option popover> element should not be rendered.]
    expected: FAIL

  [A <param popover> element should not be rendered.]
    expected: FAIL

  [A <rp popover> element should not be rendered.]
    expected: FAIL

  [A <script popover> element should not be rendered.]
    expected: FAIL

  [A <slot popover> element should not be rendered.]
    expected: FAIL

  [A <style popover> element should not be rendered.]
    expected: FAIL

  [A <template popover> element should not be rendered.]
    expected: FAIL

  [A <title popover> element should not be rendered.]
    expected: FAIL

  [A <wbr popover> element should not be rendered.]
    expected: FAIL
+0 −54
Original line number Diff line number Diff line
[popover-attribute-basic.html]
  max-asserts: 50
  [The element <dialog popover="manual">Dialog with popover=manual</dialog> should behave as a popover.]
    expected: FAIL

  [The element <div popover="true">Invalid popover value - defaults to popover=manual</div> should behave as a popover.]
    expected: FAIL

  [The element <div popover="popover">Invalid popover value - defaults to popover=manual</div> should behave as a popover.]
    expected: FAIL

  [The element <div popover="invalid">Invalid popover value - defaults to popover=manual</div> should behave as a popover.]
    expected: FAIL

  [The element <div>Not a popover</div> should *not* behave as a popover.]
    expected: FAIL

  [The element <dialog open="">Dialog without popover attribute</dialog> should *not* behave as a popover.]
    expected: FAIL

  [Popover attribute value should be case insensitive]
    expected: FAIL

  [Changing attribute values for popover should work]
    expected: FAIL

  [Changing the popover type in a "beforetoggle" event handler should throw an exception (during showPopover())]
    expected: FAIL

  [The element <article popover="">Different element type</article> should behave as a popover.]
    expected: FAIL

  [The element <header popover="">Different element type</header> should behave as a popover.]
    expected: FAIL

  [The element <nav popover="">Different element type</nav> should behave as a popover.]
    expected: FAIL

  [The element <input type="text" popover="" value="Different element type"> should behave as a popover.]
    expected: FAIL

  [The element <dialog popover="">Dialog with popover attribute</dialog> should behave as a popover.]
    expected: FAIL

  [Changing a popover from auto to manual (via attr), and then auto during 'beforetoggle' works]
    expected: FAIL

@@ -111,21 +72,6 @@
  [Changing a popover from auto to undefined (via idl), and then invalid during 'beforetoggle' works]
    expected: FAIL

  [The element <div popover="" id="boolean">Popover</div> should behave as a popover.]
    expected: FAIL

  [The element <div popover="">Popover</div> should behave as a popover.]
    expected: FAIL

  [The element <div popover="auto">Popover</div> should behave as a popover.]
    expected: FAIL

  [The element <div popover="hint">Popover</div> should behave as a popover.]
    expected: FAIL

  [The element <div popover="manual">Popover</div> should behave as a popover.]
    expected: FAIL

  [Changing a popover from manual to null (via idl), and then manual during 'beforetoggle' works]
    expected: FAIL