From 5ddde30071f639962dd557c453f2ad01f8f0fd00 Mon Sep 17 00:00:00 2001 From: Kristian Monsen Date: Wed, 8 Sep 2010 12:18:00 +0100 Subject: Merge WebKit at r66666 : Initial merge by git. Change-Id: I57dedeb49859adc9c539e760f0e749768c66626f --- WebKit/ChangeLog | 8 + WebKit/StringsNotToBeLocalized.txt | 1 + WebKit/chromium/ChangeLog | 404 +++++++ WebKit/chromium/DEPS | 2 +- WebKit/chromium/WebKit.gyp | 19 +- WebKit/chromium/WebKit.gypi | 3 - WebKit/chromium/features.gypi | 5 +- WebKit/chromium/public/WebBindings.h | 5 + WebKit/chromium/public/WebClipboard.h | 8 +- WebKit/chromium/public/WebElement.h | 6 + WebKit/chromium/public/WebFrame.h | 2 + WebKit/chromium/public/WebIDBDatabase.h | 11 +- WebKit/chromium/public/WebInputElement.h | 1 + WebKit/chromium/public/WebNotification.h | 3 + WebKit/chromium/public/WebRuntimeFeatures.h | 6 + WebKit/chromium/public/WebViewClient.h | 3 + WebKit/chromium/src/AssertMatchingEnums.cpp | 7 + WebKit/chromium/src/AsyncFileSystemChromium.cpp | 104 ++ WebKit/chromium/src/AsyncFileSystemChromium.h | 70 ++ WebKit/chromium/src/ChromeClientImpl.cpp | 19 +- WebKit/chromium/src/ChromeClientImpl.h | 6 +- WebKit/chromium/src/ChromiumBridge.cpp | 8 +- WebKit/chromium/src/IDBCursorBackendProxy.cpp | 5 +- WebKit/chromium/src/IDBCursorBackendProxy.h | 2 +- WebKit/chromium/src/IDBDatabaseProxy.cpp | 5 + WebKit/chromium/src/IDBDatabaseProxy.h | 1 + WebKit/chromium/src/LocalFileSystemChromium.cpp | 69 ++ WebKit/chromium/src/WebBindings.cpp | 27 + WebKit/chromium/src/WebElement.cpp | 5 + WebKit/chromium/src/WebEntities.cpp | 51 +- WebKit/chromium/src/WebFileSystemCallbacksImpl.cpp | 9 +- WebKit/chromium/src/WebFileSystemCallbacksImpl.h | 6 +- WebKit/chromium/src/WebFrameImpl.cpp | 7 +- WebKit/chromium/src/WebFrameImpl.h | 1 + WebKit/chromium/src/WebIDBCursorImpl.cpp | 2 +- WebKit/chromium/src/WebIDBDatabaseImpl.cpp | 5 + WebKit/chromium/src/WebIDBDatabaseImpl.h | 1 + WebKit/chromium/src/WebInputElement.cpp | 5 + WebKit/chromium/src/WebNotification.cpp | 6 + WebKit/chromium/src/WebRuntimeFeatures.cpp | 32 + WebKit/chromium/src/WebScrollbarImpl.cpp | 4 +- WebKit/chromium/src/WebSearchableFormData.cpp | 12 +- WebKit/chromium/src/WebViewImpl.cpp | 15 +- WebKit/chromium/src/js/DevTools.js | 37 +- WebKit/chromium/src/js/HeapProfilerPanel.js | 966 ----------------- WebKit/chromium/src/js/ProfilerAgent.js | 138 --- WebKit/chromium/src/js/ProfilerProcessor.js | 543 ---------- WebKit/chromium/src/js/devTools.css | 112 -- WebKit/chromium/src/win/WebInputEventFactory.cpp | 10 +- WebKit/efl/CMakeListsEfl.txt | 11 + WebKit/efl/ChangeLog | 147 +++ .../FullscreenVideoControllerEfl.cpp | 197 ++++ .../WebCoreSupport/FullscreenVideoControllerEfl.h | 91 ++ WebKit/efl/ewk/ewk_frame.cpp | 62 +- WebKit/efl/ewk/ewk_frame.h | 1 + WebKit/efl/ewk/ewk_main.cpp | 94 +- WebKit/efl/ewk/ewk_view.cpp | 83 +- WebKit/efl/ewk/ewk_view.h | 8 + WebKit/gtk/ChangeLog | 115 ++ WebKit/gtk/NEWS | 15 + WebKit/gtk/WebCoreSupport/EditorClientGtk.h | 2 - .../gtk/WebCoreSupport/FullscreenVideoController.h | 7 - WebKit/gtk/docs/webkitgtk-docs.sgml | 9 + WebKit/gtk/po/ChangeLog | 82 ++ WebKit/gtk/po/es.po | 37 +- WebKit/gtk/po/nb.po | 1104 ++++++++++++++++++++ WebKit/gtk/tests/testcopyandpaste.c | 5 +- WebKit/gtk/webkit/webkitwebview.cpp | 35 +- WebKit/mac/Carbon/HIViewAdapter.m | 1 + WebKit/mac/Carbon/HIWebView.mm | 6 +- WebKit/mac/ChangeLog | 262 +++++ WebKit/mac/Configurations/FeatureDefines.xcconfig | 3 +- WebKit/mac/Configurations/Version.xcconfig | 2 +- WebKit/mac/Misc/QuickDrawCompatibility.h | 96 ++ WebKit/mac/Plugins/WebNetscapePluginView.mm | 1 + WebKit/mac/WebCoreSupport/WebChromeClient.h | 6 + WebKit/mac/WebCoreSupport/WebChromeClient.mm | 71 ++ WebKit/mac/WebCoreSupport/WebEditorClient.h | 14 +- WebKit/mac/WebCoreSupport/WebEditorClient.mm | 46 + WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm | 20 +- WebKit/mac/WebCoreSupport/WebSystemInterface.mm | 1 + WebKit/mac/WebInspector/WebInspectorFrontend.mm | 2 +- WebKit/mac/WebView/WebDocumentInternal.h | 1 + WebKit/mac/WebView/WebFrame.mm | 116 +- WebKit/mac/WebView/WebFrameInternal.h | 4 +- WebKit/mac/WebView/WebFramePrivate.h | 13 +- WebKit/mac/WebView/WebHTMLView.mm | 92 +- WebKit/mac/WebView/WebHTMLViewInternal.h | 2 +- WebKit/mac/WebView/WebPDFView.mm | 5 + WebKit/mac/WebView/WebPreferenceKeysPrivate.h | 1 + WebKit/mac/WebView/WebPreferences.mm | 11 + WebKit/mac/WebView/WebPreferencesPrivate.h | 6 + WebKit/mac/WebView/WebUIDelegatePrivate.h | 15 + WebKit/mac/WebView/WebView.mm | 17 +- WebKit/mac/WebView/WebViewPrivate.h | 1 + WebKit/qt/Api/qwebelement.cpp | 2 +- WebKit/qt/Api/qwebframe.cpp | 2 +- WebKit/qt/Api/qwebpage.cpp | 37 +- WebKit/qt/Api/qwebpage.h | 6 +- WebKit/qt/Api/qwebplugindatabase.cpp | 4 + WebKit/qt/Api/qwebsettings.cpp | 9 + WebKit/qt/Api/qwebview.cpp | 6 +- WebKit/qt/ChangeLog | 229 ++++ WebKit/qt/WebCoreSupport/ChromeClientQt.cpp | 16 +- WebKit/qt/WebCoreSupport/ChromeClientQt.h | 2 +- .../qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp | 2 +- .../GeolocationPermissionClientQt.cpp | 98 ++ .../WebCoreSupport/GeolocationPermissionClientQt.h | 60 ++ WebKit/qt/tests/qwebframe/tst_qwebframe.cpp | 12 +- WebKit/qt/tests/qwebpage/tst_qwebpage.cpp | 15 +- WebKit/qt/tests/qwebview/tst_qwebview.cpp | 110 +- WebKit/win/ChangeLog | 93 ++ WebKit/win/Interfaces/IWebFramePrivate.idl | 5 +- WebKit/win/WebFrame.cpp | 4 +- WebKit/win/WebView.cpp | 3 +- WebKit/wince/ChangeLog | 120 +++ .../WebCoreSupport/ContextMenuClientWinCE.cpp | 91 ++ .../wince/WebCoreSupport/ContextMenuClientWinCE.h | 57 + WebKit/wince/WebCoreSupport/DragClientWinCE.cpp | 72 ++ WebKit/wince/WebCoreSupport/DragClientWinCE.h | 48 + WebKit/wince/WebCoreSupport/EditorClientWinCE.cpp | 315 ++++++ WebKit/wince/WebCoreSupport/EditorClientWinCE.h | 108 ++ .../wince/WebCoreSupport/InspectorClientWinCE.cpp | 84 ++ WebKit/wince/WebCoreSupport/InspectorClientWinCE.h | 59 ++ WebKit/wx/ChangeLog | 56 + WebKit/wx/WebEdit.cpp | 33 +- WebKit/wx/WebEdit.h | 3 +- WebKit/wx/WebFrame.cpp | 10 +- WebKit/wx/WebFrame.h | 6 +- WebKit/wx/WebKitSupport/EditorClientWx.cpp | 19 +- WebKit/wx/WebSettings.h | 2 + WebKit/wx/WebView.cpp | 35 +- WebKit/wx/WebView.h | 51 +- WebKit/wx/bindings/python/webview.i | 53 +- 134 files changed, 5357 insertions(+), 2277 deletions(-) create mode 100644 WebKit/chromium/src/AsyncFileSystemChromium.cpp create mode 100644 WebKit/chromium/src/AsyncFileSystemChromium.h create mode 100644 WebKit/chromium/src/LocalFileSystemChromium.cpp delete mode 100644 WebKit/chromium/src/js/HeapProfilerPanel.js delete mode 100644 WebKit/chromium/src/js/ProfilerAgent.js delete mode 100644 WebKit/chromium/src/js/ProfilerProcessor.js create mode 100644 WebKit/efl/WebCoreSupport/FullscreenVideoControllerEfl.cpp create mode 100644 WebKit/efl/WebCoreSupport/FullscreenVideoControllerEfl.h create mode 100644 WebKit/gtk/po/nb.po create mode 100644 WebKit/mac/Misc/QuickDrawCompatibility.h create mode 100644 WebKit/qt/WebCoreSupport/GeolocationPermissionClientQt.cpp create mode 100644 WebKit/qt/WebCoreSupport/GeolocationPermissionClientQt.h create mode 100644 WebKit/wince/ChangeLog create mode 100644 WebKit/wince/WebCoreSupport/ContextMenuClientWinCE.cpp create mode 100644 WebKit/wince/WebCoreSupport/ContextMenuClientWinCE.h create mode 100644 WebKit/wince/WebCoreSupport/DragClientWinCE.cpp create mode 100644 WebKit/wince/WebCoreSupport/DragClientWinCE.h create mode 100644 WebKit/wince/WebCoreSupport/EditorClientWinCE.cpp create mode 100644 WebKit/wince/WebCoreSupport/EditorClientWinCE.h create mode 100644 WebKit/wince/WebCoreSupport/InspectorClientWinCE.cpp create mode 100644 WebKit/wince/WebCoreSupport/InspectorClientWinCE.h (limited to 'WebKit') diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog index 9747ffa..898fc8d 100644 --- a/WebKit/ChangeLog +++ b/WebKit/ChangeLog @@ -1,3 +1,11 @@ +2010-08-30 Andy Estes + + Reviewed by Darin Adler. + + Add 'application/x-snkp' to StringsNotToBeLocalized.txt. + + * StringsNotToBeLocalized.txt: + 2010-08-20 Lucas De Marchi Unreviewed build fix. diff --git a/WebKit/StringsNotToBeLocalized.txt b/WebKit/StringsNotToBeLocalized.txt index d23cafa..bf1e575 100644 --- a/WebKit/StringsNotToBeLocalized.txt +++ b/WebKit/StringsNotToBeLocalized.txt @@ -540,6 +540,7 @@ "application/rss+xml" "application/x-apple-msg-attachment" "application/x-java-applet" +"application/x-snkp" "application/x-webarchive" "application/xhtml+xml" "attributeKeys" diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog index 6b0b3fa..527e8ef 100644 --- a/WebKit/chromium/ChangeLog +++ b/WebKit/chromium/ChangeLog @@ -1,3 +1,407 @@ +2010-09-02 Ilya Sherman + + Reviewed by Eric Seidel. + + Exposing computing an element's inherited language, per the DOM, in the + Chromium API -- primarily for use with autofill i18n. + https://bugs.webkit.org/show_bug.cgi?id=44803 + + * public/WebElement.h: + * src/WebElement.cpp: + (WebKit::WebElement::computeInheritedLanguage): + +2010-09-01 Mikhail Naganov + + Reviewed by Yury Semikhatsky. + + Remove dependency on JS files for V8 logs processing. + + https://bugs.webkit.org/show_bug.cgi?id=45045 + + * WebKit.gyp: + +2010-09-01 Kent Tamura + + Unreviewed, rolling out r66576. + http://trac.webkit.org/changeset/66576 + https://bugs.webkit.org/show_bug.cgi?id=45016 + + This change is not needed. + + * public/WebKitClient.h: + +2010-08-31 Dave Hyatt + + Reviewed by Sam Weinig. + + https://bugs.webkit.org/show_bug.cgi?id=44863, disentangle style recalc from layout, so that + the former can occur in more places without having to do the latter. + + * src/WebFrameImpl.cpp: + (WebKit::WebFrameImpl::layout): + +2010-08-31 Kent Tamura + + Reviewed by Dimitri Glazkov. + + [Chromium] Add WebKitClient::callOnMainThreadWithDelay() + https://bugs.webkit.org/show_bug.cgi?id=45016 + + It is required to remove base/task.h and base/timer.h dependency + from DRT/Chromium. + + * public/WebKitClient.h: + (WebKit::WebKitClient::callOnMainThreadWithDelay): Added. + +2010-08-31 Kinuko Yasuda + + Reviewed by Jian Li. + + Add LocalFileSystem.requestFileSystem interface to DOMWindow + https://bugs.webkit.org/show_bug.cgi?id=44734 + + * public/WebRuntimeFeatures.h: + * src/WebRuntimeFeatures.cpp: + (WebKit::WebRuntimeFeatures::enableFileSystem): + (WebKit::WebRuntimeFeatures::isFileSystemEnabled): + +2010-08-24 Jeremy Orlow + + Reviewed by Steve Block. + + Implement the rest of IDBCursors + make them persistent + https://bugs.webkit.org/show_bug.cgi?id=44546 + + * src/IDBCursorBackendProxy.cpp: + (WebCore::IDBCursorBackendProxy::value): + * src/IDBCursorBackendProxy.h: + * src/WebIDBCursorImpl.cpp: + (WebKit::WebIDBCursorImpl::value): + +2010-08-27 John Gregg + + Reviewed by David Levin. + + Notifications should support a click event + https://bugs.webkit.org/show_bug.cgi?id=44800 + + * public/WebNotification.h: + * src/WebNotification.cpp: + (WebKit::WebNotification::dispatchClickEvent): + +2010-08-31 Jian Li + + Reviewed by Darin Fisher. + + Switch the Blob implementation to using the blob data registration model + https://bugs.webkit.org/show_bug.cgi?id=44389 + + * src/WebSearchableFormData.cpp: + (WebCore::HasSuitableTextElement): + +2010-08-30 Nat Duca + + Reviewed by Adam Barth. + + [chromium] Accelerated Compositing: Artifacts/blink when enabling compositor. + https://bugs.webkit.org/show_bug.cgi?id=44196 + + If accelerated compositing enables after a page loads, the dirtied + portion of the screen will be only a subset of the full screen, + leading to artefacts. Avoid these artefacts by invalidating the + visible content rect on compositor initialization. + + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::setIsAcceleratedCompositingActive): + +2010-08-30 Kinuko Yasuda + + Reviewed by Darin Fisher. + + Add DOMFileSystem implementation to support Entry manipulation operations + https://bugs.webkit.org/show_bug.cgi?id=44732 + + Fixed virtual-path / platform-path conversion timing. (The conversion needs to be done before calling AsyncFileSystem methods to support cross-filesystem operations.) + + * src/AsyncFileSystemChromium.cpp: + (WebCore::AsyncFileSystemChromium::move): + (WebCore::AsyncFileSystemChromium::copy): + (WebCore::AsyncFileSystemChromium::remove): + (WebCore::AsyncFileSystemChromium::readMetadata): + (WebCore::AsyncFileSystemChromium::createFile): + (WebCore::AsyncFileSystemChromium::createDirectory): + (WebCore::AsyncFileSystemChromium::fileExists): + (WebCore::AsyncFileSystemChromium::directoryExists): + (WebCore::AsyncFileSystemChromium::readDirectory): + +2010-08-30 Sheriff Bot + + Unreviewed, rolling out r66198. + http://trac.webkit.org/changeset/66198 + https://bugs.webkit.org/show_bug.cgi?id=44856 + + It made tests crash on Qt bot (Requested by Ossy_ on #webkit). + + * src/InspectorFrontendClientImpl.cpp: + * src/InspectorFrontendClientImpl.h: + +2010-08-29 Kent Tamura + + Reviewed by Darin Adler. + + Introduce isValidValue(const String&) of HTMLInputElement and HTMLTextAreaElement + https://bugs.webkit.org/show_bug.cgi?id=43537 + + * public/WebInputElement.h: + * src/WebInputElement.cpp: + (WebKit::WebInputElement::isValidValue): + +2010-08-29 Kent Tamura + + Reviewed by Dimitri Glazkov. + + [DRT/Chromium] Remove dependency to base/keyboard_codes.h + https://bugs.webkit.org/show_bug.cgi?id=44847 + + * DEPS: Roll Chromium revision to 57823 to have a webkit_support change. + +2010-08-28 Jian Li + + Reviewed by Darin Fisher. + + [chromium] Add webkit_support.gyp:blob to WebKit.gyp + https://bugs.webkit.org/show_bug.cgi?id=44829 + + Also bump up chromium revision in DEPS in order to pick up + the revision that contains blob change. + + * DEPS: + * WebKit.gyp: + +2010-08-28 Chris Guillory + + Reviewed by Chris Fleizach. + + Add AX notification for childrenChanged + https://bugs.webkit.org/show_bug.cgi?id=44472 + + * public/WebViewClient.h: + (WebKit::WebViewClient::didChangeAccessibilityObjectChildren): + * src/ChromeClientImpl.cpp: + (WebKit::ChromeClientImpl::didChangeAccessibilityObjectChildren): + * src/ChromeClientImpl.h: + +2010-08-27 Daniel Cheng + + Reviewed by Tony Chang. + + [chromium] Add new WebClipboard method for setting generic data in copy/cut handlers. + https://bugs.webkit.org/show_bug.cgi?id=42121 + + * public/WebClipboard.h: + (WebKit::WebClipboard::writeData): + (WebKit::WebClipboard::readFilenames): + * src/ChromiumBridge.cpp: + (WebCore::ChromiumBridge::clipboardWriteData): + +2010-08-27 Kinuko Yasuda + + Reviewed by Dumitru Daniliuc. + + [chromium] Add chromium-side of AsyncFileSystem implementation + https://bugs.webkit.org/show_bug.cgi?id=44434 + + * WebKit.gyp: + * src/AssertMatchingEnums.cpp: Added assertions. + * src/AsyncFileSystemChromium.cpp: Added. + * src/AsyncFileSystemChromium.h: Added. + * src/LocalFileSystemChromium.cpp: Added. + * src/WebFileSystemCallbacksImpl.cpp: + (WebKit::WebFileSystemCallbacksImpl::WebFileSystemCallbacksImpl): + * src/WebFileSystemCallbacksImpl.h: + +2010-08-27 Michael Nordman + + Reviewed by David Levin. + + https://bugs.webkit.org/show_bug.cgi?id=44133 + WebKitAPI to allow runtime enablement of XmlHttpRequest.responseBlob. + + * features.gypi: Define ENABLE_XHR_RESPONSE_BLOB. + * public/WebRuntimeFeatures.h: + * src/WebRuntimeFeatures.cpp: + (WebKit::WebRuntimeFeatures::enableXHRResponseBlob): + (WebKit::WebRuntimeFeatures::isXHRResponseBlobEnabled): + +2010-08-25 Jeremy Orlow + + Reviewed by Steve Block. + + Add setVersion to IndexedDB + https://bugs.webkit.org/show_bug.cgi?id=44630 + + * public/WebIDBDatabase.h: + (WebKit::WebIDBDatabase::createObjectStore): + (WebKit::WebIDBDatabase::removeObjectStore): + (WebKit::WebIDBDatabase::setVersion): + * src/IDBDatabaseProxy.cpp: + (WebCore::IDBDatabaseProxy::setVersion): + * src/IDBDatabaseProxy.h: + * src/WebIDBDatabaseImpl.cpp: + (WebKit::WebIDBDatabaseImpl::setVersion): + * src/WebIDBDatabaseImpl.h: + +2010-08-27 Yury Semikhatsky + + Reviewed by Pavel Feldman. + + REGRESSION: Crash occurs at objc_msgSend when closing a window that is displaying the web inspector + https://bugs.webkit.org/show_bug.cgi?id=44230 + + * src/InspectorFrontendClientImpl.cpp: + (WebKit::InspectorFrontendClientImpl::disconnectFromBackend): + * src/InspectorFrontendClientImpl.h: + +2010-08-27 Kent Tamura + + Reviewed by Pavel Feldman. + + [DRT/Chromium] Fix inspector test failures + https://bugs.webkit.org/show_bug.cgi?id=44748 + + * DEPS: Update Chromium revision to 57605 to have a webkit_support change. + +2010-08-26 Dumitru Daniliuc + + Unreviewed, Chromium build fix. + + * src/WebFrameImpl.cpp: + (WebKit::WebFrameImpl::markerTextForListItem): + +2010-08-26 Dumitru Daniliuc + + Reviewed by Darin Fisher. + + Add support for markerTextForListItem() to Chromium's LayoutTestController. + https://bugs.webkit.org/show_bug.cgi?id=44724 + + * public/WebBindings.h: + * public/WebFrame.h: + * src/WebBindings.cpp: + (WebKit::getElementImpl): + (WebKit::WebBindings::getElement): + * src/WebFrameImpl.cpp: + (WebKit::WebFrameImpl::markerTextForListItem): + * src/WebFrameImpl.h: + +2010-08-26 James Robinson + + Reviewed by Darin Fisher. + + [chromium] Remove the USE(GLES2_RENDERING) define and associated code + https://bugs.webkit.org/show_bug.cgi?id=43761 + + Removes API support to grab a GLES2Context from within WebCore. The compositor + has a special codepath to grab its GLES2Context and no other codepaths + need access to a raw context. Accelerated drawing elsewhere will go through + GraphicsContext3D. + + * src/ChromeClientImpl.cpp: + * src/ChromeClientImpl.h: + +2010-08-26 Ryosuke Niwa + + Reviewed by Eric Seidel. + + [chromium] WebEntities is broken + https://bugs.webkit.org/show_bug.cgi?id=44708 + + For serialization purposes, we don't need to convert all entity references. + This patch modifies WebEntities::WebEntities to use hard-coded entity lists for both HTML and XML, + and deletes populateMapFromXMLEntities and populateMapFromHTMLEntityTable. + + No tests are added since the code is tested in DomSerializerTests + + * src/WebEntities.cpp: + (WebKit::): + (WebKit::WebEntities::WebEntities): + +2010-08-26 Peter Kasting + + Reviewed by Dimitri Glazkov. + + Misc. cleanup split off from bug 32356. + https://bugs.webkit.org/show_bug.cgi?id=44696 + + * src/WebScrollbarImpl.cpp: + (WebKit::WebScrollbarImpl::setLocation): + (WebKit::WebScrollbarImpl::onMouseWheel): + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::propagateScroll): + * src/win/WebInputEventFactory.cpp: + (WebKit::WebInputEventFactory::mouseWheelEvent): + +2010-08-26 Mikhail Naganov + + Reviewed by Pavel Feldman. + + Web Inspector: Store heap snapshots in InspectorProfilerAgent. + + Change the way heap snapshots are transported to Inspector + to be aligned with CPU profiles. As a result, the Heap snapshots + view of Profiles panel was upstreamed into WebCore. + + https://bugs.webkit.org/show_bug.cgi?id=44531 + + * DEPS: + * WebKit.gypi: + * src/js/DevTools.js: + (): + * src/js/HeapProfilerPanel.js: Removed. + * src/js/ProfilerAgent.js: Removed. + * src/js/ProfilerProcessor.js: Removed. + * src/js/devTools.css: + +2010-08-26 Yury Semikhatsky + + Unreviewed. Revert r66103 since Qt tests are failing. + + * src/InspectorFrontendClientImpl.cpp: + * src/InspectorFrontendClientImpl.h: + +2010-08-26 Yury Semikhatsky + + Reviewed by Pavel Feldman. + + REGRESSION: Crash occurs at objc_msgSend when closing a window that is displaying the web inspector + https://bugs.webkit.org/show_bug.cgi?id=44230 + + * src/InspectorFrontendClientImpl.cpp: + (WebKit::InspectorFrontendClientImpl::disconnectFromBackend): + * src/InspectorFrontendClientImpl.h: + +2010-08-26 Kent Tamura + + Reviewed by Tony Chang. + + [DRT/Chromium] Enable DEVICE_ORIENTATION + https://bugs.webkit.org/show_bug.cgi?id=44587 + + * features.gypi: + +2010-08-25 Ilya Tikhonovsky + + Reviewed by Pavel Feldman. + + WebInspector: as far as we have 'seq' property in the each inspector message + it would be better to remove explicit callId argument from Inspector.idl functions + declarations. + https://bugs.webkit.org/show_bug.cgi?id=44617 + + * src/js/ProfilerAgent.js: + (devtools.ProfilerAgent.prototype._getNextLogLines.else.delayedRequest): + (devtools.ProfilerAgent.prototype._getNextLogLines): + 2010-08-25 Sheriff Bot Unreviewed, rolling out r66074. diff --git a/WebKit/chromium/DEPS b/WebKit/chromium/DEPS index c189f59..6252f08 100644 --- a/WebKit/chromium/DEPS +++ b/WebKit/chromium/DEPS @@ -32,7 +32,7 @@ vars = { 'chromium_svn': 'http://src.chromium.org/svn/trunk/src', - 'chromium_rev': '57298', + 'chromium_rev': '57823', } deps = { diff --git a/WebKit/chromium/WebKit.gyp b/WebKit/chromium/WebKit.gyp index 9443d8e..c75cac7 100644 --- a/WebKit/chromium/WebKit.gyp +++ b/WebKit/chromium/WebKit.gyp @@ -49,13 +49,6 @@ # for copying them to resource dir, and for generating 'devtools.html' file. 'devtools_files': [ '<@(devtools_css_files)', - '../../WebKit/chromium/v8/tools/codemap.js', - '../../WebKit/chromium/v8/tools/consarray.js', - '../../WebKit/chromium/v8/tools/csvparser.js', - '../../WebKit/chromium/v8/tools/logreader.js', - '../../WebKit/chromium/v8/tools/profile.js', - '../../WebKit/chromium/v8/tools/profile_view.js', - '../../WebKit/chromium/v8/tools/splaytree.js', '<@(devtools_js_files)', ], },{ @@ -64,13 +57,6 @@ 'devtools_files': [ '<@(devtools_css_files)', - '../../../../v8/tools/codemap.js', - '../../../../v8/tools/consarray.js', - '../../../../v8/tools/csvparser.js', - '../../../../v8/tools/logreader.js', - '../../../../v8/tools/profile.js', - '../../../../v8/tools/profile_view.js', - '../../../../v8/tools/splaytree.js', '<@(devtools_js_files)', ], }], @@ -292,6 +278,8 @@ 'src/ApplicationCacheHost.cpp', 'src/ApplicationCacheHostInternal.h', 'src/AssertMatchingEnums.cpp', + 'src/AsyncFileSystemChromium.cpp', + 'src/AsyncFileSystemChromium.h', 'src/AutoFillPopupMenuClient.cpp', 'src/AutoFillPopupMenuClient.h', 'src/BackForwardListClientImpl.cpp', @@ -363,6 +351,7 @@ 'src/x11/WebScreenInfoFactory.cpp', 'src/mac/WebInputEventFactory.mm', 'src/mac/WebScreenInfoFactory.mm', + 'src/LocalFileSystemChromium.cpp', 'src/LocalizedStrings.cpp', 'src/MediaPlayerPrivateChromium.cpp', 'src/NotificationPresenterImpl.h', @@ -736,6 +725,7 @@ '<(chromium_src_dir)/base/base.gyp:base_i18n', '<(chromium_src_dir)/base/base.gyp:test_support_base', '<(chromium_src_dir)/gpu/gpu.gyp:gles2_c_lib', + '<(chromium_src_dir)/webkit/support/webkit_support.gyp:blob', '<(chromium_src_dir)/webkit/support/webkit_support.gyp:webkit_support', ], 'include_dirs': [ @@ -805,6 +795,7 @@ 'webkit', '../../JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:wtf_config', '<(chromium_src_dir)/third_party/icu/icu.gyp:icuuc', + '<(chromium_src_dir)/webkit/support/webkit_support.gyp:blob', '<(chromium_src_dir)/webkit/support/webkit_support.gyp:copy_npapi_layout_test_plugin', '<(chromium_src_dir)/webkit/support/webkit_support.gyp:webkit_support', '<(chromium_src_dir)/gpu/gpu.gyp:gles2_c_lib' diff --git a/WebKit/chromium/WebKit.gypi b/WebKit/chromium/WebKit.gypi index b45e3e7..4c6ac37 100644 --- a/WebKit/chromium/WebKit.gypi +++ b/WebKit/chromium/WebKit.gypi @@ -33,9 +33,6 @@ # List of DevTools source files, ordered by dependencies. It is used both # for copying them to resource dir, and for generating 'devtools.html' file. 'devtools_js_files': [ - 'src/js/ProfilerAgent.js', - 'src/js/ProfilerProcessor.js', - 'src/js/HeapProfilerPanel.js', 'src/js/DevTools.js', 'src/js/DevToolsHostStub.js', 'src/js/Tests.js', diff --git a/WebKit/chromium/features.gypi b/WebKit/chromium/features.gypi index 61e5806..df277d6 100644 --- a/WebKit/chromium/features.gypi +++ b/WebKit/chromium/features.gypi @@ -46,7 +46,7 @@ 'ENABLE_DASHBOARD_SUPPORT=0', 'ENABLE_DATABASE=1', 'ENABLE_DATAGRID=0', - 'ENABLE_DEVICE_ORIENTATION=0', + 'ENABLE_DEVICE_ORIENTATION=1', 'ENABLE_DIRECTORY_UPLOAD=1', 'ENABLE_DOM_STORAGE=1', 'ENABLE_EVENTSOURCE=1', @@ -81,12 +81,13 @@ 'ENABLE_WEB_SOCKETS=1', 'ENABLE_WEB_TIMING=1', 'ENABLE_WORKERS=1', + 'ENABLE_XHR_RESPONSE_BLOB=1', 'ENABLE_XPATH=1', 'ENABLE_XSLT=1', ], 'conditions': [ - ['OS=="win" or OS=="linux"', { + ['OS=="win" or OS=="linux" or OS=="mac"', { 'feature_defines': [ 'WTF_USE_ACCELERATED_COMPOSITING=1', 'ENABLE_3D_RENDERING=1', diff --git a/WebKit/chromium/public/WebBindings.h b/WebKit/chromium/public/WebBindings.h index 0fa3bfd..bca4095 100644 --- a/WebKit/chromium/public/WebBindings.h +++ b/WebKit/chromium/public/WebBindings.h @@ -37,6 +37,7 @@ namespace WebKit { class WebDragData; +class WebElement; class WebRange; // A haphazard collection of functions for dealing with plugins. @@ -139,6 +140,10 @@ public: // If so, return that range as a WebRange object. WEBKIT_API static bool getRange(NPObject* range, WebRange*); + // Return true (success) if the given npobj is an element. + // If so, return that element as a WebElement object. + WEBKIT_API static bool getElement(NPObject* element, WebElement*); + // Exceptions ------------------------------------------------------------- typedef void (ExceptionHandler)(void* data, const NPUTF8* message); diff --git a/WebKit/chromium/public/WebClipboard.h b/WebKit/chromium/public/WebClipboard.h index 6755d96..861c522 100644 --- a/WebKit/chromium/public/WebClipboard.h +++ b/WebKit/chromium/public/WebClipboard.h @@ -71,7 +71,10 @@ public: const WebURL&, const WebString& title) { } virtual void writeImage( const WebImage&, const WebURL&, const WebString& title) { } - virtual void writeData(const WebDragData&) { } + virtual void writeData( + const WebString& type, + const WebString& data, + const WebString& metadata) { } // The following functions are used for reading platform data for copy and // paste, drag and drop, and selection copy (on X). @@ -81,7 +84,8 @@ public: virtual bool readData( Buffer, const WebString& type, WebString* data, WebString* metadata) { return false; } - virtual WebVector readFilenames(Buffer) { return WebVector(); } + virtual WebVector readFilenames( + Buffer) { return WebVector(); } protected: ~WebClipboard() {} diff --git a/WebKit/chromium/public/WebElement.h b/WebKit/chromium/public/WebElement.h index 16a82d8..5b6fd6a 100644 --- a/WebKit/chromium/public/WebElement.h +++ b/WebKit/chromium/public/WebElement.h @@ -58,6 +58,12 @@ class WebNamedNodeMap; WEBKIT_API WebNamedNodeMap attributes() const; WEBKIT_API WebString innerText() const; + // Returns the language code specified for this element. This attribute + // is inherited, so the returned value is drawn from the closest parent + // element that has the lang attribute set, or from the HTTP + // "Content-Language" header as a fallback. + WEBKIT_API WebString computeInheritedLanguage() const; + #if WEBKIT_IMPLEMENTATION WebElement(const WTF::PassRefPtr&); WebElement& operator=(const WTF::PassRefPtr&); diff --git a/WebKit/chromium/public/WebFrame.h b/WebKit/chromium/public/WebFrame.h index c4fa7ae..d8eca6a 100644 --- a/WebKit/chromium/public/WebFrame.h +++ b/WebKit/chromium/public/WebFrame.h @@ -518,6 +518,8 @@ public: // used to support layout tests. virtual WebString counterValueForElementById(const WebString& id) const = 0; + // Calls markerTextForListItem() defined in WebCore/rendering/RenderTreeAsText.h. + virtual WebString markerTextForListItem(const WebElement&) const = 0; // Returns the number of page where the specified element will be put. // This method is used to support layout tests. diff --git a/WebKit/chromium/public/WebIDBDatabase.h b/WebKit/chromium/public/WebIDBDatabase.h index 6e494ce..4e5cdcb 100644 --- a/WebKit/chromium/public/WebIDBDatabase.h +++ b/WebKit/chromium/public/WebIDBDatabase.h @@ -61,20 +61,15 @@ public: WEBKIT_ASSERT_NOT_REACHED(); return WebDOMStringList(); } - virtual void createObjectStore(const WebString& name, const WebString& keyPath, bool autoIncrement, WebIDBCallbacks*) - { - WEBKIT_ASSERT_NOT_REACHED(); - } + virtual void createObjectStore(const WebString& name, const WebString& keyPath, bool autoIncrement, WebIDBCallbacks*) { WEBKIT_ASSERT_NOT_REACHED(); } // Transfers ownership of the WebIDBObjectStore to the caller. virtual WebIDBObjectStore* objectStore(const WebString& name, unsigned short mode) { WEBKIT_ASSERT_NOT_REACHED(); return 0; } - virtual void removeObjectStore(const WebString& name, WebIDBCallbacks* callbacks) - { - WEBKIT_ASSERT_NOT_REACHED(); - } + virtual void removeObjectStore(const WebString& name, WebIDBCallbacks* callbacks) { WEBKIT_ASSERT_NOT_REACHED(); } + virtual void setVersion(const WebString& version, WebIDBCallbacks* callbacks) { WEBKIT_ASSERT_NOT_REACHED(); } // Transfers ownership of the WebIDBTransaction to the caller. virtual WebIDBTransaction* transaction(const WebDOMStringList& names, unsigned short mode, unsigned long timeout) { diff --git a/WebKit/chromium/public/WebInputElement.h b/WebKit/chromium/public/WebInputElement.h index d8c8ce7..ef3b577 100644 --- a/WebKit/chromium/public/WebInputElement.h +++ b/WebKit/chromium/public/WebInputElement.h @@ -99,6 +99,7 @@ namespace WebKit { WEBKIT_API void setSelectionRange(int, int); WEBKIT_API int selectionStart(); WEBKIT_API int selectionEnd(); + WEBKIT_API bool isValidValue(const WebString&) const; #if WEBKIT_IMPLEMENTATION WebInputElement(const WTF::PassRefPtr&); diff --git a/WebKit/chromium/public/WebNotification.h b/WebKit/chromium/public/WebNotification.h index 89dff7a..dbbde02 100644 --- a/WebKit/chromium/public/WebNotification.h +++ b/WebKit/chromium/public/WebNotification.h @@ -97,6 +97,9 @@ public: // the byUser parameter will be true. WEBKIT_API void dispatchCloseEvent(bool byUser); + // Called to indicate the notification was clicked on. + WEBKIT_API void dispatchClickEvent(); + #if WEBKIT_IMPLEMENTATION WebNotification(const WTF::PassRefPtr&); WebNotification& operator=(const WTF::PassRefPtr&); diff --git a/WebKit/chromium/public/WebRuntimeFeatures.h b/WebKit/chromium/public/WebRuntimeFeatures.h index 9aa1f4f..5537ee2 100644 --- a/WebKit/chromium/public/WebRuntimeFeatures.h +++ b/WebKit/chromium/public/WebRuntimeFeatures.h @@ -86,6 +86,12 @@ public: WEBKIT_API static void enableSpeechInput(bool); WEBKIT_API static bool isSpeechInputEnabled(); + WEBKIT_API static void enableXHRResponseBlob(bool); + WEBKIT_API static bool isXHRResponseBlobEnabled(); + + WEBKIT_API static void enableFileSystem(bool); + WEBKIT_API static bool isFileSystemEnabled(); + private: WebRuntimeFeatures(); }; diff --git a/WebKit/chromium/public/WebViewClient.h b/WebKit/chromium/public/WebViewClient.h index c64418b..5c9a79b 100644 --- a/WebKit/chromium/public/WebViewClient.h +++ b/WebKit/chromium/public/WebViewClient.h @@ -277,6 +277,9 @@ public: // Notifies embedder that the state of an accessibility object has changed. virtual void didChangeAccessibilityObjectState(const WebAccessibilityObject&) { } + + // Notifies embedder that the children of an accessibility object has changed. + virtual void didChangeAccessibilityObjectChildren(const WebAccessibilityObject&) { } // Developer tools ----------------------------------------------------- diff --git a/WebKit/chromium/src/AssertMatchingEnums.cpp b/WebKit/chromium/src/AssertMatchingEnums.cpp index a117fc2..ac3aad3 100644 --- a/WebKit/chromium/src/AssertMatchingEnums.cpp +++ b/WebKit/chromium/src/AssertMatchingEnums.cpp @@ -35,6 +35,7 @@ #include "AccessibilityObject.h" #include "ApplicationCacheHost.h" +#include "AsyncFileSystem.h" #include "EditorInsertAction.h" #include "FontDescription.h" #include "FontSmoothingMode.h" @@ -54,6 +55,7 @@ #include "WebClipboard.h" #include "WebCursorInfo.h" #include "WebEditingAction.h" +#include "WebFileSystem.h" #include "WebFontDescription.h" #include "WebIDBKey.h" #include "WebInputElement.h" @@ -380,3 +382,8 @@ COMPILE_ASSERT_MATCHING_ENUM(WebView::UserContentInjectInTopFrameOnly, InjectInT COMPILE_ASSERT_MATCHING_ENUM(WebIDBKey::NullType, IDBKey::NullType); COMPILE_ASSERT_MATCHING_ENUM(WebIDBKey::StringType, IDBKey::StringType); COMPILE_ASSERT_MATCHING_ENUM(WebIDBKey::NumberType, IDBKey::NumberType); + +#if ENABLE(FILE_SYSTEM) +COMPILE_ASSERT_MATCHING_ENUM(WebFileSystem::TypeTemporary, AsyncFileSystem::Temporary); +COMPILE_ASSERT_MATCHING_ENUM(WebFileSystem::TypePersistent, AsyncFileSystem::Persistent); +#endif diff --git a/WebKit/chromium/src/AsyncFileSystemChromium.cpp b/WebKit/chromium/src/AsyncFileSystemChromium.cpp new file mode 100644 index 0000000..08fcea6 --- /dev/null +++ b/WebKit/chromium/src/AsyncFileSystemChromium.cpp @@ -0,0 +1,104 @@ +/* + * Copyright (C) 2010 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include "config.h" +#include "AsyncFileSystemChromium.h" + +#if ENABLE(FILE_SYSTEM) + +#include "AsyncFileSystemCallbacks.h" +#include "FileSystem.h" +#include "WebFileSystem.h" +#include "WebFileSystemCallbacksImpl.h" +#include "WebKit.h" +#include "WebKitClient.h" + +#include + +namespace WebCore { + +AsyncFileSystemChromium::AsyncFileSystemChromium(const String& rootPath) + : AsyncFileSystem(rootPath) + , m_webFileSystem(WebKit::webKitClient()->fileSystem()) +{ + ASSERT(m_webFileSystem); +} + +AsyncFileSystemChromium::~AsyncFileSystemChromium() +{ +} + +void AsyncFileSystemChromium::move(const String& srcPath, const String& destPath, PassOwnPtr callbacks) +{ + m_webFileSystem->move(srcPath, destPath, new WebKit::WebFileSystemCallbacksImpl(callbacks)); +} + +void AsyncFileSystemChromium::copy(const String& srcPath, const String& destPath, PassOwnPtr callbacks) +{ + m_webFileSystem->copy(srcPath, destPath, new WebKit::WebFileSystemCallbacksImpl(callbacks)); +} + +void AsyncFileSystemChromium::remove(const String& path, PassOwnPtr callbacks) +{ + m_webFileSystem->remove(path, new WebKit::WebFileSystemCallbacksImpl(callbacks)); +} + +void AsyncFileSystemChromium::readMetadata(const String& path, PassOwnPtr callbacks) +{ + m_webFileSystem->readMetadata(path, new WebKit::WebFileSystemCallbacksImpl(callbacks)); +} + +void AsyncFileSystemChromium::createFile(const String& path, bool exclusive, PassOwnPtr callbacks) +{ + m_webFileSystem->createFile(path, exclusive, new WebKit::WebFileSystemCallbacksImpl(callbacks)); +} + +void AsyncFileSystemChromium::createDirectory(const String& path, bool exclusive, PassOwnPtr callbacks) +{ + m_webFileSystem->createDirectory(path, exclusive, new WebKit::WebFileSystemCallbacksImpl(callbacks)); +} + +void AsyncFileSystemChromium::fileExists(const String& path, PassOwnPtr callbacks) +{ + m_webFileSystem->fileExists(path, new WebKit::WebFileSystemCallbacksImpl(callbacks)); +} + +void AsyncFileSystemChromium::directoryExists(const String& path, PassOwnPtr callbacks) +{ + m_webFileSystem->directoryExists(path, new WebKit::WebFileSystemCallbacksImpl(callbacks)); +} + +void AsyncFileSystemChromium::readDirectory(const String& path, PassOwnPtr callbacks) +{ + m_webFileSystem->readDirectory(path, new WebKit::WebFileSystemCallbacksImpl(callbacks)); +} + +} // namespace WebCore + +#endif diff --git a/WebKit/chromium/src/AsyncFileSystemChromium.h b/WebKit/chromium/src/AsyncFileSystemChromium.h new file mode 100644 index 0000000..f46f78c --- /dev/null +++ b/WebKit/chromium/src/AsyncFileSystemChromium.h @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2010 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef AsyncFileSystemChromium_h +#define AsyncFileSystemChromium_h + +#if ENABLE(FILE_SYSTEM) + +#include "AsyncFileSystem.h" +#include + +namespace WebKit { +class WebFileSystem; +} + +namespace WebCore { + +class AsyncFileSystemCallbacks; + +class AsyncFileSystemChromium : public AsyncFileSystem { +public: + AsyncFileSystemChromium(const String& rootPath); + virtual ~AsyncFileSystemChromium(); + + virtual void move(const String& srcPath, const String& destPath, PassOwnPtr); + virtual void copy(const String& srcPath, const String& destPath, PassOwnPtr); + virtual void remove(const String& path, PassOwnPtr); + virtual void readMetadata(const String& path, PassOwnPtr); + virtual void createFile(const String& path, bool exclusive, PassOwnPtr); + virtual void createDirectory(const String& path, bool exclusive, PassOwnPtr); + virtual void fileExists(const String& path, PassOwnPtr); + virtual void directoryExists(const String& path, PassOwnPtr); + virtual void readDirectory(const String& path, PassOwnPtr); + +private: + WebKit::WebFileSystem* m_webFileSystem; +}; + +} // namespace WebCore + +#endif + +#endif // AsyncFileSystemChromium_h diff --git a/WebKit/chromium/src/ChromeClientImpl.cpp b/WebKit/chromium/src/ChromeClientImpl.cpp index 405fbf6..e6f1400 100644 --- a/WebKit/chromium/src/ChromeClientImpl.cpp +++ b/WebKit/chromium/src/ChromeClientImpl.cpp @@ -712,6 +712,13 @@ void ChromeClientImpl::didChangeAccessibilityObjectState(AccessibilityObject* ob m_webView->client()->didChangeAccessibilityObjectState(WebAccessibilityObject(obj)); } +void ChromeClientImpl::didChangeAccessibilityObjectChildren(WebCore::AccessibilityObject* obj) +{ + // Alert assistive technology about the accessibility object children change + if (obj) + m_webView->client()->didChangeAccessibilityObjectChildren(WebAccessibilityObject(obj)); +} + #if ENABLE(NOTIFICATIONS) NotificationPresenter* ChromeClientImpl::notificationPresenter() const { @@ -744,18 +751,6 @@ void ChromeClientImpl::scheduleCompositingLayerSync() } #endif -#if USE(GLES2_RENDERING) -PassOwnPtr ChromeClientImpl::getOnscreenGLES2Context() -{ - return m_webView->getOnscreenGLES2Context(); -} - -PassOwnPtr ChromeClientImpl::getOffscreenGLES2Context() -{ - return m_webView->getOffscreenGLES2Context(); -} -#endif - bool ChromeClientImpl::supportsFullscreenForNode(const WebCore::Node* node) { if (m_webView->client() && node->hasTagName(WebCore::HTMLNames::videoTag)) diff --git a/WebKit/chromium/src/ChromeClientImpl.h b/WebKit/chromium/src/ChromeClientImpl.h index 8763def..bff9f90 100644 --- a/WebKit/chromium/src/ChromeClientImpl.h +++ b/WebKit/chromium/src/ChromeClientImpl.h @@ -152,11 +152,6 @@ public: virtual void scheduleCompositingLayerSync(); #endif -#if USE(GLES2_RENDERING) - virtual PassOwnPtr getOnscreenGLES2Context(); - virtual PassOwnPtr getOffscreenGLES2Context(); -#endif - virtual bool supportsFullscreenForNode(const WebCore::Node*); virtual void enterFullscreenForNode(WebCore::Node*); virtual void exitFullscreenForNode(WebCore::Node*); @@ -167,6 +162,7 @@ public: bool handleExternally); virtual void popupClosed(WebCore::PopupContainer* popupContainer); virtual void didChangeAccessibilityObjectState(WebCore::AccessibilityObject*); + virtual void didChangeAccessibilityObjectChildren(WebCore::AccessibilityObject*); // ChromeClientImpl: void setCursor(const WebCursorInfo& cursor); diff --git a/WebKit/chromium/src/ChromiumBridge.cpp b/WebKit/chromium/src/ChromiumBridge.cpp index 33f405d..911dcf3 100644 --- a/WebKit/chromium/src/ChromiumBridge.cpp +++ b/WebKit/chromium/src/ChromiumBridge.cpp @@ -200,11 +200,11 @@ void ChromiumBridge::clipboardWriteImage(NativeImagePtr image, webKitClient()->clipboard()->writeImage(webImage, sourceURL, title); } -void ChromiumBridge::clipboardWriteData(ClipboardData* data) +void ChromiumBridge::clipboardWriteData(const String& type, + const String& data, + const String& metadata) { - notImplemented(); - WebDragData dragData; // FIXME: Define the conversion from ClipboardData to WebDragData. - webKitClient()->clipboard()->writeData(dragData); + webKitClient()->clipboard()->writeData(type, data, metadata); } HashSet ChromiumBridge::clipboardReadAvailableTypes( diff --git a/WebKit/chromium/src/IDBCursorBackendProxy.cpp b/WebKit/chromium/src/IDBCursorBackendProxy.cpp index fff00b7..b4711eb 100644 --- a/WebKit/chromium/src/IDBCursorBackendProxy.cpp +++ b/WebKit/chromium/src/IDBCursorBackendProxy.cpp @@ -60,10 +60,9 @@ PassRefPtr IDBCursorBackendProxy::key() const return m_idbCursor->key(); } -PassRefPtr IDBCursorBackendProxy::value() const +PassRefPtr IDBCursorBackendProxy::value() const { - RefPtr value = PassRefPtr(m_idbCursor->value()); - return IDBAny::create(value.get()); + return m_idbCursor->value(); } void IDBCursorBackendProxy::update(PassRefPtr value, PassRefPtr callbacks) diff --git a/WebKit/chromium/src/IDBCursorBackendProxy.h b/WebKit/chromium/src/IDBCursorBackendProxy.h index d8b621a..8af27cf 100644 --- a/WebKit/chromium/src/IDBCursorBackendProxy.h +++ b/WebKit/chromium/src/IDBCursorBackendProxy.h @@ -44,7 +44,7 @@ public: virtual unsigned short direction() const; virtual PassRefPtr key() const; - virtual PassRefPtr value() const; + virtual PassRefPtr value() const; virtual void update(PassRefPtr, PassRefPtr); virtual void continueFunction(PassRefPtr, PassRefPtr); virtual void remove(PassRefPtr); diff --git a/WebKit/chromium/src/IDBDatabaseProxy.cpp b/WebKit/chromium/src/IDBDatabaseProxy.cpp index 9aa2977..ce5e0a6 100644 --- a/WebKit/chromium/src/IDBDatabaseProxy.cpp +++ b/WebKit/chromium/src/IDBDatabaseProxy.cpp @@ -94,6 +94,11 @@ void IDBDatabaseProxy::removeObjectStore(const String& name, PassRefPtrremoveObjectStore(name, new WebIDBCallbacksImpl(callbacks)); } +void IDBDatabaseProxy::setVersion(const String& version, PassRefPtr callbacks) +{ + m_webIDBDatabase->setVersion(version, new WebIDBCallbacksImpl(callbacks)); +} + PassRefPtr IDBDatabaseProxy::transaction(DOMStringList* storeNames, unsigned short mode, unsigned long timeout) { WebKit::WebDOMStringList names(storeNames); diff --git a/WebKit/chromium/src/IDBDatabaseProxy.h b/WebKit/chromium/src/IDBDatabaseProxy.h index ed2016a..42a7d7e 100644 --- a/WebKit/chromium/src/IDBDatabaseProxy.h +++ b/WebKit/chromium/src/IDBDatabaseProxy.h @@ -52,6 +52,7 @@ public: virtual void createObjectStore(const String& name, const String& keyPath, bool autoIncrement, PassRefPtr); virtual PassRefPtr objectStore(const String& name, unsigned short mode); virtual void removeObjectStore(const String& name, PassRefPtr); + virtual void setVersion(const String& version, PassRefPtr); virtual PassRefPtr transaction(DOMStringList* storeNames, unsigned short mode, unsigned long timeout); private: diff --git a/WebKit/chromium/src/LocalFileSystemChromium.cpp b/WebKit/chromium/src/LocalFileSystemChromium.cpp new file mode 100644 index 0000000..45365ef --- /dev/null +++ b/WebKit/chromium/src/LocalFileSystemChromium.cpp @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2010 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" +#include "LocalFileSystem.h" + +#if ENABLE(FILE_SYSTEM) + +#include "AsyncFileSystem.h" +#include "ErrorCallback.h" +#include "FileSystemCallback.h" +#include "FileSystemCallbacks.h" +#include "PlatformString.h" +#include "WebFileSystem.h" +#include "WebFileSystemCallbacksImpl.h" +#include "WebFrameClient.h" +#include "WebFrameImpl.h" + +using namespace WebKit; + +namespace WebCore { + +PassRefPtr LocalFileSystem::create(const String& path) +{ + return adoptRef(new LocalFileSystem(path)); +} + +void LocalFileSystem::requestFileSystem(ScriptExecutionContext* context, AsyncFileSystem::Type type, long long size, PassRefPtr successCallback, PassRefPtr errorCallback) +{ + ASSERT(context); + if (context->isDocument()) { + Document* document = static_cast(context); + WebFrameImpl* webFrame = WebFrameImpl::fromFrame(document->frame()); + webFrame->client()->openFileSystem(webFrame, static_cast(type), size, new WebFileSystemCallbacksImpl(new FileSystemCallbacks(successCallback, errorCallback, context))); + } else { + // FIXME: Add implementation for workers. + } +} + +} // namespace WebCore + +#endif // ENABLE(FILE_SYSTEM) diff --git a/WebKit/chromium/src/WebBindings.cpp b/WebKit/chromium/src/WebBindings.cpp index 3aaebfd..4bb9022 100644 --- a/WebKit/chromium/src/WebBindings.cpp +++ b/WebKit/chromium/src/WebBindings.cpp @@ -43,6 +43,7 @@ #include "Range.h" #include "V8BindingState.h" #include "V8DOMWrapper.h" +#include "V8Element.h" #include "V8Event.h" #include "V8Helpers.h" #include "V8HiddenPropertyName.h" @@ -53,6 +54,7 @@ #include "bridge/c/c_utility.h" #endif #include "WebDragData.h" +#include "WebElement.h" #include "WebRange.h" #if USE(JAVASCRIPTCORE_BINDINGS) @@ -295,6 +297,21 @@ static bool getRangeImpl(NPObject* npobj, WebRange* range) return true; } +static bool getElementImpl(NPObject* npObj, WebElement* webElement) +{ + if (!npObj || (npObj->_class != npScriptObjectClass)) + return false; + + V8NPObject* v8NPObject = reinterpret_cast(npObj); + v8::Handle v8Object(v8NPObject->v8Object); + Element* native = V8Element::toNative(v8Object); + if (!native) + return false; + + *webElement = WebElement(native); + return true; +} + #endif bool WebBindings::getDragData(NPObject* event, int* eventId, WebDragData* data) @@ -323,6 +340,16 @@ bool WebBindings::getRange(NPObject* range, WebRange* webrange) #endif } +bool WebBindings::getElement(NPObject* element, WebElement* webElement) +{ +#if USE(V8) + return getElementImpl(element, webElement); +#else + // Not supported on other ports (JSC, etc.). + return false; +#endif +} + void WebBindings::pushExceptionHandler(ExceptionHandler handler, void* data) { WebCore::pushExceptionHandler(handler, data); diff --git a/WebKit/chromium/src/WebElement.cpp b/WebKit/chromium/src/WebElement.cpp index f45cba9..91f310d 100644 --- a/WebKit/chromium/src/WebElement.cpp +++ b/WebKit/chromium/src/WebElement.cpp @@ -85,6 +85,11 @@ WebString WebElement::innerText() const return constUnwrap()->innerText(); } +WebString WebElement::computeInheritedLanguage() const +{ + return WebString(constUnwrap()->computeInheritedLanguage()); +} + WebElement::WebElement(const PassRefPtr& elem) : WebNode(elem) { diff --git a/WebKit/chromium/src/WebEntities.cpp b/WebKit/chromium/src/WebEntities.cpp index 2e05d52..bfdd9f2 100644 --- a/WebKit/chromium/src/WebEntities.cpp +++ b/WebKit/chromium/src/WebEntities.cpp @@ -33,7 +33,6 @@ #include -#include "HTMLEntityTable.h" #include "PlatformString.h" #include "StringBuilder.h" #include @@ -44,49 +43,17 @@ using namespace WebCore; namespace WebKit { -namespace { - -void populateMapFromXMLEntities(WTF::HashMap& map) -{ - ASSERT(map.isEmpty()); - map.set(0x003c, "lt"); - map.set(0x003e, "gt"); - map.set(0x0026, "amp"); - map.set(0x0027, "apos"); - map.set(0x0022, "quot"); -} - -void populateMapFromHTMLEntityTable(WTF::HashMap& map) -{ - ASSERT(map.isEmpty()); - const HTMLEntityTableEntry* entry = HTMLEntityTable::firstEntry(); - const HTMLEntityTableEntry* end = HTMLEntityTable::lastEntry() + 1; - for (; entry != end; ++entry) { - String entity = entry->entity; - int value = entry->value; - ASSERT(value && !entity.isEmpty()); - if (entity[entity.length() - 1] != ';') - continue; // We want the canonical version that ends in ; - // For consistency, use the lower case for entities that have both. - if (map.contains(value) && map.get(value) == entity.lower()) - continue; - // Don't register %, ⊅ and &supl; for some unknown reason. - if (value == '%' || value == 0x2285 || value == 0x00b9) - continue; - map.set(value, entity); - } - // We add #39 for some unknown reason. - map.set(0x0027, String("#39")); -} - -} - WebEntities::WebEntities(bool xmlEntities) { - if (xmlEntities) - populateMapFromXMLEntities(m_entitiesMap); - else - populateMapFromHTMLEntityTable(m_entitiesMap); + ASSERT(m_entitiesMap.isEmpty()); + m_entitiesMap.set(0x003c, "lt"); + m_entitiesMap.set(0x003e, "gt"); + m_entitiesMap.set(0x0026, "amp"); + m_entitiesMap.set(0x0027, "apos"); + m_entitiesMap.set(0x0022, "quot"); + // We add #39 for test-compatibility reason. + if (!xmlEntities) + m_entitiesMap.set(0x0027, String("#39")); } String WebEntities::entityNameByCode(int code) const diff --git a/WebKit/chromium/src/WebFileSystemCallbacksImpl.cpp b/WebKit/chromium/src/WebFileSystemCallbacksImpl.cpp index d29f86d..a23add7 100644 --- a/WebKit/chromium/src/WebFileSystemCallbacksImpl.cpp +++ b/WebKit/chromium/src/WebFileSystemCallbacksImpl.cpp @@ -32,8 +32,9 @@ #if ENABLE(FILE_SYSTEM) +#include "AsyncFileSystemCallbacks.h" +#include "AsyncFileSystemChromium.h" #include "ExceptionCode.h" -#include "FileSystemCallbacks.h" #include "WebFileSystemEntry.h" #include "WebFileInfo.h" #include "WebString.h" @@ -43,7 +44,7 @@ using namespace WebCore; namespace WebKit { -WebFileSystemCallbacksImpl::WebFileSystemCallbacksImpl(PassOwnPtr callbacks) +WebFileSystemCallbacksImpl::WebFileSystemCallbacksImpl(PassOwnPtr callbacks) : m_callbacks(callbacks) { } @@ -71,14 +72,14 @@ void WebFileSystemCallbacksImpl::didReadDirectory(const WebVectordidReadDirectoryEntry(entries[i].name, entries[i].isDirectory); - m_callbacks->didReadDirectoryChunkDone(hasMore); + m_callbacks->didReadDirectoryEntries(hasMore); if (!hasMore) delete this; } void WebFileSystemCallbacksImpl::didOpenFileSystem(const WebString& name, const WebString& path) { - m_callbacks->didOpenFileSystem(name, path); + m_callbacks->didOpenFileSystem(name, new AsyncFileSystemChromium(path)); delete this; } diff --git a/WebKit/chromium/src/WebFileSystemCallbacksImpl.h b/WebKit/chromium/src/WebFileSystemCallbacksImpl.h index f3c6bc3..b9c825b 100644 --- a/WebKit/chromium/src/WebFileSystemCallbacksImpl.h +++ b/WebKit/chromium/src/WebFileSystemCallbacksImpl.h @@ -37,7 +37,7 @@ #include namespace WebCore { -class FileSystemCallbacksBase; +class AsyncFileSystemCallbacks; } namespace WebKit { @@ -48,7 +48,7 @@ class WebString; class WebFileSystemCallbacksImpl : public WebFileSystemCallbacks { public: - WebFileSystemCallbacksImpl(PassOwnPtr); + WebFileSystemCallbacksImpl(PassOwnPtr); virtual ~WebFileSystemCallbacksImpl(); virtual void didSucceed(); @@ -58,7 +58,7 @@ public: virtual void didFail(WebFileError error); private: - OwnPtr m_callbacks; + OwnPtr m_callbacks; }; } // namespace WebKit diff --git a/WebKit/chromium/src/WebFrameImpl.cpp b/WebKit/chromium/src/WebFrameImpl.cpp index 4375e73..eb0db7e 100644 --- a/WebKit/chromium/src/WebFrameImpl.cpp +++ b/WebKit/chromium/src/WebFrameImpl.cpp @@ -1690,6 +1690,11 @@ WebString WebFrameImpl::counterValueForElementById(const WebString& id) const return counterValueForElement(element); } +WebString WebFrameImpl::markerTextForListItem(const WebElement& webElement) const +{ + return WebCore::markerTextForListItem(const_cast(webElement.constUnwrap())); +} + int WebFrameImpl::pageNumberForElementById(const WebString& id, float pageWidthInPixels, float pageHeightInPixels) const @@ -1811,7 +1816,7 @@ void WebFrameImpl::layout() // layout this frame FrameView* view = m_frame->view(); if (view) - view->layoutIfNeededRecursive(); + view->updateLayoutAndStyleIfNeededRecursive(); } void WebFrameImpl::paintWithContext(GraphicsContext& gc, const WebRect& rect) diff --git a/WebKit/chromium/src/WebFrameImpl.h b/WebKit/chromium/src/WebFrameImpl.h index 00e8ecb..14217fa 100644 --- a/WebKit/chromium/src/WebFrameImpl.h +++ b/WebKit/chromium/src/WebFrameImpl.h @@ -176,6 +176,7 @@ public: virtual WebString contentAsMarkup() const; virtual WebString renderTreeAsText() const; virtual WebString counterValueForElementById(const WebString& id) const; + virtual WebString markerTextForListItem(const WebElement&) const; virtual int pageNumberForElementById(const WebString& id, float pageWidthInPixels, float pageHeightInPixels) const; diff --git a/WebKit/chromium/src/WebIDBCursorImpl.cpp b/WebKit/chromium/src/WebIDBCursorImpl.cpp index 1ade687..b74d680 100644 --- a/WebKit/chromium/src/WebIDBCursorImpl.cpp +++ b/WebKit/chromium/src/WebIDBCursorImpl.cpp @@ -57,7 +57,7 @@ WebIDBKey WebIDBCursorImpl::key() const WebSerializedScriptValue WebIDBCursorImpl::value() const { - return m_idbCursorBackend->value()->serializedScriptValue(); + return m_idbCursorBackend->value(); } void WebIDBCursorImpl::update(const WebSerializedScriptValue& value, WebIDBCallbacks* callbacks) diff --git a/WebKit/chromium/src/WebIDBDatabaseImpl.cpp b/WebKit/chromium/src/WebIDBDatabaseImpl.cpp index bd3600f..8870ff9 100644 --- a/WebKit/chromium/src/WebIDBDatabaseImpl.cpp +++ b/WebKit/chromium/src/WebIDBDatabaseImpl.cpp @@ -87,6 +87,11 @@ void WebIDBDatabaseImpl::removeObjectStore(const WebString& name, WebIDBCallback m_databaseBackend->removeObjectStore(name, IDBCallbacksProxy::create(callbacks)); } +void WebIDBDatabaseImpl::setVersion(const WebString& version, WebIDBCallbacks* callbacks) +{ + m_databaseBackend->setVersion(version, IDBCallbacksProxy::create(callbacks)); +} + WebIDBTransaction* WebIDBDatabaseImpl::transaction(const WebDOMStringList& names, unsigned short mode, unsigned long timeout) { RefPtr nameList = PassRefPtr(names); diff --git a/WebKit/chromium/src/WebIDBDatabaseImpl.h b/WebKit/chromium/src/WebIDBDatabaseImpl.h index 9ae74e0..e0eaaa5 100644 --- a/WebKit/chromium/src/WebIDBDatabaseImpl.h +++ b/WebKit/chromium/src/WebIDBDatabaseImpl.h @@ -52,6 +52,7 @@ public: virtual void createObjectStore(const WebString& name, const WebString& keyPath, bool autoIncrement, WebIDBCallbacks* callbacks); virtual WebIDBObjectStore* objectStore(const WebString& name, unsigned short mode); virtual void removeObjectStore(const WebString& name, WebIDBCallbacks* callbacks); + virtual void setVersion(const WebString& version, WebIDBCallbacks* callbacks); virtual WebIDBTransaction* transaction(const WebDOMStringList& names, unsigned short mode, unsigned long timeout); private: diff --git a/WebKit/chromium/src/WebInputElement.cpp b/WebKit/chromium/src/WebInputElement.cpp index 3b88335..7bf6407 100644 --- a/WebKit/chromium/src/WebInputElement.cpp +++ b/WebKit/chromium/src/WebInputElement.cpp @@ -140,6 +140,11 @@ int WebInputElement::selectionEnd() return unwrap()->selectionEnd(); } +bool WebInputElement::isValidValue(const WebString& value) const +{ + return constUnwrap()->isValidValue(value); +} + WebInputElement::WebInputElement(const PassRefPtr& elem) : WebFormControlElement(elem) { diff --git a/WebKit/chromium/src/WebNotification.cpp b/WebKit/chromium/src/WebNotification.cpp index 6aa8439..bfc1bec 100644 --- a/WebKit/chromium/src/WebNotification.cpp +++ b/WebKit/chromium/src/WebNotification.cpp @@ -138,6 +138,12 @@ void WebNotification::dispatchCloseEvent(bool /* byUser */) m_private->dispatchEvent(event.release()); } +void WebNotification::dispatchClickEvent() +{ + RefPtr event = Event::create(eventNames().clickEvent, false, true); + m_private->dispatchEvent(event.release()); +} + WebNotification::WebNotification(const WTF::PassRefPtr& notification) : m_private(static_cast(notification.releaseRef())) { diff --git a/WebKit/chromium/src/WebRuntimeFeatures.cpp b/WebKit/chromium/src/WebRuntimeFeatures.cpp index 9e21d58..2279eeb 100644 --- a/WebKit/chromium/src/WebRuntimeFeatures.cpp +++ b/WebKit/chromium/src/WebRuntimeFeatures.cpp @@ -256,4 +256,36 @@ bool WebRuntimeFeatures::isSpeechInputEnabled() return RuntimeEnabledFeatures::speechInputEnabled(); } +void WebRuntimeFeatures::enableXHRResponseBlob(bool enable) +{ +#if ENABLE(XHR_RESPONSE_BLOB) + RuntimeEnabledFeatures::setXHRResponseBlobEnabled(enable); +#endif +} + +bool WebRuntimeFeatures::isXHRResponseBlobEnabled() +{ +#if ENABLE(XHR_RESPONSE_BLOB) + return RuntimeEnabledFeatures::xhrResponseBlobEnabled(); +#else + return false; +#endif +} + +void WebRuntimeFeatures::enableFileSystem(bool enable) +{ +#if ENABLE(FILE_SYSTEM) + RuntimeEnabledFeatures::setFileSystemEnabled(enable); +#endif +} + +bool WebRuntimeFeatures::isFileSystemEnabled() +{ +#if ENABLE(FILE_SYSTEM) + return RuntimeEnabledFeatures::fileSystemEnabled(); +#else + return false; +#endif +} + } // namespace WebKit diff --git a/WebKit/chromium/src/WebScrollbarImpl.cpp b/WebKit/chromium/src/WebScrollbarImpl.cpp index 8bf5340..c0131cb 100644 --- a/WebKit/chromium/src/WebScrollbarImpl.cpp +++ b/WebKit/chromium/src/WebScrollbarImpl.cpp @@ -81,7 +81,7 @@ void WebScrollbarImpl::setLocation(const WebRect& rect) m_scrollbar->invalidate(); int length = m_scrollbar->orientation() == HorizontalScrollbar ? m_scrollbar->width() : m_scrollbar->height(); - int pageStep = max(max(length * Scrollbar::minFractionToStepWhenPaging(), length - Scrollbar::maxOverlapBetweenPages()), 1); + int pageStep = max(max(static_cast(static_cast(length) * Scrollbar::minFractionToStepWhenPaging()), length - Scrollbar::maxOverlapBetweenPages()), 1); m_scrollbar->setSteps(Scrollbar::pixelsPerLineStep(), pageStep); m_scrollbar->setEnabled(m_scrollbar->totalSize() > length); m_scrollbar->setProportion(length, m_scrollbar->totalSize()); @@ -214,7 +214,7 @@ bool WebScrollbarImpl::onMouseWheel(const WebInputEvent& event) if (mousewheel.scrollByPage) { ASSERT(m_scrollbar->orientation() == VerticalScrollbar); bool negative = delta < 0; - delta = max(max(m_scrollbar->visibleSize() * Scrollbar::minFractionToStepWhenPaging(), m_scrollbar->visibleSize() - Scrollbar::maxOverlapBetweenPages()), 1); + delta = max(max(static_cast(m_scrollbar->visibleSize()) * Scrollbar::minFractionToStepWhenPaging(), static_cast(m_scrollbar->visibleSize() - Scrollbar::maxOverlapBetweenPages())), 1.0f); if (negative) delta *= -1; } diff --git a/WebKit/chromium/src/WebSearchableFormData.cpp b/WebKit/chromium/src/WebSearchableFormData.cpp index 14ece13..1864514 100644 --- a/WebKit/chromium/src/WebSearchableFormData.cpp +++ b/WebKit/chromium/src/WebSearchableFormData.cpp @@ -187,7 +187,7 @@ bool HasSuitableTextElement(const HTMLFormElement* form, Vector* encodedSt if (!formElement->appendFormData(dataList, false)) continue; - const BlobItemList& items = dataList.items(); + const Vector& items = dataList.items(); if (isTextElement && !items.isEmpty()) { if (textElement) { // The auto-complete bar only knows how to fill in one value. @@ -196,22 +196,20 @@ bool HasSuitableTextElement(const HTMLFormElement* form, Vector* encodedSt } textElement = static_cast(formElement); } - for (BlobItemList::const_iterator j(items.begin()); j != items.end(); ++j) { - const StringBlobItem* item = (*j)->toStringBlobItem(); - ASSERT(item); + for (Vector::const_iterator j(items.begin()); j != items.end(); ++j) { // Handle ISINDEX / specially, but only if it's // the first entry. - if (!encodedString->isEmpty() || item->cstr() != "isindex") { + if (!encodedString->isEmpty() || j->data() != "isindex") { if (!encodedString->isEmpty()) encodedString->append('&'); - FormDataBuilder::encodeStringAsFormData(*encodedString, item->cstr()); + FormDataBuilder::encodeStringAsFormData(*encodedString, j->data()); encodedString->append('='); } ++j; if (formElement == textElement) encodedString->append("{searchTerms}", 13); else - FormDataBuilder::encodeStringAsFormData(*encodedString, item->cstr()); + FormDataBuilder::encodeStringAsFormData(*encodedString, j->data()); } } diff --git a/WebKit/chromium/src/WebViewImpl.cpp b/WebKit/chromium/src/WebViewImpl.cpp index 383b716..4b129d6 100644 --- a/WebKit/chromium/src/WebViewImpl.cpp +++ b/WebKit/chromium/src/WebViewImpl.cpp @@ -823,13 +823,10 @@ bool WebViewImpl::propagateScroll(ScrollDirection scrollDirection, if (!frame) return false; - bool scrollHandled = - frame->eventHandler()->scrollOverflow(scrollDirection, - scrollGranularity); + bool scrollHandled = frame->eventHandler()->scrollOverflow(scrollDirection, scrollGranularity); Frame* currentFrame = frame; while (!scrollHandled && currentFrame) { - scrollHandled = currentFrame->view()->scroll(scrollDirection, - scrollGranularity); + scrollHandled = currentFrame->view()->scroll(scrollDirection, scrollGranularity); currentFrame = currentFrame->tree()->parent(); } return scrollHandled; @@ -2120,9 +2117,13 @@ void WebViewImpl::setIsAcceleratedCompositingActive(bool active) if (active) { m_layerRenderer = LayerRendererChromium::create(getOnscreenGLES2Context()); - if (m_layerRenderer->hardwareCompositing()) + if (m_layerRenderer->hardwareCompositing()) { m_isAcceleratedCompositingActive = true; - else { + + // Force a redraw the entire view so that the compositor gets the entire view, + // rather than just the currently-dirty subset. + m_client->didInvalidateRect(IntRect(0, 0, m_size.width, m_size.height)); + } else { m_layerRenderer.clear(); m_isAcceleratedCompositingActive = false; } diff --git a/WebKit/chromium/src/js/DevTools.js b/WebKit/chromium/src/js/DevTools.js index e3e0204..f55be4e 100644 --- a/WebKit/chromium/src/js/DevTools.js +++ b/WebKit/chromium/src/js/DevTools.js @@ -34,39 +34,10 @@ * DevTools frontend together. It is also responsible for overriding existing * WebInspector functionality while it is getting upstreamed into WebCore. */ -devtools.ToolsAgent = function() -{ - this.profilerAgent_ = new devtools.ProfilerAgent(); -}; - - -/** - * @return {devtools.ProfilerAgent} Profiler agent instance. - */ -devtools.ToolsAgent.prototype.getProfilerAgent = function() -{ - return this.profilerAgent_; -}; - - - -/** - * Global instance of the tools agent. - * @type {devtools.ToolsAgent} - */ -devtools.tools = null; - var context = {}; // Used by WebCore's inspector routines. -/////////////////////////////////////////////////////////////////////////////// -// Here and below are overrides to existing WebInspector methods only. -// TODO(pfeldman): Patch WebCore and upstream changes. -var oldLoaded = WebInspector.loaded; -WebInspector.loaded = function() -{ - devtools.tools = new devtools.ToolsAgent(); - +(function () { Preferences.ignoreWhitespace = false; Preferences.samplingCPUProfiler = true; Preferences.heapProfilerPresent = true; @@ -75,9 +46,9 @@ WebInspector.loaded = function() Preferences.canEditScriptSource = true; Preferences.onlineDetectionEnabled = false; Preferences.domBreakpointsEnabled = true; +})(); - oldLoaded.call(WebInspector); -} +var devtools = devtools || {}; devtools.domContentLoaded = function() { @@ -88,12 +59,12 @@ devtools.domContentLoaded = function() document.addEventListener("DOMContentLoaded", devtools.domContentLoaded, false); +// FIXME: This needs to be upstreamed. (function InterceptProfilesPanelEvents() { var oldShow = WebInspector.ProfilesPanel.prototype.show; WebInspector.ProfilesPanel.prototype.show = function() { - devtools.tools.getProfilerAgent().initializeProfiling(); this.enableToggleButton.visible = false; oldShow.call(this); // Show is called on every show event of a panel, so diff --git a/WebKit/chromium/src/js/HeapProfilerPanel.js b/WebKit/chromium/src/js/HeapProfilerPanel.js deleted file mode 100644 index bcb008f..0000000 --- a/WebKit/chromium/src/js/HeapProfilerPanel.js +++ /dev/null @@ -1,966 +0,0 @@ -/* - * Copyright (C) 2010 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/** - * @fileoverview Heap profiler panel implementation. - */ - -WebInspector.ProfilesPanel.prototype.addSnapshot = function(snapshot) { - snapshot.title = WebInspector.UIString("Snapshot %d", snapshot.number); - snapshot.typeId = WebInspector.HeapSnapshotProfileType.TypeId; - - var snapshots = WebInspector.HeapSnapshotProfileType.snapshots; - snapshots.push(snapshot); - - snapshot.listIndex = snapshots.length - 1; - - if (WebInspector.CPUProfile) - this.addProfileHeader(WebInspector.HeapSnapshotProfileType.TypeId, snapshot); - else - this.addProfileHeader(snapshot); - - this.dispatchEventToListeners("snapshot added"); -} - - -WebInspector.HeapSnapshotView = function(parent, profile) -{ - WebInspector.View.call(this); - - this.element.addStyleClass("heap-snapshot-view"); - - this.parent = parent; - this.parent.addEventListener("snapshot added", this._updateBaseOptions, this); - - this.showCountAsPercent = false; - this.showSizeAsPercent = false; - this.showCountDeltaAsPercent = false; - this.showSizeDeltaAsPercent = false; - - this.categories = { - code: new WebInspector.ResourceCategory("code", WebInspector.UIString("Code"), "rgb(255,121,0)"), - data: new WebInspector.ResourceCategory("data", WebInspector.UIString("Objects"), "rgb(47,102,236)") - }; - - var summaryContainer = document.createElement("div"); - summaryContainer.id = "heap-snapshot-summary-container"; - - this.countsSummaryBar = new WebInspector.SummaryBar(this.categories); - this.countsSummaryBar.element.className = "heap-snapshot-summary"; - this.countsSummaryBar.calculator = new WebInspector.HeapSummaryCountCalculator(); - var countsLabel = document.createElement("div"); - countsLabel.className = "heap-snapshot-summary-label"; - countsLabel.textContent = WebInspector.UIString("Count"); - this.countsSummaryBar.element.appendChild(countsLabel); - summaryContainer.appendChild(this.countsSummaryBar.element); - - this.sizesSummaryBar = new WebInspector.SummaryBar(this.categories); - this.sizesSummaryBar.element.className = "heap-snapshot-summary"; - this.sizesSummaryBar.calculator = new WebInspector.HeapSummarySizeCalculator(); - var sizesLabel = document.createElement("label"); - sizesLabel.className = "heap-snapshot-summary-label"; - sizesLabel.textContent = WebInspector.UIString("Size"); - this.sizesSummaryBar.element.appendChild(sizesLabel); - summaryContainer.appendChild(this.sizesSummaryBar.element); - - this.element.appendChild(summaryContainer); - - var columns = { "cons": { title: WebInspector.UIString("Constructor"), disclosure: true, sortable: true }, - "count": { title: WebInspector.UIString("Count"), width: "54px", sortable: true }, - "size": { title: WebInspector.UIString("Size"), width: "72px", sort: "descending", sortable: true }, - "countDelta": { title: WebInspector.UIString("\xb1 Count"), width: "72px", sortable: true }, - "sizeDelta": { title: WebInspector.UIString("\xb1 Size"), width: "72px", sortable: true } }; - - this.dataGrid = new WebInspector.DataGrid(columns); - this.dataGrid.addEventListener("sorting changed", this._sortData, this); - this.dataGrid.element.addEventListener("mousedown", this._mouseDownInDataGrid.bind(this), true); - this.element.appendChild(this.dataGrid.element); - - this.profile = profile; - - this.baseSelectElement = document.createElement("select"); - this.baseSelectElement.className = "status-bar-item"; - this.baseSelectElement.addEventListener("change", this._changeBase.bind(this), false); - this._updateBaseOptions(); - if (this.profile.listIndex > 0) - this.baseSelectElement.selectedIndex = this.profile.listIndex - 1; - else - this.baseSelectElement.selectedIndex = this.profile.listIndex; - this._resetDataGridList(); - - this.percentButton = new WebInspector.StatusBarButton("", "percent-time-status-bar-item status-bar-item"); - this.percentButton.addEventListener("click", this._percentClicked.bind(this), false); - - this.refresh(); - - this._updatePercentButton(); -}; - -WebInspector.HeapSnapshotView.prototype = { - - get statusBarItems() - { - return [this.baseSelectElement, this.percentButton.element]; - }, - - get profile() - { - return this._profile; - }, - - set profile(profile) - { - this._profile = profile; - }, - - show: function(parentElement) - { - WebInspector.View.prototype.show.call(this, parentElement); - this.dataGrid.updateWidths(); - }, - - hide: function() - { - WebInspector.View.prototype.hide.call(this); - this._currentSearchResultIndex = -1; - }, - - resize: function() - { - if (this.dataGrid) - this.dataGrid.updateWidths(); - }, - - refresh: function() - { - this.dataGrid.removeChildren(); - - var children = this.snapshotDataGridList.children; - var count = children.length; - for (var index = 0; index < count; ++index) - this.dataGrid.appendChild(children[index]); - - this._updateSummaryGraph(); - }, - - refreshShowAsPercents: function() - { - this._updatePercentButton(); - this.refreshVisibleData(); - }, - - _deleteSearchMatchedFlags: function(node) - { - delete node._searchMatchedConsColumn; - delete node._searchMatchedCountColumn; - delete node._searchMatchedSizeColumn; - delete node._searchMatchedCountDeltaColumn; - delete node._searchMatchedSizeDeltaColumn; - }, - - searchCanceled: function() - { - if (this._searchResults) { - for (var i = 0; i < this._searchResults.length; ++i) { - var profileNode = this._searchResults[i].profileNode; - this._deleteSearchMatchedFlags(profileNode); - profileNode.refresh(); - } - } - - delete this._searchFinishedCallback; - this._currentSearchResultIndex = -1; - this._searchResults = []; - }, - - performSearch: function(query, finishedCallback) - { - // Call searchCanceled since it will reset everything we need before doing a new search. - this.searchCanceled(); - - query = query.trim(); - - if (!query.length) - return; - - this._searchFinishedCallback = finishedCallback; - - var helper = WebInspector.HeapSnapshotView.SearchHelper; - - var operationAndNumber = helper.parseOperationAndNumber(query); - var operation = operationAndNumber[0]; - var queryNumber = operationAndNumber[1]; - - var percentUnits = helper.percents.test(query); - var megaBytesUnits = helper.megaBytes.test(query); - var kiloBytesUnits = helper.kiloBytes.test(query); - var bytesUnits = helper.bytes.test(query); - - var queryNumberBytes = (megaBytesUnits ? (queryNumber * 1024 * 1024) : (kiloBytesUnits ? (queryNumber * 1024) : queryNumber)); - - function matchesQuery(heapSnapshotDataGridNode) - { - WebInspector.HeapSnapshotView.prototype._deleteSearchMatchedFlags(heapSnapshotDataGridNode); - - if (percentUnits) { - heapSnapshotDataGridNode._searchMatchedCountColumn = operation(heapSnapshotDataGridNode.countPercent, queryNumber); - heapSnapshotDataGridNode._searchMatchedSizeColumn = operation(heapSnapshotDataGridNode.sizePercent, queryNumber); - heapSnapshotDataGridNode._searchMatchedCountDeltaColumn = operation(heapSnapshotDataGridNode.countDeltaPercent, queryNumber); - heapSnapshotDataGridNode._searchMatchedSizeDeltaColumn = operation(heapSnapshotDataGridNode.sizeDeltaPercent, queryNumber); - } else if (megaBytesUnits || kiloBytesUnits || bytesUnits) { - heapSnapshotDataGridNode._searchMatchedSizeColumn = operation(heapSnapshotDataGridNode.size, queryNumberBytes); - heapSnapshotDataGridNode._searchMatchedSizeDeltaColumn = operation(heapSnapshotDataGridNode.sizeDelta, queryNumberBytes); - } else { - heapSnapshotDataGridNode._searchMatchedCountColumn = operation(heapSnapshotDataGridNode.count, queryNumber); - heapSnapshotDataGridNode._searchMatchedCountDeltaColumn = operation(heapSnapshotDataGridNode.countDelta, queryNumber); - } - - if (heapSnapshotDataGridNode.constructorName.hasSubstring(query, true)) - heapSnapshotDataGridNode._searchMatchedConsColumn = true; - - if (heapSnapshotDataGridNode._searchMatchedConsColumn || - heapSnapshotDataGridNode._searchMatchedCountColumn || - heapSnapshotDataGridNode._searchMatchedSizeColumn || - heapSnapshotDataGridNode._searchMatchedCountDeltaColumn || - heapSnapshotDataGridNode._searchMatchedSizeDeltaColumn) { - heapSnapshotDataGridNode.refresh(); - return true; - } - - return false; - } - - var current = this.snapshotDataGridList.children[0]; - var depth = 0; - var info = {}; - - // The second and subsequent levels of heap snapshot nodes represent retainers, - // so recursive expansion will be infinite, since a graph is being traversed. - // So default to a recursion cap of 2 levels. - var maxDepth = 2; - - while (current) { - if (matchesQuery(current)) - this._searchResults.push({ profileNode: current }); - current = current.traverseNextNode(false, null, (depth >= maxDepth), info); - depth += info.depthChange; - } - - finishedCallback(this, this._searchResults.length); - }, - - jumpToFirstSearchResult: WebInspector.CPUProfileView.prototype.jumpToFirstSearchResult, - jumpToLastSearchResult: WebInspector.CPUProfileView.prototype.jumpToLastSearchResult, - jumpToNextSearchResult: WebInspector.CPUProfileView.prototype.jumpToNextSearchResult, - jumpToPreviousSearchResult: WebInspector.CPUProfileView.prototype.jumpToPreviousSearchResult, - showingFirstSearchResult: WebInspector.CPUProfileView.prototype.showingFirstSearchResult, - showingLastSearchResult: WebInspector.CPUProfileView.prototype.showingLastSearchResult, - _jumpToSearchResult: WebInspector.CPUProfileView.prototype._jumpToSearchResult, - - refreshVisibleData: function() - { - var child = this.dataGrid.children[0]; - while (child) { - child.refresh(); - child = child.traverseNextNode(false, null, true); - } - this._updateSummaryGraph(); - }, - - _changeBase: function() { - if (this.baseSnapshot === WebInspector.HeapSnapshotProfileType.snapshots[this.baseSelectElement.selectedIndex]) - return; - - this._resetDataGridList(); - this.refresh(); - - if (!this.currentQuery || !this._searchFinishedCallback || !this._searchResults) - return; - - // The current search needs to be performed again. First negate out previous match - // count by calling the search finished callback with a negative number of matches. - // Then perform the search again with the same query and callback. - this._searchFinishedCallback(this, -this._searchResults.length); - this.performSearch(this.currentQuery, this._searchFinishedCallback); - }, - - _createSnapshotDataGridList: function() - { - if (this._snapshotDataGridList) - delete this._snapshotDataGridList; - - this._snapshotDataGridList = new WebInspector.HeapSnapshotDataGridList(this, this.baseSnapshot.entries, this.profile.entries); - return this._snapshotDataGridList; - }, - - _mouseDownInDataGrid: function(event) - { - if (event.detail < 2) - return; - - var cell = event.target.enclosingNodeOrSelfWithNodeName("td"); - if (!cell || (!cell.hasStyleClass("count-column") && !cell.hasStyleClass("size-column") && !cell.hasStyleClass("countDelta-column") && !cell.hasStyleClass("sizeDelta-column"))) - return; - - if (cell.hasStyleClass("count-column")) - this.showCountAsPercent = !this.showCountAsPercent; - else if (cell.hasStyleClass("size-column")) - this.showSizeAsPercent = !this.showSizeAsPercent; - else if (cell.hasStyleClass("countDelta-column")) - this.showCountDeltaAsPercent = !this.showCountDeltaAsPercent; - else if (cell.hasStyleClass("sizeDelta-column")) - this.showSizeDeltaAsPercent = !this.showSizeDeltaAsPercent; - - this.refreshShowAsPercents(); - - event.preventDefault(); - event.stopPropagation(); - }, - - get _isShowingAsPercent() - { - return this.showCountAsPercent && this.showSizeAsPercent && this.showCountDeltaAsPercent && this.showSizeDeltaAsPercent; - }, - - _percentClicked: function(event) - { - var currentState = this._isShowingAsPercent; - this.showCountAsPercent = !currentState; - this.showSizeAsPercent = !currentState; - this.showCountDeltaAsPercent = !currentState; - this.showSizeDeltaAsPercent = !currentState; - this.refreshShowAsPercents(); - }, - - _resetDataGridList: function() - { - this.baseSnapshot = WebInspector.HeapSnapshotProfileType.snapshots[this.baseSelectElement.selectedIndex]; - var lastComparator = WebInspector.HeapSnapshotDataGridList.propertyComparator("size", false); - if (this.snapshotDataGridList) - lastComparator = this.snapshotDataGridList.lastComparator; - this.snapshotDataGridList = this._createSnapshotDataGridList(); - this.snapshotDataGridList.sort(lastComparator, true); - }, - - _sortData: function() - { - var sortAscending = this.dataGrid.sortOrder === "ascending"; - var sortColumnIdentifier = this.dataGrid.sortColumnIdentifier; - var sortProperty = { - "cons": ["constructorName", null], - "count": ["count", null], - "size": ["size", "count"], - "countDelta": this.showCountDeltaAsPercent ? ["countDeltaPercent", null] : ["countDelta", null], - "sizeDelta": this.showSizeDeltaAsPercent ? ["sizeDeltaPercent", "countDeltaPercent"] : ["sizeDelta", "sizeDeltaPercent"] - }[sortColumnIdentifier]; - - this.snapshotDataGridList.sort(WebInspector.HeapSnapshotDataGridList.propertyComparator(sortProperty[0], sortProperty[1], sortAscending)); - - this.refresh(); - }, - - _updateBaseOptions: function() - { - var list = WebInspector.HeapSnapshotProfileType.snapshots; - // We're assuming that snapshots can only be added. - if (this.baseSelectElement.length === list.length) - return; - - for (var i = this.baseSelectElement.length, n = list.length; i < n; ++i) { - var baseOption = document.createElement("option"); - baseOption.label = WebInspector.UIString("Compared to %s", list[i].title); - this.baseSelectElement.appendChild(baseOption); - } - }, - - _updatePercentButton: function() - { - if (this._isShowingAsPercent) { - this.percentButton.title = WebInspector.UIString("Show absolute counts and sizes."); - this.percentButton.toggled = true; - } else { - this.percentButton.title = WebInspector.UIString("Show counts and sizes as percentages."); - this.percentButton.toggled = false; - } - }, - - _updateSummaryGraph: function() - { - this.countsSummaryBar.calculator.showAsPercent = this._isShowingAsPercent; - this.countsSummaryBar.update(this.profile.lowlevels); - - this.sizesSummaryBar.calculator.showAsPercent = this._isShowingAsPercent; - this.sizesSummaryBar.update(this.profile.lowlevels); - } -}; - -WebInspector.HeapSnapshotView.prototype.__proto__ = WebInspector.View.prototype; - -WebInspector.HeapSnapshotView.SearchHelper = { - // In comparators, we assume that a value from a node is passed as the first parameter. - operations: { LESS: function (a, b) { return a !== null && a < b; }, - LESS_OR_EQUAL: function (a, b) { return a !== null && a <= b; }, - EQUAL: function (a, b) { return a !== null && a === b; }, - GREATER_OR_EQUAL: function (a, b) { return a !== null && a >= b; }, - GREATER: function (a, b) { return a !== null && a > b; } }, - - operationParsers: { LESS: /^<(\d+)/, - LESS_OR_EQUAL: /^<=(\d+)/, - GREATER_OR_EQUAL: /^>=(\d+)/, - GREATER: /^>(\d+)/ }, - - parseOperationAndNumber: function(query) - { - var operations = WebInspector.HeapSnapshotView.SearchHelper.operations; - var parsers = WebInspector.HeapSnapshotView.SearchHelper.operationParsers; - for (var operation in parsers) { - var match = query.match(parsers[operation]); - if (match !== null) - return [operations[operation], parseFloat(match[1])]; - } - return [operations.EQUAL, parseFloat(query)]; - }, - - percents: /%$/, - - megaBytes: /MB$/i, - - kiloBytes: /KB$/i, - - bytes: /B$/i -} - -WebInspector.HeapSummaryCalculator = function(lowLevelField) -{ - this.total = 1; - this.lowLevelField = lowLevelField; -} - -WebInspector.HeapSummaryCalculator.prototype = { - computeSummaryValues: function(lowLevels) - { - var highLevels = {data: 0, code: 0}; - this.total = 0; - for (var item in lowLevels) { - var highItem = this._highFromLow(item); - if (highItem) { - var value = lowLevels[item][this.lowLevelField]; - highLevels[highItem] += value; - this.total += value; - } - } - var result = {categoryValues: highLevels}; - if (!this.showAsPercent) - result.total = this.total; - return result; - }, - - formatValue: function(value) - { - if (this.showAsPercent) - return WebInspector.UIString("%.2f%%", value / this.total * 100.0); - else - return this._valueToString(value); - }, - - get showAsPercent() - { - return this._showAsPercent; - }, - - set showAsPercent(x) - { - this._showAsPercent = x; - } -} - -WebInspector.HeapSummaryCountCalculator = function() -{ - WebInspector.HeapSummaryCalculator.call(this, "count"); -} - -WebInspector.HeapSummaryCountCalculator.prototype = { - _highFromLow: function(type) { - if (type === "CODE_TYPE" || type === "SHARED_FUNCTION_INFO_TYPE" || type === "SCRIPT_TYPE") return "code"; - if (type === "STRING_TYPE" || type === "HEAP_NUMBER_TYPE" || type.match(/^JS_/)) return "data"; - return null; - }, - - _valueToString: function(value) { - return value.toString(); - } -} - -WebInspector.HeapSummaryCountCalculator.prototype.__proto__ = WebInspector.HeapSummaryCalculator.prototype; - -WebInspector.HeapSummarySizeCalculator = function() -{ - WebInspector.HeapSummaryCalculator.call(this, "size"); -} - -WebInspector.HeapSummarySizeCalculator.prototype = { - _highFromLow: function(type) { - if (type === "CODE_TYPE" || type === "SHARED_FUNCTION_INFO_TYPE" || type === "SCRIPT_TYPE") return "code"; - if (type === "STRING_TYPE" || type === "HEAP_NUMBER_TYPE" || type.match(/^JS_/) || type.match(/_ARRAY_TYPE$/)) return "data"; - return null; - }, - - _valueToString: Number.bytesToString -} - -WebInspector.HeapSummarySizeCalculator.prototype.__proto__ = WebInspector.HeapSummaryCalculator.prototype; - -WebInspector.HeapSnapshotSidebarTreeElement = function(snapshot) -{ - this.profile = snapshot; - - WebInspector.SidebarTreeElement.call(this, "heap-snapshot-sidebar-tree-item", "", "", snapshot, false); - - this.refreshTitles(); -}; - -WebInspector.HeapSnapshotSidebarTreeElement.prototype = { - get mainTitle() - { - if (this._mainTitle) - return this._mainTitle; - return this.profile.title; - }, - - set mainTitle(x) - { - this._mainTitle = x; - this.refreshTitles(); - } -}; - -WebInspector.HeapSnapshotSidebarTreeElement.prototype.__proto__ = WebInspector.ProfileSidebarTreeElement.prototype; - -WebInspector.HeapSnapshotDataGridNodeWithRetainers = function(owningTree) -{ - this.tree = owningTree; - - WebInspector.DataGridNode.call(this, null, this._hasRetainers); - - this.addEventListener("populate", this._populate, this); -}; - -WebInspector.HeapSnapshotDataGridNodeWithRetainers.prototype = { - isEmptySet: function(set) - { - for (var x in set) - return false; - return true; - }, - - get _hasRetainers() - { - return !this.isEmptySet(this.retainers); - }, - - get _parent() - { - // For top-level nodes, return owning tree as a parent, not data grid. - return this.parent !== this.dataGrid ? this.parent : this.tree; - }, - - _populate: function(event) - { - var self = this; - this.produceDiff(this.baseRetainers, this.retainers, function(baseItem, snapshotItem) { - self.appendChild(new WebInspector.HeapSnapshotDataGridRetainerNode(self.snapshotView, baseItem, snapshotItem, self.tree)); - }); - - if (this._parent) { - var currentComparator = this._parent.lastComparator; - if (currentComparator) - this.sort(currentComparator, true); - } - - this.removeEventListener("populate", this._populate, this); - }, - - produceDiff: function(baseEntries, currentEntries, callback) - { - for (var item in currentEntries) - callback(baseEntries[item], currentEntries[item]); - - for (item in baseEntries) { - if (!(item in currentEntries)) - callback(baseEntries[item], null); - } - }, - - sort: function(comparator, force) { - if (!force && this.lastComparator === comparator) - return; - - this.children.sort(comparator); - var childCount = this.children.length; - for (var childIndex = 0; childIndex < childCount; ++childIndex) - this.children[childIndex]._recalculateSiblings(childIndex); - for (var i = 0; i < this.children.length; ++i) { - var child = this.children[i]; - if (!force && (!child.expanded || child.lastComparator === comparator)) - continue; - child.sort(comparator, force); - } - this.lastComparator = comparator; - }, - - signForDelta: function(delta) { - if (delta === 0) - return ""; - if (delta > 0) - return "+"; - else - // Math minus sign, same width as plus. - return "\u2212"; - }, - - showDeltaAsPercent: function(value) { - if (value === Number.POSITIVE_INFINITY) - return WebInspector.UIString("new"); - else if (value === Number.NEGATIVE_INFINITY) - return WebInspector.UIString("deleted"); - if (value > 1000.0) - return WebInspector.UIString("%s >1000%%", this.signForDelta(value)); - return WebInspector.UIString("%s%.2f%%", this.signForDelta(value), Math.abs(value)); - }, - - getTotalCount: function() { - if (!this._count) { - this._count = 0; - for (var i = 0, n = this.children.length; i < n; ++i) - this._count += this.children[i].count; - } - return this._count; - }, - - getTotalSize: function() { - if (!this._size) { - this._size = 0; - for (var i = 0, n = this.children.length; i < n; ++i) - this._size += this.children[i].size; - } - return this._size; - }, - - get countPercent() - { - return this.count / this._parent.getTotalCount() * 100.0; - }, - - get sizePercent() - { - return this.size / this._parent.getTotalSize() * 100.0; - }, - - get countDeltaPercent() - { - if (this.baseCount > 0) { - if (this.count > 0) - return this.countDelta / this.baseCount * 100.0; - else - return Number.NEGATIVE_INFINITY; - } else - return Number.POSITIVE_INFINITY; - }, - - get sizeDeltaPercent() - { - if (this.baseSize > 0) { - if (this.size > 0) - return this.sizeDelta / this.baseSize * 100.0; - else - return Number.NEGATIVE_INFINITY; - } else - return Number.POSITIVE_INFINITY; - }, - - get data() - { - var data = {}; - - data["cons"] = this.constructorName; - - if (this.snapshotView.showCountAsPercent) - data["count"] = WebInspector.UIString("%.2f%%", this.countPercent); - else - data["count"] = this.count; - - if (this.size !== null) { - if (this.snapshotView.showSizeAsPercent) - data["size"] = WebInspector.UIString("%.2f%%", this.sizePercent); - else - data["size"] = Number.bytesToString(this.size); - } else - data["size"] = ""; - - if (this.snapshotView.showCountDeltaAsPercent) - data["countDelta"] = this.showDeltaAsPercent(this.countDeltaPercent); - else - data["countDelta"] = WebInspector.UIString("%s%d", this.signForDelta(this.countDelta), Math.abs(this.countDelta)); - - if (this.sizeDelta !== null) { - if (this.snapshotView.showSizeDeltaAsPercent) - data["sizeDelta"] = this.showDeltaAsPercent(this.sizeDeltaPercent); - else - data["sizeDelta"] = WebInspector.UIString("%s%s", this.signForDelta(this.sizeDelta), Number.bytesToString(Math.abs(this.sizeDelta))); - } else - data["sizeDelta"] = ""; - - return data; - }, - - createCell: function(columnIdentifier) - { - var cell = WebInspector.DataGridNode.prototype.createCell.call(this, columnIdentifier); - - if ((columnIdentifier === "cons" && this._searchMatchedConsColumn) || - (columnIdentifier === "count" && this._searchMatchedCountColumn) || - (columnIdentifier === "size" && this._searchMatchedSizeColumn) || - (columnIdentifier === "countDelta" && this._searchMatchedCountDeltaColumn) || - (columnIdentifier === "sizeDelta" && this._searchMatchedSizeDeltaColumn)) - cell.addStyleClass("highlight"); - - return cell; - } -}; - -WebInspector.HeapSnapshotDataGridNodeWithRetainers.prototype.__proto__ = WebInspector.DataGridNode.prototype; - -WebInspector.HeapSnapshotDataGridNode = function(snapshotView, baseEntry, snapshotEntry, owningTree) -{ - this.snapshotView = snapshotView; - - if (!snapshotEntry) - snapshotEntry = { cons: baseEntry.cons, count: 0, size: 0, retainers: {} }; - this.constructorName = snapshotEntry.cons; - this.count = snapshotEntry.count; - this.size = snapshotEntry.size; - this.retainers = snapshotEntry.retainers; - - if (!baseEntry) - baseEntry = { count: 0, size: 0, retainers: {} }; - this.baseCount = baseEntry.count; - this.countDelta = this.count - this.baseCount; - this.baseSize = baseEntry.size; - this.sizeDelta = this.size - this.baseSize; - this.baseRetainers = baseEntry.retainers; - - WebInspector.HeapSnapshotDataGridNodeWithRetainers.call(this, owningTree); -}; - -WebInspector.HeapSnapshotDataGridNode.prototype.__proto__ = WebInspector.HeapSnapshotDataGridNodeWithRetainers.prototype; - -WebInspector.HeapSnapshotDataGridList = function(snapshotView, baseEntries, snapshotEntries) -{ - this.tree = this; - this.snapshotView = snapshotView; - this.children = []; - this.lastComparator = null; - this.populateChildren(baseEntries, snapshotEntries); -}; - -WebInspector.HeapSnapshotDataGridList.prototype = { - appendChild: function(child) - { - this.insertChild(child, this.children.length); - }, - - insertChild: function(child, index) - { - this.children.splice(index, 0, child); - }, - - removeChildren: function() - { - this.children = []; - }, - - populateChildren: function(baseEntries, snapshotEntries) - { - var self = this; - this.produceDiff(baseEntries, snapshotEntries, function(baseItem, snapshotItem) { - self.appendChild(new WebInspector.HeapSnapshotDataGridNode(self.snapshotView, baseItem, snapshotItem, self)); - }); - }, - - produceDiff: WebInspector.HeapSnapshotDataGridNodeWithRetainers.prototype.produceDiff, - sort: WebInspector.HeapSnapshotDataGridNodeWithRetainers.prototype.sort, - getTotalCount: WebInspector.HeapSnapshotDataGridNodeWithRetainers.prototype.getTotalCount, - getTotalSize: WebInspector.HeapSnapshotDataGridNodeWithRetainers.prototype.getTotalSize -}; - -WebInspector.HeapSnapshotDataGridList.propertyComparators = [{}, {}]; - -WebInspector.HeapSnapshotDataGridList.propertyComparator = function(property, property2, isAscending) -{ - var propertyHash = property + "#" + property2; - var comparator = this.propertyComparators[(isAscending ? 1 : 0)][propertyHash]; - if (!comparator) { - comparator = function(lhs, rhs) { - var l = lhs[property], r = rhs[property]; - if ((l === null || r === null) && property2 !== null) - l = lhs[property2], r = rhs[property2]; - var result = l < r ? -1 : (l > r ? 1 : 0); - return isAscending ? result : -result; - }; - this.propertyComparators[(isAscending ? 1 : 0)][propertyHash] = comparator; - } - return comparator; -}; - -WebInspector.HeapSnapshotDataGridRetainerNode = function(snapshotView, baseEntry, snapshotEntry, owningTree) -{ - this.snapshotView = snapshotView; - - if (!snapshotEntry) - snapshotEntry = { cons: baseEntry.cons, count: 0, clusters: {} }; - this.constructorName = snapshotEntry.cons; - this.count = snapshotEntry.count; - this.retainers = this._calculateRetainers(this.snapshotView.profile, snapshotEntry.clusters); - - if (!baseEntry) - baseEntry = { count: 0, clusters: {} }; - this.baseCount = baseEntry.count; - this.countDelta = this.count - this.baseCount; - this.baseRetainers = this._calculateRetainers(this.snapshotView.baseSnapshot, baseEntry.clusters); - - this.size = null; - this.sizeDelta = null; - - WebInspector.HeapSnapshotDataGridNodeWithRetainers.call(this, owningTree); -} - -WebInspector.HeapSnapshotDataGridRetainerNode.prototype = { - get sizePercent() - { - return null; - }, - - get sizeDeltaPercent() - { - return null; - }, - - _calculateRetainers: function(snapshot, clusters) { - var retainers = {}; - if (this.isEmptySet(clusters)) { - if (this.constructorName in snapshot.entries) - return snapshot.entries[this.constructorName].retainers; - } else { - // In case when an entry is retained by clusters, we need to gather up the list - // of retainers by merging retainers of every cluster. - // E.g. having such a tree: - // A - // Object:1 10 - // X 3 - // Y 4 - // Object:2 5 - // X 6 - // - // will result in a following retainers list: X 9, Y 4. - for (var clusterName in clusters) { - if (clusterName in snapshot.clusters) { - var clusterRetainers = snapshot.clusters[clusterName].retainers; - for (var clusterRetainer in clusterRetainers) { - var clusterRetainerEntry = clusterRetainers[clusterRetainer]; - if (!(clusterRetainer in retainers)) - retainers[clusterRetainer] = { cons: clusterRetainerEntry.cons, count: 0, clusters: {} }; - retainers[clusterRetainer].count += clusterRetainerEntry.count; - for (var clusterRetainerCluster in clusterRetainerEntry.clusters) - retainers[clusterRetainer].clusters[clusterRetainerCluster] = true; - } - } - } - } - return retainers; - } -}; - -WebInspector.HeapSnapshotDataGridRetainerNode.prototype.__proto__ = WebInspector.HeapSnapshotDataGridNodeWithRetainers.prototype; - - -WebInspector.HeapSnapshotProfileType = function() -{ - WebInspector.ProfileType.call(this, WebInspector.HeapSnapshotProfileType.TypeId, WebInspector.UIString("HEAP SNAPSHOTS")); -} - -WebInspector.HeapSnapshotProfileType.TypeId = "HEAP"; - -WebInspector.HeapSnapshotProfileType.snapshots = []; - -WebInspector.HeapSnapshotProfileType.prototype = { - get buttonTooltip() - { - return WebInspector.UIString("Take heap snapshot."); - }, - - get buttonStyle() - { - return "heap-snapshot-status-bar-item status-bar-item"; - }, - - buttonClicked: function() - { - devtools.tools.getProfilerAgent().startProfiling(devtools.ProfilerAgent.ProfilerModules.PROFILER_MODULE_HEAP_SNAPSHOT); - }, - - get welcomeMessage() - { - return WebInspector.UIString("Get a heap snapshot by pressing the %s button on the status bar."); - }, - - createSidebarTreeElementForProfile: function(profile) - { - var element = new WebInspector.HeapSnapshotSidebarTreeElement(profile); - element.small = false; - return element; - }, - - createView: function(profile) - { - return new WebInspector.HeapSnapshotView(WebInspector.panels.profiles, profile); - } -} - -WebInspector.HeapSnapshotProfileType.prototype.__proto__ = WebInspector.ProfileType.prototype; - - -(function() { - var originalCreatePanels = WebInspector._createPanels; - WebInspector._createPanels = function() { - originalCreatePanels.apply(this, arguments); - if (WebInspector.panels.profiles) - WebInspector.panels.profiles.registerProfileType(new WebInspector.HeapSnapshotProfileType()); - } -})(); diff --git a/WebKit/chromium/src/js/ProfilerAgent.js b/WebKit/chromium/src/js/ProfilerAgent.js deleted file mode 100644 index 7f74595..0000000 --- a/WebKit/chromium/src/js/ProfilerAgent.js +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Copyright (C) 2010 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/** - * @fileoverview Provides communication interface to remote v8 profiler. - */ - -/** - * @constructor - */ -devtools.ProfilerAgent = function() -{ - - /** - * Profiler log position. - * @type {number} - */ - this._logPosition = 0; - - /** - * Last requested log position. - * @type {number} - */ - this._lastRequestedLogPosition = -1; - - /** - * Profiler processor instance. - * @type {devtools.profiler.Processor} - */ - this._profilerProcessor = new devtools.profiler.Processor(); -}; - - -/** - * A copy of enum from include/v8.h - * @enum {number} - */ -devtools.ProfilerAgent.ProfilerModules = { - PROFILER_MODULE_NONE: 0, - PROFILER_MODULE_CPU: 1, - PROFILER_MODULE_HEAP_STATS: 1 << 1, - PROFILER_MODULE_JS_CONSTRUCTORS: 1 << 2, - PROFILER_MODULE_HEAP_SNAPSHOT: 1 << 16 -}; - - -/** - * Initializes profiling state. - */ -devtools.ProfilerAgent.prototype.initializeProfiling = function() -{ - this._getNextLogLines(false); -}; - - -/** - * Requests the next chunk of log lines. - * @param {boolean} immediately Do not postpone the request. - * @private - */ -devtools.ProfilerAgent.prototype._getNextLogLines = function(immediately) -{ - if (this._lastRequestedLogPosition == this._logPosition) - return; - var pos = this._lastRequestedLogPosition = this._logPosition; - - var callId = WebInspector.Callback.wrap(this._didGetProfilerLogLines.bind(this)); - if (immediately) - InspectorBackend.getProfilerLogLines(callId, pos); - else { - function delayedRequest() - { - InspectorBackend.getProfilerLogLines(callId, pos); - } - setTimeout(delayedRequest, 500); - } -}; - - -/** - * Starts profiling. - * @param {number} modules List of modules to enable. - */ -devtools.ProfilerAgent.prototype.startProfiling = function(modules) -{ - if (modules & devtools.ProfilerAgent.ProfilerModules.PROFILER_MODULE_HEAP_SNAPSHOT) { - InspectorBackend.takeHeapSnapshot(); - // Active modules will not change, instead, a snapshot will be logged. - this._getNextLogLines(); - } -}; - - -/** - * Handles a portion of a profiler log retrieved by getLogLines call. - * @param {number} pos Current position in log. - * @param {string} log A portion of profiler log. - */ -devtools.ProfilerAgent.prototype._didGetProfilerLogLines = function(pos, log) -{ - this._logPosition = pos; - if (log.length > 0) { - this._profilerProcessor.processLogChunk(log); - this._getNextLogLines(); - } else { - // Allow re-reading from the last position. - this._lastRequestedLogPosition = this._logPosition - 1; - } -}; - -WebInspector.didGetProfilerLogLines = WebInspector.Callback.processCallback; diff --git a/WebKit/chromium/src/js/ProfilerProcessor.js b/WebKit/chromium/src/js/ProfilerProcessor.js deleted file mode 100644 index 61714e8..0000000 --- a/WebKit/chromium/src/js/ProfilerProcessor.js +++ /dev/null @@ -1,543 +0,0 @@ -/* - * Copyright (C) 2010 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/** - * @fileoverview Profiler processor is used to process log file produced - * by V8 and produce an internal profile representation which is used - * for building profile views in "Profiles" tab. - */ - - -/** - * Creates a Profile View builder object compatible with WebKit Profiler UI. - * - * @param {number} samplingRate Number of ms between profiler ticks. - * @constructor - */ -devtools.profiler.WebKitViewBuilder = function(samplingRate) -{ - devtools.profiler.ViewBuilder.call(this, samplingRate); -}; -devtools.profiler.WebKitViewBuilder.prototype.__proto__ = devtools.profiler.ViewBuilder.prototype; - - -/** - * @override - */ -devtools.profiler.WebKitViewBuilder.prototype.createViewNode = function(funcName, totalTime, selfTime, head) -{ - return new devtools.profiler.WebKitViewNode(funcName, totalTime, selfTime, head); -}; - - -/** - * Constructs a Profile View node object for displaying in WebKit Profiler UI. - * - * @param {string} internalFuncName A fully qualified function name. - * @param {number} totalTime Amount of time that application spent in the - * corresponding function and its descendants (not that depending on - * profile they can be either callees or callers.) - * @param {number} selfTime Amount of time that application spent in the - * corresponding function only. - * @param {devtools.profiler.ProfileView.Node} head Profile view head. - * @constructor - */ -devtools.profiler.WebKitViewNode = function(internalFuncName, totalTime, selfTime, head) -{ - devtools.profiler.ProfileView.Node.call(this, internalFuncName, totalTime, selfTime, head); - this.initFuncInfo_(); - this.callUID = internalFuncName; -}; -devtools.profiler.WebKitViewNode.prototype.__proto__ = devtools.profiler.ProfileView.Node.prototype; - - -/** - * RegEx for stripping V8's prefixes of compiled functions. - */ -devtools.profiler.WebKitViewNode.FUNC_NAME_STRIP_RE = /^(?:LazyCompile|Function|Callback): (.*)$/; - - -/** - * RegEx for extracting script source URL and line number. - */ -devtools.profiler.WebKitViewNode.FUNC_NAME_PARSE_RE = /^((?:get | set )?[^ ]+) (.*):(\d+)( \{\d+\})?$/; - - -/** - * Inits "functionName", "url", and "lineNumber" fields using "internalFuncName" - * field. - * @private - */ -devtools.profiler.WebKitViewNode.prototype.initFuncInfo_ = function() -{ - var nodeAlias = devtools.profiler.WebKitViewNode; - this.functionName = this.internalFuncName; - - var strippedName = nodeAlias.FUNC_NAME_STRIP_RE.exec(this.functionName); - if (strippedName) - this.functionName = strippedName[1]; - - var parsedName = nodeAlias.FUNC_NAME_PARSE_RE.exec(this.functionName); - if (parsedName) { - this.functionName = parsedName[1]; - if (parsedName[4]) - this.functionName += parsedName[4]; - this.url = parsedName[2]; - this.lineNumber = parsedName[3]; - } else { - this.url = ''; - this.lineNumber = 0; - } -}; - - -/** - * Ancestor of a profile object that leaves out only JS-related functions. - * @constructor - */ -devtools.profiler.JsProfile = function() -{ - devtools.profiler.Profile.call(this); -}; -devtools.profiler.JsProfile.prototype.__proto__ = devtools.profiler.Profile.prototype; - - -/** - * RegExp that leaves only non-native JS functions. - * @type {RegExp} - */ -devtools.profiler.JsProfile.JS_NON_NATIVE_RE = new RegExp( - "^" + - "(?:Callback:)|" + - "(?:Script: (?!native))|" + - "(?:(?:LazyCompile|Function): [^ ]*(?: (?!native )[^ ]+:\\d+)?$)"); - - -/** - * @override - */ -devtools.profiler.JsProfile.prototype.skipThisFunction = function(name) -{ - return !devtools.profiler.JsProfile.JS_NON_NATIVE_RE.test(name); -}; - - -/** - * Profiler processor. Consumes profiler log and builds profile views. - * FIXME: change field naming style to use trailing underscore. - * - * @param {function(devtools.profiler.ProfileView)} newProfileCallback Callback - * that receives a new processed profile. - * @constructor - */ -devtools.profiler.Processor = function() -{ - var dispatches = { - "code-creation": { - parsers: [null, this.createAddressParser("code"), parseInt, null], - processor: this.processCodeCreation_, backrefs: true, - needsProfile: true }, - "code-move": { parsers: [this.createAddressParser("code"), - this.createAddressParser("code-move-to")], - processor: this.processCodeMove_, backrefs: true, - needsProfile: true }, - "code-delete": { parsers: [this.createAddressParser("code")], - processor: this.processCodeDelete_, backrefs: true, - needsProfile: true }, - "function-creation": { parsers: [this.createAddressParser("code"), - this.createAddressParser("function-obj")], - processor: this.processFunctionCreation_, backrefs: true }, - "function-move": { parsers: [this.createAddressParser("code"), - this.createAddressParser("code-move-to")], - processor: this.processFunctionMove_, backrefs: true }, - "function-delete": { parsers: [this.createAddressParser("code")], - processor: this.processFunctionDelete_, backrefs: true }, - "tick": { parsers: [this.createAddressParser("code"), - this.createAddressParser("stack"), parseInt, "var-args"], - processor: this.processTick_, backrefs: true, needProfile: true }, - "profiler": { parsers: [null, "var-args"], - processor: this.processProfiler_, needsProfile: false }, - "heap-sample-begin": { parsers: [null, null, parseInt], - processor: this.processHeapSampleBegin_ }, - "heap-sample-stats": { parsers: [null, null, parseInt, parseInt], - processor: this.processHeapSampleStats_ }, - "heap-sample-item": { parsers: [null, parseInt, parseInt], - processor: this.processHeapSampleItem_ }, - "heap-js-cons-item": { parsers: [null, parseInt, parseInt], - processor: this.processHeapJsConsItem_ }, - "heap-js-ret-item": { parsers: [null, "var-args"], - processor: this.processHeapJsRetItem_ }, - "heap-sample-end": { parsers: [null, null], - processor: this.processHeapSampleEnd_ }, - // Not used in DevTools Profiler. - "shared-library": null, - // Obsolete row types. - "code-allocate": null, - "begin-code-region": null, - "end-code-region": null}; - - if (devtools.profiler.Profile.VERSION === 2) { - dispatches["tick"] = { parsers: [this.createAddressParser("code"), - this.createAddressParser("stack"), - this.createAddressParser("func"), parseInt, "var-args"], - processor: this.processTickV2_, backrefs: true }; - } - - devtools.profiler.LogReader.call(this, dispatches); - - /** - * Callback that is called when a new profile is encountered in the log. - * @type {function()} - */ - this.startedProfileProcessing_ = null; - - /** - * Callback that is called periodically to display processing status. - * @type {function()} - */ - this.profileProcessingStatus_ = null; - - /** - * Callback that is called when a profile has been processed and is ready - * to be shown. - * @type {function(devtools.profiler.ProfileView)} - */ - this.finishedProfileProcessing_ = null; - - /** - * The current profile. - * @type {devtools.profiler.JsProfile} - */ - this.currentProfile_ = null; - - /** - * Builder of profile views. Created during "profiler,begin" event processing. - * @type {devtools.profiler.WebKitViewBuilder} - */ - this.viewBuilder_ = null; - - /** - * Next profile id. - * @type {number} - */ - this.profileId_ = 1; - - /** - * Counter for processed ticks. - * @type {number} - */ - this.ticksCount_ = 0; - - /** - * Interval id for updating processing status. - * @type {number} - */ - this.processingInterval_ = null; - - /** - * The current heap snapshot. - * @type {string} - */ - this.currentHeapSnapshot_ = null; - - /** - * Next heap snapshot id. - * @type {number} - */ - this.heapSnapshotId_ = 1; -}; -devtools.profiler.Processor.prototype.__proto__ = devtools.profiler.LogReader.prototype; - - -/** - * @override - */ -devtools.profiler.Processor.prototype.printError = function(str) -{ - WebInspector.log(str); -}; - - -/** - * @override - */ -devtools.profiler.Processor.prototype.skipDispatch = function(dispatch) -{ - return dispatch.needsProfile && this.currentProfile_ === null; -}; - - -/** - * Sets profile processing callbacks. - * - * @param {function()} started Started processing callback. - * @param {function(devtools.profiler.ProfileView)} finished Finished - * processing callback. - */ -devtools.profiler.Processor.prototype.setCallbacks = function(started, processing, finished) -{ - this.startedProfileProcessing_ = started; - this.profileProcessingStatus_ = processing; - this.finishedProfileProcessing_ = finished; -}; - - -/** - * An address for the fake "(program)" entry. WebKit's visualisation - * has assumptions on how the top of the call tree should look like, - * and we need to add a fake entry as the topmost function. This - * address is chosen because it's the end address of the first memory - * page, which is never used for code or data, but only as a guard - * page for catching AV errors. - * - * @type {number} - */ -devtools.profiler.Processor.PROGRAM_ENTRY = 0xffff; -/** - * @type {string} - */ -devtools.profiler.Processor.PROGRAM_ENTRY_STR = "0xffff"; - - -/** - * Sets new profile callback. - * @param {function(devtools.profiler.ProfileView)} callback Callback function. - */ -devtools.profiler.Processor.prototype.setNewProfileCallback = function(callback) -{ - this.newProfileCallback_ = callback; -}; - - -devtools.profiler.Processor.prototype.processProfiler_ = function(state, params) -{ - switch (state) { - case "resume": - if (this.currentProfile_ === null) { - this.currentProfile_ = new devtools.profiler.JsProfile(); - // see the comment for devtools.profiler.Processor.PROGRAM_ENTRY - this.currentProfile_.addCode("Function", "(program)", devtools.profiler.Processor.PROGRAM_ENTRY, 1); - if (this.startedProfileProcessing_) - this.startedProfileProcessing_(); - this.ticksCount_ = 0; - var self = this; - if (this.profileProcessingStatus_) { - this.processingInterval_ = window.setInterval( - function() { self.profileProcessingStatus_(self.ticksCount_); }, - 1000); - } - } - break; - case "pause": - if (this.currentProfile_ !== null) { - window.clearInterval(this.processingInterval_); - this.processingInterval_ = null; - if (this.finishedProfileProcessing_) - this.finishedProfileProcessing_(this.createProfileForView()); - this.currentProfile_ = null; - } - break; - case "begin": - var samplingRate = NaN; - if (params.length > 0) - samplingRate = parseInt(params[0]); - if (isNaN(samplingRate)) - samplingRate = 1; - this.viewBuilder_ = new devtools.profiler.WebKitViewBuilder(samplingRate); - break; - // These events are valid but aren't used. - case "compression": - case "end": break; - default: - throw new Error("unknown profiler state: " + state); - } -}; - - -devtools.profiler.Processor.prototype.processCodeCreation_ = function(type, start, size, name) -{ - this.currentProfile_.addCode(this.expandAlias(type), name, start, size); -}; - - -devtools.profiler.Processor.prototype.processCodeMove_ = function(from, to) -{ - this.currentProfile_.moveCode(from, to); -}; - - -devtools.profiler.Processor.prototype.processCodeDelete_ = function(start) -{ - this.currentProfile_.deleteCode(start); -}; - - -devtools.profiler.Processor.prototype.processFunctionCreation_ = function(functionAddr, codeAddr) -{ - this.currentProfile_.addCodeAlias(functionAddr, codeAddr); -}; - - -devtools.profiler.Processor.prototype.processFunctionMove_ = function(from, to) -{ - this.currentProfile_.safeMoveDynamicCode(from, to); -}; - - -devtools.profiler.Processor.prototype.processFunctionDelete_ = function(start) -{ - this.currentProfile_.safeDeleteDynamicCode(start); -}; - - -// TODO(mnaganov): Remove after next V8 roll. -devtools.profiler.Processor.prototype.processTick_ = function(pc, sp, vmState, stack) -{ - // see the comment for devtools.profiler.Processor.PROGRAM_ENTRY - stack.push(devtools.profiler.Processor.PROGRAM_ENTRY_STR); - this.currentProfile_.recordTick(this.processStack(pc, stack)); - this.ticksCount_++; -}; - - -devtools.profiler.Processor.prototype.processTickV2_ = function(pc, sp, func, vmState, stack) -{ - // see the comment for devtools.profiler.Processor.PROGRAM_ENTRY - stack.push(devtools.profiler.Processor.PROGRAM_ENTRY_STR); - - - if (func) { - var funcEntry = this.currentProfile_.findEntry(func); - if (!funcEntry || !funcEntry.isJSFunction || !funcEntry.isJSFunction()) - func = 0; - else { - var currEntry = this.currentProfile_.findEntry(pc); - if (!currEntry || !currEntry.isJSFunction || currEntry.isJSFunction()) { - func = 0; - } - } - } - - this.currentProfile_.recordTick(this.processStack(pc, func, stack)); - this.ticksCount_++; -}; - - -devtools.profiler.Processor.prototype.processHeapSampleBegin_ = function(space, state, ticks) -{ - if (space !== "Heap") return; - this.currentHeapSnapshot_ = { - number: this.heapSnapshotId_++, - entries: {}, - clusters: {}, - lowlevels: {}, - ticks: ticks - }; -}; - - -devtools.profiler.Processor.prototype.processHeapSampleStats_ = function(space, state, capacity, used) -{ - if (space !== "Heap") return; -}; - - -devtools.profiler.Processor.prototype.processHeapSampleItem_ = function(item, number, size) -{ - if (!this.currentHeapSnapshot_) return; - this.currentHeapSnapshot_.lowlevels[item] = { - type: item, count: number, size: size - }; -}; - - -devtools.profiler.Processor.prototype.processHeapJsConsItem_ = function(item, number, size) -{ - if (!this.currentHeapSnapshot_) return; - this.currentHeapSnapshot_.entries[item] = { - cons: item, count: number, size: size, retainers: {} - }; -}; - - -devtools.profiler.Processor.prototype.processHeapJsRetItem_ = function(item, retainersArray) -{ - if (!this.currentHeapSnapshot_) return; - var rawRetainers = {}; - for (var i = 0, n = retainersArray.length; i < n; ++i) { - var entry = retainersArray[i].split(";"); - rawRetainers[entry[0]] = parseInt(entry[1], 10); - } - - function mergeRetainers(entry) { - for (var rawRetainer in rawRetainers) { - var consName = rawRetainer.indexOf(":") !== -1 ? rawRetainer.split(":")[0] : rawRetainer; - if (!(consName in entry.retainers)) - entry.retainers[consName] = { cons: consName, count: 0, clusters: {} }; - var retainer = entry.retainers[consName]; - retainer.count += rawRetainers[rawRetainer]; - if (consName !== rawRetainer) - retainer.clusters[rawRetainer] = true; - } - } - - if (item.indexOf(":") !== -1) { - // Array, Function, or Object instances cluster case. - if (!(item in this.currentHeapSnapshot_.clusters)) { - this.currentHeapSnapshot_.clusters[item] = { - cons: item, retainers: {} - }; - } - mergeRetainers(this.currentHeapSnapshot_.clusters[item]); - item = item.split(":")[0]; - } - mergeRetainers(this.currentHeapSnapshot_.entries[item]); -}; - - -devtools.profiler.Processor.prototype.processHeapSampleEnd_ = function(space, state) -{ - if (space !== "Heap") return; - var snapshot = this.currentHeapSnapshot_; - this.currentHeapSnapshot_ = null; - WebInspector.panels.profiles.addSnapshot(snapshot); -}; - - -/** - * Creates a profile for further displaying in ProfileView. - */ -devtools.profiler.Processor.prototype.createProfileForView = function() -{ - var profile = this.viewBuilder_.buildView(this.currentProfile_.getTopDownProfile()); - profile.uid = this.profileId_++; - profile.title = UserInitiatedProfileName + "." + profile.uid; - return profile; -}; diff --git a/WebKit/chromium/src/js/devTools.css b/WebKit/chromium/src/js/devTools.css index dfcaadf..9495fb8 100755 --- a/WebKit/chromium/src/js/devTools.css +++ b/WebKit/chromium/src/js/devTools.css @@ -37,118 +37,6 @@ body.platform-linux #scripts-files { line-height: 12px; } -/* Heap Profiler Styles */ - -.heap-snapshot-status-bar-item .glyph { - -webkit-mask-image: url(Images/focusButtonGlyph.png); -} - -.heap-snapshot-sidebar-tree-item .icon { - content: url(Images/profileIcon.png); -} - -.heap-snapshot-sidebar-tree-item.small .icon { - content: url(Images/profileSmallIcon.png); -} - -.heap-snapshot-view { - display: none; - overflow: hidden; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; -} - -.heap-snapshot-view.visible { - display: block; -} - -.heap-snapshot-view .data-grid { - border: none; - max-height: 100%; - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 93px; -} - -.heap-snapshot-view .data-grid th.count-column { - text-align: center; -} - -.heap-snapshot-view .data-grid td.count-column { - text-align: right; -} - -.heap-snapshot-view .data-grid th.size-column { - text-align: center; -} - -.heap-snapshot-view .data-grid td.size-column { - text-align: right; -} - -.heap-snapshot-view .data-grid th.countDelta-column { - text-align: center; -} - -.heap-snapshot-view .data-grid td.countDelta-column { - text-align: right; -} - -.heap-snapshot-view .data-grid th.sizeDelta-column { - text-align: center; -} - -.heap-snapshot-view .data-grid td.sizeDelta-column { - text-align: right; -} - -#heap-snapshot-summary-container { - position: absolute; - padding-top: 20px; - bottom: 0; - left: 0; - right: 0; - height: 93px; - margin-left: -1px; - border-left: 1px solid rgb(102, 102, 102); - background-color: rgb(101, 111, 130); - background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0))); - background-repeat: repeat-x; - background-position: top; - text-align: center; - text-shadow: black 0 1px 1px; - white-space: nowrap; - color: white; - -webkit-background-size: 1px 6px; - -webkit-background-origin: padding; - -webkit-background-clip: padding; -} - -.heap-snapshot-summary { - display: inline-block; - width: 50%; - min-width: 300px; - position: relative; -} - -.heap-snapshot-summary canvas.summary-graph { - width: 225px; -} - -.heap-snapshot-summary-label { - font-size: 12px; - font-weight: bold; - position: absolute; - top: 1px; - width: 50%; - left: 25%; -} - .section > .header { border: 1px solid rgb(92, 116, 157); background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(105, 133, 180)), to(rgb(92, 116, 157))); diff --git a/WebKit/chromium/src/win/WebInputEventFactory.cpp b/WebKit/chromium/src/win/WebInputEventFactory.cpp index a5bd935..4d83f22 100644 --- a/WebKit/chromium/src/win/WebInputEventFactory.cpp +++ b/WebKit/chromium/src/win/WebInputEventFactory.cpp @@ -398,11 +398,11 @@ WebMouseWheelEvent WebInputEventFactory::mouseWheelEvent(HWND hwnd, UINT message // // How many pixels should we scroll per line? Gecko uses the height of the // current line, which means scroll distance changes as you go through the - // page or go to different pages. IE 7 is ~50 px/line, although the value - // seems to vary slightly by page and zoom level. Since IE 7 has a smoothing - // algorithm on scrolling, it can get away with slightly larger scroll values - // without feeling jerky. Here we use 100 px per three lines (the default - // scroll amount is three lines per wheel tick). + // page or go to different pages. IE 8 is ~60 px/line, although the value + // seems to vary slightly by page and zoom level. Also, IE defaults to + // smooth scrolling while Firefox doesn't, so it can get away with somewhat + // larger scroll values without feeling as jerky. Here we use 100 px per + // three lines (the default scroll amount is three lines per wheel tick). static const float scrollbarPixelsPerLine = 100.0f / 3.0f; wheelDelta /= WHEEL_DELTA; float scrollDelta = wheelDelta; diff --git a/WebKit/efl/CMakeListsEfl.txt b/WebKit/efl/CMakeListsEfl.txt index cdb24ff..7b5865b 100644 --- a/WebKit/efl/CMakeListsEfl.txt +++ b/WebKit/efl/CMakeListsEfl.txt @@ -21,12 +21,23 @@ LIST(APPEND WebKit_INCLUDE_DIRECTORIES ${SQLITE_INCLUDE_DIRS} ) +IF (ENABLE_VIDEO) +LIST(APPEND WebKit_INCLUDE_DIRECTORIES + "${WEBCORE_DIR}/platform/graphics/gstreamer" + ${Gstreamer-App_INCLUDE_DIRS} + ${Gstreamer-Interfaces_INCLUDE_DIRS} + ${Gstreamer-Pbutils_INCLUDE_DIRS} + ${Gstreamer-Video_INCLUDE_DIRS} +) +ENDIF() + LIST(APPEND WebKit_SOURCES efl/WebCoreSupport/ChromeClientEfl.cpp efl/WebCoreSupport/ContextMenuClientEfl.cpp efl/WebCoreSupport/DragClientEfl.cpp efl/WebCoreSupport/EditorClientEfl.cpp efl/WebCoreSupport/FrameLoaderClientEfl.cpp + efl/WebCoreSupport/FullscreenVideoControllerEfl.cpp efl/WebCoreSupport/InspectorClientEfl.cpp efl/ewk/ewk_contextmenu.cpp diff --git a/WebKit/efl/ChangeLog b/WebKit/efl/ChangeLog index e1ce89a..bafa48d 100644 --- a/WebKit/efl/ChangeLog +++ b/WebKit/efl/ChangeLog @@ -1,3 +1,150 @@ +2010-08-31 Dave Hyatt + + Reviewed by Sam Weinig. + + https://bugs.webkit.org/show_bug.cgi?id=44863, disentangle style recalc from layout, so that + the former can occur in more places without having to do the latter. + + * ewk/ewk_view.cpp: + (ewk_view_layout_if_needed_recursive): + +2010-08-31 Sam Weinig + + Reviewed by Darin Adler. + + Add ability to count text matches without marking + https://bugs.webkit.org/show_bug.cgi?id=43996 + + * ewk/ewk_frame.cpp: + (ewk_frame_text_matches_mark): Switched to call + countMatchesForText() instead of markAllMatchesForText(). + +2010-08-31 Gyuyoung Kim + + Unreviewed build fix. + + [EFL] Build break for r66456 + https://bugs.webkit.org/post_bug.cgi + + Replace firstRectsForMarkers with renderedRectsForMarkers. + + * ewk/ewk_frame.cpp: + (ewk_frame_text_matches_nth_pos_get): + +2010-08-30 Kamil Blank + + Reviewed by Adam Barth. + + [EFL] Added API which returns position of n-th text matches mark + https://bugs.webkit.org/show_bug.cgi?id=44258 + + * ewk/ewk_frame.cpp: + (_ewk_frame_rect_cmp_less_than): Private. + (_ewk_frame_rect_is_negative_value): Private. + (ewk_frame_text_matches_nth_pos_get): Added. Function returns position of + n-th text match in frame. + * ewk/ewk_frame.h: + +2010-08-30 Ryuan Choi + + Reviewed by Adam Barth. + + [EFL]Url of HistoryItem was broken for special character like korean + https://bugs.webkit.org/show_bug.cgi?id=44495 + + Remove unnecessary code. This makes a bug with complicated URL. + + * ewk/ewk_frame.cpp: + (ewk_frame_view_state_save): + +2010-08-30 Mikołaj Małecki + + Reviewed by Kenneth Rohde Christiansen + + [EFL] Added initial setting to turn on offline pages. + https://bugs.webkit.org/show_bug.cgi?id=44239 + + * ewk/ewk_main.cpp: Torn off non-EFL init to _ewk_init_body + (ewk_init): Changed non-EFL init to call _ewk_init_body + (_ewk_init_body): Moved internal init here and added cache directory path setting. + * ewk/ewk_view.cpp: Added new config items: offline_app_cache and cache_directory + (_ewk_view_priv_new): creating cache_directory string + (_ewk_view_priv_del): deleting cache_directory string + (ewk_view_setting_offline_app_cache_get): + (ewk_view_setting_offline_app_cache_set): + (ewk_view_setting_cache_directory_get): + (ewk_view_setting_cache_directory_set): + * ewk/ewk_view.h: added offline_app_cache and cache_directory props to ewk API + +2010-08-26 Miroslaw Szymanski + + Reviewed by Kenneth Rohde Christiansen. + + [EFL] Added new callback when view's size is changed to fix issue with changing layout size + https://bugs.webkit.org/show_bug.cgi?id=44337 + + * ewk/ewk_view.cpp: + (_ewk_view_smart_calculate): + +2010-08-25 Gyuyoung Kim + + Reviewed by Antonio Gomes. + + [EFL] Add dummy FullScreenVideoControllerEfl to WebKit EFL + https://bugs.webkit.org/show_bug.cgi?id=44590 + + Add FullScreenVideoControllerEfl to WebCoreSupport. However, + this is not implemented yet. + + * CMakeListsEfl.txt: + * WebCoreSupport/FullscreenVideoControllerEfl.cpp: Added. + (FullscreenVideoController::FullscreenVideoController): + (FullscreenVideoController::~FullscreenVideoController): + (FullscreenVideoController::setMediaElement): + (FullscreenVideoController::showHud): + (FullscreenVideoController::hideHud): + (FullscreenVideoController::enterFullscreen): + (FullscreenVideoController::updateHudPosition): + (FullscreenVideoController::exitOnUserRequest): + (FullscreenVideoController::exitFullscreen): + (FullscreenVideoController::canPlay): + (FullscreenVideoController::play): + (FullscreenVideoController::pause): + (FullscreenVideoController::playStateChanged): + (FullscreenVideoController::togglePlay): + (FullscreenVideoController::volume): + (FullscreenVideoController::muted): + (FullscreenVideoController::setVolume): + (FullscreenVideoController::volumeChanged): + (FullscreenVideoController::muteChanged): + (FullscreenVideoController::currentTime): + (FullscreenVideoController::setCurrentTime): + (FullscreenVideoController::duration): + (FullscreenVideoController::percentLoaded): + (FullscreenVideoController::beginSeek): + (FullscreenVideoController::doSeek): + (FullscreenVideoController::endSeek): + (timeToString): + (FullscreenVideoController::updateHudProgressBar): + (FullscreenVideoController::createHud): + * WebCoreSupport/FullscreenVideoControllerEfl.h: Added. + (FullscreenVideoController::mediaElement): + +2010-08-25 Gyuyoung Kim + + Reviewed by Antonio Gomes. + + [EFL] Add setting API for enabling local storage. + https://bugs.webkit.org/show_bug.cgi?id=44319 + + Add API for enabling/disabling local storage. + + * ewk/ewk_view.cpp: + (_ewk_view_priv_new): + (ewk_view_setting_local_storage_get): Added + (ewk_view_setting_local_storage_set): Added + * ewk/ewk_view.h: + 2010-08-25 Jaehun Lim Reviewed by Antonio Gomes. diff --git a/WebKit/efl/WebCoreSupport/FullscreenVideoControllerEfl.cpp b/WebKit/efl/WebCoreSupport/FullscreenVideoControllerEfl.cpp new file mode 100644 index 0000000..6e5d599 --- /dev/null +++ b/WebKit/efl/WebCoreSupport/FullscreenVideoControllerEfl.cpp @@ -0,0 +1,197 @@ +/* + * Copyright (C) 2010 Igalia S.L + * Copyright (C) 2010 Samsung Electronics + * + * 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" + +#if ENABLE(VIDEO) + +#include "FullscreenVideoControllerEfl.h" + +#include "MediaPlayer.h" +#include "NotImplemented.h" + +#include + +using namespace std; +using namespace WebCore; + +FullscreenVideoController::FullscreenVideoController() + : m_hudTimeoutId(0) + , m_progressBarUpdateId(0) + , m_seekLock(false) + , m_window(0) + , m_hudWindow(0) +{ +} + +FullscreenVideoController::~FullscreenVideoController() +{ + exitFullscreen(); +} + +void FullscreenVideoController::setMediaElement(HTMLMediaElement* mediaElement) +{ + if (mediaElement == m_mediaElement) + return; + + m_mediaElement = mediaElement; + if (!m_mediaElement) { + // Can't do full-screen, just get out + exitFullscreen(); + } +} + +void FullscreenVideoController::showHud(bool autoHide) +{ + notImplemented(); +} + +void FullscreenVideoController::hideHud() +{ + notImplemented(); +} + +void FullscreenVideoController::enterFullscreen() +{ + notImplemented(); +} + +void FullscreenVideoController::updateHudPosition() +{ + notImplemented(); +} + +void FullscreenVideoController::exitOnUserRequest() +{ + notImplemented(); +} + +void FullscreenVideoController::exitFullscreen() +{ + notImplemented(); +} + +bool FullscreenVideoController::canPlay() const +{ + notImplemented(); +} + +void FullscreenVideoController::play() +{ + notImplemented(); +} + +void FullscreenVideoController::pause() +{ + notImplemented(); +} + +void FullscreenVideoController::playStateChanged() +{ + notImplemented(); +} + +void FullscreenVideoController::togglePlay() +{ + notImplemented(); +} + +float FullscreenVideoController::volume() const +{ + notImplemented(); + return 0; +} + +bool FullscreenVideoController::muted() const +{ + notImplemented(); + return false; +} + +void FullscreenVideoController::setVolume(float volume) +{ + notImplemented(); +} + +void FullscreenVideoController::volumeChanged() +{ + notImplemented(); +} + +void FullscreenVideoController::muteChanged() +{ + notImplemented(); +} + +float FullscreenVideoController::currentTime() const +{ + notImplemented(); + return 0; +} + +void FullscreenVideoController::setCurrentTime(float value) +{ + notImplemented(); +} + +float FullscreenVideoController::duration() const +{ + notImplemented(); + return 0; +} + +float FullscreenVideoController::percentLoaded() const +{ + notImplemented(); + return 0; +} + +void FullscreenVideoController::beginSeek() +{ + notImplemented(); +} + +void FullscreenVideoController::doSeek() +{ + notImplemented(); +} + +void FullscreenVideoController::endSeek() +{ + notImplemented(); +} + +static String timeToString(float time) +{ + notImplemented(); +} + +bool FullscreenVideoController::updateHudProgressBar() +{ + notImplemented(); + return false; +} + +void FullscreenVideoController::createHud() +{ + notImplemented(); +} + +#endif diff --git a/WebKit/efl/WebCoreSupport/FullscreenVideoControllerEfl.h b/WebKit/efl/WebCoreSupport/FullscreenVideoControllerEfl.h new file mode 100644 index 0000000..4bbae25 --- /dev/null +++ b/WebKit/efl/WebCoreSupport/FullscreenVideoControllerEfl.h @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2010 Igalia S.L + * Copyright (C) 2010 Samsung Electronics + * + * 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. + */ + +#ifndef FullscreenVideoControllerEfl_h +#define FullscreenVideoControllerEfl_h + +#if ENABLE(VIDEO) + +#include "GStreamerGWorld.h" +#include "HTMLMediaElement.h" +#include + +class FullscreenVideoController : public Noncopyable { +public: + FullscreenVideoController(); + virtual ~FullscreenVideoController(); + + void setMediaElement(WebCore::HTMLMediaElement*); + WebCore::HTMLMediaElement* mediaElement() const { return m_mediaElement.get(); } + + void enterFullscreen(); + void exitFullscreen(); + + void exitOnUserRequest(); + void togglePlay(); + void beginSeek(); + void doSeek(); + void endSeek(); + + void hideHud(); + void showHud(bool); + bool updateHudProgressBar(); + + float volume() const; + void setVolume(float); + void volumeChanged(); + void muteChanged(); + +private: + bool canPlay() const; + void play(); + void pause(); + void playStateChanged(); + + bool muted() const; + + float currentTime() const; + void setCurrentTime(float); + + float duration() const; + float percentLoaded() const; + + void createHud(); + void updateHudPosition(); + + RefPtr m_mediaElement; + RefPtr m_gstreamerGWorld; + + uint m_hudTimeoutId; + uint m_progressBarUpdateId; + uint m_progressBarFillUpdateId; + uint m_hscaleUpdateId; + uint m_volumeUpdateId; + bool m_seekLock; + PlatformWidget* m_window; + PlatformWidget* m_hudWindow; + PlatformWidget* m_timeHScale; + PlatformWidget* m_timeLabel; + PlatformWidget* m_volumeButton; +}; + +#endif + +#endif // FullscreenVideoControllerEfl_h diff --git a/WebKit/efl/ewk/ewk_frame.cpp b/WebKit/efl/ewk/ewk_frame.cpp index 7a2af5a..a7ce1ff 100644 --- a/WebKit/efl/ewk/ewk_frame.cpp +++ b/WebKit/efl/ewk/ewk_frame.cpp @@ -44,14 +44,15 @@ #include "ScriptValue.h" #include "SharedBuffer.h" #include "SubstituteData.h" -#include "ZoomMode.h" #include "WindowsKeyboardCodes.h" +#include "ZoomMode.h" #include "ewk_private.h" -#include #include #include +#include #include +#include static const char EWK_FRAME_TYPE_STR[] = "EWK_Frame"; @@ -771,7 +772,7 @@ unsigned int ewk_frame_text_matches_mark(Evas_Object* o, const char* string, Ein EINA_SAFETY_ON_NULL_RETURN_VAL(string, 0); sd->frame->setMarkedTextMatchesAreHighlighted(highlight); - return sd->frame->markAllMatchesForText(WTF::String::fromUTF8(string), case_sensitive, limit); + return sd->frame->countMatchesForText(WTF::String::fromUTF8(string), case_sensitive, limit, true); } /** @@ -820,6 +821,55 @@ Eina_Bool ewk_frame_text_matches_highlight_get(const Evas_Object* o) return sd->frame->markedTextMatchesAreHighlighted(); } +/** + * Comparison function used by ewk_frame_text_matches_nth_pos_get + */ +static bool _ewk_frame_rect_cmp_less_than(const WebCore::IntRect& i, const WebCore::IntRect& j) +{ + return (i.y() < j.y() || (i.y() == j.y() && i.x() < j.x())); +} + +/** + * Predicate used by ewk_frame_text_matches_nth_pos_get + */ +static bool _ewk_frame_rect_is_negative_value(const WebCore::IntRect& i) +{ + return (i.x() < 0 || i.y() < 0); +} + +/** + * Get x, y position of n-th text match in frame + * + * @param o frame object where matches are highlighted. + * @param n index of element + * @param x where to return x position. May be @c NULL. + * @param y where to return y position. May be @c NULL. + * + * @return @c EINA_TRUE on success, @c EINA_FALSE for failure - when no matches found or + * n bigger than search results. + */ +Eina_Bool ewk_frame_text_matches_nth_pos_get(Evas_Object* o, int n, int* x, int* y) +{ + EWK_FRAME_SD_GET_OR_RETURN(o, sd, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(sd->frame, EINA_FALSE); + + Vector intRects = sd->frame->document()->markers()->renderedRectsForMarkers(WebCore::DocumentMarker::TextMatch); + + /* remove useless values */ + std::remove_if(intRects.begin(), intRects.end(), _ewk_frame_rect_is_negative_value); + + if (intRects.isEmpty() || n > intRects.size()) + return EINA_FALSE; + + std::sort(intRects.begin(), intRects.end(), _ewk_frame_rect_cmp_less_than); + + if (x) + *x = intRects[n - 1].x(); + if (y) + *y = intRects[n - 1].y(); + return EINA_TRUE; +} + /** * Ask frame to stop loading. * @@ -1687,12 +1737,6 @@ void ewk_frame_did_perform_first_navigation(Evas_Object *o) */ void ewk_frame_view_state_save(Evas_Object *o, WebCore::HistoryItem* item) { - const char *title = ewk_frame_title_get(o); - const char *uri = ewk_frame_uri_get(o); - - item->setTitle(WTF::String::fromUTF8(title)); - item->setURLString(WTF::String::fromUTF8(uri)); - evas_object_smart_callback_call(o, "state,save", 0); } diff --git a/WebKit/efl/ewk/ewk_frame.h b/WebKit/efl/ewk/ewk_frame.h index 1a9fe81..9394446 100644 --- a/WebKit/efl/ewk/ewk_frame.h +++ b/WebKit/efl/ewk/ewk_frame.h @@ -160,6 +160,7 @@ EAPI unsigned int ewk_frame_text_matches_mark(Evas_Object *o, const char *string EAPI Eina_Bool ewk_frame_text_matches_unmark_all(Evas_Object *o); EAPI Eina_Bool ewk_frame_text_matches_highlight_set(Evas_Object *o, Eina_Bool highlight); EAPI Eina_Bool ewk_frame_text_matches_highlight_get(const Evas_Object *o); +EAPI Eina_Bool ewk_frame_text_matches_nth_pos_get(Evas_Object *o, int n, int *x, int *y); EAPI Eina_Bool ewk_frame_stop(Evas_Object *o); EAPI Eina_Bool ewk_frame_reload(Evas_Object *o); diff --git a/WebKit/efl/ewk/ewk_main.cpp b/WebKit/efl/ewk/ewk_main.cpp index 1cd5e42..8c27478 100644 --- a/WebKit/efl/ewk/ewk_main.cpp +++ b/WebKit/efl/ewk/ewk_main.cpp @@ -21,6 +21,7 @@ #include "config.h" #include "ewk_main.h" +#include "appcache/ApplicationCacheStorage.h" #include "EWebKit.h" #include "Logging.h" #include "PageCache.h" @@ -36,6 +37,7 @@ #include #include #include +#include #if ENABLE(GLIB_SUPPORT) #include @@ -56,6 +58,8 @@ static int _ewk_init_count = 0; int _ewk_log_dom = -1; +static Eina_Bool _ewk_init_body(void); + int ewk_init(void) { if (_ewk_init_count) @@ -90,6 +94,44 @@ int ewk_init(void) goto error_edje; } + _ewk_init_body(); + + return ++_ewk_init_count; + +error_edje: + ecore_evas_shutdown(); +error_ecore_evas: + ecore_shutdown(); +error_ecore: + evas_shutdown(); +error_evas: + eina_log_domain_unregister(_ewk_log_dom); + _ewk_log_dom = -1; +error_log_domain: + eina_shutdown(); +error_eina: + return 0; +} + +int ewk_shutdown(void) +{ + _ewk_init_count--; + if (_ewk_init_count) + return _ewk_init_count; + + ecore_evas_shutdown(); + ecore_shutdown(); + evas_shutdown(); + eina_log_domain_unregister(_ewk_log_dom); + _ewk_log_dom = -1; + eina_shutdown(); + + return 0; +} + +Eina_Bool _ewk_init_body(void) +{ + #if ENABLE(GLIB_SUPPORT) g_type_init(); @@ -117,8 +159,24 @@ int ewk_init(void) WebCore::pageCache()->setCapacity(3); WebCore::PageGroup::setShouldTrackVisitedLinks(true); - // set default location of web database path - ewk_settings_web_database_path_set(getenv("HOME")); + // set default location of web database path and appcache dir + const char* home = getenv("HOME"); + if (!home) // don't forget about the homeless + home = "/tmp"; // this directory must always exist + + // anyway, check it first + struct stat state; + if (stat(home, &state) == -1) { + // Exit now - otherwise you may have some crash later + int errnowas = errno; + CRITICAL("Can't access HOME dir (or /tmp) - no place to save databases: %s", strerror(errnowas)); + return EINA_FALSE; + } + + WTF::String wkdir = WTF::String(home) + "/.webkit"; + ewk_settings_web_database_path_set(wkdir.utf8().data()); + + WebCore::cacheStorage().setCacheDirectory(wkdir); // TODO: this should move to WebCore, already reported to webkit-gtk folks: #ifdef WTF_USE_SOUP @@ -129,36 +187,6 @@ int ewk_init(void) } #endif - return ++_ewk_init_count; - -error_edje: - ecore_evas_shutdown(); -error_ecore_evas: - ecore_shutdown(); -error_ecore: - evas_shutdown(); -error_evas: - eina_log_domain_unregister(_ewk_log_dom); - _ewk_log_dom = -1; -error_log_domain: - eina_shutdown(); -error_eina: - return 0; -} - -int ewk_shutdown(void) -{ - _ewk_init_count--; - if (_ewk_init_count) - return _ewk_init_count; - - ecore_evas_shutdown(); - ecore_shutdown(); - evas_shutdown(); - eina_log_domain_unregister(_ewk_log_dom); - _ewk_log_dom = -1; - eina_shutdown(); - - return 0; + return EINA_TRUE; } diff --git a/WebKit/efl/ewk/ewk_view.cpp b/WebKit/efl/ewk/ewk_view.cpp index 4a100d7..ea54167 100644 --- a/WebKit/efl/ewk/ewk_view.cpp +++ b/WebKit/efl/ewk/ewk_view.cpp @@ -22,6 +22,7 @@ #include "config.h" #include "ewk_view.h" +#include "appcache/ApplicationCacheStorage.h" #include "ChromeClientEfl.h" #include "ContextMenuClientEfl.h" #include "ContextMenuController.h" @@ -88,6 +89,7 @@ struct _Ewk_View_Private_Data { const char* user_stylesheet; const char* encoding_default; const char* encoding_custom; + const char* cache_directory; int font_minimum_size; int font_minimum_logical_size; int font_default_size; @@ -108,6 +110,8 @@ struct _Ewk_View_Private_Data { Eina_Bool private_browsing:1; Eina_Bool caret_browsing:1; Eina_Bool spatial_navigation:1; + Eina_Bool local_storage:1; + Eina_Bool offline_app_cache: 1; struct { float w; float h; @@ -560,6 +564,7 @@ static Ewk_View_Private_Data* _ewk_view_priv_new(Ewk_View_Smart_Data* sd) priv->page_settings->setJavaScriptEnabled(true); priv->page_settings->setPluginsEnabled(true); priv->page_settings->setLocalStorageEnabled(true); + priv->page_settings->setOfflineWebApplicationCacheEnabled(true); url = priv->page_settings->userStyleSheetLocation(); priv->settings.user_stylesheet = eina_stringshare_add(url.prettyURL().utf8().data()); @@ -568,6 +573,9 @@ static Ewk_View_Private_Data* _ewk_view_priv_new(Ewk_View_Smart_Data* sd) (priv->page_settings->defaultTextEncodingName().utf8().data()); priv->settings.encoding_custom = 0; + priv->settings.cache_directory = eina_stringshare_add + (WebCore::cacheStorage().cacheDirectory().utf8().data()); + priv->settings.font_minimum_size = priv->page_settings->minimumFontSize(); priv->settings.font_minimum_logical_size = priv->page_settings->minimumLogicalFontSize(); priv->settings.font_default_size = priv->page_settings->defaultFontSize(); @@ -595,6 +603,8 @@ static Ewk_View_Private_Data* _ewk_view_priv_new(Ewk_View_Smart_Data* sd) priv->settings.resizable_textareas = priv->page_settings->textAreasAreResizable(); priv->settings.private_browsing = priv->page_settings->privateBrowsingEnabled(); priv->settings.caret_browsing = priv->page_settings->caretBrowsingEnabled(); + priv->settings.local_storage = priv->page_settings->localStorageEnabled(); + priv->settings.offline_app_cache = true; // XXX no function to read setting; this keeps the original setting // Since there's no scale separated from zooming in webkit-efl, this functionality of // viewport meta tag is implemented using zoom. When scale zoom is supported by webkit-efl, @@ -641,6 +651,7 @@ static void _ewk_view_priv_del(Ewk_View_Private_Data* priv) eina_stringshare_del(priv->settings.user_stylesheet); eina_stringshare_del(priv->settings.encoding_default); eina_stringshare_del(priv->settings.encoding_custom); + eina_stringshare_del(priv->settings.cache_directory); eina_stringshare_del(priv->settings.font_standard); eina_stringshare_del(priv->settings.font_cursive); eina_stringshare_del(priv->settings.font_monospace); @@ -794,6 +805,9 @@ static void _ewk_view_smart_calculate(Evas_Object* o) sd->changed.frame_rect = EINA_TRUE; sd->view.w = w; sd->view.h = h; + + // This callback is a good place e.g. to change fixed layout size (ewk_view_fixed_layout_size_set). + evas_object_smart_callback_call(o, "view,resized", 0); } sd->changed.size = EINA_FALSE; @@ -2385,6 +2399,26 @@ Eina_Bool ewk_view_setting_private_browsing_set(Evas_Object* o, Eina_Bool enable return EINA_TRUE; } +Eina_Bool ewk_view_setting_offline_app_cache_get(const Evas_Object* o) +{ + EWK_VIEW_SD_GET_OR_RETURN(o, sd, EINA_FALSE); + EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv, EINA_FALSE); + return priv->settings.offline_app_cache; +} + +Eina_Bool ewk_view_setting_offline_app_cache_set(Evas_Object* o, Eina_Bool enable) +{ + EWK_VIEW_SD_GET_OR_RETURN(o, sd, EINA_FALSE); + EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv, EINA_FALSE); + enable = !!enable; + if (priv->settings.offline_app_cache != enable) { + priv->page_settings->setOfflineWebApplicationCacheEnabled(enable); + priv->settings.offline_app_cache = enable; + } + return EINA_TRUE; +} + + Eina_Bool ewk_view_setting_caret_browsing_get(const Evas_Object* o) { EWK_VIEW_SD_GET_OR_RETURN(o, sd, EINA_FALSE); @@ -2465,6 +2499,22 @@ Eina_Bool ewk_view_setting_encoding_default_set(Evas_Object* o, const char* enco return EINA_TRUE; } +const char* ewk_view_setting_cache_directory_get(const Evas_Object* o) +{ + EWK_VIEW_SD_GET_OR_RETURN(o, sd, 0); + EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv, 0); + return priv->settings.cache_directory; +} + +Eina_Bool ewk_view_setting_cache_directory_set(Evas_Object* o, const char* path) +{ + EWK_VIEW_SD_GET_OR_RETURN(o, sd, EINA_FALSE); + EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv, EINA_FALSE); + if (eina_stringshare_replace(&priv->settings.cache_directory, path)) + WebCore::cacheStorage().setCacheDirectory(WTF::String::fromUTF8(path)); + return EINA_TRUE; +} + int ewk_view_setting_font_minimum_size_get(const Evas_Object* o) { EWK_VIEW_SD_GET_OR_RETURN(o, sd, 0); @@ -2665,6 +2715,37 @@ Eina_Bool ewk_view_setting_spatial_navigation_set(Evas_Object* o, Eina_Bool enab } /** + * Gets if the local storage is enabled. + * + * @param o view object to set if local storage is enabled. + * @return @c EINA_TRUE if local storage is enabled, @c EINA_FALSE if not. + */ +Eina_Bool ewk_view_setting_local_storage_get(Evas_Object* o) +{ + EWK_VIEW_SD_GET_OR_RETURN(o, sd, EINA_FALSE); + EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv, EINA_FALSE); + return priv->settings.local_storage; +} + +/** + * Sets the local storage of HTML5. + * + * @param o view object to set if local storage is enabled. + * @return @c EINA_TRUE on success and @c EINA_FALSE on failure + */ +Eina_Bool ewk_view_setting_local_storage_set(Evas_Object* o, Eina_Bool enable) +{ + EWK_VIEW_SD_GET_OR_RETURN(o, sd, EINA_FALSE); + EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv, EINA_FALSE); + enable = !!enable; + if (priv->settings.local_storage != enable) { + priv->page_settings->setLocalStorageEnabled(enable); + priv->settings.local_storage = enable; + } + return EINA_TRUE; +} + +/** * Similar to evas_object_smart_data_get(), but does type checking. * * @param o view object to query internal data. @@ -2769,7 +2850,7 @@ void ewk_view_layout_if_needed_recursive(Ewk_View_Private_Data* priv) ERR("no main frame view"); return; } - v->layoutIfNeededRecursive(); + v->updateLayoutAndStyleIfNeededRecursive(); } void ewk_view_scrolls_process(Ewk_View_Smart_Data* sd) diff --git a/WebKit/efl/ewk/ewk_view.h b/WebKit/efl/ewk/ewk_view.h index 9d5997c..c5d2d45 100644 --- a/WebKit/efl/ewk/ewk_view.h +++ b/WebKit/efl/ewk/ewk_view.h @@ -88,6 +88,7 @@ extern "C" { * - "icon,received", void: main frame received an icon. * - "viewport,changed", void: Report that viewport has changed. * - "inputmethods,changed" with a boolean indicating whether it's enabled or not. + * - "view,resized", void: view object's size has changed. */ typedef struct _Ewk_View_Smart_Data Ewk_View_Smart_Data; @@ -403,6 +404,8 @@ EAPI Eina_Bool ewk_view_setting_user_stylesheet_set(Evas_Object *o, const cha EAPI Eina_Bool ewk_view_setting_private_browsing_get(const Evas_Object *o); EAPI Eina_Bool ewk_view_setting_private_browsing_set(Evas_Object *o, Eina_Bool enable); +EAPI Eina_Bool ewk_view_setting_offline_app_cache_get(const Evas_Object *o); +EAPI Eina_Bool ewk_view_setting_offline_app_cache_set(Evas_Object *o, Eina_Bool enable); EAPI Eina_Bool ewk_view_setting_caret_browsing_get(const Evas_Object *o); EAPI Eina_Bool ewk_view_setting_caret_browsing_set(Evas_Object *o, Eina_Bool enable); @@ -411,6 +414,8 @@ EAPI const char *ewk_view_setting_encoding_custom_get(const Evas_Object *o); EAPI Eina_Bool ewk_view_setting_encoding_custom_set(Evas_Object *o, const char *encoding); EAPI const char *ewk_view_setting_encoding_default_get(const Evas_Object *o); EAPI Eina_Bool ewk_view_setting_encoding_default_set(Evas_Object *o, const char *encoding); +EAPI const char *ewk_view_setting_cache_directory_get(const Evas_Object *o); +EAPI Eina_Bool ewk_view_setting_cache_directory_set(Evas_Object *o, const char *path); EAPI int ewk_view_setting_font_minimum_size_get(const Evas_Object *o); EAPI Eina_Bool ewk_view_setting_font_minimum_size_set(Evas_Object *o, int size); @@ -442,6 +447,9 @@ EAPI Eina_Bool ewk_view_setting_font_sans_serif_set(Evas_Object *o, const cha EAPI Eina_Bool ewk_view_setting_spatial_navigation_get(Evas_Object* o); EAPI Eina_Bool ewk_view_setting_spatial_navigation_set(Evas_Object* o, Eina_Bool enable); +EAPI Eina_Bool ewk_view_setting_local_storage_get(Evas_Object* o); +EAPI Eina_Bool ewk_view_setting_local_storage_set(Evas_Object* o, Eina_Bool enable); + /* to be used by subclass implementations */ EAPI Ewk_View_Smart_Data *ewk_view_smart_data_get(const Evas_Object *o); diff --git a/WebKit/gtk/ChangeLog b/WebKit/gtk/ChangeLog index 4073840..8098b7f 100644 --- a/WebKit/gtk/ChangeLog +++ b/WebKit/gtk/ChangeLog @@ -1,3 +1,118 @@ +2010-08-31 Dave Hyatt + + Reviewed by Sam Weinig. + + https://bugs.webkit.org/show_bug.cgi?id=44863, disentangle style recalc from layout, so that + the former can occur in more places without having to do the latter. + + * webkit/webkitwebview.cpp: + (webkit_web_view_expose_event): + +2010-08-31 Martin Robinson + + Reviewed by Gustavo Noronha Silva. + + [GTK] Isolate all GTK+ typedefs into one file + https://bugs.webkit.org/show_bug.cgi?id=44900 + + * WebCoreSupport/EditorClientGtk.h: Remove GTK+ typedefs. + * WebCoreSupport/FullscreenVideoController.h: Ditto. + +2010-08-31 Gustavo Noronha Silva + + Reviewed by Martin Robinson. + + Preparations for the 1.3.4 release. + + * NEWS: + * docs/webkitgtk-docs.sgml: + +2010-08-31 Gustavo Noronha Silva + + Unreviewed. Minor documentation typo fix. + + * webkit/webkitwebview.cpp: + +2010-08-30 Alejandro G. Castro + + Reviewed by Martin Robinson. + + [Gtk] gdk_display_get_core_pointer and gdk_device_get_core_pointer + are deprecated + https://bugs.webkit.org/show_bug.cgi?id=44787 + + We have replaced GtkVersioning.cpp with GtkVersioning.c and + created a function (getDefaultGDKPointerDevice) to get the pointer + of the window with the new APIs. We added that function to DRT and + copyandpaste unit test. + + * tests/testcopyandpaste.c: + (runPasteTestCallback): + +2010-08-30 Sheriff Bot + + Unreviewed, rolling out r66198. + http://trac.webkit.org/changeset/66198 + https://bugs.webkit.org/show_bug.cgi?id=44856 + + It made tests crash on Qt bot (Requested by Ossy_ on #webkit). + + * WebCoreSupport/InspectorClientGtk.cpp: + (WebKit::notifyWebViewDestroyed): + (WebKit::InspectorFrontendClient::destroyInspectorWindow): + (WebKit::InspectorFrontendClient::closeWindow): + * WebCoreSupport/InspectorClientGtk.h: + +2010-08-27 Yury Semikhatsky + + Reviewed by Pavel Feldman. + + REGRESSION: Crash occurs at objc_msgSend when closing a window that is displaying the web inspector + https://bugs.webkit.org/show_bug.cgi?id=44230 + + * WebCoreSupport/InspectorClientGtk.cpp: + (WebKit::notifyWebViewDestroyed): + (WebKit::InspectorFrontendClient::destroyInspectorWindow): + (WebKit::InspectorFrontendClient::closeWindow): + (WebKit::InspectorFrontendClient::disconnectFromBackend): + * WebCoreSupport/InspectorClientGtk.h: + +2010-08-26 Yury Semikhatsky + + Unreviewed. Revert r66103 since Qt tests are failing. + + * WebCoreSupport/InspectorClientGtk.cpp: + (WebKit::notifyWebViewDestroyed): + (WebKit::InspectorFrontendClient::destroyInspectorWindow): + (WebKit::InspectorFrontendClient::closeWindow): + * WebCoreSupport/InspectorClientGtk.h: + +2010-08-26 Yury Semikhatsky + + Reviewed by Pavel Feldman. + + REGRESSION: Crash occurs at objc_msgSend when closing a window that is displaying the web inspector + https://bugs.webkit.org/show_bug.cgi?id=44230 + + * WebCoreSupport/InspectorClientGtk.cpp: + (WebKit::notifyWebViewDestroyed): + (WebKit::InspectorFrontendClient::destroyInspectorWindow): + (WebKit::InspectorFrontendClient::closeWindow): + (WebKit::InspectorFrontendClient::disconnectFromBackend): + * WebCoreSupport/InspectorClientGtk.h: + +2010-08-26 Gustavo Noronha Silva + + Reviewed by Martin Robinson. + + [GTK] WebKitGTK+ needs proper introspection annotation for most types and methods + https://bugs.webkit.org/show_bug.cgi?id=44565 + + Add documentation and introspection specific information to a few + getter and setter methods. + + * webkit/webkitwebview.cpp: + 2010-08-25 Martin Robinson Reviewed by Gustavo Noronha Silva. diff --git a/WebKit/gtk/NEWS b/WebKit/gtk/NEWS index b99e2a1..402c07c 100644 --- a/WebKit/gtk/NEWS +++ b/WebKit/gtk/NEWS @@ -1,4 +1,19 @@ ================ +WebKitGTK+ 1.3.4 +================ + +What's new in WebKitGTK+ 1.3.4? + + - Fixes to compile with latest GTK+ changes. + - File reader/writer APIs are now enabled. + - The javascript JIT is now enabled by default on ARM. + - Clipboard data is no longer lost when the process exists. + - Image DnD support. + - GSettings support to save/restore Web Inspector settings. + - Fullscreen support for HTML5 media player. + - Many other bugfixes. + +================ WebKitGTK+ 1.3.3 ================ diff --git a/WebKit/gtk/WebCoreSupport/EditorClientGtk.h b/WebKit/gtk/WebCoreSupport/EditorClientGtk.h index efb734f..f9ff82e 100644 --- a/WebKit/gtk/WebCoreSupport/EditorClientGtk.h +++ b/WebKit/gtk/WebCoreSupport/EditorClientGtk.h @@ -39,8 +39,6 @@ #include typedef struct _WebKitWebView WebKitWebView; -typedef struct _GtkWidget GtkWidget; -typedef char gchar; namespace WebCore { class Frame; diff --git a/WebKit/gtk/WebCoreSupport/FullscreenVideoController.h b/WebKit/gtk/WebCoreSupport/FullscreenVideoController.h index 1567d9b..9ff1e6a 100644 --- a/WebKit/gtk/WebCoreSupport/FullscreenVideoController.h +++ b/WebKit/gtk/WebCoreSupport/FullscreenVideoController.h @@ -27,13 +27,6 @@ #include "HTMLMediaElement.h" #include -typedef struct _GtkObject GtkObject; -typedef struct _GtkWidget GtkWidget; -typedef struct _GtkAction GtkAction; -typedef struct _GdkCursor GdkCursor; -typedef struct _GdkEventConfigure GdkEventConfigure; - - class FullscreenVideoController : public Noncopyable { public: FullscreenVideoController(); diff --git a/WebKit/gtk/docs/webkitgtk-docs.sgml b/WebKit/gtk/docs/webkitgtk-docs.sgml index c6539af..0852c7d 100644 --- a/WebKit/gtk/docs/webkitgtk-docs.sgml +++ b/WebKit/gtk/docs/webkitgtk-docs.sgml @@ -114,4 +114,13 @@ Index of new symbols in 1.3.1 + + Index of new symbols in 1.3.2 + + + Index of new symbols in 1.3.3 + + + Index of new symbols in 1.3.4 + diff --git a/WebKit/gtk/po/ChangeLog b/WebKit/gtk/po/ChangeLog index 309ba09..3665005 100644 --- a/WebKit/gtk/po/ChangeLog +++ b/WebKit/gtk/po/ChangeLog @@ -1,3 +1,85 @@ +2010-08-31 Sheriff Bot + + Unreviewed, rolling out r66519. + http://trac.webkit.org/changeset/66519 + https://bugs.webkit.org/show_bug.cgi?id=44973 + + Broke GTK+. (Requested by kov on #webkit). + + * cs.po: + * de.po: + * en_GB.po: + * es.po: + * et.po: + * gl.po: + * gu.po: + * he.po: + * it.po: + * lt.po: + * lv.po: + * nb.po: + * nl.po: + * pa.po: + * pt.po: + * pt_BR.po: + * ru.po: + * sl.po: + * sr.po: + * sr@latin.po: + * sv.po: + * uk.po: + * vi.po: + * zh_CN.po: + +2010-08-31 Gustavo Noronha Silva + + Refreshed all po files with the latest potfile. + + * cs.po: + * de.po: + * en_GB.po: + * es.po: + * et.po: + * gl.po: + * gu.po: + * he.po: + * it.po: + * lt.po: + * lv.po: + * nb.po: + * nl.po: + * pa.po: + * pt.po: + * pt_BR.po: + * ru.po: + * sl.po: + * sr.po: + * sr@latin.po: + * sv.po: + * uk.po: + * vi.po: + * zh_CN.po: + +2010-08-31 Jorge González + + Reviewed by Gustavo Noronha. + + [GTK] Spanish translation for trunk + https://bugs.webkit.org/show_bug.cgi?id=44395 + + * es.po: Updated. + +2010-08-31 Kjartan Maraas + + Reviewed by Gustavo Noronha Silva. + + WebKitGTK+ translation needed + https://bugzilla.gnome.org/show_bug.cgi?id=610099 + + Initial Norwegian (bokmal) translation. + + * nb.po: Added. + 2010-08-19 Philippe Normand Reviewed by Gustavo Noronha Silva. diff --git a/WebKit/gtk/po/es.po b/WebKit/gtk/po/es.po index 433c9de..83ad6bf 100644 --- a/WebKit/gtk/po/es.po +++ b/WebKit/gtk/po/es.po @@ -1,15 +1,15 @@ # translation of webkit.po to Español # This file is put in the public domain. -# Jorge González , 2010. +# Jorge González González , 2010. # msgid "" msgstr "" "Project-Id-Version: webkit\n" "Report-Msgid-Bugs-To: http://bugs.webkit.org/\n" "POT-Creation-Date: 2010-02-25 15:53-0300\n" -"PO-Revision-Date: 2010-05-01 11:18+0200\n" -"Last-Translator: Jorge González \n" -"Language-Team: Español \n" +"PO-Revision-Date: 2010-08-22 12:03+0200\n" +"Last-Translator: Jorge González González \n" +"Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -267,7 +267,7 @@ msgstr "Perfilar el JavaScript ejecutado." #: WebKit/gtk/webkit/webkitwebinspector.cpp:315 msgid "Enable Timeline profiling" -msgstr "" +msgstr "Activar perfilado de tiempo" #: WebKit/gtk/webkit/webkitwebinspector.cpp:316 msgid "Profile the WebCore instrumentation." @@ -512,11 +512,12 @@ msgstr "" #: WebKit/gtk/webkit/webkitwebsettings.cpp:520 msgid "Enable Caret Browsing" -msgstr "" +msgstr "Activar navegación por cursor" #: WebKit/gtk/webkit/webkitwebsettings.cpp:521 msgid "Whether to enable accesibility enhanced keyboard navigation" msgstr "" +"Indica si activar la mejora de accesibilidad para navegación por teclado" #: WebKit/gtk/webkit/webkitwebsettings.cpp:536 msgid "Enable HTML5 Database" @@ -528,11 +529,11 @@ msgstr "Indica si se debe activar el soporte para la base de datos de HTML5" #: WebKit/gtk/webkit/webkitwebsettings.cpp:552 msgid "Enable HTML5 Local Storage" -msgstr "" +msgstr "Activar almacén local de HTML5" #: WebKit/gtk/webkit/webkitwebsettings.cpp:553 msgid "Whether to enable HTML5 Local Storage support" -msgstr "" +msgstr "Indica si activar el soporte de almacén local de HTML5" #: WebKit/gtk/webkit/webkitwebsettings.cpp:567 msgid "Enable XSS Auditor" @@ -552,19 +553,19 @@ msgstr "" #: WebKit/gtk/webkit/webkitwebsettings.cpp:602 msgid "JavaScript can open windows automatically" -msgstr "" +msgstr "JavaScript puede abrir ventanas automáticamente" #: WebKit/gtk/webkit/webkitwebsettings.cpp:603 msgid "Whether JavaScript can open windows automatically" -msgstr "" +msgstr "Indica si JavaScript puede abrir ventanas automáticamente" #: WebKit/gtk/webkit/webkitwebsettings.cpp:618 msgid "Enable offline web application cache" -msgstr "" +msgstr "Activar la caché de aplicación fuera de línea" #: WebKit/gtk/webkit/webkitwebsettings.cpp:619 msgid "Whether to enable offline web application cache" -msgstr "" +msgstr "Indica si activar la caché de aplicación web fuera de línea" #: WebKit/gtk/webkit/webkitwebsettings.cpp:646 msgid "Editing behavior" @@ -631,6 +632,8 @@ msgstr "Autoredimensionar ventana" #: WebKit/gtk/webkit/webkitwebsettings.cpp:785 msgid "Automatically resize the toplevel window when a page requests it" msgstr "" +"Redimensionar automáticamente la ventana de nivel superior cuando una página " +"lo solicita" #: WebKit/gtk/webkit/webkitwebsettings.cpp:817 msgid "Enable Java Applet" @@ -740,7 +743,7 @@ msgstr "Icono de URI" #: WebKit/gtk/webkit/webkitwebview.cpp:2521 msgid "The URI for the favicon for the #WebKitWebView." -msgstr "" +msgstr "El URI para el icono favorito para #WebKitWebView." #: WebCore/platform/gtk/LocalizedStringsGtk.cpp:55 #: WebCore/platform/gtk/LocalizedStringsGtk.cpp:60 @@ -935,7 +938,7 @@ msgstr "silenciar" #: WebCore/platform/gtk/LocalizedStringsGtk.cpp:381 msgid "unmute" -msgstr "" +msgstr "dar voz" #: WebCore/platform/gtk/LocalizedStringsGtk.cpp:383 msgid "play" @@ -1011,11 +1014,11 @@ msgstr "" #: WebCore/platform/gtk/LocalizedStringsGtk.cpp:426 msgid "begin playback" -msgstr "" +msgstr "comenzar la reproducción" #: WebCore/platform/gtk/LocalizedStringsGtk.cpp:428 msgid "pause playback" -msgstr "" +msgstr "pausar la reproducción" #: WebCore/platform/gtk/LocalizedStringsGtk.cpp:430 msgid "movie time scrubber" @@ -1039,7 +1042,7 @@ msgstr "" #: WebCore/platform/gtk/LocalizedStringsGtk.cpp:440 msgid "number of seconds of movie remaining" -msgstr "" +msgstr "número de segundos restantes de la película" #: WebCore/platform/gtk/LocalizedStringsGtk.cpp:442 msgid "current movie status" diff --git a/WebKit/gtk/po/nb.po b/WebKit/gtk/po/nb.po new file mode 100644 index 0000000..fdfa753 --- /dev/null +++ b/WebKit/gtk/po/nb.po @@ -0,0 +1,1104 @@ +# Norwegian bokmål translation of Epiphany +# Copyright (C) 2000-2003, 2005 Free Software Foundation, Inc. +# Ola Sverre Bauge , 2000. +# Kjartan Maraas , 2000-2010. +# Roy-Magne Mo , 2001. +# Terance Edward Sola , 2005. +# Øivind Hoel , 2006. +msgid "" +msgstr "" +"Project-Id-Version: epiphany 2.29.x\n" +"Report-Msgid-Bugs-To: http://bugs.webkit.org/\n" +"POT-Creation-Date: 2010-02-25 15:53-0300\n" +"PO-Revision-Date: 2010-04-05 14:36+0200\n" +"Last-Translator: Kjartan Maraas \n" +"Language-Team: Norwegian Bokmal \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:535 +msgid "Upload File" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:61 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:143 +msgid "Input _Methods" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:78 +msgid "LRM _Left-to-right mark" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:79 +msgid "RLM _Right-to-left mark" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:80 +msgid "LRE Left-to-right _embedding" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:81 +msgid "RLE Right-to-left e_mbedding" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:82 +msgid "LRO Left-to-right _override" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:83 +msgid "RLO Right-to-left o_verride" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:84 +msgid "PDF _Pop directional formatting" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:85 +msgid "ZWS _Zero width space" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:86 +msgid "ZWJ Zero width _joiner" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:87 +msgid "ZWNJ Zero width _non-joiner" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:109 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:138 +msgid "_Insert Unicode Control Character" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:266 +msgid "Network Request" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:267 +msgid "The network request for the URI that should be downloaded" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:281 +msgid "Network Response" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:282 +msgid "The network response for the URI that should be downloaded" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:296 +msgid "Destination URI" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:297 +msgid "The destination URI where to save the file" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:311 +msgid "Suggested Filename" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:312 +msgid "The filename suggested as default when saving" +msgstr "" + +# (ugh) +#: WebKit/gtk/webkit/webkitdownload.cpp:329 +msgid "Progress" +msgstr "Fremdrift" + +#: WebKit/gtk/webkit/webkitdownload.cpp:330 +msgid "Determines the current progress of the download" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:343 +msgid "Status" +msgstr "Status" + +#: WebKit/gtk/webkit/webkitdownload.cpp:344 +msgid "Determines the current status of the download" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:359 +msgid "Current Size" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:360 +msgid "The length of the data already downloaded" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:374 +msgid "Total Size" +msgstr "Total størrelse" + +#: WebKit/gtk/webkit/webkitdownload.cpp:375 +msgid "The total size of the file" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:526 +msgid "User cancelled the download" +msgstr "" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:248 +#, c-format +msgid "A username and password are being requested by the site %s" +msgstr "" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:278 +msgid "Server message:" +msgstr "" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:291 +msgid "Username:" +msgstr "Brukernavn:" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:293 +msgid "Password:" +msgstr "Passord:" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:302 +msgid "_Remember password" +msgstr "Husk passo_rd" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:298 +msgid "Name" +msgstr "Navn" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:299 +msgid "The name of the frame" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:305 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:146 +#: WebKit/gtk/webkit/webkitwebview.cpp:2318 +msgid "Title" +msgstr "Tittel" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:306 +msgid "The document title of the frame" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:312 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:178 +#: WebKit/gtk/webkit/webkitwebview.cpp:2332 +msgid "URI" +msgstr "URI" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:313 +msgid "The current URI of the contents displayed by the frame" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:344 +msgid "Horizontal Scrollbar Policy" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:345 +msgid "" +"Determines the current policy for the horizontal scrollbar of the frame." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:362 +msgid "Vertical Scrollbar Policy" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:363 +msgid "Determines the current policy for the vertical scrollbar of the frame." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:147 +#, fuzzy +msgid "The title of the history item" +msgstr "Sideinformasjon som vises i historikkvisning" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:162 +msgid "Alternate Title" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:163 +#, fuzzy +msgid "The alternate title of the history item" +msgstr "Sideinformasjon som vises i historikkvisning" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:179 +#, fuzzy +msgid "The URI of the history item" +msgstr "Åpne historikkvinduet" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:194 +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:173 +msgid "Original URI" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:195 +#, fuzzy +msgid "The original URI of the history item" +msgstr "Sideinformasjon som vises i historikkvisning" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:210 +#, fuzzy +msgid "Last visited Time" +msgstr "Oftest besøkt" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:211 +msgid "The time at which the history item was last visited" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:268 +#, fuzzy +msgid "Web View" +msgstr "_Vis" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:269 +msgid "The Web View that renders the Web Inspector itself" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:282 +msgid "Inspected URI" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:283 +msgid "The URI that is currently being inspected" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:299 +msgid "Enable JavaScript profiling" +msgstr "Aktiver profilering av JavaScript" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:300 +msgid "Profile the executed JavaScript." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:315 +#, fuzzy +msgid "Enable Timeline profiling" +msgstr "Aktiver myk rulling" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:316 +msgid "Profile the WebCore instrumentation." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:158 +msgid "Reason" +msgstr "Årsak" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:159 +msgid "The reason why this navigation is occurring" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:174 +msgid "The URI that was requested as the target for the navigation" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:188 +msgid "Button" +msgstr "Knapp" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:189 +msgid "The button used to click" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:204 +msgid "Modifier state" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:205 +msgid "A bitmask representing the state of the modifier keys" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:220 +msgid "Target frame" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:221 +msgid "The target frame for the navigation" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:237 +msgid "Default Encoding" +msgstr "Forvalgt koding" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:238 +msgid "The default encoding used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:246 +msgid "Cursive Font Family" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:247 +msgid "The default Cursive font family used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:255 +msgid "Default Font Family" +msgstr "Forvalgt skriftfamilie" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:256 +msgid "The default font family used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:264 +msgid "Fantasy Font Family" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:265 +msgid "The default Fantasy font family used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:273 +msgid "Monospace Font Family" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:274 +msgid "The default font family used to display monospace text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:282 +msgid "Sans Serif Font Family" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:283 +msgid "The default Sans Serif font family used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:291 +msgid "Serif Font Family" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:292 +msgid "The default Serif font family used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:300 +msgid "Default Font Size" +msgstr "Forvalgt skriftstørrelse" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:301 +msgid "The default font size used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:309 +msgid "Default Monospace Font Size" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:310 +msgid "The default font size used to display monospace text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:318 +msgid "Minimum Font Size" +msgstr "Minste skriftstørrelse" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:319 +msgid "The minimum font size used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:327 +#, fuzzy +msgid "Minimum Logical Font Size" +msgstr "Minste skriftstørrelse" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:328 +msgid "The minimum logical font size used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:347 +msgid "Enforce 96 DPI" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:348 +msgid "Enforce a resolution of 96 DPI" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:356 +msgid "Auto Load Images" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:357 +msgid "Load images automatically." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:365 +msgid "Auto Shrink Images" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:366 +msgid "Automatically shrink standalone images to fit." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:374 +msgid "Print Backgrounds" +msgstr "Skriv ut bakgrunn" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:375 +#, fuzzy +msgid "Whether background images should be printed." +msgstr "Om bakgrunnsbilder skal skrives ut" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:383 +msgid "Enable Scripts" +msgstr "Slå på JavaScript" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:384 +msgid "Enable embedded scripting languages." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:392 +msgid "Enable Plugins" +msgstr "Aktiver tillegg" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:393 +msgid "Enable embedded plugin objects." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:401 +msgid "Resizable Text Areas" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:402 +msgid "Whether text areas are resizable." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:409 +#, fuzzy +msgid "User Stylesheet URI" +msgstr "Bruk egendefinert _stilark" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:410 +msgid "The URI of a stylesheet that is applied to every page." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:425 +msgid "Zoom Stepping Value" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:426 +msgid "The value by which the zoom level is changed when zooming in or out." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:444 +msgid "Enable Developer Extras" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:445 +msgid "Enables special extensions that help developers" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:465 +msgid "Enable Private Browsing" +msgstr "Slå på privat nettlesing" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:466 +msgid "Enables private browsing mode" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:481 +msgid "Enable Spell Checking" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:482 +msgid "Enables spell checking while typing" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:505 +msgid "Languages to use for spell checking" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:506 +msgid "Comma separated list of languages to use for spell checking" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:520 +#, fuzzy +msgid "Enable Caret Browsing" +msgstr "Aktiver myk rulling" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:521 +msgid "Whether to enable accesibility enhanced keyboard navigation" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:536 +msgid "Enable HTML5 Database" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:537 +msgid "Whether to enable HTML5 database support" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:552 +msgid "Enable HTML5 Local Storage" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:553 +msgid "Whether to enable HTML5 Local Storage support" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:567 +msgid "Enable XSS Auditor" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:568 +#, fuzzy +msgid "Whether to enable teh XSS auditor" +msgstr "Om bakgrunnen skal skrives ut" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:586 +msgid "User Agent" +msgstr "Brukeragent" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:587 +msgid "The User-Agent string used by WebKitGtk" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:602 +msgid "JavaScript can open windows automatically" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:603 +msgid "Whether JavaScript can open windows automatically" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:618 +msgid "Enable offline web application cache" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:619 +msgid "Whether to enable offline web application cache" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:646 +msgid "Editing behavior" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:647 +msgid "The behavior mode to use in editing mode" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:663 +msgid "Enable universal access from file URIs" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:664 +msgid "Whether to allow universal access from file URIs" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:679 +msgid "Enable DOM paste" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:680 +msgid "Whether to enable DOM paste" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:698 +msgid "Tab key cycles through elements" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:699 +msgid "Whether the tab key cycles through elements on the page." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:719 +msgid "Enable Default Context Menu" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:720 +msgid "" +"Enables the handling of right-clicks for the creation of the default context " +"menu" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:740 +msgid "Enable Site Specific Quirks" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:741 +msgid "Enables the site-specific compatibility workarounds" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:763 +msgid "Enable page cache" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:764 +msgid "Whether the page cache should be used" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:784 +msgid "Auto Resize Window" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:785 +msgid "Automatically resize the toplevel window when a page requests it" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:817 +msgid "Enable Java Applet" +msgstr "Slå på Java-applet" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:818 +msgid "Whether Java Applet support through should be enabled" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:2319 +msgid "Returns the @web_view's document title" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:2333 +msgid "Returns the current URI of the contents displayed by the @web_view" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:2346 +msgid "Copy target list" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:2347 +msgid "The list of targets this web view supports for clipboard copying" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:2360 +#, fuzzy +msgid "Paste target list" +msgstr "Lim inn utklippstavlen" + +#: WebKit/gtk/webkit/webkitwebview.cpp:2361 +msgid "The list of targets this web view supports for clipboard pasting" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:2367 +msgid "Settings" +msgstr "Innstillinger" + +#: WebKit/gtk/webkit/webkitwebview.cpp:2368 +msgid "An associated WebKitWebSettings instance" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:2381 +msgid "Web Inspector" +msgstr "Inspeksjon av nettsider" + +#: WebKit/gtk/webkit/webkitwebview.cpp:2382 +msgid "The associated WebKitWebInspector instance" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:2402 +msgid "Editable" +msgstr "Redigerbar" + +#: WebKit/gtk/webkit/webkitwebview.cpp:2403 +#, fuzzy +msgid "Whether content can be modified by the user" +msgstr "Bruk koding som spesifisert av dokumentet" + +#: WebKit/gtk/webkit/webkitwebview.cpp:2409 +msgid "Transparent" +msgstr "Gjennomsiktig" + +#: WebKit/gtk/webkit/webkitwebview.cpp:2410 +#, fuzzy +msgid "Whether content has a transparent background" +msgstr "Om bakgrunnen skal skrives ut" + +#: WebKit/gtk/webkit/webkitwebview.cpp:2423 +msgid "Zoom level" +msgstr "Zoom-nivå" + +#: WebKit/gtk/webkit/webkitwebview.cpp:2424 +msgid "The level of zoom of the content" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:2439 +msgid "Full content zoom" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:2440 +msgid "Whether the full content is scaled when zooming" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:2453 +msgid "Encoding" +msgstr "Koding" + +#: WebKit/gtk/webkit/webkitwebview.cpp:2454 +msgid "The default encoding of the web view" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:2467 +#, fuzzy +msgid "Custom Encoding" +msgstr "Tekstkoding" + +#: WebKit/gtk/webkit/webkitwebview.cpp:2468 +msgid "The custom encoding of the web view" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:2520 +msgid "Icon URI" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:2521 +msgid "The URI for the favicon for the #WebKitWebView." +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:55 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:60 +msgid "Submit" +msgstr "Send inn" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:65 +msgid "Reset" +msgstr "Nullstill" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:70 +msgid "This is a searchable index. Enter search keywords: " +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:75 +msgid "Choose File" +msgstr "Velg fil" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:80 +msgid "(None)" +msgstr "(Ingen)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:85 +msgid "Open Link in New _Window" +msgstr "Åpne lenke i nytt _vindu" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:90 +#, fuzzy +msgid "_Download Linked File" +msgstr "Last ne_d lenke" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:95 +msgid "Copy Link Loc_ation" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:100 +msgid "Open _Image in New Window" +msgstr "Åpne b_ilde i nytt vindu" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:105 +msgid "Sa_ve Image As" +msgstr "La_gre bilde som" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:110 +msgid "Cop_y Image" +msgstr "Kop_ier bilde" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:115 +#, fuzzy +msgid "Open _Frame in New Window" +msgstr "Åpne i nytt _vindu" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:166 +msgid "_Reload" +msgstr "_Last om" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:183 +msgid "No Guesses Found" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:188 +msgid "_Ignore Spelling" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:193 +msgid "_Learn Spelling" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:198 +msgid "_Search the Web" +msgstr "_Søk på nettet" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:203 +msgid "_Look Up in Dictionary" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:208 +msgid "_Open Link" +msgstr "_Åpne lenke" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:213 +msgid "Ignore _Grammar" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:218 +msgid "Spelling and _Grammar" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:223 +msgid "_Show Spelling and Grammar" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:223 +msgid "_Hide Spelling and Grammar" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:228 +msgid "_Check Document Now" +msgstr "_Sjekk dokumentet nå" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:233 +msgid "Check Spelling While _Typing" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:238 +msgid "Check _Grammar With Spelling" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:243 +msgid "_Font" +msgstr "Skri_ft" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:266 +msgid "_Outline" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:271 +msgid "Inspect _Element" +msgstr "Inspiser _element" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:276 +msgid "No recent searches" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:281 +msgid "Recent searches" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:286 +msgid "_Clear recent searches" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:291 +#, fuzzy +msgid "term" +msgstr "Andre" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:296 +msgid "definition" +msgstr "definisjon" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:301 +#, fuzzy +msgid "press" +msgstr "Adresse" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:306 +msgid "select" +msgstr "velg" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:311 +msgid "activate" +msgstr "slå på" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:316 +msgid "uncheck" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:321 +msgid "check" +msgstr "sjekk" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:326 +msgid "jump" +msgstr "hopp" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:342 +msgid " files" +msgstr " filer" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:347 +msgid "Unknown" +msgstr "Ukjent" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:364 +msgid "Loading..." +msgstr "Laster..." + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:369 +msgid "Live Broadcast" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:375 +msgid "audio element controller" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:377 +msgid "video element controller" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:379 +msgid "mute" +msgstr "demp" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:381 +msgid "unmute" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:383 +msgid "play" +msgstr "spill av" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:385 +msgid "pause" +msgstr "pause" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:387 +msgid "movie time" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:389 +msgid "timeline slider thumb" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:391 +msgid "back 30 seconds" +msgstr "tilbake 30 sekunder" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:393 +msgid "return to realtime" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:395 +msgid "elapsed time" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:397 +msgid "remaining time" +msgstr "gjenstående tid" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:399 +msgid "status" +msgstr "status" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:401 +msgid "fullscreen" +msgstr "fullskjerm" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:403 +#, fuzzy +msgid "fast forward" +msgstr "_Fremover" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:405 +#, fuzzy +msgid "fast reverse" +msgstr "Tidligere utviklere:" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:407 +msgid "show closed captions" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:409 +msgid "hide closed captions" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:418 +msgid "audio element playback controls and status display" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:420 +msgid "video element playback controls and status display" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:422 +msgid "mute audio tracks" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:424 +msgid "unmute audio tracks" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:426 +msgid "begin playback" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:428 +msgid "pause playback" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:430 +msgid "movie time scrubber" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:432 +msgid "movie time scrubber thumb" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:434 +msgid "seek movie back 30 seconds" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:436 +msgid "return streaming movie to real time" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:438 +msgid "current movie time in seconds" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:440 +msgid "number of seconds of movie remaining" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:442 +msgid "current movie status" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:444 +msgid "seek quickly back" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:446 +msgid "seek quickly forward" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:448 +#, fuzzy +msgid "Play movie in fullscreen mode" +msgstr "Lås i fullskjermmodus" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:450 +msgid "start displaying closed captions" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:452 +msgid "stop displaying closed captions" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:461 +msgid "indefinite time" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:491 +msgid "value missing" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:497 +msgid "type mismatch" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:502 +msgid "pattern mismatch" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:507 +msgid "too long" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:512 +msgid "range underflow" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:517 +msgid "range overflow" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:522 +msgid "step mismatch" +msgstr "" + diff --git a/WebKit/gtk/tests/testcopyandpaste.c b/WebKit/gtk/tests/testcopyandpaste.c index 58fb764..5e3f5e7 100644 --- a/WebKit/gtk/tests/testcopyandpaste.c +++ b/WebKit/gtk/tests/testcopyandpaste.c @@ -25,7 +25,6 @@ #include #include - #if GTK_CHECK_VERSION(2, 14, 0) typedef struct { @@ -134,8 +133,10 @@ static JSValueRef runPasteTestCallback(JSContextRef context, JSObjectRef functio event->key.window = gtk_widget_get_window(GTK_WIDGET(currentFixture->webView)); g_object_ref(event->key.window); #ifndef GTK_API_VERSION_2 - gdk_event_set_device(event, gdk_device_get_associated_device(gdk_display_get_core_pointer(gdk_drawable_get_display(event->key.window)))); + GdkDeviceManager* manager = gdk_display_get_device_manager(gdk_drawable_get_display(event->key.window)); + gdk_event_set_device(event, gdk_device_manager_get_client_pointer(manager)); #endif + GdkKeymapKey* keys; gint n_keys; if (gdk_keymap_get_entries_for_keyval(gdk_keymap_get_default(), event->key.keyval, &keys, &n_keys)) { diff --git a/WebKit/gtk/webkit/webkitwebview.cpp b/WebKit/gtk/webkit/webkitwebview.cpp index 76fe6cb..98f8e4e 100644 --- a/WebKit/gtk/webkit/webkitwebview.cpp +++ b/WebKit/gtk/webkit/webkitwebview.cpp @@ -519,7 +519,7 @@ static gboolean webkit_web_view_expose_event(GtkWidget* widget, GdkEventExpose* Frame* frame = core(webView)->mainFrame(); if (frame->contentRenderer() && frame->view()) { - frame->view()->layoutIfNeededRecursive(); + frame->view()->updateLayoutAndStyleIfNeededRecursive(); cairo_t* cr = gdk_cairo_create(event->window); GraphicsContext ctx(cr); @@ -3193,6 +3193,18 @@ bool webkit_web_view_use_primary_for_paste(WebKitWebView* webView) return webView->priv->usePrimaryForPaste; } +/** + * webkit_web_view_set_settings: + * @web_view: a #WebKitWebView + * @settings: (transfer none): the #WebKitWebSettings to be set + * + * Replaces the #WebKitWebSettings instance that is currently attached + * to @web_view with @settings. The reference held by the @web_view on + * the old #WebKitWebSettings instance is dropped, and the reference + * count of @settings is inscreased. + * + * The settings are automatically applied to @web_view. + */ void webkit_web_view_set_settings(WebKitWebView* webView, WebKitWebSettings* webSettings) { g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); @@ -3208,6 +3220,19 @@ void webkit_web_view_set_settings(WebKitWebView* webView, WebKitWebSettings* web g_object_notify(G_OBJECT(webView), "settings"); } +/** + * webkit_web_view_get_settings: + * @web_view: a #WebKitWebView + * + * Obtains the #WebKitWebSettings associated with the + * #WebKitWebView. The #WebKitWebView always has an associated + * instance of #WebKitWebSettings. The reference that is returned by + * this call is owned by the #WebKitWebView. You may need to increase + * its reference count if you intend to keep it alive for longer than + * the #WebKitWebView. + * + * Return value: (transfer none): the #WebKitWebSettings instance + */ WebKitWebSettings* webkit_web_view_get_settings(WebKitWebView* webView) { g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), NULL); @@ -3226,9 +3251,7 @@ WebKitWebSettings* webkit_web_view_get_settings(WebKitWebView* webView) * so this function will only return NULL if the argument is not a * valid #WebKitWebView. * - * Returns: the #WebKitWebInspector instance associated with the - * #WebKitWebView; %NULL is only returned if the argument is not a - * valid #WebKitWebView. + * Return value: (transfer none): the #WebKitWebInspector instance. * * Since: 1.0.3 */ @@ -3263,7 +3286,7 @@ static void webkit_web_view_set_window_features(WebKitWebView* webView, WebKitWe * Returns the instance of #WebKitWebWindowFeatures held by the given * #WebKitWebView. * - * Return value: the #WebKitWebWindowFeatures + * Return value: (transfer none): the #WebKitWebWindowFeatures * * Since: 1.0.3 */ @@ -3329,7 +3352,7 @@ void webkit_web_view_set_maintains_back_forward_list(WebKitWebView* webView, gbo * webkit_web_view_get_back_forward_list: * @web_view: a #WebKitWebView * - * Obtains the #WebKitBackForwardList associated with the given #WebKitWebView. The + * Obtains the #WebKitWebBackForwardList associated with the given #WebKitWebView. The * #WebKitWebBackForwardList is owned by the #WebKitWebView. * * Return value: (transfer none): the #WebKitWebBackForwardList diff --git a/WebKit/mac/Carbon/HIViewAdapter.m b/WebKit/mac/Carbon/HIViewAdapter.m index d11bea4..565be4f 100644 --- a/WebKit/mac/Carbon/HIViewAdapter.m +++ b/WebKit/mac/Carbon/HIViewAdapter.m @@ -30,6 +30,7 @@ #import "HIViewAdapter.h" +#import "QuickDrawCompatibility.h" #import "WebNSObjectExtras.h" #import diff --git a/WebKit/mac/Carbon/HIWebView.mm b/WebKit/mac/Carbon/HIWebView.mm index b461394..a3cdc66 100644 --- a/WebKit/mac/Carbon/HIWebView.mm +++ b/WebKit/mac/Carbon/HIWebView.mm @@ -32,11 +32,11 @@ #import "CarbonWindowAdapter.h" #import "HIViewAdapter.h" +#import "QuickDrawCompatibility.h" #import "WebHTMLViewInternal.h" #import "WebKit.h" - -#import #import +#import @interface NSWindow (AppKitSecretsHIWebViewKnows) - (void)_removeWindowRef; @@ -351,7 +351,7 @@ Draw( HIWebView* inView, RgnHandle limitRgn, CGContextRef inContext ) NSView *documentView = [[[inView->fWebView mainFrame] frameView] documentView]; if ([documentView isKindOfClass:[WebHTMLView class]]) - [(WebHTMLView *)documentView _web_layoutIfNeededRecursive]; + [(WebHTMLView *)documentView _web_updateLayoutAndStyleIfNeededRecursive]; if ( inView->fIsComposited ) [inView->fWebView displayIfNeededInRect: *(NSRect*)&hiRect]; diff --git a/WebKit/mac/ChangeLog b/WebKit/mac/ChangeLog index 565b1b0..88a2fbf 100644 --- a/WebKit/mac/ChangeLog +++ b/WebKit/mac/ChangeLog @@ -1,3 +1,265 @@ +2010-09-01 Jia Pu + + Reviewed by Dan Bernstein. + + Add support for autocorrection UI on Mac OS X. + https://bugs.webkit.org/show_bug.cgi?id=44958 + + + See detailed high level description in WebCore/ChangeLog. + + * WebCoreSupport/WebEditorClient.h: Added new member methods declared in + EditorClient. Added m_correctionPanelTag to store the ID of current autocorrection UI object. + + * WebCoreSupport/WebEditorClient.mm: + (WebEditorClient::WebEditorClient): Initialize m_correctionPanelTag. + (WebEditorClient::~WebEditorClient): Make sure the autocorrection UI is + dismissed before destroying the object. + (WebEditorClient::respondToChangedSelection): Dismiss autocorrection UI whenever the selection changes. + (WebEditorClient::showCorrectionPanel): Show autocorrection UI. + (WebEditorClient::dismissCorrectionPanel): Dismiss autocorrection UI. + +2010-09-01 Mark Rowe + + Reviewed by Adam Roben. + + WebKit needs to compile without access to QuickDraw private headers. + + * Carbon/HIViewAdapter.m: + * Carbon/HIWebView.mm: + * Misc/QuickDrawCompatibility.h: Added. + * Plugins/WebNetscapePluginView.mm: + +2010-08-31 Dave Hyatt + + Reviewed by Sam Weinig. + + https://bugs.webkit.org/show_bug.cgi?id=44863, disentangle style recalc from layout, so that + the former can occur in more places without having to do the latter. + + Eliminate Mac-specific code for style re-application and recursive layout/style updating in + favor of the cross-platform code that all the other ports use. + + * Carbon/HIWebView.mm: + (Draw): + * WebCoreSupport/WebFrameLoaderClient.mm: + (WebFrameLoaderClient::forceLayout): + * WebView/WebHTMLView.mm: + (-[WebHTMLView _propagateDirtyRectsToOpaqueAncestors]): + (-[WebHTMLView viewWillDraw]): + (-[WebHTMLView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]): + (-[WebHTMLView _recursiveDisplayAllDirtyWithLockFocus:visRect:]): + (-[WebHTMLView _recursive:displayRectIgnoringOpacity:inContext:topView:]): + (-[WebHTMLView reapplyStyles]): + (-[WebHTMLView layoutToMinimumPageWidth:height:maximumPageWidth:adjustingViewSize:]): + (-[WebHTMLView setNeedsToApplyStyles:]): + (-[WebHTMLView _setPrinting:minimumPageWidth:height:maximumPageWidth:adjustViewSize:paginateScreenContent:]): + (-[WebHTMLView _layoutIfNeeded]): + (-[WebHTMLView _web_updateLayoutAndStyleIfNeededRecursive]): + * WebView/WebHTMLViewInternal.h: + * WebView/WebView.mm: + (-[WebView _viewWillDrawInternal]): + +2010-08-31 Sam Weinig + + Reviewed by Darin Adler. + + Add ability to count text matches without marking + https://bugs.webkit.org/show_bug.cgi?id=43996 + + Safari needs to be able to count text matches without triggering lots of repainting. + Rename markAllMatchesForText: to countMatchesForText: and add a markMatches: + parameter. For backwards compatibility markAllMatchesForText: calls + countMatchesForText: and passes YES for markMatches:. + + * WebView/WebDocumentInternal.h: + * WebView/WebHTMLView.mm: + (-[WebHTMLView markAllMatchesForText:caseSensitive:limit:]): + (-[WebHTMLView countMatchesForText:caseSensitive:limit:markMatches:]): + * WebView/WebPDFView.mm: + (-[WebPDFView markAllMatchesForText:caseSensitive:limit:]): + (-[WebPDFView countMatchesForText:caseSensitive:limit:markMatches:]): + * WebView/WebView.mm: + (-[WebView markAllMatchesForText:caseSensitive:highlight:limit:]): + (-[WebView countMatchesForText:caseSensitive:highlight:limit:markMatches:]): + * WebView/WebViewPrivate.h: + +2010-08-31 Darin Adler + + Reviewed by Anders Carlsson. + + * WebInspector/WebInspectorFrontend.mm: + (-[WebInspectorFrontend initWithFrontendClient:]): Remove a stray semicolon. + +2010-08-30 Mark Rowe + + Reviewed by Darin Adler. + + WebKit build fails. + + Temporarily add some extra includes in order to get things building again until is addressed. + + * Carbon/HIViewAdapter.m: + * Carbon/HIWebView.mm: + * Plugins/WebNetscapePluginView.mm: + +2010-08-30 Andy Estes + + Reviewed by Darin Adler. + + REGRESSION (r66156): Sites using AppleConnect for authentication fail to log in. + https://bugs.webkit.org/show_bug.cgi?id=44865 + + After http://trac.webkit.org/changeset/66156, sites using the AppleConnect plug-in + for authentication fail to log in. This is due to a bug in AppleConnect that r66156 + exposed, but since this will have a significant impact on users of WebKit nightly + builds, a plugin-specific hack should be added while the underlying issue is being + addressed. + + * WebCoreSupport/WebFrameLoaderClient.mm: + (WebFrameLoaderClient::createPlugin): Convert plug-in parameter names to lowercase + if the plugin is of type 'application/x-snkp'. + +2010-08-27 Jer Noble + + Reviewed by Eric Carlson. + + text/plain non-video files cause