Bug 84838 - [Gtk] WebKitGTK+ 1.8.1 fails to build when disabling HTML Video feature
Summary: [Gtk] WebKitGTK+ 1.8.1 fails to build when disabling HTML Video feature
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKitGTK (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC Linux
: P2 Normal
Assignee: Zan Dobersek
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-04-25 03:57 PDT by Evgeny Burmentyev
Modified: 2012-05-05 10:39 PDT (History)
2 users (show)

See Also:


Attachments
Patch (10.18 KB, patch)
2012-04-25 12:50 PDT, Zan Dobersek
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Evgeny Burmentyev 2012-04-25 03:57:16 PDT
The configure flags are:
--prefix=/usr --disable-spellcheck --disable-gtk-doc-html --disable-video --disable-video-track --disable-webkit2 --with-gtk=3.0 --enable-webgl --disable-geolocation

Make log:
  CXX    DerivedSources/webkit/libwebkitgtk_3_0_la-WebKitDOMHTMLMapElement.lo
  CXX    DerivedSources/webkit/libwebkitgtk_3_0_la-WebKitDOMHTMLMarqueeElement.lo
  CXX    DerivedSources/webkit/libwebkitgtk_3_0_la-WebKitDOMHTMLMediaElement.lo
DerivedSources/webkit/WebKitDOMHTMLMediaElement.cpp: In Funktion »void webkit_dom_html_media_element_set_property(GObject*, guint, const GValue*, GParamSpec*)«:
DerivedSources/webkit/WebKitDOMHTMLMediaElement.cpp:149:5: Fehler: »HTMLMediaElement« ist kein Element von »WebCore«
DerivedSources/webkit/WebKitDOMHTMLMediaElement.cpp:149:32: Fehler: »coreSelf« wurde in diesem Gültigkeitsbereich nicht definiert
DerivedSources/webkit/WebKitDOMHTMLMediaElement.cpp:149:43: Fehler: »core« ist kein Element von »WebKit«
DerivedSources/webkit/WebKitDOMHTMLMediaElement.cpp: In Funktion »void webkit_dom_html_media_element_get_property(GObject*, guint, GValue*, GParamSpec*)«:
DerivedSources/webkit/WebKitDOMHTMLMediaElement.cpp:234:5: Fehler: »HTMLMediaElement« ist kein Element von »WebCore«
DerivedSources/webkit/WebKitDOMHTMLMediaElement.cpp:234:32: Fehler: »coreSelf« wurde in diesem Gültigkeitsbereich nicht definiert
DerivedSources/webkit/WebKitDOMHTMLMediaElement.cpp:234:43: Fehler: »core« ist kein Element von »WebKit«
DerivedSources/webkit/WebKitDOMHTMLMediaElement.cpp:238:16: Fehler: »MediaError« ist kein Element von »WebCore«
DerivedSources/webkit/WebKitDOMHTMLMediaElement.cpp:238:16: Fehler: »MediaError« ist kein Element von »WebCore«
DerivedSources/webkit/WebKitDOMHTMLMediaElement.cpp:238:35: Fehler: Templateargument 1 ist ungültig
DerivedSources/webkit/WebKitDOMHTMLMediaElement.cpp:238:41: Fehler: invalid type in declaration before »=« token
DerivedSources/webkit/WebKitDOMHTMLMediaElement.cpp:239:51: Fehler: Abfrage des Elementes »get« in »ptr«, das vom Nicht-Klassentyp »int« ist
DerivedSources/webkit/WebKitDOMHTMLMediaElement.cpp:265:56: Fehler: keine passende Funktion für Aufruf von »kit(WebCore::TimeRanges*)«
DerivedSources/webkit/WebKitDOMHTMLMediaElement.cpp:265:56: Anmerkung: Kandidaten sind:
In file included from DerivedSources/webkit/WebKitDOMHTMLMediaElement.cpp:33:0:
./Source/WebCore/bindings/gobject/WebKitDOMBinding.h:38:16: Anmerkung: WebKitDOMNode* WebKit::kit(WebCore::Node*)
./Source/WebCore/bindings/gobject/WebKitDOMBinding.h:38:16: Anmerkung:   keine bekannte Umwandlung für Argument 1 von »WebCore::TimeRanges*« nach »WebCore::Node*«
./Source/WebCore/bindings/gobject/WebKitDOMBinding.h:39:19: Anmerkung: WebKitDOMElement* WebKit::kit(WebCore::Element*)
./Source/WebCore/bindings/gobject/WebKitDOMBinding.h:39:19: Anmerkung:   keine bekannte Umwandlung für Argument 1 von »WebCore::TimeRanges*« nach »WebCore::Element*«
./Source/WebCore/bindings/gobject/WebKitDOMBinding.h:40:17: Anmerkung: WebKitDOMEvent* WebKit::kit(WebCore::Event*)
./Source/WebCore/bindings/gobject/WebKitDOMBinding.h:40:17: Anmerkung:   keine bekannte Umwandlung für Argument 1 von »WebCore::TimeRanges*« nach »WebCore::Event*«
./Source/WebCore/bindings/gobject/WebKitDOMBinding.h:41:23: Anmerkung: WebKitDOMEventTarget* WebKit::kit(WebCore::EventTarget*)
./Source/WebCore/bindings/gobject/WebKitDOMBinding.h:41:23: Anmerkung:   keine bekannte Umwandlung für Argument 1 von »WebCore::TimeRanges*« nach »WebCore::EventTarget*«
DerivedSources/webkit/WebKitDOMHTMLMediaElement.cpp:316:56: Fehler: keine passende Funktion für Aufruf von »kit(WebCore::TimeRanges*)«
DerivedSources/webkit/WebKitDOMHTMLMediaElement.cpp:316:56: Anmerkung: Kandidaten sind:
In file included from DerivedSources/webkit/WebKitDOMHTMLMediaElement.cpp:33:0:
./Source/WebCore/bindings/gobject/WebKitDOMBinding.h:38:16: Anmerkung: WebKitDOMNode* WebKit::kit(WebCore::Node*)
./Source/WebCore/bindings/gobject/WebKitDOMBinding.h:38:16: Anmerkung:   keine bekannte Umwandlung für Argument 1 von »WebCore::TimeRanges*« nach »WebCore::Node*«
./Source/WebCore/bindings/gobject/WebKitDOMBinding.h:39:19: Anmerkung: WebKitDOMElement* WebKit::kit(WebCore::Element*)
./Source/WebCore/bindings/gobject/WebKitDOMBinding.h:39:19: Anmerkung:   keine bekannte Umwandlung für Argument 1 von »WebCore::TimeRanges*« nach »WebCore::Element*«
./Source/WebCore/bindings/gobject/WebKitDOMBinding.h:40:17: Anmerkung: WebKitDOMEvent* WebKit::kit(WebCore::Event*)
./Source/WebCore/bindings/gobject/WebKitDOMBinding.h:40:17: Anmerkung:   keine bekannte Umwandlung für Argument 1 von »WebCore::TimeRanges*« nach »WebCore::Event*«
./Source/WebCore/bindings/gobject/WebKitDOMBinding.h:41:23: Anmerkung: WebKitDOMEventTarget* WebKit::kit(WebCore::EventTarget*)
./Source/WebCore/bindings/gobject/WebKitDOMBinding.h:41:23: Anmerkung:   keine bekannte Umwandlung für Argument 1 von »WebCore::TimeRanges*« nach »WebCore::EventTarget*«
DerivedSources/webkit/WebKitDOMHTMLMediaElement.cpp:322:56: Fehler: keine passende Funktion für Aufruf von »kit(WebCore::TimeRanges*)«
DerivedSources/webkit/WebKitDOMHTMLMediaElement.cpp:322:56: Anmerkung: Kandidaten sind:
In file included from DerivedSources/webkit/WebKitDOMHTMLMediaElement.cpp:33:0:
./Source/WebCore/bindings/gobject/WebKitDOMBinding.h:38:16: Anmerkung: WebKitDOMNode* WebKit::kit(WebCore::Node*)
./Source/WebCore/bindings/gobject/WebKitDOMBinding.h:38:16: Anmerkung:   keine bekannte Umwandlung für Argument 1 von »WebCore::TimeRanges*« nach »WebCore::Node*«
./Source/WebCore/bindings/gobject/WebKitDOMBinding.h:39:19: Anmerkung: WebKitDOMElement* WebKit::kit(WebCore::Element*)
./Source/WebCore/bindings/gobject/WebKitDOMBinding.h:39:19: Anmerkung:   keine bekannte Umwandlung für Argument 1 von »WebCore::TimeRanges*« nach »WebCore::Element*«
./Source/WebCore/bindings/gobject/WebKitDOMBinding.h:40:17: Anmerkung: WebKitDOMEvent* WebKit::kit(WebCore::Event*)
./Source/WebCore/bindings/gobject/WebKitDOMBinding.h:40:17: Anmerkung:   keine bekannte Umwandlung für Argument 1 von »WebCore::TimeRanges*« nach »WebCore::Event*«
./Source/WebCore/bindings/gobject/WebKitDOMBinding.h:41:23: Anmerkung: WebKitDOMEventTarget* WebKit::kit(WebCore::EventTarget*)
./Source/WebCore/bindings/gobject/WebKitDOMBinding.h:41:23: Anmerkung:   keine bekannte Umwandlung für Argument 1 von »WebCore::TimeRanges*« nach »WebCore::EventTarget*«
make[1]: *** [DerivedSources/webkit/libwebkitgtk_3_0_la-WebKitDOMHTMLMediaElement.lo] Fehler 1
make[1]: *** Warte auf noch nicht beendete Prozesse...
make[1]: Leaving directory `/home/virus_found/abs/libwebkit/src/webkit-1.8.1'
make: *** [all] Fehler 2
Comment 1 Evgeny Burmentyev 2012-04-25 03:58:44 PDT
Probably caused by --disable-video, but I have no means to test it otherwise, sorry.
Comment 2 Zan Dobersek 2012-04-25 04:04:08 PDT
(In reply to comment #1)
> Probably caused by --disable-video, but I have no means to test it otherwise, sorry.

No need - compiling should not fail when disabling HTML Video.
Comment 3 Zan Dobersek 2012-04-25 06:02:04 PDT
Confirming the problem is present both in 1.8 branch and trunk.
Comment 4 Evgeny Burmentyev 2012-04-25 06:11:04 PDT
I used to build 1.6.3 with these flags just smoothly (apart from geolocation, which wasn't there yet).
Comment 5 Zan Dobersek 2012-04-25 06:19:49 PDT
(In reply to comment #4)
> I used to build 1.6.3 with these flags just smoothly (apart from geolocation, which wasn't there yet).

The problem is in the generated DOM bindings. The generation process wen through quite some changes before 1.8, but unfortunately not completely without problems.

I'll upload a patch to fix the compilation issues, hopefully today, with some more input on the problem.
Comment 6 Zan Dobersek 2012-04-25 12:50:57 PDT
Created attachment 138860 [details]
Patch

Patch to apply to 1.8 branch
Comment 7 Zan Dobersek 2012-04-25 13:00:00 PDT
(In reply to comment #6)
> Created an attachment (id=138860) [details]
> Patch
> 
> Patch to apply to 1.8 branch

This patch should fix the problem - uses of WebCore objects and functions in GObject getter and setter methods were not guarded with compilation guards if they were available, causing compilation errors when disabling a specific future.

While the patch fixes the compilation errors, it doesn't produce the expected behavior. The idea is that both API and ABI of the generated DOM bindings should be consistent regardless of whether a specific feature is enabled or disabled. Rather than a function or property not being available, a warning of unsupported feature would be thrown on interaction with such function or property. This however is not possible to do in the 1.8 branch anymore as it would break ABI.

The patch is not applicable to trunk - this change, along with some others DOM bindings changes that are not necessarily related to this problem, will be processed through another bug.
Comment 8 Martin Robinson 2012-04-26 08:29:07 PDT
I'll merge this into the stable branch.
Comment 9 Martin Robinson 2012-04-26 15:29:45 PDT
Comment on attachment 138860 [details]
Patch

I merged this into the 1.8 branch.