WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
20620
Wrap uses of KJS in core classes with USE(JSC)
https://bugs.webkit.org/show_bug.cgi?id=20620
Summary
Wrap uses of KJS in core classes with USE(JSC)
Eric Seidel (no email)
Reported
2008-09-03 04:22:24 PDT
Wrap uses of KJS in core classes with USE(JAVASCRIPTCORE_BINDINGS) We can also possibly add a USE(V8_BINDINGS) as Chromium has.
Attachments
Add #if USE(JAVASCRIPTCORE_BINDINGS) around KJS dependencies
(5.54 KB, patch)
2008-09-03 04:35 PDT
,
Eric Seidel (no email)
no flags
Details
Formatted Diff
Diff
Clean up Platform.h and add PLATFORM(CHROMIUM) and USE(V8_BINDINGS)
(6.07 KB, patch)
2008-09-03 05:16 PDT
,
Eric Seidel (no email)
no flags
Details
Formatted Diff
Diff
Clean up Platform.h and add PLATFORM(CHROMIUM) and USE(V8_BINDINGS)
(6.18 KB, patch)
2008-09-03 05:28 PDT
,
Eric Seidel (no email)
no flags
Details
Formatted Diff
Diff
Add #if USE(JAVASCRIPTCORE_BINDINGS) around KJS dependencies
(6.14 KB, patch)
2008-09-03 14:44 PDT
,
Eric Seidel (no email)
sam
: review+
Details
Formatted Diff
Diff
Clean up Platform.h and add PLATFORM(CHROMIUM), PLATFORM(SKIA) and USE(V8_BINDINGS)
(9.61 KB, patch)
2008-09-03 14:44 PDT
,
Eric Seidel (no email)
sam
: review-
Details
Formatted Diff
Diff
Add #if USE(JSC) around KJS dependencies
(13.88 KB, patch)
2008-09-03 17:38 PDT
,
Eric Seidel (no email)
sam
: review+
Details
Formatted Diff
Diff
Clean up Platform.h and add PLATFORM(CHROMIUM), PLATFORM(SKIA) and USE(V8_BINDINGS)
(8.08 KB, patch)
2008-09-03 17:38 PDT
,
Eric Seidel (no email)
sam
: review+
Details
Formatted Diff
Diff
Show Obsolete
(5)
View All
Add attachment
proposed patch, testcase, etc.
Eric Seidel (no email)
Comment 1
2008-09-03 04:35:22 PDT
Created
attachment 23135
[details]
Add #if USE(JAVASCRIPTCORE_BINDINGS) around KJS dependencies WebCore/platform/text/AtomicString.cpp | 4 ++++ WebCore/platform/text/AtomicString.h | 6 ++++++ WebCore/platform/text/PlatformString.h | 8 ++++++++ WebCore/platform/text/String.cpp | 5 ++++- WebCore/platform/text/StringImpl.cpp | 4 ---- WebCore/platform/text/StringImpl.h | 1 - 6 files changed, 22 insertions(+), 6 deletions(-)
Eric Seidel (no email)
Comment 2
2008-09-03 04:40:01 PDT
This is not all of them, and this is actually more changes than we've made locally (due to MSVC being smart enough to strip away functions we don't use), but this gets rid of at least 3 more forked files for us!
Eric Seidel (no email)
Comment 3
2008-09-03 05:16:40 PDT
Created
attachment 23137
[details]
Clean up Platform.h and add PLATFORM(CHROMIUM) and USE(V8_BINDINGS) .../Configurations/JavaScriptCore.xcconfig | 2 +- JavaScriptCore/wtf/Platform.h | 22 +++++++++++-------- WebCore/Configurations/WebCore.xcconfig | 2 +- WebCore/config.h | 19 ++++++++--------- WebKit/mac/Configurations/WebKit.xcconfig | 2 +- 5 files changed, 25 insertions(+), 22 deletions(-)
Eric Seidel (no email)
Comment 4
2008-09-03 05:27:55 PDT
I'm slightly re-defining what USE(JAVASCRIPTCORE_BINDINGS) means in this patch. Mostly because I don't see when/why anyone would ever want to depend on JSC but not use the plugin bindings (which seems to be on for all platforms).
Eric Seidel (no email)
Comment 5
2008-09-03 05:28:41 PDT
Created
attachment 23139
[details]
Clean up Platform.h and add PLATFORM(CHROMIUM) and USE(V8_BINDINGS) .../Configurations/JavaScriptCore.xcconfig | 2 +- JavaScriptCore/wtf/Platform.h | 22 +++++++++++-------- WebCore/Configurations/WebCore.xcconfig | 2 +- WebCore/config.h | 21 ++++++++++--------- WebKit/mac/Configurations/WebKit.xcconfig | 2 +- 5 files changed, 27 insertions(+), 22 deletions(-)
Sam Weinig
Comment 6
2008-09-03 10:13:15 PDT
Eric, please include changelogs with your patches (at least to set a good example).
Eric Seidel (no email)
Comment 7
2008-09-03 14:44:54 PDT
Created
attachment 23148
[details]
Add #if USE(JAVASCRIPTCORE_BINDINGS) around KJS dependencies WebCore/ChangeLog | 13 +++++++++++++ WebCore/platform/text/AtomicString.cpp | 4 ++++ WebCore/platform/text/AtomicString.h | 6 ++++++ WebCore/platform/text/PlatformString.h | 8 ++++++++ WebCore/platform/text/String.cpp | 5 ++++- WebCore/platform/text/StringImpl.cpp | 4 ---- WebCore/platform/text/StringImpl.h | 1 - 7 files changed, 35 insertions(+), 6 deletions(-)
Eric Seidel (no email)
Comment 8
2008-09-03 14:44:59 PDT
Created
attachment 23149
[details]
Clean up Platform.h and add PLATFORM(CHROMIUM), PLATFORM(SKIA) and USE(V8_BINDINGS) JavaScriptCore/ChangeLog | 10 +++++ .../Configurations/JavaScriptCore.xcconfig | 2 +- JavaScriptCore/wtf/ASCIICType.h | 1 + JavaScriptCore/wtf/Platform.h | 37 +++++++++++++------- WebCore/ChangeLog | 9 +++++ WebCore/Configurations/WebCore.xcconfig | 2 +- WebCore/config.h | 21 ++++++----- WebKit/mac/ChangeLog | 9 +++++ WebKit/mac/Configurations/WebKit.xcconfig | 2 +- WebKit/mac/WebKitPrefix.h | 5 +++ 10 files changed, 72 insertions(+), 26 deletions(-)
Sam Weinig
Comment 9
2008-09-03 14:48:11 PDT
Comment on
attachment 23148
[details]
Add #if USE(JAVASCRIPTCORE_BINDINGS) around KJS dependencies I am not a fan of reusing USE(JAVASCRIPTCORE_BINDINGS) due to it's muddled past. Perhaps USE(JSC) would be cleaner.
Sam Weinig
Comment 10
2008-09-03 14:58:23 PDT
Comment on
attachment 23149
[details]
Clean up Platform.h and add PLATFORM(CHROMIUM), PLATFORM(SKIA) and USE(V8_BINDINGS) This comment is not necessary. +/* Chromium runs WebKit multi-process/sandboxed, and provides its own */ +/* OS-level abstractions to work in this environment. */ Will this break windows builds that use CG? +/* Makes PLATFORM(WIN) default to PLATFORM(CAIRO) */ +#if !PLATFORM(MAC) && !PLATFORM(QT) && !PLATFORM(WX) Why not do this in Platform.h +#if !defined(WTF_USE_JAVASCRIPTCORE_BINDINGS) && !defined(WTF_USE_V8_BINDINGS) +/* Currently Chromium is the only platform which uses V8 by default */ +#if PLATFORM(CHROMIUM) +#define WTF_USE_JAVASCRIPTCORE_BINDINGS 0 +#define WTF_USE_V8_BINDINGS 1 +#else +#define WTF_USE_JAVASCRIPTCORE_BINDINGS 1 +#define WTF_USE_V8_BINDINGS 0 +#endif /* PLATFORM(CHROMIUM) */ +#endif /* !defined(WTF_USE_JAVASCRIPTCORE_BINDINGS) && !defined(WTF_USE_V8_BINDINGS) */ Why is this change ok? -#define ENABLE_NETSCAPE_PLUGIN_API 0 +#define ENABLE_NETSCAPE_PLUGIN_API 1
Sam Weinig
Comment 11
2008-09-03 14:58:54 PDT
Comment on
attachment 23148
[details]
Add #if USE(JAVASCRIPTCORE_BINDINGS) around KJS dependencies r=me if you switch to use USE(JSC)
Eric Seidel (no email)
Comment 12
2008-09-03 15:42:36 PDT
(In reply to
comment #10
)
> (From update of
attachment 23149
[details]
[edit]) > This comment is not necessary. > +/* Chromium runs WebKit multi-process/sandboxed, and provides its own */ > +/* OS-level abstractions to work in this environment. */
OK, I figured all the other platforms had (vacuous) comments, I should add one too. :)
> Will this break windows builds that use CG? > +/* Makes PLATFORM(WIN) default to PLATFORM(CAIRO) */ > +#if !PLATFORM(MAC) && !PLATFORM(QT) && !PLATFORM(WX)
Nah, this is kinda strange, but the Apple windows build fixes up its defines in WebCore/config.h Basically we need a better way to define what you're building. Window-Apple, Windows-Cairo, Windows-Chromium, etc.
> Why not do this in Platform.h > +#if !defined(WTF_USE_JAVASCRIPTCORE_BINDINGS) && !defined(WTF_USE_V8_BINDINGS) > +/* Currently Chromium is the only platform which uses V8 by default */ > +#if PLATFORM(CHROMIUM) > +#define WTF_USE_JAVASCRIPTCORE_BINDINGS 0 > +#define WTF_USE_V8_BINDINGS 1 > +#else > +#define WTF_USE_JAVASCRIPTCORE_BINDINGS 1 > +#define WTF_USE_V8_BINDINGS 0 > +#endif /* PLATFORM(CHROMIUM) */ > +#endif /* !defined(WTF_USE_JAVASCRIPTCORE_BINDINGS) && > !defined(WTF_USE_V8_BINDINGS) */
Cause Platform.h is part of JavaScriptCore, and this stuff had been part of WebCore in the past.
> Why is this change ok? > -#define ENABLE_NETSCAPE_PLUGIN_API 0 > +#define ENABLE_NETSCAPE_PLUGIN_API 1
Yup. All platforms had it on. Platforms can still turn it off by defining than as part of their build system.
Mark Rowe (bdash)
Comment 13
2008-09-03 15:58:39 PDT
> > Why is this change ok? > > -#define ENABLE_NETSCAPE_PLUGIN_API 0 > > +#define ENABLE_NETSCAPE_PLUGIN_API 1 > > Yup. All platforms had it on. Platforms can still turn it off by defining > than as part of their build system.
What do you mean by "All platforms had it on"? Wx doesn't support NPAPI, nor does Gtk on Windows.
Eric Seidel (no email)
Comment 14
2008-09-03 16:45:23 PDT
(In reply to
comment #13
)
> > > Why is this change ok? > > > -#define ENABLE_NETSCAPE_PLUGIN_API 0 > > > +#define ENABLE_NETSCAPE_PLUGIN_API 1 > > > > Yup. All platforms had it on. Platforms can still turn it off by defining > > than as part of their build system. > > What do you mean by "All platforms had it on"? Wx doesn't support NPAPI, nor > does Gtk on Windows.
Then it seems like a blacklist is more appropriate than the whitelist we had. These would be: PLATFORM(WX) and PLATFORM(GTK) && PLATFORM(WIN) I assume?
Eric Seidel (no email)
Comment 15
2008-09-03 16:58:34 PDT
(In reply to
comment #14
)
> (In reply to
comment #13
) > > > > Why is this change ok? > > > > -#define ENABLE_NETSCAPE_PLUGIN_API 0 > > > > +#define ENABLE_NETSCAPE_PLUGIN_API 1 > > > > > > Yup. All platforms had it on. Platforms can still turn it off by defining > > > than as part of their build system. > > > > What do you mean by "All platforms had it on"? Wx doesn't support NPAPI, nor > > does Gtk on Windows.
It seems that Platform.h from ToT doesn't agree with you: #if (PLATFORM(MAC) || PLATFORM(GTK) || PLATFORM(SYMBIAN) || PLATFORM(WIN) || PLATFORM(WX)) && !defined(ENABLE_NETSCAPE_PLUGIN_API) #define ENABLE_NETSCAPE_PLUGIN_API 1 #endif My change is correct at least for the two examples you posted.
Eric Seidel (no email)
Comment 16
2008-09-03 17:38:14 PDT
Created
attachment 23152
[details]
Add #if USE(JSC) around KJS dependencies WebCore/ChangeLog | 13 ++++++++ WebCore/bindings/js/JSPluginElementFunctions.cpp | 35 ---------------------- WebCore/config.h | 22 +++++++------ WebCore/html/HTMLAppletElement.cpp | 2 - WebCore/html/HTMLAppletElement.h | 2 - WebCore/html/HTMLEmbedElement.cpp | 6 ---- WebCore/html/HTMLEmbedElement.h | 2 - WebCore/html/HTMLObjectElement.cpp | 5 --- WebCore/html/HTMLObjectElement.h | 2 - WebCore/html/HTMLPlugInElement.cpp | 6 ++-- WebCore/html/HTMLPlugInElement.h | 8 ++-- WebCore/platform/text/AtomicString.cpp | 4 ++ WebCore/platform/text/AtomicString.h | 6 ++++ WebCore/platform/text/PlatformString.h | 8 +++++ WebCore/platform/text/String.cpp | 5 ++- WebCore/platform/text/StringImpl.cpp | 4 -- WebCore/platform/text/StringImpl.h | 1 - 17 files changed, 54 insertions(+), 77 deletions(-)
Eric Seidel (no email)
Comment 17
2008-09-03 17:38:17 PDT
Created
attachment 23153
[details]
Clean up Platform.h and add PLATFORM(CHROMIUM), PLATFORM(SKIA) and USE(V8_BINDINGS) JavaScriptCore/ChangeLog | 10 ++++++ .../Configurations/JavaScriptCore.xcconfig | 2 +- JavaScriptCore/wtf/ASCIICType.h | 1 + JavaScriptCore/wtf/Platform.h | 34 ++++++++++++------- WebCore/ChangeLog | 9 +++++ WebCore/Configurations/WebCore.xcconfig | 2 +- WebKit/mac/ChangeLog | 9 +++++ WebKit/mac/Configurations/WebKit.xcconfig | 2 +- WebKit/mac/WebKitPrefix.h | 5 +++ 9 files changed, 58 insertions(+), 16 deletions(-)
Sam Weinig
Comment 18
2008-09-03 18:05:22 PDT
Comment on
attachment 23152
[details]
Add #if USE(JSC) around KJS dependencies Needs an updated changelog.
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