New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 781971 link

Starred by 4 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Dec 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 1
Type: Bug-Regression

Blocked on:
issue 782836

Blocking:
issue 638351



Sign in to add a comment

Regression: Mac OSX spell check panel not showing

Project Member Reported by noel@chromium.org, Nov 6 2017

Issue description

Chrome Version: Version 64.0.3253.3 (Official Build) dev (64-bit)

What steps will reproduce the problem?

(1) Place the cursor in a text area (such as this one) and enter some misspelled text  
(2) From Chrome's Edit menu, select Edit -> Spelling and Grammar -> Show Spelling and Grammar
(3) or else type ⌘+shift+: to open the Spelling and Grammar panel

What is the expected result?

The Mac OSX System Spelling and Grammar panel should be shown.

What happens instead?

The Spelling and Grammar panel is not shown.

Per https://bugs.chromium.org/p/chromium/issues/detail?id=638351#c33 this bug repros on M61 Stable (61.0.3163.100) also, so any bisect should start around there.
 

Comment 1 by noel@chromium.org, Nov 6 2017

Cc: noel@chromium.org creis@chromium.org
 Issue 781968  has been merged into this issue.

Comment 2 by noel@chromium.org, Nov 6 2017

Labels: -Pri-3 OS-Mac Pri-2

Comment 3 by noel@chromium.org, Nov 6 2017

If no textarea is handy, create one by navigating to data:text/html,<textarea>
Components: UI>Browser>Language>Spellcheck
Do we have a bisect?
Cc: hdodda@chromium.org
Labels: -Type-Bug -Pri-2 -Needs-Bisect hasbisect-per-revision Needs-Milestone Pri-1 Type-Bug-Regression
Able to reproduce the issue on Mac os 10.12.6 using chrome M64 #64.0.3261.0 and M62 #62.0.3202.89.

This is a regression issue broken in M61 and is reproduce on Mac OS .

Good Build : 61.0.3150.0 
Bad Build : 61.0.3152.0

You are probably looking for a change made after 484706 (known good), but no later than 484708 (first known bad).

CHANGELOG URL:

The script might not always return single CL as suspect as some perf builds might get missing due to failure.

  https://chromium.googlesource.com/chromium/src/+log/d228d5d9f15e1f93415ccee3196aa43b745c1cb3..2cd5186ee730c77dcf5e8699d67d8796ac7e7aa6

@Unable to find the possible suspect from the above CL , Could someone help us in assigning it to the concern owner.

Thansk

Comment 6 by groby@google.com, Nov 7 2017

fwiw, 60.0.3112.101 produces the panel. 

bisect gives "You are probably looking for a change made after 484697 (known good), but no later than 484710 (first known bad)."
https://chromium.googlesource.com/chromium/src/+log/01b4e652995e1255782dc157b7af7e14cd109127..b5ac971cfbf3afa2230534369912bffccefb0fc1

Likely candidate is the WidgetInputHandler change by dtapuska

Here is what I think the problem is: The change replaces the second (value) parameter for EditCommand with an Optional<string>. And then treats the empty string and nullptr as the same.  (specifically, in EditCommandImp and doCommandBySelector)

Except... they aren't. 

The nullptr version ends up calling Editor::ExecuteCommand(const String& command_name). The other one calls the dual-parameter Editor::ExecuteCommand(const String& command_name, const String& value)

And now... drumroll - the first one supports ToggleSpellPanel command, the second the showGuessPanel command. The selector is named -showGuessPanel. Pre-change, that invoked the two-parameter version with ("showGuessPanel","") - and all was well.

After the change, it instead gets a nullptr for the value, which routes into the one-parameter version - and that one doesn't know about showGuessPanel.

I have no idea why we need two different names for this. I'd strongly suggest handling both names in both functions, or, better, collapsing both functions into one - since base::Optional is now available in WebKit (as WTF::Optional)

Comment 7 by groby@google.com, Nov 7 2017

Cc: dtapu...@chromium.org
+dtapuska to confirm
Cc: shrike@chromium.org gov...@chromium.org
Labels: -Needs-Milestone M-63
Adding M-63 milestone since M62 is already in stable.
Cc: pbomm...@chromium.org
Components: Blink>Editing
Cc: yosin@chromium.org

Comment 12 by noel@chromium.org, Nov 7 2017

Description: Show this description
Components: -Blink>Editing Blink>Input
Route to Blink>Input, since this issue is happend after introducing WidgetInputHandler.

Note: Displaying spell check panel is controlled by SpellCheckPanel in
//src/components/spellcheck/renderer/spellcheck_panel.cc
Owner: dtapu...@chromium.org
Status: Assigned (was: Untriaged)
Owner: groby@chromium.org
Sending over to groby@ as patch is in the works.
Project Member

Comment 16 by bugdroid1@chromium.org, Nov 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5b96839ae07f6309a515e0a4ed9bdc8c4f9b3fe9

commit 5b96839ae07f6309a515e0a4ed9bdc8c4f9b3fe9
Author: Rachel Blum <groby@chromium.org>
Date: Sat Nov 18 03:37:38 2017

[spellcheck,OSX] Fix keyboard shortcut for spellcheck panel

The spellcheck panel on OSX can be invoked via two editor commands:
ToggleSpellPanel, and showGuessPanel. It used to be that one was invoked
as an EditorCommand with no parameter, and the second as a command with
empty string as parameter.

This changed at some point. As an additional hurdle, editor commands
without a parameter also get a capital letter as initial (mandatory).

The fix here removes the invokation via the selector name - a.k.a.
showGuessPanel - and renames that to ToggleSpellPanel.

It does *not* address the issue of two separate invokation paths.
(That is a follow-up CL, since it might require rollback)

BUG= 781971 

Change-Id: I2023c5d3b91f491706ea2401c9cd03dbd87ae71e
Reviewed-on: https://chromium-review.googlesource.com/759658
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Commit-Queue: Rachel Blum <groby@chromium.org>
Cr-Commit-Position: refs/heads/master@{#517692}
[modify] https://crrev.com/5b96839ae07f6309a515e0a4ed9bdc8c4f9b3fe9/content/browser/renderer_host/render_widget_host_view_mac_editcommand_helper.mm
[modify] https://crrev.com/5b96839ae07f6309a515e0a4ed9bdc8c4f9b3fe9/third_party/WebKit/Source/core/editing/commands/EditorCommand.cpp

Labels: TE-Verified-M64 TE-Verified-64.0.3273.0
Verified the issue on Mac os 10.12.6 using chrome M64 #64.0.3273.0 and issue is fixed.

The Spelling and Grammar panel is shown. Adding TE-Verified labels.

Thanks!
Guess this can be closed?

Comment 19 by groby@google.com, Dec 19 2017

Blockedon: 782836
Status: Fixed (was: Assigned)
AFAICT, yes - shrike@ wanted additional test coverage, but that's handled in  bug #782836 , also closed

Sign in to add a comment