Changeset 220064 in webkit
- Timestamp:
- Jul 31, 2017, 7:37:34 AM (9 years ago)
- Location:
- branches/safari-604-branch
- Files:
-
- 5 edited
-
Source/WebKit/ChangeLog (modified) (1 diff)
-
Source/WebKit/UIProcess/WebURLSchemeHandler.cpp (modified) (2 diffs)
-
Source/WebKit/UIProcess/WebURLSchemeHandler.h (modified) (1 diff)
-
Tools/ChangeLog (modified) (1 diff)
-
Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKURLSchemeHandler-1.mm (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/safari-604-branch/Source/WebKit/ChangeLog
r220062 r220064 1 2017-07-31 Jason Marcell <jmarcell@apple.com> 2 3 Cherry-pick r220033. rdar://problem/33619596 4 5 2017-07-28 Brady Eidson <beidson@apple.com> 6 7 API tests that use URLSchemeHandler are failing. 8 https://bugs.webkit.org/show_bug.cgi?id=174950 9 10 Reviewed by Alex Christensen. 11 12 Make sure that in all cases where we remove the last task from the page->task map... 13 ...We also remove the map itself. 14 15 * UIProcess/WebURLSchemeHandler.cpp: 16 (WebKit::WebURLSchemeHandler::stopTask): 17 (WebKit::WebURLSchemeHandler::taskCompleted): 18 (WebKit::WebURLSchemeHandler::removeTaskFromPageMap): 19 * UIProcess/WebURLSchemeHandler.h: 20 1 21 2017-07-31 Jason Marcell <jmarcell@apple.com> 2 22 -
branches/safari-604-branch/Source/WebKit/UIProcess/WebURLSchemeHandler.cpp
r220062 r220064 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 -
branches/safari-604-branch/Source/WebKit/UIProcess/WebURLSchemeHandler.h
r220062 r220064 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 -
branches/safari-604-branch/Tools/ChangeLog
r220030 r220064 1 2017-07-31 Jason Marcell <jmarcell@apple.com> 2 3 Cherry-pick r220033. rdar://problem/33619596 4 5 2017-07-28 Brady Eidson <beidson@apple.com> 6 7 API tests that use URLSchemeHandler are failing. 8 https://bugs.webkit.org/show_bug.cgi?id=174950 9 10 Reviewed by Alex Christensen. 11 12 Fix the NoMIMEType test to be correct. 13 14 * TestWebKitAPI/Tests/WebKit2Cocoa/WKURLSchemeHandler-1.mm: 15 (-[SchemeHandler initWithData:mimeType:]): 16 (-[SchemeHandler webView:startURLSchemeTask:]): 17 (TEST): 18 1 19 2017-07-28 Jason Marcell <jmarcell@apple.com> 2 20 -
branches/safari-604-branch/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKURLSchemeHandler-1.mm
r218810 r220064 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.