WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
Bug 118358
Nix upstreaming - Adding stubs and Nix specific platform files
https://bugs.webkit.org/show_bug.cgi?id=118358
Summary
Nix upstreaming - Adding stubs and Nix specific platform files
Luciano Wolf
Reported
2013-07-03 06:58:33 PDT
Basically adding all files that have "Nix" in their names and are related to WebCore module.
Attachments
Patch containing new Nix specific files and stubs
(198.25 KB, patch)
2013-07-03 07:13 PDT
,
Luciano Wolf
no flags
Details
Formatted Diff
Diff
New patch avoiding WebAudio and RenderTheme stuff
(142.91 KB, patch)
2013-07-03 07:49 PDT
,
Luciano Wolf
no flags
Details
Formatted Diff
Diff
New patch with updated Changelog files
(126.86 KB, patch)
2013-07-03 13:36 PDT
,
Luciano Wolf
no flags
Details
Formatted Diff
Diff
New patch with corrections
(114.63 KB, patch)
2013-07-04 11:51 PDT
,
Luciano Wolf
no flags
Details
Formatted Diff
Diff
New patch with corrections and shared files
(115.92 KB, patch)
2013-07-05 13:10 PDT
,
Luciano Wolf
no flags
Details
Formatted Diff
Diff
New patch with corrections - no mention to GTK
(115.07 KB, patch)
2013-07-08 07:21 PDT
,
Luciano Wolf
no flags
Details
Formatted Diff
Diff
New patch without glib directory.
(81.96 KB, patch)
2013-07-10 13:47 PDT
,
Luciano Wolf
no flags
Details
Formatted Diff
Diff
New reviewed patch.
(81.89 KB, patch)
2013-07-11 06:23 PDT
,
Luciano Wolf
no flags
Details
Formatted Diff
Diff
Archive of layout-test-results from webkit-ews-04 for mac-mountainlion
(600.36 KB, application/zip)
2013-07-11 08:02 PDT
,
Build Bot
no flags
Details
Rebased patch
(81.88 KB, patch)
2013-09-09 07:07 PDT
,
Luciano Wolf
no flags
Details
Formatted Diff
Diff
Show Obsolete
(8)
View All
Add attachment
proposed patch, testcase, etc.
Luciano Wolf
Comment 1
2013-07-03 07:13:32 PDT
Created
attachment 206001
[details]
Patch containing new Nix specific files and stubs
Luciano Wolf
Comment 2
2013-07-03 07:49:45 PDT
Created
attachment 206003
[details]
New patch avoiding WebAudio and RenderTheme stuff
Benjamin Poulain
Comment 3
2013-07-03 13:02:59 PDT
Please change the changelog to only mention filename. Are you okay with a real review or do you want to land as-is and fix later?
Luciano Wolf
Comment 4
2013-07-03 13:16:45 PDT
(In reply to
comment #3
)
> Please change the changelog to only mention filename. > > Are you okay with a real review or do you want to land as-is and fix later?
Thanks, I'll update the changelog. Right now it's better to "land as-is". This patch is just a small part of a bigger patch and doesn't provide a full context so a real review would require lots of missing information that is distributed through a series of other patches. The most important is to guarantee that this patch doesn't hurt other ports.
Luciano Wolf
Comment 5
2013-07-03 13:36:21 PDT
Created
attachment 206020
[details]
New patch with updated Changelog files
Benjamin Poulain
Comment 6
2013-07-03 14:00:17 PDT
Comment on
attachment 206020
[details]
New patch with updated Changelog files View in context:
https://bugs.webkit.org/attachment.cgi?id=206020&action=review
> Source/WTF/wtf/nix/PlatformNix.h:32 > +// Some bits can't be changed at all
This comment makes no sense. Improve it or remove it.
> Source/WTF/wtf/nix/PlatformNix.h:51 > +// EGL/OpenGLES2 vs GLX
Flesh out this comment or remove it. Missing period.
> Source/WTF/wtf/nix/PlatformNix.h:61 > +// Soup vs libCurl
Flesh out this comment or remove it. Missing period.
> Source/WebCore/platform/graphics/egl/GLContextFromCurrentEGL.h:54 > + // TODO: Add support for Offscreen buffers. > + static PassOwnPtr<GLContextFromCurrentEGL> createFromCurrentGLContext(); > + > + virtual bool makeContextCurrent(); > + > + // These are not used by Nix. > + virtual void swapBuffers() { } > + virtual IntSize defaultFrameBufferSize() { return IntSize(); } > + virtual cairo_device_t* cairoDevice() { return 0; } > + > + // TODO: This is not used in GLContext interface, it's used by > + // GLContextGLX only as an implementation detail. > + virtual bool canRenderToDefaultFramebuffer() { return false; } > + > + // TODO: Used only as a key in HashMaps, see if we can change WebKit code to not > + // rely on this anymore (at least in our platform). > + virtual PlatformGraphicsContext3D platformContext() { return this; } > + virtual void waitNative() { return; }
WebKit uses FIXME, not TODO. All the virtual misses OVERRIDE. This file is not a Nix file, the comments need to be clearer.
> Source/WebCore/platform/graphics/nix/ImageNix.cpp:44 > + return SharedBuffer::create(); // TODO: fallback image?
TODO -> FIXME.
> Source/WebCore/platform/nix/ErrorsNix.cpp:28 > +#include "config.h" > +#include "ErrorsNix.h"
All the literals in this file should be ASCIILiteral.
> Source/WebCore/platform/nix/GamepadsNix.cpp:33 > +#include "GamepadList.h" > + > +#include <public/Platform.h>
Those #include should be together.
> Source/WebCore/platform/nix/LocalizedStringsNix.cpp:38 > +#include "config.h" > +#include "LocalizedStrings.h" > + > +#include "NotImplemented.h" > +#include <wtf/text/WTFString.h>
I am opposed to this. Nix should use LocalizedStrings.cpp. Certain other ports have their own file for historical reason and it is a pain in the ass to work with that. All you should have to do is implement WebCore::localizedString.
> Source/WebCore/platform/nix/MIMETypeRegistryNix.cpp:75 > +static const ExtensionMap extensionMap[] = { > + { "bmp", "image/bmp" }, > + { "css", "text/css" }, > + { "gif", "image/gif" }, > + { "html", "text/html" }, > + { "htm", "text/html" }, > + { "ico", "image/x-icon" }, > + { "jpeg", "image/jpeg" }, > + { "jpg", "image/jpeg" }, > + { "js", "application/x-javascript" }, > + { "mng", "video/x-mng" }, > + { "pbm", "image/x-portable-bitmap" }, > + { "pgm", "image/x-portable-graymap" }, > + { "pdf", "application/pdf" }, > + { "png", "image/png" }, > + { "ppm", "image/x-portable-pixmap" }, > + { "rss", "application/rss+xml" }, > + { "svg", "image/svg+xml" }, > + { "text", "text/plain" }, > + { "tif", "image/tiff" }, > + { "tiff", "image/tiff" }, > + { "txt", "text/plain" }, > + { "xbm", "image/x-xbitmap" }, > + { "xml", "text/xml" }, > + { "xpm", "image/x-xpm" }, > + { "xsl", "text/xsl" }, > + { "xhtml", "application/xhtml+xml" }, > + { "wml", "text/vnd.wap.wml" }, > + { "wmlc", "application/vnd.wap.wmlc" }, > + { 0, 0 } > +};
Those looks standard…Why do you need to repeat them in getMIMETypeForExtension?
Luciano Wolf
Comment 7
2013-07-04 11:43:45 PDT
Comment on
attachment 206020
[details]
New patch with updated Changelog files View in context:
https://bugs.webkit.org/attachment.cgi?id=206020&action=review
>> Source/WebCore/platform/nix/ErrorsNix.cpp:28 >> +#include "ErrorsNix.h" > > All the literals in this file should be ASCIILiteral.
Sorry, I didn't get this one. This file is a plain copy of other port. Is it about some weird character in this file? Or is it about strings passed to the ResourceError method?
>> Source/WebCore/platform/nix/LocalizedStringsNix.cpp:38 >> +#include <wtf/text/WTFString.h> > > I am opposed to this. > > Nix should use LocalizedStrings.cpp. Certain other ports have their own file for historical reason and it is a pain in the ass to work with that. > > All you should have to do is implement WebCore::localizedString.
I just left the implementation of localizedString into this file so every other method will come from LocalizedStrings.cpp.
>> Source/WebCore/platform/nix/MIMETypeRegistryNix.cpp:75 >> +}; > > Those looks standard…Why do you need to repeat them in getMIMETypeForExtension?
No reason to repeat. Was just a blind copy of other port. I've left just the {0, 0} line.
Luciano Wolf
Comment 8
2013-07-04 11:51:38 PDT
Created
attachment 206105
[details]
New patch with corrections
Benjamin Poulain
Comment 9
2013-07-04 16:01:21 PDT
Comment on
attachment 206105
[details]
New patch with corrections View in context:
https://bugs.webkit.org/attachment.cgi?id=206105&action=review
I am ok with this, but I want you to do one more pass and try to maximize the code shared with GTK. I suggest to find files that can be shared, remove them from this patch, and make an other refactoring patch to make those common to GTK/Nix. Martin Robinson agrees the code should be shared when possible. You can add new platform directories if needed (e.g. platform/gobject).
> Source/WebCore/platform/graphics/egl/GLContextFromCurrentEGL.h:48 > + virtual void waitNative() OVERRIDE { return; }
remove the "return;"
> Source/WebCore/platform/nix/ErrorsNix.cpp:28 > +#include "config.h" > +#include "ErrorsNix.h"
Can't you share this file with GTK?
> Source/WebCore/platform/nix/FileSystemNix.cpp:24 > +#include "config.h" > +#include "FileSystem.h"
Why can't you share this file with GTK?
> Source/WebCore/platform/nix/FileSystemNix.cpp:42 > + > +/* On linux file names are just raw bytes, so also strings that cannot be encoded in any way > + * are valid file names. This mean that we cannot just store a file name as-is in a String > + * but we have to escape it. > + * On Windows the GLib file name encoding is always UTF-8 so we can optimize this case. */
Change this to WebKit-style comments.
> Source/WebCore/platform/nix/GamepadsNix.cpp:60 > +void sampleGamepads(GamepadList* into) > +{ > + WebKit::WebGamepads gamepads; > + > + WebKit::Platform::current()->sampleGamepads(gamepads); > + > + for (unsigned i = 0; i < WebKit::WebGamepads::itemsLengthCap; ++i) { > + WebKit::WebGamepad& webGamepad = gamepads.items[i]; > + if (i < gamepads.length && webGamepad.connected) { > + RefPtr<Gamepad> gamepad = into->item(i); > + if (!gamepad) > + gamepad = Gamepad::create(); > + gamepad->id(webGamepad.id); > + gamepad->index(i); > + gamepad->timestamp(webGamepad.timestamp); > + gamepad->axes(webGamepad.axesLength, webGamepad.axes); > + gamepad->buttons(webGamepad.buttonsLength, webGamepad.buttons); > + into->set(i, gamepad); > + } else > + into->set(i, 0); > + } > +} > +
Looking at Qt and GTK, I suspect this is dead code. You don't have any code to get the devices.
> Source/WebCore/platform/nix/LocalizedStringsNix.cpp:45 > +String localizedString(const char* key) > +{ > + return String::fromUTF8(key, strlen(key)); > +}
Much better!
> Source/WebCore/platform/nix/RunLoopNix.cpp:28 > +#include "config.h" > +#include "RunLoop.h"
Why can't this be shared with GTK?
> Source/WebCore/platform/nix/SharedTimerNix.cpp:29 > +#include "config.h" > +#include "SharedTimer.h"
Why can't this be shared with GTK?
Benjamin Poulain
Comment 10
2013-07-04 16:02:18 PDT
(In reply to
comment #7
)
> (From update of
attachment 206020
[details]
) > View in context:
https://bugs.webkit.org/attachment.cgi?id=206020&action=review
> > >> Source/WebCore/platform/nix/ErrorsNix.cpp:28 > >> +#include "ErrorsNix.h" > > > > All the literals in this file should be ASCIILiteral. > > Sorry, I didn't get this one. This file is a plain copy of other port. Is it about some weird character in this file? Or is it about strings passed to the ResourceError method?
WTF::String create from literals should use ASCIILiteral() unless they are translated.
Luciano Wolf
Comment 11
2013-07-05 12:02:00 PDT
Comment on
attachment 206105
[details]
New patch with corrections View in context:
https://bugs.webkit.org/attachment.cgi?id=206105&action=review
>> Source/WebCore/platform/nix/GamepadsNix.cpp:60 >> + > > Looking at Qt and GTK, I suspect this is dead code. You don't have any code to get the devices.
Nix architecture delegates all platform specifics to the application via our Platform API (WebKit::Platform in public/Platform.h). So, the logic to get device info isn't into WebCore but it forwards the sampleGamepads call to the application (line #42).
Luciano Wolf
Comment 12
2013-07-05 13:10:34 PDT
Created
attachment 206168
[details]
New patch with corrections and shared files
Benjamin Poulain
Comment 13
2013-07-05 18:16:39 PDT
Comment on
attachment 206168
[details]
New patch with corrections and shared files I think you forgot to remove the GTK files you moved to glib. Please do those in a separate patch, that would be much easier.
Luciano Wolf
Comment 14
2013-07-08 07:21:11 PDT
Created
attachment 206241
[details]
New patch with corrections - no mention to GTK
Benjamin Poulain
Comment 15
2013-07-09 16:13:19 PDT
(In reply to
comment #14
)
> Created an attachment (id=206241) [details] > New patch with corrections - no mention to GTK
I think there is a big misunderstanding. Get me on IRC, and let's fix and land everything.
Luciano Wolf
Comment 16
2013-07-10 13:47:22 PDT
Created
attachment 206410
[details]
New patch without glib directory.
Benjamin Poulain
Comment 17
2013-07-10 18:04:39 PDT
Comment on
attachment 206410
[details]
New patch without glib directory. View in context:
https://bugs.webkit.org/attachment.cgi?id=206410&action=review
> Source/WebCore/platform/nix/LanguageNix.cpp:44 > + return String("c");
String("c") -> ASCIIString("c")
> Source/WebCore/platform/nix/NixKeyboardUtilities.h:34 > +namespace WTF { > +class String; > +}
WTF::String is not used in this header.
Luciano Wolf
Comment 18
2013-07-11 06:23:09 PDT
Created
attachment 206457
[details]
New reviewed patch.
Luciano Wolf
Comment 19
2013-07-11 06:39:05 PDT
My bad.. sorry. Forgot to include --no-obsolete in the last webkit-patch upload. :/
Build Bot
Comment 20
2013-07-11 08:02:16 PDT
Comment on
attachment 206457
[details]
New reviewed patch.
Attachment 206457
[details]
did not pass mac-ews (mac): Output:
http://webkit-queues.appspot.com/results/1034517
New failing tests: fullscreen/full-screen-iframe-with-max-width-height.html
Build Bot
Comment 21
2013-07-11 08:02:20 PDT
Created
attachment 206465
[details]
Archive of layout-test-results from webkit-ews-04 for mac-mountainlion The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: webkit-ews-04 Port: mac-mountainlion Platform: Mac OS X 10.8.3
Luciano Wolf
Comment 22
2013-09-09 07:07:47 PDT
Created
attachment 211038
[details]
Rebased patch
WebKit Commit Bot
Comment 23
2013-09-09 10:33:36 PDT
Comment on
attachment 211038
[details]
Rebased patch Clearing flags on attachment: 211038 Committed
r155360
: <
http://trac.webkit.org/changeset/155360
>
WebKit Commit Bot
Comment 24
2013-09-09 10:33:41 PDT
All reviewed patches have been landed. Closing bug.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug