RESOLVED FIXED Bug 75049
[filesystem/Chromium] filesystem URLs are not fully supported
https://bugs.webkit.org/show_bug.cgi?id=75049
Summary [filesystem/Chromium] filesystem URLs are not fully supported
Eric U.
Reported 2011-12-21 15:33:44 PST
The current implementation of filesystem URLs does the bare minimum to load simple URLs. URLs for filesystem objects with interesting characters in their names [e.g. % and non-ASCII] either don't work or look terrible. Queries and references aren't implemented at all. Escaping is missing. As soon as https://bugs.webkit.org/show_bug.cgi?id=62813 lands, this will be a much bigger problem, as users will be free to make whatever interesting filenames they want, but it's already a problem. This change will depend on changes to the googleurl library [up for review at http://codereview.appspot.com/4961060/], and won't actually fix Chromium until the corresponding Chromium-side changes are made [in progress at http://codereview.chromium.org/7811006, not quite in review yet]. This CL won't build without the googleURL changes, but once they're in, should be harmless [not change any behavior] until the Chromium code hits with the #define that turns on the new googleurl behavior.
Attachments
Small plumbing changes; the real work's done in googleURL and the Chromium codebase. (8.09 KB, patch)
2011-12-21 15:57 PST, Eric U.
no flags
Patch (8.48 KB, patch)
2012-01-24 14:43 PST, Eric U.
no flags
Patch (8.64 KB, patch)
2012-01-24 17:24 PST, Eric U.
no flags
Patch (10.16 KB, patch)
2012-01-25 13:28 PST, Eric U.
no flags
Eric U.
Comment 1 2011-12-21 15:57:35 PST
Created attachment 120229 [details] Small plumbing changes; the real work's done in googleURL and the Chromium codebase. This won't build until the googleurl changes land.
WebKit Review Bot
Comment 2 2011-12-21 15:59:34 PST
Attachment 120229 [details] did not pass style-queue: Failed to run "['Tools/Scripts/update-webkit']" exit_code: 9 Updating OpenSource A LayoutTests/fast/html/font-weight-bold-for-b-and-strong-expected.png A LayoutTests/fast/html/font-weight-bold-for-b-and-strong-expected.txt A LayoutTests/fast/html/font-weight-bold-for-b-and-strong.html M LayoutTests/ChangeLog M Source/WebCore/ChangeLog M Source/WebCore/css/html.css r103468 = 97efa88a66ff7f597257cf86d0f8315cd016e1e3 (refs/remotes/origin/master) First, rewinding head to replay your work on top of it... Applying: Inform the scrolling coordinator when scrollbar layers come and go Using index info to reconstruct a base tree... <stdin>:474806: trailing whitespace. [Chromium] DatabaseTrackerChromium: iterating DatabaseSet races with Database disposal on worker thread <stdin>:474827: trailing whitespace. Nothing to test, just removing redundant code. Correct behavior tested by <stdin>:475346: trailing whitespace. warning: 3 lines add whitespace errors. Falling back to patching base and 3-way merge... warning: too many files (created: 167254 deleted: 3), skipping inexact rename detection Auto-merging LayoutTests/ChangeLog CONFLICT (content): Merge conflict in LayoutTests/ChangeLog Auto-merging LayoutTests/platform/chromium/test_expectations.txt CONFLICT (content): Merge conflict in LayoutTests/platform/chromium/test_expectations.txt Auto-merging Source/WebCore/ChangeLog CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog Auto-merging Source/WebCore/page/ScrollingCoordinator.h CONFLICT (content): Merge conflict in Source/WebCore/page/ScrollingCoordinator.h Auto-merging Source/WebCore/page/mac/ScrollingCoordinatorMac.mm CONFLICT (content): Merge conflict in Source/WebCore/page/mac/ScrollingCoordinatorMac.mm Auto-merging Source/WebCore/platform/ScrollView.cpp Auto-merging Source/WebCore/rendering/RenderLayerCompositor.cpp CONFLICT (content): Merge conflict in Source/WebCore/rendering/RenderLayerCompositor.cpp Auto-merging Source/WebKit2/ChangeLog CONFLICT (content): Merge conflict in Source/WebKit2/ChangeLog Auto-merging Tools/ChangeLog CONFLICT (content): Merge conflict in Tools/ChangeLog Auto-merging Tools/Scripts/build-webkit Auto-merging Tools/Scripts/webkitdirs.pm CONFLICT (content): Merge conflict in Tools/Scripts/webkitdirs.pm Failed to merge in the changes. Patch failed at 0001 Inform the scrolling coordinator when scrollbar layers come and go When you have resolved this problem run "git rebase --continue". If you would prefer to skip this patch, instead run "git rebase --skip". To restore the original branch and stop rebasing run "git rebase --abort". rebase refs/remotes/origin/master: command returned error: 1 Died at Tools/Scripts/update-webkit line 158. If any of these errors are false positives, please file a bug against check-webkit-style.
WebKit Review Bot
Comment 3 2011-12-21 16:19:36 PST
Comment on attachment 120229 [details] Small plumbing changes; the real work's done in googleURL and the Chromium codebase. Attachment 120229 [details] did not pass chromium-ews (chromium-xvfb): Output: http://queues.webkit.org/results/10997176
Adam Barth
Comment 4 2011-12-21 23:01:22 PST
Comment on attachment 120229 [details] Small plumbing changes; the real work's done in googleURL and the Chromium codebase. View in context: https://bugs.webkit.org/attachment.cgi?id=120229&action=review > Source/WebCore/page/SecurityOrigin.cpp:85 > +#if ENABLE(FILE_SYSTEM) This shouldn't be guarded with ENABLE(FILE_SYSTEM). It has nothing to do with FILE_SYSTEM. > Source/WebCore/platform/KURL.h:226 > +#if ENABLE(FILE_SYSTEM) This shouldn't be guarded with ENABLE(FILE_SYSTEM). It has nothing to do with FILE_SYSTEM. > Source/WebCore/platform/KURLGoogle.cpp:292 > +void KURLGooglePrivate::initInnerURL() { { should be on the next line. > Source/WebCore/platform/KURLGoogle.cpp:337 > + if (m_innerURL) { > + dest->m_innerURL = adoptPtr(new KURL(m_innerURL->copy())); > + } > + else > + dest->m_innerURL.clear(); Bad indent and we can drop the { }
Eric U.
Comment 5 2012-01-24 14:43:24 PST
Eric U.
Comment 6 2012-01-24 14:44:34 PST
Comment on attachment 123813 [details] Patch Rolled in code review feedback. Also, the googleurl changes are now in, so the bots should be happy with the change now.
Kinuko Yasuda
Comment 7 2012-01-24 15:09:40 PST
Comment on attachment 123813 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=123813&action=review > Source/WebCore/fileapi/EntryBase.cpp:78 > + result.append(encodeWithURLEscapeSequences(m_fullPath)); Based on what I experienced on my reverted change this will break the chromeos tests. (The tests expect toURL() return URL with unescaped directory separators) This will escape all the directory separators as well-- I want to make sure this is what we want.
Eric U.
Comment 8 2012-01-24 15:28:31 PST
(In reply to comment #7) > (From update of attachment 123813 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=123813&action=review > > > Source/WebCore/fileapi/EntryBase.cpp:78 > > + result.append(encodeWithURLEscapeSequences(m_fullPath)); > > Based on what I experienced on my reverted change this will break the chromeos tests. (The tests expect toURL() return URL with unescaped directory separators) > > This will escape all the directory separators as well-- I want to make sure this is what we want. That's taken care of in WebCore::encodeWithURLEscapeSequences. After everything's escaped, I unescape just the directory separators.
Kinuko Yasuda
Comment 9 2012-01-24 15:45:36 PST
Comment on attachment 123813 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=123813&action=review >>> Source/WebCore/fileapi/EntryBase.cpp:78 >>> + result.append(encodeWithURLEscapeSequences(m_fullPath)); >> >> Based on what I experienced on my reverted change this will break the chromeos tests. (The tests expect toURL() return URL with unescaped directory separators) >> >> This will escape all the directory separators as well-- I want to make sure this is what we want. > > That's taken care of in WebCore::encodeWithURLEscapeSequences. After everything's escaped, I unescape just the directory separators. Oh I see, now I found the corresponding change in the function. Cool so I no longer need to work around the escaping issue when I try relanding my change.
Early Warning System Bot
Comment 10 2012-01-24 16:16:48 PST
Gyuyoung Kim
Comment 11 2012-01-24 16:17:24 PST
Eric U.
Comment 12 2012-01-24 17:24:39 PST
Eric U.
Comment 13 2012-01-24 17:25:08 PST
Comment on attachment 123853 [details] Patch Added missing header include.
WebKit Review Bot
Comment 14 2012-01-24 18:20:16 PST
Comment on attachment 123853 [details] Patch Clearing flags on attachment: 123853 Committed r105843: <http://trac.webkit.org/changeset/105843>
WebKit Review Bot
Comment 15 2012-01-24 18:20:22 PST
All reviewed patches have been landed. Closing bug.
James Robinson
Comment 16 2012-01-24 21:19:33 PST
This patch appears to have broken KURLTest.Encode: http://build.webkit.org/builders/Chromium%20Mac%20Release%20%28Tests%29/builds/12331/steps/webkit-unit-tests/logs/stdio [ RUN ] KURLTest.Encode /Users/chrome-bot/Desktop/WebKit-BuildSlave/chromium-mac-release-tests/build/Source/WebKit/chromium/tests/KURLTest.cpp:336: Failure Value of: output Actual: 4-byte object <60-8A 36-00> Expected: expectedOutput Which is: 4-byte object <50-64 32-00> Was this change in behavior intentional? If so, please update the test.
Eric U.
Comment 17 2012-01-25 13:28:07 PST
Eric U.
Comment 18 2012-01-25 13:28:39 PST
Comment on attachment 123998 [details] Patch Fixed a test expectation I missed last time.
WebKit Review Bot
Comment 19 2012-01-25 14:43:36 PST
Comment on attachment 123998 [details] Patch Clearing flags on attachment: 123998 Committed r105930: <http://trac.webkit.org/changeset/105930>
WebKit Review Bot
Comment 20 2012-01-25 14:43:42 PST
All reviewed patches have been landed. Closing bug.
Mark Rowe (bdash)
Comment 21 2012-01-25 17:05:30 PST
As with the first time you landed this patch, r105930 broke the Mac build. The build has been broken red for over two hours at this point because of this. Please fix it, and pay attention to the build bots in the future.
Mark Rowe (bdash)
Comment 22 2012-01-25 17:25:33 PST
Since people really love to be able to compile WebKit, I fixed this in r105950 by reapplying the exact same build fix that was made the first time this was landed.
Eric U.
Comment 23 2012-02-02 11:17:17 PST
This patch was removed due to a Chromium test failure.
Eric U.
Comment 24 2012-02-02 11:30:28 PST
Scratch that--apparently I misunderstood. The patch is still in there. Sorry for the noise.
Sergey Ryazanov
Comment 25 2012-04-20 05:02:19 PDT
*** Bug 75701 has been marked as a duplicate of this bug. ***
Note You need to log in before you can comment on or make changes to this bug.