summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Source/JavaScriptCore/ChangeLog13
-rw-r--r--Source/JavaScriptCore/assembler/MacroAssemblerARM.h7
-rw-r--r--Source/Platform/ChangeLog11
-rw-r--r--Source/Platform/chromium/public/WebLocalizedString.h1
-rw-r--r--Source/WebCore/ChangeLog12
-rw-r--r--Source/WebCore/inspector/front-end/RemoteObject.js11
-rw-r--r--Source/WebKit/chromium/ChangeLog11
-rw-r--r--Source/WebKit/qt/Api/qwebsettings.cpp2
-rw-r--r--Source/WebKit/qt/ChangeLog10
-rw-r--r--Source/WebKit2/ChangeLog31
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_view.cpp53
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_view.h26
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_view_private.h5
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_view_ui_client.cpp19
-rw-r--r--Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp91
-rw-r--r--Tools/ChangeLog39
-rw-r--r--Tools/Scripts/webkitpy/performance_tests/perftest.py24
-rwxr-xr-xTools/Scripts/webkitpy/performance_tests/perftest_unittest.py10
-rwxr-xr-xTools/Scripts/webkitpy/performance_tests/perftestsrunner.py5
-rwxr-xr-xTools/Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py26
-rw-r--r--Tools/qmake/mkspecs/features/webkit_modules.prf2
21 files changed, 355 insertions, 54 deletions
diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog
index 243e2a887..ca7100e21 100644
--- a/Source/JavaScriptCore/ChangeLog
+++ b/Source/JavaScriptCore/ChangeLog
@@ -1,3 +1,16 @@
+2012-09-20 Gabor Rapcsanyi <rgabor@webkit.org>
+
+ [Qt] r129045 broke the ARM build
+ https://bugs.webkit.org/show_bug.cgi?id=97195
+
+ Reviewed by Zoltan Herczeg.
+
+ Implementing missing store8 function.
+
+ * assembler/MacroAssemblerARM.h:
+ (JSC::MacroAssemblerARM::store8):
+ (MacroAssemblerARM):
+
2012-09-19 Geoffrey Garen <ggaren@apple.com>
OSR exit sometimes neglects to create the arguments object
diff --git a/Source/JavaScriptCore/assembler/MacroAssemblerARM.h b/Source/JavaScriptCore/assembler/MacroAssemblerARM.h
index c4d6c92a5..298de9793 100644
--- a/Source/JavaScriptCore/assembler/MacroAssemblerARM.h
+++ b/Source/JavaScriptCore/assembler/MacroAssemblerARM.h
@@ -445,6 +445,13 @@ public:
m_assembler.baseIndexTransfer32(ARMAssembler::StoreUint8, src, address.base, address.index, static_cast<int>(address.scale), address.offset);
}
+ void store8(TrustedImm32 imm, void* address)
+ {
+ move(TrustedImm32(reinterpret_cast<ARMWord>(address)), ARMRegisters::S0);
+ m_assembler.moveImm(imm.m_value, ARMRegisters::S1);
+ m_assembler.dtrUp(ARMAssembler::StoreUint8, ARMRegisters::S1, ARMRegisters::S0, 0);
+ }
+
void store16(RegisterID src, BaseIndex address)
{
m_assembler.baseIndexTransfer16(ARMAssembler::StoreUint16, src, address.base, address.index, static_cast<int>(address.scale), address.offset);
diff --git a/Source/Platform/ChangeLog b/Source/Platform/ChangeLog
index 1a4e101e0..8067e06c6 100644
--- a/Source/Platform/ChangeLog
+++ b/Source/Platform/ChangeLog
@@ -1,3 +1,14 @@
+2012-09-20 Keishi Hattori <keishi@webkit.org>
+
+ [Chromium ] Add new localized string, OtherDateLabel, to be used in input type=date datalist UI
+ https://bugs.webkit.org/show_bug.cgi?id=97200
+
+ Reviewed by Kent Tamura.
+
+ Adding new localized string to be used in the SuggestionPicker for input type=date.
+
+ * chromium/public/WebLocalizedString.h:
+
2012-09-18 Sailesh Agrawal <sail@chromium.org>
Chromium: Scrollbar with tickmarks doesn't respond to clicks
diff --git a/Source/Platform/chromium/public/WebLocalizedString.h b/Source/Platform/chromium/public/WebLocalizedString.h
index 10373f4c6..824d244ef 100644
--- a/Source/Platform/chromium/public/WebLocalizedString.h
+++ b/Source/Platform/chromium/public/WebLocalizedString.h
@@ -71,6 +71,7 @@ struct WebLocalizedString {
MissingPluginText,
MultipleFileUploadText,
OtherColorLabel,
+ OtherDateLabel,
ResetButtonDefaultLabel,
SearchableIndexIntroduction,
SearchMenuClearRecentSearchesText,
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 1d3aa8f4b..5ad2101fa 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,15 @@
+2012-09-20 Andrey Adaikin <aandrey@chromium.org>
+
+ Web Inspector: setPropertyValue does not work for non-finite numbers
+ https://bugs.webkit.org/show_bug.cgi?id=97016
+
+ Reviewed by Vsevolod Vlasov.
+
+ Fix: setting a property to NaN, Infinity or -Infinity numbers did not work.
+
+ * inspector/front-end/RemoteObject.js:
+ (WebInspector.RemoteObject.prototype.setPropertyValue):
+
2012-09-20 Otto Derek Cheung <otcheung@rim.com>
Web Inspector: Cookie info in Network Resources Cookies tab are incorrect
diff --git a/Source/WebCore/inspector/front-end/RemoteObject.js b/Source/WebCore/inspector/front-end/RemoteObject.js
index f538738e1..324f4edb5 100644
--- a/Source/WebCore/inspector/front-end/RemoteObject.js
+++ b/Source/WebCore/inspector/front-end/RemoteObject.js
@@ -241,13 +241,14 @@ WebInspector.RemoteObject.prototype = {
return;
}
- function setPropertyValue(propertyName, propertyValue)
- {
- this[propertyName] = propertyValue;
- }
+ var setPropertyValueFunction = "function(a, b) { this[a] = b; }";
+
+ // Special case for NaN, Infinity and -Infinity
+ if (result.type === "number" && typeof result.value !== "number")
+ setPropertyValueFunction = "function(a) { this[a] = " + result.description + "; }";
delete result.description; // Optimize on traffic.
- RuntimeAgent.callFunctionOn(this._objectId, setPropertyValue.toString(), [{ value:name }, result], true, undefined, propertySetCallback.bind(this));
+ RuntimeAgent.callFunctionOn(this._objectId, setPropertyValueFunction, [{ value:name }, result], true, undefined, propertySetCallback.bind(this));
if (result._objectId)
RuntimeAgent.releaseObject(result._objectId);
}
diff --git a/Source/WebKit/chromium/ChangeLog b/Source/WebKit/chromium/ChangeLog
index 08b5cd5cf..7d7233c7d 100644
--- a/Source/WebKit/chromium/ChangeLog
+++ b/Source/WebKit/chromium/ChangeLog
@@ -1,3 +1,14 @@
+2012-09-20 Mike West <mkwst@google.com>
+
+ [chromium] Adding the 'google_apis' directory to .gitignore.
+ https://bugs.webkit.org/show_bug.cgi?id=97187
+
+ Reviewed by Jochen Eisinger.
+
+ 'chromium/google_apis' should be ignored, as it's not in the git repo.
+
+ * .gitignore:
+
2012-09-19 Adam Barth <abarth@webkit.org>
Remove webkitPostMessage
diff --git a/Source/WebKit/qt/Api/qwebsettings.cpp b/Source/WebKit/qt/Api/qwebsettings.cpp
index 0f504f817..b77b1c4ee 100644
--- a/Source/WebKit/qt/Api/qwebsettings.cpp
+++ b/Source/WebKit/qt/Api/qwebsettings.cpp
@@ -525,7 +525,7 @@ QWebSettings::QWebSettings()
d->attributes.insert(QWebSettings::LocalContentCanAccessFileUrls, true);
d->attributes.insert(QWebSettings::AcceleratedCompositingEnabled, true);
d->attributes.insert(QWebSettings::WebGLEnabled, false);
- d->attributes.insert(QWebSettings::CSSRegionsEnabled, false);
+ d->attributes.insert(QWebSettings::CSSRegionsEnabled, true);
d->attributes.insert(QWebSettings::CSSGridLayoutEnabled, false);
d->attributes.insert(QWebSettings::HyperlinkAuditingEnabled, false);
d->attributes.insert(QWebSettings::TiledBackingStoreEnabled, false);
diff --git a/Source/WebKit/qt/ChangeLog b/Source/WebKit/qt/ChangeLog
index 2721d582d..5aa62f179 100644
--- a/Source/WebKit/qt/ChangeLog
+++ b/Source/WebKit/qt/ChangeLog
@@ -1,3 +1,13 @@
+2012-09-20 Csaba Osztrogonác <ossy@webkit.org>
+
+ [Qt] Enable CSS regions by default
+ https://bugs.webkit.org/show_bug.cgi?id=97196
+
+ Reviewed by Dirk Schulze.
+
+ * Api/qwebsettings.cpp:
+ (QWebSettings::QWebSettings):
+
2012-09-17 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
[Qt] Use UndoStep::editingAction() to set the text of undo/redo actions
diff --git a/Source/WebKit2/ChangeLog b/Source/WebKit2/ChangeLog
index cbb88ad72..310e5fe38 100644
--- a/Source/WebKit2/ChangeLog
+++ b/Source/WebKit2/ChangeLog
@@ -1,3 +1,34 @@
+2012-09-20 KwangYong Choi <ky0.choi@samsung.com>
+
+ [EFL][WK2] Implemented color picker API
+ https://bugs.webkit.org/show_bug.cgi?id=91832
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add support for color picker API for EFL port in WebKit2.
+
+ The external application can implement input picker by overriding
+ smart class function.
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_Ewk_View_Private_Data):
+ (_Ewk_View_Private_Data::_Ewk_View_Private_Data):
+ (ewk_view_color_picker_request):
+ (ewk_view_color_picker_dismiss):
+ (ewk_view_color_picker_color_set):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_private.h:
+ * UIProcess/API/efl/ewk_view_ui_client.cpp:
+ (showColorPicker):
+ (hideColorPicker):
+ (ewk_view_ui_client_attach):
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (onColorPickerDone):
+ (setColorPickerColor):
+ (showColorPicker):
+ (hideColorPicker):
+ (TEST_F):
+
2012-09-20 Balazs Kelemen <kbalazs@webkit.org>
[CoordinatedGraphics] Don't reset m_shouldSyncFrame in flushPendingLayerChanges
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp b/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp
index 98c9c66be..bbbfc18c1 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp
@@ -26,6 +26,7 @@
#include "NativeWebWheelEvent.h"
#include "PageClientImpl.h"
#include "WKAPICast.h"
+#include "WKColorPickerResultListener.h"
#include "WKEinaSharedString.h"
#include "WKFindOptions.h"
#include "WKRetainPtr.h"
@@ -98,6 +99,7 @@ struct _Ewk_View_Private_Data {
Ewk_Back_Forward_List* backForwardList;
OwnPtr<Ewk_Settings> settings;
bool areMouseEventsEnabled;
+ WKColorPickerResultListenerRef colorPickerResultListener;
WebPopupMenuProxyEfl* popupMenuProxy;
Eina_List* popupMenuItems;
@@ -116,6 +118,7 @@ struct _Ewk_View_Private_Data {
: cursorObject(0)
, backForwardList(0)
, areMouseEventsEnabled(false)
+ , colorPickerResultListener(0)
, popupMenuProxy(0)
, popupMenuItems(0)
#ifdef HAVE_ECORE_X
@@ -1697,3 +1700,53 @@ WKEinaSharedString ewk_view_run_javascript_prompt(Evas_Object* ewkView, const WK
return WKEinaSharedString::adopt(smartData->api->run_javascript_prompt(smartData, message, defaultValue));
}
+
+#if ENABLE(INPUT_TYPE_COLOR)
+/**
+ * @internal
+ * Reqeusts to show external color picker.
+ */
+void ewk_view_color_picker_request(Evas_Object* ewkView, int r, int g, int b, int a, WKColorPickerResultListenerRef listener)
+{
+ EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData);
+ EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv);
+ EINA_SAFETY_ON_NULL_RETURN(smartData->api->input_picker_color_request);
+
+ priv->colorPickerResultListener = listener;
+
+ smartData->api->input_picker_color_request(smartData, r, g, b, a);
+}
+
+/**
+ * @internal
+ * Reqeusts to hide external color picker.
+ */
+void ewk_view_color_picker_dismiss(Evas_Object* ewkView)
+{
+ EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData);
+ EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv);
+ EINA_SAFETY_ON_NULL_RETURN(smartData->api->input_picker_color_dismiss);
+
+ priv->colorPickerResultListener = 0;
+
+ smartData->api->input_picker_color_dismiss(smartData);
+}
+#endif
+
+Eina_Bool ewk_view_color_picker_color_set(Evas_Object* ewkView, int r, int g, int b, int a)
+{
+#if ENABLE(INPUT_TYPE_COLOR)
+ EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false);
+ EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(priv->colorPickerResultListener, false);
+
+ WebCore::Color color = WebCore::Color(r, g, b, a);
+ const WKStringRef colorString = WKStringCreateWithUTF8CString(color.serialized().utf8().data());
+ WKColorPickerResultListenerSetColor(priv->colorPickerResultListener, colorString);
+ priv->colorPickerResultListener = 0;
+
+ return true;
+#else
+ return false;
+#endif
+}
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_view.h b/Source/WebKit2/UIProcess/API/efl/ewk_view.h
index c449514aa..13b8daf0b 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_view.h
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_view.h
@@ -121,13 +121,18 @@ struct _Ewk_View_Smart_Class {
void (*run_javascript_alert)(Ewk_View_Smart_Data *sd, const char *message);
Eina_Bool (*run_javascript_confirm)(Ewk_View_Smart_Data *sd, const char *message);
const char *(*run_javascript_prompt)(Ewk_View_Smart_Data *sd, const char *message, const char *default_value); /**< return string should be stringshared. */
+
+ // color picker:
+ // - Shows and hides color picker.
+ Eina_Bool (*input_picker_color_request)(Ewk_View_Smart_Data *sd, int r, int g, int b, int a);
+ Eina_Bool (*input_picker_color_dismiss)(Ewk_View_Smart_Data *sd);
};
/**
* The version you have to put into the version field
* in the @a Ewk_View_Smart_Class structure.
*/
-#define EWK_VIEW_SMART_CLASS_VERSION 4UL
+#define EWK_VIEW_SMART_CLASS_VERSION 5UL
/**
* Initializer for whole Ewk_View_Smart_Class structure.
@@ -139,7 +144,7 @@ struct _Ewk_View_Smart_Class {
* @see EWK_VIEW_SMART_CLASS_INIT_VERSION
* @see EWK_VIEW_SMART_CLASS_INIT_NAME_VERSION
*/
-#define EWK_VIEW_SMART_CLASS_INIT(smart_class_init) {smart_class_init, EWK_VIEW_SMART_CLASS_VERSION, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+#define EWK_VIEW_SMART_CLASS_INIT(smart_class_init) {smart_class_init, EWK_VIEW_SMART_CLASS_VERSION, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
/**
* Initializer to zero a whole Ewk_View_Smart_Class structure.
@@ -661,6 +666,23 @@ EAPI Eina_Bool ewk_view_mouse_events_enabled_set(Evas_Object *o, Eina_Bool enabl
*/
EAPI Eina_Bool ewk_view_mouse_events_enabled_get(const Evas_Object *o);
+/*
+ * Sets the user chosen color. To be used when implementing a color picker.
+ *
+ * The function should only be called when a color has been requested by the document.
+ * If called when this is not the case or when the input picker has been dismissed, this
+ * function will fail and return EINA_FALSE.
+ *
+ * @param o view object contains color picker
+ * @param r red channel value to be set
+ * @param g green channel value to be set
+ * @param b blue channel value to be set
+ * @param a alpha channel value to be set
+ *
+ * @return @c EINA_TRUE on success @c EINA_FALSE otherwise
+ */
+EAPI Eina_Bool ewk_view_color_picker_color_set(Evas_Object *o, int r, int g, int b, int a);
+
#ifdef __cplusplus
}
#endif
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_view_private.h b/Source/WebKit2/UIProcess/API/efl/ewk_view_private.h
index 5d6881dcc..4cba22d36 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_view_private.h
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_view_private.h
@@ -109,4 +109,9 @@ void ewk_view_run_javascript_alert(Evas_Object* ewkView, const WKEinaSharedStrin
bool ewk_view_run_javascript_confirm(Evas_Object* ewkView, const WKEinaSharedString& message);
WKEinaSharedString ewk_view_run_javascript_prompt(Evas_Object* ewkView, const WKEinaSharedString& message, const WKEinaSharedString& defaultValue);
+#if ENABLE(INPUT_TYPE_COLOR)
+void ewk_view_color_picker_request(Evas_Object* ewkView, int r, int g, int b, int a, WKColorPickerResultListenerRef listener);
+void ewk_view_color_picker_dismiss(Evas_Object* ewkView);
+#endif
+
#endif // ewk_view_private_h
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_view_ui_client.cpp b/Source/WebKit2/UIProcess/API/efl/ewk_view_ui_client.cpp
index 8ede50dd9..6bbf8956c 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_view_ui_client.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_view_ui_client.cpp
@@ -60,6 +60,19 @@ static WKStringRef runJavaScriptPrompt(WKPageRef, WKStringRef message, WKStringR
return value ? WKStringCreateWithUTF8CString(value) : 0;
}
+#if ENABLE(INPUT_TYPE_COLOR)
+static void showColorPicker(WKPageRef, WKStringRef initialColor, WKColorPickerResultListenerRef listener, const void* clientInfo)
+{
+ WebCore::Color color = WebCore::Color(WebKit::toWTFString(initialColor));
+ ewk_view_color_picker_request(toEwkView(clientInfo), color.red(), color.green(), color.blue(), color.alpha(), listener);
+}
+
+static void hideColorPicker(WKPageRef, const void* clientInfo)
+{
+ ewk_view_color_picker_dismiss(toEwkView(clientInfo));
+}
+#endif
+
void ewk_view_ui_client_attach(WKPageRef pageRef, Evas_Object* ewkView)
{
WKPageUIClient uiClient;
@@ -71,5 +84,11 @@ void ewk_view_ui_client_attach(WKPageRef pageRef, Evas_Object* ewkView)
uiClient.runJavaScriptAlert = runJavaScriptAlert;
uiClient.runJavaScriptConfirm = runJavaScriptConfirm;
uiClient.runJavaScriptPrompt = runJavaScriptPrompt;
+
+#if ENABLE(INPUT_TYPE_COLOR)
+ uiClient.showColorPicker = showColorPicker;
+ uiClient.hideColorPicker = hideColorPicker;
+#endif
+
WKPageSetPageUIClient(pageRef, &uiClient);
}
diff --git a/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp b/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp
index b608c7cb7..25f62fcf8 100644
--- a/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp
@@ -624,3 +624,94 @@ TEST_F(EWK2UnitTestBase, ewk_view_run_javascript_prompt)
EXPECT_STREQ(ewk_view_title_get(webView()), "null");
EXPECT_EQ(promptCallbackData.called, false);
}
+
+#if ENABLE(INPUT_TYPE_COLOR)
+static const int initialRed = 0x12;
+static const int initialGreen = 0x34;
+static const int initialBlue = 0x56;
+static const int initialAlpha = 0xff;
+static const int changedRed = 0x98;
+static const int changedGreen = 0x76;
+static const int changedBlue = 0x54;
+static const int changedAlpha = 0xff;
+
+static bool isColorPickerShown = false;
+
+static void onColorPickerDone(void* userData, Evas_Object*, void*)
+{
+ bool* handled = static_cast<bool*>(userData);
+
+ *handled = true;
+}
+
+static unsigned char setColorPickerColor(void* data)
+{
+ Ewk_View_Smart_Data* smartData = static_cast<Ewk_View_Smart_Data*>(data);
+
+ // 3. Change color to changed color.
+ EXPECT_TRUE(ewk_view_color_picker_color_set(smartData->self, changedRed, changedGreen, changedBlue, changedAlpha));
+
+ evas_object_smart_callback_call(smartData->self, "input,type,color,request", 0);
+
+ return 0;
+}
+
+static Eina_Bool showColorPicker(Ewk_View_Smart_Data* smartData, int r, int g, int b, int a)
+{
+ static bool isFirstRun = true;
+
+ isColorPickerShown = true;
+
+ if (isFirstRun) {
+ // 1. Check initial value from html file.
+ EXPECT_EQ(r, initialRed);
+ EXPECT_EQ(g, initialGreen);
+ EXPECT_EQ(b, initialBlue);
+ EXPECT_EQ(a, initialAlpha);
+
+ isFirstRun = false;
+ } else {
+ // 4. Input values should be same as changed color.
+ EXPECT_EQ(r, changedRed);
+ EXPECT_EQ(g, changedGreen);
+ EXPECT_EQ(b, changedBlue);
+ EXPECT_EQ(a, changedAlpha);
+ }
+
+ // 2. Return after making a color picker.
+ ecore_timer_add(0.0, setColorPickerColor, smartData);
+ return true;
+}
+
+static Eina_Bool hideColorPicker(Ewk_View_Smart_Data*)
+{
+ // Test color picker is shown.
+ EXPECT_TRUE(isColorPickerShown);
+ isColorPickerShown = false;
+}
+
+TEST_F(EWK2UnitTestBase, ewk_view_color_picker_color_set)
+{
+ Ewk_View_Smart_Class* api = ewkViewClass();
+ api->input_picker_color_request = showColorPicker;
+ api->input_picker_color_dismiss = hideColorPicker;
+
+ loadUrlSync("data:text/html,<input type='color' value='#123456'>");
+
+ // Click input element.
+ mouseClick(30, 20);
+
+ bool handled = false;
+ evas_object_smart_callback_add(webView(), "input,type,color,request", onColorPickerDone, &handled);
+ while (!handled)
+ ecore_main_loop_iterate();
+
+ // Click input element again.
+ mouseClick(30, 20);
+
+ handled = false;
+ while (!handled)
+ ecore_main_loop_iterate();
+ evas_object_smart_callback_del(webView(), "input,type,color,request", onColorPickerDone);
+}
+#endif // ENABLE(INPUT_TYPE_COLOR)
diff --git a/Tools/ChangeLog b/Tools/ChangeLog
index 9a3edbaf0..6ae63d783 100644
--- a/Tools/ChangeLog
+++ b/Tools/ChangeLog
@@ -1,5 +1,44 @@
2012-09-20 Simon Hausmann <simon.hausmann@digia.com>
+ [Qt] Fix initial build
+
+ Reviewed by Tor Arne Vestbø.
+
+ When building QtWebKit the first time there is no qt_webkit.pri module pri file, and therefore
+ $$QT.webkit.name isn't set and so creating_module isn't set. That has all sorts of implications
+ causing incorrect linking for Makefile.api, etc.
+
+ Fix the determination by simply checking if MODULE is set, which only happens in api.pri.
+
+ * qmake/mkspecs/features/webkit_modules.prf:
+
+2012-09-20 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r129091.
+ http://trac.webkit.org/changeset/129091
+ https://bugs.webkit.org/show_bug.cgi?id=97205
+
+ It broke perf tests everywhere (Requested by Ossy on #webkit).
+
+ * Scripts/webkitpy/performance_tests/perftest.py:
+ (PerfTest):
+ (PerfTest.parse_output):
+ (PageLoadingPerfTest.run):
+ * Scripts/webkitpy/performance_tests/perftest_unittest.py:
+ (MainTest.test_parse_output):
+ (MainTest.test_parse_output_with_failing_line):
+ (TestPageLoadingPerfTest.test_run):
+ * Scripts/webkitpy/performance_tests/perftestsrunner.py:
+ (PerfTestsRunner._generate_and_show_results):
+ * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py:
+ (test_run_memory_test):
+ (test_run_with_json_output):
+ (test_run_with_description):
+ (test_run_with_slave_config_json):
+ (test_run_with_multiple_repositories):
+
+2012-09-20 Simon Hausmann <simon.hausmann@digia.com>
+
[Qt] QtWebKit module header includes private dependencies
Reviewed by Tor Arne Vestbø.
diff --git a/Tools/Scripts/webkitpy/performance_tests/perftest.py b/Tools/Scripts/webkitpy/performance_tests/perftest.py
index 79899f974..69d9363f4 100644
--- a/Tools/Scripts/webkitpy/performance_tests/perftest.py
+++ b/Tools/Scripts/webkitpy/performance_tests/perftest.py
@@ -114,8 +114,8 @@ class PerfTest(object):
_description_regex = re.compile(r'^Description: (?P<description>.*)$', re.IGNORECASE)
_result_classes = ['Time', 'JS Heap', 'Malloc']
_result_class_regex = re.compile(r'^(?P<resultclass>' + r'|'.join(_result_classes) + '):')
- _statistics_keys = ['avg', 'median', 'stdev', 'min', 'max', 'unit', 'values']
- _score_regex = re.compile(r'^(?P<key>' + r'|'.join(_statistics_keys) + r')\s+(?P<value>([0-9\.]+(,\s+)?)+)\s*(?P<unit>.*)')
+ _statistics_keys = ['avg', 'median', 'stdev', 'min', 'max', 'unit']
+ _score_regex = re.compile(r'^(?P<key>' + r'|'.join(_statistics_keys) + r')\s+(?P<value>[0-9\.]+)\s*(?P<unit>.*)')
def parse_output(self, output):
test_failed = False
@@ -138,10 +138,7 @@ class PerfTest(object):
score = self._score_regex.match(line)
if score:
key = score.group('key')
- if ', ' in score.group('value'):
- value = [float(number) for number in score.group('value').split(', ')]
- else:
- value = float(score.group('value'))
+ value = float(score.group('value'))
unit = score.group('unit')
name = test_name
if result_class != 'Time':
@@ -211,24 +208,23 @@ class PageLoadingPerfTest(PerfTest):
continue
test_times.append(output.test_time * 1000)
- sorted_test_times = sorted(test_times)
+ test_times = sorted(test_times)
# Compute the mean and variance using a numerically stable algorithm.
squareSum = 0
mean = 0
- valueSum = sum(sorted_test_times)
- for i, time in enumerate(sorted_test_times):
+ valueSum = sum(test_times)
+ for i, time in enumerate(test_times):
delta = time - mean
sweep = i + 1.0
mean += delta / sweep
squareSum += delta * delta * (i / sweep)
middle = int(len(test_times) / 2)
- results = {'values': test_times,
- 'avg': mean,
- 'min': sorted_test_times[0],
- 'max': sorted_test_times[-1],
- 'median': sorted_test_times[middle] if len(sorted_test_times) % 2 else (sorted_test_times[middle - 1] + sorted_test_times[middle]) / 2,
+ results = {'avg': mean,
+ 'min': min(test_times),
+ 'max': max(test_times),
+ 'median': test_times[middle] if len(test_times) % 2 else (test_times[middle - 1] + test_times[middle]) / 2,
'stdev': math.sqrt(squareSum),
'unit': 'ms'}
self.output_statistics(self.test_name(), results, '')
diff --git a/Tools/Scripts/webkitpy/performance_tests/perftest_unittest.py b/Tools/Scripts/webkitpy/performance_tests/perftest_unittest.py
index 27a4bb385..2b35e71ee 100755
--- a/Tools/Scripts/webkitpy/performance_tests/perftest_unittest.py
+++ b/Tools/Scripts/webkitpy/performance_tests/perftest_unittest.py
@@ -50,7 +50,6 @@ class MainTest(unittest.TestCase):
'Ignoring warm-up run (1115)',
'',
'Time:',
- 'values 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ms',
'avg 1100 ms',
'median 1101 ms',
'stdev 11 ms',
@@ -61,8 +60,7 @@ class MainTest(unittest.TestCase):
try:
test = PerfTest(None, 'some-test', '/path/some-dir/some-test')
self.assertEqual(test.parse_output(output),
- {'some-test': {'avg': 1100.0, 'median': 1101.0, 'min': 1080.0, 'max': 1120.0, 'stdev': 11.0, 'unit': 'ms',
- 'values': [i for i in range(1, 20)]}})
+ {'some-test': {'avg': 1100.0, 'median': 1101.0, 'min': 1080.0, 'max': 1120.0, 'stdev': 11.0, 'unit': 'ms'}})
finally:
pass
actual_stdout, actual_stderr, actual_logs = output_capture.restore_output()
@@ -78,7 +76,6 @@ class MainTest(unittest.TestCase):
'some-unrecognizable-line',
'',
'Time:'
- 'values 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ms',
'avg 1100 ms',
'median 1101 ms',
'stdev 11 ms',
@@ -112,13 +109,12 @@ class TestPageLoadingPerfTest(unittest.TestCase):
def test_run(self):
test = PageLoadingPerfTest(None, 'some-test', '/path/some-dir/some-test')
- driver = TestPageLoadingPerfTest.MockDriver(range(1, 21))
+ driver = TestPageLoadingPerfTest.MockDriver([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20])
output_capture = OutputCapture()
output_capture.capture_output()
try:
self.assertEqual(test.run(driver, None),
- {'some-test': {'max': 20000, 'avg': 11000.0, 'median': 11000, 'stdev': math.sqrt(570 * 1000 * 1000), 'min': 2000, 'unit': 'ms',
- 'values': [i * 1000 for i in range(2, 21)]}})
+ {'some-test': {'max': 20000, 'avg': 11000.0, 'median': 11000, 'stdev': math.sqrt(570 * 1000 * 1000), 'min': 2000, 'unit': 'ms'}})
finally:
actual_stdout, actual_stderr, actual_logs = output_capture.restore_output()
self.assertEqual(actual_stdout, '')
diff --git a/Tools/Scripts/webkitpy/performance_tests/perftestsrunner.py b/Tools/Scripts/webkitpy/performance_tests/perftestsrunner.py
index e01b2aedb..1ef3cf07e 100755
--- a/Tools/Scripts/webkitpy/performance_tests/perftestsrunner.py
+++ b/Tools/Scripts/webkitpy/performance_tests/perftestsrunner.py
@@ -191,11 +191,6 @@ class PerfTestsRunner(object):
if not output:
return self.EXIT_CODE_BAD_MERGE
results_page_path = self._host.filesystem.splitext(output_json_path)[0] + '.html'
- else:
- # FIXME: Remove this code once webkit-perf.appspot.com supported "values".
- for result in output['results'].values():
- if isinstance(result, dict) and 'values' in result:
- del result['values']
self._generate_output_files(output_json_path, results_page_path, output)
diff --git a/Tools/Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py b/Tools/Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py
index d46d7e73e..4ca9500ac 100755
--- a/Tools/Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py
+++ b/Tools/Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py
@@ -92,7 +92,6 @@ Ignoring warm-up run (1502)
1471
Time:
-values 1504, 1505, 1510, 1504, 1507, 1509, 1510, 1487, 1488, 1472, 1472, 1488, 1473, 1472, 1475, 1487, 1486, 1486, 1475, 1471 ms
avg 1489.05 ms
median 1487 ms
stdev 14.46 ms
@@ -104,7 +103,6 @@ max 1510 ms
Ignoring warm-up run (1115)
Time:
-values 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ms
avg 1100 ms
median 1101 ms
stdev 11 ms
@@ -116,7 +114,6 @@ max 1120 ms
Ignoring warm-up run (1115)
Time:
-values 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ms
avg 1100 ms
median 1101 ms
stdev 11 ms
@@ -124,7 +121,6 @@ min 1080 ms
max 1120 ms
JS Heap:
-values 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 bytes
avg 832000 bytes
median 829000 bytes
stdev 15000 bytes
@@ -132,7 +128,6 @@ min 811000 bytes
max 848000 bytes
Malloc:
-values 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 bytes
avg 532000 bytes
median 529000 bytes
stdev 13000 bytes
@@ -291,10 +286,9 @@ max 548000 bytes
'Finished: 0.1 s',
'', '']))
results = runner.load_output_json()[0]['results']
- values = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
- self.assertEqual(results['Parser/memory-test'], {'min': 1080.0, 'max': 1120.0, 'median': 1101.0, 'stdev': 11.0, 'avg': 1100.0, 'unit': 'ms', 'values': values})
- self.assertEqual(results['Parser/memory-test:JSHeap'], {'min': 811000.0, 'max': 848000.0, 'median': 829000.0, 'stdev': 15000.0, 'avg': 832000.0, 'unit': 'bytes', 'values': values})
- self.assertEqual(results['Parser/memory-test:Malloc'], {'min': 511000.0, 'max': 548000.0, 'median': 529000.0, 'stdev': 13000.0, 'avg': 532000.0, 'unit': 'bytes', 'values': values})
+ self.assertEqual(results['Parser/memory-test'], {'min': 1080.0, 'max': 1120.0, 'median': 1101.0, 'stdev': 11.0, 'avg': 1100.0, 'unit': 'ms'})
+ self.assertEqual(results['Parser/memory-test:JSHeap'], {'min': 811000.0, 'max': 848000.0, 'median': 829000.0, 'stdev': 15000.0, 'avg': 832000.0, 'unit': 'bytes'})
+ self.assertEqual(results['Parser/memory-test:Malloc'], {'min': 511000.0, 'max': 548000.0, 'median': 529000.0, 'stdev': 13000.0, 'avg': 532000.0, 'unit': 'bytes'})
def _test_run_with_json_output(self, runner, filesystem, upload_suceeds=False, expected_exit_code=0):
filesystem.write_text_file(runner._base_path + '/inspector/pass.html', 'some content')
@@ -336,12 +330,6 @@ max 548000 bytes
return logs
_event_target_wrapper_and_inspector_results = {
- "Bindings/event-target-wrapper": {"max": 1510, "avg": 1489.05, "median": 1487, "min": 1471, "stdev": 14.46, "unit": "ms",
- "values": [1504, 1505, 1510, 1504, 1507, 1509, 1510, 1487, 1488, 1472, 1472, 1488, 1473, 1472, 1475, 1487, 1486, 1486, 1475, 1471]},
- "inspector/pass.html:group_name:test_name": 42}
-
- # FIXME: Remove this variance once perf-o-matic supported "values".
- _event_target_wrapper_and_inspector_results_without_values = {
"Bindings/event-target-wrapper": {"max": 1510, "avg": 1489.05, "median": 1487, "min": 1471, "stdev": 14.46, "unit": "ms"},
"inspector/pass.html:group_name:test_name": 42}
@@ -350,7 +338,7 @@ max 548000 bytes
'--test-results-server=some.host'])
self._test_run_with_json_output(runner, port.host.filesystem, upload_suceeds=True)
self.assertEqual(runner.load_output_json(), {
- "timestamp": 123456789, "results": self._event_target_wrapper_and_inspector_results_without_values,
+ "timestamp": 123456789, "results": self._event_target_wrapper_and_inspector_results,
"webkit-revision": "5678", "branch": "webkit-trunk"})
def test_run_with_description(self):
@@ -359,7 +347,7 @@ max 548000 bytes
self._test_run_with_json_output(runner, port.host.filesystem, upload_suceeds=True)
self.assertEqual(runner.load_output_json(), {
"timestamp": 123456789, "description": "some description",
- "results": self._event_target_wrapper_and_inspector_results_without_values,
+ "results": self._event_target_wrapper_and_inspector_results,
"webkit-revision": "5678", "branch": "webkit-trunk"})
def create_runner_and_setup_results_template(self, args=[]):
@@ -449,7 +437,7 @@ max 548000 bytes
port.host.filesystem.write_text_file('/mock-checkout/slave-config.json', '{"key": "value"}')
self._test_run_with_json_output(runner, port.host.filesystem, upload_suceeds=True)
self.assertEqual(runner.load_output_json(), {
- "timestamp": 123456789, "results": self._event_target_wrapper_and_inspector_results_without_values,
+ "timestamp": 123456789, "results": self._event_target_wrapper_and_inspector_results,
"webkit-revision": "5678", "branch": "webkit-trunk", "key": "value"})
def test_run_with_bad_slave_config_json(self):
@@ -468,7 +456,7 @@ max 548000 bytes
port.repository_paths = lambda: [('webkit', '/mock-checkout'), ('some', '/mock-checkout/some')]
self._test_run_with_json_output(runner, port.host.filesystem, upload_suceeds=True)
self.assertEqual(runner.load_output_json(), {
- "timestamp": 123456789, "results": self._event_target_wrapper_and_inspector_results_without_values,
+ "timestamp": 123456789, "results": self._event_target_wrapper_and_inspector_results,
"webkit-revision": "5678", "some-revision": "5678", "branch": "webkit-trunk"})
def test_run_with_upload_json(self):
diff --git a/Tools/qmake/mkspecs/features/webkit_modules.prf b/Tools/qmake/mkspecs/features/webkit_modules.prf
index a156bcb36..a5ab9279b 100644
--- a/Tools/qmake/mkspecs/features/webkit_modules.prf
+++ b/Tools/qmake/mkspecs/features/webkit_modules.prf
@@ -37,7 +37,7 @@ for(library, WEBKIT) {
!contains(QT, webkit): DEFINES += STATICALLY_LINKED_WITH_$$library
}
-contains(TARGET, $$resolveFinalLibraryName($${QT.webkit.name})): CONFIG += creating_module
+!isEmpty(MODULE): CONFIG += creating_module
creating_module {
# Sanitize PKGCONFIG as we don't want any of these libraries