Changeset 220033 in webkit
- Timestamp:
- Jul 28, 2017 4:19:50 PM (7 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r220011 r220033 1 2017-07-28 Brady Eidson <beidson@apple.com> 2 3 API tests that use URLSchemeHandler are failing. 4 https://bugs.webkit.org/show_bug.cgi?id=174950 5 6 Reviewed by Alex Christensen. 7 8 Make sure that in all cases where we remove the last task from the page->task map... 9 ...We also remove the map itself. 10 11 * UIProcess/WebURLSchemeHandler.cpp: 12 (WebKit::WebURLSchemeHandler::stopTask): 13 (WebKit::WebURLSchemeHandler::taskCompleted): 14 (WebKit::WebURLSchemeHandler::removeTaskFromPageMap): 15 * UIProcess/WebURLSchemeHandler.h: 16 1 17 2017-07-28 Brady Eidson <beidson@apple.com> 2 18 -
trunk/Source/WebKit/UIProcess/WebURLSchemeHandler.cpp
r220011 r220033 81 81 return; 82 82 83 auto pageIterator = m_tasksByPageIdentifier.find(page.pageID());84 ASSERT(pageIterator != m_tasksByPageIdentifier.end());85 ASSERT(pageIterator->value.contains(taskIdentifier));86 pageIterator->value.remove(taskIdentifier);87 88 83 iterator->value->stop(); 89 84 platformStopTask(page, iterator->value); 90 85 86 removeTaskFromPageMap(page.pageID(), taskIdentifier); 91 87 m_tasks.remove(iterator); 92 if (pageIterator->value.isEmpty())93 m_tasksByPageIdentifier.remove(pageIterator);94 88 } 95 89 … … 98 92 auto takenTask = m_tasks.take(task.identifier()); 99 93 ASSERT_UNUSED(takenTask, takenTask->ptr() == &task); 100 101 ASSERT(m_tasksByPageIdentifier.get(task.pageID()).contains(task.identifier())); 102 m_tasksByPageIdentifier.get(task.pageID()).remove(task.identifier()); 94 removeTaskFromPageMap(task.pageID(), task.identifier()); 103 95 104 96 platformTaskCompleted(task); 105 97 } 106 98 99 void WebURLSchemeHandler::removeTaskFromPageMap(uint64_t pageID, uint64_t taskID) 100 { 101 auto iterator = m_tasksByPageIdentifier.find(pageID); 102 ASSERT(iterator != m_tasksByPageIdentifier.end()); 103 ASSERT(iterator->value.contains(taskID)); 104 iterator->value.remove(taskID); 105 if (iterator->value.isEmpty()) 106 m_tasksByPageIdentifier.remove(iterator); 107 } 108 107 109 } // namespace WebKit -
trunk/Source/WebKit/UIProcess/WebURLSchemeHandler.h
r220011 r220033 60 60 virtual void platformTaskCompleted(WebURLSchemeTask&) = 0; 61 61 62 void removeTaskFromPageMap(uint64_t pageID, uint64_t taskID); 63 62 64 uint64_t m_identifier; 63 65 -
trunk/Tools/ChangeLog
r220032 r220033 1 2017-07-28 Brady Eidson <beidson@apple.com> 2 3 API tests that use URLSchemeHandler are failing. 4 https://bugs.webkit.org/show_bug.cgi?id=174950 5 6 Reviewed by Alex Christensen. 7 8 Fix the NoMIMEType test to be correct. 9 10 * TestWebKitAPI/Tests/WebKit2Cocoa/WKURLSchemeHandler-1.mm: 11 (-[SchemeHandler initWithData:mimeType:]): 12 (-[SchemeHandler webView:startURLSchemeTask:]): 13 (TEST): 14 1 15 2017-07-28 Daniel Bates <dabates@apple.com> 2 16 -
trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKURLSchemeHandler-1.mm
r218810 r220033 42 42 @property (readonly) NSMutableArray<NSURL *> *startedURLs; 43 43 @property (readonly) NSMutableArray<NSURL *> *stoppedURLs; 44 @property (assign) BOOL shouldFinish; 44 45 - (instancetype)initWithData:(NSData *)data mimeType:(NSString *)inMIMEType; 45 46 @end … … 60 61 _startedURLs = [[NSMutableArray alloc] init]; 61 62 _stoppedURLs = [[NSMutableArray alloc] init]; 63 _shouldFinish = YES; 62 64 63 65 return self; … … 85 87 [task didReceiveResponse:response.get()]; 86 88 [task didReceiveData:resourceData.get()]; 87 [task didFinish]; 89 if (_shouldFinish) 90 [task didFinish]; 88 91 } 89 92 … … 134 137 135 138 RetainPtr<SchemeHandler> handler = adoptNS([[SchemeHandler alloc] initWithData:[NSData dataWithBytesNoCopy:(void*)mainBytes length:sizeof(mainBytes) freeWhenDone:NO] mimeType:nil]); 139 handler.get().shouldFinish = NO; 136 140 [configuration setURLSchemeHandler:handler.get() forURLScheme:@"testing"]; 137 141
Note: See TracChangeset
for help on using the changeset viewer.