Title: [117624] trunk
Revision
117624
Author
[email protected]
Date
2012-05-18 14:01:10 -0700 (Fri, 18 May 2012)

Log Message

[EFL] Web Intents code is not compiling
https://bugs.webkit.org/show_bug.cgi?id=85364

Patch by Christophe Dumez <[email protected]> on 2012-05-18
Reviewed by Adam Barth.

.:

Remove broken CMake directive for WEB_INTENTS.

* Source/cmake/OptionsEfl.cmake:

Source/WebCore:

Add missing implementation for
JSIntentConstructor::constructJSIntent() in JS bindings.

* CMakeLists.txt:
* UseJSC.cmake:
* bindings/js/JSIntentConstructor.cpp: Added.
(WebCore):
(WebCore::JSIntentConstructor::constructJSIntent):

Source/WebKit/efl:

* WebCoreSupport/FrameLoaderClientEfl.cpp: Add missing header include.
* ewk/ewk_intent_private.h: Ditto.
* ewk/ewk_intent_request.cpp:
(ewk_intent_request_new): Do not PassRefPtr after it becomes 0.

LayoutTests:

Move webintents test cases to test expectations until the needed
features are implemented and Web Intents are enabled by default
for EFL port.

* platform/efl/Skipped:
* platform/efl/test_expectations.txt:

Modified Paths

Added Paths

Diff

Modified: trunk/ChangeLog (117623 => 117624)


--- trunk/ChangeLog	2012-05-18 20:57:09 UTC (rev 117623)
+++ trunk/ChangeLog	2012-05-18 21:01:10 UTC (rev 117624)
@@ -1,3 +1,14 @@
+2012-05-18  Christophe Dumez  <[email protected]>
+
+        [EFL] Web Intents code is not compiling
+        https://bugs.webkit.org/show_bug.cgi?id=85364
+
+        Reviewed by Adam Barth.
+
+        Remove broken CMake directive for WEB_INTENTS.
+
+        * Source/cmake/OptionsEfl.cmake:
+
 2012-05-18  Adrian Bunk  <[email protected]>
 
         [GTK] Remove the obsolete AM_PROG_CC_STDC

Modified: trunk/LayoutTests/ChangeLog (117623 => 117624)


--- trunk/LayoutTests/ChangeLog	2012-05-18 20:57:09 UTC (rev 117623)
+++ trunk/LayoutTests/ChangeLog	2012-05-18 21:01:10 UTC (rev 117624)
@@ -1,3 +1,17 @@
+2012-05-18  Christophe Dumez  <[email protected]>
+
+        [EFL] Web Intents code is not compiling
+        https://bugs.webkit.org/show_bug.cgi?id=85364
+
+        Reviewed by Adam Barth.
+
+        Move webintents test cases to test expectations until the needed
+        features are implemented and Web Intents are enabled by default
+        for EFL port.
+
+        * platform/efl/Skipped:
+        * platform/efl/test_expectations.txt:
+
 2012-05-18  Joe Thomas  <[email protected]>
 
         background-size specified by a single value in background shorthand fails to parse.

Modified: trunk/LayoutTests/platform/efl/Skipped (117623 => 117624)


--- trunk/LayoutTests/platform/efl/Skipped	2012-05-18 20:57:09 UTC (rev 117623)
+++ trunk/LayoutTests/platform/efl/Skipped	2012-05-18 21:01:10 UTC (rev 117624)
@@ -1069,9 +1069,6 @@
 # Microdata DOM API is not yet enabled.
 fast/dom/MicroData
 
-# Web Intents is not yet enabled.
-webintents/
-
 # Pointer Lock is not implemented.
 pointer-lock/
 

Modified: trunk/LayoutTests/platform/efl/test_expectations.txt (117623 => 117624)


--- trunk/LayoutTests/platform/efl/test_expectations.txt	2012-05-18 20:57:09 UTC (rev 117623)
+++ trunk/LayoutTests/platform/efl/test_expectations.txt	2012-05-18 21:01:10 UTC (rev 117624)
@@ -517,6 +517,18 @@
 BUGWK84167 : fast/inline-block/001.html = IMAGE+TEXT
 BUGWK84167 : tables/mozilla/bugs/bug2479-2.html = IMAGE+TEXT
 
+// Incomplete Web Intents support (disabled by default)
+BUGWK86866 SKIP : webintents/intent-tag.html = TEXT
+BUGWK86873 SKIP : webintents/web-intents-api.html = TEXT
+BUGWK86865 SKIP : webintents/web-intents-delivery.html = TEXT
+BUGWK86864 SKIP : webintents/web-intents-delivery-reuse.html = TEXT
+BUGWK86867 SKIP : webintents/web-intents-failure.html = TEXT
+BUGWK86864 SKIP : webintents/web-intents-invoke.html = TEXT
+BUGWK86864 SKIP : webintents/web-intents-invoke-port.html = TEXT
+BUGWK86864 SKIP : webintents/web-intents-obj-constructor.html = TEXT
+BUGWK86864 SKIP : webintents/web-intents-reload.html = TEXT
+BUGWK86867 SKIP : webintents/web-intents-reply.html = TEXT
+
 // Needs rebaseline after bug 86441
 BUGWK86441 : fast/borders/border-antialiasing.html = IMAGE
 BUGWK86441 : fast/multicol/shadow-breaking.html = IMAGE

Modified: trunk/Source/WebCore/CMakeLists.txt (117623 => 117624)


--- trunk/Source/WebCore/CMakeLists.txt	2012-05-18 20:57:09 UTC (rev 117623)
+++ trunk/Source/WebCore/CMakeLists.txt	2012-05-18 21:01:10 UTC (rev 117624)
@@ -2515,6 +2515,7 @@
         Modules/intents/NavigatorIntents.idl
     )
     LIST(APPEND WebCore_SOURCES
+       Modules/intents/DOMWindowIntents.cpp
        Modules/intents/Intent.cpp
        Modules/intents/IntentRequest.cpp
        Modules/intents/NavigatorIntents.cpp

Modified: trunk/Source/WebCore/ChangeLog (117623 => 117624)


--- trunk/Source/WebCore/ChangeLog	2012-05-18 20:57:09 UTC (rev 117623)
+++ trunk/Source/WebCore/ChangeLog	2012-05-18 21:01:10 UTC (rev 117624)
@@ -1,3 +1,19 @@
+2012-05-18  Christophe Dumez  <[email protected]>
+
+        [EFL] Web Intents code is not compiling
+        https://bugs.webkit.org/show_bug.cgi?id=85364
+
+        Reviewed by Adam Barth.
+
+        Add missing implementation for
+        JSIntentConstructor::constructJSIntent() in JS bindings.
+
+        * CMakeLists.txt:
+        * UseJSC.cmake:
+        * bindings/js/JSIntentConstructor.cpp: Added.
+        (WebCore):
+        (WebCore::JSIntentConstructor::constructJSIntent):
+
 2012-05-18  Joe Thomas  <[email protected]>
 
         background-size specified by a single value in background shorthand fails to parse.

Modified: trunk/Source/WebCore/UseJSC.cmake (117623 => 117624)


--- trunk/Source/WebCore/UseJSC.cmake	2012-05-18 20:57:09 UTC (rev 117623)
+++ trunk/Source/WebCore/UseJSC.cmake	2012-05-18 21:01:10 UTC (rev 117624)
@@ -287,6 +287,12 @@
     )
 ENDIF ()
 
+IF (ENABLE_WEB_INTENTS)
+    LIST (APPEND WebCore_SOURCES
+        bindings/js/JSIntentConstructor.cpp
+    )
+ENDIF ()
+
 LIST(APPEND SCRIPTS_BINDINGS
     ${WEBCORE_DIR}/bindings/scripts/CodeGenerator.pm
 )

Added: trunk/Source/WebCore/bindings/js/JSIntentConstructor.cpp (0 => 117624)


--- trunk/Source/WebCore/bindings/js/JSIntentConstructor.cpp	                        (rev 0)
+++ trunk/Source/WebCore/bindings/js/JSIntentConstructor.cpp	2012-05-18 21:01:10 UTC (rev 117624)
@@ -0,0 +1,92 @@
+/*
+    Copyright (C) 2012 Intel Corporation
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    along with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02110-1301, USA.
+*/
+
+#include "config.h"
+#include "Intent.h"
+
+#include "Dictionary.h"
+#include "ExceptionCode.h"
+#include "JSDOMBinding.h"
+#include "JSIntent.h"
+#include "JSMessagePortCustom.h"
+#include "JSValue.h"
+#include <runtime/Error.h>
+#include <wtf/ArrayBuffer.h>
+
+using namespace JSC;
+
+namespace WebCore {
+
+EncodedJSValue JSC_HOST_CALL JSIntentConstructor::constructJSIntent(ExecState* exec)
+{
+    JSIntentConstructor* castedThis = jsCast<JSIntentConstructor*>(exec->callee());
+
+    if (exec->argumentCount() < 1)
+        return throwVMError(exec, createNotEnoughArgumentsError(exec));
+
+    if (exec->argumentCount() == 1) {
+        // Use the dictionary constructor. This block will return if the
+        // argument isn't a valid Dictionary.
+        JSValue optionsValue = exec->argument(0);
+        if (!optionsValue.isObject()) {
+            setDOMException(exec, SYNTAX_ERR);
+            return JSValue::encode(jsUndefined());
+        }
+        Dictionary options(exec, optionsValue);
+        if (exec->hadException())
+            return JSValue::encode(jsUndefined());
+
+        ExceptionCode ec = 0;
+        RefPtr<Intent> impl = Intent::create(exec, options, ec);
+        if (ec) {
+            setDOMException(exec, ec);
+            return JSValue::encode(jsUndefined());
+        }
+        return JSValue::encode(asObject(toJS(exec, castedThis->globalObject(), impl.get())));
+    }
+
+    const String& action(ustringToString(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).isEmpty() ? UString() : MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toString(exec)->value(exec)));
+    if (exec->hadException())
+        return JSValue::encode(jsUndefined());
+
+    const String& type(ustringToString(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).isEmpty() ? UString() : MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toString(exec)->value(exec)));
+    if (exec->hadException())
+        return JSValue::encode(jsUndefined());
+
+    MessagePortArray messagePortArrayTransferList;
+    ArrayBufferArray arrayBufferArrayTransferList;
+    if (exec->argumentCount() > 3) {
+        fillMessagePortArray(exec, exec->argument(3), messagePortArrayTransferList, arrayBufferArrayTransferList);
+        if (exec->hadException())
+            return JSValue::encode(jsUndefined());
+    }
+    RefPtr<SerializedScriptValue> data = "" exec->argument(2), &messagePortArrayTransferList, &arrayBufferArrayTransferList);
+    if (exec->hadException())
+        return JSValue::encode(jsUndefined());
+
+    ExceptionCode ec = 0;
+    RefPtr<Intent> impl = Intent::create(action, type, data, messagePortArrayTransferList, ec);
+    if (ec) {
+        setDOMException(exec, ec);
+        return JSValue::encode(jsUndefined());
+    }
+    return JSValue::encode(asObject(toJS(exec, castedThis->globalObject(), impl.get())));
+}
+
+} // namespace WebCore

