Changeset 174029 in webkit
- Timestamp:
- Sep 26, 2014 4:38:30 PM (10 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r174016 r174029 1 2014-09-26 Anders Carlsson <andersca@apple.com> 2 3 Add API for loading local files 4 https://bugs.webkit.org/show_bug.cgi?id=137153 5 rdar://problem/17761459 6 7 Reviewed by Oliver Hunt. 8 9 * UIProcess/API/Cocoa/WKWebView.h: 10 * UIProcess/API/Cocoa/WKWebView.mm: 11 (-[WKWebView loadFileURL:allowingReadAccessToURL:]): 12 Load the file, wrapping the navigation ID in a WKNavigation using createLoadRequestNavigation. 13 14 * UIProcess/WebPageProxy.cpp: 15 (WebKit::WebPageProxy::loadFile): 16 * UIProcess/WebPageProxy.h: 17 Return the navigation ID (or 0 if the navigation failed). 18 1 19 2014-09-26 Timothy Hatcher <timothy@apple.com> 2 20 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.h
r170298 r174029 90 90 - (WKNavigation *)loadRequest:(NSURLRequest *)request; 91 91 92 /*! @abstract Navigates to the requested file URL on the filesystem. 93 @param URL The file URL to which to navigate. 94 @param readAccessURL The URL to allow read access to. 95 @discussion If readAccessURL references a single file, only that file may be loaded by WebKit. 96 If readAccessURL references a directory, files inside that file may be loaded by WebKit. 97 @result A new navigation for the given file URL. 98 */ 99 - (WKNavigation *)loadFileURL:(NSURL *)URL allowingReadAccessToURL:(NSURL *)readAccessURL WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA); 100 92 101 /*! @abstract Sets the webpage contents and base URL. 93 102 @param string The string to use as the contents of the webpage. -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm
r173722 r174029 407 407 } 408 408 409 - (WKNavigation *)loadFileURL:(NSURL *)URL allowingReadAccessToURL:(NSURL *)readAccessURL 410 { 411 if (![URL isFileURL]) 412 [NSException raise:NSInvalidArgumentException format:@"%@ is not a file URL", URL]; 413 414 if (![readAccessURL isFileURL]) 415 [NSException raise:NSInvalidArgumentException format:@"%@ is not a file URL", readAccessURL]; 416 417 uint64_t navigationID = _page->loadFile([URL _web_originalDataAsWTFString], [readAccessURL _web_originalDataAsWTFString]); 418 if (!navigationID) 419 return nil; 420 421 auto navigation = _navigationState->createLoadRequestNavigation(navigationID, [NSURLRequest requestWithURL:URL]); 422 423 return navigation.autorelease(); 424 } 425 409 426 - (WKNavigation *)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL 410 427 { -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r173748 r174029 741 741 } 742 742 743 voidWebPageProxy::loadFile(const String& fileURLString, const String& resourceDirectoryURLString, API::Object* userData)743 uint64_t WebPageProxy::loadFile(const String& fileURLString, const String& resourceDirectoryURLString, API::Object* userData) 744 744 { 745 745 if (m_isClosed) 746 return ;746 return 0; 747 747 748 748 if (!isValid()) … … 751 751 URL fileURL = URL(URL(), fileURLString); 752 752 if (!fileURL.isLocalFile()) 753 return ;753 return 0; 754 754 755 755 URL resourceDirectoryURL; … … 759 759 resourceDirectoryURL = URL(URL(), resourceDirectoryURLString); 760 760 if (!resourceDirectoryURL.isLocalFile()) 761 return; 762 } 761 return 0; 762 } 763 764 uint64_t navigationID = generateNavigationID(); 765 766 auto transaction = m_pageLoadState.transaction(); 767 768 m_pageLoadState.setPendingAPIRequestURL(transaction, fileURLString); 763 769 764 770 String resourceDirectoryPath = resourceDirectoryURL.fileSystemPath(); … … 767 773 SandboxExtension::createHandle(resourceDirectoryPath, SandboxExtension::ReadOnly, sandboxExtensionHandle); 768 774 m_process->assumeReadAccessToBaseURL(resourceDirectoryURL); 769 m_process->send(Messages::WebPage::LoadRequest( generateNavigationID(), fileURL, sandboxExtensionHandle, WebContextUserMessageEncoder(userData, process())), m_pageID);775 m_process->send(Messages::WebPage::LoadRequest(navigationID, fileURL, sandboxExtensionHandle, WebContextUserMessageEncoder(userData, process())), m_pageID); 770 776 m_process->responsivenessTimer()->start(); 777 778 return navigationID; 771 779 } 772 780 -
trunk/Source/WebKit2/UIProcess/WebPageProxy.h
r173748 r174029 303 303 304 304 uint64_t loadRequest(const WebCore::ResourceRequest&, API::Object* userData = nullptr); 305 voidloadFile(const String& fileURL, const String& resourceDirectoryURL, API::Object* userData = nullptr);305 uint64_t loadFile(const String& fileURL, const String& resourceDirectoryURL, API::Object* userData = nullptr); 306 306 void loadData(API::Data*, const String& MIMEType, const String& encoding, const String& baseURL, API::Object* userData = nullptr); 307 307 uint64_t loadHTMLString(const String& htmlString, const String& baseURL, API::Object* userData = nullptr);
Note: See TracChangeset
for help on using the changeset viewer.