Changeset 288723 in webkit
- Timestamp:
- Jan 27, 2022 10:53:57 PM (6 months ago)
- Location:
- trunk/Source
- Files:
-
- 9 edited
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/Modules/model-element/HTMLModelElement.cpp (modified) (1 diff)
-
WebCore/Modules/model-element/HTMLModelElement.h (modified) (1 diff)
-
WebCore/Modules/model-element/ModelPlayer.cpp (modified) (1 diff)
-
WebCore/Modules/model-element/ModelPlayer.h (modified) (1 diff)
-
WebCore/page/DragController.cpp (modified) (1 diff)
-
WebKit/ChangeLog (modified) (1 diff)
-
WebKit/WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.h (modified) (1 diff)
-
WebKit/WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r288721 r288723 1 2022-01-27 Antoine Quint <graouts@webkit.org> 2 3 <model> should not be draggable on macOS 4 https://bugs.webkit.org/show_bug.cgi?id=235697 5 6 Reviewed by Dean Jackson. 7 8 As part of bug 229246 we added support for dragging <model> elements. However, it did not 9 work on macOS in practice so we make that explicit. 10 11 This is also important leading up to bug 227621, where we'll implement the "interactive" 12 HTML attribute and IDL property, since disabling dragging over a <model> element to adjust 13 the camera would trigger a crash under Pasteboard::write() on macOS due to not having an 14 image set on the pasteboard data. 15 16 * Modules/model-element/HTMLModelElement.cpp: 17 (WebCore::HTMLModelElement::supportsDragging const): 18 (WebCore::HTMLModelElement::isDraggableIgnoringAttributes const): 19 * Modules/model-element/HTMLModelElement.h: 20 * Modules/model-element/ModelPlayer.cpp: 21 (WebCore::ModelPlayer::supportsDragging): 22 * Modules/model-element/ModelPlayer.h: 23 * page/DragController.cpp: 24 (WebCore::modelElementIsDraggable): 25 1 26 2022-01-27 Megan Gardner <megan_gardner@apple.com> 2 27 -
trunk/Source/WebCore/Modules/model-element/HTMLModelElement.cpp
r288694 r288723 322 322 // MARK: - Interaction support. 323 323 324 bool HTMLModelElement::supportsDragging() const 325 { 326 if (!m_modelPlayer) 327 return true; 328 329 return m_modelPlayer->supportsDragging(); 330 } 331 332 bool HTMLModelElement::isDraggableIgnoringAttributes() const 333 { 334 return supportsDragging(); 335 } 336 324 337 void HTMLModelElement::defaultEventHandler(Event& event) 325 338 { -
trunk/Source/WebCore/Modules/model-element/HTMLModelElement.h
r288694 r288723 98 98 void setIsMuted(bool, DOMPromiseDeferred<void>&&); 99 99 100 bool isDraggableIgnoringAttributes() const final { return true; } 100 bool supportsDragging() const; 101 bool isDraggableIgnoringAttributes() const final; 101 102 102 103 #if PLATFORM(COCOA) -
trunk/Source/WebCore/Modules/model-element/ModelPlayer.cpp
r288694 r288723 36 36 } 37 37 38 bool ModelPlayer::supportsDragging() 39 { 40 return true; 38 41 } 42 43 } -
trunk/Source/WebCore/Modules/model-element/ModelPlayer.h
r288694 r288723 48 48 virtual void enterFullscreen() = 0; 49 49 virtual bool supportsMouseInteraction(); 50 virtual bool supportsDragging(); 50 51 virtual void handleMouseDown(const LayoutPoint&, MonotonicTime) = 0; 51 52 virtual void handleMouseMove(const LayoutPoint&, MonotonicTime) = 0; -
trunk/Source/WebCore/page/DragController.cpp
r288694 r288723 756 756 static bool modelElementIsDraggable(const HTMLModelElement& modelElement) 757 757 { 758 return !!modelElement.model();758 return modelElement.supportsDragging() && !!modelElement.model(); 759 759 } 760 760 -
trunk/Source/WebKit/ChangeLog
r288722 r288723 1 2022-01-27 Antoine Quint <graouts@webkit.org> 2 3 <model> should not be draggable on macOS 4 https://bugs.webkit.org/show_bug.cgi?id=235697 5 6 Reviewed by Dean Jackson. 7 8 Override the ModelPlayer method to disable <model> dragging on macOS. 9 10 * WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.h: 11 * WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm: 12 (WebKit::ARKitInlinePreviewModelPlayerMac::supportsDragging): 13 1 14 2022-01-27 Antoine Quint <graouts@webkit.org> 2 15 -
trunk/Source/WebKit/WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.h
r286317 r288723 54 54 PlatformLayer* layer() override; 55 55 bool supportsMouseInteraction() override; 56 bool supportsDragging() override; 56 57 void handleMouseDown(const WebCore::LayoutPoint&, MonotonicTime) override; 57 58 void handleMouseMove(const WebCore::LayoutPoint&, MonotonicTime) override; -
trunk/Source/WebKit/WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm
r288722 r288723 183 183 } 184 184 185 bool ARKitInlinePreviewModelPlayerMac::supportsDragging() 186 { 187 return false; 188 } 189 185 190 void ARKitInlinePreviewModelPlayerMac::handleMouseDown(const LayoutPoint& flippedLocationInElement, MonotonicTime timestamp) 186 191 {
Note: See TracChangeset
for help on using the changeset viewer.