Changeset 194117 in webkit
- Timestamp:
- Dec 15, 2015 2:46:02 PM (8 years ago)
- Location:
- trunk
- Files:
-
- 7 added
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r194114 r194117 1 2015-12-15 Tim Horton <timothy_horton@apple.com> 2 3 REGRESSION (r191849): There's no yellow bouncy highlight when using Find on Page on iOS 4 https://bugs.webkit.org/show_bug.cgi?id=152241 5 <rdar://problem/23642574> 6 7 Reviewed by Simon Fraser. 8 9 * pageoverlay/overlay-small-frame-mouse-events-expected.txt: Added. 10 * pageoverlay/overlay-small-frame-mouse-events.html: Added. 11 Add a test ensuring that small-frame overlays get mouse events. 12 13 * pageoverlay/overlay-small-frame-paints-expected.txt: Added. 14 * pageoverlay/overlay-small-frame-paints.html: Added. 15 Add a test ensuring that small-frame overlays get paint callbacks. 16 1 17 2015-12-15 Myles C. Maxfield <mmaxfield@apple.com> 2 18 -
trunk/LayoutTests/pageoverlay/overlay-installation-expected.txt
r174315 r194117 1 CONSOLE MESSAGE: MockPageOverlayClient::drawRect dirtyRect (0, 0, 800, 600) 2 CONSOLE MESSAGE: MockPageOverlayClient::drawRect dirtyRect (0, 0, 800, 600) 1 3 View-relative: 2 4 (GraphicsLayer -
trunk/LayoutTests/pageoverlay/overlay-large-document-expected.txt
r174315 r194117 1 CONSOLE MESSAGE: MockPageOverlayClient::drawRect dirtyRect (0, 0, 785, 585) 2 CONSOLE MESSAGE: MockPageOverlayClient::drawRect dirtyRect (512, 512, 512, 512) 3 CONSOLE MESSAGE: MockPageOverlayClient::drawRect dirtyRect (0, 512, 512, 512) 4 CONSOLE MESSAGE: MockPageOverlayClient::drawRect dirtyRect (512, 0, 512, 512) 5 CONSOLE MESSAGE: MockPageOverlayClient::drawRect dirtyRect (0, 0, 512, 512) 1 6 View-relative: 2 7 (GraphicsLayer -
trunk/LayoutTests/pageoverlay/overlay-large-document-scrolled-expected.txt
r174315 r194117 1 CONSOLE MESSAGE: MockPageOverlayClient::drawRect dirtyRect (0, 0, 785, 585) 2 CONSOLE MESSAGE: MockPageOverlayClient::drawRect dirtyRect (4608, 4608, 400, 408) 3 CONSOLE MESSAGE: MockPageOverlayClient::drawRect dirtyRect (4096, 4608, 512, 408) 4 CONSOLE MESSAGE: MockPageOverlayClient::drawRect dirtyRect (4608, 4096, 400, 512) 5 CONSOLE MESSAGE: MockPageOverlayClient::drawRect dirtyRect (4096, 4096, 512, 512) 1 6 View-relative: 2 7 (GraphicsLayer -
trunk/Source/WebCore/ChangeLog
r194114 r194117 1 2015-12-15 Tim Horton <timothy_horton@apple.com> 2 3 REGRESSION (r191849): There's no yellow bouncy highlight when using Find on Page on iOS 4 https://bugs.webkit.org/show_bug.cgi?id=152241 5 <rdar://problem/23642574> 6 7 Reviewed by Simon Fraser. 8 9 Tests: pageoverlay/overlay-small-frame-mouse-events.html 10 pageoverlay/overlay-small-frame-paints.html 11 12 * page/PageOverlay.cpp: 13 (WebCore::PageOverlay::bounds): 14 Revert r191849's change that made bounds() actually return the frame() 15 if we frame is manually overriden. 16 17 (WebCore::PageOverlay::mouseEvent): 18 Convert the mouse event the rest of the way into overlay coordinates (by 19 applying the overlay's frame origin) before deciding whether to handle 20 the event. 21 22 * page/PageOverlay.h: 23 24 * DerivedSources.make: 25 * WebCore.xcodeproj/project.pbxproj: 26 * testing/Internals.cpp: 27 (WebCore::Internals::installMockPageOverlay): 28 * testing/Internals.h: 29 * testing/Internals.idl: 30 * testing/MockPageOverlay.cpp: Added. 31 (WebCore::MockPageOverlay::create): 32 (WebCore::MockPageOverlay::MockPageOverlay): 33 (WebCore::MockPageOverlay::setFrame): 34 * testing/MockPageOverlay.h: Added. 35 (WebCore::MockPageOverlay::overlay): 36 * testing/MockPageOverlay.idl: Added. 37 * testing/MockPageOverlayClient.cpp: 38 (WebCore::MockPageOverlayClient::installOverlay): 39 (WebCore::MockPageOverlayClient::uninstallAllOverlays): 40 (WebCore::MockPageOverlayClient::pageOverlayDestroyed): 41 (WebCore::MockPageOverlayClient::drawRect): 42 (WebCore::MockPageOverlayClient::mouseEvent): 43 * testing/MockPageOverlayClient.h: 44 Make internals.installMockPageOverlay return a MockPageOverlay object so 45 tests can manipulate their overlay. For now, expose setFrame. 46 Also, log when MockPageOverlayClient gets asked to paint or receives a mouse event, 47 which will show up in test output. Slightly unconventional, but very convenient. 48 1 49 2015-12-15 Myles C. Maxfield <mmaxfield@apple.com> 2 50 -
trunk/Source/WebCore/DerivedSources.make
r193957 r194117 526 526 $(WebCore)/testing/MemoryInfo.idl \ 527 527 $(WebCore)/testing/MockContentFilterSettings.idl \ 528 $(WebCore)/testing/MockPageOverlay.idl \ 528 529 $(WebCore)/testing/TypeConversions.idl \ 529 530 $(WebCore)/workers/AbstractWorker.idl \ -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r194033 r194117 131 131 07277E5417D018CC0015534D /* JSMediaStreamTrackEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07277E4817D018CC0015534D /* JSMediaStreamTrackEvent.cpp */; }; 132 132 07277E5517D018CC0015534D /* JSMediaStreamTrackEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 07277E4917D018CC0015534D /* JSMediaStreamTrackEvent.h */; }; 133 07297FA71C1881C5003F0735 /* UserMediaPermissionCheck.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07297FA51C1881C5003F0735 /* UserMediaPermissionCheck.cpp */; settings = {ASSET_TAGS = (); };};133 07297FA71C1881C5003F0735 /* UserMediaPermissionCheck.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07297FA51C1881C5003F0735 /* UserMediaPermissionCheck.cpp */; }; 134 134 07297FA81C1881C5003F0735 /* UserMediaPermissionCheck.h in Headers */ = {isa = PBXBuildFile; fileRef = 07297FA61C1881C5003F0735 /* UserMediaPermissionCheck.h */; settings = {ATTRIBUTES = (Private, ); }; }; 135 135 072AE1E5183C0741000A5988 /* PluginReplacement.h in Headers */ = {isa = PBXBuildFile; fileRef = 072AE1DF183C0741000A5988 /* PluginReplacement.h */; }; … … 1114 1114 2D3EF44B1917915C00034184 /* WebCoreCALayerExtras.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2D3EF4471917915C00034184 /* WebCoreCALayerExtras.mm */; }; 1115 1115 2D413F611A187A3F0041A521 /* LookupSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D413F601A187A3F0041A521 /* LookupSPI.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1116 2D4150DE1C1F868C000A3BA2 /* JSMockPageOverlay.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2D6F3E921C1F85550061DBD4 /* JSMockPageOverlay.cpp */; }; 1116 1117 2D46F04E17B96FBD005647F0 /* IntPoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2D46F04D17B96FBD005647F0 /* IntPoint.cpp */; }; 1117 1118 2D46F05017B96FD2005647F0 /* IntSize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2D46F04F17B96FD2005647F0 /* IntSize.cpp */; }; … … 1140 1141 2D5C9D0219C7B52E00B3C5C1 /* PageOverlayController.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D5C9CFE19C7B52E00B3C5C1 /* PageOverlayController.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1141 1142 2D6E468417D660F500ECF8BB /* PDFDocumentImageMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2D6E468217D660F500ECF8BB /* PDFDocumentImageMac.mm */; }; 1143 2D6F3E901C1ECB270061DBD4 /* MockPageOverlay.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2D6F3E8A1C1ECB1C0061DBD4 /* MockPageOverlay.cpp */; }; 1144 2D6F3E911C1ECB2F0061DBD4 /* MockPageOverlay.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D6F3E8B1C1ECB1C0061DBD4 /* MockPageOverlay.h */; }; 1145 2D6F3E951C1F85550061DBD4 /* JSMockPageOverlay.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D6F3E931C1F85550061DBD4 /* JSMockPageOverlay.h */; }; 1142 1146 2D70BA1318074DDF0001908A /* PlatformCALayerCocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D70BA1218074DDF0001908A /* PlatformCALayerCocoa.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1143 1147 2D70BA1518074F860001908A /* PlatformCALayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2D70BA1418074F850001908A /* PlatformCALayer.cpp */; }; … … 8491 8495 2D5C9CFE19C7B52E00B3C5C1 /* PageOverlayController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PageOverlayController.h; sourceTree = "<group>"; }; 8492 8496 2D6E468217D660F500ECF8BB /* PDFDocumentImageMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PDFDocumentImageMac.mm; sourceTree = "<group>"; }; 8497 2D6F3E8A1C1ECB1C0061DBD4 /* MockPageOverlay.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MockPageOverlay.cpp; sourceTree = "<group>"; }; 8498 2D6F3E8B1C1ECB1C0061DBD4 /* MockPageOverlay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MockPageOverlay.h; sourceTree = "<group>"; }; 8499 2D6F3E8C1C1ECB1C0061DBD4 /* MockPageOverlay.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MockPageOverlay.idl; sourceTree = "<group>"; }; 8500 2D6F3E921C1F85550061DBD4 /* JSMockPageOverlay.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMockPageOverlay.cpp; sourceTree = "<group>"; }; 8501 2D6F3E931C1F85550061DBD4 /* JSMockPageOverlay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMockPageOverlay.h; sourceTree = "<group>"; }; 8493 8502 2D70BA1218074DDF0001908A /* PlatformCALayerCocoa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformCALayerCocoa.h; sourceTree = "<group>"; }; 8494 8503 2D70BA1418074F850001908A /* PlatformCALayer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PlatformCALayer.cpp; sourceTree = "<group>"; }; … … 16402 16411 A1B5B29D1AAA846E008B6042 /* MockContentFilterSettings.h */, 16403 16412 A19AEA1C1AAA7C4900B52B25 /* MockContentFilterSettings.idl */, 16413 2D6F3E8A1C1ECB1C0061DBD4 /* MockPageOverlay.cpp */, 16414 2D6F3E8B1C1ECB1C0061DBD4 /* MockPageOverlay.h */, 16415 2D6F3E8C1C1ECB1C0061DBD4 /* MockPageOverlay.idl */, 16404 16416 2DAAE32C19DCAF6000E002D2 /* MockPageOverlayClient.cpp */, 16405 16417 2DAAE32D19DCAF6000E002D2 /* MockPageOverlayClient.h */, … … 16426 16438 A19AEA1D1AAA806E00B52B25 /* JSMockContentFilterSettings.cpp */, 16427 16439 A19AEA1E1AAA806E00B52B25 /* JSMockContentFilterSettings.h */, 16440 2D6F3E921C1F85550061DBD4 /* JSMockPageOverlay.cpp */, 16441 2D6F3E931C1F85550061DBD4 /* JSMockPageOverlay.h */, 16428 16442 EBF5121A1696496C0056BD25 /* JSTypeConversions.cpp */, 16429 16443 EBF5121B1696496C0056BD25 /* JSTypeConversions.h */, … … 24487 24501 A740B5A514C935AB00A77FA4 /* JSInternalSettings.h in Headers */, 24488 24502 53ED3FDF167A88E7006762E6 /* JSInternalSettingsGenerated.h in Headers */, 24503 2D6F3E911C1ECB2F0061DBD4 /* MockPageOverlay.h in Headers */, 24489 24504 A740B59514C935AB00A77FA4 /* JSMallocStatistics.h in Headers */, 24490 24505 CD5393D4175E018600C07123 /* JSMemoryInfo.h in Headers */, … … 27564 27579 B22279D10D00BF220071B782 /* SVGFECompositeElement.h in Headers */, 27565 27580 1921327511C0E6BB00456238 /* SVGFEConvolveMatrixElement.h in Headers */, 27581 2D6F3E951C1F85550061DBD4 /* JSMockPageOverlay.h in Headers */, 27566 27582 B22279D40D00BF220071B782 /* SVGFEDiffuseLightingElement.h in Headers */, 27567 27583 B22279D70D00BF220071B782 /* SVGFEDisplacementMapElement.h in Headers */, … … 28403 28419 buildActionMask = 2147483647; 28404 28420 files = ( 28421 2D4150DE1C1F868C000A3BA2 /* JSMockPageOverlay.cpp in Sources */, 28405 28422 417DA6D913734E6E007C57FB /* Internals.cpp in Sources */, 28406 28423 E179F0DA1B9774FE00ED0A27 /* Internals.mm in Sources */, … … 28414 28431 A19AEA221AAA808A00B52B25 /* JSMockContentFilterSettings.cpp in Sources */, 28415 28432 A1E5B31F1AAD1DA4006EBEFB /* JSMockContentFilterSettingsCustom.cpp in Sources */, 28433 2D6F3E901C1ECB270061DBD4 /* MockPageOverlay.cpp in Sources */, 28416 28434 EBF5121C1696496C0056BD25 /* JSTypeConversions.cpp in Sources */, 28417 28435 CDC26B40160A8CC60026757B /* MockCDM.cpp in Sources */, -
trunk/Source/WebCore/page/PageOverlay.cpp
r191922 r194117 76 76 { 77 77 if (!m_overrideFrame.isEmpty()) 78 return m_overrideFrame;78 return { { }, m_overrideFrame.size() }; 79 79 80 80 FrameView* frameView = m_page->mainFrame().view(); … … 188 188 if (m_overlayType == PageOverlay::OverlayType::Document) 189 189 mousePositionInOverlayCoordinates = m_page->mainFrame().view()->windowToContents(mousePositionInOverlayCoordinates); 190 mousePositionInOverlayCoordinates.moveBy(-frame().location()); 190 191 191 192 // Ignore events outside the bounds. -
trunk/Source/WebCore/page/PageOverlay.h
r191922 r194117 79 79 80 80 void setPage(Page*); 81 Page* page() const { return m_page; } 81 82 WEBCORE_EXPORT void setNeedsDisplay(const IntRect& dirtyRect); 82 83 WEBCORE_EXPORT void setNeedsDisplay(); -
trunk/Source/WebCore/testing/Internals.cpp
r194000 r194117 83 83 #include "MemoryCache.h" 84 84 #include "MemoryInfo.h" 85 #include "MockPageOverlay.h" 85 86 #include "MockPageOverlayClient.h" 86 87 #include "Page.h" … … 2991 2992 #endif 2992 2993 2993 2994 void Internals::installMockPageOverlay(const String& overlayType, ExceptionCode& ec) 2994 RefPtr<MockPageOverlay> Internals::installMockPageOverlay(const String& overlayType, ExceptionCode& ec) 2995 2995 { 2996 2996 Document* document = contextDocument(); 2997 2997 if (!document || !document->frame()) { 2998 2998 ec = INVALID_ACCESS_ERR; 2999 return ;3000 } 3001 3002 MockPageOverlayClient::singleton().installOverlay(document->frame()->mainFrame(), overlayType == "view" ? PageOverlay::OverlayType::View : PageOverlay::OverlayType::Document);2999 return nullptr; 3000 } 3001 3002 return MockPageOverlayClient::singleton().installOverlay(document->frame()->mainFrame(), overlayType == "view" ? PageOverlay::OverlayType::View : PageOverlay::OverlayType::Document); 3003 3003 } 3004 3004 -
trunk/Source/WebCore/testing/Internals.h
r194000 r194117 59 59 class MediaSession; 60 60 class MemoryInfo; 61 class MockPageOverlay; 61 62 class Node; 62 63 class Page; … … 418 419 void simulateSystemWake() const; 419 420 420 voidinstallMockPageOverlay(const String& overlayType, ExceptionCode&);421 RefPtr<MockPageOverlay> installMockPageOverlay(const String& overlayType, ExceptionCode&); 421 422 String pageOverlayLayerTreeAsText(ExceptionCode&) const; 422 423 -
trunk/Source/WebCore/testing/Internals.idl
r194000 r194117 386 386 [Conditional=VIDEO] boolean elementIsBlockingDisplaySleep(Element element); 387 387 388 [RaisesException] voidinstallMockPageOverlay(PageOverlayType type);388 [RaisesException] MockPageOverlay installMockPageOverlay(PageOverlayType type); 389 389 [RaisesException] DOMString pageOverlayLayerTreeAsText(); 390 390 -
trunk/Source/WebCore/testing/MockPageOverlayClient.cpp
r192140 r194117 27 27 #include "MockPageOverlayClient.h" 28 28 29 #include "Document.h" 29 30 #include "GraphicsContext.h" 30 31 #include "GraphicsLayer.h" 31 32 #include "MainFrame.h" 32 33 #include "PageOverlayController.h" 34 #include "PlatformMouseEvent.h" 33 35 #include <wtf/NeverDestroyed.h> 36 #include <wtf/text/StringBuilder.h> 34 37 35 38 namespace WebCore { … … 45 48 } 46 49 47 voidMockPageOverlayClient::installOverlay(MainFrame& mainFrame, PageOverlay::OverlayType overlayType)50 Ref<MockPageOverlay> MockPageOverlayClient::installOverlay(MainFrame& mainFrame, PageOverlay::OverlayType overlayType) 48 51 { 49 RefPtr<PageOverlay> overlay = PageOverlay::create(*this, overlayType); 50 mainFrame.pageOverlayController().installPageOverlay(overlay, PageOverlay::FadeMode::DoNotFade); 51 m_overlays.add(overlay.get()); 52 auto overlay = PageOverlay::create(*this, overlayType); 53 mainFrame.pageOverlayController().installPageOverlay(overlay.ptr(), PageOverlay::FadeMode::DoNotFade); 54 55 auto mockOverlay = MockPageOverlay::create(overlay.ptr()); 56 m_overlays.add(mockOverlay.ptr()); 57 58 return mockOverlay; 52 59 } 53 60 … … 55 62 { 56 63 while (!m_overlays.isEmpty()) { 57 PageOverlay* overlay = m_overlays.takeAny(); 58 ASSERT(overlay->controller()); 59 overlay->controller()->uninstallPageOverlay(overlay, PageOverlay::FadeMode::DoNotFade); 64 MockPageOverlay* mockOverlay = m_overlays.takeAny(); 65 PageOverlayController* overlayController = mockOverlay->overlay()->controller(); 66 ASSERT(overlayController); 67 overlayController->uninstallPageOverlay(mockOverlay->overlay(), PageOverlay::FadeMode::DoNotFade); 60 68 } 61 69 } … … 68 76 void MockPageOverlayClient::pageOverlayDestroyed(PageOverlay& overlay) 69 77 { 70 m_overlays.remove(&overlay); 78 for (auto& mockOverlay : m_overlays) { 79 if (mockOverlay->overlay() == &overlay) { 80 m_overlays.remove(mockOverlay); 81 return; 82 } 83 } 71 84 } 72 85 … … 81 94 } 82 95 83 void MockPageOverlayClient::drawRect(PageOverlay& overlay, GraphicsContext& context, const IntRect& )96 void MockPageOverlayClient::drawRect(PageOverlay& overlay, GraphicsContext& context, const IntRect& dirtyRect) 84 97 { 98 StringBuilder message; 99 message.appendLiteral("MockPageOverlayClient::drawRect dirtyRect ("); 100 message.appendNumber(dirtyRect.x()); 101 message.appendLiteral(", "); 102 message.appendNumber(dirtyRect.y()); 103 message.appendLiteral(", "); 104 message.appendNumber(dirtyRect.width()); 105 message.appendLiteral(", "); 106 message.appendNumber(dirtyRect.height()); 107 message.appendLiteral(")"); 108 overlay.page()->mainFrame().document()->addConsoleMessage(MessageSource::Other, MessageLevel::Debug, message.toString()); 109 85 110 GraphicsContextStateSaver stateSaver(context); 86 111 … … 98 123 } 99 124 100 bool MockPageOverlayClient::mouseEvent(PageOverlay& , const PlatformMouseEvent&)125 bool MockPageOverlayClient::mouseEvent(PageOverlay& overlay, const PlatformMouseEvent& event) 101 126 { 127 StringBuilder message; 128 message.appendLiteral("MockPageOverlayClient::mouseEvent location ("); 129 message.appendNumber(event.position().x()); 130 message.appendLiteral(", "); 131 message.appendNumber(event.position().y()); 132 message.appendLiteral(")"); 133 overlay.page()->mainFrame().document()->addConsoleMessage(MessageSource::Other, MessageLevel::Debug, message.toString()); 134 102 135 return false; 103 136 } -
trunk/Source/WebCore/testing/MockPageOverlayClient.h
r179409 r194117 27 27 #define MockPageOverlayClient_h 28 28 29 #include "MockPageOverlay.h" 29 30 #include "PageOverlay.h" 30 31 #include <wtf/HashSet.h> … … 41 42 explicit MockPageOverlayClient(); 42 43 43 voidinstallOverlay(MainFrame&, PageOverlay::OverlayType);44 Ref<MockPageOverlay> installOverlay(MainFrame&, PageOverlay::OverlayType); 44 45 void uninstallAllOverlays(); 45 46 … … 60 61 virtual Vector<String> copyAccessibilityAttributeNames(PageOverlay&, bool /* parameterizedNames */) override; 61 62 62 HashSet< PageOverlay*> m_overlays;63 HashSet<MockPageOverlay*> m_overlays; 63 64 }; 64 65
Note: See TracChangeset
for help on using the changeset viewer.