Modified: trunk/Source/WebKit/efl/ChangeLog (117623 => 117624)


--- trunk/Source/WebKit/efl/ChangeLog	2012-05-18 20:57:09 UTC (rev 117623)
+++ trunk/Source/WebKit/efl/ChangeLog	2012-05-18 21:01:10 UTC (rev 117624)
@@ -1,5 +1,17 @@
 2012-05-18  Christophe Dumez  <[email protected]>
 
+        [EFL] Web Intents code is not compiling
+        https://bugs.webkit.org/show_bug.cgi?id=85364
+
+        Reviewed by Adam Barth.
+
+        * WebCoreSupport/FrameLoaderClientEfl.cpp: Add missing header include.
+        * ewk/ewk_intent_private.h: Ditto.
+        * ewk/ewk_intent_request.cpp:
+        (ewk_intent_request_new): Do not PassRefPtr after it becomes 0.
+
+2012-05-18  Christophe Dumez  <[email protected]>
+
         [EFL] Default values for ewk_view video tracks settings should be documented
         https://bugs.webkit.org/show_bug.cgi?id=85169
 

Modified: trunk/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp (117623 => 117624)


--- trunk/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp	2012-05-18 20:57:09 UTC (rev 117623)
+++ trunk/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp	2012-05-18 21:01:10 UTC (rev 117624)
@@ -55,7 +55,7 @@
 #include "Settings.h"
 #include "WebKitVersion.h"
 #include "ewk_frame_private.h"
-#include "ewk_intent_request.h"
+#include "ewk_intent_private.h"
 #include "ewk_private.h"
 #include "ewk_settings_private.h"
 #include "ewk_view_private.h"

Modified: trunk/Source/WebKit/efl/ewk/ewk_intent_private.h (117623 => 117624)


--- trunk/Source/WebKit/efl/ewk/ewk_intent_private.h	2012-05-18 20:57:09 UTC (rev 117623)
+++ trunk/Source/WebKit/efl/ewk/ewk_intent_private.h	2012-05-18 21:01:10 UTC (rev 117624)
@@ -21,6 +21,10 @@
 #define ewk_intent_private_h
 
 #if ENABLE(WEB_INTENTS)
+
+#include "ewk_intent.h"
+#include "ewk_intent_request.h"
+
 // forward declarations
 namespace WebCore {
 class Intent;

Modified: trunk/Source/WebKit/efl/ewk/ewk_intent_request.cpp (117623 => 117624)


--- trunk/Source/WebKit/efl/ewk/ewk_intent_request.cpp	2012-05-18 20:57:09 UTC (rev 117623)
+++ trunk/Source/WebKit/efl/ewk/ewk_intent_request.cpp	2012-05-18 21:01:10 UTC (rev 117624)
@@ -115,7 +115,7 @@
     Ewk_Intent_Request* request = new Ewk_Intent_Request;
     request->__ref = 1;
     request->core = core;
-    request->intent = ewk_intent_new(core->intent());
+    request->intent = ewk_intent_new(request->core->intent());
 
     return request;
 }

Modified: trunk/Source/cmake/OptionsEfl.cmake (117623 => 117624)


--- trunk/Source/cmake/OptionsEfl.cmake	2012-05-18 20:57:09 UTC (rev 117623)
+++ trunk/Source/cmake/OptionsEfl.cmake	2012-05-18 21:01:10 UTC (rev 117624)
@@ -81,7 +81,6 @@
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIDEO ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIDEO_TRACK ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_AUDIO ON)
-WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_INTENTS, ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_TIMING ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WORKERS ON)
 WEBKIT_OPTION_END()
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to