RESOLVED WONTFIX 95714
Remove fixPlaceholderRenderer hack
https://bugs.webkit.org/show_bug.cgi?id=95714
Summary Remove fixPlaceholderRenderer hack
Shinya Kawanaka
Reported 2012-09-04 00:13:32 PDT
To show mouse cursor in the front of placeholder, we have adopted fixPlaceholderRenderer hack. However, this is very fragile when we add an AuthroShadowRoot on <textarea> or <input> element.
Attachments
WIP (6.01 KB, patch)
2012-09-04 02:10 PDT, Shinya Kawanaka
no flags
WIP (8.38 KB, patch)
2012-09-04 02:32 PDT, Shinya Kawanaka
no flags
WIP (16.45 KB, patch)
2012-09-05 05:40 PDT, Shinya Kawanaka
no flags
Patch (18.83 KB, patch)
2012-09-05 19:11 PDT, Shinya Kawanaka
no flags
ChangeLog fixed (18.78 KB, patch)
2012-09-05 19:18 PDT, Shinya Kawanaka
no flags
Shinya Kawanaka
Comment 1 2012-09-04 02:10:25 PDT
Shinya Kawanaka
Comment 2 2012-09-04 02:17:34 PDT
-webkit-user-select: none; will solve the problem, maybe.
Shinya Kawanaka
Comment 3 2012-09-04 02:32:05 PDT
Kent Tamura
Comment 4 2012-09-04 03:03:50 PDT
(In reply to comment #2) > -webkit-user-select: none; will solve the problem, maybe. I remember it didn't work. 1. Applying Attachment #161995 [details] 2. Build Chromium port, or Build Mac port on Lion or Mountain Lion, or Build Mac port on SnowLoepard with RenderThemeMac::shoudlShowPlaceholderWhenFocused()==true 3. Open a document with <input placeholder=placeholder autofocus> 4. Type 'a', and Backspace ASSERTION FAILED: !m_anchorNode || !m_anchorNode->isShadowRoot() /Volumes/d2/WebKit/Source/WebCore/dom/Position.cpp(88) : WebCore::Position::Position(PassRefPtr<WebCore::Node>, WebCore::Position::LegacyEditingOffset) 1 0x103ff7a64 WebCore::Position::Position(WTF::PassRefPtr<WebCore::Node>, WebCore::Position::LegacyEditingOffset) 2 0x103ff797b WebCore::Position::Position(WTF::PassRefPtr<WebCore::Node>, WebCore::Position::LegacyEditingOffset) 3 0x102da754a WebCore::createLegacyEditingPosition(WTF::PassRefPtr<WebCore::Node>, int) 4 0x102e3d258 WebCore::RangeBoundaryPoint::toPosition() const 5 0x103294cd3 WebCore::Range::endPosition() const 6 0x1046f9fba WebCore::previousBoundary(WebCore::VisiblePosition const&, unsigned int (*)(unsigned short const*, unsigned int, unsigned int, WebCore::BoundarySearchContextAvailability, bool&)) 7 0x1046f91f9 WebCore::startOfWord(WebCore::VisiblePosition const&, WebCore::EWordSide) 8 0x10339e7ef WebCore::Editor::respondToChangedSelection(WebCore::VisibleSelection const&, unsigned int) 9 0x1034ccf4e WebCore::FrameSelection::setSelection(WebCore::VisibleSelection const&, unsigned int, WebCore::FrameSelection::CursorAlignOnScroll, WebCore::TextGranularity) 10 0x1034d0499 WebCore::FrameSelection::textWasReplaced(WebCore::CharacterData*, unsigned int, unsigned int, unsigned int) 11 0x102f1b12e WebCore::CharacterData::setDataAndUpdate(WTF::String const&, unsigned int, unsigned int, unsigned int) 12 0x102f1b879 WebCore::CharacterData::deleteData(unsigned int, unsigned int, int&) 13 0x103173e45 WebCore::DeleteFromTextNodeCommand::doApply() 14 0x102f66dbb WebCore::CompositeEditCommand::applyCommandToComposite(WTF::PassRefPtr<WebCore::EditCommand>) 15 0x102f68b47 WebCore::CompositeEditCommand::deleteTextFromNode(WTF::PassRefPtr<WebCore::Text>, unsigned int, unsigned int) 16 0x10317706d WebCore::DeleteSelectionCommand::deleteTextFromNode(WTF::PassRefPtr<WebCore::Text>, unsigned int, unsigned int) 17 0x10317779f WebCore::DeleteSelectionCommand::handleGeneralDelete() 18 0x10317a766 WebCore::DeleteSelectionCommand::doApply() 19 0x102f66dbb WebCore::CompositeEditCommand::applyCommandToComposite(WTF::PassRefPtr<WebCore::EditCommand>) 20 0x102f69832 WebCore::CompositeEditCommand::deleteSelection(WebCore::VisibleSelection const&, bool, bool, bool, bool, bool) 21 0x1046ed5fc WebCore::TypingCommand::deleteKeyPressed(WebCore::TextGranularity, bool) 22 0x1046ec625 WebCore::TypingCommand::deleteKeyPressed(WebCore::Document*, unsigned int, WebCore::TextGranularity) 23 0x10338e5ee WebCore::Editor::deleteWithDirection(WebCore::SelectionDirection, WebCore::TextGranularity, bool, bool) 24 0x1033a4b07 WebCore::executeDeleteBackward(WebCore::Frame*, WebCore::Event*, WebCore::EditorCommandSource, WTF::String const&) 25 0x1033a4100 WebCore::Editor::Command::execute(WTF::String const&, WebCore::Event*) const 26 0x1033a42e9 WebCore::Editor::Command::execute(WebCore::Event*) const 27 0x1012485f2 WebKit::WebPage::executeKeypressCommandsInternal(WTF::Vector<WebCore::KeypressCommand, 0ul> const&, WebCore::KeyboardEvent*) 28 0x1012493af WebKit::WebPage::handleEditingKeyboardEvent(WebCore::KeyboardEvent*, bool) 29 0x1011cdf96 WebKit::WebEditorClient::handleKeyboardEvent(WebCore::KeyboardEvent*) 30 0x10338c972 WebCore::Editor::handleKeyboardEvent(WebCore::KeyboardEvent*) 31 0x1033eb651 WebCore::EventHandler::defaultKeyboardEventHandler(WebCore::KeyboardEvent*)
WebKit Review Bot
Comment 5 2012-09-04 04:24:17 PDT
Comment on attachment 161995 [details] WIP Attachment 161995 [details] did not pass chromium-ews (chromium-xvfb): Output: http://queues.webkit.org/results/13755321 New failing tests: fast/forms/textarea-placeholder-visibility-2.html fast/forms/input-placeholder-visibility-1.html fast/forms/textarea-placeholder-visibility-1.html fast/forms/input-placeholder-visibility-3.html
Shinya Kawanaka
Comment 6 2012-09-04 04:33:03 PDT
Hmm... I couldn't reproduce it.
Shinya Kawanaka
Comment 7 2012-09-04 04:33:56 PDT
(In reply to comment #6) > Hmm... I couldn't reproduce it. FYI: I tried it on Chromium Linux and Chromium Mac.
Shinya Kawanaka
Comment 8 2012-09-05 05:40:10 PDT
Shinya Kawanaka
Comment 9 2012-09-05 05:41:02 PDT
This crash happens only when ShadowDOM flag is disabled.
Shinya Kawanaka
Comment 10 2012-09-05 19:11:38 PDT
Kent Tamura
Comment 11 2012-09-05 19:14:08 PDT
Comment on attachment 162395 [details] Patch LGTM for WebCore/css and WebCore/html.
Shinya Kawanaka
Comment 12 2012-09-05 19:18:09 PDT
Created attachment 162396 [details] ChangeLog fixed
Dimitri Glazkov (Google)
Comment 13 2012-12-03 10:48:34 PST
Comment on attachment 162396 [details] ChangeLog fixed View in context: https://bugs.webkit.org/attachment.cgi?id=162396&action=review > Source/WebCore/editing/visible_units.cpp:526 > + // anchored and ShadowDOM is not enabled. We have to enable ShadowDOM, or avoid ShadowRoot anchored Position. Why will it assert?
Anders Carlsson
Comment 14 2014-02-05 11:13:23 PST
Comment on attachment 162396 [details] ChangeLog fixed Clearing review flag on patches from before 2014. If this patch is still relevant, please reset the r? flag.
Ryosuke Niwa
Comment 15 2019-10-04 22:17:28 PDT
No need to remove this hack since we don't support attaching a shadow root to an input element in V1 API.
Note You need to log in before you can comment on or make changes to this bug.