mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-11 13:48:23 +02:00
This patch marks `ScrollContentIntoView()` as `MOZ_CAN_RUN_SCRIPT` and changing some callers of them to guarantee thar their parent callers are also safe. Additionally, this patch moves it from `nsIPresShell` to `PresShell` because all callers can refer `PresShell` directly. Unfortunately, this patch changes a lot of methods in autocomplete and satchel since this patch needs to mark some interface methods as `can_run_script` and they are called each other. This means that autocomplete module is really sensitive like editor module. Perhaps, autocomplete and satchel should do scroll asynchronously and unmark some of them as `MOZ_CAN_RUN_SCRIPT` again. Differential Revision: https://phabricator.services.mozilla.com/D28320 --HG-- extra : moz-landing-system : lando
75 lines
2.5 KiB
Text
75 lines
2.5 KiB
Text
/* 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 nsIDocShell;
|
|
interface nsIAutoCompletePopup;
|
|
|
|
webidl Element;
|
|
webidl HTMLInputElement;
|
|
|
|
/*
|
|
* nsIFormFillController is an interface for controlling form fill behavior
|
|
* on HTML documents. Any number of docShells can be controller concurrently.
|
|
* While a docShell is attached, all HTML documents that are loaded within it
|
|
* will have a focus listener attached that will listen for when a text input
|
|
* is focused. When this happens, the input will be bound to the
|
|
* global nsIAutoCompleteController service.
|
|
*/
|
|
|
|
[scriptable, uuid(07f0a0dc-f6e9-4cdd-a55f-56d770523a4c)]
|
|
interface nsIFormFillController : nsISupports
|
|
{
|
|
/*
|
|
* The input element the form fill controller is currently bound to.
|
|
*/
|
|
readonly attribute HTMLInputElement focusedInput;
|
|
|
|
/*
|
|
* Whether the autocomplete popup on a password field was automatically opened
|
|
* by the form fill controller (upon focus).
|
|
*/
|
|
readonly attribute boolean passwordPopupAutomaticallyOpened;
|
|
|
|
/*
|
|
* Start controlling form fill behavior for the given browser
|
|
*
|
|
* @param docShell - The docShell to attach to
|
|
* @param popup - The popup to show when autocomplete results are available
|
|
*/
|
|
[can_run_script]
|
|
void attachToBrowser(in nsIDocShell docShell, in nsIAutoCompletePopup popup);
|
|
[can_run_script]
|
|
void attachPopupElementToBrowser(in nsIDocShell docShell, in Element popup);
|
|
|
|
/*
|
|
* Stop controlling form fill behavior for the given browser
|
|
*
|
|
* @param docShell - The docShell to detach from
|
|
*/
|
|
[can_run_script] void detachFromBrowser(in nsIDocShell docShell);
|
|
|
|
/*
|
|
* Mark the specified <input> element as being managed by password manager.
|
|
* Autocomplete requests will be handed off to the password manager, and will
|
|
* not be stored in form history.
|
|
*
|
|
* @param aInput - The HTML <input> element to tag
|
|
*/
|
|
[can_run_script] void markAsLoginManagerField(in HTMLInputElement aInput);
|
|
|
|
/*
|
|
* Mark the specified <input> element as being managed by a form autofill component.
|
|
* Autocomplete requests will be handed off to the autofill component.
|
|
*
|
|
* @param aInput - The HTML <input> element to mark
|
|
*/
|
|
[can_run_script] void markAsAutofillField(in HTMLInputElement aInput);
|
|
|
|
/*
|
|
* Open the autocomplete popup, if possible.
|
|
*/
|
|
[can_run_script] void showPopup();
|
|
};
|