Title: [237482] trunk/Source/WebInspectorUI
- Revision
- 237482
- Author
- [email protected]
- Date
- 2018-10-26 14:03:47 -0700 (Fri, 26 Oct 2018)
Log Message
Web Inspector: simplify some editing code checks
https://bugs.webkit.org/show_bug.cgi?id=190970
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WI._focusChanged):
* UserInterface/Base/Utilities.js:
* UserInterface/Views/EditingSupport.js:
(WI.enclosingCodeMirror): Added.
(WI.isBeingEdited):
(WI.isEventTargetAnEditableField):
* UserInterface/Views/QuickConsole.js:
(WI.QuickConsole):
Modified Paths
Diff
Modified: trunk/Source/WebInspectorUI/ChangeLog (237481 => 237482)
--- trunk/Source/WebInspectorUI/ChangeLog 2018-10-26 20:43:04 UTC (rev 237481)
+++ trunk/Source/WebInspectorUI/ChangeLog 2018-10-26 21:03:47 UTC (rev 237482)
@@ -1,5 +1,25 @@
2018-10-26 Devin Rousso <[email protected]>
+ Web Inspector: simplify some editing code checks
+ https://bugs.webkit.org/show_bug.cgi?id=190970
+
+ Reviewed by Joseph Pecoraro.
+
+ * UserInterface/Base/Main.js:
+ (WI._focusChanged):
+
+ * UserInterface/Base/Utilities.js:
+
+ * UserInterface/Views/EditingSupport.js:
+ (WI.enclosingCodeMirror): Added.
+ (WI.isBeingEdited):
+ (WI.isEventTargetAnEditableField):
+
+ * UserInterface/Views/QuickConsole.js:
+ (WI.QuickConsole):
+
+2018-10-26 Devin Rousso <[email protected]>
+
Web Inspector: Uncaught Exception: undefined is not an object (evaluating 'this._classListContainer.children')
https://bugs.webkit.org/show_bug.cgi?id=190966
Modified: trunk/Source/WebInspectorUI/UserInterface/Base/Main.js (237481 => 237482)
--- trunk/Source/WebInspectorUI/UserInterface/Base/Main.js 2018-10-26 20:43:04 UTC (rev 237481)
+++ trunk/Source/WebInspectorUI/UserInterface/Base/Main.js 2018-10-26 21:03:47 UTC (rev 237482)
@@ -1294,13 +1294,21 @@
if (WI.isEventTargetAnEditableField(event)) {
// Still update the currentFocusElement if inside of a CodeMirror editor or an input element.
- let codeMirrorEditorElement = event.target.enclosingNodeOrSelfWithClass("CodeMirror");
- if (codeMirrorEditorElement && codeMirrorEditorElement !== this.currentFocusElement) {
+ let newFocusElement = null;
+ if (event.target instanceof HTMLInputElement || event.target instanceof HTMLTextAreaElement)
+ newFocusElement = event.target;
+ else {
+ let codeMirror = WI.enclosingCodeMirror(event.target);
+ if (codeMirror) {
+ let codeMirrorElement = codeMirror.getWrapperElement();
+ if (codeMirrorElement && codeMirrorElement !== this.currentFocusElement)
+ newFocusElement = codeMirrorElement;
+ }
+ }
+
+ if (newFocusElement) {
this.previousFocusElement = this.currentFocusElement;
- this.currentFocusElement = codeMirrorEditorElement;
- } else if (event.target.tagName === "INPUT") {
- this.previousFocusElement = this.currentFocusElement;
- this.currentFocusElement = event.target;
+ this.currentFocusElement = newFocusElement;
}
// Due to the change in WI.isEventTargetAnEditableField (r196271), this return
Modified: trunk/Source/WebInspectorUI/UserInterface/Base/Utilities.js (237481 => 237482)
--- trunk/Source/WebInspectorUI/UserInterface/Base/Utilities.js 2018-10-26 20:43:04 UTC (rev 237481)
+++ trunk/Source/WebInspectorUI/UserInterface/Base/Utilities.js 2018-10-26 21:03:47 UTC (rev 237482)
@@ -379,16 +379,6 @@
}
});
-Object.defineProperty(Element.prototype, "removeMatchingStyleClasses",
-{
- value(classNameRegex)
- {
- var regex = new RegExp("(^|\\s+)" + classNameRegex + "($|\\s+)");
- if (regex.test(this.className))
- this.className = this.className.replace(regex, " ");
- }
-});
-
Object.defineProperty(Element.prototype, "createChild",
{
value(elementName, className)
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/EditingSupport.js (237481 => 237482)
--- trunk/Source/WebInspectorUI/UserInterface/Views/EditingSupport.js 2018-10-26 20:43:04 UTC (rev 237481)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/EditingSupport.js 2018-10-26 21:03:47 UTC (rev 237482)
@@ -23,6 +23,16 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
+WI.enclosingCodeMirror = function(element)
+{
+ while (element) {
+ if (element.CodeMirror)
+ return element.CodeMirror;
+ element = element.parentNode;
+ }
+ return null;
+};
+
WI.isBeingEdited = function(element)
{
while (element) {
@@ -30,7 +40,6 @@
return true;
element = element.parentNode;
}
-
return false;
};
@@ -57,26 +66,19 @@
WI.isEventTargetAnEditableField = function(event)
{
- let textInputTypes = new Set(["text", "search", "number", "tel", "url", "email", "password"]);
- if (event.target instanceof HTMLInputElement)
- return textInputTypes.has(event.target.type);
-
- let codeMirrorEditorElement = event.target.enclosingNodeOrSelfWithClass("CodeMirror");
- if (codeMirrorEditorElement && codeMirrorEditorElement.CodeMirror)
- return !codeMirrorEditorElement.CodeMirror.getOption("readOnly");
-
- if (event.target instanceof HTMLTextAreaElement)
+ if (event.target instanceof HTMLInputElement || event.target instanceof HTMLTextAreaElement)
return true;
if (event.target.isContentEditable)
return true;
- if (event.target.enclosingNodeOrSelfWithClass("text-prompt"))
- return true;
-
if (WI.isBeingEdited(event.target))
return true;
+ let codeMirror = WI.enclosingCodeMirror(event.target);
+ if (codeMirror)
+ return !codeMirror.getOption("readOnly");
+
return false;
};
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/QuickConsole.js (237481 => 237482)
--- trunk/Source/WebInspectorUI/UserInterface/Views/QuickConsole.js 2018-10-26 20:43:04 UTC (rev 237481)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/QuickConsole.js 2018-10-26 21:03:47 UTC (rev 237482)
@@ -44,7 +44,6 @@
this.element.addEventListener("mousedown", this._handleMouseDown.bind(this));
this.prompt = new WI.ConsolePrompt(null, "text/_javascript_");
- this.prompt.element.classList.add("text-prompt");
this.addSubview(this.prompt);
// FIXME: CodeMirror 4 has a default "Esc" key handler that always prevents default.
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes