| Index: third_party/WebKit/LayoutTests/editing/spelling/spellcheck_test.js
 | 
| diff --git a/third_party/WebKit/LayoutTests/editing/spelling/spellcheck_test.js b/third_party/WebKit/LayoutTests/editing/spelling/spellcheck_test.js
 | 
| index 6ce39b2419fd36677645facc4b6ab1e7610cada6..86302b36be3d911af3bc9657bcf57cefae123d14 100644
 | 
| --- a/third_party/WebKit/LayoutTests/editing/spelling/spellcheck_test.js
 | 
| +++ b/third_party/WebKit/LayoutTests/editing/spelling/spellcheck_test.js
 | 
| @@ -290,6 +290,8 @@ const kTitle = 'title';
 | 
|  const kCallback = 'callback';
 | 
|  /** @type {string} */
 | 
|  const kIsSpellcheckTest = 'isSpellcheckTest';
 | 
| +/** @type {string} */
 | 
| +const kNeedsFullCheck = 'needsFullCheck';
 | 
|  
 | 
|  // Spellchecker gets triggered not only by text and selection change, but also
 | 
|  // by focus change. For example, misspelling markers in <INPUT> disappear when
 | 
| @@ -357,9 +359,13 @@ function invokeSpellcheckTest(testObject, input, tester, expectedText) {
 | 
|        });
 | 
|      };
 | 
|  
 | 
| -    if (internals.idleTimeSpellCheckerState !== undefined &&
 | 
| -        internals.idleTimeSpellCheckerState(sample.document) === 'HotModeRequested') {
 | 
| +    if (internals.idleTimeSpellCheckerState !== undefined) {
 | 
| +      if (internals.idleTimeSpellCheckerState(sample.document) === 'HotModeRequested')
 | 
|          internals.runIdleTimeSpellChecker(sample.document);
 | 
| +      if (testObject.properties[kNeedsFullCheck]) {
 | 
| +        while (internals.idleTimeSpellCheckerState(sample.document) !== 'Inactive')
 | 
| +          internals.runIdleTimeSpellChecker(sample.document);
 | 
| +      }
 | 
|      }
 | 
|  
 | 
|      // For a test that does not create new spell check request, a synchronous
 | 
| @@ -407,7 +413,7 @@ add_result_callback(testObj => {
 | 
|  function getTestArguments(passedArgs) {
 | 
|    const args = {};
 | 
|    args[kIsSpellcheckTest] = true;
 | 
| -  [kTitle, kCallback].forEach(key => args[key] = undefined);
 | 
| +  [kTitle, kCallback, kNeedsFullCheck].forEach(key => args[key] = undefined);
 | 
|    if (!passedArgs)
 | 
|      return args;
 | 
|  
 | 
| @@ -416,7 +422,8 @@ function getTestArguments(passedArgs) {
 | 
|      return args;
 | 
|    }
 | 
|  
 | 
| -  [kTitle, kCallback].forEach(key => args[key] = passedArgs[key]);
 | 
| +  [kTitle, kCallback, kNeedsFullCheck].forEach(
 | 
| +      key => args[key] = passedArgs[key]);
 | 
|    return args;
 | 
|  }
 | 
|  
 | 
| 
 |