Diff
Modified: trunk/LayoutTests/ChangeLog (217045 => 217046)
--- trunk/LayoutTests/ChangeLog 2017-05-18 14:05:15 UTC (rev 217045)
+++ trunk/LayoutTests/ChangeLog 2017-05-18 15:16:37 UTC (rev 217046)
@@ -1,3 +1,14 @@
+2017-05-18 Antti Koivisto <[email protected]>
+
+ Design mode should not affect UA shadow trees
+ https://bugs.webkit.org/show_bug.cgi?id=171854
+ <rdar://problem/32071037>
+
+ Reviewed by Zalan Bujtas.
+
+ * editing/deleting/search-shadow-tree-delete-expected.txt: Added.
+ * editing/deleting/search-shadow-tree-delete.html: Added.
+
2017-05-18 Miguel Gomez <[email protected]>
Unreviewed GTK+ gardening. Update expectations of tests failing after r217039.
Added: trunk/LayoutTests/editing/deleting/search-shadow-tree-delete-expected.txt (0 => 217046)
--- trunk/LayoutTests/editing/deleting/search-shadow-tree-delete-expected.txt (rev 0)
+++ trunk/LayoutTests/editing/deleting/search-shadow-tree-delete-expected.txt 2017-05-18 15:16:37 UTC (rev 217046)
@@ -0,0 +1 @@
+
Added: trunk/LayoutTests/editing/deleting/search-shadow-tree-delete.html (0 => 217046)
--- trunk/LayoutTests/editing/deleting/search-shadow-tree-delete.html (rev 0)
+++ trunk/LayoutTests/editing/deleting/search-shadow-tree-delete.html 2017-05-18 15:16:37 UTC (rev 217046)
@@ -0,0 +1,23 @@
+<html>
+<head>
+ <script type='text/_javascript_'>
+ if (window.testRunner)
+ testRunner.dumpAsText();
+ function start()
+ {
+ document.designMode="on";
+ document.getElementById("input_0").focus();
+ window.getSelection().modify("extend", "backward", "line");
+ document.execCommand("forwardDelete",true, null);
+ document.execCommand("delete",true, null);
+ if (window.GCController)
+ GCController.collect();
+ document.getElementById("input_0").blur();
+ }
+ </script>
+</head>
+<body _onload_="start()">
+ <input id="input_0" type="search" name="fname">
+</body>
+</html>
+
Modified: trunk/Source/WebCore/ChangeLog (217045 => 217046)
--- trunk/Source/WebCore/ChangeLog 2017-05-18 14:05:15 UTC (rev 217045)
+++ trunk/Source/WebCore/ChangeLog 2017-05-18 15:16:37 UTC (rev 217046)
@@ -1,3 +1,27 @@
+2017-05-18 Antti Koivisto <[email protected]>
+
+ Design mode should not affect UA shadow trees
+ https://bugs.webkit.org/show_bug.cgi?id=171854
+ <rdar://problem/32071037>
+
+ Reviewed by Zalan Bujtas.
+
+ Test: editing/deleting/search-shadow-tree-delete.html
+
+ * html/HTMLElement.cpp:
+ (WebCore::HTMLElement::editabilityFromContentEditableAttr):
+
+ Ignore design mode for UA shadow trees.
+
+ * html/SearchInputType.cpp:
+ (WebCore::SearchInputType::~SearchInputType):
+ (WebCore::SearchInputType::createShadowSubtree):
+ (WebCore::SearchInputType::resultsButtonElement):
+ (WebCore::SearchInputType::cancelButtonElement):
+ * html/SearchInputType.h:
+
+ Use RefPtr.
+
2017-05-18 Vanessa Chipirrás Navalón <[email protected]>
[GTK][GStreamer][MSE] Crash on youtube when MSE is enabled but gstreamer cant find the decoder element.
Modified: trunk/Source/WebCore/html/HTMLElement.cpp (217045 => 217046)
--- trunk/Source/WebCore/html/HTMLElement.cpp 2017-05-18 14:05:15 UTC (rev 217045)
+++ trunk/Source/WebCore/html/HTMLElement.cpp 2017-05-18 15:16:37 UTC (rev 217046)
@@ -58,6 +58,7 @@
#include "NodeTraversal.h"
#include "RenderElement.h"
#include "ScriptController.h"
+#include "ShadowRoot.h"
#include "SimulatedClick.h"
#include "StyleProperties.h"
#include "SubframeLoader.h"
@@ -402,6 +403,10 @@
}
}
+ auto* containingShadowRoot = node.containingShadowRoot();
+ if (containingShadowRoot && containingShadowRoot->mode() == ShadowRootMode::UserAgent)
+ return Editability::ReadOnly;
+
auto& document = node.document();
if (is<HTMLDocument>(document))
return downcast<HTMLDocument>(document).inDesignMode() ? Editability::CanEditRichly : Editability::ReadOnly;
Modified: trunk/Source/WebCore/html/SearchInputType.cpp (217045 => 217046)
--- trunk/Source/WebCore/html/SearchInputType.cpp 2017-05-18 14:05:15 UTC (rev 217045)
+++ trunk/Source/WebCore/html/SearchInputType.cpp 2017-05-18 15:16:37 UTC (rev 217046)
@@ -52,6 +52,10 @@
{
}
+SearchInputType::~SearchInputType()
+{
+}
+
void SearchInputType::addSearchResult()
{
#if !PLATFORM(IOS)
@@ -110,24 +114,22 @@
ASSERT(container);
ASSERT(textWrapper);
- auto resultsButton = SearchFieldResultsButtonElement::create(element().document());
- m_resultsButton = resultsButton.ptr();
- updateResultButtonPseudoType(resultsButton.get(), element().maxResults());
- container->insertBefore(resultsButton, textWrapper);
+ m_resultsButton = SearchFieldResultsButtonElement::create(element().document());
+ updateResultButtonPseudoType(*m_resultsButton, element().maxResults());
+ container->insertBefore(*m_resultsButton, textWrapper);
- auto cancelButton = SearchFieldCancelButtonElement::create(element().document());
- m_cancelButton = cancelButton.ptr();
- container->insertBefore(cancelButton, textWrapper->nextSibling());
+ m_cancelButton = SearchFieldCancelButtonElement::create(element().document());
+ container->insertBefore(*m_cancelButton, textWrapper->nextSibling());
}
HTMLElement* SearchInputType::resultsButtonElement() const
{
- return m_resultsButton;
+ return m_resultsButton.get();
}
HTMLElement* SearchInputType::cancelButtonElement() const
{
- return m_cancelButton;
+ return m_cancelButton.get();
}
void SearchInputType::handleKeydownEvent(KeyboardEvent& event)
Modified: trunk/Source/WebCore/html/SearchInputType.h (217045 => 217046)
--- trunk/Source/WebCore/html/SearchInputType.h 2017-05-18 14:05:15 UTC (rev 217045)
+++ trunk/Source/WebCore/html/SearchInputType.h 2017-05-18 15:16:37 UTC (rev 217046)
@@ -41,6 +41,7 @@
class SearchInputType final : public BaseTextInputType {
public:
explicit SearchInputType(HTMLInputElement&);
+ ~SearchInputType() override;
void stopSearchEventTimer();
@@ -64,8 +65,8 @@
bool searchEventsShouldBeDispatched() const;
void startSearchEventTimer();
- SearchFieldResultsButtonElement* m_resultsButton;
- HTMLElement* m_cancelButton;
+ RefPtr<SearchFieldResultsButtonElement> m_resultsButton;
+ RefPtr<HTMLElement> m_cancelButton;
Timer m_searchEventTimer;
};