diff options
Diffstat (limited to 'WebKit')
198 files changed, 18545 insertions, 6251 deletions
diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog index 9c29e83..b6eba21 100644 --- a/WebKit/ChangeLog +++ b/WebKit/ChangeLog @@ -1,3 +1,7 @@ +2010-11-18 Darin Adler <darin@apple.com> + + * StringsNotToBeLocalized.txt: Updated for recent changes. + 2010-11-16 Patrick Gansterer <paroga@webkit.org> Reviewed by Andreas Kling. diff --git a/WebKit/StringsNotToBeLocalized.txt b/WebKit/StringsNotToBeLocalized.txt index bf1e575..23ea816 100644 --- a/WebKit/StringsNotToBeLocalized.txt +++ b/WebKit/StringsNotToBeLocalized.txt @@ -2,12 +2,20 @@ " " " #%*[^\n\r]%*[\n\r]" " %32[^# \t\n\r]%*[^# \t\n\r] " +" %@" +" (KHTML, like Gecko) " +" (KHTML, like Gecko)" +" (clipped)" +" (clipping)" +" (reflection)" " *POST*" " *target*" " >>>" " Mac OS X %@; %@) AppleWebKit/%@ (KHTML, like Gecko) %@" " Mac OS X %@; %@) AppleWebKit/%@ (KHTML, like Gecko)" " Version/3.2.1" +" class=\"%@\"" +" id=\"%@\"" "#" "%" "%.0f" @@ -43,13 +51,16 @@ "%u" "&ie=UTF-8&oe=UTF-8" "(%.0f, %.0f)" +") AppleWebKit/" "+" +"+ve z-order list" ", " "," "-" "-1px" "-createPluginMIMETypesPreferences" "-khtml-text-decorations-in-effect" +"-ve z-order list" "." ".download" ".html" @@ -87,7 +98,7 @@ ":" "://" ":/?#" -";" +"; " "<!" "<%@ %@>" "<?" @@ -132,7 +143,6 @@ "AllowsUndo" "Apple Web Archive pasteboard type" "AppleKeyboardUIMode" -"AppleLanguages" "AppleTextDirection" "AudioElement" "BEGIN:VCALENDAR" @@ -222,12 +232,15 @@ "JavaScript" "JavaScriptFreeSize" "JavaScriptHeapSize" +"JavaScriptJITSize" +"JavaScriptStackSize" "Joy!peff" "LTR" "Library/Caches" "Library/Internet Plug-Ins" "LresultFromObject" "MIME\\Database\\Content Type" +"MailQuirksUserScript" "MainPageJavaScript.js" "MemoryStream" "MenuCommands" @@ -257,7 +270,7 @@ "MoveWordRight" "MoveWordRightAndModifySelection" "Mozilla/5.0 (Macintosh; U; " -"Mozilla/5.0 (Windows; U; %s; %s) AppleWebKit/%s (KHTML, like Gecko)%s%s" +"Mozilla/5.0 (Windows; U; " "MuteButton" "NP_GetEntryPoints" "NP_Initialize" @@ -293,6 +306,7 @@ "SAMIStyle" "SCROLLBAR" "Safari.exe" +"ScrollerRectangle" "SeekBackButton" "SeekForwardButton" "SelectAll" @@ -360,6 +374,7 @@ "WebElementLinkLabel" "WebElementLinkTitle" "WebElementLinkURL" +"WebElementMediaURL" "WebElementPropertyBag" "WebElementSpellingToolTip" "WebElementTargetFrame" @@ -495,11 +510,11 @@ "WebViewDidEndEditingNotification" "WebViewWindowClass" "WebWorkersPrivate" -"Windows %d.%d" +"Windows " "Windows 95" "Windows 98" "Windows 98; Win 9x 4.90" -"Windows NT %d.%d" +"Windows NT " "WmvPlugin" "XSL" "XXXXXX-" @@ -525,9 +540,6 @@ "about:" "acceleratedCompositingEnabled" "actions" -"allowedFileTypes" -"allowsMultipleSelection" -"allowsOtherFileTypes" "anchorPoint" "apple-dashboard://stylesheet" "applewebdata" @@ -550,12 +562,8 @@ "bounds" "bundlePath" "c" -"canChooseDirectories" -"canChooseFiles" -"canCreateDirectories" "canGoBack" "canGoForward" -"canSelectHiddenExtension" "com.RealNetworks.RealOne Player" "com.adiumX.adiumX" "com.adobe.Acrobat" @@ -623,6 +631,9 @@ "com.sunrisebrowser.Sunrise" "com.thinkmac.NewsLife" "com.yahoo.messenger3" +"composited for plug-in, video or WebGL" +"composited: container layer" +"composited: tiled layer" "contents" "contentsRect" "cp949" @@ -631,7 +642,6 @@ "dir" "displayTitle" "doctype" -"en" "estimatedProgress" "fi.karppinen.Pyro" "file:" @@ -667,7 +677,6 @@ "img" "info.colloquy" "insertText:" -"isExtensionHidden" "isLoading" "isindex" "javascript:" @@ -690,8 +699,8 @@ "mainFrameTitle" "mainFrameURL" "mimeType" -"nameFieldLabel" "net.hmdt-web.Shiira" +"normal flow list" "oleacc.dll" "opacity" "org.xlife.NewsFire" @@ -703,13 +712,11 @@ "public.url-name" "r" "r+b" +"rect:%@ clip:%@ type:%s" "redirectURLs" -"requiredFileType" -"resolvesAliases" "rgb(%.0f,%.0f,%.0f)" "rgba(%.0f,%.0f,%.0f,%f)" "s" -"showsHiddenFiles" "sourceURL" "src" "sub" @@ -732,11 +739,9 @@ "text/x-vcard" "text/x-vcf" "transform" -"treatsFilePackagesAsDirectories" "txt" "u" "uk.co.opencommunity.vienna2" -"useProxiedOpenPanel" "userAgent" "userInfo" "utf-16" @@ -764,15 +769,7 @@ WebKit/mac/Plugins/Hosted/HostedNetscapePluginStream.mm:" OK\n" WebKit/mac/Plugins/Hosted/HostedNetscapePluginStream.mm:": " WebKit/mac/Plugins/Hosted/HostedNetscapePluginStream.mm:"identity" WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.mm:"localization" -WebKit/mac/Plugins/Hosted/NetscapePluginHostProxy.mm:"extensions" -WebKit/mac/Plugins/Hosted/NetscapePluginHostProxy.mm:"filenames" -WebKit/mac/Plugins/Hosted/NetscapePluginHostProxy.mm:"message" -WebKit/mac/Plugins/Hosted/NetscapePluginHostProxy.mm:"prompt" -WebKit/mac/Plugins/Hosted/NetscapePluginHostProxy.mm:"title" WebKit/mac/Plugins/Hosted/ProxyInstance.mm -WebKit/mac/Plugins/WebBaseNetscapePluginView.mm:"DIRECT" -WebKit/mac/Plugins/WebBaseNetscapePluginView.mm:"PROXY " -WebKit/mac/Plugins/WebBaseNetscapePluginView.mm:"SOCKS " WebKit/mac/Plugins/WebBaseNetscapePluginView.mm:"basic" WebKit/mac/Plugins/WebBaseNetscapePluginView.mm:"digest" WebKit/mac/Plugins/WebBaseNetscapePluginView.mm:"true" @@ -798,14 +795,25 @@ WebKit/mac/WebCoreSupport/WebChromeClient.mm:"y" WebKit/mac/WebCoreSupport/WebEditorClient.mm:"Down" WebKit/mac/WebCoreSupport/WebEditorClient.mm:"Enter" WebKit/mac/WebCoreSupport/WebEditorClient.mm:"Up" +WebKit/mac/WebCoreSupport/WebEditorClient.mm:"applet" +WebKit/mac/WebCoreSupport/WebEditorClient.mm:"body" +WebKit/mac/WebCoreSupport/WebEditorClient.mm:"center" +WebKit/mac/WebCoreSupport/WebEditorClient.mm:"font" +WebKit/mac/WebCoreSupport/WebEditorClient.mm:"head" +WebKit/mac/WebCoreSupport/WebEditorClient.mm:"menu" +WebKit/mac/WebCoreSupport/WebEditorClient.mm:"object" +WebKit/mac/WebCoreSupport/WebEditorClient.mm:"strike" +WebKit/mac/WebCoreSupport/WebEditorClient.mm:"style" WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm:"height" WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm:"width" WebKit/mac/WebCoreSupport/WebInspectorClient.mm:"Menlo" WebKit/mac/WebCoreSupport/WebInspectorClient.mm:"Monaco" WebKit/mac/WebCoreSupport/WebInspectorClient.mm:"Web Inspector 2" -WebKit/mac/WebCoreSupport/WebInspectorClient.mm:"false" WebKit/mac/WebCoreSupport/WebInspectorClient.mm:"inspector" -WebKit/mac/WebCoreSupport/WebInspectorClient.mm:"true" +WebKit/mac/WebView/WebDashboardRegion.mm:"Circle" +WebKit/mac/WebView/WebDashboardRegion.mm:"None" +WebKit/mac/WebView/WebDashboardRegion.mm:"Rectangle" +WebKit/mac/WebView/WebDashboardRegion.mm:"Unknown" WebKit/mac/WebView/WebHTMLView.mm:"'%@'" WebKit/mac/WebView/WebHTMLView.mm:"Version:" WebKit/mac/WebView/WebHTMLView.mm:"applet" @@ -839,6 +847,7 @@ WebKit/mac/WebView/WebPreferences.mm:"ISO-8859-1" WebKit/mac/WebView/WebPreferences.mm:"Identifier" WebKit/mac/WebView/WebPreferences.mm:"Papyrus" WebKit/mac/WebView/WebPreferences.mm:"Values" +WebKit/mac/WebView/WebRenderLayer.mm:"composited" WebKit/mac/WebView/WebVideoFullscreenController.mm:"WebKit playing a video fullscreen." WebKit/mac/WebView/WebVideoFullscreenHUDWindowController.mm:"maxValue" WebKit/mac/WebView/WebView.mm:"At least one WebView is still open." @@ -862,9 +871,7 @@ WebKit/win/WebCache.cpp:"style sheets" WebKit/win/WebCoreSupport/WebInspectorClient.cpp:"Courier New" WebKit/win/WebCoreSupport/WebInspectorClient.cpp:"Web Inspector " WebKit/win/WebCoreSupport/WebInspectorClient.cpp:"Web Inspector" -WebKit/win/WebCoreSupport/WebInspectorClient.cpp:"false" WebKit/win/WebCoreSupport/WebInspectorClient.cpp:"inspector" -WebKit/win/WebCoreSupport/WebInspectorClient.cpp:"true" WebKit/win/WebDatabaseManager.cpp:"Databases" WebKit/win/WebHistoryItem.cpp:"title" WebKit/win/WebKitDLL.cpp diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog index 2e3ce8e..bbcdcbd 100644 --- a/WebKit/chromium/ChangeLog +++ b/WebKit/chromium/ChangeLog @@ -1,3 +1,774 @@ +2010-12-01 Jia Pu <jpu@apple.com> + + Reviewed by Darin Adler. + + Support multiple correction candidates panel for misspelled word on Mac OS X. + https://bugs.webkit.org/show_bug.cgi?id=50137 + <rdar://problem/8568059> + + Adopted new function signature defined in base class. + + * src/EditorClientImpl.cpp: + (WebKit::EditorClientImpl::getGuessesForWord): + * src/EditorClientImpl.h: + +2010-12-01 Alexey Marinichev <amarinichev@chromium.org> + + Reviewed by James Robinson. + + [chromium] renderer does not realize hardware compositing is disabled and crashes + https://bugs.webkit.org/show_bug.cgi?id=50264 + + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::setRootGraphicsLayer): repaint always + (WebKit::WebViewImpl::setIsAcceleratedCompositingActive): null check + (WebKit::WebViewImpl::reallocateRenderer): + +2010-11-30 Vangelis Kokkevis <vangelis@chromium.org> + + Reviewed by Darin Fisher. + + Get the value of the accelerated compositing triggers from the Settings + class. This allows setting the triggers via command line flags. + https://bugs.webkit.org/show_bug.cgi?id=50301 + + * public/WebSettings.h: + * src/ChromeClientImpl.cpp: + (WebKit::ChromeClientImpl::allowedCompositingTriggers): + * src/WebSettingsImpl.cpp: + (WebKit::WebSettingsImpl::setAcceleratedCompositingFor3DTransformsEnabled): + (WebKit::WebSettingsImpl::setAcceleratedCompositingForVideoEnabled): + (WebKit::WebSettingsImpl::setAcceleratedCompositingForPluginsEnabled): + (WebKit::WebSettingsImpl::setAcceleratedCompositingForCanvasEnabled): + (WebKit::WebSettingsImpl::setAcceleratedCompositingForAnimationEnabled): + * src/WebSettingsImpl.h: + +2010-12-01 Tony Chang <tony@chromium.org> + + Unreviewed, rolling chromium deps to r67811. + + * DEPS: + +2010-12-01 Andrey Kosyakov <caseq@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: disable cookies tab in network resource view by default, enable for chromium + https://bugs.webkit.org/show_bug.cgi?id=50249 + + * src/js/DevTools.js: + +2010-11-30 Ojan Vafai <ojan@chromium.org> + + Revert r72876. It caused a ~30% perf regression in chromium's bloat-http test + https://bugs.webkit.org/show_bug.cgi?id=50288 + + 2010-11-29 Adam Barth <abarth@webkit.org (:abarth) (r)> + Reviewed by Darin Adler. + Introduce the notion of a "display-isolated" URL scheme for use by Chrome-internal URLs + https://bugs.webkit.org/show_bug.cgi?id=50182 + A display-isolated URL can only be displayed (e.g., put in an iframe, + hyperlinked to) by documents from that scheme. In a sense, this is a + generalization of some of the protections we give file URLs, but + instead of lumping them all together into one "local" bucket, this + patch creates a separate bucket for each scheme. + For a while, I tried using a separate bucket for each origin. That + would have played nicely with what Blob URLs are trying to do, but some + "chrome" URL pages rely on being able to display other chrome URL + pages, even in different origins. For example, the New Tab Page shows + thumbnails from the "thumbnail" host. + This patch also removes a bunch of unused code. I've also propagated + the "deprecated" status of deprecatedCanDisplay to + deprecatedShouldTreatURLAsLocal because that method has no other + callers and is really asking for uppercase/lowercase bugs. I dream of + someday removing these functions. + 2010-11-29 Adam Barth <abarth@webkit.org (:abarth) (r)> + Reviewed by Darin Adler. + Introduce the notion of a "display-isolated" URL scheme for use by Chrome-internal URLs + https://bugs.webkit.org/show_bug.cgi?id=50182 + This patch adds a Chromium API for registering schemes as + display-isolated. In a subsequent patch, I'll change the "chrome" + scheme in Chrome to be display isolated instead of local. That will + prevent file URLs from linking to chrome URLs. + + * public/WebSecurityPolicy.h: + * src/WebSecurityPolicy.cpp: + +2010-11-30 James Robinson <jamesr@chromium.org> + + Reviewed by Dimitri Glazkov. + + [chromium] Update yasm entry in DEPS to match downstream + https://bugs.webkit.org/show_bug.cgi?id=50274 + + http://src.chromium.org/viewvc/chrome?view=rev&revision=67540 changed the downstream DEPS rule + for yasm to pull unconditionally rather than pulling in each deps_os. This changes the WebKit + chromium DEPS to match. + + * DEPS: + +2010-11-29 Vangelis Kokkevis <vangelis@chromium.org> + + Reviewed by Simon Fraser. + + Provide more fine grained control to ports over when to turn on accelerated + compositing. + https://bugs.webkit.org/show_bug.cgi?id=49998 + + As part of this change, the old hasAcceleratedCompositing method on the ChromeClient + has now been replaced by allowedCompositingTriggers which returns a bitfield of + all the features which can trigger the compositor. + + * src/ChromeClientImpl.cpp: + (WebKit::ChromeClientImpl::allowedCompositingTriggers): + * src/ChromeClientImpl.h: + +2010-11-30 Jochen Eisinger <jochen@chromium.org> + + Reviewed by Darin Fisher. + + [chromium] pass webframe to web frame client's cookieJar + https://bugs.webkit.org/show_bug.cgi?id=50148 + + * public/WebFrameClient.h: + (WebKit::WebFrameClient::cookieJar): + * src/ChromiumBridge.cpp: + (WebCore::getCookieJar): + +2010-11-30 Jochen Eisinger <jochen@chromium.org> + + Unreviewed. Roll chromium 67532:67541. + + * DEPS: + +2010-11-29 Adam Barth <abarth@webkit.org> + + Reviewed by Darin Adler. + + Introduce the notion of a "display-isolated" URL scheme for use by Chrome-internal URLs + https://bugs.webkit.org/show_bug.cgi?id=50182 + + This patch adds a Chromium API for registering schemes as + display-isolated. In a subsequent patch, I'll change the "chrome" + scheme in Chrome to be display isolated instead of local. That will + prevent file URLs from linking to chrome URLs. + + * public/WebSecurityPolicy.h: + * src/WebSecurityPolicy.cpp: + (WebKit::WebSecurityPolicy::registerURLSchemeAsDisplayIsolated): + +2010-11-29 Kent Tamura <tkent@chromium.org> + + Reviewed by Darin Fisher. + + [Chromium] Add substitution parameters to WebKitClient::queryLocalizedString() + https://bugs.webkit.org/show_bug.cgi?id=50053 + + * public/WebKitClient.h: + (WebKit::WebKitClient::queryLocalizedString): Add overload functions with + substitution string parameters, and remove the integer parameter overload. + * src/LocalizedStrings.cpp: + (WebCore::query): Add string parameter overloads, and remove the integer parameter overload. + (WebCore::multipleFileUploadText): Call the string parameter query(). + (WebCore::validationMessageTooLongText): Pass the parameters to query(). + (WebCore::validationMessageRangeUnderflowText): ditto. + (WebCore::validationMessageRangeOverflowText): ditto. + (WebCore::validationMessageStepMismatchText): ditto. + +2010-11-29 Dimitri Glazkov <dglazkov@chromium.org> + + Remove Build directory that was erroneously added in r72103. + + * Build: Removed. + +2010-11-29 Andrey Kosyakov <caseq@chromium.org> + + Reviewed by Darin Fisher. + + Web Inspector: [Chromium] Expose extension API to select a node in WebInspector + Added WebDevToolsAgent::inspect() + https://bugs.webkit.org/show_bug.cgi?id=49727 + + * public/WebDevToolsAgent.h: + * src/WebDevToolsAgentImpl.cpp: + (WebKit::WebDevToolsAgentImpl::inspectNode): + * src/WebDevToolsAgentImpl.h: + +2010-11-29 Dimitri Glazkov <dglazkov@chromium.org> + + [Chromium] Remove python_24 dependency, because it is no longer necessary. + + * DEPS: Removed python_24 dependency. + +2010-11-29 Bernhard Bauer <bauerb@chromium.org> + + Reviewed by Jeremy Orlow. + + Remove databaseFileName from WebIDBFactory + https://bugs.webkit.org/show_bug.cgi?id=50150 + + * WebKit.gyp: + * public/WebIDBFactory.h: + (WebKit::WebIDBFactory::open): + * src/WebIDBFactory.cpp: Removed. + +2010-11-26 Andrei Popescu <andreip@google.com> + + Reviewed by Jeremy Orlow. + + IDBDatabase and IDBObjectStore remove* methods should be renamed to delete* + https://bugs.webkit.org/show_bug.cgi?id=50113 + + * public/WebIDBDatabase.h: + (WebKit::WebIDBDatabase::deleteObjectStore): + (WebKit::WebIDBDatabase::removeObjectStore): + * public/WebIDBObjectStore.h: + (WebKit::WebIDBObjectStore::remove): + (WebKit::WebIDBObjectStore::deleteFunction): + (WebKit::WebIDBObjectStore::deleteIndex): + * src/IDBDatabaseProxy.cpp: + (WebCore::IDBDatabaseProxy::deleteObjectStore): + * src/IDBDatabaseProxy.h: + * src/IDBObjectStoreProxy.cpp: + (WebCore::IDBObjectStoreProxy::deleteFunction): + (WebCore::IDBObjectStoreProxy::deleteIndex): + * src/IDBObjectStoreProxy.h: + * src/WebIDBDatabaseImpl.cpp: + (WebKit::WebIDBDatabaseImpl::deleteObjectStore): + * src/WebIDBDatabaseImpl.h: + * src/WebIDBObjectStoreImpl.cpp: + (WebKit::WebIDBObjectStoreImpl::deleteFunction): + (WebKit::WebIDBObjectStoreImpl::deleteIndex): + * src/WebIDBObjectStoreImpl.h: + +2010-11-26 Jeremy Orlow <jorlow@chromium.org> + + Reviewed by Steve Block. + + Make IDBKeyRange match the spec + https://bugs.webkit.org/show_bug.cgi?id=50105 + + Remove flags and instead add two booleans for being open. + Change left to lower and right to upper everywhere. + + * public/WebIDBKeyRange.h: + (WebKit::WebIDBKeyRange::WebIDBKeyRange): + * src/WebIDBKeyRange.cpp: + (WebKit::WebIDBKeyRange::assign): + (WebKit::WebIDBKeyRange::left): + (WebKit::WebIDBKeyRange::right): + (WebKit::WebIDBKeyRange::lower): + (WebKit::WebIDBKeyRange::upper): + (WebKit::WebIDBKeyRange::lowerOpen): + (WebKit::WebIDBKeyRange::upperOpen): + (WebKit::WebIDBKeyRange::flags): + +2010-11-25 Jeremy Orlow <jorlow@chromium.org> + + Reviewed by Steve Block. + + Clean up IDBDatabase.transaction and add checks to IDBTransaction.objectStore + https://bugs.webkit.org/show_bug.cgi?id=50081 + + Plumb IDBTransaction.objectStore's exception code. + + * public/WebIDBTransaction.h: + (WebKit::WebIDBTransaction::objectStore): + * src/IDBDatabaseProxy.cpp: + (WebCore::IDBDatabaseProxy::transaction): + * src/IDBTransactionBackendProxy.cpp: + (WebCore::IDBTransactionBackendProxy::objectStore): + * src/IDBTransactionBackendProxy.h: + * src/WebIDBDatabaseImpl.cpp: + (WebKit::WebIDBDatabaseImpl::createObjectStore): + (WebKit::WebIDBDatabaseImpl::transaction): + * src/WebIDBTransactionImpl.cpp: + (WebKit::WebIDBTransactionImpl::objectStore): + * src/WebIDBTransactionImpl.h: + +2010-11-26 Hans Wennborg <hans@chromium.org> + + Reviewed by Jeremy Orlow. + + IndexedDB: Rename IDBDatabase.objectStores to objectStoreNames + https://bugs.webkit.org/show_bug.cgi?id=50102 + + Rename as per the spec: http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#database-interface + + * public/WebIDBDatabase.h: + (WebKit::WebIDBDatabase::objectStores): + (WebKit::WebIDBDatabase::objectStoreNames): + * src/IDBDatabaseProxy.cpp: + (WebCore::IDBDatabaseProxy::objectStoreNames): + * src/IDBDatabaseProxy.h: + * src/WebIDBDatabaseImpl.cpp: + (WebKit::WebIDBDatabaseImpl::objectStoreNames): + * src/WebIDBDatabaseImpl.h: + +2010-11-26 Andrei Popescu <andreip@google.com> + + Reviewed by Jeremy Orlow. + + IDBFactory::open should not have a description argument. + https://bugs.webkit.org/show_bug.cgi?id=50087 + + * public/WebIDBDatabase.h: + (WebKit::WebIDBDatabase::description): + * public/WebIDBFactory.h: + (WebKit::WebIDBFactory::open): + * src/IDBFactoryBackendProxy.cpp: + (WebCore::IDBFactoryBackendProxy::open): + * src/IDBFactoryBackendProxy.h: + * src/WebIDBDatabaseImpl.cpp: + * src/WebIDBDatabaseImpl.h: + * src/WebIDBFactory.cpp: + * src/WebIDBFactoryImpl.cpp: + (WebKit::WebIDBFactoryImpl::open): + * src/WebIDBFactoryImpl.h: + +2010-11-25 Ilya Tikhonovsky <loislo@chromium.org> + + Unreviewed. Roll chromium 67004:67404. + + * DEPS: + +2010-11-25 Jeremy Orlow <jorlow@chromium.org> + + Reviewed by Steve Block. + + Add exception code to WebIDBTransaction::objectStore + https://bugs.webkit.org/show_bug.cgi?id=50030 + + * public/WebIDBTransaction.h: + (WebKit::WebIDBTransaction::objectStore): + +2010-11-24 MORITA Hajime <morrita@google.com> + + Reviewed by Kent Tamura. + + [Chromium][Windows] TestShell flakily crashes with EventSender.contextClick() + https://bugs.webkit.org/show_bug.cgi?id=50052 + + makeStringArrayImpl() assumed wtf::StringImpl data is + null-terminated. But it is not. + Changed the code to pass the string length explicitly instead of + making it computed by v8::String::New(). + + * src/WebBindings.cpp: + (WebKit::makeStringArrayImpl): + +2010-11-24 Eric Uhrhane <ericu@chromium.org> + + Reviewed by David Levin. + + [Chromium] Implement FileWriterSync + https://bugs.webkit.org/show_bug.cgi?id=49940 + + Added waitForOperationToComplete, delegating to the bridge. + * src/WorkerAsyncFileWriterChromium.cpp: + * src/WorkerAsyncFileWriterChromium.h: + + Added waitForOperationToComplete and some debug-only code to make sure it's working properly. + * src/WorkerFileWriterCallbacksBridge.cpp: + (WebKit::WorkerFileWriterCallbacksBridge::postWriteToMainThread): + (WebKit::WorkerFileWriterCallbacksBridge::postTruncateToMainThread): + (WebKit::WorkerFileWriterCallbacksBridge::postAbortToMainThread): + (WebKit::WorkerFileWriterCallbacksBridge::WorkerFileWriterCallbacksBridge): + (WebKit::WorkerFileWriterCallbacksBridge::didWriteOnWorkerThread): + (WebKit::WorkerFileWriterCallbacksBridge::didFailOnWorkerThread): + (WebKit::WorkerFileWriterCallbacksBridge::didTruncateOnWorkerThread): + (WebKit::WorkerFileWriterCallbacksBridge::waitForOperationToComplete): + * src/WorkerFileWriterCallbacksBridge.h: + +2010-11-24 Kenneth Russell <kbr@google.com> + + Reviewed by Darin Fisher. + + [chromium] Disable antialiasing for compositor + https://bugs.webkit.org/show_bug.cgi?id=50039 + + * src/WebViewImpl.cpp: + (WebCore::getCompositorContextAttributes): + (WebKit::WebViewImpl::setIsAcceleratedCompositingActive): + (WebKit::WebViewImpl::graphicsContext3D): + +2010-11-24 Satish Sampath <satish@chromium.org> + + Reviewed by Steve Block. + + Remove API migration code which is no longer used. + https://bugs.webkit.org/show_bug.cgi?id=50013 + + * public/WebSpeechInputControllerMock.h: + +2010-11-23 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r72628. + http://trac.webkit.org/changeset/72628 + https://bugs.webkit.org/show_bug.cgi?id=49994 + + This patch is causing layout-test failtures on GTK Linux + 64-bit Debug (Requested by ctguil on #webkit). + + * public/WebAccessibilityObject.h: + * src/WebAccessibilityObject.cpp: + (WebKit::WebAccessibilityObject::parentObject): + +2010-11-23 Chris Guillory <chris.guillory@google.com> + + Reviewed by Dimitri Glazkov. + + Include the FrameView widget of a RenderWidget in the accessibility tree. + https://bugs.webkit.org/show_bug.cgi?id=49106 + + * public/WebAccessibilityObject.h: + * src/WebAccessibilityObject.cpp: + (WebKit::WebAccessibilityObject::equals): + (WebKit::WebAccessibilityObject::parentObject): + +2010-11-23 John Knottenbelt <jknotten@chromium.org> + + Reviewed by Darin Fisher. + + [Chromium] Introduce wrapper types for WebCore::GeolocationError, WebCore::GeolocationPosition. + https://bugs.webkit.org/show_bug.cgi?id=49735 + + Introduce WebKit API types so that the browser implementation can feed + position and error updates to the WebCore::GeolocationController. + + * WebKit.gyp: + * public/WebGeolocationError.h: Added. + (WebKit::WebGeolocationError::WebGeolocationError): + (WebKit::WebGeolocationError::~WebGeolocationError): + * public/WebGeolocationPosition.h: Added. + (WebKit::WebGeolocationPosition::WebGeolocationPosition): + (WebKit::WebGeolocationPosition::~WebGeolocationPosition): + * src/WebGeolocationError.cpp: Added. + (WebKit::WebGeolocationError::assign): + (WebKit::WebGeolocationError::reset): + (WebKit::WebGeolocationError::WebGeolocationError): + (WebKit::WebGeolocationError::operator=): + (WebKit::WebGeolocationError::operator WTF::PassRefPtr<WebCore::GeolocationError>): + * src/WebGeolocationPosition.cpp: Added. + (WebKit::WebGeolocationPosition::assign): + (WebKit::WebGeolocationPosition::reset): + (WebKit::WebGeolocationPosition::operator=): + (WebKit::WebGeolocationPosition::operator PassRefPtr<WebCore::GeolocationPosition>): + +2010-11-23 Jonathan Backer <backer@chromium.org> + + Reviewed by Kenneth Russell. + + Renderer is resizing IOSurfaces when accelerated compositing is disabled. + https://bugs.webkit.org/show_bug.cgi?id=49827 + + - IOSurfaces are only presented when accelerated compositing is enabled. + - Slight performance increase (and clean-up for using this path for Linux and Windows). + + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::resize): + +2010-11-23 Grace Kloba <klobag@chromium.org> + + Reviewed by Kenneth Russell. + + [chromium] Accumulated scroll damage rect should be in the content space + https://bugs.webkit.org/show_bug.cgi?id=49842 + + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::scrollRootLayerRect): Adjust the previous scroll damage with the scroll delta before union it with the new damage rect. + +2010-11-18 Darin Fisher <darin@chromium.org> + + Reviewed by Dimitri Glazkov. + + Add a mechanism for creating a WebURLLoader that is associated with a + particular WebFrame. + https://bugs.webkit.org/show_bug.cgi?id=49764 + + This will be used by code that calls webKitClient()->createURLLoader() + from within the Chromium source tree. + + An associated WebURLLoader should be treated like a subresource of the + WebFrame's document. + + * WebKit.gyp: + * public/WebFrame.h: + * src/AssociatedURLLoader.cpp: Added. + (WebKit::AssociatedURLLoader::AssociatedURLLoader): + (WebKit::AssociatedURLLoader::~AssociatedURLLoader): + (WebKit::AssociatedURLLoader::loadSynchronously): + (WebKit::AssociatedURLLoader::loadAsynchronously): + (WebKit::AssociatedURLLoader::cancel): + (WebKit::AssociatedURLLoader::setDefersLoading): + (WebKit::AssociatedURLLoader::PrepareRequest): + * src/AssociatedURLLoader.h: Added. + * src/WebFrameImpl.cpp: + (WebKit::WebFrameImpl::createAssociatedURLLoader): + * src/WebFrameImpl.h: + +2010-11-23 Satish Sampath <satish@chromium.org> + + Unreviewed, chromium build fix. + + * public/WebSpeechInputControllerMock.h: + (WebKit::WebSpeechInputControllerMock::setMockRecognitionResult): + +2010-11-18 Satish Sampath <satish@chromium.org> + + Reviewed by Jeremy Orlow. + + For speech input event, send an event object containing all the recognition results and metadata. + https://bugs.webkit.org/show_bug.cgi?id=49736 + + Updated mock object's method to new signature. + + * public/WebSpeechInputControllerMock.h: + * src/WebSpeechInputControllerMockImpl.cpp: + (WebKit::WebSpeechInputControllerMockImpl::addMockRecognitionResult): + * src/WebSpeechInputControllerMockImpl.h: + +2010-11-22 Alexey Marinichev <amarinichev@chromium.org> + + Reviewed by Kenneth Russell. + + [chromium] Implement Extensions3DChromium::getGraphicsResetStatusARB + https://bugs.webkit.org/show_bug.cgi?id=49946 + + * public/WebGraphicsContext3D.h: added isContextLost() + * src/Extensions3DChromium.cpp: + (WebCore::Extensions3DChromium::getGraphicsResetStatusARB): + * src/GraphicsContext3DChromium.cpp: + (WebCore::GraphicsContext3DInternal::isContextLost): + * src/GraphicsContext3DInternal.h: + * src/WebGraphicsContext3DDefaultImpl.cpp: + (WebKit::WebGraphicsContext3DDefaultImpl::isContextLost): + * src/WebGraphicsContext3DDefaultImpl.h: + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::reallocateRenderer): ensure root layer repaining + +2010-11-22 Jay Civelli <jcivelli@chromium.org> + + Reviewed by David Levin. + + Don't create an external popup menu when there are no items to show. + https://bugs.webkit.org/show_bug.cgi?id=49937 + + * src/ExternalPopupMenu.cpp: + (WebKit::ExternalPopupMenu::show): + +2010-11-22 Nat Duca <nduca@chromium.org> + + Reviewed by Kenneth Russell. + + [chromium] Send didActivateAcceleratedCompositing when compositor + initializes but does not create the shared context3d. + https://bugs.webkit.org/show_bug.cgi?id=49930 + + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::setIsAcceleratedCompositingActive): + +2010-11-22 Tony Chang <tony@chromium.org> + + Unreviewed, roll Chromium DEPS to r67004. + + * DEPS: + +2010-11-22 Pavel Feldman <pfeldman@chromium.org> + + Not reviewed. Partially roll out r72282. + It should not have modified devtools files. + + * src/js/devTools.css: + +2010-11-19 Ilya Sherman <isherman@chromium.org> + + Reviewed by Darin Fisher. + + Expose default value of maxLength in Chromium API + https://bugs.webkit.org/show_bug.cgi?id=49723 + + * public/WebInputElement.h: Added constant defaultMaximumLength + * src/WebInputElement.cpp: + +2010-11-18 Zhenyao Mo <zmo@google.com> + + Reviewed by Kenneth Russell. + + GraphicsContext3D::reshape is clearing using current clear color instead of transparent + https://bugs.webkit.org/show_bug.cgi?id=44064 + + * src/WebGraphicsContext3DDefaultImpl.cpp: + (WebKit::WebGraphicsContext3DDefaultImpl::reshape): Use 0 as clear values. + +2010-11-19 Tony Chang <tony@chromium.org> + + Unreviewed, updating Chromium DEPS to try and fix the chromium win build. + + * DEPS: r66792 + +2010-11-19 Tony Chang <tony@chromium.org> + + Reviewed by Kent Tamura. + + [chromium] Enable webkit's TestNetscapePlugIn for DRT on win and linux + https://bugs.webkit.org/show_bug.cgi?id=49706 + + It is enabled simply by copying the plugin into + {Debug,Release}/plugins. This change also rolls in a version of + Chromium that disables the old plugin. + + * WebKit.gyp: + +2010-11-19 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r72399. + http://trac.webkit.org/changeset/72399 + https://bugs.webkit.org/show_bug.cgi?id=49805 + + Broke Chromium build (Requested by antonm_ on #webkit). + + * src/ChromeClientImpl.cpp: + (WebKit::ChromeClientImpl::popupOpened): + * src/ChromeClientImpl.h: + +2010-11-19 Jay Civelli <jcivelli@chromium.org> + + Reviewed by David Levin. + + Removing unused code to show popup externally on Mac. + https://bugs.webkit.org/show_bug.cgi?id=49747 + + * src/ChromeClientImpl.cpp: + (WebKit::ChromeClientImpl::popupOpened): + * src/ChromeClientImpl.h: + +2010-11-19 Pavel Feldman <pfeldman@chromium.org> + + Not reviewed: flip chromium version to mitigate two-sided patch impact. + + * DEPS: + +2010-11-18 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: provide response code and status text as a part + of raw headers data. + https://bugs.webkit.org/show_bug.cgi?id=49668 + + * WebKit.gyp: + * public/WebHTTPLoadInfo.h: Renamed from WebKit/chromium/public/WebResourceRawHeaders.h. + (WebKit::WebHTTPLoadInfo::WebHTTPLoadInfo): + (WebKit::WebHTTPLoadInfo::~WebHTTPLoadInfo): + (WebKit::WebHTTPLoadInfo::operator =): + * public/WebURLResponse.h: + * src/WebHTTPLoadInfo.cpp: Renamed from WebKit/chromium/src/WebResourceRawHeaders.cpp. + (WebKit::WebHTTPLoadInfo::initialize): + (WebKit::WebHTTPLoadInfo::reset): + (WebKit::WebHTTPLoadInfo::assign): + (WebKit::WebHTTPLoadInfo::WebHTTPLoadInfo): + (WebKit::WebHTTPLoadInfo::operator WTF::PassRefPtr<WebCore::ResourceRawHeaders>): + (WebKit::WebHTTPLoadInfo::responseCode): + (WebKit::WebHTTPLoadInfo::setResponseCode): + (WebKit::WebHTTPLoadInfo::statusText): + (WebKit::WebHTTPLoadInfo::setStatusText): + (WebKit::addHeader): + (WebKit::WebHTTPLoadInfo::addRequestHeader): + (WebKit::WebHTTPLoadInfo::addResponseHeader): + * src/WebURLResponse.cpp: + (WebKit::WebURLResponse::httpLoadInfo): + (WebKit::WebURLResponse::setHTTPLoadInfo): + +2010-11-18 Kent Tamura <tkent@chromium.org> + + Reviewed by Tony Chang. + + Add more validation message functions + https://bugs.webkit.org/show_bug.cgi?id=49716 + + Add implementations of new functions and symbols for new messages. + + * public/WebLocalizedString.h: + * src/LocalizedStrings.cpp: + (WebCore::validationMessageValueMissingForCheckboxText): + (WebCore::validationMessageValueMissingForFileText): + (WebCore::validationMessageValueMissingForMultipleFileText): + (WebCore::validationMessageValueMissingForRadioText): + (WebCore::validationMessageValueMissingForSelectText): + +2010-11-18 Tony Chang <tony@chromium.org> + + Unreviewed, fix chromium compile. We need ipc and openssl now. + + * DEPS: + +2010-11-18 James Robinson <jamesr@chromium.org> + + Reviewed by David Levin. + + [chromium] Update chromium DEPS to r66658 to pick up skia roll + https://bugs.webkit.org/show_bug.cgi?id=49754 + + * DEPS: + +2010-11-18 Jeremy Orlow <jorlow@chromium.org> + + Reviewed by Darin Fisher. + + [chromium] IndexedDB API cleanup + https://bugs.webkit.org/show_bug.cgi?id=49733 + + Make it so that you can't directly instantiate our "interface" + classes. Remove some code for 2 sided merges. + + * public/WebIDBCursor.h: + (WebKit::WebIDBCursor::WebIDBCursor): + * public/WebIDBDatabase.h: + (WebKit::WebIDBDatabase::WebIDBDatabase): + * public/WebIDBIndex.h: + (WebKit::WebIDBIndex::WebIDBIndex): + * public/WebIDBObjectStore.h: + (WebKit::WebIDBObjectStore::WebIDBObjectStore): + * public/WebIDBTransaction.h: + (WebKit::WebIDBTransaction::WebIDBTransaction): + * src/IDBTransactionBackendProxy.cpp: + (WebCore::IDBTransactionBackendProxy::IDBTransactionBackendProxy): + +2010-11-18 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Yury Semikhatsky. + + Chrome DevTools: minify front-end JavaScript. + https://bugs.webkit.org/show_bug.cgi?id=49657 + + * scripts/concatenate_js_files.py: + * scripts/jsmin.py: Added. + +2010-11-18 Chris Rogers <crogers@google.com> + + Reviewed by Dimitri Glazkov. + + Add loadPlatformAudioResource() and decodeAudioFileData() to ChromiumBridge + https://bugs.webkit.org/show_bug.cgi?id=49557 + + * WebKit.gyp: + * public/WebAudioBus.h: Added. + (WebKit::WebAudioBus::WebAudioBus): + * public/WebKitClient.h: + (WebKit::WebKitClient::decodeAudioFileData): + * src/ChromiumBridge.cpp: + (WebCore::ChromiumBridge::loadPlatformAudioResource): + (WebCore::ChromiumBridge::decodeAudioFileData): + * src/WebAudioBus.cpp: Added. + (WebKit::WebAudioBus::~WebAudioBus): + (WebKit::WebAudioBus::initialize): + (WebKit::WebAudioBus::numberOfChannels): + (WebKit::WebAudioBus::length): + (WebKit::WebAudioBus::sampleRate): + (WebKit::WebAudioBus::channelData): + (WebKit::WebAudioBus::release): + 2010-11-17 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r72228. diff --git a/WebKit/chromium/DEPS b/WebKit/chromium/DEPS index f5d56dd..ad0ad75 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': '65502' + 'chromium_rev': '67811' } deps = { @@ -87,6 +87,8 @@ deps = { Var('chromium_svn')+'/app@'+Var('chromium_rev'), # needed by appcache 'gpu': Var('chromium_svn')+'/gpu@'+Var('chromium_rev'), + 'ipc': + Var('chromium_svn')+'/ipc@'+Var('chromium_rev'), 'media': Var('chromium_svn')+'/media@'+Var('chromium_rev'), 'printing': @@ -107,20 +109,20 @@ deps = { Var('chromium_svn')+'/tools/generate_stubs@'+Var('chromium_rev'), # other third party - 'third_party': - Var('chromium_svn')+'/third_party@'+Var('chromium_rev'), 'third_party/icu': From('chromium_deps', 'src/third_party/icu'), 'third_party/ots': From('chromium_deps', 'src/third_party/ots'), + 'third_party/yasm/source/patched-yasm': + From('chromium_deps', 'src/third_party/yasm/source/patched-yasm'), + 'third_party': + Var('chromium_svn')+'/third_party@'+Var('chromium_rev'), } deps_os = { 'win': { 'third_party/cygwin': From('chromium_deps', 'src/third_party/cygwin'), - 'third_party/python_24': - From('chromium_deps', 'src/third_party/python_24'), 'third_party/ffmpeg/binaries/chromium/win/ia32': From('chromium_deps', 'src/third_party/ffmpeg/binaries/chromium/win/ia32'), 'third_party/lighttpd': @@ -129,9 +131,6 @@ deps_os = { From('chromium_deps', 'src/third_party/nss'), }, 'mac': { - # needed by ffmpeg - 'third_party/yasm/source/patched-yasm': - From('chromium_deps', 'src/third_party/yasm/source/patched-yasm'), 'third_party/nss': From('chromium_deps', 'src/third_party/nss'), }, @@ -139,8 +138,8 @@ deps_os = { # Linux, actually. 'tools/xdisplaycheck': Var('chromium_svn')+'/tools/xdisplaycheck@'+Var('chromium_rev'), - 'third_party/yasm/source/patched-yasm': - From('chromium_deps', 'src/third_party/yasm/source/patched-yasm'), + 'third_party/openssl': + From('chromium_deps', 'src/third_party/openssl'), }, } diff --git a/WebKit/chromium/WebKit.gyp b/WebKit/chromium/WebKit.gyp index a95b88f..01bb092 100644 --- a/WebKit/chromium/WebKit.gyp +++ b/WebKit/chromium/WebKit.gyp @@ -109,6 +109,7 @@ 'public/WebApplicationCacheHost.h', 'public/WebApplicationCacheHostClient.h', 'public/WebAttribute.h', + 'public/WebAudioBus.h', 'public/WebBindings.h', 'public/WebBlobData.h', 'public/WebBlobRegistry.h', @@ -172,6 +173,8 @@ 'public/WebFontCache.h', 'public/WebFormControlElement.h', 'public/WebFormElement.h', + 'public/WebGeolocationError.h', + 'public/WebGeolocationPosition.h', 'public/WebGeolocationService.h', 'public/WebGeolocationServiceBridge.h', 'public/WebGeolocationServiceMock.h', @@ -179,6 +182,7 @@ 'public/WebGraphicsContext3D.h', 'public/WebHistoryItem.h', 'public/WebHTTPBody.h', + 'public/WebHTTPLoadInfo.h', 'public/WebImage.h', 'public/WebImageDecoder.h', 'public/WebIDBCallbacks.h', @@ -235,7 +239,6 @@ 'public/WebRange.h', 'public/WebRect.h', 'public/WebRegularExpression.h', - 'public/WebResourceRawHeaders.h', 'public/WebRuntimeFeatures.h', 'public/WebScrollbar.h', 'public/WebScrollbarClient.h', @@ -289,6 +292,8 @@ 'src/ApplicationCacheHost.cpp', 'src/ApplicationCacheHostInternal.h', 'src/AssertMatchingEnums.cpp', + 'src/AssociatedURLLoader.cpp', + 'src/AssociatedURLLoader.h', 'src/AsyncFileSystemChromium.cpp', 'src/AsyncFileSystemChromium.h', 'src/AsyncFileWriterChromium.cpp', @@ -394,6 +399,7 @@ 'src/WebAnimationControllerImpl.cpp', 'src/WebAnimationControllerImpl.h', 'src/WebAttribute.cpp', + 'src/WebAudioBus.cpp', 'src/WebBindings.cpp', 'src/WebBlobData.cpp', 'src/WebCache.cpp', @@ -438,6 +444,8 @@ 'src/WebFormElement.cpp', 'src/WebFrameImpl.cpp', 'src/WebFrameImpl.h', + 'src/WebGeolocationError.cpp', + 'src/WebGeolocationPosition.cpp', 'src/WebGeolocationServiceBridgeImpl.cpp', 'src/WebGeolocationServiceBridgeImpl.h', 'src/WebGeolocationServiceMock.cpp', @@ -447,6 +455,7 @@ 'src/WebGraphicsContext3DDefaultImpl.h', 'src/WebHistoryItem.cpp', 'src/WebHTTPBody.cpp', + 'src/WebHTTPLoadInfo.cpp', 'src/WebIDBCallbacksImpl.cpp', 'src/WebIDBCallbacksImpl.h', 'src/WebIDBCursorImpl.cpp', @@ -454,7 +463,6 @@ 'src/WebIDBDatabaseError.cpp', 'src/WebIDBDatabaseImpl.cpp', 'src/WebIDBDatabaseImpl.h', - 'src/WebIDBFactory.cpp', 'src/WebIDBFactoryImpl.cpp', 'src/WebIDBFactoryImpl.h', 'src/WebIDBIndexImpl.cpp', @@ -504,7 +512,6 @@ 'src/WebPopupMenuImpl.h', 'src/WebRange.cpp', 'src/WebRegularExpression.cpp', - 'src/WebResourceRawHeaders.cpp', 'src/WebRuntimeFeatures.cpp', 'src/WebScriptController.cpp', 'src/WebScrollbarImpl.cpp', @@ -662,6 +669,11 @@ ['exclude', 'WebGeolocationService.*$'], ['include', 'WebGeolocationServiceMock.*'], ], + }, { + 'sources/': [ + ['exclude', 'WebGeolocationError.*'], + ['exclude', 'WebGeolocationPosition.*'], + ], }] ], }, @@ -867,6 +879,7 @@ 'ImageDiff', 'inspector_resources', 'TestNetscapePlugIn', + 'copy_TestNetscapePlugIn', 'webkit', '../../JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:wtf_config', '<(chromium_src_dir)/third_party/icu/icu.gyp:icuuc', @@ -974,20 +987,11 @@ '../../WebKitTools/DumpRenderTree/fonts/WebKitWeightWatcher900.ttf', '<(SHARED_INTERMEDIATE_DIR)/webkit/textAreaResizeCorner.png', ], - # Workaround for http://code.google.com/p/gyp/issues/detail?id=160 - 'copies': [{ - 'destination': '<(PRODUCT_DIR)/plugins/', - 'files': ['<(PRODUCT_DIR)/WebKitTestNetscapePlugIn.plugin/'], - }], },{ # OS!="mac" 'sources/': [ # .mm is already excluded by common.gypi ['exclude', 'Mac\\.cpp$'], ], - 'dependencies': [ - # FIXME: Switch to webkit.org's plugin. - '<(chromium_src_dir)/webkit/support/webkit_support.gyp:copy_npapi_layout_test_plugin', - ], }], ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', { 'dependencies': [ @@ -1078,6 +1082,33 @@ }], ], }, + { + 'target_name': 'copy_TestNetscapePlugIn', + 'type': 'none', + 'dependencies': [ + 'TestNetscapePlugIn', + ], + 'conditions': [ + ['OS=="win"', { + 'copies': [{ + 'destination': '<(PRODUCT_DIR)/plugins', + 'files': ['<(PRODUCT_DIR)/npTestNetscapePlugIn.dll'], + }], + }], + ['OS=="mac"', { + 'copies': [{ + 'destination': '<(PRODUCT_DIR)/plugins/', + 'files': ['<(PRODUCT_DIR)/WebKitTestNetscapePlugIn.plugin/'], + }], + }], + ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', { + 'copies': [{ + 'destination': '<(PRODUCT_DIR)/plugins', + 'files': ['<(PRODUCT_DIR)/libTestNetscapePlugIn.so'], + }], + }], + ], + }, ], # targets 'conditions': [ ['OS=="win"', { diff --git a/WebKit/chromium/public/WebAudioBus.h b/WebKit/chromium/public/WebAudioBus.h new file mode 100644 index 0000000..94ef74d --- /dev/null +++ b/WebKit/chromium/public/WebAudioBus.h @@ -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: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS 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 APPLE INC. OR ITS 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 WebAudioBus_h +#define WebAudioBus_h + +#include "WebCommon.h" + +#if WEBKIT_IMPLEMENTATION +namespace WebCore { class AudioBus; } +namespace WTF { template <typename T> class PassOwnPtr; } +#endif + +namespace WebKit { + +class WebAudioBusPrivate; + +// A container for multi-channel linear PCM audio data. +// +// WARNING: It is not safe to pass a WebAudioBus across threads!!! +// +class WebAudioBus { +public: + WebAudioBus() : m_private(0) { } + ~WebAudioBus(); + + // initialize() allocates memory of the given length for the given number of channels. + void initialize(unsigned numberOfChannels, size_t length, double sampleRate); + + WEBKIT_API unsigned numberOfChannels() const; + WEBKIT_API size_t length() const; + WEBKIT_API double sampleRate() const; + + WEBKIT_API float* channelData(unsigned channelIndex); + +#if WEBKIT_IMPLEMENTATION + WTF::PassOwnPtr<WebCore::AudioBus> release(); +#endif + +private: + // Noncopyable + WebAudioBus(const WebAudioBus& d) : m_private(0) { } + WebAudioBusPrivate* m_private; +}; + +} // namespace WebKit + +#endif // WebAudioBus_h diff --git a/WebKit/chromium/public/WebDevToolsAgent.h b/WebKit/chromium/public/WebDevToolsAgent.h index 6b4d237..d6a7bcd 100644 --- a/WebKit/chromium/public/WebDevToolsAgent.h +++ b/WebKit/chromium/public/WebDevToolsAgent.h @@ -33,6 +33,13 @@ #include "WebCommon.h" +#if WEBKIT_USING_V8 +namespace v8 { +class Value; +template <class T> class Handle; +} +#endif + namespace WebKit { class WebDevToolsAgentClient; class WebDevToolsMessageTransport; @@ -58,7 +65,9 @@ public: virtual void dispatchOnInspectorBackend(const WebString& message) = 0; virtual void inspectElementAt(const WebPoint&) = 0; - +#if WEBKIT_USING_V8 + virtual void inspectNode(v8::Handle<v8::Value>) = 0; +#endif virtual void setRuntimeProperty(const WebString& name, const WebString& value) = 0; // Exposed for LayoutTestController. diff --git a/WebKit/chromium/public/WebFrame.h b/WebKit/chromium/public/WebFrame.h index 8f2c861..30bf03b 100644 --- a/WebKit/chromium/public/WebFrame.h +++ b/WebKit/chromium/public/WebFrame.h @@ -61,6 +61,7 @@ class WebRange; class WebSecurityOrigin; class WebString; class WebURL; +class WebURLLoader; class WebURLRequest; class WebView; struct WebConsoleMessage; @@ -327,8 +328,14 @@ public: // Called to associate the WebURLRequest with this frame. The request // will be modified to inherit parameters that allow it to be loaded. // This method ends up triggering WebFrameClient::willSendRequest. + // DEPRECATED: Please use createAssociatedURLLoader instead. virtual void dispatchWillSendRequest(WebURLRequest&) = 0; + // Returns a WebURLLoader that is associated with this frame. The loader + // will, for example, be cancelled when WebFrame::stopLoading is called. + // FIXME: stopLoading does not yet cancel an associated loader!! + virtual WebURLLoader* createAssociatedURLLoader() = 0; + // Called from within WebFrameClient::didReceiveDocumentData to commit // data for the frame that will be used to construct the frame's // document. diff --git a/WebKit/chromium/public/WebFrameClient.h b/WebKit/chromium/public/WebFrameClient.h index 9063350..1c6fd04 100644 --- a/WebKit/chromium/public/WebFrameClient.h +++ b/WebKit/chromium/public/WebFrameClient.h @@ -86,7 +86,7 @@ public: // A frame specific cookie jar. May return null, in which case // WebKitClient::cookieJar() will be called to access cookies. - virtual WebCookieJar* cookieJar() { return 0; } + virtual WebCookieJar* cookieJar(WebFrame*) { return 0; } // General notifications ----------------------------------------------- diff --git a/WebKit/chromium/public/WebGeolocationError.h b/WebKit/chromium/public/WebGeolocationError.h new file mode 100644 index 0000000..e9354d3 --- /dev/null +++ b/WebKit/chromium/public/WebGeolocationError.h @@ -0,0 +1,68 @@ +/* + * 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: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * + * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS 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 APPLE OR ITS 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 WebGeolocationError_h +#define WebGeolocationError_h + +#include "WebCommon.h" +#include "WebPrivatePtr.h" + +#if WEBKIT_IMPLEMENTATION +#include <wtf/PassRefPtr.h> +namespace WebCore { class GeolocationError; } +#endif + +namespace WebKit { + +class WebString; + +class WebGeolocationError { +public: + enum Error { + ErrorPermissionDenied, + ErrorPositionUnavailable + }; + + WebGeolocationError(Error code, const WebString& message) { assign(code, message); } + WebGeolocationError(const WebGeolocationError& other) { assign(other); } + ~WebGeolocationError() { reset(); } + + WEBKIT_API void assign(Error code, const WebString& message); + WEBKIT_API void assign(const WebGeolocationError&); + WEBKIT_API void reset(); + +#if WEBKIT_IMPLEMENTATION + WebGeolocationError(WTF::PassRefPtr<WebCore::GeolocationError>); + WebGeolocationError& operator=(WTF::PassRefPtr<WebCore::GeolocationError>); + operator WTF::PassRefPtr<WebCore::GeolocationError>() const; +#endif + +private: + WebPrivatePtr<WebCore::GeolocationError> m_private; +}; + +} // namespace WebKit + +#endif // WebGeolocationError_h diff --git a/WebKit/chromium/public/WebGeolocationPosition.h b/WebKit/chromium/public/WebGeolocationPosition.h new file mode 100644 index 0000000..de73431 --- /dev/null +++ b/WebKit/chromium/public/WebGeolocationPosition.h @@ -0,0 +1,65 @@ +/* + * 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: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * + * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS 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 APPLE OR ITS 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 WebGeolocationPosition_h +#define WebGeolocationPosition_h + +#include "WebCommon.h" +#include "WebPrivatePtr.h" + +#if WEBKIT_IMPLEMENTATION +#include <wtf/PassRefPtr.h> +namespace WebCore { class GeolocationPosition; } +#endif + +namespace WebKit { + +class WebGeolocationPosition { +public: + WebGeolocationPosition() {} + WebGeolocationPosition(double timestamp, double latitude, double longitude, double accuracy, bool providesAltitude, double altitude, bool providesAltitudeAccuracy, double altitudeAccuracy, bool providesHeading, double heading, bool providesSpeed, double speed) + { + assign(timestamp, latitude, longitude, accuracy, providesAltitude, altitude, providesAltitudeAccuracy, altitudeAccuracy, providesHeading, heading, providesSpeed, speed); + } + WebGeolocationPosition(const WebGeolocationPosition& other) { assign(other); } + ~WebGeolocationPosition() { reset(); } + + WEBKIT_API void assign(double timestamp, double latitude, double longitude, double accuracy, bool providesAltitude, double altitude, bool providesAltitudeAccuracy, double altitudeAccuracy, bool providesHeading, double heading, bool providesSpeed, double speed); + WEBKIT_API void assign(const WebGeolocationPosition&); + WEBKIT_API void reset(); + +#if WEBKIT_IMPLEMENTATION + WebGeolocationPosition(WTF::PassRefPtr<WebCore::GeolocationPosition>); + WebGeolocationPosition& operator=(WTF::PassRefPtr<WebCore::GeolocationPosition>); + operator WTF::PassRefPtr<WebCore::GeolocationPosition>() const; +#endif + +private: + WebPrivatePtr<WebCore::GeolocationPosition> m_private; +}; + +} // namespace WebKit + +#endif // WebGeolocationPosition_h diff --git a/WebKit/chromium/public/WebGraphicsContext3D.h b/WebKit/chromium/public/WebGraphicsContext3D.h index 932004c..05c164a 100644 --- a/WebKit/chromium/public/WebGraphicsContext3D.h +++ b/WebKit/chromium/public/WebGraphicsContext3D.h @@ -203,6 +203,8 @@ public: virtual unsigned long getError() = 0; + virtual bool isContextLost() = 0; + virtual void getFloatv(unsigned long pname, float* value) = 0; virtual void getFramebufferAttachmentParameteriv(unsigned long target, unsigned long attachment, unsigned long pname, int* value) = 0; diff --git a/WebKit/chromium/public/WebResourceRawHeaders.h b/WebKit/chromium/public/WebHTTPLoadInfo.h index b91e68b..9ff9153 100644 --- a/WebKit/chromium/public/WebResourceRawHeaders.h +++ b/WebKit/chromium/public/WebHTTPLoadInfo.h @@ -28,27 +28,25 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef WebResourceRawHeaders_h -#define WebResourceRawHeaders_h +#ifndef WebHTTPLoadInfo_h +#define WebHTTPLoadInfo_h #include "WebCommon.h" #include "WebPrivatePtr.h" namespace WebCore { -struct ResourceRawHeaders; +struct ResourceLoadInfo; } namespace WebKit { -class WebHTTPHeaderVisitor; -class WebResourceRawHeadersMapPrivate; class WebString; -class WebResourceRawHeaders { +class WebHTTPLoadInfo { public: - WebResourceRawHeaders() { initialize(); } - ~WebResourceRawHeaders() { reset(); } - WebResourceRawHeaders(const WebResourceRawHeaders& r) { assign(r); } - WebResourceRawHeaders& operator =(const WebResourceRawHeaders& r) + WebHTTPLoadInfo() { initialize(); } + ~WebHTTPLoadInfo() { reset(); } + WebHTTPLoadInfo(const WebHTTPLoadInfo& r) { assign(r); } + WebHTTPLoadInfo& operator =(const WebHTTPLoadInfo& r) { assign(r); return *this; @@ -56,17 +54,24 @@ public: WEBKIT_API void initialize(); WEBKIT_API void reset(); - WEBKIT_API void assign(const WebResourceRawHeaders& r); + WEBKIT_API void assign(const WebHTTPLoadInfo& r); + + WEBKIT_API int httpStatusCode() const; + WEBKIT_API void setHTTPStatusCode(int); + + WEBKIT_API WebString httpStatusText() const; + WEBKIT_API void setHTTPStatusText(const WebString&); + WEBKIT_API void addRequestHeader(const WebString& name, const WebString& value); WEBKIT_API void addResponseHeader(const WebString& name, const WebString& value); #if WEBKIT_IMPLEMENTATION - WebResourceRawHeaders(WTF::PassRefPtr<WebCore::ResourceRawHeaders>); - operator WTF::PassRefPtr<WebCore::ResourceRawHeaders>() const; + WebHTTPLoadInfo(WTF::PassRefPtr<WebCore::ResourceLoadInfo>); + operator WTF::PassRefPtr<WebCore::ResourceLoadInfo>() const; #endif private: - WebPrivatePtr<WebCore::ResourceRawHeaders> m_private; + WebPrivatePtr<WebCore::ResourceLoadInfo> m_private; }; } // namespace WebKit diff --git a/WebKit/chromium/public/WebIDBCursor.h b/WebKit/chromium/public/WebIDBCursor.h index 98f7a6b..88b8b22 100644 --- a/WebKit/chromium/public/WebIDBCursor.h +++ b/WebKit/chromium/public/WebIDBCursor.h @@ -56,6 +56,9 @@ public: virtual void update(const WebSerializedScriptValue&, WebIDBCallbacks*, WebExceptionCode&) { WEBKIT_ASSERT_NOT_REACHED(); } virtual void continueFunction(const WebIDBKey&, WebIDBCallbacks*, WebExceptionCode&) { WEBKIT_ASSERT_NOT_REACHED(); } virtual void remove(WebIDBCallbacks*, WebExceptionCode&) { WEBKIT_ASSERT_NOT_REACHED(); } + +protected: + WebIDBCursor() { } }; } // namespace WebKit diff --git a/WebKit/chromium/public/WebIDBDatabase.h b/WebKit/chromium/public/WebIDBDatabase.h index 19096cc..1588e23 100644 --- a/WebKit/chromium/public/WebIDBDatabase.h +++ b/WebKit/chromium/public/WebIDBDatabase.h @@ -47,9 +47,9 @@ public: WEBKIT_ASSERT_NOT_REACHED(); return WebString(); } + // FIXME: remove after roll. virtual WebString description() const { - WEBKIT_ASSERT_NOT_REACHED(); return WebString(); } virtual WebString version() const @@ -57,18 +57,16 @@ public: WEBKIT_ASSERT_NOT_REACHED(); return WebString(); } - virtual WebDOMStringList objectStores() const - { - WEBKIT_ASSERT_NOT_REACHED(); - return WebDOMStringList(); - } - + virtual WebDOMStringList objectStores() const { return objectStoreNames(); } // FIXME: Remove after roll. + virtual WebDOMStringList objectStoreNames() const { return objectStores(); } // FIXME: Assert not reached after roll. virtual WebIDBObjectStore* createObjectStore(const WebString& name, const WebString& keyPath, bool autoIncrement, const WebIDBTransaction&, WebExceptionCode&) { WEBKIT_ASSERT_NOT_REACHED(); return 0; } - virtual void removeObjectStore(const WebString& name, const WebIDBTransaction&, WebExceptionCode&) { WEBKIT_ASSERT_NOT_REACHED(); } + virtual void deleteObjectStore(const WebString& name, const WebIDBTransaction& transaction, WebExceptionCode& ec) { removeObjectStore(name, transaction, ec); } + // FIXME: remove after roll. + virtual void removeObjectStore(const WebString& name, const WebIDBTransaction& transaction, WebExceptionCode& ec) { deleteObjectStore(name, transaction, ec); } virtual void setVersion(const WebString& version, WebIDBCallbacks* callbacks, WebExceptionCode&) { WEBKIT_ASSERT_NOT_REACHED(); } // Transfers ownership of the WebIDBTransaction to the caller. virtual WebIDBTransaction* transaction(const WebDOMStringList& names, unsigned short mode, unsigned long timeout, WebExceptionCode&) @@ -77,6 +75,9 @@ public: return 0; } virtual void close() { WEBKIT_ASSERT_NOT_REACHED(); } + +protected: + WebIDBDatabase() { } }; } // namespace WebKit diff --git a/WebKit/chromium/public/WebIDBFactory.h b/WebKit/chromium/public/WebIDBFactory.h index 66ceadb..5e3337e 100755 --- a/WebKit/chromium/public/WebIDBFactory.h +++ b/WebKit/chromium/public/WebIDBFactory.h @@ -51,16 +51,18 @@ public: virtual ~WebIDBFactory() { } - // The WebKit implementation of open ignores the WebFrame* parameter. + // FIXME: Remove after roll. virtual void open(const WebString& name, const WebString& description, WebIDBCallbacks* callbacks, const WebSecurityOrigin& origin, WebFrame* webFrame, const WebString& dataDir, unsigned long long maximumSize) { - WEBKIT_ASSERT_NOT_REACHED(); + open(name, callbacks, origin, webFrame, dataDir, maximumSize); } - // The file name that would be used for persisting a given indexed database on the file system. - WEBKIT_API static WebString databaseFileName(const WebSecurityOrigin&); - // FIXME: Remove after roll. - WEBKIT_API static WebString databaseFileName(const WebString& name, const WebSecurityOrigin&); + // The WebKit implementation of open ignores the WebFrame* parameter. + virtual void open(const WebString& name, WebIDBCallbacks* callbacks, const WebSecurityOrigin& origin, WebFrame* webFrame, const WebString& dataDir, unsigned long long maximumSize) + { + // WEBKIT_ASSERT_NOT_REACHED(); + open(name, "", callbacks, origin, webFrame, dataDir, maximumSize); + } }; } // namespace WebKit diff --git a/WebKit/chromium/public/WebIDBIndex.h b/WebKit/chromium/public/WebIDBIndex.h index 0c0d79a..3c07a50 100644 --- a/WebKit/chromium/public/WebIDBIndex.h +++ b/WebKit/chromium/public/WebIDBIndex.h @@ -62,49 +62,13 @@ public: return false; } - virtual void openObjectCursor(const WebIDBKeyRange& range, unsigned short direction, WebIDBCallbacks* callbacks, const WebIDBTransaction& transaction, WebExceptionCode&) - { - WebExceptionCode ec = 0; - openObjectCursor(range, direction, callbacks, transaction, ec); - } - virtual void openObjectCursor(const WebIDBKeyRange& range, unsigned short direction, WebIDBCallbacks* callbacks, const WebIDBTransaction& transaction) - { - openObjectCursor(range, direction, callbacks, transaction); - } - virtual void openKeyCursor(const WebIDBKeyRange& range, unsigned short direction, WebIDBCallbacks* callbacks, const WebIDBTransaction& transaction, WebExceptionCode&) - { - WebExceptionCode ec = 0; - openKeyCursor(range, direction, callbacks, transaction, ec); - } - virtual void openKeyCursor(const WebIDBKeyRange& range, unsigned short direction, WebIDBCallbacks* callbacks, const WebIDBTransaction& transaction) - { - openKeyCursor(range, direction, callbacks, transaction); - } - virtual void getObject(const WebIDBKey& key, WebIDBCallbacks* callbacks, const WebIDBTransaction& transaction, WebExceptionCode&) - { - WebExceptionCode ec = 0; - getObject(key, callbacks, transaction, ec); - } - virtual void getObject(const WebIDBKey& key, WebIDBCallbacks* callbacks, const WebIDBTransaction& transaction) - { - getObject(key, callbacks, transaction); - } - virtual void getKey(const WebIDBKey& key, WebIDBCallbacks* callbacks, const WebIDBTransaction& transaction, WebExceptionCode&) - { - WebExceptionCode ec = 0; - getKey(key, callbacks, transaction, ec); - } - virtual void getKey(const WebIDBKey& key, WebIDBCallbacks* callbacks, const WebIDBTransaction& transaction) - { - getKey(key, callbacks, transaction); - } - - /* virtual void openObjectCursor(const WebIDBKeyRange&, unsigned short direction, WebIDBCallbacks*, const WebIDBTransaction&, WebExceptionCode&) { WEBKIT_ASSERT_NOT_REACHED(); } virtual void openKeyCursor(const WebIDBKeyRange&, unsigned short direction, WebIDBCallbacks*, const WebIDBTransaction&, WebExceptionCode&) { WEBKIT_ASSERT_NOT_REACHED(); } virtual void getObject(const WebIDBKey&, WebIDBCallbacks*, const WebIDBTransaction&, WebExceptionCode&) { WEBKIT_ASSERT_NOT_REACHED(); } virtual void getKey(const WebIDBKey&, WebIDBCallbacks*, const WebIDBTransaction&, WebExceptionCode&) { WEBKIT_ASSERT_NOT_REACHED(); } - */ + +protected: + WebIDBIndex() {} }; } // namespace WebKit diff --git a/WebKit/chromium/public/WebIDBKeyRange.h b/WebKit/chromium/public/WebIDBKeyRange.h index 82953ce..6a9c6da 100644 --- a/WebKit/chromium/public/WebIDBKeyRange.h +++ b/WebKit/chromium/public/WebIDBKeyRange.h @@ -41,14 +41,22 @@ public: ~WebIDBKeyRange() { reset(); } WebIDBKeyRange(const WebIDBKeyRange& keyRange) { assign(keyRange); } - WebIDBKeyRange(const WebIDBKey& left, const WebIDBKey& right, unsigned short flags) { assign(left, right, flags); } + WebIDBKeyRange(const WebIDBKey& lower, const WebIDBKey& upper, bool lowerOpen, bool upperOpen) { assign(lower, upper, lowerOpen, upperOpen); } + // FIXME: Remove next 3 methods after next roll. + WebIDBKeyRange(const WebIDBKey& lower, const WebIDBKey& upper, unsigned short flags) { assign(lower, upper, flags); } + WEBKIT_API void assign(const WebIDBKey& lower, const WebIDBKey& upper, unsigned short flags); + WEBKIT_API unsigned short flags() const; WEBKIT_API WebIDBKey left() const; WEBKIT_API WebIDBKey right() const; - WEBKIT_API unsigned short flags() const; + + WEBKIT_API WebIDBKey lower() const; + WEBKIT_API WebIDBKey upper() const; + WEBKIT_API bool lowerOpen() const; + WEBKIT_API bool upperOpen() const; WEBKIT_API void assign(const WebIDBKeyRange&); - WEBKIT_API void assign(const WebIDBKey& left, const WebIDBKey& right, unsigned short flags); + WEBKIT_API void assign(const WebIDBKey& lower, const WebIDBKey& upper, bool lowerOpen, bool upperOpen); WEBKIT_API void reset(); #if WEBKIT_IMPLEMENTATION diff --git a/WebKit/chromium/public/WebIDBObjectStore.h b/WebKit/chromium/public/WebIDBObjectStore.h index 89dae02..17562ca 100755 --- a/WebKit/chromium/public/WebIDBObjectStore.h +++ b/WebKit/chromium/public/WebIDBObjectStore.h @@ -61,7 +61,9 @@ public: virtual void get(const WebIDBKey&, WebIDBCallbacks*, const WebIDBTransaction&, WebExceptionCode&) { WEBKIT_ASSERT_NOT_REACHED(); } virtual void put(const WebSerializedScriptValue&, const WebIDBKey&, bool addOnly, WebIDBCallbacks*, const WebIDBTransaction&, WebExceptionCode&) { WEBKIT_ASSERT_NOT_REACHED(); } - virtual void remove(const WebIDBKey&, WebIDBCallbacks*, const WebIDBTransaction&, WebExceptionCode&) { WEBKIT_ASSERT_NOT_REACHED(); } + // FIXME: Remove after roll. + virtual void remove(const WebIDBKey& key, WebIDBCallbacks* callbacks, const WebIDBTransaction& transaction, WebExceptionCode& ec) { deleteFunction(key, callbacks, transaction, ec); } + virtual void deleteFunction(const WebIDBKey& key, WebIDBCallbacks* callbacks, const WebIDBTransaction& transaction, WebExceptionCode& ec) { remove(key, callbacks, transaction, ec); } virtual WebIDBIndex* createIndex(const WebString& name, const WebString& keyPath, bool unique, const WebIDBTransaction&, WebExceptionCode&) { WEBKIT_ASSERT_NOT_REACHED(); @@ -73,8 +75,11 @@ public: WEBKIT_ASSERT_NOT_REACHED(); return 0; } - virtual void removeIndex(const WebString& name, const WebIDBTransaction&, WebExceptionCode&) { WEBKIT_ASSERT_NOT_REACHED(); } + virtual void deleteIndex(const WebString& name, const WebIDBTransaction&, WebExceptionCode&) { WEBKIT_ASSERT_NOT_REACHED(); } virtual void openCursor(const WebIDBKeyRange&, unsigned short direction, WebIDBCallbacks*, const WebIDBTransaction&, WebExceptionCode&) { WEBKIT_ASSERT_NOT_REACHED(); } + +protected: + WebIDBObjectStore() {} }; } // namespace WebKit diff --git a/WebKit/chromium/public/WebIDBTransaction.h b/WebKit/chromium/public/WebIDBTransaction.h index cff7c67..74919a8 100644 --- a/WebKit/chromium/public/WebIDBTransaction.h +++ b/WebKit/chromium/public/WebIDBTransaction.h @@ -26,6 +26,7 @@ #ifndef WebIDBTransaction_h #define WebIDBTransaction_h +#include "WebExceptionCode.h" #include "WebString.h" namespace WebCore { class IDBTransactionBackendInterface; } @@ -45,7 +46,7 @@ public: WEBKIT_ASSERT_NOT_REACHED(); return 0; } - virtual WebIDBObjectStore* objectStore(const WebString& name) + virtual WebIDBObjectStore* objectStore(const WebString& name, WebExceptionCode&) { WEBKIT_ASSERT_NOT_REACHED(); return 0; @@ -60,6 +61,8 @@ public: return 0; } +protected: + WebIDBTransaction() {} }; } // namespace WebKit diff --git a/WebKit/chromium/public/WebInputElement.h b/WebKit/chromium/public/WebInputElement.h index 0c0764c..3dd7e40 100644 --- a/WebKit/chromium/public/WebInputElement.h +++ b/WebKit/chromium/public/WebInputElement.h @@ -80,6 +80,9 @@ namespace WebKit { WEBKIT_API int selectionEnd() const; WEBKIT_API bool isValidValue(const WebString&) const; + // Exposes the default value of the maxLength attribute. + WEBKIT_API static const int defaultMaxLength; + #if WEBKIT_IMPLEMENTATION WebInputElement(const WTF::PassRefPtr<WebCore::HTMLInputElement>&); WebInputElement& operator=(const WTF::PassRefPtr<WebCore::HTMLInputElement>&); diff --git a/WebKit/chromium/public/WebKitClient.h b/WebKit/chromium/public/WebKitClient.h index 7ced7ad..0c4020f 100644 --- a/WebKit/chromium/public/WebKitClient.h +++ b/WebKit/chromium/public/WebKitClient.h @@ -31,6 +31,7 @@ #ifndef WebKitClient_h #define WebKitClient_h +#include "WebAudioBus.h" #include "WebCommon.h" #include "WebData.h" #include "WebLocalizedString.h" @@ -220,10 +221,15 @@ public: // Returns a blob of data corresponding to the named resource. virtual WebData loadResource(const char* name) { return WebData(); } - // Returns a localized string resource (with an optional numeric - // parameter value). + // Decodes the in-memory audio file data and returns the linear PCM audio data in the destinationBus. + // A sample-rate conversion to sampleRate will occur if the file data is at a different sample-rate. + // Returns true on success. + virtual bool decodeAudioFileData(WebAudioBus* destinationBus, const char* audioFileData, size_t dataSize, double sampleRate) { return false; } + + // Returns a localized string resource (with substitution parameters). virtual WebString queryLocalizedString(WebLocalizedString::Name) { return WebString(); } - virtual WebString queryLocalizedString(WebLocalizedString::Name, int numericValue) { return WebString(); } + virtual WebString queryLocalizedString(WebLocalizedString::Name, const WebString& parameter) { return WebString(); } + virtual WebString queryLocalizedString(WebLocalizedString::Name, const WebString& parameter1, const WebString& parameter2) { return WebString(); } // Sandbox ------------------------------------------------------------ diff --git a/WebKit/chromium/public/WebLocalizedString.h b/WebKit/chromium/public/WebLocalizedString.h index 8ab5f8d..598e972 100644 --- a/WebKit/chromium/public/WebLocalizedString.h +++ b/WebKit/chromium/public/WebLocalizedString.h @@ -59,6 +59,11 @@ struct WebLocalizedString { KeygenMenuHighGradeKeySize, KeygenMenuMediumGradeKeySize, ValidationValueMissing, + ValidationValueMissingForCheckbox, + ValidationValueMissingForFile, + ValidationValueMissingForMultipleFile, + ValidationValueMissingForRadio, + ValidationValueMissingForSelect, ValidationTypeMismatch, ValidationTypeMismatchForEmail, ValidationTypeMismatchForMultipleEmail, diff --git a/WebKit/chromium/public/WebSettings.h b/WebKit/chromium/public/WebSettings.h index fa21551..0467c96 100644 --- a/WebKit/chromium/public/WebSettings.h +++ b/WebKit/chromium/public/WebSettings.h @@ -93,6 +93,11 @@ public: virtual void setShowDebugBorders(bool) = 0; virtual void setEditingBehavior(EditingBehavior) = 0; virtual void setAcceleratedCompositingEnabled(bool) = 0; + virtual void setAcceleratedCompositingFor3DTransformsEnabled(bool) = 0; + virtual void setAcceleratedCompositingForVideoEnabled(bool) = 0; + virtual void setAcceleratedCompositingForCanvasEnabled(bool) = 0; + virtual void setAcceleratedCompositingForPluginsEnabled(bool) = 0; + virtual void setAcceleratedCompositingForAnimationEnabled(bool) = 0; virtual void setAccelerated2dCanvasEnabled(bool) = 0; virtual void setMemoryInfoEnabled(bool) = 0; virtual void setHyperlinkAuditingEnabled(bool) = 0; diff --git a/WebKit/chromium/public/WebSpeechInputControllerMock.h b/WebKit/chromium/public/WebSpeechInputControllerMock.h index 31672ba..e440b89 100644 --- a/WebKit/chromium/public/WebSpeechInputControllerMock.h +++ b/WebKit/chromium/public/WebSpeechInputControllerMock.h @@ -44,7 +44,7 @@ public: WebSpeechInputListener* listener); virtual ~WebSpeechInputControllerMock() { } - virtual void setMockRecognitionResult(const WebString& result, const WebString& language) = 0; + virtual void addMockRecognitionResult(const WebString& result, double confidence, const WebString& language) = 0; virtual void clearResults() = 0; }; diff --git a/WebKit/chromium/public/WebURLResponse.h b/WebKit/chromium/public/WebURLResponse.h index f78c2db..c50f88e 100644 --- a/WebKit/chromium/public/WebURLResponse.h +++ b/WebKit/chromium/public/WebURLResponse.h @@ -42,7 +42,7 @@ namespace WebKit { class WebCString; class WebHTTPHeaderVisitor; -class WebResourceRawHeaders; +class WebHTTPLoadInfo; class WebString; class WebURL; class WebURLLoadTiming; @@ -84,8 +84,8 @@ public: WEBKIT_API WebURLLoadTiming loadTiming(); WEBKIT_API void setLoadTiming(const WebURLLoadTiming&); - WEBKIT_API WebResourceRawHeaders resourceRawHeaders(); - WEBKIT_API void setResourceRawHeaders(const WebResourceRawHeaders&); + WEBKIT_API WebHTTPLoadInfo httpLoadInfo(); + WEBKIT_API void setHTTPLoadInfo(const WebHTTPLoadInfo&); WEBKIT_API double responseTime() const; WEBKIT_API void setResponseTime(double); diff --git a/WebKit/chromium/scripts/concatenate_js_files.py b/WebKit/chromium/scripts/concatenate_js_files.py index 1393f48..209660a 100644 --- a/WebKit/chromium/scripts/concatenate_js_files.py +++ b/WebKit/chromium/scripts/concatenate_js_files.py @@ -34,6 +34,8 @@ from HTMLParser import HTMLParser from cStringIO import StringIO + +import jsmin import os.path import sys @@ -101,7 +103,7 @@ def main(argv): input_file.close() output_file = open(output_file_name, 'w') - output_file.write(output.getvalue()) + output_file.write(jsmin.jsmin(output.getvalue())) output_file.close() output.close() diff --git a/WebKit/chromium/scripts/jsmin.py b/WebKit/chromium/scripts/jsmin.py new file mode 100644 index 0000000..c2583a4 --- /dev/null +++ b/WebKit/chromium/scripts/jsmin.py @@ -0,0 +1,229 @@ +#!/usr/bin/python +# +# 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. +# +# This is a Python port of Douglas Crockford's jsmin.cc. See original +# copyright notice below. +# +# Copyright (c) 2002 Douglas Crockford (www.crockford.com) +# +# Permission is hereby granted, free of charge, to any person obtaining a copy of +# this software and associated documentation files (the "Software"), to deal in +# the Software without restriction, including without limitation the rights to +# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +# of the Software, and to permit persons to whom the Software is furnished to do +# so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# + +from cStringIO import StringIO +import sys + + +class UnterminatedComment(Exception): + pass + + +class UnterminatedStringLiteral(Exception): + pass + + +class UnterminatedRegularExpression(Exception): + pass + + +EOF = '' + + +def jsmin(text): + minifier = JavaScriptMinifier() + minifier.input = StringIO(text) + minifier.output = StringIO() + minifier.jsmin() + return minifier.output.getvalue() + + +class JavaScriptMinifier(object): + + def isAlphanum(self, c): + """ return true if the character is a letter, digit, underscore, + dollar sign, or non-ASCII character. + """ + return ((c >= 'a' and c <= 'z') or (c >= '0' and c <= '9') or + (c >= 'A' and c <= 'Z') or c == '_' or c == '$' or c == '\\' or + c > 126) + + def get(self): + """ return the next character from stdin. Watch out for lookahead. If + the character is a control character, translate it to a space or + linefeed. + """ + c = self.theLookahead + self.theLookahead = EOF + if c == EOF: + c = self.input.read(1) + if c >= ' ' or c == '\n' or c == EOF: + return c + if c == '\r': + return '\n' + return ' ' + + def peek(self): + """ get the next character without getting it. """ + self.theLookahead = self.get() + return self.theLookahead + + def next(self): + """ get the next character, excluding comments. peek() is used to see + if a '/' is followed by a '/' or '*'. + """ + c = self.get() + if c == '/': + peek = self.peek() + if peek == '/': + while True: + c = self.get() + if c <= '\n': + return c + elif peek == '*': + self.get() + while True: + get = self.get() + if get == '*': + if self.peek() == '/': + self.get() + return ' ' + elif get == EOF: + raise UnterminatedComment() + else: + return c + return c + + def putc(self, c): + self.output.write(c) + + def action(self, d): + """ do something! What you do is determined by the argument: + 1 Output A. Copy B to A. Get the next B. + 2 Copy B to A. Get the next B. (Delete A). + 3 Get the next B. (Delete B). + action treats a string as a single character. Wow! + action recognizes a regular expression if it is preceded by ( or , or =. + """ + if d <= 1: + self.putc(self.theA) + if d <= 2: + self.theA = self.theB + if self.theA == '\'' or self.theA == '"': + while True: + self.putc(self.theA) + self.theA = self.get() + if self.theA == self.theB: + break + if self.theA == '\\': + self.putc(self.theA) + self.theA = self.get() + if self.theA == EOF: + raise UnterminatedString() + if d <= 3: + self.theB = self.next() + if self.theB == '/' and self.theA in ['(', ',', '=', ':', '[', '!', '&', '|', '?', '{', '}', ';', '\n']: + self.putc(self.theA) + self.putc(self.theB) + while True: + self.theA = self.get() + if self.theA == '/': + break + if self.theA == '\\': + self.putc(self.theA) + self.theA = self.get() + if self.theA == EOF: + raise UnterminatedRegularExpression() + self.putc(self.theA) + self.theB = self.next() + + def jsmin(self): + """ Copy the input to the output, deleting the characters which are + insignificant to JavaScript. Comments will be removed. Tabs will be + replaced with spaces. Carriage returns will be replaced with linefeeds. + Most spaces and linefeeds will be removed. + """ + self.theA = '\n' + self.theLookahead = EOF + self.action(3) + while self.theA != EOF: + if self.theA == ' ': + if self.isAlphanum(self.theB): + self.action(1) + else: + self.action(2) + elif self.theA == '\n': + if self.theB in ['{', '[', '(', '+', '-']: + self.action(1) + elif self.theB == ' ': + self.action(3) + else: + if self.isAlphanum(self.theB): + self.action(1) + else: + self.action(2) + else: + if self.theB == ' ': + if self.isAlphanum(self.theA): + self.action(1) + else: + self.action(3) + elif self.theB == '\n': + if self.theA in ['}', ']', ')', '+', '-', '"', '\'']: + self.action(1) + else: + if self.isAlphanum(self.theA): + self.action(1) + else: + self.action(3) + else: + self.action(1) + + +if __name__ == '__main__': + minifier = JavaScriptMinifier() + minifier.input = sys.stdin + minifier.output = sys.stdout + minifier.jsmin() + sys.stdin.close() diff --git a/WebKit/chromium/src/AssertMatchingEnums.cpp b/WebKit/chromium/src/AssertMatchingEnums.cpp index 3fffd60..ceeed8d 100644 --- a/WebKit/chromium/src/AssertMatchingEnums.cpp +++ b/WebKit/chromium/src/AssertMatchingEnums.cpp @@ -41,6 +41,8 @@ #include "FileMetadata.h" #include "FontDescription.h" #include "FontSmoothingMode.h" +#include "GeolocationError.h" +#include "GeolocationPosition.h" #include "HTMLInputElement.h" #include "IDBKey.h" #include "MediaPlayer.h" @@ -62,6 +64,8 @@ #include "WebFileInfo.h" #include "WebFileSystem.h" #include "WebFontDescription.h" +#include "WebGeolocationError.h" +#include "WebGeolocationPosition.h" #include "WebIDBKey.h" #include "WebInputElement.h" #include "WebMediaPlayer.h" @@ -383,3 +387,8 @@ COMPILE_ASSERT_MATCHING_ENUM(WebFileErrorInvalidModification, FileError::INVALID COMPILE_ASSERT_MATCHING_ENUM(WebFileErrorQuotaExceeded, FileError::QUOTA_EXCEEDED_ERR); COMPILE_ASSERT_MATCHING_ENUM(WebFileErrorTypeMismatch, FileError::TYPE_MISMATCH_ERR); COMPILE_ASSERT_MATCHING_ENUM(WebFileErrorPathExists, FileError::PATH_EXISTS_ERR); + +#if ENABLE(CLIENT_BASED_GEOLOCATION) +COMPILE_ASSERT_MATCHING_ENUM(WebGeolocationError::ErrorPermissionDenied, GeolocationError::PermissionDenied); +COMPILE_ASSERT_MATCHING_ENUM(WebGeolocationError::ErrorPositionUnavailable, GeolocationError::PositionUnavailable); +#endif diff --git a/WebKit/chromium/src/AssociatedURLLoader.cpp b/WebKit/chromium/src/AssociatedURLLoader.cpp new file mode 100644 index 0000000..f494a0e --- /dev/null +++ b/WebKit/chromium/src/AssociatedURLLoader.cpp @@ -0,0 +1,87 @@ +/* + * 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 "AssociatedURLLoader.h" + +#include "WebApplicationCacheHost.h" +#include "WebDataSource.h" +#include "WebFrameImpl.h" +#include "WebKit.h" +#include "WebKitClient.h" +#include "WebURLRequest.h" + +namespace WebKit { + +AssociatedURLLoader::AssociatedURLLoader(PassRefPtr<WebFrameImpl> frameImpl) + : m_frameImpl(frameImpl), + m_realLoader(webKitClient()->createURLLoader()) +{ +} + +AssociatedURLLoader::~AssociatedURLLoader() +{ +} + +void AssociatedURLLoader::loadSynchronously(const WebURLRequest& request, WebURLResponse& response, WebURLError& error, WebData& data) +{ + WebURLRequest requestCopy(request); + prepareRequest(requestCopy); + + m_realLoader->loadSynchronously(requestCopy, response, error, data); +} + +void AssociatedURLLoader::loadAsynchronously(const WebURLRequest& request, WebURLLoaderClient* client) +{ + WebURLRequest requestCopy(request); + prepareRequest(requestCopy); + + m_realLoader->loadAsynchronously(requestCopy, client); +} + +void AssociatedURLLoader::cancel() +{ + m_realLoader->cancel(); +} + +void AssociatedURLLoader::setDefersLoading(bool defersLoading) +{ + m_realLoader->setDefersLoading(defersLoading); +} + +void AssociatedURLLoader::prepareRequest(WebURLRequest& request) +{ + WebApplicationCacheHost* applicationCacheHost = m_frameImpl->dataSource()->applicationCacheHost(); + if (applicationCacheHost) + applicationCacheHost->willStartSubResourceRequest(request); + m_frameImpl->dispatchWillSendRequest(request); +} + +} // namespace WebKit diff --git a/WebKit/chromium/src/WebIDBFactory.cpp b/WebKit/chromium/src/AssociatedURLLoader.h index 40eff97..4c9f54e 100755..100644 --- a/WebKit/chromium/src/WebIDBFactory.cpp +++ b/WebKit/chromium/src/AssociatedURLLoader.h @@ -28,26 +28,37 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "config.h" -#include "WebIDBFactory.h" +#ifndef AssociatedURLLoader_h +#define AssociatedURLLoader_h -#include "IDBFactoryBackendImpl.h" -#include "WebSecurityOrigin.h" -#include <wtf/UnusedParam.h> - -using namespace WebCore; +#include "WebURLLoader.h" +#include <wtf/OwnPtr.h> +#include <wtf/RefPtr.h> namespace WebKit { -WebString WebIDBFactory::databaseFileName(const WebSecurityOrigin& origin) -{ - return IDBFactoryBackendImpl::databaseFileName(origin.get()); -} +class WebFrameImpl; + +// This class is used to implement WebFrame::createAssociatedURLLoader. +// FIXME: Implement in terms of WebCore::SubresourceLoader. +class AssociatedURLLoader : public WebURLLoader { +public: + AssociatedURLLoader(PassRefPtr<WebFrameImpl>); + ~AssociatedURLLoader(); + + // WebURLLoader methods: + virtual void loadSynchronously(const WebURLRequest&, WebURLResponse&, WebURLError&, WebData&); + virtual void loadAsynchronously(const WebURLRequest&, WebURLLoaderClient*); + virtual void cancel(); + virtual void setDefersLoading(bool); + +private: + void prepareRequest(WebURLRequest&); + + RefPtr<WebFrameImpl> m_frameImpl; + OwnPtr<WebURLLoader> m_realLoader; +}; -WebString WebIDBFactory::databaseFileName(const WebString& name, const WebSecurityOrigin& origin) -{ - UNUSED_PARAM(name); - return databaseFileName(origin); -} +} // namespace WebKit -} +#endif diff --git a/WebKit/chromium/src/ChromeClientImpl.cpp b/WebKit/chromium/src/ChromeClientImpl.cpp index c43a0b0..7b67ede 100644 --- a/WebKit/chromium/src/ChromeClientImpl.cpp +++ b/WebKit/chromium/src/ChromeClientImpl.cpp @@ -61,6 +61,7 @@ #include "ScriptController.h" #include "SearchPopupMenuChromium.h" #include "SecurityOrigin.h" +#include "Settings.h" #if USE(V8) #include "V8Proxy.h" #endif @@ -807,9 +808,25 @@ void ChromeClientImpl::scheduleCompositingLayerSync() m_webView->setRootLayerNeedsDisplay(); } -bool ChromeClientImpl::allowsAcceleratedCompositing() const +ChromeClient::CompositingTriggerFlags ChromeClientImpl::allowedCompositingTriggers() const { - return m_webView->allowsAcceleratedCompositing(); + if (!m_webView->allowsAcceleratedCompositing()) + return 0; + + CompositingTriggerFlags flags = 0; + Settings* settings = m_webView->page()->settings(); + if (settings->acceleratedCompositingFor3DTransformsEnabled()) + flags |= ThreeDTransformTrigger; + if (settings->acceleratedCompositingForVideoEnabled()) + flags |= VideoTrigger; + if (settings->acceleratedCompositingForPluginsEnabled()) + flags |= PluginTrigger; + if (settings->acceleratedCompositingForAnimationEnabled()) + flags |= AnimationTrigger; + if (settings->acceleratedCompositingForCanvasEnabled()) + flags |= CanvasTrigger; + + return flags; } #endif diff --git a/WebKit/chromium/src/ChromeClientImpl.h b/WebKit/chromium/src/ChromeClientImpl.h index 87c1653..b024bc0 100644 --- a/WebKit/chromium/src/ChromeClientImpl.h +++ b/WebKit/chromium/src/ChromeClientImpl.h @@ -152,8 +152,7 @@ public: // to do an eager layout before the drawing. virtual void scheduleCompositingLayerSync(); - // Returns true if accelerated compositing is supported. - virtual bool allowsAcceleratedCompositing() const; + virtual CompositingTriggerFlags allowedCompositingTriggers() const; #endif virtual bool supportsFullscreenForNode(const WebCore::Node*); diff --git a/WebKit/chromium/src/ChromiumBridge.cpp b/WebKit/chromium/src/ChromiumBridge.cpp index 074c982..e7a1305 100644 --- a/WebKit/chromium/src/ChromiumBridge.cpp +++ b/WebKit/chromium/src/ChromiumBridge.cpp @@ -35,6 +35,7 @@ #include "Chrome.h" #include "ChromeClientImpl.h" +#include "WebAudioBus.h" #include "WebClipboard.h" #include "WebCookie.h" #include "WebCookieJar.h" @@ -133,7 +134,7 @@ static WebCookieJar* getCookieJar(const Document* document) WebFrameImpl* frameImpl = WebFrameImpl::fromFrame(document->frame()); if (!frameImpl || !frameImpl->client()) return 0; - WebCookieJar* cookieJar = frameImpl->client()->cookieJar(); + WebCookieJar* cookieJar = frameImpl->client()->cookieJar(frameImpl); if (!cookieJar) cookieJar = webKitClient()->cookieJar(); return cookieJar; @@ -621,6 +622,27 @@ PassRefPtr<Image> ChromiumBridge::loadPlatformImageResource(const char* name) return image; } +#if ENABLE(WEB_AUDIO) + +PassOwnPtr<AudioBus> ChromiumBridge::loadPlatformAudioResource(const char* name, double sampleRate) +{ + const WebData& resource = webKitClient()->loadResource(name); + if (resource.isEmpty()) + return 0; + + return decodeAudioFileData(resource.data(), resource.size(), sampleRate); +} + +PassOwnPtr<AudioBus> ChromiumBridge::decodeAudioFileData(const char* data, size_t size, double sampleRate) +{ + WebAudioBus webAudioBus; + if (webKitClient()->decodeAudioFileData(&webAudioBus, data, size, sampleRate)) + return webAudioBus.release(); + return 0; +} + +#endif // ENABLE(WEB_AUDIO) + // Sandbox -------------------------------------------------------------------- bool ChromiumBridge::sandboxEnabled() diff --git a/WebKit/chromium/src/EditorClientImpl.cpp b/WebKit/chromium/src/EditorClientImpl.cpp index bc1d206..6f1739f 100644 --- a/WebKit/chromium/src/EditorClientImpl.cpp +++ b/WebKit/chromium/src/EditorClientImpl.cpp @@ -929,7 +929,8 @@ bool EditorClientImpl::spellingUIIsShowing() return false; } -void EditorClientImpl::getGuessesForWord(const String&, +void EditorClientImpl::getGuessesForWord(const String& word, + const String& context, WTF::Vector<String>& guesses) { notImplemented(); diff --git a/WebKit/chromium/src/EditorClientImpl.h b/WebKit/chromium/src/EditorClientImpl.h index b05a592..a194399 100644 --- a/WebKit/chromium/src/EditorClientImpl.h +++ b/WebKit/chromium/src/EditorClientImpl.h @@ -107,6 +107,7 @@ public: virtual void showSpellingUI(bool show); virtual bool spellingUIIsShowing(); virtual void getGuessesForWord(const WTF::String& word, + const WTF::String& context, WTF::Vector<WTF::String>& guesses); virtual void willSetInputMethodState(); virtual void setInputMethodState(bool enabled); diff --git a/WebKit/chromium/src/Extensions3DChromium.cpp b/WebKit/chromium/src/Extensions3DChromium.cpp index c36040b..fe04986 100644 --- a/WebKit/chromium/src/Extensions3DChromium.cpp +++ b/WebKit/chromium/src/Extensions3DChromium.cpp @@ -50,8 +50,7 @@ bool Extensions3DChromium::supports(const String& name) int Extensions3DChromium::getGraphicsResetStatusARB() { - // FIXME: implement this in GraphicsContext3DInternal / WebGraphicsContext3DInternal. - return GraphicsContext3D::NO_ERROR; + return m_internal->isContextLost() ? static_cast<int>(Extensions3D::UNKNOWN_CONTEXT_RESET_ARB) : static_cast<int>(GraphicsContext3D::NO_ERROR); } void* Extensions3DChromium::mapBufferSubDataCHROMIUM(unsigned target, int offset, int size, unsigned access) diff --git a/WebKit/chromium/src/ExternalPopupMenu.cpp b/WebKit/chromium/src/ExternalPopupMenu.cpp index 0f208fb..f7f9862 100644 --- a/WebKit/chromium/src/ExternalPopupMenu.cpp +++ b/WebKit/chromium/src/ExternalPopupMenu.cpp @@ -65,6 +65,8 @@ void ExternalPopupMenu::show(const IntRect& rect, FrameView* v, int index) WebPopupMenuInfo info; getPopupMenuInfo(&info); + if (info.items.isEmpty()) + return; m_webExternalPopupMenu = m_webViewClient->createExternalPopupMenu(info, this); m_webExternalPopupMenu->show(v->contentsToWindow(rect)); diff --git a/WebKit/chromium/src/GraphicsContext3DChromium.cpp b/WebKit/chromium/src/GraphicsContext3DChromium.cpp index 8cfe8c0..cc0c5bc 100644 --- a/WebKit/chromium/src/GraphicsContext3DChromium.cpp +++ b/WebKit/chromium/src/GraphicsContext3DChromium.cpp @@ -246,6 +246,11 @@ void GraphicsContext3DInternal::reshape(int width, int height) #endif // PLATFORM(CG) } +bool GraphicsContext3DInternal::isContextLost() +{ + return m_impl->isContextLost(); +} + // Macros to assist in delegating from GraphicsContext3DInternal to // WebGraphicsContext3D. diff --git a/WebKit/chromium/src/GraphicsContext3DInternal.h b/WebKit/chromium/src/GraphicsContext3DInternal.h index 4453d28..220cbb8 100644 --- a/WebKit/chromium/src/GraphicsContext3DInternal.h +++ b/WebKit/chromium/src/GraphicsContext3DInternal.h @@ -140,6 +140,8 @@ public: unsigned long getError(); + bool isContextLost(); + void getFloatv(unsigned long pname, float* value); void getFramebufferAttachmentParameteriv(unsigned long target, unsigned long attachment, unsigned long pname, int* value); diff --git a/WebKit/chromium/src/IDBDatabaseProxy.cpp b/WebKit/chromium/src/IDBDatabaseProxy.cpp index 4fecf1b..685f53c 100644 --- a/WebKit/chromium/src/IDBDatabaseProxy.cpp +++ b/WebKit/chromium/src/IDBDatabaseProxy.cpp @@ -71,9 +71,9 @@ String IDBDatabaseProxy::version() const return m_webIDBDatabase->version(); } -PassRefPtr<DOMStringList> IDBDatabaseProxy::objectStores() const +PassRefPtr<DOMStringList> IDBDatabaseProxy::objectStoreNames() const { - return m_webIDBDatabase->objectStores(); + return m_webIDBDatabase->objectStoreNames(); } PassRefPtr<IDBObjectStoreBackendInterface> IDBDatabaseProxy::createObjectStore(const String& name, const String& keyPath, bool autoIncrement, IDBTransactionBackendInterface* transaction, ExceptionCode& ec) @@ -87,12 +87,12 @@ PassRefPtr<IDBObjectStoreBackendInterface> IDBDatabaseProxy::createObjectStore(c return IDBObjectStoreProxy::create(objectStore); } -void IDBDatabaseProxy::removeObjectStore(const String& name, IDBTransactionBackendInterface* transaction, ExceptionCode& ec) +void IDBDatabaseProxy::deleteObjectStore(const String& name, IDBTransactionBackendInterface* transaction, ExceptionCode& ec) { // The transaction pointer is guaranteed to be a pointer to a proxy object as, in the renderer, // all implementations of IDB interfaces are proxy objects. IDBTransactionBackendProxy* transactionProxy = static_cast<IDBTransactionBackendProxy*>(transaction); - m_webIDBDatabase->removeObjectStore(name, *transactionProxy->getWebIDBTransaction(), ec); + m_webIDBDatabase->deleteObjectStore(name, *transactionProxy->getWebIDBTransaction(), ec); } void IDBDatabaseProxy::setVersion(const String& version, PassRefPtr<IDBCallbacks> callbacks, ExceptionCode& ec) @@ -104,6 +104,10 @@ PassRefPtr<IDBTransactionBackendInterface> IDBDatabaseProxy::transaction(DOMStri { WebKit::WebDOMStringList names(storeNames); WebKit::WebIDBTransaction* transaction = m_webIDBDatabase->transaction(names, mode, timeout, ec); + if (!transaction) { + ASSERT(ec); + return 0; + } return IDBTransactionBackendProxy::create(transaction); } diff --git a/WebKit/chromium/src/IDBDatabaseProxy.h b/WebKit/chromium/src/IDBDatabaseProxy.h index 5d20073..84693f2 100644 --- a/WebKit/chromium/src/IDBDatabaseProxy.h +++ b/WebKit/chromium/src/IDBDatabaseProxy.h @@ -45,10 +45,10 @@ public: virtual String name() const; virtual String description() const; virtual String version() const; - virtual PassRefPtr<DOMStringList> objectStores() const; + virtual PassRefPtr<DOMStringList> objectStoreNames() const; virtual PassRefPtr<IDBObjectStoreBackendInterface> createObjectStore(const String& name, const String& keyPath, bool autoIncrement, IDBTransactionBackendInterface*, ExceptionCode&); - virtual void removeObjectStore(const String& name, IDBTransactionBackendInterface*, ExceptionCode&); + virtual void deleteObjectStore(const String& name, IDBTransactionBackendInterface*, ExceptionCode&); virtual void setVersion(const String& version, PassRefPtr<IDBCallbacks>, ExceptionCode&); virtual PassRefPtr<IDBTransactionBackendInterface> transaction(DOMStringList* storeNames, unsigned short mode, unsigned long timeout, ExceptionCode&); virtual void close(); diff --git a/WebKit/chromium/src/IDBFactoryBackendProxy.cpp b/WebKit/chromium/src/IDBFactoryBackendProxy.cpp index 2e65246..67504a3 100755 --- a/WebKit/chromium/src/IDBFactoryBackendProxy.cpp +++ b/WebKit/chromium/src/IDBFactoryBackendProxy.cpp @@ -59,10 +59,10 @@ IDBFactoryBackendProxy::~IDBFactoryBackendProxy() { } -void IDBFactoryBackendProxy::open(const String& name, const String& description, PassRefPtr<IDBCallbacks> callbacks, PassRefPtr<SecurityOrigin> origin, Frame* frame, const String& dataDir, int64_t maximumSize) +void IDBFactoryBackendProxy::open(const String& name, PassRefPtr<IDBCallbacks> callbacks, PassRefPtr<SecurityOrigin> origin, Frame* frame, const String& dataDir, int64_t maximumSize) { WebKit::WebFrame* webFrame = WebKit::WebFrameImpl::fromFrame(frame); - m_webIDBFactory->open(name, description, new WebIDBCallbacksImpl(callbacks), origin, webFrame, dataDir, maximumSize); + m_webIDBFactory->open(name, new WebIDBCallbacksImpl(callbacks), origin, webFrame, dataDir, maximumSize); } } // namespace WebCore diff --git a/WebKit/chromium/src/IDBFactoryBackendProxy.h b/WebKit/chromium/src/IDBFactoryBackendProxy.h index 0a55b59..5950a68 100755 --- a/WebKit/chromium/src/IDBFactoryBackendProxy.h +++ b/WebKit/chromium/src/IDBFactoryBackendProxy.h @@ -45,7 +45,7 @@ public: virtual ~IDBFactoryBackendProxy(); PassRefPtr<DOMStringList> databases(void) const; - virtual void open(const String& name, const String& description, PassRefPtr<IDBCallbacks>, PassRefPtr<SecurityOrigin>, Frame*, const String& dataDir, int64_t maximumSize); + virtual void open(const String& name, PassRefPtr<IDBCallbacks>, PassRefPtr<SecurityOrigin>, Frame*, const String& dataDir, int64_t maximumSize); private: IDBFactoryBackendProxy(); diff --git a/WebKit/chromium/src/IDBObjectStoreProxy.cpp b/WebKit/chromium/src/IDBObjectStoreProxy.cpp index e537718..e03cdc8 100755 --- a/WebKit/chromium/src/IDBObjectStoreProxy.cpp +++ b/WebKit/chromium/src/IDBObjectStoreProxy.cpp @@ -88,12 +88,12 @@ void IDBObjectStoreProxy::put(PassRefPtr<SerializedScriptValue> value, PassRefPt m_webIDBObjectStore->put(value, key, addOnly, new WebIDBCallbacksImpl(callbacks), *transactionProxy->getWebIDBTransaction(), ec); } -void IDBObjectStoreProxy::remove(PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks> callbacks, IDBTransactionBackendInterface* transaction, ExceptionCode& ec) +void IDBObjectStoreProxy::deleteFunction(PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks> callbacks, IDBTransactionBackendInterface* transaction, ExceptionCode& ec) { // The transaction pointer is guaranteed to be a pointer to a proxy object as, in the renderer, // all implementations of IDB interfaces are proxy objects. IDBTransactionBackendProxy* transactionProxy = static_cast<IDBTransactionBackendProxy*>(transaction); - m_webIDBObjectStore->remove(key, new WebIDBCallbacksImpl(callbacks), *transactionProxy->getWebIDBTransaction(), ec); + m_webIDBObjectStore->deleteFunction(key, new WebIDBCallbacksImpl(callbacks), *transactionProxy->getWebIDBTransaction(), ec); } PassRefPtr<IDBIndexBackendInterface> IDBObjectStoreProxy::createIndex(const String& name, const String& keyPath, bool unique, IDBTransactionBackendInterface* transaction, ExceptionCode& ec) @@ -115,12 +115,12 @@ PassRefPtr<IDBIndexBackendInterface> IDBObjectStoreProxy::index(const String& na return IDBIndexBackendProxy::create(index); } -void IDBObjectStoreProxy::removeIndex(const String& name, IDBTransactionBackendInterface* transaction, ExceptionCode& ec) +void IDBObjectStoreProxy::deleteIndex(const String& name, IDBTransactionBackendInterface* transaction, ExceptionCode& ec) { // The transaction pointer is guaranteed to be a pointer to a proxy object as, in the renderer, // all implementations of IDB interfaces are proxy objects. IDBTransactionBackendProxy* transactionProxy = static_cast<IDBTransactionBackendProxy*>(transaction); - m_webIDBObjectStore->removeIndex(name, *transactionProxy->getWebIDBTransaction(), ec); + m_webIDBObjectStore->deleteIndex(name, *transactionProxy->getWebIDBTransaction(), ec); } void IDBObjectStoreProxy::openCursor(PassRefPtr<IDBKeyRange> range, unsigned short direction, PassRefPtr<IDBCallbacks> callbacks, IDBTransactionBackendInterface* transaction, ExceptionCode& ec) diff --git a/WebKit/chromium/src/IDBObjectStoreProxy.h b/WebKit/chromium/src/IDBObjectStoreProxy.h index 1e19279..348c794 100755 --- a/WebKit/chromium/src/IDBObjectStoreProxy.h +++ b/WebKit/chromium/src/IDBObjectStoreProxy.h @@ -48,11 +48,11 @@ public: virtual void get(PassRefPtr<IDBKey>, PassRefPtr<IDBCallbacks>, IDBTransactionBackendInterface*, ExceptionCode&); virtual void put(PassRefPtr<SerializedScriptValue>, PassRefPtr<IDBKey>, bool addOnly, PassRefPtr<IDBCallbacks>, IDBTransactionBackendInterface*, ExceptionCode&); - virtual void remove(PassRefPtr<IDBKey>, PassRefPtr<IDBCallbacks>, IDBTransactionBackendInterface*, ExceptionCode&); + virtual void deleteFunction(PassRefPtr<IDBKey>, PassRefPtr<IDBCallbacks>, IDBTransactionBackendInterface*, ExceptionCode&); PassRefPtr<IDBIndexBackendInterface> createIndex(const String& name, const String& keyPath, bool unique, IDBTransactionBackendInterface*, ExceptionCode&); PassRefPtr<IDBIndexBackendInterface> index(const String& name, ExceptionCode&); - void removeIndex(const String& name, IDBTransactionBackendInterface*, ExceptionCode&); + void deleteIndex(const String& name, IDBTransactionBackendInterface*, ExceptionCode&); virtual void openCursor(PassRefPtr<IDBKeyRange>, unsigned short direction, PassRefPtr<IDBCallbacks>, IDBTransactionBackendInterface*, ExceptionCode&); diff --git a/WebKit/chromium/src/IDBTransactionBackendProxy.cpp b/WebKit/chromium/src/IDBTransactionBackendProxy.cpp index 7a88b13..95c90d5 100644 --- a/WebKit/chromium/src/IDBTransactionBackendProxy.cpp +++ b/WebKit/chromium/src/IDBTransactionBackendProxy.cpp @@ -45,17 +45,16 @@ PassRefPtr<IDBTransactionBackendInterface> IDBTransactionBackendProxy::create(Pa IDBTransactionBackendProxy::IDBTransactionBackendProxy(PassOwnPtr<WebKit::WebIDBTransaction> transaction) : m_webIDBTransaction(transaction) { - if (!m_webIDBTransaction) - m_webIDBTransaction = adoptPtr(new WebKit::WebIDBTransaction()); + ASSERT(m_webIDBTransaction); } IDBTransactionBackendProxy::~IDBTransactionBackendProxy() { } -PassRefPtr<IDBObjectStoreBackendInterface> IDBTransactionBackendProxy::objectStore(const String& name) +PassRefPtr<IDBObjectStoreBackendInterface> IDBTransactionBackendProxy::objectStore(const String& name, ExceptionCode& ec) { - WebKit::WebIDBObjectStore* objectStore = m_webIDBTransaction->objectStore(name); + WebKit::WebIDBObjectStore* objectStore = m_webIDBTransaction->objectStore(name, ec); if (!objectStore) return 0; return IDBObjectStoreProxy::create(objectStore); diff --git a/WebKit/chromium/src/IDBTransactionBackendProxy.h b/WebKit/chromium/src/IDBTransactionBackendProxy.h index 0bf84da..96d7293 100644 --- a/WebKit/chromium/src/IDBTransactionBackendProxy.h +++ b/WebKit/chromium/src/IDBTransactionBackendProxy.h @@ -42,7 +42,7 @@ public: static PassRefPtr<IDBTransactionBackendInterface> create(PassOwnPtr<WebKit::WebIDBTransaction>); virtual ~IDBTransactionBackendProxy(); - virtual PassRefPtr<IDBObjectStoreBackendInterface> objectStore(const String& name); + virtual PassRefPtr<IDBObjectStoreBackendInterface> objectStore(const String& name, ExceptionCode&); virtual unsigned short mode() const; virtual void abort(); virtual bool scheduleTask(PassOwnPtr<ScriptExecutionContext::Task>, PassOwnPtr<ScriptExecutionContext::Task>); diff --git a/WebKit/chromium/src/LocalizedStrings.cpp b/WebKit/chromium/src/LocalizedStrings.cpp index 947e732..ab14009 100644 --- a/WebKit/chromium/src/LocalizedStrings.cpp +++ b/WebKit/chromium/src/LocalizedStrings.cpp @@ -43,6 +43,7 @@ #include <wtf/text/WTFString.h> using WebKit::WebLocalizedString; +using WebKit::WebString; namespace WebCore { @@ -51,9 +52,14 @@ static String query(WebLocalizedString::Name name) return WebKit::webKitClient()->queryLocalizedString(name); } -static String query(WebLocalizedString::Name name, int numericValue) +static String query(WebLocalizedString::Name name, const WebString& parameter) { - return WebKit::webKitClient()->queryLocalizedString(name, numericValue); + return WebKit::webKitClient()->queryLocalizedString(name, parameter); +} + +static String query(WebLocalizedString::Name name, const WebString& parameter1, const WebString& parameter2) +{ + return WebKit::webKitClient()->queryLocalizedString(name, parameter1, parameter2); } String searchableIndexIntroduction() @@ -94,6 +100,7 @@ String searchMenuRecentSearchesText() { return query(WebLocalizedString::SearchMenuRecentSearchesText); } + String searchMenuClearRecentSearchesText() { return query(WebLocalizedString::SearchMenuClearRecentSearchesText); @@ -190,7 +197,7 @@ String crashedPluginText() String multipleFileUploadText(unsigned numberOfFiles) { - return query(WebLocalizedString::MultipleFileUploadText, numberOfFiles); + return query(WebLocalizedString::MultipleFileUploadText, String::number(numberOfFiles)); } // Used in FTPDirectoryDocument.cpp @@ -299,6 +306,31 @@ String validationMessageValueMissingText() return query(WebLocalizedString::ValidationValueMissing); } +String validationMessageValueMissingForCheckboxText() +{ + return query(WebLocalizedString::ValidationValueMissingForCheckbox); +} + +String validationMessageValueMissingForFileText() +{ + return query(WebLocalizedString::ValidationValueMissingForFile); +} + +String validationMessageValueMissingForMultipleFileText() +{ + return query(WebLocalizedString::ValidationValueMissingForMultipleFile); +} + +String validationMessageValueMissingForRadioText() +{ + return query(WebLocalizedString::ValidationValueMissingForRadio); +} + +String validationMessageValueMissingForSelectText() +{ + return query(WebLocalizedString::ValidationValueMissingForSelect); +} + String validationMessageTypeMismatchText() { return query(WebLocalizedString::ValidationTypeMismatch); @@ -324,28 +356,24 @@ String validationMessagePatternMismatchText() return query(WebLocalizedString::ValidationPatternMismatch); } -String validationMessageTooLongText(int, int) +String validationMessageTooLongText(int valueLength, int maxLength) { - // FIXME: pass the arguments. - return query(WebLocalizedString::ValidationTooLong); + return query(WebLocalizedString::ValidationTooLong, String::number(valueLength), String::number(maxLength)); } -String validationMessageRangeUnderflowText(const String&) +String validationMessageRangeUnderflowText(const String& minimum) { - // FIXME: pass the arguments. - return query(WebLocalizedString::ValidationRangeUnderflow); + return query(WebLocalizedString::ValidationRangeUnderflow, minimum); } -String validationMessageRangeOverflowText(const String&) +String validationMessageRangeOverflowText(const String& maximum) { - // FIXME: pass the arguments. - return query(WebLocalizedString::ValidationRangeOverflow); + return query(WebLocalizedString::ValidationRangeOverflow, maximum); } -String validationMessageStepMismatchText(const String&, const String&) +String validationMessageStepMismatchText(const String& base, const String& step) { - // FIXME: pass the arguments. - return query(WebLocalizedString::ValidationStepMismatch); + return query(WebLocalizedString::ValidationStepMismatch, base, step); } } // namespace WebCore diff --git a/WebKit/chromium/src/WebAudioBus.cpp b/WebKit/chromium/src/WebAudioBus.cpp new file mode 100644 index 0000000..ceccafc --- /dev/null +++ b/WebKit/chromium/src/WebAudioBus.cpp @@ -0,0 +1,130 @@ +/* + * 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: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS 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 APPLE INC. OR ITS 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 "WebAudioBus.h" + +#if ENABLE(WEB_AUDIO) +#include "AudioBus.h" +#else +namespace WebCore { +class AudioBus { +}; +} // namespace WebCore +#endif + +#include <wtf/OwnPtr.h> +#include <wtf/PassOwnPtr.h> + +using namespace WebCore; + +namespace WebKit { + +class WebAudioBusPrivate : public AudioBus { +}; + +WebAudioBus::~WebAudioBus() +{ +#if ENABLE(WEB_AUDIO) + delete m_private; + m_private = 0; +#endif +} + +void WebAudioBus::initialize(unsigned numberOfChannels, size_t length, double sampleRate) +{ +#if ENABLE(WEB_AUDIO) + AudioBus* audioBus = new AudioBus(numberOfChannels, length); + audioBus->setSampleRate(sampleRate); + + if (m_private) + delete m_private; + m_private = static_cast<WebAudioBusPrivate*>(audioBus); +#else + ASSERT_NOT_REACHED(); +#endif +} + +unsigned WebAudioBus::numberOfChannels() const +{ +#if ENABLE(WEB_AUDIO) + if (!m_private) + return 0; + return m_private->numberOfChannels(); +#else + ASSERT_NOT_REACHED(); + return 0; +#endif +} + +size_t WebAudioBus::length() const +{ +#if ENABLE(WEB_AUDIO) + if (!m_private) + return 0; + return m_private->length(); +#else + ASSERT_NOT_REACHED(); + return 0; +#endif +} + +double WebAudioBus::sampleRate() const +{ +#if ENABLE(WEB_AUDIO) + if (!m_private) + return 0; + return m_private->sampleRate(); +#else + ASSERT_NOT_REACHED(); + return 0; +#endif +} + +float* WebAudioBus::channelData(unsigned channelIndex) +{ +#if ENABLE(WEB_AUDIO) + if (!m_private) + return 0; + ASSERT(channelIndex < numberOfChannels()); + return m_private->channel(channelIndex)->data(); +#else + ASSERT_NOT_REACHED(); + return 0; +#endif +} + +PassOwnPtr<AudioBus> WebAudioBus::release() +{ +#if ENABLE(WEB_AUDIO) + OwnPtr<AudioBus> audioBus(adoptPtr(static_cast<AudioBus*>(m_private))); + m_private = 0; + return audioBus.release(); +#else + ASSERT_NOT_REACHED(); + return 0; +#endif +} + +} // namespace WebKit diff --git a/WebKit/chromium/src/WebBindings.cpp b/WebKit/chromium/src/WebBindings.cpp index d0a20d3..0882e38 100644 --- a/WebKit/chromium/src/WebBindings.cpp +++ b/WebKit/chromium/src/WebBindings.cpp @@ -328,7 +328,7 @@ static NPObject* makeStringArrayImpl(const WebVector<WebString>& data) v8::HandleScope handleScope; v8::Handle<v8::Array> result = v8::Array::New(data.size()); for (size_t i = 0; i < data.size(); ++i) - result->Set(i, data[i].data() ? v8::String::New(reinterpret_cast<const uint16_t*>((data[i].data()))) : v8::String::New("")); + result->Set(i, data[i].data() ? v8::String::New(reinterpret_cast<const uint16_t*>((data[i].data())), data[i].length()) : v8::String::New("")); WebCore::DOMWindow* window = WebCore::V8Proxy::retrieveWindow(WebCore::V8Proxy::currentContext()); return npCreateV8ScriptObject(0, result, window); diff --git a/WebKit/chromium/src/WebDevToolsAgentImpl.cpp b/WebKit/chromium/src/WebDevToolsAgentImpl.cpp index 880adb4..9f4ce87 100644 --- a/WebKit/chromium/src/WebDevToolsAgentImpl.cpp +++ b/WebKit/chromium/src/WebDevToolsAgentImpl.cpp @@ -33,6 +33,7 @@ #include "DebuggerAgentImpl.h" #include "DebuggerAgentManager.h" +#include "ExceptionCode.h" #include "InjectedScriptHost.h" #include "InspectorBackendDispatcher.h" #include "InspectorController.h" @@ -44,6 +45,7 @@ #include "ResourceResponse.h" #include "ScriptDebugServer.h" #include "V8Binding.h" +#include "V8Node.h" #include "V8Proxy.h" #include "V8Utilities.h" #include "WebDataSource.h" @@ -74,6 +76,7 @@ using WebCore::ResourceRequest; using WebCore::ResourceResponse; using WTF::String; using WebCore::V8DOMWrapper; +using WebCore::V8Node; using WebCore::V8Proxy; namespace WebKit { @@ -243,6 +246,14 @@ void WebDevToolsAgentImpl::inspectElementAt(const WebPoint& point) m_webViewImpl->inspectElementAt(point); } +void WebDevToolsAgentImpl::inspectNode(v8::Handle<v8::Value> node) +{ + if (!V8Node::HasInstance(node)) + V8Proxy::setDOMException(WebCore::TYPE_MISMATCH_ERR); + else + inspectorController()->inspect(V8Node::toNative(v8::Handle<v8::Object>::Cast(node))); +} + void WebDevToolsAgentImpl::setRuntimeProperty(const WebString& name, const WebString& value) { if (name == kApuAgentFeatureName) diff --git a/WebKit/chromium/src/WebDevToolsAgentImpl.h b/WebKit/chromium/src/WebDevToolsAgentImpl.h index feb4bdd..487cf0c 100644 --- a/WebKit/chromium/src/WebDevToolsAgentImpl.h +++ b/WebKit/chromium/src/WebDevToolsAgentImpl.h @@ -75,6 +75,7 @@ public: virtual void didNavigate(); virtual void dispatchOnInspectorBackend(const WebString& message); virtual void inspectElementAt(const WebPoint& point); + virtual void inspectNode(v8::Handle<v8::Value> node); virtual void evaluateInWebInspector(long callId, const WebString& script); virtual void setRuntimeProperty(const WebString& name, const WebString& value); virtual void setTimelineProfilingEnabled(bool enable); diff --git a/WebKit/chromium/src/WebFrameImpl.cpp b/WebKit/chromium/src/WebFrameImpl.cpp index adaab61..4422e1b 100644 --- a/WebKit/chromium/src/WebFrameImpl.cpp +++ b/WebKit/chromium/src/WebFrameImpl.cpp @@ -71,6 +71,7 @@ #include "config.h" #include "WebFrameImpl.h" +#include "AssociatedURLLoader.h" #include "Chrome.h" #include "ChromiumBridge.h" #include "ClipboardUtilitiesChromium.h" @@ -1037,6 +1038,11 @@ void WebFrameImpl::dispatchWillSendRequest(WebURLRequest& request) 0, 0, request.toMutableResourceRequest(), response); } +WebURLLoader* WebFrameImpl::createAssociatedURLLoader() +{ + return new AssociatedURLLoader(this); +} + void WebFrameImpl::commitDocumentData(const char* data, size_t length) { m_frame->loader()->documentLoader()->commitData(data, length); diff --git a/WebKit/chromium/src/WebFrameImpl.h b/WebKit/chromium/src/WebFrameImpl.h index 35158a1..52d9db4 100644 --- a/WebKit/chromium/src/WebFrameImpl.h +++ b/WebKit/chromium/src/WebFrameImpl.h @@ -128,6 +128,7 @@ public: virtual bool isViewSourceModeEnabled() const; virtual void setReferrerForRequest(WebURLRequest&, const WebURL& referrer); virtual void dispatchWillSendRequest(WebURLRequest&); + virtual WebURLLoader* createAssociatedURLLoader(); virtual void commitDocumentData(const char* data, size_t length); virtual unsigned unloadListenerCount() const; virtual bool isProcessingUserGesture() const; diff --git a/WebKit/chromium/src/WebGeolocationError.cpp b/WebKit/chromium/src/WebGeolocationError.cpp new file mode 100644 index 0000000..9acb676 --- /dev/null +++ b/WebKit/chromium/src/WebGeolocationError.cpp @@ -0,0 +1,67 @@ +/* + * 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: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * + * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS 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 APPLE OR ITS 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 "WebGeolocationError.h" + +#include "GeolocationError.h" +#include "WebString.h" + +using namespace WebCore; + +namespace WebKit { + +void WebGeolocationError::assign(Error code, const WebString& message) +{ + m_private = GeolocationError::create(static_cast<GeolocationError::ErrorCode>(code), message); +} + +void WebGeolocationError::assign(const WebGeolocationError& other) +{ + m_private = other.m_private; +} + +void WebGeolocationError::reset() +{ + m_private.reset(); +} + +WebGeolocationError::WebGeolocationError(PassRefPtr<GeolocationError> error) +{ + m_private = error; +} + +WebGeolocationError& WebGeolocationError::operator=(PassRefPtr<GeolocationError> error) +{ + m_private = error; + return *this; +} + +WebGeolocationError::operator PassRefPtr<GeolocationError>() const +{ + return m_private.get(); +} + +} diff --git a/WebKit/chromium/src/WebGeolocationPosition.cpp b/WebKit/chromium/src/WebGeolocationPosition.cpp new file mode 100644 index 0000000..75b3306 --- /dev/null +++ b/WebKit/chromium/src/WebGeolocationPosition.cpp @@ -0,0 +1,61 @@ +/* + * 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: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * + * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS 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 APPLE OR ITS 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 "WebGeolocationPosition.h" + +#include "GeolocationPosition.h" + +using namespace WebCore; + +namespace WebKit { + +void WebGeolocationPosition::assign(double timestamp, double latitude, double longitude, double accuracy, bool providesAltitude, double altitude, bool providesAltitudeAccuracy, double altitudeAccuracy, bool providesHeading, double heading, bool providesSpeed, double speed) +{ + m_private = GeolocationPosition::create(timestamp, latitude, longitude, accuracy, providesAltitude, altitude, providesAltitudeAccuracy, altitudeAccuracy, providesHeading, heading, providesSpeed, speed); +} + +void WebGeolocationPosition::assign(const WebGeolocationPosition& other) +{ + m_private = other.m_private; +} + +void WebGeolocationPosition::reset() +{ + m_private.reset(); +} + +WebGeolocationPosition& WebGeolocationPosition::operator=(PassRefPtr<GeolocationPosition> position) +{ + m_private = position; + return *this; +} + +WebGeolocationPosition::operator PassRefPtr<GeolocationPosition>() const +{ + return m_private.get(); +} + +} // namespace WebKit diff --git a/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.cpp b/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.cpp index bd070c6..9a74601 100644 --- a/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.cpp +++ b/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.cpp @@ -439,20 +439,29 @@ void WebGraphicsContext3DDefaultImpl::reshape(int width, int height) } // Initialize renderbuffers to 0. - GLboolean colorMask[] = {GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE}, depthMask = GL_TRUE, stencilMask = GL_TRUE; + GLfloat clearColor[] = {0, 0, 0, 0}, clearDepth = 0; + GLint clearStencil = 0; + GLboolean colorMask[] = {GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE}, depthMask = GL_TRUE; + GLuint stencilMask = 0xffffffff; GLboolean isScissorEnabled = GL_FALSE; GLboolean isDitherEnabled = GL_FALSE; GLbitfield clearMask = GL_COLOR_BUFFER_BIT; + glGetFloatv(GL_COLOR_CLEAR_VALUE, clearColor); + glClearColor(0, 0, 0, 0); glGetBooleanv(GL_COLOR_WRITEMASK, colorMask); glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); if (m_attributes.depth) { + glGetFloatv(GL_DEPTH_CLEAR_VALUE, &clearDepth); + glClearDepth(1); glGetBooleanv(GL_DEPTH_WRITEMASK, &depthMask); glDepthMask(GL_TRUE); clearMask |= GL_DEPTH_BUFFER_BIT; } if (m_attributes.stencil) { - glGetBooleanv(GL_STENCIL_WRITEMASK, &stencilMask); - glStencilMask(GL_TRUE); + glGetIntegerv(GL_STENCIL_CLEAR_VALUE, &clearStencil); + glClearStencil(0); + glGetIntegerv(GL_STENCIL_WRITEMASK, reinterpret_cast<GLint*>(&stencilMask)); + glStencilMaskSeparate(GL_FRONT, 0xffffffff); clearMask |= GL_STENCIL_BUFFER_BIT; } isScissorEnabled = glIsEnabled(GL_SCISSOR_TEST); @@ -462,11 +471,16 @@ void WebGraphicsContext3DDefaultImpl::reshape(int width, int height) glClear(clearMask); + glClearColor(clearColor[0], clearColor[1], clearColor[2], clearColor[3]); glColorMask(colorMask[0], colorMask[1], colorMask[2], colorMask[3]); - if (m_attributes.depth) + if (m_attributes.depth) { + glClearDepth(clearDepth); glDepthMask(depthMask); - if (m_attributes.stencil) - glStencilMask(stencilMask); + } + if (m_attributes.stencil) { + glClearStencil(clearStencil); + glStencilMaskSeparate(GL_FRONT, stencilMask); + } if (isScissorEnabled) glEnable(GL_SCISSOR_TEST); else @@ -973,6 +987,11 @@ unsigned long WebGraphicsContext3DDefaultImpl::getError() return glGetError(); } +bool WebGraphicsContext3DDefaultImpl::isContextLost() +{ + return false; +} + DELEGATE_TO_GL_2(getFloatv, GetFloatv, unsigned long, float*) void WebGraphicsContext3DDefaultImpl::getFramebufferAttachmentParameteriv(unsigned long target, unsigned long attachment, diff --git a/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.h b/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.h index e865710..32e3671 100644 --- a/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.h +++ b/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.h @@ -145,6 +145,8 @@ public: virtual unsigned long getError(); + virtual bool isContextLost(); + virtual void getFloatv(unsigned long pname, float* value); virtual void getFramebufferAttachmentParameteriv(unsigned long target, unsigned long attachment, unsigned long pname, int* value); diff --git a/WebKit/chromium/src/WebResourceRawHeaders.cpp b/WebKit/chromium/src/WebHTTPLoadInfo.cpp index 259365e..876a489 100644 --- a/WebKit/chromium/src/WebResourceRawHeaders.cpp +++ b/WebKit/chromium/src/WebHTTPLoadInfo.cpp @@ -29,9 +29,9 @@ */ #include "config.h" -#include "WebResourceRawHeaders.h" +#include "WebHTTPLoadInfo.h" -#include "ResourceRawHeaders.h" +#include "ResourceLoadInfo.h" #include "ResourceResponse.h" #include "WebHTTPHeaderVisitor.h" #include "WebString.h" @@ -40,31 +40,55 @@ using namespace WebCore; namespace WebKit { -void WebResourceRawHeaders::initialize() +void WebHTTPLoadInfo::initialize() { - m_private = adoptRef(new ResourceRawHeaders()); + m_private = adoptRef(new ResourceLoadInfo()); } -void WebResourceRawHeaders::reset() +void WebHTTPLoadInfo::reset() { m_private.reset(); } -void WebResourceRawHeaders::assign(const WebResourceRawHeaders& r) +void WebHTTPLoadInfo::assign(const WebHTTPLoadInfo& r) { m_private = r.m_private; } -WebResourceRawHeaders::WebResourceRawHeaders(WTF::PassRefPtr<WebCore::ResourceRawHeaders> value) +WebHTTPLoadInfo::WebHTTPLoadInfo(WTF::PassRefPtr<WebCore::ResourceLoadInfo> value) { m_private = value; } -WebResourceRawHeaders::operator WTF::PassRefPtr<WebCore::ResourceRawHeaders>() const +WebHTTPLoadInfo::operator WTF::PassRefPtr<WebCore::ResourceLoadInfo>() const { return m_private.get(); } +int WebHTTPLoadInfo::httpStatusCode() const +{ + ASSERT(!m_private.isNull()); + return m_private->httpStatusCode; +} + +void WebHTTPLoadInfo::setHTTPStatusCode(int statusCode) +{ + ASSERT(!m_private.isNull()); + m_private->httpStatusCode = statusCode; +} + +WebString WebHTTPLoadInfo::httpStatusText() const +{ + ASSERT(!m_private.isNull()); + return m_private->httpStatusText; +} + +void WebHTTPLoadInfo::setHTTPStatusText(const WebString& statusText) +{ + ASSERT(!m_private.isNull()); + m_private->httpStatusText = statusText; +} + static void addHeader(HTTPHeaderMap* map, const WebString& name, const WebString& value) { pair<HTTPHeaderMap::iterator, bool> result = map->add(name, value); @@ -72,13 +96,13 @@ static void addHeader(HTTPHeaderMap* map, const WebString& name, const WebString result.first->second += String("\n") + value; } -void WebResourceRawHeaders::addRequestHeader(const WebString& name, const WebString& value) +void WebHTTPLoadInfo::addRequestHeader(const WebString& name, const WebString& value) { ASSERT(!m_private.isNull()); addHeader(&m_private->requestHeaders, name, value); } -void WebResourceRawHeaders::addResponseHeader(const WebString& name, const WebString& value) +void WebHTTPLoadInfo::addResponseHeader(const WebString& name, const WebString& value) { ASSERT(!m_private.isNull()); addHeader(&m_private->responseHeaders, name, value); diff --git a/WebKit/chromium/src/WebIDBDatabaseImpl.cpp b/WebKit/chromium/src/WebIDBDatabaseImpl.cpp index 2d95e21..fa7a200 100644 --- a/WebKit/chromium/src/WebIDBDatabaseImpl.cpp +++ b/WebKit/chromium/src/WebIDBDatabaseImpl.cpp @@ -54,32 +54,29 @@ WebString WebIDBDatabaseImpl::name() const return m_databaseBackend->name(); } -WebString WebIDBDatabaseImpl::description() const -{ - return m_databaseBackend->description(); -} - WebString WebIDBDatabaseImpl::version() const { return m_databaseBackend->version(); } -WebDOMStringList WebIDBDatabaseImpl::objectStores() const +WebDOMStringList WebIDBDatabaseImpl::objectStoreNames() const { - return m_databaseBackend->objectStores(); + return m_databaseBackend->objectStoreNames(); } WebIDBObjectStore* WebIDBDatabaseImpl::createObjectStore(const WebString& name, const WebString& keyPath, bool autoIncrement, const WebIDBTransaction& transaction, WebExceptionCode& ec) { RefPtr<IDBObjectStoreBackendInterface> objectStore = m_databaseBackend->createObjectStore(name, keyPath, autoIncrement, transaction.getIDBTransactionBackendInterface(), ec); - if (!objectStore) + if (!objectStore) { + ASSERT(ec); return 0; + } return new WebIDBObjectStoreImpl(objectStore); } -void WebIDBDatabaseImpl::removeObjectStore(const WebString& name, const WebIDBTransaction& transaction, WebExceptionCode& ec) +void WebIDBDatabaseImpl::deleteObjectStore(const WebString& name, const WebIDBTransaction& transaction, WebExceptionCode& ec) { - m_databaseBackend->removeObjectStore(name, transaction.getIDBTransactionBackendInterface(), ec); + m_databaseBackend->deleteObjectStore(name, transaction.getIDBTransactionBackendInterface(), ec); } void WebIDBDatabaseImpl::setVersion(const WebString& version, WebIDBCallbacks* callbacks, WebExceptionCode& ec) @@ -91,8 +88,10 @@ WebIDBTransaction* WebIDBDatabaseImpl::transaction(const WebDOMStringList& names { RefPtr<DOMStringList> nameList = PassRefPtr<DOMStringList>(names); RefPtr<IDBTransactionBackendInterface> transaction = m_databaseBackend->transaction(nameList.get(), mode, timeout, ec); - if (!transaction) + if (!transaction) { + ASSERT(ec); return 0; + } return new WebIDBTransactionImpl(transaction); } diff --git a/WebKit/chromium/src/WebIDBDatabaseImpl.h b/WebKit/chromium/src/WebIDBDatabaseImpl.h index 94f1101..64e0b2e 100644 --- a/WebKit/chromium/src/WebIDBDatabaseImpl.h +++ b/WebKit/chromium/src/WebIDBDatabaseImpl.h @@ -46,12 +46,11 @@ public: virtual ~WebIDBDatabaseImpl(); virtual WebString name() const; - virtual WebString description() const; virtual WebString version() const; - virtual WebDOMStringList objectStores() const; + virtual WebDOMStringList objectStoreNames() const; virtual WebIDBObjectStore* createObjectStore(const WebString& name, const WebString& keyPath, bool autoIncrement, const WebIDBTransaction&, WebExceptionCode&); - virtual void removeObjectStore(const WebString& name, const WebIDBTransaction&, WebExceptionCode&); + virtual void deleteObjectStore(const WebString& name, const WebIDBTransaction&, WebExceptionCode&); virtual void setVersion(const WebString& version, WebIDBCallbacks* callbacks, WebExceptionCode&); virtual WebIDBTransaction* transaction(const WebDOMStringList& names, unsigned short mode, unsigned long timeout, WebExceptionCode&); virtual void close(); diff --git a/WebKit/chromium/src/WebIDBFactoryImpl.cpp b/WebKit/chromium/src/WebIDBFactoryImpl.cpp index 5d0ab85..a509076 100755 --- a/WebKit/chromium/src/WebIDBFactoryImpl.cpp +++ b/WebKit/chromium/src/WebIDBFactoryImpl.cpp @@ -58,9 +58,9 @@ WebIDBFactoryImpl::~WebIDBFactoryImpl() { } -void WebIDBFactoryImpl::open(const WebString& name, const WebString& description, WebIDBCallbacks* callbacks, const WebSecurityOrigin& origin, WebFrame*, const WebString& dataDir, unsigned long long maximumSize) +void WebIDBFactoryImpl::open(const WebString& name, WebIDBCallbacks* callbacks, const WebSecurityOrigin& origin, WebFrame*, const WebString& dataDir, unsigned long long maximumSize) { - m_idbFactoryBackend->open(name, description, IDBCallbacksProxy::create(callbacks), origin, 0, dataDir, maximumSize); + m_idbFactoryBackend->open(name, IDBCallbacksProxy::create(callbacks), origin, 0, dataDir, maximumSize); } } // namespace WebKit diff --git a/WebKit/chromium/src/WebIDBFactoryImpl.h b/WebKit/chromium/src/WebIDBFactoryImpl.h index 4bc9426..9ed6e3f 100755 --- a/WebKit/chromium/src/WebIDBFactoryImpl.h +++ b/WebKit/chromium/src/WebIDBFactoryImpl.h @@ -42,7 +42,7 @@ public: WebIDBFactoryImpl(); virtual ~WebIDBFactoryImpl(); - virtual void open(const WebString& name, const WebString& description, WebIDBCallbacks*, const WebSecurityOrigin&, WebFrame*, const WebString& dataDir, unsigned long long maximumSize); + virtual void open(const WebString& name, WebIDBCallbacks*, const WebSecurityOrigin&, WebFrame*, const WebString& dataDir, unsigned long long maximumSize); private: WTF::RefPtr<WebCore::IDBFactoryBackendInterface> m_idbFactoryBackend; diff --git a/WebKit/chromium/src/WebIDBKeyRange.cpp b/WebKit/chromium/src/WebIDBKeyRange.cpp index 720af5f..ec5b7c2 100644 --- a/WebKit/chromium/src/WebIDBKeyRange.cpp +++ b/WebKit/chromium/src/WebIDBKeyRange.cpp @@ -39,12 +39,24 @@ void WebIDBKeyRange::assign(const WebIDBKeyRange& other) m_private = other.m_private; } -void WebIDBKeyRange::assign(const WebIDBKey& left, const WebIDBKey& right, unsigned short flags) +void WebIDBKeyRange::assign(const WebIDBKey& lower, const WebIDBKey& upper, bool lowerOpen, bool upperOpen) { - if (left.type() == WebIDBKey::InvalidType && right.type() == WebIDBKey::InvalidType) + if (lower.type() == WebIDBKey::InvalidType && upper.type() == WebIDBKey::InvalidType) m_private = 0; else - m_private = IDBKeyRange::create(left, right, flags); + m_private = IDBKeyRange::create(lower, upper, lowerOpen, upperOpen); +} + +// FIXME: Remove this after next roll. +void WebIDBKeyRange::assign(const WebIDBKey& lower, const WebIDBKey& upper, unsigned short flags) +{ + bool lowerOpen = !!(flags & 1); + bool upperOpen = !!(flags & 2); + + if (lower.type() == WebIDBKey::InvalidType && upper.type() == WebIDBKey::InvalidType) + m_private = 0; + else + m_private = IDBKeyRange::create(lower, upper, lowerOpen, upperOpen); } void WebIDBKeyRange::reset() @@ -54,23 +66,50 @@ void WebIDBKeyRange::reset() WebIDBKey WebIDBKeyRange::left() const { + return lower(); +} + +WebIDBKey WebIDBKeyRange::right() const +{ + return upper(); +} + +WebIDBKey WebIDBKeyRange::lower() const +{ if (!m_private.get()) return WebIDBKey::createInvalid(); - return m_private->left(); + return m_private->lower(); } -WebIDBKey WebIDBKeyRange::right() const +WebIDBKey WebIDBKeyRange::upper() const { if (!m_private.get()) return WebIDBKey::createInvalid(); - return m_private->right(); + return m_private->upper(); +} + +bool WebIDBKeyRange::lowerOpen() const +{ + return m_private.get() && m_private->lowerOpen(); } +bool WebIDBKeyRange::upperOpen() const +{ + return m_private.get() && m_private->upperOpen(); +} + +// FIXME: Remove this after next roll. unsigned short WebIDBKeyRange::flags() const { if (!m_private.get()) return 0; - return m_private->flags(); + + unsigned short flags = 0; + if (m_private->lowerOpen()) + flags |= 1; + if (m_private->upperOpen()) + flags |= 2; + return flags; } WebIDBKeyRange::WebIDBKeyRange(const PassRefPtr<IDBKeyRange>& value) diff --git a/WebKit/chromium/src/WebIDBObjectStoreImpl.cpp b/WebKit/chromium/src/WebIDBObjectStoreImpl.cpp index 5dd2652..0503ede 100755 --- a/WebKit/chromium/src/WebIDBObjectStoreImpl.cpp +++ b/WebKit/chromium/src/WebIDBObjectStoreImpl.cpp @@ -76,9 +76,9 @@ void WebIDBObjectStoreImpl::put(const WebSerializedScriptValue& value, const Web m_objectStore->put(value, key, addOnly, IDBCallbacksProxy::create(callbacks), transaction.getIDBTransactionBackendInterface(), ec); } -void WebIDBObjectStoreImpl::remove(const WebIDBKey& key, WebIDBCallbacks* callbacks, const WebIDBTransaction& transaction, WebExceptionCode& ec) +void WebIDBObjectStoreImpl::deleteFunction(const WebIDBKey& key, WebIDBCallbacks* callbacks, const WebIDBTransaction& transaction, WebExceptionCode& ec) { - m_objectStore->remove(key, IDBCallbacksProxy::create(callbacks), transaction.getIDBTransactionBackendInterface(), ec); + m_objectStore->deleteFunction(key, IDBCallbacksProxy::create(callbacks), transaction.getIDBTransactionBackendInterface(), ec); } WebIDBIndex* WebIDBObjectStoreImpl::createIndex(const WebString& name, const WebString& keyPath, bool unique, const WebIDBTransaction& transaction, WebExceptionCode& ec) @@ -97,9 +97,9 @@ WebIDBIndex* WebIDBObjectStoreImpl::index(const WebString& name, WebExceptionCod return new WebIDBIndexImpl(index); } -void WebIDBObjectStoreImpl::removeIndex(const WebString& name, const WebIDBTransaction& transaction, WebExceptionCode& ec) +void WebIDBObjectStoreImpl::deleteIndex(const WebString& name, const WebIDBTransaction& transaction, WebExceptionCode& ec) { - m_objectStore->removeIndex(name, transaction.getIDBTransactionBackendInterface(), ec); + m_objectStore->deleteIndex(name, transaction.getIDBTransactionBackendInterface(), ec); } void WebIDBObjectStoreImpl::openCursor(const WebIDBKeyRange& keyRange, unsigned short direction, WebIDBCallbacks* callbacks, const WebIDBTransaction& transaction, WebExceptionCode& ec) diff --git a/WebKit/chromium/src/WebIDBObjectStoreImpl.h b/WebKit/chromium/src/WebIDBObjectStoreImpl.h index 9148118..f9cd776 100755 --- a/WebKit/chromium/src/WebIDBObjectStoreImpl.h +++ b/WebKit/chromium/src/WebIDBObjectStoreImpl.h @@ -49,11 +49,11 @@ public: void get(const WebIDBKey& key, WebIDBCallbacks*, const WebIDBTransaction&, WebExceptionCode&); void put(const WebSerializedScriptValue&, const WebIDBKey& key, bool addOnly, WebIDBCallbacks*, const WebIDBTransaction&, WebExceptionCode&); - void remove(const WebIDBKey& key, WebIDBCallbacks*, const WebIDBTransaction&, WebExceptionCode&); + void deleteFunction(const WebIDBKey& key, WebIDBCallbacks*, const WebIDBTransaction&, WebExceptionCode&); WebIDBIndex* createIndex(const WebString& name, const WebString& keyPath, bool unique, const WebIDBTransaction&, WebExceptionCode&); WebIDBIndex* index(const WebString& name, WebExceptionCode&); - void removeIndex(const WebString& name, const WebIDBTransaction&, WebExceptionCode&); + void deleteIndex(const WebString& name, const WebIDBTransaction&, WebExceptionCode&); void openCursor(const WebIDBKeyRange&, unsigned short direction, WebIDBCallbacks*, const WebIDBTransaction&, WebExceptionCode&); diff --git a/WebKit/chromium/src/WebIDBTransactionImpl.cpp b/WebKit/chromium/src/WebIDBTransactionImpl.cpp index 4307cb5..1ed6f4b 100644 --- a/WebKit/chromium/src/WebIDBTransactionImpl.cpp +++ b/WebKit/chromium/src/WebIDBTransactionImpl.cpp @@ -51,9 +51,9 @@ int WebIDBTransactionImpl::mode() const return m_backend->mode(); } -WebIDBObjectStore* WebIDBTransactionImpl::objectStore(const WebString& name) +WebIDBObjectStore* WebIDBTransactionImpl::objectStore(const WebString& name, ExceptionCode& ec) { - RefPtr<IDBObjectStoreBackendInterface> objectStore = m_backend->objectStore(name); + RefPtr<IDBObjectStoreBackendInterface> objectStore = m_backend->objectStore(name, ec); if (!objectStore) return 0; return new WebIDBObjectStoreImpl(objectStore); diff --git a/WebKit/chromium/src/WebIDBTransactionImpl.h b/WebKit/chromium/src/WebIDBTransactionImpl.h index b26b3ac..d26fc37 100644 --- a/WebKit/chromium/src/WebIDBTransactionImpl.h +++ b/WebKit/chromium/src/WebIDBTransactionImpl.h @@ -42,7 +42,7 @@ public: virtual ~WebIDBTransactionImpl(); virtual int mode() const; - virtual WebIDBObjectStore* objectStore(const WebString& name); + virtual WebIDBObjectStore* objectStore(const WebString& name, WebExceptionCode&); virtual void abort(); virtual void didCompleteTaskEvents(); virtual void setCallbacks(WebIDBTransactionCallbacks*); diff --git a/WebKit/chromium/src/WebInputElement.cpp b/WebKit/chromium/src/WebInputElement.cpp index d032ef8..8d89c60 100644 --- a/WebKit/chromium/src/WebInputElement.cpp +++ b/WebKit/chromium/src/WebInputElement.cpp @@ -160,6 +160,8 @@ bool WebInputElement::isValidValue(const WebString& value) const return constUnwrap<HTMLInputElement>()->isValidValue(value); } +const int WebInputElement::defaultMaxLength = HTMLInputElement::s_maximumLength; + WebInputElement::WebInputElement(const PassRefPtr<HTMLInputElement>& elem) : WebFormControlElement(elem) { diff --git a/WebKit/chromium/src/WebSettingsImpl.cpp b/WebKit/chromium/src/WebSettingsImpl.cpp index 1bea259..e60562c 100644 --- a/WebKit/chromium/src/WebSettingsImpl.cpp +++ b/WebKit/chromium/src/WebSettingsImpl.cpp @@ -284,6 +284,31 @@ void WebSettingsImpl::setAcceleratedCompositingEnabled(bool enabled) m_settings->setAcceleratedCompositingEnabled(enabled); } +void WebSettingsImpl::setAcceleratedCompositingFor3DTransformsEnabled(bool enabled) +{ + m_settings->setAcceleratedCompositingFor3DTransformsEnabled(enabled); +} + +void WebSettingsImpl::setAcceleratedCompositingForVideoEnabled(bool enabled) +{ + m_settings->setAcceleratedCompositingForVideoEnabled(enabled); +} + +void WebSettingsImpl::setAcceleratedCompositingForPluginsEnabled(bool enabled) +{ + m_settings->setAcceleratedCompositingForPluginsEnabled(enabled); +} + +void WebSettingsImpl::setAcceleratedCompositingForCanvasEnabled(bool enabled) +{ + m_settings->setAcceleratedCompositingForCanvasEnabled(enabled); +} + +void WebSettingsImpl::setAcceleratedCompositingForAnimationEnabled(bool enabled) +{ + m_settings->setAcceleratedCompositingForAnimationEnabled(enabled); +} + void WebSettingsImpl::setAccelerated2dCanvasEnabled(bool enabled) { m_settings->setAccelerated2dCanvasEnabled(enabled); diff --git a/WebKit/chromium/src/WebSettingsImpl.h b/WebKit/chromium/src/WebSettingsImpl.h index 081188f..ffdc8d3 100644 --- a/WebKit/chromium/src/WebSettingsImpl.h +++ b/WebKit/chromium/src/WebSettingsImpl.h @@ -88,6 +88,11 @@ public: virtual void setShowDebugBorders(bool); virtual void setEditingBehavior(EditingBehavior); virtual void setAcceleratedCompositingEnabled(bool); + virtual void setAcceleratedCompositingFor3DTransformsEnabled(bool); + virtual void setAcceleratedCompositingForVideoEnabled(bool); + virtual void setAcceleratedCompositingForPluginsEnabled(bool); + virtual void setAcceleratedCompositingForCanvasEnabled(bool); + virtual void setAcceleratedCompositingForAnimationEnabled(bool); virtual void setAccelerated2dCanvasEnabled(bool); virtual void setMemoryInfoEnabled(bool); virtual void setHyperlinkAuditingEnabled(bool); diff --git a/WebKit/chromium/src/WebSpeechInputControllerMockImpl.cpp b/WebKit/chromium/src/WebSpeechInputControllerMockImpl.cpp index 8cf7848..48f8b50 100644 --- a/WebKit/chromium/src/WebSpeechInputControllerMockImpl.cpp +++ b/WebKit/chromium/src/WebSpeechInputControllerMockImpl.cpp @@ -55,9 +55,9 @@ WebSpeechInputControllerMockImpl::~WebSpeechInputControllerMockImpl() m_webcoreMock->setListener(0); } -void WebSpeechInputControllerMockImpl::setMockRecognitionResult(const WebString& result, const WebString &language) +void WebSpeechInputControllerMockImpl::addMockRecognitionResult(const WebString& result, double confidence, const WebString &language) { - m_webcoreMock->setRecognitionResult(result, language); + m_webcoreMock->addRecognitionResult(result, confidence, language); } void WebSpeechInputControllerMockImpl::clearResults() diff --git a/WebKit/chromium/src/WebSpeechInputControllerMockImpl.h b/WebKit/chromium/src/WebSpeechInputControllerMockImpl.h index 7680873..bf00ed0 100644 --- a/WebKit/chromium/src/WebSpeechInputControllerMockImpl.h +++ b/WebKit/chromium/src/WebSpeechInputControllerMockImpl.h @@ -62,7 +62,7 @@ public: void stopRecording(int requestId); // WebSpeechInputControllerMock methods. - void setMockRecognitionResult(const WebString& result, const WebString& language); + void addMockRecognitionResult(const WebString& result, double confidence, const WebString& language); void clearResults(); private: diff --git a/WebKit/chromium/src/WebURLResponse.cpp b/WebKit/chromium/src/WebURLResponse.cpp index 5343921..bf3c521 100644 --- a/WebKit/chromium/src/WebURLResponse.cpp +++ b/WebKit/chromium/src/WebURLResponse.cpp @@ -35,6 +35,7 @@ #include "ResourceLoadTiming.h" #include "WebHTTPHeaderVisitor.h" +#include "WebHTTPLoadInfo.h" #include "WebString.h" #include "WebURL.h" #include "WebURLLoadTiming.h" @@ -129,14 +130,14 @@ void WebURLResponse::setLoadTiming(const WebURLLoadTiming& timing) m_private->m_resourceResponse->setResourceLoadTiming(loadTiming.release()); } -WebResourceRawHeaders WebURLResponse::resourceRawHeaders() +WebHTTPLoadInfo WebURLResponse::httpLoadInfo() { - return WebResourceRawHeaders(m_private->m_resourceResponse->resourceRawHeaders()); + return WebHTTPLoadInfo(m_private->m_resourceResponse->resourceLoadInfo()); } -void WebURLResponse::setResourceRawHeaders(const WebResourceRawHeaders& value) +void WebURLResponse::setHTTPLoadInfo(const WebHTTPLoadInfo& value) { - m_private->m_resourceResponse->setResourceRawHeaders(value); + m_private->m_resourceResponse->setResourceLoadInfo(value); } double WebURLResponse::responseTime() const diff --git a/WebKit/chromium/src/WebURLResponsePrivate.h b/WebKit/chromium/src/WebURLResponsePrivate.h index 4181e4c..dc5ce22 100644 --- a/WebKit/chromium/src/WebURLResponsePrivate.h +++ b/WebKit/chromium/src/WebURLResponsePrivate.h @@ -31,7 +31,6 @@ #ifndef WebURLResponsePrivate_h #define WebURLResponsePrivate_h -#include "WebResourceRawHeaders.h" #include "WebString.h" namespace WebCore { class ResourceResponse; } diff --git a/WebKit/chromium/src/WebViewImpl.cpp b/WebKit/chromium/src/WebViewImpl.cpp index 6625949..e44c374 100644 --- a/WebKit/chromium/src/WebViewImpl.cpp +++ b/WebKit/chromium/src/WebViewImpl.cpp @@ -139,6 +139,27 @@ using namespace WebCore; +namespace { + +GraphicsContext3D::Attributes getCompositorContextAttributes() +{ + // Explicitly disable antialiasing for the compositor. As of the time of + // this writing, the only platform that supported antialiasing for the + // compositor was Mac OS X, because the on-screen OpenGL context creation + // code paths on Windows and Linux didn't yet have multisampling support. + // Mac OS X essentially always behaves as though it's rendering offscreen. + // Multisampling has a heavy cost especially on devices with relatively low + // fill rate like most notebooks, and the Mac implementation would need to + // be optimized to resolve directly into the IOSurface shared between the + // GPU and browser processes. For these reasons and to avoid platform + // disparities we explicitly disable antialiasing. + GraphicsContext3D::Attributes attributes; + attributes.antialias = false; + return attributes; +} + +} // anonymous namespace + namespace WebKit { // Change the text zoom level by kTextSizeMultiplierRatio each time the user @@ -937,7 +958,7 @@ void WebViewImpl::resize(const WebSize& newSize) } #if USE(ACCELERATED_COMPOSITING) - if (m_layerRenderer) { + if (m_layerRenderer && isAcceleratedCompositingActive()) { m_layerRenderer->resizeOnscreenContent(IntSize(std::max(1, m_size.width), std::max(1, m_size.height))); } @@ -2251,17 +2272,15 @@ bool WebViewImpl::allowsAcceleratedCompositing() void WebViewImpl::setRootGraphicsLayer(WebCore::PlatformLayer* layer) { - bool wasActive = m_isAcceleratedCompositingActive; setIsAcceleratedCompositingActive(layer ? true : false); if (m_layerRenderer) m_layerRenderer->setRootLayer(layer); - if (wasActive != m_isAcceleratedCompositingActive) { - IntRect damagedRect(0, 0, m_size.width, m_size.height); - if (m_isAcceleratedCompositingActive) - invalidateRootLayerRect(damagedRect); - else - m_client->didInvalidateRect(damagedRect); - } + + IntRect damagedRect(0, 0, m_size.width, m_size.height); + if (m_isAcceleratedCompositingActive) + invalidateRootLayerRect(damagedRect); + else + m_client->didInvalidateRect(damagedRect); } void WebViewImpl::setRootLayerNeedsDisplay() @@ -2318,6 +2337,9 @@ void WebViewImpl::scrollRootLayerRect(const IntSize& scrollDelta, const IntRect& } } + // Move the previous damage + m_rootLayerScrollDamage.move(scrollDelta.width(), scrollDelta.height()); + // Union with the new damage rect. m_rootLayerScrollDamage.unite(damagedContentsRect); // Scroll any existing damage that intersects with clip rect @@ -2357,7 +2379,8 @@ void WebViewImpl::setIsAcceleratedCompositingActive(bool active) if (!active) { m_isAcceleratedCompositingActive = false; - m_layerRenderer->finish(); // finish all GL rendering before we hide the window? + if (m_layerRenderer) + m_layerRenderer->finish(); // finish all GL rendering before we hide the window? m_client->didActivateAcceleratedCompositing(false); return; } @@ -2373,13 +2396,13 @@ void WebViewImpl::setIsAcceleratedCompositingActive(bool active) RefPtr<GraphicsContext3D> context = m_temporaryOnscreenGraphicsContext3D.release(); if (!context) { - m_client->didActivateAcceleratedCompositing(true); - context = GraphicsContext3D::create(GraphicsContext3D::Attributes(), m_page->chrome(), GraphicsContext3D::RenderDirectlyToHostWindow); + context = GraphicsContext3D::create(getCompositorContextAttributes(), m_page->chrome(), GraphicsContext3D::RenderDirectlyToHostWindow); if (context) context->reshape(std::max(1, m_size.width), std::max(1, m_size.height)); } m_layerRenderer = LayerRendererChromium::create(context.release()); if (m_layerRenderer) { + m_client->didActivateAcceleratedCompositing(true); m_isAcceleratedCompositingActive = true; m_compositorCreationFailed = false; } else { @@ -2509,8 +2532,7 @@ WebGraphicsContext3D* WebViewImpl::graphicsContext3D() else if (m_temporaryOnscreenGraphicsContext3D) context = m_temporaryOnscreenGraphicsContext3D.get(); else { - GraphicsContext3D::Attributes attributes; - m_temporaryOnscreenGraphicsContext3D = GraphicsContext3D::create(GraphicsContext3D::Attributes(), m_page->chrome(), GraphicsContext3D::RenderDirectlyToHostWindow); + m_temporaryOnscreenGraphicsContext3D = GraphicsContext3D::create(getCompositorContextAttributes(), m_page->chrome(), GraphicsContext3D::RenderDirectlyToHostWindow); if (m_temporaryOnscreenGraphicsContext3D) m_temporaryOnscreenGraphicsContext3D->reshape(std::max(1, m_size.width), std::max(1, m_size.height)); context = m_temporaryOnscreenGraphicsContext3D.get(); diff --git a/WebKit/chromium/src/WorkerAsyncFileWriterChromium.cpp b/WebKit/chromium/src/WorkerAsyncFileWriterChromium.cpp index 8d8e469..0d0ac8b 100644 --- a/WebKit/chromium/src/WorkerAsyncFileWriterChromium.cpp +++ b/WebKit/chromium/src/WorkerAsyncFileWriterChromium.cpp @@ -64,6 +64,11 @@ WorkerAsyncFileWriterChromium::~WorkerAsyncFileWriterChromium() m_bridge->postShutdownToMainThread(m_bridge); } +bool WorkerAsyncFileWriterChromium::waitForOperationToComplete() +{ + return m_bridge->waitForOperationToComplete(); +} + void WorkerAsyncFileWriterChromium::write(long long position, Blob* data) { m_bridge->postWriteToMainThread(position, data->url()); diff --git a/WebKit/chromium/src/WorkerAsyncFileWriterChromium.h b/WebKit/chromium/src/WorkerAsyncFileWriterChromium.h index 55d8d24..01058c3 100644 --- a/WebKit/chromium/src/WorkerAsyncFileWriterChromium.h +++ b/WebKit/chromium/src/WorkerAsyncFileWriterChromium.h @@ -67,6 +67,8 @@ public: } ~WorkerAsyncFileWriterChromium(); + bool waitForOperationToComplete(); + // FileWriter virtual void write(long long position, Blob* data); virtual void truncate(long long length); diff --git a/WebKit/chromium/src/WorkerFileWriterCallbacksBridge.cpp b/WebKit/chromium/src/WorkerFileWriterCallbacksBridge.cpp index 827c011..179aea5 100644 --- a/WebKit/chromium/src/WorkerFileWriterCallbacksBridge.cpp +++ b/WebKit/chromium/src/WorkerFileWriterCallbacksBridge.cpp @@ -59,16 +59,21 @@ void WorkerFileWriterCallbacksBridge::notifyStop() void WorkerFileWriterCallbacksBridge::postWriteToMainThread(long long position, const KURL& data) { + ASSERT(!m_operationInProgress); + m_operationInProgress = true; dispatchTaskToMainThread(createCallbackTask(&writeOnMainThread, this, position, data)); } void WorkerFileWriterCallbacksBridge::postTruncateToMainThread(long long length) { + ASSERT(!m_operationInProgress); + m_operationInProgress = true; dispatchTaskToMainThread(createCallbackTask(&truncateOnMainThread, this, length)); } void WorkerFileWriterCallbacksBridge::postAbortToMainThread() { + ASSERT(m_operationInProgress); dispatchTaskToMainThread(createCallbackTask(&abortOnMainThread, this)); } @@ -121,14 +126,19 @@ void WorkerFileWriterCallbacksBridge::didTruncate() dispatchTaskToWorkerThread(createCallbackTask(&didTruncateOnWorkerThread, this)); } +static const char fileWriterOperationsMode[] = "fileWriterOperationsMode"; + WorkerFileWriterCallbacksBridge::WorkerFileWriterCallbacksBridge(const String& path, WorkerLoaderProxy* proxy, ScriptExecutionContext* scriptExecutionContext, AsyncFileWriterClient* client) : WorkerContext::Observer(static_cast<WorkerContext*>(scriptExecutionContext)) , m_proxy(proxy) , m_workerContext(scriptExecutionContext) , m_clientOnWorkerThread(client) , m_writerDeleted(false) + , m_operationInProgress(false) { ASSERT(m_workerContext->isContextThread()); + m_mode = fileWriterOperationsMode; + m_mode.append(String::number(static_cast<WorkerContext*>(scriptExecutionContext)->thread()->runLoop().createUniqueId())); postInitToMainThread(path); } @@ -147,18 +157,25 @@ WorkerFileWriterCallbacksBridge::~WorkerFileWriterCallbacksBridge() void WorkerFileWriterCallbacksBridge::didWriteOnWorkerThread(ScriptExecutionContext*, PassRefPtr<WorkerFileWriterCallbacksBridge> bridge, long long length, bool complete) { ASSERT(bridge->m_workerContext->isContextThread()); + ASSERT(bridge->m_operationInProgress); + if (complete) + bridge->m_operationInProgress = false; bridge->m_clientOnWorkerThread->didWrite(length, complete); } void WorkerFileWriterCallbacksBridge::didFailOnWorkerThread(ScriptExecutionContext*, PassRefPtr<WorkerFileWriterCallbacksBridge> bridge, WebFileError error) { ASSERT(bridge->m_workerContext->isContextThread()); + ASSERT(bridge->m_operationInProgress); + bridge->m_operationInProgress = false; bridge->m_clientOnWorkerThread->didFail(static_cast<FileError::ErrorCode>(error)); } void WorkerFileWriterCallbacksBridge::didTruncateOnWorkerThread(ScriptExecutionContext*, PassRefPtr<WorkerFileWriterCallbacksBridge> bridge) { ASSERT(bridge->m_workerContext->isContextThread()); + ASSERT(bridge->m_operationInProgress); + bridge->m_operationInProgress = false; bridge->m_clientOnWorkerThread->didTruncate(); } @@ -185,9 +202,19 @@ void WorkerFileWriterCallbacksBridge::dispatchTaskToMainThread(PassOwnPtr<Script void WorkerFileWriterCallbacksBridge::dispatchTaskToWorkerThread(PassOwnPtr<ScriptExecutionContext::Task> task) { ASSERT(isMainThread()); - m_proxy->postTaskForModeToWorkerContext(createCallbackTask(&runTaskOnWorkerThread, this, task), WorkerRunLoop::defaultMode()); + m_proxy->postTaskForModeToWorkerContext(createCallbackTask(&runTaskOnWorkerThread, this, task), m_mode); } +bool WorkerFileWriterCallbacksBridge::waitForOperationToComplete() +{ + while (m_operationInProgress) { + WorkerContext* context = static_cast<WorkerContext*>(m_workerContext); + if (context->thread()->runLoop().runInMode(context, m_mode) == MessageQueueTerminated) + return false; + } + return true; } +} // namespace WebKit + #endif // ENABLE(FILE_SYSTEM) diff --git a/WebKit/chromium/src/WorkerFileWriterCallbacksBridge.h b/WebKit/chromium/src/WorkerFileWriterCallbacksBridge.h index d2e416e..62e333c 100644 --- a/WebKit/chromium/src/WorkerFileWriterCallbacksBridge.h +++ b/WebKit/chromium/src/WorkerFileWriterCallbacksBridge.h @@ -106,6 +106,9 @@ public: void didFail(WebFileError); void didTruncate(); + // Call this on the context thread to wait for the current operation to complete. + bool waitForOperationToComplete(); + private: WorkerFileWriterCallbacksBridge(const String& path, WebCore::WorkerLoaderProxy*, WebCore::ScriptExecutionContext*, WebCore::AsyncFileWriterClient*); @@ -147,6 +150,12 @@ private: // Used to indicate that shutdown has started on the main thread, and hence the writer has been deleted. bool m_writerDeleted; + + // Used by waitForOperationToComplete. + bool m_operationInProgress; + + // Used by postTaskForModeToWorkerContext and runInMode. + String m_mode; }; } // namespace WebCore diff --git a/WebKit/chromium/src/js/DevTools.js b/WebKit/chromium/src/js/DevTools.js index 8b3aea0..5bb150c 100644 --- a/WebKit/chromium/src/js/DevTools.js +++ b/WebKit/chromium/src/js/DevTools.js @@ -47,6 +47,8 @@ var context = {}; // Used by WebCore's inspector routines. Preferences.onlineDetectionEnabled = false; Preferences.nativeInstrumentationEnabled = true; Preferences.fileSystemEnabled = false; + Preferences.showTimingTab = true; + Preferences.showCookiesTab = true; })(); var devtools = devtools || {}; diff --git a/WebKit/efl/CMakeListsEfl.txt b/WebKit/efl/CMakeListsEfl.txt index 7abbc17..fb0ccc4 100644 --- a/WebKit/efl/CMakeListsEfl.txt +++ b/WebKit/efl/CMakeListsEfl.txt @@ -63,9 +63,13 @@ LIST(APPEND WebKit_SOURCES efl/ewk/ewk_history.cpp efl/ewk/ewk_main.cpp efl/ewk/ewk_settings.cpp + efl/ewk/ewk_tiled_backing_store.c + efl/ewk/ewk_tiled_matrix.c + efl/ewk/ewk_tiled_model.c efl/ewk/ewk_util.cpp efl/ewk/ewk_view.cpp efl/ewk/ewk_view_single.c + efl/ewk/ewk_view_tiled.c efl/ewk/ewk_window_features.cpp ) diff --git a/WebKit/efl/ChangeLog b/WebKit/efl/ChangeLog index bb2cf79..8b21f5e 100644 --- a/WebKit/efl/ChangeLog +++ b/WebKit/efl/ChangeLog @@ -1,3 +1,231 @@ +2010-12-01 Jia Pu <jpu@apple.com> + + Reviewed by Darin Adler. + + Support multiple correction candidates panel for misspelled word on Mac OS X. + https://bugs.webkit.org/show_bug.cgi?id=50137 + <rdar://problem/8568059> + + Adopted new function signature defined in base class. + + * WebCoreSupport/EditorClientEfl.cpp: + (WebCore::EditorClientEfl::getGuessesForWord): + * WebCoreSupport/EditorClientEfl.h: + +2010-11-22 Alex Grilo <abgrilo@profusion.mobi> + + Reviewed by Kenneth Rohde Christiansen. + + [EFL] Tiled Backing Store for Webkit-Efl + https://bugs.webkit.org/show_bug.cgi?id=45397 + + This tile based backing store is a grid of tiles where each tile is + an Evas_Object showing a piece of the page content. The + new ewk_view_tiled.c is an implementation of some of the functions of + the original ewk_view, that makes calls to the Tiled Backing Store + specific functions. + + The rendering occurs in the pixels stored in each tile (Evas_Object), + in the same way as the previous single backing store. Tiles not being + shown in the viewport are stored in a cache, and can be reused later + to avoid having to be rendered again. + + Scrolling occurs as just moving the tiles, using Evas move operations, + and when more than one tile size is scrolled, a shift of rows or + columns needs to be done. + + * CMakeListsEfl.txt: + * ewk/ewk_tiled_backing_store.c: Added. + (_ewk_tiled_backing_store_updates_process): + (_ewk_tiled_backing_store_flush): + (_ewk_tiled_backing_store_tile_new): + (_ewk_tiled_backing_store_item_move): + (_ewk_tiled_backing_store_item_resize): + (_ewk_tiled_backing_store_tile_associate): + (_ewk_tiled_backing_store_tile_dissociate): + (_ewk_tiled_backing_store_tile_dissociate_all): + (_ewk_tiled_backing_store_pre_render_request_add): + (_ewk_tiled_backing_store_pre_render_request_del): + (_ewk_tiled_backing_store_pre_render_request_first): + (_ewk_tiled_backing_store_pre_render_request_flush): + (_ewk_tiled_backing_store_pre_render_request_remove_unassociated): + (_ewk_tiled_backing_store_pre_render_request_remove_associated): + (_ewk_tiled_backing_store_pre_render_request_process_single): + (_ewk_tiled_backing_store_item_process_idler_cb): + (_ewk_tiled_backing_store_item_process_idler_stop): + (_ewk_tiled_backing_store_item_process_idler_start): + (_ewk_tiled_backing_store_item_request_del): + (_ewk_tiled_backing_store_item_request_add): + (_ewk_tiled_backing_store_disable_render): + (_ewk_tiled_backing_store_enable_render): + (_ewk_tiled_backing_store_visible_tiles_rect): + (_ewk_tiled_backing_store_tile_is_inside_viewport): + (_ewk_tiled_backing_store_tile_is_adjacent_to_viewport): + (_ewk_tiled_backing_store_item_fill): + (_ewk_tiled_backing_store_item_add): + (_ewk_tiled_backing_store_item_del): + (_ewk_tiled_backing_store_item_smooth_scale_set): + (_ewk_tiled_backing_store_changed): + (_ewk_tiled_backing_store_view_cols_end_del): + (_ewk_tiled_backing_store_view_cols_end_add): + (_ewk_tiled_backing_store_view_row_del): + (_ewk_tiled_backing_store_view_rows_range_del): + (_ewk_tiled_backing_store_view_rows_all_del): + (_ewk_tiled_backing_store_render): + (_ewk_tiled_backing_store_model_matrix_create): + (_ewk_tiled_backing_store_smart_member_del): + (_ewk_tiled_backing_store_smart_member_add): + (_ewk_tiled_backing_store_mem_dbg): + (_ewk_tiled_backing_store_sig_usr): + (_ewk_tiled_backing_store_smart_add): + (_ewk_tiled_backing_store_smart_del): + (_ewk_tiled_backing_store_smart_move): + (_ewk_tiled_backing_store_smart_resize): + (_ewk_tiled_backing_store_recalc_renderers): + (_ewk_tiled_backing_store_smart_calculate_size): + (_ewk_tiled_backing_store_view_dbg): + (_ewk_tiled_backing_store_view_wrap_up): + (_ewk_tiled_backing_store_view_wrap_down): + (_ewk_tiled_backing_store_view_wrap_left): + (_ewk_tiled_backing_store_view_wrap_right): + (_ewk_tiled_backing_store_view_refill): + (_ewk_tiled_backing_store_view_pos_apply): + (_ewk_tiled_backing_store_smart_calculate_offset_force): + (_ewk_tiled_backing_store_smart_calculate_offset): + (_ewk_tiled_backing_store_smart_calculate_pos): + (_ewk_tiled_backing_store_fill_renderers): + (_ewk_tiled_backing_store_smart_calculate): + (ewk_tiled_backing_store_add): + (ewk_tiled_backing_store_render_cb_set): + (ewk_tiled_backing_store_tile_unused_cache_get): + (ewk_tiled_backing_store_tile_unused_cache_set): + (_ewk_tiled_backing_store_scroll_full_offset_set_internal): + (ewk_tiled_backing_store_scroll_full_offset_set): + (ewk_tiled_backing_store_scroll_full_offset_add): + (_ewk_tiled_backing_store_zoom_set_internal): + (ewk_tiled_backing_store_zoom_set): + (ewk_tiled_backing_store_zoom_weak_set): + (ewk_tiled_backing_store_fix_offsets): + (ewk_tiled_backing_store_zoom_weak_smooth_scale_set): + (ewk_tiled_backing_store_update): + (ewk_tiled_backing_store_updates_process_pre_set): + (ewk_tiled_backing_store_updates_process_post_set): + (ewk_tiled_backing_store_updates_process): + (ewk_tiled_backing_store_updates_clear): + (ewk_tiled_backing_store_contents_resize): + (ewk_tiled_backing_store_disabled_update_set): + (ewk_tiled_backing_store_flush): + (ewk_tiled_backing_store_pre_render_region): + (ewk_tiled_backing_store_pre_render_relative_radius): + (ewk_tiled_backing_store_pre_render_cancel): + (ewk_tiled_backing_store_disable_render): + (ewk_tiled_backing_store_enable_render): + (ewk_tiled_backing_store_process_entire_queue_set): + * ewk/ewk_tiled_backing_store.h: Added. + * ewk/ewk_tiled_matrix.c: Added. + (_ewk_tile_matrix_cell_free): + (_ewk_tile_matrix_tile_free): + (ewk_tile_matrix_new): + (ewk_tile_matrix_free): + (ewk_tile_matrix_resize): + (ewk_tile_matrix_unused_cache_get): + (ewk_tile_matrix_tile_exact_get): + (ewk_tile_matrix_tile_exact_exists): + (ewk_tile_matrix_tile_nearest_get): + (ewk_tile_matrix_tile_new): + (ewk_tile_matrix_tile_put): + (ewk_tile_matrix_tile_update): + (ewk_tile_matrix_tile_update_full): + (ewk_tile_matrix_tile_updates_clear): + (_ewk_tile_matrix_slicer_setup): + (ewk_tile_matrix_update): + (ewk_tile_matrix_updates_process): + (ewk_tile_matrix_updates_clear): + (ewk_tile_matrix_dbg): + (ewk_tile_matrix_freeze): + (ewk_tile_matrix_thaw): + * ewk/ewk_tiled_matrix.h: Added. + * ewk/ewk_tiled_model.c: Added. + (_ewk_tile_account_get): + (_ewk_tile_account_allocated): + (_ewk_tile_account_freed): + (ewk_tile_accounting_dbg): + (_ewk_tile_paint_rgb888): + (_ewk_tile_paint_rgb565): + (_ewk_tile_paint): + (ewk_tile_new): + (ewk_tile_free): + (ewk_tile_show): + (ewk_tile_hide): + (ewk_tile_visible_get): + (ewk_tile_update_full): + (ewk_tile_update_area): + (ewk_tile_updates_process): + (ewk_tile_updates_clear): + (ewk_tile_unused_cache_new): + (ewk_tile_unused_cache_lock_area): + (ewk_tile_unused_cache_unlock_area): + (ewk_tile_unused_cache_free): + (ewk_tile_unused_cache_clear): + (ewk_tile_unused_cache_ref): + (ewk_tile_unused_cache_unref): + (ewk_tile_unused_cache_max_set): + (ewk_tile_unused_cache_max_get): + (ewk_tile_unused_cache_used_get): + (ewk_tile_unused_cache_flush): + (ewk_tile_unused_cache_auto_flush): + (ewk_tile_unused_cache_dirty): + (ewk_tile_unused_cache_freeze): + (ewk_tile_unused_cache_thaw): + (ewk_tile_unused_cache_tile_get): + (ewk_tile_unused_cache_tile_put): + (ewk_tile_unused_cache_dbg): + * ewk/ewk_tiled_model.h: Added. + * ewk/ewk_tiled_private.h: Added. + * ewk/ewk_view.cpp: + (_ewk_view_smart_add): + (_ewk_view_smart_calculate): + (_ewk_view_smart_show): + (_ewk_view_smart_hide): + (_ewk_view_smart_pre_render_relative_radius): + (_ewk_view_zoom_animator_cb): + (_ewk_view_smart_disable_render): + (_ewk_view_smart_enable_render): + (ewk_view_base_smart_set): + (ewk_view_pre_render_region): + (ewk_view_pre_render_relative_radius): + (ewk_view_enable_render): + (ewk_view_disable_render): + (ewk_view_scroll): + (ewk_view_did_first_visually_nonempty_layout): + (ewk_view_dispatch_did_finish_loading): + (ewk_view_transition_to_commited_for_newpage): + * ewk/ewk_view.h: + * ewk/ewk_view_tiled.c: Added. + (_ewk_view_tiled_render_cb): + (_ewk_view_tiled_updates_process_pre): + (_ewk_view_tiled_smart_backing_store_add): + (_ewk_view_tiled_contents_size_changed_cb): + (_ewk_view_tiled_smart_add): + (_ewk_view_tiled_smart_scrolls_process): + (_ewk_view_tiled_smart_repaints_process): + (_ewk_view_tiled_smart_contents_resize): + (_ewk_view_tiled_smart_zoom_set): + (_ewk_view_tiled_smart_zoom_weak_set): + (_ewk_view_tiled_smart_zoom_weak_smooth_scale_set): + (_ewk_view_tiled_smart_flush): + (_ewk_view_tiled_smart_pre_render_region): + (_ewk_view_tiled_smart_pre_render_relative_radius): + (_ewk_view_tiled_smart_pre_render_cancel): + (_ewk_view_tiled_smart_disable_render): + (_ewk_view_tiled_smart_enable_render): + (ewk_view_tiled_smart_set): + (_ewk_view_tiled_smart_class_new): + (ewk_view_tiled_add): + (ewk_view_tiled_unused_cache_get): + (ewk_view_tiled_unused_cache_set): + (ewk_view_tiled_process_entire_queue_set): + 2010-11-16 Leandro Pereira <leandro@profusion.mobi> [EFL] Unreviewed. Build fix. diff --git a/WebKit/efl/WebCoreSupport/EditorClientEfl.cpp b/WebKit/efl/WebCoreSupport/EditorClientEfl.cpp index 9184812..6bb961b 100644 --- a/WebKit/efl/WebCoreSupport/EditorClientEfl.cpp +++ b/WebKit/efl/WebCoreSupport/EditorClientEfl.cpp @@ -488,7 +488,7 @@ bool EditorClientEfl::spellingUIIsShowing() return false; } -void EditorClientEfl::getGuessesForWord(const String&, Vector<String>&) +void EditorClientEfl::getGuessesForWord(const String& word, const String& context, Vector<String>& guesses) { notImplemented(); } diff --git a/WebKit/efl/WebCoreSupport/EditorClientEfl.h b/WebKit/efl/WebCoreSupport/EditorClientEfl.h index 9f60cfb..b108ab6 100644 --- a/WebKit/efl/WebCoreSupport/EditorClientEfl.h +++ b/WebKit/efl/WebCoreSupport/EditorClientEfl.h @@ -110,7 +110,7 @@ public: virtual void updateSpellingUIWithMisspelledWord(const String&); virtual void showSpellingUI(bool show); virtual bool spellingUIIsShowing(); - virtual void getGuessesForWord(const String&, WTF::Vector<String>& guesses); + virtual void getGuessesForWord(const String& word, const String& context, WTF::Vector<String>& guesses); virtual void willSetInputMethodState(); virtual void setInputMethodState(bool enabled); diff --git a/WebKit/efl/ewk/ewk_tiled_backing_store.c b/WebKit/efl/ewk/ewk_tiled_backing_store.c new file mode 100644 index 0000000..0e8898b --- /dev/null +++ b/WebKit/efl/ewk/ewk_tiled_backing_store.c @@ -0,0 +1,2137 @@ +/* + Copyright (C) 2009-2010 Samsung Electronics + Copyright (C) 2009-2010 ProFUSION embedded systems + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "config.h" +#include "ewk_tiled_backing_store.h" + +#define _GNU_SOURCE +#include "ewk_tiled_private.h" +#include <Ecore.h> +#include <Eina.h> +#include <errno.h> +#include <math.h> +#include <stdio.h> // XXX REMOVE ME LATER +#include <stdlib.h> +#include <string.h> + +#define IDX(col, row, rowspan) (col + (row * rowspan)) + +#if !defined(MIN) +# define MIN(a, b) ((a < b) ? a : b) +#endif + +#if !defined(MAX) +# define MAX(a, b) ((a > b) ? a : b) +#endif + +typedef enum _Ewk_Tiled_Backing_Store_Pre_Render_Priority Ewk_Tiled_Backing_Store_Pre_Render_Priority; +typedef struct _Ewk_Tiled_Backing_Store_Data Ewk_Tiled_Backing_Store_Data; +typedef struct _Ewk_Tiled_Backing_Store_Item Ewk_Tiled_Backing_Store_Item; +typedef struct _Ewk_Tiled_Backing_Store_Pre_Render_Request Ewk_Tiled_Backing_Store_Pre_Render_Request; + +enum _Ewk_Tiled_Backing_Store_Pre_Render_Priority { + PRE_RENDER_PRIORITY_LOW = 0, /**< Append the request to the list */ + PRE_RENDER_PRIORITY_HIGH /**< Prepend the request to the list */ +}; + +struct _Ewk_Tiled_Backing_Store_Item { + EINA_INLIST; + Ewk_Tile *tile; + struct { + Evas_Coord x, y, w, h; + } geometry; + struct { + Eina_List *process; + unsigned long row, col; + float zoom; + } update; + Ewk_Tiled_Backing_Store_Pre_Render_Request *pre_render; + Eina_Bool smooth_scale; +}; + +struct _Ewk_Tiled_Backing_Store_Pre_Render_Request { + EINA_INLIST; + unsigned long col, row; + float zoom; + struct _Ewk_Tiled_Backing_Store_Item *it; +}; + +struct _Ewk_Tiled_Backing_Store_Data { + Evas_Object_Smart_Clipped_Data base; + Evas_Object *self; + Evas_Object *contents_clipper; + struct { + Eina_Inlist **items; + Evas_Coord x, y, w, h; + long cols, rows; + struct { + Evas_Coord w, h; + float zoom; + Eina_Bool zoom_weak_smooth_scale:1; + } tile; + struct { + struct { + Evas_Coord x, y; + } cur, old, base, zoom_center; + } offset; + } view; + Evas_Colorspace cspace; + struct { + Ewk_Tile_Matrix *matrix; + struct { + unsigned long col, row; + } base; + struct { + unsigned long cols, rows; + } cur, old; + Evas_Coord width, height; + } model; + struct { + Eina_Bool (*cb)(void *data, Ewk_Tile *t, const Eina_Rectangle *area); + void *data; + Eina_List *queue; + Eina_Bool process_entire_queue; + Eina_Inlist *pre_render_requests; + Ecore_Idler *idler; + Eina_Bool disabled; + Eina_Bool suspend:1; + } render; + struct { + void *(*pre_cb)(void *data, Evas_Object *o); + void *pre_data; + void *(*post_cb)(void *data, void *pre_data, Evas_Object *o); + void *post_data; + } process; + struct { + Eina_Bool any:1; + Eina_Bool pos:1; + Eina_Bool size:1; + Eina_Bool model:1; + Eina_Bool offset:1; + } changed; +#ifdef DEBUG_MEM_LEAKS + Ecore_Event_Handler *sig_usr; +#endif +}; + +static Evas_Smart_Class _parent_sc = EVAS_SMART_CLASS_INIT_NULL; +int _ewk_tiled_log_dom = -1; + +#define PRIV_DATA_GET_OR_RETURN(obj, ptr, ...) \ + Ewk_Tiled_Backing_Store_Data *ptr = evas_object_smart_data_get(obj); \ + if (!ptr) { \ + CRITICAL("no private data in obj=%p", obj); \ + return __VA_ARGS__; \ + } + +static inline void _ewk_tiled_backing_store_item_request_del(Ewk_Tiled_Backing_Store_Data *priv, Ewk_Tiled_Backing_Store_Item *it); +static inline void _ewk_tiled_backing_store_item_request_add(Ewk_Tiled_Backing_Store_Data *priv, Ewk_Tiled_Backing_Store_Item *it, int m_col, int m_row, float zoom); +static void _ewk_tiled_backing_store_fill_renderers(Ewk_Tiled_Backing_Store_Data *priv); +static inline void _ewk_tiled_backing_store_view_dbg(const Ewk_Tiled_Backing_Store_Data *priv); +static inline void _ewk_tiled_backing_store_changed(Ewk_Tiled_Backing_Store_Data *priv); + +static inline void _ewk_tiled_backing_store_updates_process(Ewk_Tiled_Backing_Store_Data *priv) +{ + void *data = NULL; + + /* Do not process updates. Note that we still want to get updates requests + * in the queue in order to not miss any updates after the render is + * resumed. + */ + if (priv->render.suspend || !evas_object_visible_get(priv->self)) + return; + + if (priv->process.pre_cb) + data = priv->process.pre_cb(priv->process.pre_data, priv->self); + + ewk_tile_matrix_updates_process(priv->model.matrix); + + if (priv->process.post_cb) + priv->process.post_cb(priv->process.post_data, data, priv->self); +} + +static int _ewk_tiled_backing_store_flush(void *data) +{ + Ewk_Tiled_Backing_Store_Data *priv = data; + Ewk_Tile_Unused_Cache *tuc = ewk_tile_matrix_unused_cache_get(priv->model.matrix); + + if (tuc) { + DBG("flush unused tile cache."); + ewk_tile_unused_cache_auto_flush(tuc); + } else + ERR("no cache?!"); + + return 0; +} + +static Ewk_Tile *_ewk_tiled_backing_store_tile_new(Ewk_Tiled_Backing_Store_Data *priv, unsigned long col, unsigned long row, float zoom) +{ + Ewk_Tile *t; + Evas *evas = evas_object_evas_get(priv->self); + if (!evas) { + CRITICAL("evas_object_evas_get failed!"); + return NULL; + } + + t = ewk_tile_matrix_tile_new + (priv->model.matrix, evas, col, row, zoom); + + if (!t) { + CRITICAL("ewk_tile_matrix_tile_new failed!"); + return NULL; + } + + return t; +} + +static void _ewk_tiled_backing_store_item_move(Ewk_Tiled_Backing_Store_Item *it, Evas_Coord x, Evas_Coord y) +{ + it->geometry.x = x; + it->geometry.y = y; + + if (it->tile) + evas_object_move(it->tile->image, x, y); +} + +static void _ewk_tiled_backing_store_item_resize(Ewk_Tiled_Backing_Store_Item *it, Evas_Coord w, Evas_Coord h) +{ + it->geometry.w = w; + it->geometry.h = h; + + if (it->tile) { + evas_object_resize(it->tile->image, w, h); + evas_object_image_fill_set(it->tile->image, 0, 0, w, h); + } +} + +static void _ewk_tiled_backing_store_tile_associate(Ewk_Tiled_Backing_Store_Data *priv, Ewk_Tile *t, Ewk_Tiled_Backing_Store_Item *it) +{ + if (it->tile) + CRITICAL("it->tile=%p, but it should be NULL!", it->tile); + it->tile = t; + evas_object_move(it->tile->image, it->geometry.x, it->geometry.y); + evas_object_resize(it->tile->image, it->geometry.w, it->geometry.h); + evas_object_image_fill_set + (it->tile->image, 0, 0, it->geometry.w, it->geometry.h); + evas_object_image_smooth_scale_set(it->tile->image, it->smooth_scale); + + if (!ewk_tile_visible_get(t)) + evas_object_smart_member_add(t->image, priv->self); + + ewk_tile_show(t); +} + +static void _ewk_tiled_backing_store_tile_dissociate(Ewk_Tiled_Backing_Store_Data *priv, Ewk_Tiled_Backing_Store_Item *it, double last_used) +{ + Ewk_Tile_Unused_Cache *tuc; + ewk_tile_hide(it->tile); + if (!ewk_tile_visible_get(it->tile)) + evas_object_smart_member_del(it->tile->image); + ewk_tile_matrix_tile_put(priv->model.matrix, it->tile, last_used); + tuc = ewk_tile_matrix_unused_cache_get(priv->model.matrix); + ewk_tile_unused_cache_auto_flush(tuc); + + it->tile = NULL; +} + +static void _ewk_tiled_backing_store_tile_dissociate_all(Ewk_Tiled_Backing_Store_Data *priv) +{ + Eina_Inlist *it; + Ewk_Tiled_Backing_Store_Item *item; + int i; + double last_used = ecore_loop_time_get(); + + for (i = 0; i < priv->view.rows; i++) { + it = priv->view.items[i]; + EINA_INLIST_FOREACH(it, item) + if (item->tile) + _ewk_tiled_backing_store_tile_dissociate(priv, item, last_used); + } +} + +static inline Eina_Bool _ewk_tiled_backing_store_pre_render_request_add(Ewk_Tiled_Backing_Store_Data *priv, unsigned long col, unsigned long row, float zoom, Ewk_Tiled_Backing_Store_Item *it, Ewk_Tiled_Backing_Store_Pre_Render_Priority priority) +{ + Ewk_Tiled_Backing_Store_Pre_Render_Request *r; + + MALLOC_OR_OOM_RET(r, sizeof(*r), EINA_FALSE); + + if (priority == PRE_RENDER_PRIORITY_HIGH) + priv->render.pre_render_requests = eina_inlist_prepend + (priv->render.pre_render_requests, EINA_INLIST_GET(r)); + else + priv->render.pre_render_requests = eina_inlist_append + (priv->render.pre_render_requests, EINA_INLIST_GET(r)); + + r->col = col; + r->row = row; + r->zoom = zoom; + r->it = it; + + if (it) + it->pre_render = r; + return EINA_TRUE; +} + +static inline void _ewk_tiled_backing_store_pre_render_request_del(Ewk_Tiled_Backing_Store_Data *priv, Ewk_Tiled_Backing_Store_Pre_Render_Request *r) +{ + priv->render.pre_render_requests = eina_inlist_remove + (priv->render.pre_render_requests, EINA_INLIST_GET(r)); + free(r); +} + +static inline Ewk_Tiled_Backing_Store_Pre_Render_Request *_ewk_tiled_backing_store_pre_render_request_first(const Ewk_Tiled_Backing_Store_Data *priv) +{ + return EINA_INLIST_CONTAINER_GET( + priv->render.pre_render_requests, + Ewk_Tiled_Backing_Store_Pre_Render_Request); +} + +static void _ewk_tiled_backing_store_pre_render_request_flush(Ewk_Tiled_Backing_Store_Data *priv) +{ + Eina_Inlist **pl = &priv->render.pre_render_requests; + while (*pl) { + Ewk_Tiled_Backing_Store_Pre_Render_Request *r; + r = _ewk_tiled_backing_store_pre_render_request_first(priv); + if (r->it && r->it->pre_render) + r->it->pre_render = NULL; + *pl = eina_inlist_remove(*pl, *pl); + free(r); + } +} + +static void _ewk_tiled_backing_store_pre_render_request_remove_unassociated(Ewk_Tiled_Backing_Store_Data *priv) +{ + Eina_Inlist **pl = &priv->render.pre_render_requests; + Eina_Inlist *iter = *pl, *tmp; + while (iter) { + Ewk_Tiled_Backing_Store_Pre_Render_Request *r = + EINA_INLIST_CONTAINER_GET( + iter, Ewk_Tiled_Backing_Store_Pre_Render_Request); + if (!r->it) { + tmp = iter->next; + *pl = eina_inlist_remove(*pl, iter); + iter = tmp; + free(r); + } else + iter = iter->next; + } +} + +static void _ewk_tiled_backing_store_pre_render_request_remove_associated(Ewk_Tiled_Backing_Store_Data *priv) +{ + Eina_Inlist **pl = &priv->render.pre_render_requests; + Eina_Inlist *iter = *pl, *tmp; + while (iter) { + Ewk_Tiled_Backing_Store_Pre_Render_Request *r = + EINA_INLIST_CONTAINER_GET( + iter, Ewk_Tiled_Backing_Store_Pre_Render_Request); + if (r->it) { + if (r->it->pre_render) + r->it->pre_render = NULL; + tmp = iter->next; + *pl = eina_inlist_remove(*pl, iter); + iter = tmp; + free(r); + } else + iter = iter->next; + } +} + +/* assumes priv->process.pre_cb was called if required! */ +static void _ewk_tiled_backing_store_pre_render_request_process_single(Ewk_Tiled_Backing_Store_Data *priv) +{ + Ewk_Tiled_Backing_Store_Pre_Render_Request *req; + Eina_Rectangle area; + Ewk_Tile_Matrix *tm = priv->model.matrix; + Ewk_Tile *t; + Ewk_Tile_Unused_Cache *tuc; + unsigned long col, row; + float zoom; + double last_used = ecore_loop_time_get(); + + req = _ewk_tiled_backing_store_pre_render_request_first(priv); + if (!req) + return; + + col = req->col; + row = req->row; + zoom = req->zoom; + + if (ewk_tile_matrix_tile_exact_exists(tm, col, row, zoom)) { + DBG("no pre-render required for tile %lu,%lu @ %f.", col, row, zoom); + goto end; + } + + if (req->it && req->it->tile) { + CRITICAL("it->tile = %p (%lu, %lu), but should be NULL", req->it->tile, req->it->tile->row, req->it->tile->col); + goto end; + } + + t = _ewk_tiled_backing_store_tile_new(priv, col, row, zoom); + if (!t) + goto end; + + area.x = 0; + area.y = 0; + area.w = priv->view.tile.w; + area.h = priv->view.tile.h; + + priv->render.cb(priv->render.data, t, &area); + evas_object_image_data_update_add( + t->image, + area.x, area.y, area.w, area.h); + ewk_tile_matrix_tile_updates_clear(tm, t); + + if (req->it) { + _ewk_tiled_backing_store_tile_associate(priv, t, req->it); + if (req->it->pre_render) + req->it->pre_render = NULL; + } else + ewk_tile_matrix_tile_put(tm, t, last_used); + +end: + _ewk_tiled_backing_store_pre_render_request_del(priv, req); + tuc = ewk_tile_matrix_unused_cache_get(priv->model.matrix); + ewk_tile_unused_cache_auto_flush(tuc); +} + +static Eina_Bool _ewk_tiled_backing_store_item_process_idler_cb(void *data) +{ + Ewk_Tiled_Backing_Store_Data *priv = data; + Ewk_Tiled_Backing_Store_Item *it = NULL; + + while (priv->render.queue) { + it = priv->render.queue->data; + if (it->tile->zoom == priv->view.tile.zoom) { + _ewk_tiled_backing_store_item_request_del(priv, it); + it = NULL; + } else { + unsigned long row, col; + float zoom; + Ewk_Tile *t; + if (it->tile) { + double last_used = ecore_loop_time_get(); + _ewk_tiled_backing_store_tile_dissociate(priv, it, last_used); + } + + row = it->update.row; + col = it->update.col; + zoom = it->update.zoom; + t = _ewk_tiled_backing_store_tile_new(priv, col, row, zoom); + if (!t) { + priv->render.idler = NULL; + return EINA_FALSE; + } + + _ewk_tiled_backing_store_tile_associate(priv, t, it); + it->update.process = NULL; + priv->render.queue = eina_list_remove_list(priv->render.queue, + priv->render.queue); + if (!priv->render.process_entire_queue) + break; + } + } + + if (priv->process.pre_cb) + data = priv->process.pre_cb(priv->process.pre_data, priv->self); + + ewk_tile_matrix_updates_process(priv->model.matrix); + + if (!it) + _ewk_tiled_backing_store_pre_render_request_process_single(priv); + + if (priv->process.post_cb) + priv->process.post_cb(priv->process.post_data, data, priv->self); + + if (!priv->render.queue && !priv->render.pre_render_requests) { + priv->render.idler = NULL; + return EINA_FALSE; + } + + return EINA_TRUE; +} + +static inline void _ewk_tiled_backing_store_item_process_idler_stop(Ewk_Tiled_Backing_Store_Data *priv) +{ + if (!priv->render.idler) + return; + + ecore_idler_del(priv->render.idler); + priv->render.idler = NULL; +} + +static inline void _ewk_tiled_backing_store_item_process_idler_start(Ewk_Tiled_Backing_Store_Data *priv) +{ + if (priv->render.idler) + return; + priv->render.idler = ecore_idler_add( + _ewk_tiled_backing_store_item_process_idler_cb, priv); +} + +static inline void _ewk_tiled_backing_store_item_request_del(Ewk_Tiled_Backing_Store_Data *priv, Ewk_Tiled_Backing_Store_Item *it) +{ + priv->render.queue = eina_list_remove_list(priv->render.queue, + it->update.process); + it->update.process = NULL; +} + +static inline void _ewk_tiled_backing_store_item_request_add(Ewk_Tiled_Backing_Store_Data *priv, Ewk_Tiled_Backing_Store_Item *it, int m_col, int m_row, float zoom) +{ + if (it->update.process) + return; + + it->update.col = m_col; + it->update.row = m_row; + it->update.zoom = zoom; + + priv->render.queue = eina_list_append(priv->render.queue, it); + it->update.process = eina_list_last(priv->render.queue); + + if (!priv->render.suspend) + _ewk_tiled_backing_store_item_process_idler_start(priv); +} + +static Eina_Bool _ewk_tiled_backing_store_disable_render(Ewk_Tiled_Backing_Store_Data *priv) +{ + if (priv->render.suspend) + return EINA_TRUE; + + priv->render.suspend = EINA_TRUE; + _ewk_tiled_backing_store_item_process_idler_stop(priv); + return EINA_TRUE; +} + +static Eina_Bool _ewk_tiled_backing_store_enable_render(Ewk_Tiled_Backing_Store_Data *priv) +{ + if (!priv->render.suspend) + return EINA_TRUE; + + priv->render.suspend = EINA_FALSE; + + _ewk_tiled_backing_store_fill_renderers(priv); + _ewk_tiled_backing_store_item_process_idler_start(priv); + + return EINA_TRUE; +} + +/** + * Returns a rectangle whose coordinates indicate which tiles are + * currently inside the viewport. + * + * Specifically, the returned rectangle's coordinates have the + * following meaning: + * - x: Column number for the top-level tile inside the viewport. + * - y: Row number for the top-level tile inside the viewport. + * - w: Number of tiles horizontally inside the viewport. + * - h: Number of tiles vertically inside the viewport. + */ +static Eina_Rectangle _ewk_tiled_backing_store_visible_tiles_rect(Ewk_Tiled_Backing_Store_Data *priv) +{ + Eina_Rectangle r; + + const Evas_Coord ox = -priv->view.offset.cur.x; + const Evas_Coord oy = -priv->view.offset.cur.y; + const Evas_Coord tw = priv->view.tile.w; + const Evas_Coord th = priv->view.tile.h; + + r.x = MAX(0, ox / tw); + r.y = MAX(0, oy / th); + r.w = MIN(priv->model.cur.cols, + ceil((float)(priv->view.w + (ox % tw)) / tw)); + r.h = MIN(priv->model.cur.rows, + ceil((float)(priv->view.h + (oy % th)) / th)); + + DBG("Returning %d,%d+%dx%d", r.x, r.y, r.w, r.h); + + return r; +} + +static Eina_Bool _ewk_tiled_backing_store_tile_is_inside_viewport(Ewk_Tiled_Backing_Store_Data *priv, int col, int row) +{ + const Eina_Rectangle r = _ewk_tiled_backing_store_visible_tiles_rect(priv); + + return eina_rectangle_coords_inside(&r, col, row); +} + +static Eina_Bool _ewk_tiled_backing_store_tile_is_adjacent_to_viewport(Ewk_Tiled_Backing_Store_Data *priv, int col, int row) +{ + const Eina_Rectangle r = _ewk_tiled_backing_store_visible_tiles_rect(priv); + + if (row == (r.y - 1) || row == (r.y + r.h)) + return (col >= (r.x - 1) && col <= (r.x + r.w)); + + if (col == (r.x - 1) || col == (r.x + r.w)) + return (row >= (r.y - 1) && row <= (r.y + r.h)); + + return EINA_FALSE; +} + +static inline Eina_Bool _ewk_tiled_backing_store_item_fill(Ewk_Tiled_Backing_Store_Data *priv, Ewk_Tiled_Backing_Store_Item *it, long col, int row) +{ + int m_col = priv->model.base.col + col; + int m_row = priv->model.base.row + row; + double last_used = ecore_loop_time_get(); + + if (m_col < 0 || m_row < 0 + || m_col >= priv->model.cur.cols || m_row >= priv->model.cur.rows) { + + if (it->tile) { + _ewk_tiled_backing_store_tile_dissociate(priv, it, last_used); + if (it->update.process) + _ewk_tiled_backing_store_item_request_del(priv, it); + } + } else { + Ewk_Tile *t; + const float zoom = priv->view.tile.zoom; + + if (it->update.process) { + if (it->update.row == m_row + && it->update.col == m_col + && it->update.zoom == zoom) + return EINA_TRUE; + + _ewk_tiled_backing_store_item_request_del(priv, it); + } + + if (it->pre_render) { + _ewk_tiled_backing_store_pre_render_request_del( + priv, it->pre_render); + it->pre_render = NULL; + } + + if (it->tile) { + Ewk_Tile *old = it->tile; + if (old->row != m_row || old->col != m_col || old->zoom != zoom) { + _ewk_tiled_backing_store_tile_dissociate(priv, it, + last_used); + if (it->update.process) + _ewk_tiled_backing_store_item_request_del(priv, it); + } else if (old->row == m_row && old->col == m_col + && old->zoom == zoom) + goto end; + } + + t = ewk_tile_matrix_tile_exact_get + (priv->model.matrix, m_col, m_row, zoom); + if (!t) { + /* NOTE: it never returns NULL if it->tile was set! */ + if (it->tile) { + CRITICAL("it->tile=%p, but it should be NULL!", it->tile); + _ewk_tiled_backing_store_tile_dissociate(priv, it, + last_used); + } + + /* Do not add new requests to the render queue */ + if (!priv->render.suspend) { + if (!_ewk_tiled_backing_store_tile_is_inside_viewport( + priv, m_col, m_row)) { + DBG("%d,%d is not inside the viewport", m_col, m_row); + if (_ewk_tiled_backing_store_tile_is_adjacent_to_viewport( + priv, m_col, m_row)) + _ewk_tiled_backing_store_pre_render_request_add( + priv, m_col, m_row, zoom, it, + PRE_RENDER_PRIORITY_HIGH); + _ewk_tiled_backing_store_item_process_idler_start(priv); + + goto end; + } + + t = _ewk_tiled_backing_store_tile_new(priv, m_col, m_row, zoom); + if (!t) + return EINA_FALSE; + _ewk_tiled_backing_store_tile_associate(priv, t, it); + } + } else if (t != it->tile) { + if (!it->update.process) { + if (it->tile) + _ewk_tiled_backing_store_tile_dissociate(priv, + it, last_used); + _ewk_tiled_backing_store_tile_associate(priv, t, it); + } + } + + end: + + return EINA_TRUE; + } + + return EINA_TRUE; +} + +static Ewk_Tiled_Backing_Store_Item *_ewk_tiled_backing_store_item_add(Ewk_Tiled_Backing_Store_Data *priv, long col, int row) +{ + Ewk_Tiled_Backing_Store_Item *it; + Evas_Coord x, y, tw, th; + + DBG("o=%p", priv->self); + + MALLOC_OR_OOM_RET(it, sizeof(*it), NULL); + + tw = priv->view.tile.w; + th = priv->view.tile.h; + x = priv->view.offset.base.x + priv->view.x + tw *col; + y = priv->view.offset.base.y + priv->view.y + th *row; + + it->tile = NULL; + it->update.process = NULL; + it->smooth_scale = priv->view.tile.zoom_weak_smooth_scale; + it->pre_render = NULL; + _ewk_tiled_backing_store_item_move(it, x, y); + _ewk_tiled_backing_store_item_resize(it, tw, th); + if (!_ewk_tiled_backing_store_item_fill(priv, it, col, row)) { + free(it); + return NULL; + } + + return it; +} + +static void _ewk_tiled_backing_store_item_del(Ewk_Tiled_Backing_Store_Data *priv, Ewk_Tiled_Backing_Store_Item *it) +{ + if (it->tile) { + double last_used = ecore_loop_time_get(); + _ewk_tiled_backing_store_tile_dissociate(priv, it, last_used); + } + if (it->update.process) + _ewk_tiled_backing_store_item_request_del(priv, it); + if (it->pre_render) { + _ewk_tiled_backing_store_pre_render_request_del( + priv, it->pre_render); + it->pre_render = NULL; + } + free(it); +} + +static void _ewk_tiled_backing_store_item_smooth_scale_set(Ewk_Tiled_Backing_Store_Item *it, Eina_Bool smooth_scale) +{ + if (it->smooth_scale == smooth_scale) + return; + + if (it->tile) + evas_object_image_smooth_scale_set(it->tile->image, smooth_scale); +} + +static inline void _ewk_tiled_backing_store_changed(Ewk_Tiled_Backing_Store_Data *priv) +{ + if (priv->changed.any) + return; + evas_object_smart_changed(priv->self); + priv->changed.any = EINA_TRUE; +} + +static void _ewk_tiled_backing_store_view_cols_end_del(Ewk_Tiled_Backing_Store_Data *priv, Eina_Inlist **p_row, unsigned int count) +{ + Eina_Inlist *n; + unsigned int i; + + if (!count) + return; + + n = (*p_row)->last; + + for (i = 0; i < count; i++) { + Ewk_Tiled_Backing_Store_Item *it; + it = EINA_INLIST_CONTAINER_GET(n, Ewk_Tiled_Backing_Store_Item); + n = n->prev; + *p_row = eina_inlist_remove(*p_row, EINA_INLIST_GET(it)); + _ewk_tiled_backing_store_item_del(priv, it); + } +} + +static Eina_Bool _ewk_tiled_backing_store_view_cols_end_add(Ewk_Tiled_Backing_Store_Data *priv, Eina_Inlist **p_row, unsigned int base_col, unsigned int count) +{ + unsigned int i, r = p_row - priv->view.items; + + for (i = 0; i < count; i++, base_col++) { + Ewk_Tiled_Backing_Store_Item *it; + + it = _ewk_tiled_backing_store_item_add(priv, base_col, r); + if (!it) { + CRITICAL("failed to add column %u of %u in row %u.", i, count, r); + _ewk_tiled_backing_store_view_cols_end_del(priv, p_row, i); + return EINA_FALSE; + } + + *p_row = eina_inlist_append(*p_row, EINA_INLIST_GET(it)); + } + return EINA_TRUE; +} + +static void _ewk_tiled_backing_store_view_row_del(Ewk_Tiled_Backing_Store_Data *priv, Eina_Inlist *row) +{ + while (row) { + Ewk_Tiled_Backing_Store_Item *it; + it = EINA_INLIST_CONTAINER_GET(row, Ewk_Tiled_Backing_Store_Item); + row = row->next; + _ewk_tiled_backing_store_item_del(priv, it); + } +} + +static void _ewk_tiled_backing_store_view_rows_range_del(Ewk_Tiled_Backing_Store_Data *priv, Eina_Inlist **start, Eina_Inlist **end) +{ + for (; start < end; start++) { + _ewk_tiled_backing_store_view_row_del(priv, *start); + *start = NULL; + } +} + +static void _ewk_tiled_backing_store_view_rows_all_del(Ewk_Tiled_Backing_Store_Data *priv) +{ + Eina_Inlist **start; + Eina_Inlist **end; + + start = priv->view.items; + end = priv->view.items + priv->view.rows; + _ewk_tiled_backing_store_view_rows_range_del(priv, start, end); + + free(priv->view.items); + priv->view.items = NULL; + priv->view.cols = 0; + priv->view.rows = 0; +} + +static void _ewk_tiled_backing_store_render(void *data, Ewk_Tile *t, const Eina_Rectangle *area) +{ + Ewk_Tiled_Backing_Store_Data *priv = data; + + INF("TODO %p (visible? %d) [%lu,%lu] %d,%d + %dx%d", + t, t->visible, t->col, t->row, area->x, area->y, area->w, area->h); + + if (!t->visible) + return; + + if (priv->view.tile.w != t->w || priv->view.tile.h != t->h) + return; // todo: remove me later, don't even flag as dirty! + + EINA_SAFETY_ON_NULL_RETURN(priv->render.cb); + if (!priv->render.cb(priv->render.data, t, area)) + return; + + evas_object_image_data_update_add(t->image, area->x, area->y, area->w, area->h); +} + +static inline void _ewk_tiled_backing_store_model_matrix_create(Ewk_Tiled_Backing_Store_Data *priv, Ewk_Tile_Unused_Cache *tuc) +{ + if (priv->model.matrix) { + _ewk_tiled_backing_store_view_rows_all_del(priv); + + priv->changed.offset = EINA_FALSE; + priv->changed.size = EINA_TRUE; + + ewk_tile_matrix_free(priv->model.matrix); + } + + priv->model.matrix = ewk_tile_matrix_new + (tuc, priv->model.cur.cols, priv->model.cur.rows, priv->cspace, + _ewk_tiled_backing_store_render, priv); +} + +static void _ewk_tiled_backing_store_smart_member_del(Evas_Object *o, Evas_Object *member) +{ + PRIV_DATA_GET_OR_RETURN(o, priv); + if (!priv->contents_clipper) + return; + evas_object_clip_unset(member); + if (!evas_object_clipees_get(priv->contents_clipper)) + evas_object_hide(priv->contents_clipper); +} + +static void _ewk_tiled_backing_store_smart_member_add(Evas_Object *o, Evas_Object *member) +{ + PRIV_DATA_GET_OR_RETURN(o, priv); + if (!priv->contents_clipper) + return; + evas_object_clip_set(member, priv->contents_clipper); + if (evas_object_visible_get(o)) + evas_object_show(priv->contents_clipper); +} + +#ifdef DEBUG_MEM_LEAKS +static void _ewk_tiled_backing_store_mem_dbg(Ewk_Tiled_Backing_Store_Data *priv) +{ + static int run = 0; + + run++; + + printf("\n--- BEGIN DEBUG TILED BACKING STORE MEMORY [%d] --\n" + "t=%0.2f, obj=%p, priv=%p, view.items=%p, matrix=%p\n", + run, ecore_loop_time_get(), + priv->self, priv, priv->view.items, priv->model.matrix); + + ewk_tile_matrix_dbg(priv->model.matrix); + ewk_tile_accounting_dbg(); + + printf("--- END DEBUG TILED BACKING STORE MEMORY [%d] --\n\n", run); +} + +static Eina_Bool _ewk_tiled_backing_store_sig_usr(void *data, int type, void *event) +{ + Ecore_Event_Signal_User *sig = (Ecore_Event_Signal_User*)event; + Ewk_Tiled_Backing_Store_Data *priv = (Ewk_Tiled_Backing_Store_Data*)data; + + if (sig->number == 2) { + Ewk_Tile_Unused_Cache *tuc; + tuc = ewk_tile_matrix_unused_cache_get(priv->model.matrix); + ewk_tile_unused_cache_auto_flush(tuc); + } + + _ewk_tiled_backing_store_view_dbg(priv); + _ewk_tiled_backing_store_mem_dbg(priv); + return EINA_TRUE; +} +#endif + +static void _ewk_tiled_backing_store_smart_add(Evas_Object *o) +{ + Ewk_Tiled_Backing_Store_Data *priv; + + DBG("o=%p", o); + + CALLOC_OR_OOM_RET(priv, sizeof(*priv)); + + priv->self = o; + priv->view.tile.zoom = 1.0; + priv->view.tile.w = TILE_W; + priv->view.tile.h = TILE_H; + priv->view.offset.cur.x = 0; + priv->view.offset.cur.y = 0; + priv->view.offset.old.x = 0; + priv->view.offset.old.y = 0; + priv->view.offset.base.x = -TILE_W; + priv->view.offset.base.y = -TILE_H; + + priv->model.base.col = -1; + priv->model.base.row = -1; + priv->model.cur.cols = 1; + priv->model.cur.rows = 1; + priv->model.old.cols = 0; + priv->model.old.rows = 0; + priv->model.width = 0; + priv->model.height = 0; + priv->render.process_entire_queue = EINA_TRUE; + priv->render.suspend = EINA_FALSE; + priv->cspace = EVAS_COLORSPACE_ARGB8888; // TODO: detect it. + + evas_object_smart_data_set(o, priv); + _parent_sc.add(o); + + priv->contents_clipper = evas_object_rectangle_add( + evas_object_evas_get(o)); + evas_object_move(priv->contents_clipper, 0, 0); + evas_object_resize(priv->contents_clipper, + priv->model.width, priv->model.height); + evas_object_color_set(priv->contents_clipper, 255, 255, 255, 255); + evas_object_show(priv->contents_clipper); + evas_object_smart_member_add(priv->contents_clipper, o); + + _ewk_tiled_backing_store_model_matrix_create(priv, NULL); + evas_object_move(priv->base.clipper, 0, 0); + evas_object_resize(priv->base.clipper, 0, 0); + evas_object_clip_set(priv->contents_clipper, priv->base.clipper); + +#ifdef DEBUG_MEM_LEAKS + priv->sig_usr = ecore_event_handler_add + (ECORE_EVENT_SIGNAL_USER, _ewk_tiled_backing_store_sig_usr, priv); +#endif +} + +static void _ewk_tiled_backing_store_smart_del(Evas_Object *o) +{ + PRIV_DATA_GET_OR_RETURN(o, priv); + DBG("o=%p", o); + Ewk_Tile_Unused_Cache *tuc; + + tuc = ewk_tile_matrix_unused_cache_get(priv->model.matrix); + ewk_tile_unused_cache_unlock_area(tuc); + + _ewk_tiled_backing_store_flush(priv); + + _ewk_tiled_backing_store_pre_render_request_flush(priv); + _ewk_tiled_backing_store_item_process_idler_stop(priv); + _ewk_tiled_backing_store_view_rows_all_del(priv); + +#ifdef DEBUG_MEM_LEAKS + _ewk_tiled_backing_store_mem_dbg(priv); + if (priv->sig_usr) + priv->sig_usr = ecore_event_handler_del(priv->sig_usr); +#endif + + ewk_tile_matrix_free(priv->model.matrix); + evas_object_smart_member_del(priv->contents_clipper); + evas_object_del(priv->contents_clipper); + + _parent_sc.del(o); + +#ifdef DEBUG_MEM_LEAKS + printf("\nIMPORTANT: TILED BACKING STORE DELETED (may be real leaks)\n"); + ewk_tile_accounting_dbg(); +#endif +} + +static void _ewk_tiled_backing_store_smart_move(Evas_Object *o, Evas_Coord x, Evas_Coord y) +{ + DBG("o=%p, new pos: %dx%d", o, x, y); + + PRIV_DATA_GET_OR_RETURN(o, priv); + + if (priv->changed.pos) + return; + + if (priv->view.x == x && priv->view.y == y) + return; + + priv->changed.pos = EINA_TRUE; + _ewk_tiled_backing_store_changed(priv); +} + +static void _ewk_tiled_backing_store_smart_resize(Evas_Object *o, Evas_Coord w, Evas_Coord h) +{ + DBG("o=%p, new size: %dx%d", o, w, h); + + PRIV_DATA_GET_OR_RETURN(o, priv); + + if (priv->changed.size) + return; + + if (priv->view.w == w && priv->view.h == h) + return; + + priv->changed.size = EINA_TRUE; + _ewk_tiled_backing_store_changed(priv); +} + +static void _ewk_tiled_backing_store_recalc_renderers(Ewk_Tiled_Backing_Store_Data *priv, Evas_Coord w, Evas_Coord h, Evas_Coord tw, Evas_Coord th) +{ + long cols, rows, old_rows, old_cols; + INF("o=%p, new size: %dx%d", priv->self, w, h); + + cols = 2 + (int)ceil((float)w / (float)tw); + rows = 2 + (int)ceil((float)h / (float)th); + + INF("o=%p new grid size cols: %ld, rows: %ld, was %ld, %ld", + priv->self, cols, rows, priv->view.cols, priv->view.rows); + + if (priv->view.cols == cols && priv->view.rows == rows) + return; + + _ewk_tiled_backing_store_pre_render_request_remove_associated(priv); + + old_cols = priv->view.cols; + old_rows = priv->view.rows; + + if (rows < old_rows) { + Eina_Inlist **start, **end; + start = priv->view.items + rows; + end = priv->view.items + old_rows; + _ewk_tiled_backing_store_view_rows_range_del(priv, start, end); + } + REALLOC_OR_OOM_RET(priv->view.items, sizeof(Eina_Inlist*) * (int)rows); + priv->view.rows = rows; + priv->view.cols = cols; + if (rows > old_rows) { + Eina_Inlist **start, **end; + start = priv->view.items + old_rows; + end = priv->view.items + rows; + for (; start < end; start++) { + Eina_Bool r; + *start = NULL; + r = _ewk_tiled_backing_store_view_cols_end_add + (priv, start, 0, cols); + if (!r) { + CRITICAL("failed to allocate %ld columns", cols); + _ewk_tiled_backing_store_view_rows_range_del + (priv, priv->view.items + old_rows, start); + priv->view.rows = old_rows; + return; + } + } + } + + if (cols != old_cols) { + Eina_Inlist **start, **end; + int todo = cols - old_cols; + start = priv->view.items; + end = start + MIN(old_rows, rows); + if (todo > 0) { + for (; start < end; start++) { + Eina_Bool r; + r = _ewk_tiled_backing_store_view_cols_end_add + (priv, start, old_cols, todo); + if (!r) { + CRITICAL("failed to allocate %d columns!", todo); + + for (start--; start >= priv->view.items; start--) + _ewk_tiled_backing_store_view_cols_end_del(priv, start, todo); + if (rows > old_rows) { + start = priv->view.items + old_rows; + end = priv->view.items + rows; + for (; start < end; start++) + _ewk_tiled_backing_store_view_cols_end_del(priv, start, todo); + } + return; + } + } + } else if (todo < 0) { + todo = -todo; + for (; start < end; start++) + _ewk_tiled_backing_store_view_cols_end_del(priv, start, todo); + } + } + + _ewk_tiled_backing_store_fill_renderers(priv); +} + +static void _ewk_tiled_backing_store_smart_calculate_size(Ewk_Tiled_Backing_Store_Data *priv, Evas_Coord w, Evas_Coord h) +{ + evas_object_resize(priv->base.clipper, w, h); + + priv->view.w = w; + priv->view.h = h; + + _ewk_tiled_backing_store_recalc_renderers( + priv, w, h, priv->view.tile.w, priv->view.tile.h); +} + +// TODO: remove me later. +static inline void _ewk_tiled_backing_store_view_dbg(const Ewk_Tiled_Backing_Store_Data *priv) +{ + Eina_Inlist **start, **end; + printf("tiles=%2ld,%2ld model=%2ld,%2ld [%dx%d] base=%+3ld,%+4ld offset=%+4d,%+4d old=%+4d,%+4d base=%+3d,%+3d\n", + priv->view.cols, priv->view.rows, + priv->model.cur.cols, priv->model.cur.rows, + priv->model.width, priv->model.height, + priv->model.base.col, priv->model.base.row, + priv->view.offset.cur.x, priv->view.offset.cur.y, + priv->view.offset.old.x, priv->view.offset.old.y, + priv->view.offset.base.x, priv->view.offset.base.y); + + start = priv->view.items; + end = priv->view.items + priv->view.rows; + for (; start < end; start++) { + const Ewk_Tiled_Backing_Store_Item *it; + + EINA_INLIST_FOREACH(*start, it) { + printf(" %+4d,%+4d ", it->geometry.x, it->geometry.y); + + if (!it->tile) + printf(" ;"); + else + printf("%8p %lu,%lu;", it->tile, it->tile->col, it->tile->row); + } + printf("\n"); + } + printf("---\n"); +} + +/** + * @internal + * Move top row down as last. + * + * The final result is visually the same, but logically the top that + * went out of screen is now at bottom and filled with new model items. + * + * This is worth just when @a count is smaller than @c + * priv->view.rows, after that one is refilling the whole matrix so it + * is better to trigger full refill. + * + * @param count the number of times to repeat the process. + */ +static void _ewk_tiled_backing_store_view_wrap_up(Ewk_Tiled_Backing_Store_Data *priv, Evas_Coord x, Evas_Coord y, unsigned int count) +{ + unsigned int last_row = priv->view.rows - 1; + Evas_Coord tw = priv->view.tile.w; + Evas_Coord th = priv->view.tile.h; + Evas_Coord off_y = (priv->view.offset.base.y % th) - th; + Evas_Coord oy = y + (last_row - count + 1) * th + off_y; + Eina_Inlist **itr_start, **itr_end; + + itr_start = priv->view.items; + itr_end = itr_start + last_row; + + for (; count > 0; count--) { + Eina_Inlist **itr; + Eina_Inlist *tmp = *itr_start; + Ewk_Tiled_Backing_Store_Item *it; + Evas_Coord ox = x + priv->view.offset.base.x; + int c = 0; + + for (itr = itr_start; itr < itr_end; itr++) + *itr = *(itr + 1); + *itr = tmp; + + priv->model.base.row++; + EINA_INLIST_FOREACH(tmp, it) { + _ewk_tiled_backing_store_item_move(it, ox, oy); + ox += tw; + _ewk_tiled_backing_store_item_fill(priv, it, c, last_row); + c++; + } + oy += th; + } + priv->view.offset.base.y = off_y; +} + +/** + * @internal + * Move bottom row up as first. + * + * The final result is visually the same, but logically the bottom that + * went out of screen is now at top and filled with new model items. + * + * This is worth just when @a count is smaller than @c + * priv->view.rows, after that one is refilling the whole matrix so it + * is better to trigger full refill. + * + * @param count the number of times to repeat the process. + */ +static void _ewk_tiled_backing_store_view_wrap_down(Ewk_Tiled_Backing_Store_Data *priv, Evas_Coord x, Evas_Coord y, unsigned int count) +{ + Evas_Coord tw = priv->view.tile.w; + Evas_Coord th = priv->view.tile.h; + Evas_Coord off_y = (priv->view.offset.base.y % th) - th; + Evas_Coord oy = y + off_y + (count - 1) * th; + Eina_Inlist **itr_start, **itr_end; + + itr_start = priv->view.items + priv->view.rows - 1; + itr_end = priv->view.items; + + for (; count > 0; count--) { + Eina_Inlist **itr; + Eina_Inlist *tmp = *itr_start; + Ewk_Tiled_Backing_Store_Item *it; + Evas_Coord ox = x + priv->view.offset.base.x; + int c = 0; + + for (itr = itr_start; itr > itr_end; itr--) + *itr = *(itr - 1); + *itr = tmp; + + priv->model.base.row--; + EINA_INLIST_FOREACH(tmp, it) { + _ewk_tiled_backing_store_item_move(it, ox, oy); + ox += tw; + _ewk_tiled_backing_store_item_fill(priv, it, c, 0); + c++; + } + oy -= th; + } + priv->view.offset.base.y = off_y; +} + +/** + * @internal + * Move left-most (first) column right as last (right-most). + * + * The final result is visually the same, but logically the first col that + * went out of screen is now at last and filled with new model items. + * + * This is worth just when @a count is smaller than @c + * priv->view.cols, after that one is refilling the whole matrix so it + * is better to trigger full refill. + * + * @param count the number of times to repeat the process. + */ +static void _ewk_tiled_backing_store_view_wrap_left(Ewk_Tiled_Backing_Store_Data *priv, Evas_Coord x, Evas_Coord y, unsigned int count) +{ + unsigned int r, last_col = priv->view.cols - 1; + Evas_Coord tw = priv->view.tile.w; + Evas_Coord th = priv->view.tile.h; + Evas_Coord off_x = (priv->view.offset.base.x % tw) - tw; + Evas_Coord oy = y + priv->view.offset.base.y; + Eina_Inlist **itr; + Eina_Inlist **itr_end; + + itr = priv->view.items; + itr_end = itr + priv->view.rows; + r = 0; + + priv->model.base.col += count; + + for (; itr < itr_end; itr++, r++) { + Evas_Coord ox = x + (last_col - count + 1) * tw + off_x; + unsigned int i, c = last_col - count + 1; + + for (i = 0; i < count; i++, c++, ox += tw) { + Ewk_Tiled_Backing_Store_Item *it; + it = EINA_INLIST_CONTAINER_GET(*itr, Ewk_Tiled_Backing_Store_Item); + *itr = eina_inlist_demote(*itr, *itr); + + _ewk_tiled_backing_store_item_move(it, ox, oy); + _ewk_tiled_backing_store_item_fill(priv, it, c, r); + } + oy += th; + } + + priv->view.offset.base.x = off_x; +} + +/** + * @internal + * Move right-most (last) column left as first (left-most). + * + * The final result is visually the same, but logically the last col that + * went out of screen is now at first and filled with new model items. + * + * This is worth just when @a count is smaller than @c + * priv->view.cols, after that one is refilling the whole matrix so it + * is better to trigger full refill. + * + * @param count the number of times to repeat the process. + */ +static void _ewk_tiled_backing_store_view_wrap_right(Ewk_Tiled_Backing_Store_Data *priv, Evas_Coord x, Evas_Coord y, unsigned int count) +{ + unsigned int r; + Evas_Coord tw = priv->view.tile.w; + Evas_Coord th = priv->view.tile.h; + Evas_Coord off_x = (priv->view.offset.base.x % tw) - tw; + Evas_Coord oy = y + priv->view.offset.base.y; + Eina_Inlist **itr, **itr_end; + + itr = priv->view.items; + itr_end = itr + priv->view.rows; + r = 0; + + priv->model.base.col -= count; + + for (; itr < itr_end; itr++, r++) { + Evas_Coord ox = x + (count - 1) * tw + off_x; + unsigned int i, c = count - 1; + + for (i = 0; i < count; i++, c--, ox -= tw) { + Ewk_Tiled_Backing_Store_Item *it; + it = EINA_INLIST_CONTAINER_GET((*itr)->last, Ewk_Tiled_Backing_Store_Item); + *itr = eina_inlist_promote(*itr, (*itr)->last); + + _ewk_tiled_backing_store_item_move(it, ox, oy); + _ewk_tiled_backing_store_item_fill(priv, it, c, r); + } + oy += th; + } + + priv->view.offset.base.x = off_x; +} + +static void _ewk_tiled_backing_store_view_refill(Ewk_Tiled_Backing_Store_Data *priv, Evas_Coord x, Evas_Coord y, int step_x, int step_y) +{ + Eina_Inlist **itr, **itr_end; + Evas_Coord base_ox, oy, tw, th; + unsigned int r; + + evas_object_move(priv->base.clipper, x, y); + + tw = priv->view.tile.w; + th = priv->view.tile.h; + + base_ox = x + priv->view.offset.base.x; + oy = y + priv->view.offset.base.y; + + itr = priv->view.items; + itr_end = itr + priv->view.rows; + r = 0; + + priv->model.base.col -= step_x; + priv->model.base.row -= step_y; + + for (; itr < itr_end; itr++, r++) { + Ewk_Tiled_Backing_Store_Item *it; + Evas_Coord ox = base_ox; + unsigned int c = 0; + EINA_INLIST_FOREACH(*itr, it) { + _ewk_tiled_backing_store_item_fill(priv, it, c, r); + _ewk_tiled_backing_store_item_move(it, ox, oy); + c++; + ox += tw; + } + oy += th; + } +} + +static void _ewk_tiled_backing_store_view_pos_apply(Ewk_Tiled_Backing_Store_Data *priv, Evas_Coord x, Evas_Coord y) +{ + Eina_Inlist **itr, **itr_end; + Evas_Coord base_ox, oy, tw, th; + + evas_object_move(priv->base.clipper, x, y); + + tw = priv->view.tile.w; + th = priv->view.tile.h; + + base_ox = x + priv->view.offset.base.x; + oy = y + priv->view.offset.base.y; + + itr = priv->view.items; + itr_end = itr + priv->view.rows; + for (; itr < itr_end; itr++) { + Ewk_Tiled_Backing_Store_Item *it; + Evas_Coord ox = base_ox; + EINA_INLIST_FOREACH(*itr, it) { + _ewk_tiled_backing_store_item_move(it, ox, oy); + ox += tw; + } + oy += th; + } +} + +static void _ewk_tiled_backing_store_smart_calculate_offset_force(Ewk_Tiled_Backing_Store_Data *priv) +{ + Evas_Coord dx = priv->view.offset.cur.x - priv->view.offset.old.x; + Evas_Coord dy = priv->view.offset.cur.y - priv->view.offset.old.y; + Evas_Coord tw, th; + int step_y, step_x; + + INF("o=%p, offset: %+4d, %+4d (%+4d, %+4d)", + priv->self, dx, dy, priv->view.offset.cur.x, priv->view.offset.cur.y); + + tw = priv->view.tile.w; + th = priv->view.tile.h; + + step_x = (dx + priv->view.offset.base.x + tw) / tw; + step_y = (dy + priv->view.offset.base.y + th) / th; + + priv->view.offset.old.x = priv->view.offset.cur.x; + priv->view.offset.old.y = priv->view.offset.cur.y; + evas_object_move( + priv->contents_clipper, + priv->view.offset.cur.x + priv->view.x, + priv->view.offset.cur.y + priv->view.y); + + priv->view.offset.base.x += dx - step_x * tw; + priv->view.offset.base.y += dy - step_y * th; + + _ewk_tiled_backing_store_view_refill + (priv, priv->view.x, priv->view.y, step_x, step_y); +} + +static void _ewk_tiled_backing_store_smart_calculate_offset(Ewk_Tiled_Backing_Store_Data *priv, Evas_Coord x, Evas_Coord y) +{ + Evas_Coord dx = priv->view.offset.cur.x - priv->view.offset.old.x; + Evas_Coord dy = priv->view.offset.cur.y - priv->view.offset.old.y; + Evas_Coord tw, th; + int step_y, step_x; + + INF("o=%p, offset: %+4d, %+4d (%+4d, %+4d)", + priv->self, dx, dy, priv->view.offset.cur.x, priv->view.offset.cur.y); + + if (!dx && !dy) + return; + + tw = priv->view.tile.w; + th = priv->view.tile.h; + + step_x = (dx + priv->view.offset.base.x + tw) / tw; + step_y = (dy + priv->view.offset.base.y + th) / th; + + priv->view.offset.old.x = priv->view.offset.cur.x; + priv->view.offset.old.y = priv->view.offset.cur.y; + evas_object_move( + priv->contents_clipper, + priv->view.offset.cur.x + priv->view.x, + priv->view.offset.cur.y + priv->view.y); + + if ((step_x < 0 && step_x <= -priv->view.cols) + || (step_x > 0 && step_x >= priv->view.cols) + || (step_y < 0 && step_y <= -priv->view.rows) + || (step_y > 0 && step_y >= priv->view.rows)) { + + priv->view.offset.base.x += dx - step_x * tw; + priv->view.offset.base.y += dy - step_y * th; + + _ewk_tiled_backing_store_view_refill + (priv, priv->view.x, priv->view.y, step_x, step_y); + return; + } + + priv->view.offset.base.x += dx; + priv->view.offset.base.y += dy; + + if (step_y < 0) + _ewk_tiled_backing_store_view_wrap_up(priv, x, y, -step_y); + else if (step_y > 0) + _ewk_tiled_backing_store_view_wrap_down(priv, x, y, step_y); + + if (step_x < 0) + _ewk_tiled_backing_store_view_wrap_left(priv, x, y, -step_x); + else if (step_x > 0) + _ewk_tiled_backing_store_view_wrap_right(priv, x, y, step_x); + + _ewk_tiled_backing_store_view_pos_apply(priv, x, y); +} + +static void _ewk_tiled_backing_store_smart_calculate_pos(Ewk_Tiled_Backing_Store_Data *priv, Evas_Coord x, Evas_Coord y) +{ + _ewk_tiled_backing_store_view_pos_apply(priv, x, y); + priv->view.x = x; + priv->view.y = y; + evas_object_move( + priv->contents_clipper, + priv->view.offset.cur.x + priv->view.x, + priv->view.offset.cur.y + priv->view.y); +} + +static void _ewk_tiled_backing_store_fill_renderers(Ewk_Tiled_Backing_Store_Data *priv) +{ + Eina_Inlist *it; + Ewk_Tiled_Backing_Store_Item *item; + int i, j; + + for (i = 0; i < priv->view.rows; i++) { + it = priv->view.items[i]; + j = 0; + EINA_INLIST_FOREACH(it, item) + _ewk_tiled_backing_store_item_fill(priv, item, j++, i); + } +} + +static void _ewk_tiled_backing_store_smart_calculate(Evas_Object *o) +{ + Evas_Coord x, y, w, h; + + evas_object_geometry_get(o, &x, &y, &w, &h); + DBG("o=%p at %d,%d + %dx%d", o, x, y, w, h); + + PRIV_DATA_GET_OR_RETURN(o, priv); + + priv->changed.any = EINA_FALSE; + + ewk_tile_matrix_freeze(priv->model.matrix); + + if (!priv->render.suspend && priv->changed.model) { + long cols, rows; + + cols = priv->model.width / priv->view.tile.w + 1; + rows = priv->model.height / priv->view.tile.h + 1; + + priv->model.old.cols = priv->model.cur.cols; + priv->model.old.rows = priv->model.cur.rows; + priv->model.cur.cols = cols; + priv->model.cur.rows = rows; + if (priv->model.old.cols > cols) + cols = priv->model.old.cols; + if (priv->model.old.rows > rows) + rows = priv->model.old.rows; + ewk_tile_matrix_resize(priv->model.matrix, cols, rows); + } + + if (priv->changed.pos && (priv->view.x != x || priv->view.y != y)) { + _ewk_tiled_backing_store_smart_calculate_pos(priv, x, y); + priv->changed.pos = EINA_FALSE; + } else if (priv->changed.offset) { + _ewk_tiled_backing_store_smart_calculate_offset(priv, x, y); + priv->changed.offset = EINA_FALSE; + } + + if (priv->changed.size) { + _ewk_tiled_backing_store_smart_calculate_size(priv, w, h); + priv->changed.size = EINA_FALSE; + } + + if (!priv->render.suspend && priv->changed.model) { + Eina_Rectangle rect; + rect.x = 0; + rect.y = 0; + rect.w = priv->model.width; + rect.h = priv->model.height; + _ewk_tiled_backing_store_fill_renderers(priv); + ewk_tile_matrix_resize(priv->model.matrix, + priv->model.cur.cols, + priv->model.cur.rows); + priv->changed.model = EINA_FALSE; + evas_object_resize(priv->contents_clipper, + priv->model.width, priv->model.height); + _ewk_tiled_backing_store_smart_calculate_offset_force(priv); + + /* Make sure we do not miss any important repaint by + * repainting the whole viewport */ + const Eina_Rectangle r = + { 0, 0, priv->model.width, priv->model.height }; + ewk_tile_matrix_update(priv->model.matrix, &r, + priv->view.tile.zoom); + } + + ewk_tile_matrix_thaw(priv->model.matrix); + + _ewk_tiled_backing_store_updates_process(priv); + + if (priv->view.offset.base.x >= 0 + || priv->view.offset.base.x <= -2 * priv->view.tile.w + || priv->view.offset.base.y >= 0 + || priv->view.offset.base.y <= -2 * priv->view.tile.h) + ERR("incorrect base offset %+4d,%+4d, tile=%dx%d, cur=%+4d,%+4d\n", + priv->view.offset.base.x, priv->view.offset.base.y, + priv->view.tile.w, priv->view.tile.h, + priv->view.offset.cur.x, priv->view.offset.cur.y); + +} + +Evas_Object *ewk_tiled_backing_store_add(Evas *e) +{ + static Evas_Smart *smart = NULL; + + if (_ewk_tiled_log_dom < 0) + _ewk_tiled_log_dom = eina_log_domain_register("Ewk_Tiled_Backing_Store", NULL); + + if (!smart) { + static Evas_Smart_Class sc = + EVAS_SMART_CLASS_INIT_NAME_VERSION("Ewk_Tiled_Backing_Store"); + + evas_object_smart_clipped_smart_set(&sc); + _parent_sc = sc; + + sc.add = _ewk_tiled_backing_store_smart_add; + sc.del = _ewk_tiled_backing_store_smart_del; + sc.resize = _ewk_tiled_backing_store_smart_resize; + sc.move = _ewk_tiled_backing_store_smart_move; + sc.calculate = _ewk_tiled_backing_store_smart_calculate; + sc.member_add = _ewk_tiled_backing_store_smart_member_add; + sc.member_del = _ewk_tiled_backing_store_smart_member_del; + + smart = evas_smart_class_new(&sc); + } + + return evas_object_smart_add(e, smart); +} + +void ewk_tiled_backing_store_render_cb_set(Evas_Object *o, Eina_Bool (*cb)(void *data, Ewk_Tile *t, const Eina_Rectangle *area), const void *data) +{ + EINA_SAFETY_ON_NULL_RETURN(cb); + PRIV_DATA_GET_OR_RETURN(o, priv); + priv->render.cb = cb; + priv->render.data = (void*)data; +} + +Ewk_Tile_Unused_Cache *ewk_tiled_backing_store_tile_unused_cache_get(const Evas_Object *o) +{ + PRIV_DATA_GET_OR_RETURN(o, priv, NULL); + return ewk_tile_matrix_unused_cache_get(priv->model.matrix); +} + +void ewk_tiled_backing_store_tile_unused_cache_set(Evas_Object *o, Ewk_Tile_Unused_Cache *tuc) +{ + PRIV_DATA_GET_OR_RETURN(o, priv); + + if (ewk_tile_matrix_unused_cache_get(priv->model.matrix) == tuc) + return; + + _ewk_tiled_backing_store_model_matrix_create(priv, tuc); +} + +static Eina_Bool _ewk_tiled_backing_store_scroll_full_offset_set_internal(Ewk_Tiled_Backing_Store_Data *priv, Evas_Coord x, Evas_Coord y) +{ + /* TODO: check offset go out of bounds, clamp */ + if (priv->render.disabled) + return EINA_FALSE; + + priv->view.offset.cur.x = x; + priv->view.offset.cur.y = y; + + priv->changed.offset = EINA_TRUE; + _ewk_tiled_backing_store_changed(priv); + + return EINA_TRUE; +} + +Eina_Bool ewk_tiled_backing_store_scroll_full_offset_set(Evas_Object *o, Evas_Coord x, Evas_Coord y) +{ + DBG("o=%p, x=%d, y=%d", o, x, y); + + PRIV_DATA_GET_OR_RETURN(o, priv, EINA_FALSE); + if (x == priv->view.offset.cur.x && y == priv->view.offset.cur.y) + return EINA_TRUE; + + return _ewk_tiled_backing_store_scroll_full_offset_set_internal(priv, x, y); +} + +Eina_Bool ewk_tiled_backing_store_scroll_full_offset_add(Evas_Object *o, Evas_Coord dx, Evas_Coord dy) +{ + DBG("o=%p, dx=%d, dy=%d", o, dx, dy); + + PRIV_DATA_GET_OR_RETURN(o, priv, EINA_FALSE); + if (!dx && !dy) + return EINA_TRUE; + + return _ewk_tiled_backing_store_scroll_full_offset_set_internal + (priv, priv->view.offset.cur.x + dx, priv->view.offset.cur.y + dy); +} + +static Eina_Bool _ewk_tiled_backing_store_zoom_set_internal(Ewk_Tiled_Backing_Store_Data *priv, float *zoom, Evas_Coord cx, Evas_Coord cy, Evas_Coord *offx, Evas_Coord *offy) +{ + *offx = priv->view.offset.cur.x; + *offy = priv->view.offset.cur.y; + + if (fabsf(priv->view.tile.zoom - *zoom) < ZOOM_STEP_MIN) { + DBG("ignored as zoom difference is < %f: %f", + (double)ZOOM_STEP_MIN, fabsf(priv->view.tile.zoom - *zoom)); + return EINA_TRUE; + } + + _ewk_tiled_backing_store_pre_render_request_flush(priv); + Evas_Coord tw, th; + tw = TILE_SIZE_AT_ZOOM(TILE_W, *zoom); + tw = (tw >> 1) << 1; + *zoom = TILE_W_ZOOM_AT_SIZE(tw); + /* WARNING: assume reverse zoom is the same for both axis */ + th = TILE_SIZE_AT_ZOOM(TILE_H, *zoom); + + float scale = *zoom / priv->view.tile.zoom; + + priv->view.tile.zoom = *zoom; + // todo: check cx [0, w]... + priv->view.offset.zoom_center.x = cx; + priv->view.offset.zoom_center.y = cy; + + priv->view.tile.w = tw; + priv->view.tile.h = th; + + if (!priv->view.w || !priv->view.h) { + priv->view.offset.base.x = -tw; + priv->view.offset.base.y = -th; + return EINA_TRUE; + } + Eina_Inlist **itr, **itr_end; + Ewk_Tiled_Backing_Store_Item *it; + + Evas_Coord new_x = cx + (priv->view.offset.cur.x - cx) * scale; + Evas_Coord new_y = cy + (priv->view.offset.cur.y - cy) * scale; + Evas_Coord bx = cx + (priv->view.offset.base.x - cx) * scale; + Evas_Coord by = cy + (priv->view.offset.base.y - cy) * scale; + + Evas_Coord model_width = priv->model.width * scale; + Evas_Coord model_height = priv->model.height * scale; + + if (model_width < priv->view.w || new_x >= 0) + new_x = 0; + else if (-new_x + priv->view.w >= model_width) + new_x = -model_width + priv->view.w; + + if (model_height < priv->view.h || new_y >= 0) + new_y = 0; + else if (-new_y + priv->view.h >= model_height) + new_y = -model_height + priv->view.h; + + bx = new_x % tw - tw; + priv->model.base.col = - new_x / tw - 1; + by = new_y % th - th; + priv->model.base.row = - new_y / th - 1; + + priv->changed.size = EINA_TRUE; + _ewk_tiled_backing_store_changed(priv); + + priv->view.offset.cur.x = new_x; + priv->view.offset.cur.y = new_y; + priv->view.offset.base.x = bx; + priv->view.offset.base.y = by; + + priv->view.offset.old.x = priv->view.offset.cur.x; + priv->view.offset.old.y = priv->view.offset.cur.y; + *offx = priv->view.offset.cur.x; + *offy = priv->view.offset.cur.y; + + evas_object_move( + priv->contents_clipper, + new_x + priv->view.x, + new_y + priv->view.y); + + _ewk_tiled_backing_store_fill_renderers(priv); + + Evas_Coord oy = priv->view.offset.base.y + priv->view.y; + Evas_Coord base_ox = priv->view.x + priv->view.offset.base.x; + + itr = priv->view.items; + itr_end = itr + priv->view.rows; + + for (; itr < itr_end; itr++) { + Evas_Coord ox = base_ox; + Eina_Inlist *lst = *itr; + + EINA_INLIST_FOREACH(lst, it) { + _ewk_tiled_backing_store_item_move(it, ox, oy); + _ewk_tiled_backing_store_item_resize(it, tw, th); + ox += tw; + } + oy += th; + } + + return EINA_TRUE; +} + +Eina_Bool ewk_tiled_backing_store_zoom_set(Evas_Object *o, float *zoom, Evas_Coord cx, Evas_Coord cy, Evas_Coord *offx, Evas_Coord *offy) +{ + DBG("o=%p, zoom=%f", o, (double)*zoom); + + PRIV_DATA_GET_OR_RETURN(o, priv, EINA_FALSE); + + return _ewk_tiled_backing_store_zoom_set_internal(priv, zoom, cx, cy, offx, offy); +} + +Eina_Bool ewk_tiled_backing_store_zoom_weak_set(Evas_Object *o, float zoom, Evas_Coord cx, Evas_Coord cy) +{ + DBG("o=%p, zoom=%f", o, (double)zoom); + PRIV_DATA_GET_OR_RETURN(o, priv, EINA_FALSE); + if (!priv->view.w || !priv->view.h) + return EINA_FALSE; + Eina_Inlist **itr, **itr_end; + Ewk_Tiled_Backing_Store_Item *it; + Evas_Coord tw, th; + Eina_Bool recalc = EINA_FALSE; + + tw = TILE_SIZE_AT_ZOOM(TILE_W, zoom); + zoom = TILE_W_ZOOM_AT_SIZE(tw); + /* WARNING: assume reverse zoom is the same for both axis */ + th = TILE_SIZE_AT_ZOOM(TILE_H, zoom); + + float scale = zoom / priv->view.tile.zoom; + + Evas_Coord model_width = priv->model.width * scale; + Evas_Coord model_height = priv->model.height * scale; + + evas_object_resize(priv->contents_clipper, + model_width, model_height); + + int vrows = ceil((float)priv->view.h / (float)th) + 2; + int vcols = ceil((float)priv->view.w / (float)tw) + 2; + Evas_Coord new_x = cx + (priv->view.offset.cur.x - cx) * scale; + Evas_Coord new_y = cy + (priv->view.offset.cur.y - cy) * scale; + Evas_Coord bx = new_x % tw - tw; + Evas_Coord by = new_y % th - th; + unsigned long base_row = -new_y / th - 1; + unsigned long base_col = -new_x / tw - 1; + + if (base_row != priv->model.base.row || base_col != priv->model.base.col) { + priv->model.base.row = base_row; + priv->model.base.col = base_col; + recalc = EINA_TRUE; + } + + if (vrows > priv->view.rows || vcols > priv->view.cols) + recalc = EINA_TRUE; + + if (recalc) { + Evas_Coord w, h; + evas_object_geometry_get(o, NULL, NULL, &w, &h); + _ewk_tiled_backing_store_recalc_renderers(priv, w, h, tw, th); + _ewk_tiled_backing_store_fill_renderers(priv); + _ewk_tiled_backing_store_updates_process(priv); + } + + Evas_Coord base_ox = bx + priv->view.x; + Evas_Coord oy = by + priv->view.y; + + evas_object_move(priv->contents_clipper, + new_x + priv->view.x, + new_y + priv->view.y); + + itr = priv->view.items; + itr_end = itr + priv->view.rows; + + for (; itr < itr_end; itr++) { + Evas_Coord ox = base_ox; + Eina_Inlist *lst = *itr; + + EINA_INLIST_FOREACH(lst, it) { + _ewk_tiled_backing_store_item_move(it, ox, oy); + _ewk_tiled_backing_store_item_resize(it, tw, th); + ox += tw; + } + oy += th; + } + + return EINA_TRUE; +} + +void ewk_tiled_backing_store_fix_offsets(Evas_Object *o, Evas_Coord w, Evas_Coord h) +{ + PRIV_DATA_GET_OR_RETURN(o, priv); + Eina_Inlist **itr, **itr_end; + Ewk_Tiled_Backing_Store_Item *it; + Evas_Coord new_x = priv->view.offset.cur.x; + Evas_Coord new_y = priv->view.offset.cur.y; + Evas_Coord bx = priv->view.offset.base.x; + Evas_Coord by = priv->view.offset.base.y; + Evas_Coord tw = priv->view.tile.w; + Evas_Coord th = priv->view.tile.h; + + if (-new_x > w) { + new_x = -w; + bx = new_x % tw - tw; + priv->model.base.col = -new_x / tw - 1; + } + + if (-new_y > h) { + new_y = -h; + by = new_y % th - th; + priv->model.base.row = -new_y / th - 1; + } + + if (bx >= 0 || bx <= -2 * priv->view.tile.w) { + bx = new_x % tw - tw; + priv->model.base.col = -new_x / tw - 1; + } + + if (by >= 0 || by <= -2 * priv->view.tile.h) { + by = new_y % th - th; + priv->model.base.row = -new_y / th - 1; + } + + priv->view.offset.cur.x = new_x; + priv->view.offset.cur.y = new_y; + priv->view.offset.old.x = new_x; + priv->view.offset.old.y = new_y; + priv->view.offset.base.x = bx; + priv->view.offset.base.y = by; + evas_object_move(priv->contents_clipper, + new_x + priv->view.x, + new_y + priv->view.y); + + Evas_Coord oy = priv->view.offset.base.y + priv->view.y; + Evas_Coord base_ox = priv->view.x + priv->view.offset.base.x; + + itr = priv->view.items; + itr_end = itr + priv->view.rows; + + for (; itr < itr_end; itr++) { + Evas_Coord ox = base_ox; + Eina_Inlist *lst = *itr; + + EINA_INLIST_FOREACH(lst, it) { + _ewk_tiled_backing_store_item_move(it, ox, oy); + _ewk_tiled_backing_store_item_resize(it, tw, th); + ox += tw; + } + oy += th; + } +} + +void ewk_tiled_backing_store_zoom_weak_smooth_scale_set(Evas_Object *o, Eina_Bool smooth_scale) +{ + PRIV_DATA_GET_OR_RETURN(o, priv); + Eina_Inlist **itr, **itr_end; + + itr = priv->view.items; + itr_end = itr + priv->view.rows; + priv->view.tile.zoom_weak_smooth_scale = smooth_scale; + + for (; itr< itr_end; itr++) { + Ewk_Tiled_Backing_Store_Item *it; + EINA_INLIST_FOREACH(*itr, it) + if (it->tile) + _ewk_tiled_backing_store_item_smooth_scale_set + (it, smooth_scale); + } +} + +Eina_Bool ewk_tiled_backing_store_update(Evas_Object *o, const Eina_Rectangle *update) +{ + PRIV_DATA_GET_OR_RETURN(o, priv, EINA_FALSE); + + if (priv->render.disabled) + return EINA_FALSE; + + return ewk_tile_matrix_update(priv->model.matrix, update, + priv->view.tile.zoom); +} + +void ewk_tiled_backing_store_updates_process_pre_set(Evas_Object *o, void *(*cb)(void *data, Evas_Object *o), const void *data) +{ + PRIV_DATA_GET_OR_RETURN(o, priv); + priv->process.pre_cb = cb; + priv->process.pre_data = (void*)data; +} + +void ewk_tiled_backing_store_updates_process_post_set(Evas_Object *o, void *(*cb)(void *data, void *pre_data, Evas_Object *o), const void *data) +{ + PRIV_DATA_GET_OR_RETURN(o, priv); + priv->process.post_cb = cb; + priv->process.post_data = (void*)data; +} + +void ewk_tiled_backing_store_updates_process(Evas_Object *o) +{ + PRIV_DATA_GET_OR_RETURN(o, priv); + _ewk_tiled_backing_store_updates_process(priv); +} + +void ewk_tiled_backing_store_updates_clear(Evas_Object *o) +{ + PRIV_DATA_GET_OR_RETURN(o, priv); + + ewk_tile_matrix_updates_clear(priv->model.matrix); +} + +void ewk_tiled_backing_store_contents_resize(Evas_Object *o, Evas_Coord width, Evas_Coord height) +{ + PRIV_DATA_GET_OR_RETURN(o, priv); + + if (width == priv->model.width && height == priv->model.height) + return; + + priv->model.width = width; + priv->model.height = height; + priv->changed.model = EINA_TRUE; + + DBG("width,height=%d, %d", width, height); + _ewk_tiled_backing_store_changed(priv); +} + +void ewk_tiled_backing_store_disabled_update_set(Evas_Object *o, Eina_Bool value) +{ + PRIV_DATA_GET_OR_RETURN(o, priv); + + if (value != priv->render.disabled) + priv->render.disabled = value; +} + +void ewk_tiled_backing_store_flush(Evas_Object *o) +{ + PRIV_DATA_GET_OR_RETURN(o, priv); + Ewk_Tile_Unused_Cache *tuc = NULL; + + priv->view.offset.cur.x = 0; + priv->view.offset.cur.y = 0; + priv->view.offset.old.x = 0; + priv->view.offset.old.y = 0; + priv->view.offset.base.x = -priv->view.tile.w; + priv->view.offset.base.y = -priv->view.tile.h; + priv->model.base.col = -1; + priv->model.base.row = -1; + priv->changed.size = EINA_TRUE; + +#ifdef DEBUG_MEM_LEAKS + printf("\nFLUSHED BACKING STORE, STATUS BEFORE DELETING TILE MATRIX:\n"); + _ewk_tiled_backing_store_mem_dbg(priv); +#endif + + _ewk_tiled_backing_store_pre_render_request_flush(priv); + _ewk_tiled_backing_store_tile_dissociate_all(priv); + tuc = ewk_tile_matrix_unused_cache_get(priv->model.matrix); + ewk_tile_unused_cache_clear(tuc); + +#ifdef DEBUG_MEM_LEAKS + printf("\nFLUSHED BACKING STORE, STATUS AFTER RECREATING TILE MATRIX:\n"); + _ewk_tiled_backing_store_mem_dbg(priv); +#endif +} + +Eina_Bool ewk_tiled_backing_store_pre_render_region(Evas_Object *o, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, float zoom) +{ + PRIV_DATA_GET_OR_RETURN(o, priv, EINA_FALSE); + Eina_Tile_Grid_Slicer slicer; + const Eina_Tile_Grid_Info *info; + Evas_Coord tw, th; + Ewk_Tile_Unused_Cache *tuc; + + tw = TILE_SIZE_AT_ZOOM(TILE_W, zoom); + tw = (tw >> 1) << 1; + zoom = TILE_W_ZOOM_AT_SIZE(tw); + /* WARNING: assume reverse zoom is the same for both axis */ + th = TILE_SIZE_AT_ZOOM(TILE_H, zoom); + + if (!eina_tile_grid_slicer_setup(&slicer, x, y, w, h, tw, th)) { + ERR("could not setup grid slicer for %d,%d+%dx%d tile=%dx%d", + x, y, w, h, tw, th); + return EINA_FALSE; + } + + while (eina_tile_grid_slicer_next(&slicer, &info)) { + const unsigned long c = info->col; + const unsigned long r = info->row; + if (!_ewk_tiled_backing_store_pre_render_request_add(priv, c, r, zoom, NULL, PRE_RENDER_PRIORITY_LOW)) + break; + } + + _ewk_tiled_backing_store_item_process_idler_start(priv); + + tuc = ewk_tile_matrix_unused_cache_get(priv->model.matrix); + ewk_tile_unused_cache_lock_area(tuc, x, y, w, h, zoom); + return EINA_TRUE; +} + +Eina_Bool ewk_tiled_backing_store_pre_render_relative_radius(Evas_Object *o, unsigned int n, float zoom) +{ + PRIV_DATA_GET_OR_RETURN(o, priv, EINA_FALSE); + unsigned long start_row, end_row, start_col, end_col, i, j, w, h; + Ewk_Tile_Unused_Cache *tuc; + + INF("priv->model.base.row =%ld, n=%u priv->view.rows=%lu", + priv->model.base.row, n, priv->view.rows); + start_row = (long)priv->model.base.row - n; + start_col = (long)priv->model.base.col - n; + end_row = MIN(priv->model.cur.rows - 1, + priv->model.base.row + priv->view.rows + n - 1); + end_col = MIN(priv->model.cur.cols - 1, + priv->model.base.col + priv->view.cols + n - 1); + + INF("start_row=%lu, end_row=%lu, start_col=%lu, end_col=%lu", + start_row, end_row, start_col, end_col); + + for (i = start_row; i <= end_row; i++) + for (j = start_col; j <= end_col; j++) + if (!_ewk_tiled_backing_store_pre_render_request_add(priv, j, i, zoom, NULL, PRE_RENDER_PRIORITY_LOW)) + goto start_processing; + +start_processing: + _ewk_tiled_backing_store_item_process_idler_start(priv); + + tuc = ewk_tile_matrix_unused_cache_get(priv->model.matrix); + h = (end_row - start_row + 1) * TILE_SIZE_AT_ZOOM(TILE_H, zoom); + w = (end_col - start_col + 1) * TILE_SIZE_AT_ZOOM(TILE_W, zoom); + ewk_tile_unused_cache_lock_area(tuc, + start_col * TILE_SIZE_AT_ZOOM(TILE_W, zoom), + start_row * TILE_SIZE_AT_ZOOM(TILE_H, zoom), w, h, zoom); + + return EINA_TRUE; +} + +void ewk_tiled_backing_store_pre_render_cancel(Evas_Object *o) +{ + PRIV_DATA_GET_OR_RETURN(o, priv); + Ewk_Tile_Unused_Cache *tuc; + + _ewk_tiled_backing_store_pre_render_request_remove_unassociated(priv); + + tuc = ewk_tile_matrix_unused_cache_get(priv->model.matrix); + ewk_tile_unused_cache_unlock_area(tuc); +} + +Eina_Bool ewk_tiled_backing_store_disable_render(Evas_Object *o) +{ + PRIV_DATA_GET_OR_RETURN(o, priv, EINA_FALSE); + return _ewk_tiled_backing_store_disable_render(priv); +} + +Eina_Bool ewk_tiled_backing_store_enable_render(Evas_Object *o) +{ + PRIV_DATA_GET_OR_RETURN(o, priv, EINA_FALSE); + _ewk_tiled_backing_store_changed(priv); + return _ewk_tiled_backing_store_enable_render(priv); +} + +/** + * Set the process_entire_queue flag of the renderer idler. + * + * + * @param o the tiled backing store object + * @param value EINA_TRUE if we want to process all the request of our queue. EINA_FALSE otherwise. + */ +void ewk_tiled_backing_store_process_entire_queue_set(Evas_Object *o, Eina_Bool value) +{ + PRIV_DATA_GET_OR_RETURN(o, priv); + if (priv->render.process_entire_queue != value) + priv->render.process_entire_queue = value; +} diff --git a/WebKit/efl/ewk/ewk_tiled_backing_store.h b/WebKit/efl/ewk/ewk_tiled_backing_store.h new file mode 100644 index 0000000..c8cdbb8 --- /dev/null +++ b/WebKit/efl/ewk/ewk_tiled_backing_store.h @@ -0,0 +1,130 @@ +/* + Copyright (C) 2009-2010 Samsung Electronics + Copyright (C) 2009-2010 ProFUSION embedded systems + + 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 ewk_tiled_backing_store_h +#define ewk_tiled_backing_store_h + +#include "EWebKit.h" + +/* Enable accounting of render time in tile statistics */ +// #define TILE_STATS_ACCOUNT_RENDER_TIME + + +/* If define ewk will do more accounting to check for memory leaks + * try "kill -USR1 $PID" to get instantaneous debug + * try "kill -USR2 $PID" to get instantaneous debug and force flush of cache + */ +#define DEBUG_MEM_LEAKS 1 + +#define TILE_W (256) +#define TILE_H (256) + +#define ZOOM_STEP_MIN (0.01) + +#define TILE_SIZE_AT_ZOOM(SIZE, ZOOM) ((int)roundf((SIZE) * (ZOOM))) +#define TILE_W_ZOOM_AT_SIZE(SIZE) ((float)SIZE / (float)TILE_W) +#define TILE_H_ZOOM_AT_SIZE(SIZE) ((float)SIZE / (float)TILE_H) + +#ifdef __cplusplus +extern "C" { +#endif + +#include <Evas.h> +#include <cairo.h> + +typedef struct _Ewk_Tile Ewk_Tile; +typedef struct _Ewk_Tile_Stats Ewk_Tile_Stats; +typedef struct _Ewk_Tile_Matrix Ewk_Tile_Matrix; + +struct _Ewk_Tile_Stats { + double last_used; /**< time of last use */ +#ifdef TILE_STATS_ACCOUNT_RENDER_TIME + double render_time; /**< amount of time this tile took to render */ +#endif + unsigned int area; /**< cache for (w * h) */ + unsigned int misses; /**< number of times it became dirty but not + * repainted at all since it was not visible. + */ + Eina_Bool full_update:1; /**< tile requires full size update */ +}; + +struct _Ewk_Tile { + EINA_INLIST; /**< sibling tiles at same (i, j) but other zoom */ + Eina_Tiler *updates; /**< updated/dirty areas */ + Ewk_Tile_Stats stats; /**< tile usage statistics */ + unsigned long col, row; /**< tile tile position */ + Evas_Coord x, y; /**< tile coordinate position */ + + /* TODO: does it worth to keep those or create on demand? */ + cairo_surface_t *surface; + cairo_t *cairo; + + /** Never ever change those after tile is created (respect const!) */ + const Evas_Coord w, h; /**< tile size (see TILE_SIZE_AT_ZOOM()) */ + const Evas_Colorspace cspace; /**< colorspace */ + const float zoom; /**< zoom level contents were rendered at */ + const size_t bytes; /**< bytes used in pixels. keep + * before pixels to guarantee + * alignement! + */ + int visible; /**< visibility counter of this tile */ + Evas_Object *image; /**< Evas Image, the tile to be rendered */ + uint8_t *pixels; +}; + +#include "ewk_tiled_matrix.h" +#include "ewk_tiled_model.h" + +/* view */ +EAPI Evas_Object *ewk_tiled_backing_store_add(Evas *e); + +EAPI void ewk_tiled_backing_store_render_cb_set(Evas_Object *o, Eina_Bool (*cb)(void *data, Ewk_Tile *t, const Eina_Rectangle *area), const void *data); + +EAPI Eina_Bool ewk_tiled_backing_store_scroll_full_offset_set(Evas_Object *o, Evas_Coord x, Evas_Coord y); +EAPI Eina_Bool ewk_tiled_backing_store_scroll_full_offset_add(Evas_Object *o, Evas_Coord dx, Evas_Coord dy); +EAPI Eina_Bool ewk_tiled_backing_store_scroll_inner_offset_add(Evas_Object *o, Evas_Coord dx, Evas_Coord dy, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h); + +EAPI Eina_Bool ewk_tiled_backing_store_zoom_set(Evas_Object *o, float *zoom, Evas_Coord cx, Evas_Coord cy, Evas_Coord *offx, Evas_Coord *offy); +EAPI Eina_Bool ewk_tiled_backing_store_zoom_weak_set(Evas_Object *o, float zoom, Evas_Coord cx, Evas_Coord cy); +EAPI void ewk_tiled_backing_store_fix_offsets(Evas_Object *o, Evas_Coord w, Evas_Coord h); +EAPI Eina_Bool ewk_tiled_backing_store_update(Evas_Object *o, const Eina_Rectangle *update); +EAPI void ewk_tiled_backing_store_updates_process_pre_set(Evas_Object *o, void *(*cb)(void *data, Evas_Object *o), const void *data); +EAPI void ewk_tiled_backing_store_updates_process_post_set(Evas_Object *o, void *(*cb)(void *data, void *pre_data, Evas_Object *o), const void *data); +EAPI void ewk_tiled_backing_store_process_entire_queue_set(Evas_Object *o, Eina_Bool value); +EAPI void ewk_tiled_backing_store_updates_process(Evas_Object *o); +EAPI void ewk_tiled_backing_store_updates_clear(Evas_Object *o); +EAPI void ewk_tiled_backing_store_contents_resize(Evas_Object *o, Evas_Coord width, Evas_Coord height); +EAPI void ewk_tiled_backing_store_disabled_update_set(Evas_Object *o, Eina_Bool value); +EAPI void ewk_tiled_backing_store_flush(Evas_Object *o); +EAPI void ewk_tiled_backing_store_enable_scale_set(Evas_Object *o, Eina_Bool value); + +EAPI Ewk_Tile_Unused_Cache *ewk_tiled_backing_store_tile_unused_cache_get(const Evas_Object *o); +EAPI void ewk_tiled_backing_store_tile_unused_cache_set(Evas_Object *o, Ewk_Tile_Unused_Cache *tuc); + +EAPI Eina_Bool ewk_tiled_backing_store_pre_render_region(Evas_Object *o, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, float zoom); +EAPI Eina_Bool ewk_tiled_backing_store_pre_render_relative_radius(Evas_Object *o, unsigned int n, float zoom); +EAPI void ewk_tiled_backing_store_pre_render_cancel(Evas_Object *o); + +EAPI Eina_Bool ewk_tiled_backing_store_disable_render(Evas_Object *o); +EAPI Eina_Bool ewk_tiled_backing_store_enable_render(Evas_Object *o); +#ifdef __cplusplus +} +#endif +#endif // ewk_tiled_backing_store_h diff --git a/WebKit/efl/ewk/ewk_tiled_matrix.c b/WebKit/efl/ewk/ewk_tiled_matrix.c new file mode 100644 index 0000000..fccbfa1 --- /dev/null +++ b/WebKit/efl/ewk/ewk_tiled_matrix.c @@ -0,0 +1,771 @@ +/* + Copyright (C) 2009-2010 Samsung Electronics + Copyright (C) 2009-2010 ProFUSION embedded systems + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "config.h" +#include "ewk_tiled_matrix.h" + +#define _GNU_SOURCE +#include "ewk_tiled_backing_store.h" +#include "ewk_tiled_private.h" +#include <Eina.h> +#include <errno.h> +#include <inttypes.h> +#include <math.h> +#include <stdio.h> // XXX remove me later +#include <stdlib.h> +#include <string.h> + +static const Evas_Coord TILE_MATRIX_BASE_TILE_SIZE = 256; + +struct _Ewk_Tile_Matrix { + Eina_Matrixsparse *matrix; + Ewk_Tile_Unused_Cache *tuc; + Evas_Colorspace cspace; + struct { + void (*cb)(void *data, Ewk_Tile *t, const Eina_Rectangle *update); + void *data; + } render; + unsigned int frozen; + Eina_List *updates; +#ifdef DEBUG_MEM_LEAKS + struct { + struct { + uint64_t allocated, freed; + } tiles, bytes; + } stats; +#endif +}; + +#ifdef DEBUG_MEM_LEAKS +static uint64_t tiles_leaked = 0; +static uint64_t bytes_leaked = 0; +#endif + +/* called when matrixsparse is resized or freed */ +static void _ewk_tile_matrix_cell_free(void *user_data, void *cell_data) +{ + Ewk_Tile_Matrix *tm = user_data; + Eina_Inlist *l = cell_data; + + if (!l) + return; + + ewk_tile_unused_cache_freeze(tm->tuc); + + while (l) { + Ewk_Tile *t = (Ewk_Tile *)l; + l = l->next; + + if (t->updates || t->stats.full_update) + tm->updates = eina_list_remove(tm->updates, t); + + if (t->visible) + ERR("freeing cell that is visible, leaking tile %p", t); + else { + if (!ewk_tile_unused_cache_tile_get(tm->tuc, t)) + ERR("tile %p was not in cache %p? leaking...", t, tm->tuc); + else { + DBG("tile cell does not exist anymore, free it %p", t); + +#ifdef DEBUG_MEM_LEAKS + tm->stats.bytes.freed += t->bytes; + tm->stats.tiles.freed++; +#endif + + ewk_tile_free(t); + } + } + } + + ewk_tile_unused_cache_thaw(tm->tuc); +} + +/* called when cache of unused tile is flushed */ +static void _ewk_tile_matrix_tile_free(void *data, Ewk_Tile *t) +{ + Ewk_Tile_Matrix *tm = data; + Eina_Matrixsparse_Cell *cell; + Eina_Inlist *l, *old; + + if (!eina_matrixsparse_cell_idx_get(tm->matrix, t->row, t->col, &cell)) { + ERR("removing tile %p that was not in the matrix? Leaking...", t); + return; + } + + if (t->updates || t->stats.full_update) + tm->updates = eina_list_remove(tm->updates, t); + + old = eina_matrixsparse_cell_data_get(cell); + l = eina_inlist_remove(old, EINA_INLIST_GET(t)); + if (!l) { + /* set to null to avoid double free */ + eina_matrixsparse_cell_data_replace(cell, NULL, NULL); + eina_matrixsparse_cell_clear(cell); + } else if (old != l) + eina_matrixsparse_cell_data_replace(cell, l, NULL); + + if (EINA_UNLIKELY(!!t->visible)) { + ERR("cache of unused tiles requesting deletion of used tile %p? " + "Leaking...", t); + return; + } + +#ifdef DEBUG_MEM_LEAKS + tm->stats.bytes.freed += t->bytes; + tm->stats.tiles.freed++; +#endif + + ewk_tile_free(t); +} + +/** + * Creates a new matrix of tiles. + * + * The tile matrix is responsible for keeping tiles around and + * providing fast access to them. One can use it to retrieve new or + * existing tiles and give them back, allowing them to be + * freed/replaced by the cache. + * + * @param tuc cache of unused tiles or @c NULL to create one + * automatically. + * @param cols number of columns in the matrix. + * @param rows number of rows in the matrix. + * @param cspace the color space used to create tiles in this matrix. + * @param render_cb function used to render given tile update. + * @param data context to give back to @a render_cb. + * + * @return newly allocated instance on success, @c NULL on failure. + */ +Ewk_Tile_Matrix *ewk_tile_matrix_new(Ewk_Tile_Unused_Cache *tuc, unsigned long cols, unsigned long rows, Evas_Colorspace cspace, void (*render_cb)(void *data, Ewk_Tile *t, const Eina_Rectangle *update), const void *data) +{ + Ewk_Tile_Matrix *tm; + + CALLOC_OR_OOM_RET(tm, sizeof(Ewk_Tile_Matrix), NULL); + + tm->matrix = eina_matrixsparse_new(rows, cols, _ewk_tile_matrix_cell_free, tm); + if (!tm->matrix) { + ERR("could not create sparse matrix."); + free(tm); + return NULL; + } + + if (tuc) + tm->tuc = ewk_tile_unused_cache_ref(tuc); + else { + tm->tuc = ewk_tile_unused_cache_new(40960000); + if (!tm->tuc) { + ERR("no cache of unused tile!"); + eina_matrixsparse_free(tm->matrix); + free(tm); + return NULL; + } + } + + tm->cspace = cspace; + tm->render.cb = render_cb; + tm->render.data = (void *)data; + + return tm; +} + +/** + * Destroys tiles matrix, releasing its resources. + * + * The cache instance is unreferenced, possibly freeing it. + */ +void ewk_tile_matrix_free(Ewk_Tile_Matrix *tm) +{ +#ifdef DEBUG_MEM_LEAKS + uint64_t tiles, bytes; +#endif + + EINA_SAFETY_ON_NULL_RETURN(tm); + ewk_tile_unused_cache_freeze(tm->tuc); + + eina_matrixsparse_free(tm->matrix); + + ewk_tile_unused_cache_thaw(tm->tuc); + ewk_tile_unused_cache_unref(tm->tuc); + +#ifdef DEBUG_MEM_LEAKS + tiles = tm->stats.tiles.allocated - tm->stats.tiles.freed; + bytes = tm->stats.bytes.allocated - tm->stats.bytes.freed; + + tiles_leaked += tiles; + bytes_leaked += bytes; + + if (tiles || bytes) + ERR("tiled matrix leaked: tiles[+%"PRIu64",-%"PRIu64":%"PRIu64"] " + "bytes[+%"PRIu64",-%"PRIu64":%"PRIu64"]", + tm->stats.tiles.allocated, tm->stats.tiles.freed, tiles, + tm->stats.bytes.allocated, tm->stats.bytes.freed, bytes); + else if (tiles_leaked || bytes_leaked) + WRN("tiled matrix had no leaks: tiles[+%"PRIu64",-%"PRIu64"] " + "bytes[+%"PRIu64",-%"PRIu64"], but some other leaked " + "%"PRIu64" tiles (%"PRIu64" bytes)", + tm->stats.tiles.allocated, tm->stats.tiles.freed, + tm->stats.bytes.allocated, tm->stats.bytes.freed, + tiles_leaked, bytes_leaked); + else + INF("tiled matrix had no leaks: tiles[+%"PRIu64",-%"PRIu64"] " + "bytes[+%"PRIu64",-%"PRIu64"]", + tm->stats.tiles.allocated, tm->stats.tiles.freed, + tm->stats.bytes.allocated, tm->stats.bytes.freed); +#endif + + free(tm); +} + +/** + * Resize matrix to given number of rows and columns. + */ +void ewk_tile_matrix_resize(Ewk_Tile_Matrix *tm, unsigned long cols, unsigned long rows) +{ + EINA_SAFETY_ON_NULL_RETURN(tm); + eina_matrixsparse_size_set(tm->matrix, rows, cols); +} + +/** + * Get the cache of unused tiles in use by given matrix. + * + * No reference is taken to the cache. + */ +Ewk_Tile_Unused_Cache *ewk_tile_matrix_unused_cache_get(const Ewk_Tile_Matrix *tm) +{ + EINA_SAFETY_ON_NULL_RETURN_VAL(tm, NULL); + return tm->tuc; +} + +/** + * Get the exact tile for the given position and zoom. + * + * If the tile was unused then it's removed from the cache. + * + * After usage, please give it back using + * ewk_tile_matrix_tile_put(). If you just want to check if it exists, + * then use ewk_tile_matrix_tile_exact_exists(). + * + * @param tm the tile matrix to get tile from. + * @param col the column number. + * @param row the row number. + * @param zoom the exact zoom to use. + * + * @return The tile instance or @c NULL if none is found. If the tile + * was in the unused cache it will be @b removed (thus + * considered used) and one should give it back with + * ewk_tile_matrix_tile_put() afterwards. + * + * @see ewk_tile_matrix_tile_nearest_get() + * @see ewk_tile_matrix_tile_exact_get() + */ +Ewk_Tile *ewk_tile_matrix_tile_exact_get(Ewk_Tile_Matrix *tm, unsigned long col, unsigned int row, float zoom) +{ + Ewk_Tile *t, *item, *item_found = NULL; + Eina_Inlist *inl; + + t = eina_matrixsparse_data_idx_get(tm->matrix, row, col); + if (!t) + return NULL; + + if (t->zoom == zoom) + goto end; + + EINA_INLIST_FOREACH(EINA_INLIST_GET(t), item) { + if (item->zoom != zoom) + continue; + item_found = item; + break; + } + + if (!item_found) + return NULL; + + inl = eina_inlist_promote(EINA_INLIST_GET(t), EINA_INLIST_GET(item_found)); + eina_matrixsparse_data_idx_replace(tm->matrix, row, col, inl, NULL); + + end: + if (!t->visible) { + if (!ewk_tile_unused_cache_tile_get(tm->tuc, t)) + WRN("Ewk_Tile was unused but not in cache? bug!"); + } + + return t; +} + +/** + * Checks if tile of given zoom exists in matrix. + * + * @param tm the tile matrix to check tile existence. + * @param col the column number. + * @param row the row number. + * @param zoom the exact zoom to query. + * + * @return @c EINA_TRUE if found, @c EINA_FALSE otherwise. + * + * @see ewk_tile_matrix_tile_exact_get() + */ +Eina_Bool ewk_tile_matrix_tile_exact_exists(Ewk_Tile_Matrix *tm, unsigned long col, unsigned int row, float zoom) +{ + Ewk_Tile *t, *item; + + t = eina_matrixsparse_data_idx_get(tm->matrix, row, col); + if (!t) + return EINA_FALSE; + + EINA_INLIST_FOREACH(EINA_INLIST_GET(t), item) { + if (item->zoom == zoom) + return EINA_TRUE; + } + + return EINA_FALSE; +} + +/** + * Get the nearest tile for given position and zoom. + * + * The nearest tile is the one at the given position but with the + * closest zoom, this being the division of the tile zoom by the + * desired zoom, the closest to 1.0 gets it. + * + * If the tile was unused then it's removed from the cache. + * + * After usage, please give it back using ewk_tile_matrix_tile_put(). + * + * @param tm the tile matrix to get tile from. + * @param col the column number. + * @param row the row number. + * @param zoom the exact zoom to use. + * + * @return The tile instance or @c NULL if none is found. If the tile + * was in the unused cache it will be @b removed (thus + * considered used) and one should give it back with + * ewk_tile_matrix_tile_put() afterwards. + */ +Ewk_Tile *ewk_tile_matrix_tile_nearest_get(Ewk_Tile_Matrix *tm, unsigned long col, unsigned int row, float zoom) +{ + Ewk_Tile *t, *item, *item_found = NULL; + Eina_Inlist *inl; + float zoom_found = 0; + + EINA_SAFETY_ON_NULL_RETURN_VAL(tm, NULL); + EINA_SAFETY_ON_FALSE_RETURN_VAL(zoom > 0.0, NULL); + + t = eina_matrixsparse_data_idx_get(tm->matrix, row, col); + if (!t) + return NULL; + + if (t->zoom == zoom) { + item_found = t; + goto end; + } + + EINA_INLIST_FOREACH(EINA_INLIST_GET(t), item) { + float cur_zoom = item->zoom; + + if (cur_zoom == zoom) { + item_found = item; + break; + } + + if (cur_zoom > zoom) + cur_zoom = zoom / cur_zoom; + else + cur_zoom = cur_zoom / zoom; + + if (cur_zoom > zoom_found) { + item_found = item; + zoom_found = cur_zoom; + } + } + + if (!item_found) + return NULL; + + inl = eina_inlist_promote(EINA_INLIST_GET(t), EINA_INLIST_GET(item_found)); + eina_matrixsparse_data_idx_replace(tm->matrix, row, col, inl, NULL); + + end: + if (!item_found->visible) { + if (!ewk_tile_unused_cache_tile_get(tm->tuc, item_found)) + WRN("Ewk_Tile was unused but not in cache? bug!"); + } + + return item_found; +} + +/** + * Create a new tile at given position and zoom level in the matrix. + * + * The newly created tile is considered in use and not put into cache + * of unused tiles. After it is used one should call + * ewk_tile_matrix_tile_put() to give it back to matrix. + * + * @param tm the tile matrix to create tile on. + * @param col the column number. + * @param row the row number. + * @param zoom the level to create tile, used to determine tile size. + */ +Ewk_Tile *ewk_tile_matrix_tile_new(Ewk_Tile_Matrix *tm, Evas *evas, unsigned long col, unsigned int row, float zoom) +{ + Evas_Coord s; + Eina_Inlist *old; + Ewk_Tile *t; + + EINA_SAFETY_ON_NULL_RETURN_VAL(tm, NULL); + EINA_SAFETY_ON_FALSE_RETURN_VAL(zoom > 0.0, NULL); + + s = TILE_SIZE_AT_ZOOM(TILE_MATRIX_BASE_TILE_SIZE, zoom); + zoom = (float)s / (float)TILE_MATRIX_BASE_TILE_SIZE; + + t = ewk_tile_new(evas, s, s, zoom, tm->cspace); + if (!t) { + ERR("could not create tile %dx%d at %f, cspace=%d", + s, s, (double)zoom, tm->cspace); + return NULL; + } + + old = eina_matrixsparse_data_idx_get(tm->matrix, row, col); + old = eina_inlist_prepend(old, EINA_INLIST_GET(t)); + if (!eina_matrixsparse_data_idx_replace(tm->matrix, row, col, t, NULL)) { + ERR("could not set matrix cell, row/col outside matrix dimensions!"); + ewk_tile_free(t); + return NULL; + } + + t->col = col; + t->row = row; + t->x = col * s; + t->y = row * s; + + cairo_translate(t->cairo, -t->x, -t->y); + + t->stats.full_update = EINA_TRUE; + tm->updates = eina_list_append(tm->updates, t); + +#ifdef DEBUG_MEM_LEAKS + tm->stats.bytes.allocated += t->bytes; + tm->stats.tiles.allocated++; +#endif + + return t; +} + +/** + * Gives back the tile to the tile matrix. + * + * This will report the tile is no longer in use by the one that got + * it with ewk_tile_matrix_tile_nearest_get() or + * ewk_tile_matrix_tile_exact_get(). + * + * Any previous reference to tile should be released + * (ewk_tile_hide()) before calling this function, so it will + * be known if it is not visibile anymore and thus can be put into the + * unused cache. + * + * @param tm the tile matrix to return tile to. + * @param t the tile instance to return, must @b not be @c NULL. + * @param last_used time in which tile was last used. + * + * @return #EINA_TRUE on success or #EINA_FALSE on failure. + */ +Eina_Bool ewk_tile_matrix_tile_put(Ewk_Tile_Matrix *tm, Ewk_Tile *t, double last_used) +{ + EINA_SAFETY_ON_NULL_RETURN_VAL(tm, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(t, EINA_FALSE); + + if (t->visible) + return EINA_TRUE; + + t->stats.last_used = last_used; + return ewk_tile_unused_cache_tile_put(tm->tuc, t, _ewk_tile_matrix_tile_free, tm); +} + +Eina_Bool ewk_tile_matrix_tile_update(Ewk_Tile_Matrix *tm, unsigned long col, unsigned int row, const Eina_Rectangle *update) +{ + Ewk_Tile *l, *t; + Eina_Rectangle new_update; + EINA_SAFETY_ON_NULL_RETURN_VAL(tm, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(update, EINA_FALSE); + + memcpy(&new_update, update, sizeof(new_update)); + // check update is valid, otherwise return EINA_FALSE + if (update->x < 0 || update->y < 0 || update->w <= 0 || update->h <= 0) { + ERR("invalid update region."); + return EINA_FALSE; + } + + if (update->x + update->w - 1 >= TILE_MATRIX_BASE_TILE_SIZE) + new_update.w = TILE_MATRIX_BASE_TILE_SIZE - update->x; + if (update->y + update->h - 1 >= TILE_MATRIX_BASE_TILE_SIZE) + new_update.h = TILE_MATRIX_BASE_TILE_SIZE - update->y; + + l = eina_matrixsparse_data_idx_get(tm->matrix, row, col); + + if (!l) + return EINA_TRUE; + + EINA_INLIST_FOREACH(EINA_INLIST_GET(l), t) { + if (!t->updates && !t->stats.full_update) + tm->updates = eina_list_append(tm->updates, t); + new_update.x = roundf(t->zoom * new_update.x); + new_update.y = roundf(t->zoom * new_update.y); + new_update.w = roundf(t->zoom * new_update.w); + new_update.h = roundf(t->zoom * new_update.h); + ewk_tile_update_area(t, &new_update); + } + + return EINA_TRUE; +} + +Eina_Bool ewk_tile_matrix_tile_update_full(Ewk_Tile_Matrix *tm, unsigned long col, unsigned int row) +{ + Ewk_Tile *l, *t; + Eina_Matrixsparse_Cell *cell; + EINA_SAFETY_ON_NULL_RETURN_VAL(tm, EINA_FALSE); + + if (!eina_matrixsparse_cell_idx_get(tm->matrix, row, col, &cell)) + return EINA_FALSE; + + if (!cell) + return EINA_TRUE; + + l = eina_matrixsparse_cell_data_get(cell); + if (!l) { + CRITICAL("matrix cell with no tile!"); + return EINA_TRUE; + } + + EINA_INLIST_FOREACH(EINA_INLIST_GET(l), t) { + if (!t->updates && !t->stats.full_update) + tm->updates = eina_list_append(tm->updates, t); + ewk_tile_update_full(t); + } + + return EINA_TRUE; +} + +void ewk_tile_matrix_tile_updates_clear(Ewk_Tile_Matrix *tm, Ewk_Tile *t) +{ + EINA_SAFETY_ON_NULL_RETURN(tm); + if (!t->updates && !t->stats.full_update) + return; + ewk_tile_updates_clear(t); + tm->updates = eina_list_remove(tm->updates, t); +} + +static Eina_Bool _ewk_tile_matrix_slicer_setup(Ewk_Tile_Matrix *tm, const Eina_Rectangle *area, float zoom, Eina_Tile_Grid_Slicer *slicer) +{ + unsigned long rows, cols; + Evas_Coord x, y, w, h, tw, th; + + if (area->w <= 0 || area->h <= 0) { + WRN("invalid area region: %d,%d+%dx%d.", + area->x, area->y, area->w, area->h); + return EINA_FALSE; + } + + x = area->x; + y = area->y; + w = area->w; + h = area->h; + + tw = TILE_SIZE_AT_ZOOM(TILE_W, zoom); + th = TILE_SIZE_AT_ZOOM(TILE_H, zoom); + + // cropping area region to fit matrix + eina_matrixsparse_size_get(tm->matrix, &rows, &cols); + if (x < 0) { + w += x; + x = 0; + } + if (y < 0) { + h += y; + y = 0; + } + + if (y + h - 1 > rows * th) + h = rows * th - y; + if (x + w - 1 > cols * tw) + w = cols * tw - x; + + return eina_tile_grid_slicer_setup(slicer, x, y, w, h, tw, th); +} + + +Eina_Bool ewk_tile_matrix_update(Ewk_Tile_Matrix *tm, const Eina_Rectangle *update, float zoom) +{ + const Eina_Tile_Grid_Info *info; + Eina_Tile_Grid_Slicer slicer; + EINA_SAFETY_ON_NULL_RETURN_VAL(tm, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(update, EINA_FALSE); + + if (update->w < 1 || update->h < 1) { + DBG("Why we get updates with empty areas? %d,%d+%dx%d at zoom %f", + update->x, update->y, update->w, update->h, zoom); + return EINA_TRUE; + } + + if (!_ewk_tile_matrix_slicer_setup(tm, update, zoom, &slicer)) { + ERR("Could not setup slicer for update %d,%d+%dx%d at zoom %f", + update->x, update->y, update->w, update->h, zoom); + return EINA_FALSE; + } + + while (eina_tile_grid_slicer_next(&slicer, &info)) { + unsigned long col, row; + Ewk_Tile *l, *t; + col = info->col; + row = info->row; + + l = eina_matrixsparse_data_idx_get(tm->matrix, row, col); + if (!l) + continue; + + EINA_INLIST_FOREACH(EINA_INLIST_GET(l), t) { + if (!t->updates && !t->stats.full_update) + tm->updates = eina_list_append(tm->updates, t); + if (info->full) + ewk_tile_update_full(t); + else { + if (t->zoom != zoom) + ewk_tile_update_full(t); + else + ewk_tile_update_area(t, &info->rect); + } + } + } + + + return EINA_TRUE; +} + +void ewk_tile_matrix_updates_process(Ewk_Tile_Matrix *tm) +{ + Eina_List *l, *l_next; + Ewk_Tile *t; + EINA_SAFETY_ON_NULL_RETURN(tm); + + // process updates, unflag tiles + EINA_LIST_FOREACH_SAFE(tm->updates, l, l_next, t) { + ewk_tile_updates_process(t, tm->render.cb, tm->render.data); + if (t->visible) { + ewk_tile_updates_clear(t); + tm->updates = eina_list_remove_list(tm->updates, l); + } + } +} + +void ewk_tile_matrix_updates_clear(Ewk_Tile_Matrix *tm) +{ + Ewk_Tile *t; + EINA_SAFETY_ON_NULL_RETURN(tm); + + EINA_LIST_FREE(tm->updates, t) + ewk_tile_updates_clear(t); + tm->updates = NULL; +} + +// remove me later! +void ewk_tile_matrix_dbg(const Ewk_Tile_Matrix *tm) +{ + Eina_Iterator *it = eina_matrixsparse_iterator_complete_new(tm->matrix); + Eina_Matrixsparse_Cell *cell; + Eina_Bool last_empty = EINA_FALSE; + +#ifdef DEBUG_MEM_LEAKS + printf("Ewk_Tile Matrix: tiles[+%"PRIu64",-%"PRIu64":%"PRIu64"] " + "bytes[+%"PRIu64",-%"PRIu64":%"PRIu64"]\n", + tm->stats.tiles.allocated, tm->stats.tiles.freed, + tm->stats.tiles.allocated - tm->stats.tiles.freed, + tm->stats.bytes.allocated, tm->stats.bytes.freed, + tm->stats.bytes.allocated - tm->stats.bytes.freed); +#else + printf("Ewk_Tile Matrix:\n"); +#endif + + EINA_ITERATOR_FOREACH(it, cell) { + unsigned long row, col; + Eina_Inlist *l; + eina_matrixsparse_cell_position_get(cell, &row, &col); + l = eina_matrixsparse_cell_data_get(cell); + + if (!l) { + if (!last_empty) { + last_empty = EINA_TRUE; + printf("Empty:"); + } + printf(" [%lu,%lu]", col, row); + } else { + if (last_empty) { + last_empty = EINA_FALSE; + printf("\n"); + } + Ewk_Tile *t; + + printf("%3lu,%3lu %10p:", col, row, l); + EINA_INLIST_FOREACH(l, t) + printf(" [%3lu,%3lu + %dx%d @ %0.3f]%c", + t->col, t->row, t->w, t->h, t->zoom, + t->visible ? '*': ' '); + printf("\n"); + } + } + if (last_empty) + printf("\n"); + eina_iterator_free(it); + + ewk_tile_unused_cache_dbg(tm->tuc); +} + +/** + * Freeze matrix to not do maintenance tasks. + * + * Maintenance tasks optimize usage, but maybe we know we should hold + * on them until we do the last operation, in this case we freeze + * while operating and then thaw when we're done. + * + * @see ewk_tile_matrix_thaw() + */ +void ewk_tile_matrix_freeze(Ewk_Tile_Matrix *tm) +{ + EINA_SAFETY_ON_NULL_RETURN(tm); + if (!tm->frozen) + ewk_tile_unused_cache_freeze(tm->tuc); + tm->frozen++; +} + +/** + * Unfreezes maintenance tasks. + * + * If this is the last counterpart of freeze, then maintenance tasks + * will run immediately. + */ +void ewk_tile_matrix_thaw(Ewk_Tile_Matrix *tm) +{ + EINA_SAFETY_ON_NULL_RETURN(tm); + if (!tm->frozen) { + ERR("thawing more than freezing!"); + return; + } + + tm->frozen--; + if (!tm->frozen) + ewk_tile_unused_cache_thaw(tm->tuc); +} diff --git a/WebKit/efl/ewk/ewk_tiled_matrix.h b/WebKit/efl/ewk/ewk_tiled_matrix.h new file mode 100644 index 0000000..07b8612 --- /dev/null +++ b/WebKit/efl/ewk/ewk_tiled_matrix.h @@ -0,0 +1,60 @@ +/* + Copyright (C) 2009-2010 Samsung Electronics + Copyright (C) 2009-2010 ProFUSION embedded systems + + 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 ewk_tiled_matrix_h +#define ewk_tiled_matrix_h + +#include "ewk_eapi.h" +#include "ewk_tiled_backing_store.h" + +#include <Evas.h> + +/* matrix of tiles */ +EAPI Ewk_Tile_Matrix *ewk_tile_matrix_new(Ewk_Tile_Unused_Cache *tuc, unsigned long cols, unsigned long rows, Evas_Colorspace cspace, void (*render_cb)(void *data, Ewk_Tile *t, const Eina_Rectangle *update), const void *data); +EAPI void ewk_tile_matrix_free(Ewk_Tile_Matrix *tm); + +EAPI void ewk_tile_matrix_resize(Ewk_Tile_Matrix *tm, unsigned long cols, unsigned long rows); + +EAPI Ewk_Tile_Unused_Cache *ewk_tile_matrix_unused_cache_get(const Ewk_Tile_Matrix *tm); + +EAPI Ewk_Tile *ewk_tile_matrix_tile_exact_get(Ewk_Tile_Matrix *tm, unsigned long col, unsigned int row, float zoom); +EAPI Eina_Bool ewk_tile_matrix_tile_exact_exists(Ewk_Tile_Matrix *tm, unsigned long col, unsigned int row, float zoom); +EAPI Ewk_Tile *ewk_tile_matrix_tile_nearest_get(Ewk_Tile_Matrix *tm, unsigned long col, unsigned int row, float zoom); +EAPI Ewk_Tile *ewk_tile_matrix_tile_new(Ewk_Tile_Matrix *tm, Evas *evas, unsigned long col, unsigned int row, float zoom); +EAPI Eina_Bool ewk_tile_matrix_tile_put(Ewk_Tile_Matrix *tm, Ewk_Tile *t, double last_used); + +EAPI Eina_Bool ewk_tile_matrix_tile_update(Ewk_Tile_Matrix *tm, unsigned long col, unsigned int row, const Eina_Rectangle *update); +EAPI Eina_Bool ewk_tile_matrix_tile_update_full(Ewk_Tile_Matrix *tm, unsigned long col, unsigned int row); +EAPI void ewk_tile_matrix_tile_updates_clear(Ewk_Tile_Matrix *tm, Ewk_Tile *t); + +EAPI Eina_Bool ewk_tile_matrix_update(Ewk_Tile_Matrix *tm, const Eina_Rectangle *update, float zoom); +EAPI void ewk_tile_matrix_updates_process(Ewk_Tile_Matrix *tm); +EAPI void ewk_tile_matrix_updates_clear(Ewk_Tile_Matrix *tm); +EAPI void ewk_tile_matrix_freeze(Ewk_Tile_Matrix *tm); +EAPI void ewk_tile_matrix_thaw(Ewk_Tile_Matrix *tm); + +// remove me! + void ewk_tile_matrix_dbg(const Ewk_Tile_Matrix *tm); + void ewk_tile_unused_cache_dbg(const Ewk_Tile_Unused_Cache *tuc); + void ewk_tile_accounting_dbg(void); + + +#endif // ewk_tiled_matrix_h + diff --git a/WebKit/efl/ewk/ewk_tiled_model.c b/WebKit/efl/ewk/ewk_tiled_model.c new file mode 100644 index 0000000..641b93e --- /dev/null +++ b/WebKit/efl/ewk/ewk_tiled_model.c @@ -0,0 +1,905 @@ +/* + Copyright (C) 2009-2010 Samsung Electronics + Copyright (C) 2009-2010 ProFUSION embedded systems + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "config.h" +#include "ewk_tiled_model.h" + +#define _GNU_SOURCE +#include "ewk_tiled_backing_store.h" +#include "ewk_tiled_private.h" +#include <Eina.h> +#include <eina_safety_checks.h> +#include <errno.h> +#include <inttypes.h> +#include <stdio.h> // XXX REMOVE ME LATER +#include <stdlib.h> +#include <string.h> + +#ifdef TILE_STATS_ACCOUNT_RENDER_TIME +#include <sys/time.h> +#endif + +#ifndef CAIRO_FORMAT_RGB16_565 +#define CAIRO_FORMAT_RGB16_565 4 +#endif + +#define IDX(col, row, rowspan) (col + (row * rowspan)) +#define MIN(a, b) ((a < b) ? a : b) +#define MAX(a, b) ((a > b) ? a : b) + +#ifdef DEBUG_MEM_LEAKS +static uint64_t tiles_allocated = 0; +static uint64_t tiles_freed = 0; +static uint64_t bytes_allocated = 0; +static uint64_t bytes_freed = 0; + +struct tile_account { + Evas_Coord size; + struct { + uint64_t allocated; + uint64_t freed; + } tiles, bytes; +}; + +static size_t accounting_len = 0; +static struct tile_account *accounting = NULL; + +static inline struct tile_account *_ewk_tile_account_get(const Ewk_Tile *t) +{ + struct tile_account *acc; + size_t i; + + for (i = 0; i < accounting_len; i++) { + if (accounting[i].size == t->w) + return accounting + i; + } + + i = (accounting_len + 1) * sizeof(struct tile_account); + REALLOC_OR_OOM_RET(accounting, i, NULL); + + acc = accounting + accounting_len; + acc->size = t->w; + acc->tiles.allocated = 0; + acc->tiles.freed = 0; + acc->bytes.allocated = 0; + acc->bytes.freed = 0; + + accounting_len++; + + return acc; +} + +static inline void _ewk_tile_account_allocated(const Ewk_Tile *t) +{ + struct tile_account *acc = _ewk_tile_account_get(t); + if (!acc) + return; + acc->bytes.allocated += t->bytes; + acc->tiles.allocated++; + + bytes_allocated += t->bytes; + tiles_allocated++; +} + +static inline void _ewk_tile_account_freed(const Ewk_Tile *t) +{ + struct tile_account *acc = _ewk_tile_account_get(t); + if (!acc) + return; + + acc->bytes.freed += t->bytes; + acc->tiles.freed++; + + bytes_freed += t->bytes; + tiles_freed++; +} + +void ewk_tile_accounting_dbg(void) +{ + struct tile_account *acc; + struct tile_account *acc_end; + + printf("TILE BALANCE: tiles[+%"PRIu64",-%"PRIu64":%"PRIu64"] " + "bytes[+%"PRIu64",-%"PRIu64":%"PRIu64"]\n", + tiles_allocated, tiles_freed, tiles_allocated - tiles_freed, + bytes_allocated, bytes_freed, bytes_allocated - bytes_freed); + + if (!accounting_len) + return; + + acc = accounting; + acc_end = acc + accounting_len; + printf("BEGIN: TILE BALANCE DETAILS (TO THIS MOMENT!):\n"); + for (; acc < acc_end; acc++) { + uint64_t tiles, bytes; + + tiles = acc->tiles.allocated - acc->tiles.freed; + bytes = acc->bytes.allocated - acc->bytes.freed; + + printf(" %4d: tiles[+%4"PRIu64",-%4"PRIu64":%4"PRIu64"] " + "bytes[+%8"PRIu64",-%8"PRIu64":%8"PRIu64"]%s\n", + acc->size, + acc->tiles.allocated, acc->tiles.freed, tiles, + acc->bytes.allocated, acc->bytes.freed, bytes, + (bytes || tiles) ? " POSSIBLE LEAK" : ""); + } + printf("END: TILE BALANCE DETAILS (TO THIS MOMENT!):\n"); +} +#else + +static inline void _ewk_tile_account_allocated(const Ewk_Tile *t) { } +static inline void _ewk_tile_account_freed(const Ewk_Tile *t) { } + +void ewk_tile_accounting_dbg(void) +{ + printf("compile webkit with DEBUG_MEM_LEAKS defined!\n"); +} +#endif + +static inline void _ewk_tile_paint_rgb888(Ewk_Tile *t, uint8_t r, uint8_t g, uint8_t b) +{ + uint32_t *dst32, *dst32_end, c1; + uint64_t *dst64, *dst64_end, c2; + + c1 = 0xff000000 | ((uint32_t)r << 16) | ((uint32_t)g << 8) | b; + c2 = ((uint64_t)c1 << 32) | c1; + + dst64 = (uint64_t *)t->pixels; + dst64_end = dst64 + ((t->bytes / 8) & ~7); + for (; dst64 < dst64_end; dst64 += 8) { + /* TODO: ARM add pld or NEON instructions */ + dst64[0] = c2; + dst64[1] = c2; + dst64[2] = c2; + dst64[3] = c2; + dst64[4] = c2; + dst64[5] = c2; + dst64[6] = c2; + dst64[7] = c2; + } + + dst32 = (uint32_t *)dst64_end; + dst32_end = (uint32_t *)(t->pixels + t->bytes); + for (; dst32 < dst32_end; dst32++) + *dst32 = c1; +} + +static inline void _ewk_tile_paint_rgb565(Ewk_Tile *t, uint8_t r, uint8_t g, uint8_t b) +{ + uint16_t *dst16, *dst16_end, c1; + uint64_t *dst64, *dst64_end, c2; + + c1 = ((((r >> 3) & 0x1f) << 11) | + (((g >> 2) & 0x3f) << 5) | + ((b >> 3) & 0x1f)); + + c2 = (((uint64_t)c1 << 48) | ((uint64_t)c1 << 32) | + ((uint64_t)c1 << 16) | c1); + + dst64 = (uint64_t *)t->pixels; + dst64_end = dst64 + ((t->bytes / 8) & ~7); + for (; dst64 < dst64_end; dst64 += 8) { + /* TODO: ARM add pld or NEON instructions */ + dst64[0] = c2; + dst64[1] = c2; + dst64[2] = c2; + dst64[3] = c2; + dst64[4] = c2; + dst64[5] = c2; + dst64[6] = c2; + dst64[7] = c2; + } + + dst16 = (uint16_t *)dst16_end; + dst16_end = (uint16_t *)(t->pixels + t->bytes); + for (; dst16 < dst16_end; dst16++) + *dst16 = c1; +} + +static inline void _ewk_tile_paint(Ewk_Tile *t, uint8_t r, uint8_t g, uint8_t b) +{ + if (t->cspace == EVAS_COLORSPACE_ARGB8888) + _ewk_tile_paint_rgb888(t, r, g, b); + else if (t->cspace == EVAS_COLORSPACE_RGB565_A5P) + _ewk_tile_paint_rgb565(t, r, g, b); + else + ERR("unknown color space: %d", t->cspace); +} + +/** + * Create a new tile of given size, zoom level and colorspace. + * + * After created these properties are immutable as they're the basic + * characteristic of the tile and any change will lead to invalid + * memory access. + * + * Other members are of free-access and no getters/setters are + * provided in orderr to avoid expensive operations on those, however + * some are better manipulated with provided functions, such as + * ewk_tile_show() and ewk_tile_hide() to change + * @c visible or ewk_tile_update_full(), ewk_tile_update_area(), + * ewk_tile_updates_clear() to change @c stats.misses, + * @c stats.full_update and @c updates. + */ +Ewk_Tile *ewk_tile_new(Evas *evas, Evas_Coord w, Evas_Coord h, float zoom, Evas_Colorspace cspace) +{ + Eina_Inlist *l; + Evas_Coord *ec; + Evas_Colorspace *ecs; + float *f; + size_t *s; + Ewk_Tile *t; + unsigned int area; + size_t bytes; + cairo_format_t format; + cairo_status_t status; + int stride; + + area = w * h; + + if (cspace == EVAS_COLORSPACE_ARGB8888) { + bytes = area * 4; + stride = w * 4; + format = CAIRO_FORMAT_RGB24; + } else if (cspace == EVAS_COLORSPACE_RGB565_A5P) { + bytes = area * 2; + stride = w * 2; + format = CAIRO_FORMAT_RGB16_565; + } else { + ERR("unknown color space: %d", cspace); + return NULL; + } + + DBG("size: %dx%d (%d), zoom: %f, cspace=%d", + w, h, area, (double)zoom, cspace); + + MALLOC_OR_OOM_RET(t, sizeof(Ewk_Tile), NULL); + t->image = evas_object_image_add(evas); + + l = EINA_INLIST_GET(t); + l->prev = NULL; + l->next = NULL; + + t->visible = 0; + t->updates = NULL; + + memset(&t->stats, 0, sizeof(Ewk_Tile_Stats)); + t->stats.area = area; + + /* ugly, but let's avoid at all costs having users to modify those */ + ec = (Evas_Coord *)&t->w; + *ec = w; + + ec = (Evas_Coord *)&t->h; + *ec = h; + + ecs = (Evas_Colorspace *)&t->cspace; + *ecs = cspace; + + f = (float *)&t->zoom; + *f = zoom; + + s = (size_t *)&t->bytes; + *s = bytes; + + evas_object_image_size_set(t->image, t->w, t->h); + evas_object_image_colorspace_set(t->image, t->cspace); + t->pixels = evas_object_image_data_get(t->image, EINA_TRUE); + t->surface = cairo_image_surface_create_for_data + (t->pixels, format, w, h, stride); + status = cairo_surface_status(t->surface); + if (status != CAIRO_STATUS_SUCCESS) { + ERR("failed to create cairo surface: %s", + cairo_status_to_string(status)); + free(t); + return NULL; + } + + t->cairo = cairo_create(t->surface); + status = cairo_status(t->cairo); + if (status != CAIRO_STATUS_SUCCESS) { + ERR("failed to create cairo: %s", cairo_status_to_string(status)); + cairo_surface_destroy(t->surface); + evas_object_del(t->image); + free(t); + return NULL; + } + + _ewk_tile_account_allocated(t); + + return t; +} + +/** + * Free tile memory. + */ +void ewk_tile_free(Ewk_Tile *t) +{ + _ewk_tile_account_freed(t); + + if (t->updates) + eina_tiler_free(t->updates); + + cairo_surface_destroy(t->surface); + cairo_destroy(t->cairo); + evas_object_del(t->image); + free(t); +} + +/** + * Make the tile visible, incrementing its counter. + */ +void ewk_tile_show(Ewk_Tile *t) +{ + t->visible++; + evas_object_show(t->image); +} + +/** + * Decrement the visibility counter, making it invisible if necessary. + */ +void ewk_tile_hide(Ewk_Tile *t) +{ + t->visible--; + if (!t->visible) + evas_object_hide(t->image); +} + +/** + * Returns EINA_TRUE if the tile is visible, EINA_FALSE otherwise. + */ +Eina_Bool ewk_tile_visible_get(Ewk_Tile *t) +{ + return !!t->visible; +} + +/** + * Mark whole tile as dirty and requiring update. + */ +void ewk_tile_update_full(Ewk_Tile *t) +{ + /* TODO: list of tiles pending updates? */ + t->stats.misses++; + + if (!t->stats.full_update) { + t->stats.full_update = EINA_TRUE; + if (t->updates) { + eina_tiler_free(t->updates); + t->updates = NULL; + } + } +} + +/** + * Mark the specific subarea as dirty and requiring update. + */ +void ewk_tile_update_area(Ewk_Tile *t, const Eina_Rectangle *r) +{ + /* TODO: list of tiles pending updates? */ + t->stats.misses++; + + if (t->stats.full_update) + return; + + if (!r->x && !r->y && r->w == t->w && r->h == t->h) { + t->stats.full_update = EINA_TRUE; + if (t->updates) { + eina_tiler_free(t->updates); + t->updates = NULL; + } + return; + } + + if (!t->updates) { + t->updates = eina_tiler_new(t->w, t->h); + if (!t->updates) { + CRITICAL("could not create eina_tiler %dx%d.", t->w, t->h); + return; + } + } + + eina_tiler_rect_add(t->updates, r); +} + +/** + * For each updated region, call the given function. + * + * This will not change the tile statistics or clear the processed + * updates, use ewk_tile_updates_clear() for that. + */ +void ewk_tile_updates_process(Ewk_Tile *t, void (*cb)(void *data, Ewk_Tile *t, const Eina_Rectangle *update), const void *data) +{ + if (t->stats.full_update) { + Eina_Rectangle r; + r.x = 0; + r.y = 0; + r.w = t->w; + r.h = t->h; +#ifdef TILE_STATS_ACCOUNT_RENDER_TIME + struct timeval timev; + double render_start; + gettimeofday(&timev, NULL); + render_start = (double)timev.tv_sec + + (((double)timev.tv_usec) / 1000000); +#endif + cb((void *)data, t, &r); +#ifdef TILE_STATS_ACCOUNT_RENDER_TIME + gettimeofday(&timev, NULL); + t->stats.render_time = (double)timev.tv_sec + + (((double)timev.tv_usec) / 1000000) - render_start; +#endif + } else if (t->updates) { + Eina_Iterator *itr = eina_tiler_iterator_new(t->updates); + Eina_Rectangle r = {0, 0, 0, 0}; + if (!itr) { + CRITICAL("could not create tiler iterator!"); + return; + } + EINA_ITERATOR_FOREACH(itr, r) + cb((void *)data, t, &r); + eina_iterator_free(itr); + } +} + +/** + * Clear all updates in region, if any. + * + * This will change the tile statistics, specially zero stat.misses + * and unset stats.full_update. If t->updates existed, then it will be + * destroyed. + * + * This function is usually called after ewk_tile_updates_process() is + * called. + */ +void ewk_tile_updates_clear(Ewk_Tile *t) +{ + /* TODO: remove from list of pending updates? */ + t->stats.misses = 0; + + if (t->stats.full_update) + t->stats.full_update = 0; + else if (t->updates) { + eina_tiler_free(t->updates); + t->updates = NULL; + } +} + +typedef struct _Ewk_Tile_Unused_Cache_Entry Ewk_Tile_Unused_Cache_Entry; +struct _Ewk_Tile_Unused_Cache_Entry { + Ewk_Tile *tile; + int weight; + struct { + void (*cb)(void *data, Ewk_Tile *t); + void *data; + } tile_free; +}; + +struct _Ewk_Tile_Unused_Cache { + struct { + Eina_List *list; + size_t count; + size_t allocated; + } entries; + struct { + size_t max; /**< watermark (in bytes) to start freeing tiles */ + size_t used; /**< in bytes, maybe more than max. */ + } memory; + struct { + Evas_Coord x, y, w, h; + float zoom; + Eina_Bool locked; + } locked; + int references; + unsigned int frozen; + Eina_Bool dirty:1; +}; + +static const size_t TILE_UNUSED_CACHE_ALLOCATE_INITIAL = 128; +static const size_t TILE_UNUSED_CACHE_ALLOCATE_STEP = 16; +static const size_t TILE_UNUSED_CACHE_MAX_FREE = 32; + +/** + * Cache of unused tiles (those that are not visible). + * + * The cache of unused tiles. + * + * @param max cache size in bytes. + * + * @return newly allocated cache of unused tiles, use + * ewk_tile_unused_cache_free() to release resources. If not + * possible to allocate memory, @c NULL is returned. + */ +Ewk_Tile_Unused_Cache *ewk_tile_unused_cache_new(size_t max) +{ + Ewk_Tile_Unused_Cache *tuc; + + CALLOC_OR_OOM_RET(tuc, sizeof(Ewk_Tile_Unused_Cache), NULL); + + DBG("tuc=%p", tuc); + tuc->memory.max = max; + tuc->references = 1; + return tuc; +} + +void ewk_tile_unused_cache_lock_area(Ewk_Tile_Unused_Cache *tuc, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, float zoom) +{ + EINA_SAFETY_ON_NULL_RETURN(tuc); + + tuc->locked.locked = EINA_TRUE; + tuc->locked.x = x; + tuc->locked.y = y; + tuc->locked.w = w; + tuc->locked.h = h; + tuc->locked.zoom = zoom; +} + +void ewk_tile_unused_cache_unlock_area(Ewk_Tile_Unused_Cache *tuc) +{ + EINA_SAFETY_ON_NULL_RETURN(tuc); + + tuc->locked.locked = EINA_FALSE; +} + +/** + * Free cache of unused tiles. + * + * Those tiles that are still visible will remain live. The unused + * tiles will be freed. + * + * @see ewk_tile_unused_cache_unref() + */ +void ewk_tile_unused_cache_free(Ewk_Tile_Unused_Cache *tuc) +{ + EINA_SAFETY_ON_NULL_RETURN(tuc); + + DBG("tuc=%p, " + "entries=(count:%zd, allocated:%zd), " + "memory=(max:%zd, used:%zd)", + tuc, tuc->entries.count, tuc->entries.allocated, + tuc->memory.max, tuc->memory.used); + + ewk_tile_unused_cache_clear(tuc); + free(tuc); +} + +/** + * Clear cache of unused tiles. + * + * Any tiles that are in the cache are freed. The only tiles that are + * kept are those that aren't in the cache (i.e. that are visible). + */ +void ewk_tile_unused_cache_clear(Ewk_Tile_Unused_Cache *tuc) +{ + Ewk_Tile_Unused_Cache_Entry *itr; + EINA_SAFETY_ON_NULL_RETURN(tuc); + + if (!tuc->entries.count) + return; + + EINA_LIST_FREE(tuc->entries.list, itr) { + itr->tile_free.cb(itr->tile_free.data, itr->tile); + free(itr); + } + + tuc->memory.used = 0; + tuc->entries.count = 0; + tuc->dirty = EINA_FALSE; +} + +/** + * Hold reference to cache. + * + * @return same pointer as taken. + * + * @see ewk_tile_unused_cache_unref() + */ +Ewk_Tile_Unused_Cache *ewk_tile_unused_cache_ref(Ewk_Tile_Unused_Cache *tuc) +{ + EINA_SAFETY_ON_NULL_RETURN_VAL(tuc, NULL); + tuc->references++; + return tuc; +} + +/** + * Release cache reference, freeing it if it drops to zero. + * + * @see ewk_tile_unused_cache_ref() + * @see ewk_tile_unused_cache_free() + */ +void ewk_tile_unused_cache_unref(Ewk_Tile_Unused_Cache *tuc) +{ + EINA_SAFETY_ON_NULL_RETURN(tuc); + tuc->references--; + if (!tuc->references) + ewk_tile_unused_cache_free(tuc); +} + +/** + * Change cache capacity, in bytes. + * + * This will not flush cache, use ewk_tile_unused_cache_flush() or + * ewk_tile_unused_cache_auto_flush() to do so. + */ +void ewk_tile_unused_cache_max_set(Ewk_Tile_Unused_Cache *tuc, size_t max) +{ + EINA_SAFETY_ON_NULL_RETURN(tuc); + tuc->memory.max = max; +} + +/** + * Retrieve maximum cache capacity, in bytes. + */ +size_t ewk_tile_unused_cache_max_get(const Ewk_Tile_Unused_Cache *tuc) +{ + EINA_SAFETY_ON_NULL_RETURN_VAL(tuc, 0); + return tuc->memory.max; +} + +/** + * Retrieve the used cache capacity, in bytes. + */ +size_t ewk_tile_unused_cache_used_get(const Ewk_Tile_Unused_Cache *tuc) +{ + EINA_SAFETY_ON_NULL_RETURN_VAL(tuc, 0); + return tuc->memory.used; +} + +/** + * Flush given amount of bytes from cache. + * + * After calling this function, near @a bytes are freed from cache. It + * may be less if cache did not contain that amount of bytes (ie: an + * empty cache has nothing to free!) or more if the cache just + * contained objects that were larger than the requested amount (this + * is usually the case). + * + * @param tuc cache of unused tiles. + * @param bytes amount to free. + * + * @return amount really freed. + * + * @see ewk_tile_unused_cache_used_get() + */ +size_t ewk_tile_unused_cache_flush(Ewk_Tile_Unused_Cache *tuc, size_t bytes) +{ + Ewk_Tile_Unused_Cache_Entry *itr; + Eina_List *l, *l_next; + EINA_SAFETY_ON_NULL_RETURN_VAL(tuc, 0); + size_t done; + unsigned int count; + + if (!tuc->entries.count) + return 0; + if (bytes < 1) + return 0; + + /* + * NOTE: the cache is a FIFO queue currently. + * Don't need to sort any more. + */ + + if (tuc->dirty) + tuc->dirty = EINA_FALSE; + + done = 0; + count = 0; + EINA_LIST_FOREACH_SAFE(tuc->entries.list, l, l_next, itr) { + Ewk_Tile *t = itr->tile; + if (done > bytes) + break; + if (tuc->locked.locked + && t->x + t->w > tuc->locked.x + && t->y + t->h > tuc->locked.y + && t->x < tuc->locked.x + tuc->locked.w + && t->y < tuc->locked.y + tuc->locked.h + && t->zoom == tuc->locked.zoom) { + continue; + } + done += sizeof(Ewk_Tile) + itr->tile->bytes; + itr->tile_free.cb(itr->tile_free.data, itr->tile); + tuc->entries.list = eina_list_remove_list(tuc->entries.list, l); + free(itr); + count++; + } + + tuc->memory.used -= done; + tuc->entries.count -= count; + + return done; +} + +/** + * Flush enough bytes to make cache usage lower than maximum. + * + * Just like ewk_tile_unused_cache_flush(), but this will make the cache + * free enough tiles to respect maximum cache size as defined with + * ewk_tile_unused_cache_max_set(). + * + * This function is usually called when system becomes idle. This way + * we keep memory low but do not impact performance when + * creating/deleting tiles. + */ +void ewk_tile_unused_cache_auto_flush(Ewk_Tile_Unused_Cache *tuc) +{ + EINA_SAFETY_ON_NULL_RETURN(tuc); + if (tuc->memory.used <= tuc->memory.max) + return; + ewk_tile_unused_cache_flush(tuc, tuc->memory.used - tuc->memory.max); + if (tuc->memory.used > tuc->memory.max) + CRITICAL("Cache still using too much memory: %zd KB; max: %zd KB", + tuc->memory.used, tuc->memory.max); +} + +/** + * Flag cache as dirty. + * + * If cache is dirty then next flush operations will have to recompute + * weight and sort again to find the best tiles to expire. + * + * One must call this function when tile properties that may change + * likeness of tile to be flushed change, like Tile::stats. + */ +void ewk_tile_unused_cache_dirty(Ewk_Tile_Unused_Cache *tuc) +{ + tuc->dirty = EINA_TRUE; +} + +/** + * Freeze cache to not do maintenance tasks. + * + * Maintenance tasks optimize cache usage, but maybe we know we should + * hold on them until we do the last operation, in this case we freeze + * while operating and then thaw when we're done. + * + * @see ewk_tile_unused_cache_thaw() + */ +void ewk_tile_unused_cache_freeze(Ewk_Tile_Unused_Cache *tuc) +{ + tuc->frozen++; +} + +/** + * Unfreezes maintenance tasks. + * + * If this is the last counterpart of freeze, then maintenance tasks + * will run immediately. + */ +void ewk_tile_unused_cache_thaw(Ewk_Tile_Unused_Cache *tuc) +{ + if (!tuc->frozen) { + ERR("thawing more than freezing!"); + return; + } + + tuc->frozen--; +} + +/** + * Get tile from cache of unused tiles, removing it from the cache. + * + * If the tile is used, then it's not in cache of unused tiles, so it + * is removed from the cache and may be given back with + * ewk_tile_unused_cache_tile_put(). + * + * @param tuc cache of unused tiles + * @param t the tile to be removed from Ewk_Tile_Unused_Cache. + * + * @return #EINA_TRUE on success, #EINA_FALSE otherwise. + */ +Eina_Bool ewk_tile_unused_cache_tile_get(Ewk_Tile_Unused_Cache *tuc, Ewk_Tile *t) +{ + Ewk_Tile_Unused_Cache_Entry *entry; + Eina_List *e, *l; + + e = NULL; + EINA_LIST_FOREACH(tuc->entries.list, l, entry) + { + if (entry->tile == t) { + e = l; + break; + } + } + if (!e) { + ERR("tile %p not found in cache %p", t, tuc); + return EINA_FALSE; + } + + tuc->entries.count--; + tuc->memory.used -= sizeof(Ewk_Tile) + t->bytes; + tuc->entries.list = eina_list_remove_list(tuc->entries.list, e); + free(entry); + // TODO assume dirty for now, but may it's not, + // if the item was at the beginning of the queue + tuc->dirty = EINA_TRUE; + + return EINA_TRUE; +} + +/** + * Put tile into cache of unused tiles, adding it to the cache. + * + * This should be called when @c t->visible is @c 0 and no objects are + * using the tile anymore, making it available to be expired and have + * its memory replaced. + * + * Note that tiles are not automatically deleted if cache is full, + * instead the cache will have more bytes used than maximum and one + * can call ewk_tile_unused_cache_auto_flush() to free them. This is done + * because usually we want a lazy operation for better performance. + * + * @param tuc cache of unused tiles + * @param t tile to be added to cache. + * @param tile_free_cb function used to free tiles. + * @param data context to give back to @a tile_free_cb as first argument. + * + * @return #EINA_TRUE on success, #EINA_FALSE otherwise. If @c t->visible + * is not #EINA_FALSE, then it will return #EINA_FALSE. + * + * @see ewk_tile_unused_cache_auto_flush() + */ +Eina_Bool ewk_tile_unused_cache_tile_put(Ewk_Tile_Unused_Cache *tuc, Ewk_Tile *t, void (*tile_free_cb)(void *data, Ewk_Tile *t), const void *data) +{ + Ewk_Tile_Unused_Cache_Entry *e; + + if (t->visible) { + ERR("tile=%p is not unused (visible=%d)", t, t->visible); + return EINA_FALSE; + } + + MALLOC_OR_OOM_RET(e, sizeof(Ewk_Tile_Unused_Cache_Entry), EINA_FALSE); + tuc->entries.list = eina_list_append(tuc->entries.list, e); + if (eina_error_get()) { + ERR("List allocation failed"); + return EINA_FALSE; + } + + e->tile = t; + e->weight = 0; /* calculated just before sort */ + e->tile_free.cb = tile_free_cb; + e->tile_free.data = (void *)data; + + tuc->entries.count++; + tuc->memory.used += sizeof(Ewk_Tile) + t->bytes; + tuc->dirty = EINA_TRUE; + + return EINA_TRUE; +} + +void ewk_tile_unused_cache_dbg(const Ewk_Tile_Unused_Cache *tuc) +{ + Ewk_Tile_Unused_Cache_Entry *itr; + Eina_List *l; + int count = 0; + printf("Cache of unused tiles: entries: %zu/%zu, memory: %zu/%zu\n", + tuc->entries.count, tuc->entries.allocated, + tuc->memory.used, tuc->memory.max); + + EINA_LIST_FOREACH(tuc->entries.list, l, itr) { + const Ewk_Tile *t = itr->tile; + printf(" [%3lu,%3lu + %dx%d @ %0.3f]%c", + t->col, t->row, t->w, t->h, t->zoom, + t->visible ? '*': ' '); + + if (!(count % 4)) + printf("\n"); + } + + printf("\n"); +} diff --git a/WebKit/efl/ewk/ewk_tiled_model.h b/WebKit/efl/ewk/ewk_tiled_model.h new file mode 100644 index 0000000..a546cee --- /dev/null +++ b/WebKit/efl/ewk/ewk_tiled_model.h @@ -0,0 +1,58 @@ +/* + Copyright (C) 2009-2010 Samsung Electronics + Copyright (C) 2009-2010 ProFUSION embedded systems + + 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 ewk_tiled_model_h +#define ewk_tiled_model_h + +#include "ewk_eapi.h" +#include "ewk_tiled_backing_store.h" + +#include <Evas.h> + +/* model */ +EAPI Ewk_Tile *ewk_tile_new(Evas *evas, Evas_Coord w, Evas_Coord h, float zoom, Evas_Colorspace cspace); +EAPI void ewk_tile_free(Ewk_Tile *t); +EAPI void ewk_tile_unused_cache_clear(Ewk_Tile_Unused_Cache *tuc); +EAPI void ewk_tile_show(Ewk_Tile *t); +EAPI void ewk_tile_hide(Ewk_Tile *t); +Eina_Bool ewk_tile_visible_get(Ewk_Tile *t); +EAPI void ewk_tile_update_full(Ewk_Tile *t); +EAPI void ewk_tile_update_area(Ewk_Tile *t, const Eina_Rectangle *r); +EAPI void ewk_tile_updates_process(Ewk_Tile *t, void (*cb)(void *data, Ewk_Tile *t, const Eina_Rectangle *update), const void *data); +EAPI void ewk_tile_updates_clear(Ewk_Tile *t); + +/* cache of unused tiles */ +EAPI Ewk_Tile_Unused_Cache *ewk_tile_unused_cache_new(size_t max); +EAPI void ewk_tile_unused_cache_lock_area(Ewk_Tile_Unused_Cache *tuc, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, float zoom); +EAPI void ewk_tile_unused_cache_unlock_area(Ewk_Tile_Unused_Cache *tuc); +EAPI void ewk_tile_unused_cache_free(Ewk_Tile_Unused_Cache *tuc); +EAPI Ewk_Tile_Unused_Cache *ewk_tile_unused_cache_ref(Ewk_Tile_Unused_Cache *tuc); +EAPI void ewk_tile_unused_cache_unref(Ewk_Tile_Unused_Cache *tuc); + +EAPI void ewk_tile_unused_cache_dirty(Ewk_Tile_Unused_Cache *tuc); + +EAPI void ewk_tile_unused_cache_freeze(Ewk_Tile_Unused_Cache *tuc); +EAPI void ewk_tile_unused_cache_thaw(Ewk_Tile_Unused_Cache *tuc); + +EAPI Eina_Bool ewk_tile_unused_cache_tile_get(Ewk_Tile_Unused_Cache *tuc, Ewk_Tile *t); +EAPI Eina_Bool ewk_tile_unused_cache_tile_put(Ewk_Tile_Unused_Cache *tuc, Ewk_Tile *t, void (*tile_free_cb)(void *data, Ewk_Tile *t), const void *data); + +#endif // ewk_tiled_model_h + diff --git a/WebKit/efl/ewk/ewk_tiled_private.h b/WebKit/efl/ewk/ewk_tiled_private.h new file mode 100644 index 0000000..ce65f43 --- /dev/null +++ b/WebKit/efl/ewk/ewk_tiled_private.h @@ -0,0 +1,62 @@ +/* + Copyright (C) 2009-2010 Samsung Electronics + Copyright (C) 2009-2010 ProFUSION embedded systems + + 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 ewk_tiled_private_h +#define ewk_tiled_private_h + +/* logging */ +extern int _ewk_tiled_log_dom; + +#define CRITICAL(...) EINA_LOG_DOM_CRIT(_ewk_tiled_log_dom, __VA_ARGS__) +#define ERR(...) EINA_LOG_DOM_ERR(_ewk_tiled_log_dom, __VA_ARGS__) +#define WRN(...) EINA_LOG_DOM_WARN(_ewk_tiled_log_dom, __VA_ARGS__) +#define INF(...) EINA_LOG_DOM_INFO(_ewk_tiled_log_dom, __VA_ARGS__) +#define DBG(...) EINA_LOG_DOM_DBG(_ewk_tiled_log_dom, __VA_ARGS__) +#define OOM(op, size) CRITICAL("could not %s %zd bytes: %s", op, size, strerror(errno)) +#define MALLOC_OR_OOM_RET(ptr, size, ...) \ + do { \ + ptr = malloc(size); \ + if (!ptr && (size) > 0) { \ + OOM("malloc", (size)); \ + return __VA_ARGS__; \ + } \ + } while (0) + +#define CALLOC_OR_OOM_RET(ptr, size, ...) \ + do { \ + ptr = calloc(1, size); \ + if (!ptr && (size) > 0) { \ + OOM("calloc", (size)); \ + return __VA_ARGS__; \ + } \ + } while (0) + +#define REALLOC_OR_OOM_RET(ptr, size, ...) \ + do { \ + void *__tmp_ptr; \ + __tmp_ptr = realloc(ptr, size); \ + if (!__tmp_ptr && (size) > 0) { \ + OOM("realloc", (size)); \ + return __VA_ARGS__; \ + } \ + ptr = __tmp_ptr; \ + } while (0) + +#endif // ewk_tiled_private_h diff --git a/WebKit/efl/ewk/ewk_view.cpp b/WebKit/efl/ewk/ewk_view.cpp index 5ff3ade..5147b6d 100644 --- a/WebKit/efl/ewk/ewk_view.cpp +++ b/WebKit/efl/ewk/ewk_view.cpp @@ -94,6 +94,9 @@ struct _Ewk_View_Private_Data { } scrolls; unsigned int imh; /**< input method hints */ struct { + Eina_Bool view_cleared:1; + } flags; + struct { const char* user_agent; const char* user_stylesheet; const char* encoding_default; @@ -725,6 +728,12 @@ static void _ewk_view_smart_add(Evas_Object* o) evas_object_smart_member_add(sd->backing_store, o); evas_object_show(sd->backing_store); + evas_object_pass_events_set(sd->backing_store, EINA_TRUE); + + sd->events_rect = evas_object_rectangle_add(sd->base.evas); + evas_object_color_set(sd->events_rect, 0, 0, 0, 0); + evas_object_smart_member_add(sd->events_rect, o); + evas_object_show(sd->events_rect); sd->main_frame = ewk_frame_add(sd->base.evas); if (!sd->main_frame) { @@ -815,6 +824,7 @@ static void _ewk_view_smart_calculate(Evas_Object* o) view->adjustViewSize(); } evas_object_resize(sd->main_frame, w, h); + evas_object_resize(sd->events_rect, w, h); sd->changed.frame_rect = EINA_TRUE; sd->view.w = w; sd->view.h = h; @@ -827,6 +837,7 @@ static void _ewk_view_smart_calculate(Evas_Object* o) if (sd->changed.position && ((x != sd->view.x) || (y != sd->view.y))) { evas_object_move(sd->main_frame, x, y); evas_object_move(sd->backing_store, x, y); + evas_object_move(sd->events_rect, x, y); sd->changed.frame_rect = EINA_TRUE; sd->view.x = x; sd->view.y = y; @@ -850,6 +861,25 @@ static void _ewk_view_smart_calculate(Evas_Object* o) } } +static void _ewk_view_smart_show(Evas_Object *o) +{ + EWK_VIEW_SD_GET(o, sd); + EWK_VIEW_PRIV_GET(sd, priv); + + if (evas_object_clipees_get(sd->base.clipper)) + evas_object_show(sd->base.clipper); + evas_object_show(sd->backing_store); +} + +static void _ewk_view_smart_hide(Evas_Object *o) +{ + EWK_VIEW_SD_GET(o, sd); + EWK_VIEW_PRIV_GET(sd, priv); + + evas_object_hide(sd->base.clipper); + evas_object_hide(sd->backing_store); +} + static Eina_Bool _ewk_view_smart_contents_resize(Ewk_View_Smart_Data* sd, int w, int h) { return EINA_TRUE; @@ -897,6 +927,13 @@ static Eina_Bool _ewk_view_smart_pre_render_region(Ewk_View_Smart_Data* sd, Evas return EINA_FALSE; } +static Eina_Bool _ewk_view_smart_pre_render_relative_radius(Ewk_View_Smart_Data* sd, unsigned int n, float zoom) +{ + WRN("not supported by engine. sd=%p, n=%u zoom=%f", + sd, n, zoom); + return EINA_FALSE; +} + static void _ewk_view_smart_pre_render_cancel(Ewk_View_Smart_Data* sd) { WRN("not supported by engine. sd=%p", sd); @@ -954,6 +991,7 @@ static Eina_Bool _ewk_view_zoom_animator_cb(void* data) || (now < priv->animated_zoom.time.start)) { _ewk_view_zoom_animated_finish(sd); ewk_view_zoom_set(sd->self, priv->animated_zoom.zoom.end, cx, cy); + sd->api->sc.calculate(sd->self); return EINA_FALSE; } @@ -991,6 +1029,18 @@ static WebCore::ViewportAttributes _ewk_view_viewport_attributes_compute(Evas_Ob return attributes; } +static Eina_Bool _ewk_view_smart_disable_render(Ewk_View_Smart_Data *sd) +{ + WRN("not supported by engine. sd=%p", sd); + return EINA_FALSE; +} + +static Eina_Bool _ewk_view_smart_enable_render(Ewk_View_Smart_Data *sd) +{ + WRN("not supported by engine. sd=%p", sd); + return EINA_FALSE; +} + /** * Sets the smart class api without any backing store, enabling view * to be inherited. @@ -1030,13 +1080,18 @@ Eina_Bool ewk_view_base_smart_set(Ewk_View_Smart_Class* api) api->sc.resize = _ewk_view_smart_resize; api->sc.move = _ewk_view_smart_move; api->sc.calculate = _ewk_view_smart_calculate; + api->sc.show = _ewk_view_smart_show; + api->sc.hide = _ewk_view_smart_hide; api->sc.data = EWK_VIEW_TYPE_STR; /* used by type checking */ api->contents_resize = _ewk_view_smart_contents_resize; api->zoom_set = _ewk_view_smart_zoom_set; api->flush = _ewk_view_smart_flush; api->pre_render_region = _ewk_view_smart_pre_render_region; + api->pre_render_relative_radius = _ewk_view_smart_pre_render_relative_radius; api->pre_render_cancel = _ewk_view_smart_pre_render_cancel; + api->disable_render = _ewk_view_smart_disable_render; + api->enable_render = _ewk_view_smart_enable_render; api->focus_in = _ewk_view_smart_focus_in; api->focus_out = _ewk_view_smart_focus_out; @@ -2171,10 +2226,19 @@ Eina_Bool ewk_view_zoom_text_only_set(Evas_Object* o, Eina_Bool setting) Eina_Bool ewk_view_pre_render_region(Evas_Object* o, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, float zoom) { EWK_VIEW_SD_GET_OR_RETURN(o, sd, EINA_FALSE); + EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(sd->api->pre_render_region, EINA_FALSE); - float cur_zoom = ewk_frame_zoom_get(sd->main_frame); + float cur_zoom; Evas_Coord cw, ch; + /* When doing animated zoom it's not possible to call pre-render since it + * would screw up parameters that animation is currently using + */ + if (priv->animated_zoom.animator) + return EINA_FALSE; + + cur_zoom = ewk_frame_zoom_get(sd->main_frame); + if (cur_zoom < 0.00001) return EINA_FALSE; if (!ewk_frame_contents_size_get(sd->main_frame, &cw, &ch)) @@ -2203,6 +2267,35 @@ Eina_Bool ewk_view_pre_render_region(Evas_Object* o, Evas_Coord x, Evas_Coord y, } /** + * Hint engine to pre-render region, given n extra cols/rows + * + * This is an alternative method to ewk_view_pre_render_region(). It does not + * make sense in all engines and therefore it might not be implemented at all. + * + * It's only useful if engine divide the area being rendered in smaller tiles, + * forming a grid. Then, browser could call this function to pre-render @param n + * rows/cols involving the current viewport. + * + * @param o view to ask pre-render on. + * @param n number of cols/rows that must be part of the region pre-rendered + * + * @see ewk_view_pre_render_region() + */ +Eina_Bool ewk_view_pre_render_relative_radius(Evas_Object* o, unsigned int n) +{ + EWK_VIEW_SD_GET_OR_RETURN(o, sd, EINA_FALSE); + EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(sd->api->pre_render_relative_radius, EINA_FALSE); + float cur_zoom; + + if (priv->animated_zoom.animator) + return EINA_FALSE; + + cur_zoom = ewk_frame_zoom_get(sd->main_frame); + return sd->api->pre_render_relative_radius(sd, n, cur_zoom); +} + +/** * Get input method hints * * @param o View. @@ -2228,6 +2321,36 @@ void ewk_view_pre_render_cancel(Evas_Object* o) sd->api->pre_render_cancel(sd); } +/** + * Enable processing of update requests. + * + * @param o view to enable rendering. + * + * @return @c EINA_TRUE if render was enabled, @c EINA_FALSE + otherwise (errors, rendering suspension not supported). + */ +Eina_Bool ewk_view_enable_render(const Evas_Object *o) +{ + EWK_VIEW_SD_GET_OR_RETURN(o, sd, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(sd->api->enable_render, EINA_FALSE); + return sd->api->enable_render(sd); +} + +/** + * Disable processing of update requests. + * + * @param o view to disable rendering. + * + * @return @c EINA_TRUE if render was disabled, @c EINA_FALSE + otherwise (errors, rendering suspension not supported). + */ +Eina_Bool ewk_view_disable_render(const Evas_Object *o) +{ + EWK_VIEW_SD_GET_OR_RETURN(o, sd, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(sd->api->disable_render, EINA_FALSE); + return sd->api->disable_render(sd); +} + const char* ewk_view_setting_user_agent_get(const Evas_Object* o) { EWK_VIEW_SD_GET_OR_RETURN(o, sd, 0); @@ -3952,7 +4075,6 @@ void ewk_view_scroll(Evas_Object* o, Evas_Coord dx, Evas_Coord dy, Evas_Coord sx EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv); EINA_SAFETY_ON_TRUE_RETURN(!dx && !dy); - _ewk_view_scroll_add(priv, dx, dy, sx, sy, sw, sh, main_frame); _ewk_view_smart_changed(sd); } @@ -4284,6 +4406,42 @@ float ewk_view_device_pixel_ratio_get(Evas_Object* o) return priv->settings.device_pixel_ratio; } +void ewk_view_did_first_visually_nonempty_layout(Evas_Object *o) +{ + EWK_VIEW_SD_GET_OR_RETURN(o, sd); + EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv); + if (!priv->flags.view_cleared) { + ewk_view_frame_main_cleared(o); + ewk_view_enable_render(o); + priv->flags.view_cleared = EINA_TRUE; + } +} + +/** + * @internal + * Dispatch finished loading. + * + * @param o view. + */ +void ewk_view_dispatch_did_finish_loading(Evas_Object *o) +{ + /* If we reach this point and rendering is still disabled, WebCore will not + * trigger the didFirstVisuallyNonEmptyLayout signal anymore. So, we + * forcefully re-enable the rendering. + */ + ewk_view_did_first_visually_nonempty_layout(o); +} + +void ewk_view_transition_to_commited_for_newpage(Evas_Object *o) +{ + EWK_VIEW_SD_GET_OR_RETURN(o, sd); + EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv); + + ewk_view_disable_render(o); + priv->flags.view_cleared = EINA_FALSE; +} + + /** * @internal * Reports a requeset will be loaded. It's client responsibility to decide if diff --git a/WebKit/efl/ewk/ewk_view.h b/WebKit/efl/ewk/ewk_view.h index 1c4de34..6902949 100644 --- a/WebKit/efl/ewk/ewk_view.h +++ b/WebKit/efl/ewk/ewk_view.h @@ -114,7 +114,11 @@ struct _Ewk_View_Smart_Class { void (*bg_color_set)(Ewk_View_Smart_Data *sd, unsigned char r, unsigned char g, unsigned char b, unsigned char a); void (*flush)(Ewk_View_Smart_Data *sd); Eina_Bool (*pre_render_region)(Ewk_View_Smart_Data *sd, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, float zoom); + Eina_Bool (*pre_render_relative_radius)(Ewk_View_Smart_Data *sd, unsigned int n, float zoom); void (*pre_render_cancel)(Ewk_View_Smart_Data *sd); + Eina_Bool (*disable_render)(Ewk_View_Smart_Data *sd); + Eina_Bool (*enable_render)(Ewk_View_Smart_Data *sd); + // event handling: // - returns true if handled // - if overridden, have to call parent method if desired @@ -151,7 +155,7 @@ struct _Ewk_View_Smart_Class { * @see EWK_VIEW_SMART_CLASS_INIT_VERSION * @see EWK_VIEW_SMART_CLASS_INIT_NAME_VERSION */ -#define EWK_VIEW_SMART_CLASS_INIT(smart_class_init) {smart_class_init, EWK_VIEW_SMART_CLASS_VERSION, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} +#define EWK_VIEW_SMART_CLASS_INIT(smart_class_init) {smart_class_init, EWK_VIEW_SMART_CLASS_VERSION, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} /** * Initializer to zero a whole Ewk_View_Smart_Class structure. @@ -268,6 +272,7 @@ struct _Ewk_View_Smart_Data { Evas_Object *self; /**< reference to owner object */ Evas_Object *main_frame; /**< reference to main frame object */ Evas_Object *backing_store; /**< reference to backing store */ + Evas_Object *events_rect; /**< rectangle that should receive mouse events */ Ewk_View_Private_Data *_priv; /**< should never be accessed, c++ stuff */ struct { Evas_Coord x, y, w, h; /**< last used viewport */ @@ -291,10 +296,36 @@ struct _Ewk_View_Smart_Data { } changed; }; +/** + * Cache (pool) that contains unused tiles for ewk_view_tiled. + * + * This cache will maintain unused tiles and flush them when the total + * memory exceeds the set amount when + * ewk_tile_unused_cache_auto_flush() or explicitly set value when + * ewk_tile_unused_cache_flush() is called. + * + * The tile may be shared among different ewk_view_tiled instances to + * group maximum unused memory resident in the system. + */ +typedef struct _Ewk_Tile_Unused_Cache Ewk_Tile_Unused_Cache; +EAPI void ewk_tile_unused_cache_max_set(Ewk_Tile_Unused_Cache *tuc, size_t max); +EAPI size_t ewk_tile_unused_cache_max_get(const Ewk_Tile_Unused_Cache *tuc); +EAPI size_t ewk_tile_unused_cache_used_get(const Ewk_Tile_Unused_Cache *tuc); +EAPI size_t ewk_tile_unused_cache_flush(Ewk_Tile_Unused_Cache *tuc, size_t bytes); +EAPI void ewk_tile_unused_cache_auto_flush(Ewk_Tile_Unused_Cache *tuc); + EAPI Eina_Bool ewk_view_base_smart_set(Ewk_View_Smart_Class *api); EAPI Eina_Bool ewk_view_single_smart_set(Ewk_View_Smart_Class *api); +EAPI Eina_Bool ewk_view_tiled_smart_set(Ewk_View_Smart_Class *api); EAPI Evas_Object *ewk_view_single_add(Evas *e); +EAPI Evas_Object *ewk_view_tiled_add(Evas *e); + +EAPI Ewk_Tile_Unused_Cache *ewk_view_tiled_unused_cache_get(const Evas_Object *o); +EAPI void ewk_view_tiled_unused_cache_set(Evas_Object *o, Ewk_Tile_Unused_Cache *cache); + +// FIXME: this function should be removed later, when we find the best flag to use. +EAPI void ewk_view_tiled_process_entire_queue_set(Evas_Object *o, Eina_Bool flag); EAPI void ewk_view_fixed_layout_size_set(Evas_Object *o, Evas_Coord w, Evas_Coord h); EAPI void ewk_view_fixed_layout_size_get(Evas_Object *o, Evas_Coord *w, Evas_Coord *h); @@ -370,7 +401,10 @@ EAPI Eina_Bool ewk_view_zoom_text_only_get(const Evas_Object *o); EAPI Eina_Bool ewk_view_zoom_text_only_set(Evas_Object *o, Eina_Bool setting); EAPI Eina_Bool ewk_view_pre_render_region(Evas_Object *o, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, float zoom); +EAPI Eina_Bool ewk_view_pre_render_relative_radius(Evas_Object *o, unsigned int n); EAPI void ewk_view_pre_render_cancel(Evas_Object *o); +EAPI Eina_Bool ewk_view_enable_render(const Evas_Object *o); +EAPI Eina_Bool ewk_view_disable_render(const Evas_Object *o); EAPI unsigned int ewk_view_imh_get(Evas_Object *o); diff --git a/WebKit/efl/ewk/ewk_view_tiled.c b/WebKit/efl/ewk/ewk_view_tiled.c new file mode 100644 index 0000000..d380e8e --- /dev/null +++ b/WebKit/efl/ewk/ewk_view_tiled.c @@ -0,0 +1,346 @@ +/* + Copyright (C) 2009-2010 Samsung Electronics + Copyright (C) 2009-2010 ProFUSION embedded systems + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "config.h" +#include "ewk_view.h" + +#include "ewk_logging.h" + +#include <Evas.h> +#include <eina_safety_checks.h> +#include <ewk_tiled_backing_store.h> + +static Ewk_View_Smart_Class _parent_sc = EWK_VIEW_SMART_CLASS_INIT_NULL; + +static Eina_Bool _ewk_view_tiled_render_cb(void *data, Ewk_Tile *t, const Eina_Rectangle *area) +{ + Ewk_View_Private_Data *priv = (Ewk_View_Private_Data*)data; + Eina_Rectangle r = {area->x + t->x, area->y + t->y, area->w, area->h}; + + return ewk_view_paint_contents(priv, t->cairo, &r); +} + +static void *_ewk_view_tiled_updates_process_pre(void *data, Evas_Object *o) +{ + Ewk_View_Private_Data *priv = (Ewk_View_Private_Data*)data; + ewk_view_layout_if_needed_recursive(priv); + return 0; +} + +static Evas_Object *_ewk_view_tiled_smart_backing_store_add(Ewk_View_Smart_Data *sd) +{ + Evas_Object *bs = ewk_tiled_backing_store_add(sd->base.evas); + ewk_tiled_backing_store_render_cb_set + (bs, _ewk_view_tiled_render_cb, sd->_priv); + ewk_tiled_backing_store_updates_process_pre_set + (bs, _ewk_view_tiled_updates_process_pre, sd->_priv); + return bs; +} + +static void +_ewk_view_tiled_contents_size_changed_cb(void *data, Evas_Object *o, void *event_info) +{ + Evas_Coord *size = (Evas_Coord*)event_info; + Ewk_View_Smart_Data *sd = (Ewk_View_Smart_Data*)data; + + ewk_tiled_backing_store_contents_resize + (sd->backing_store, size[0], size[1]); +} + +static void _ewk_view_tiled_smart_add(Evas_Object *o) +{ + Ewk_View_Smart_Data *sd; + + _parent_sc.sc.add(o); + + sd = (Ewk_View_Smart_Data*)evas_object_smart_data_get(o); + evas_object_smart_callback_add( + sd->main_frame, "contents,size,changed", + _ewk_view_tiled_contents_size_changed_cb, sd); + ewk_frame_paint_full_set(sd->main_frame, EINA_TRUE); +} + +static Eina_Bool _ewk_view_tiled_smart_scrolls_process(Ewk_View_Smart_Data *sd) +{ + const Ewk_Scroll_Request *sr; + const Ewk_Scroll_Request *sr_end; + size_t count; + Evas_Coord vw, vh; + + ewk_frame_contents_size_get(sd->main_frame, &vw, &vh); + + sr = ewk_view_scroll_requests_get(sd->_priv, &count); + sr_end = sr + count; + for (; sr < sr_end; sr++) { + if (sr->main_scroll) + ewk_tiled_backing_store_scroll_full_offset_add + (sd->backing_store, sr->dx, sr->dy); + else { + Evas_Coord sx, sy, sw, sh; + + sx = sr->x; + sy = sr->y; + sw = sr->w; + sh = sr->h; + + if (abs(sr->dx) >= sw || abs(sr->dy) >= sh) { + /* doubt webkit would be so stupid... */ + DBG("full page scroll %+03d,%+03d. convert to repaint %d,%d + %dx%d", + sr->dx, sr->dy, sx, sy, sw, sh); + ewk_view_repaint_add(sd->_priv, sx, sy, sw, sh); + continue; + } + + if (sx + sw > vw) + sw = vw - sx; + if (sy + sh > vh) + sh = vh - sy; + + if (sw < 0) + sw = 0; + if (sh < 0) + sh = 0; + + if (!sw || !sh) + continue; + + sx -= abs(sr->dx); + sy -= abs(sr->dy); + sw += abs(sr->dx); + sh += abs(sr->dy); + ewk_view_repaint_add(sd->_priv, sx, sy, sw, sh); + INF("using repaint for inner frame scolling!"); + } + } + + return EINA_TRUE; +} + +static Eina_Bool _ewk_view_tiled_smart_repaints_process(Ewk_View_Smart_Data *sd) +{ + const Eina_Rectangle *pr, *pr_end; + size_t count; + int sx, sy; + + ewk_frame_scroll_pos_get(sd->main_frame, &sx, &sy); + + pr = ewk_view_repaints_get(sd->_priv, &count); + pr_end = pr + count; + for (; pr < pr_end; pr++) { + Eina_Rectangle r; + r.x = pr->x + sx; + r.y = pr->y + sy; + r.w = pr->w; + r.h = pr->h; + ewk_tiled_backing_store_update(sd->backing_store, &r); + } + ewk_tiled_backing_store_updates_process(sd->backing_store); + + return EINA_TRUE; +} + +static Eina_Bool _ewk_view_tiled_smart_contents_resize(Ewk_View_Smart_Data *sd, int w, int h) +{ + ewk_tiled_backing_store_contents_resize(sd->backing_store, w, h); + return EINA_TRUE; +} + +static Eina_Bool _ewk_view_tiled_smart_zoom_set(Ewk_View_Smart_Data *sd, float zoom, Evas_Coord cx, Evas_Coord cy) +{ + Evas_Coord x, y, w, h; + Eina_Bool r; + r = ewk_tiled_backing_store_zoom_set(sd->backing_store, + &zoom, cx, cy, &x, &y); + if (!r) + return r; + ewk_tiled_backing_store_disabled_update_set(sd->backing_store, EINA_TRUE); + r = _parent_sc.zoom_set(sd, zoom, cx, cy); + ewk_frame_scroll_set(sd->main_frame, -x, -y); + ewk_frame_scroll_size_get(sd->main_frame, &w, &h); + ewk_tiled_backing_store_fix_offsets(sd->backing_store, w, h); + ewk_view_scrolls_process(sd); + evas_object_smart_calculate(sd->backing_store); + evas_object_smart_calculate(sd->self); + ewk_tiled_backing_store_disabled_update_set(sd->backing_store, EINA_FALSE); + return r; +} + +static Eina_Bool _ewk_view_tiled_smart_zoom_weak_set(Ewk_View_Smart_Data *sd, float zoom, Evas_Coord cx, Evas_Coord cy) +{ + return ewk_tiled_backing_store_zoom_weak_set(sd->backing_store, zoom, cx, cy); +} + +static void _ewk_view_tiled_smart_zoom_weak_smooth_scale_set(Ewk_View_Smart_Data *sd, Eina_Bool smooth_scale) +{ + ewk_tiled_backing_store_zoom_weak_smooth_scale_set(sd->backing_store, smooth_scale); +} + +static void _ewk_view_tiled_smart_flush(Ewk_View_Smart_Data *sd) +{ + ewk_tiled_backing_store_flush(sd->backing_store); + _parent_sc.flush(sd); +} + +static Eina_Bool _ewk_view_tiled_smart_pre_render_region(Ewk_View_Smart_Data *sd, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, float zoom) +{ + return ewk_tiled_backing_store_pre_render_region + (sd->backing_store, x, y, w, h, zoom); +} + +static Eina_Bool _ewk_view_tiled_smart_pre_render_relative_radius(Ewk_View_Smart_Data *sd, unsigned int n, float zoom) +{ + return ewk_tiled_backing_store_pre_render_relative_radius + (sd->backing_store, n, zoom); +} + +static void _ewk_view_tiled_smart_pre_render_cancel(Ewk_View_Smart_Data *sd) +{ + ewk_tiled_backing_store_pre_render_cancel(sd->backing_store); +} + +static Eina_Bool _ewk_view_tiled_smart_disable_render(Ewk_View_Smart_Data *sd) +{ + return ewk_tiled_backing_store_disable_render(sd->backing_store); +} + +static Eina_Bool _ewk_view_tiled_smart_enable_render(Ewk_View_Smart_Data *sd) +{ + return ewk_tiled_backing_store_enable_render(sd->backing_store); +} + +/** + * Sets the smart class api using tiled backing store, enabling view + * to be inherited. + * + * @param api class definition to be set, all members with the + * exception of Evas_Smart_Class->data may be overridden. Must + * @b not be @c NULL. + * + * @note Evas_Smart_Class->data is used to implement type checking and + * is not supposed to be changed/overridden. If you need extra + * data for your smart class to work, just extend + * Ewk_View_Smart_Class instead. + * + * @return @c EINA_TRUE on success, @c EINA_FALSE on failure (probably + * version mismatch). + * + * @see ewk_view_base_smart_set() + */ +Eina_Bool ewk_view_tiled_smart_set(Ewk_View_Smart_Class *api) +{ + if (!ewk_view_base_smart_set(api)) + return EINA_FALSE; + + if (EINA_UNLIKELY(!_parent_sc.sc.add)) + ewk_view_base_smart_set(&_parent_sc); + + api->sc.add = _ewk_view_tiled_smart_add; + + api->backing_store_add = _ewk_view_tiled_smart_backing_store_add; + api->scrolls_process = _ewk_view_tiled_smart_scrolls_process; + api->repaints_process = _ewk_view_tiled_smart_repaints_process; + api->contents_resize = _ewk_view_tiled_smart_contents_resize; + api->zoom_set = _ewk_view_tiled_smart_zoom_set; + api->zoom_weak_set = _ewk_view_tiled_smart_zoom_weak_set; + api->zoom_weak_smooth_scale_set = _ewk_view_tiled_smart_zoom_weak_smooth_scale_set; + api->flush = _ewk_view_tiled_smart_flush; + api->pre_render_region = _ewk_view_tiled_smart_pre_render_region; + api->pre_render_relative_radius = _ewk_view_tiled_smart_pre_render_relative_radius; + api->pre_render_cancel = _ewk_view_tiled_smart_pre_render_cancel; + api->disable_render = _ewk_view_tiled_smart_disable_render; + api->enable_render = _ewk_view_tiled_smart_enable_render; + return EINA_TRUE; +} + +static inline Evas_Smart *_ewk_view_tiled_smart_class_new(void) +{ + static Ewk_View_Smart_Class api = EWK_VIEW_SMART_CLASS_INIT_NAME_VERSION("EWK_View_Tiled"); + static Evas_Smart *smart = 0; + + if (EINA_UNLIKELY(!smart)) { + ewk_view_tiled_smart_set(&api); + smart = evas_smart_class_new(&api.sc); + } + + return smart; +} + +/** + * Creates a new EFL WebKit View object using tiled backing store. + * + * View objects are the recommended way to deal with EFL WebKit as it + * abstracts the complex pieces of the process. + * + * This object is almost the same as the one returned by the ewk_view_add() + * function, but it uses the tiled backing store instead of the default + * backing store. + * + * @param e canvas where to create the view object. + * + * @return view object or @c NULL if errors. + * + * @see ewk_view_uri_set() + */ +Evas_Object *ewk_view_tiled_add(Evas *e) +{ + return evas_object_smart_add(e, _ewk_view_tiled_smart_class_new()); +} + +/** + * Get the cache of unused tiles used by this view. + * + * @param o view object to get cache. + * @return instance of "cache of unused tiles" or @c NULL on errors. + */ +Ewk_Tile_Unused_Cache *ewk_view_tiled_unused_cache_get(const Evas_Object *o) +{ + Ewk_View_Smart_Data *sd = ewk_view_smart_data_get(o); + EINA_SAFETY_ON_NULL_RETURN_VAL(sd, 0); + return ewk_tiled_backing_store_tile_unused_cache_get(sd->backing_store); +} + +/** + * Set the cache of unused tiles used by this view. + * + * @param o view object to get cache. + * @param cache instance of "cache of unused tiles". This can be used + * to share a single cache amongst different views. The tiles + * from one view will not be used by the other! This is just to + * limit the group with amount of unused memory. + * If @c NULL is provided, then a new cache is created. + */ +void ewk_view_tiled_unused_cache_set(Evas_Object *o, Ewk_Tile_Unused_Cache *cache) +{ + Ewk_View_Smart_Data *sd = ewk_view_smart_data_get(o); + EINA_SAFETY_ON_NULL_RETURN(sd); + ewk_tiled_backing_store_tile_unused_cache_set(sd->backing_store, cache); +} + +/** + * Set the function with the same name of the tiled backing store. + * @param o the tiled backing store object. + * @param flag value of the tiled backing store flag to set. + */ +void ewk_view_tiled_process_entire_queue_set(Evas_Object *o, Eina_Bool flag) +{ + Ewk_View_Smart_Data *sd = ewk_view_smart_data_get(o); + EINA_SAFETY_ON_NULL_RETURN(sd); + ewk_tiled_backing_store_process_entire_queue_set(sd->backing_store, flag); +} diff --git a/WebKit/gtk/ChangeLog b/WebKit/gtk/ChangeLog index ae266e4..d455df9 100644 --- a/WebKit/gtk/ChangeLog +++ b/WebKit/gtk/ChangeLog @@ -1,3 +1,362 @@ +2010-12-01 Jia Pu <jpu@apple.com> + + Reviewed by Darin Adler. + + Support multiple correction candidates panel for misspelled word on Mac OS X. + https://bugs.webkit.org/show_bug.cgi?id=50137 + <rdar://problem/8568059> + + Adopted new function signature defined in base class. + + * WebCoreSupport/EditorClientGtk.cpp: + (WebKit::EditorClient::getGuessesForWord): + * WebCoreSupport/EditorClientGtk.h: + +2010-11-30 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> + + Reviewed by Martin Robinson. + + [GTK] Fix wrong type in assert return value + https://bugs.webkit.org/show_bug.cgi?id=50208 + + Use appropriate return type in different g_return_val_if_fail(). This + removes some compiler warning. + + * webkit/webkitwebdatasource.cpp: + (webkit_web_data_source_is_loading): + * webkit/webkitwebframe.cpp: + (webkit_web_frame_page_number_for_element_by_id): + (webkit_web_frame_number_of_pages): + +2010-11-30 Mario Sanchez Prada <msanchez@igalia.com> + + Reviewed by Chris Fleizach. + + [GTK] Implement ROLE_COMBO_BOX + https://bugs.webkit.org/show_bug.cgi?id=25678 + + New test to check the implementation of the combo boxes. + + * tests/testatk.c: + (testWebkitAtkComboBox): New test, checking that the roles and the + implemented interfaces for a combo box and its descendants work. + (main): Added the new unit test. + +2010-11-30 Carlos Garcia Campos <cgarcia@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] Test fast/events/mouseover-mouseout2.html crashes + https://bugs.webkit.org/show_bug.cgi?id=50214 + + * WebCoreSupport/ChromeClientGtk.cpp: + (WebKit::ChromeClient::mouseDidMoveOverElement): + * webkit/webkitwebview.cpp: + (webkit_web_view_query_tooltip): + +2010-11-30 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r72764. + http://trac.webkit.org/changeset/72764 + https://bugs.webkit.org/show_bug.cgi?id=50215 + + This change is causing assertion failures on the debug bots. + (Requested by mrobinson on #webkit). + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::notifyStatus): + * tests/testatk.c: + (main): + +2010-11-29 Xan Lopez <xlopez@igalia.com> + + Reviewed by Martin Robinson. + + * NEWS: update for 1.3.7 release. + +2010-11-29 Carlos Garcia Campos <cgarcia@igalia.com> + + Reviewed by Xan Lopez. + + [Gtk] Tooltips should be fully keyboard accessible + https://bugs.webkit.org/show_bug.cgi?id=25525 + + Position the tooltip under the current focused element when the + tooltip has been triggered using the keyboard. + + * webkit/webkitwebview.cpp: + (webkit_web_view_query_tooltip): + (webkit_web_view_show_help): + (webkit_web_view_class_init): + +2010-11-29 Carlos Garcia Campos <cgarcia@igalia.com> + + Reviewed by Xan Lopez. + + [GTK] Tooltips not shown when scrolling + https://bugs.webkit.org/show_bug.cgi?id=50143 + + Convert tooltip area to window coordinates so that tooltips are + shown even after scrolling. + + * WebCoreSupport/ChromeClientGtk.cpp: + (WebKit::ChromeClient::mouseDidMoveOverElement): + +2010-11-26 Carlos Garcia Campos <cgarcia@igalia.com> + + Reviewed by Xan Lopez. + + [GTK] Inspector: add a way to inspect a WebKitDOMNode + https://bugs.webkit.org/show_bug.cgi?id=49903 + + * webkit/webkitwebinspector.cpp: + (webkit_web_inspector_inspect_node): + * webkit/webkitwebinspector.h: + +2010-11-26 Mario Sanchez Prada <msanchez@igalia.com> + + Reviewed by Xan Lopez. + + [GTK] events missing when a document is (re)loaded + https://bugs.webkit.org/show_bug.cgi?id=25831 + + Emit the right signals when reloading a document. + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::notifyAccessibilityStatus): New function, to make sure + the signals involved in reloading a document are properly emitted. + (WebKit::notifyStatus): Also notify accessibility if enabled. + + New unit test to check the signals are being actually emitted. + + * tests/testatk.c: + (stateChangedCb): Callback for 'state-change' signal emitted by + the accessible object associated to the webView. + (documentReloadCb): Callback for 'reload' signal. + (documentLoadCompleteCb): Callback for 'load-complete' signal. + (webviewLoadStatusChangedCb): Callback for 'notify::load-status' + signal, emitted by the WebKitWebView object (not the AtkObject). + (testWebkitAtkDocumentReloadEvents): New unit test. + (main): Added the new unit test. + +2010-11-24 Xan Lopez <xlopez@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] Make kit() methods return the proper type instead of gpointer + https://bugs.webkit.org/show_bug.cgi?id=50034 + + * WebCoreSupport/EditorClientGtk.cpp: + (WebKit::EditorClient::shouldDeleteRange): get rid of unneeded cast. + (WebKit::EditorClient::shouldShowDeleteInterface): ditto. + (WebKit::EditorClient::shouldBeginEditing): ditto. + (WebKit::EditorClient::shouldEndEditing): ditto. + (WebKit::EditorClient::shouldInsertText): ditto. + (WebKit::EditorClient::shouldChangeSelectedRange): ditto. + (WebKit::EditorClient::shouldApplyStyle): ditto. + (WebKit::EditorClient::shouldInsertNode): ditto. + * webkit/webkitprivate.cpp: + (WebKit::kit): ditto. + * webkit/webkitwebview.cpp: + (webkit_web_view_get_dom_document): ditto. + +2010-11-24 Xan Lopez <xlopez@igalia.com> + + Reviewed by Martin Robinson. + + Fix crashes in GTK+ bots. Use kit() instead of wrapFoo, otherwise + the DOM objects won't be in the cache and we'll ASSERT when + unreffing them. + + * WebCoreSupport/EditorClientGtk.cpp: + (WebKit::EditorClient::shouldDeleteRange): use kit to get the + GObject wrapper for the DOM object. + (WebKit::EditorClient::shouldShowDeleteInterface): ditto. + (WebKit::EditorClient::shouldBeginEditing): ditto. + (WebKit::EditorClient::shouldEndEditing): ditto. + (WebKit::EditorClient::shouldInsertText): ditto. + (WebKit::EditorClient::shouldChangeSelectedRange): ditto. + (WebKit::EditorClient::shouldApplyStyle): ditto. + (WebKit::EditorClient::shouldInsertNode): ditto. + +2010-11-24 Martin Robinson <mrobinson@igalia.com> + + Reviewed by Xan Lopez. + + [GTK] The WebKitWebView should expose a set of signals encapsulating the behavior of the EditorClient + https://bugs.webkit.org/show_bug.cgi?id=49143 + + Add signals that encapsulate the functionality of the Mac EditingDelegate. These signals + are private for now, but DRT consumes them to produce proper output for editing tests. + After some time, these may be part of the public API. + + * WebCoreSupport/EditorClientGtk.cpp: + (WebKit::EditorClient::shouldDeleteRange): Fire the appropriate editing signal. + (WebKit::EditorClient::shouldShowDeleteInterface): Ditto. + (WebKit::EditorClient::shouldBeginEditing): Ditto. + (WebKit::EditorClient::shouldEndEditing): Ditto. + (WebKit::kit): Added helper function. + (WebKit::EditorClient::shouldInsertText): Fire the appropriate editing signal. + (WebKit::EditorClient::shouldChangeSelectedRange): Ditto. + (WebKit::EditorClient::shouldApplyStyle): Ditto. + (WebKit::EditorClient::didBeginEditing): Ditto. + (WebKit::EditorClient::respondToChangedContents): Ditto. + (WebKit::EditorClient::respondToChangedSelection): Ditto. + (WebKit::EditorClient::didEndEditing): Ditto. + (WebKit::EditorClient::shouldInsertNode): Ditto. + * webkit/webkitwebview.cpp: + (webkit_web_view_real_should_allow_editing_action): Added this default signal + callback which explicitly allows cancellable editing actions. + (webkit_web_view_class_init): Add new editing signal declarations to the view. + * webkit/webkitwebview.h: + * webkitmarshal.list: Added some new marshaling definitions. + +2010-11-24 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r72499. + http://trac.webkit.org/changeset/72499 + https://bugs.webkit.org/show_bug.cgi?id=50022 + + This change is causing crashes on the bots. (Requested by + mrobinson on #webkit). + + * tests/testatk.c: + (main): + +2010-11-23 Xan Lopez <xlopez@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] Fix IFrame DOM bindings API + https://bugs.webkit.org/show_bug.cgi?id=49980 + + * tests/testdomdocument.c: + (test_dom_document_garbage_collection): change to use the fixed + IFrame APIs. + +2010-11-23 Carlos Garcia Campos <cgarcia@igalia.com> + + Reviewed by Martin Robinson. + + focus issue with links that have tooltips + https://bugs.webkit.org/show_bug.cgi?id=49498 + + Set the area of the widget where the tooltip should be shown when + a new tooltip is set. Since the widget is the same (the view), if + the tooltip area is not set and a new tooltip is triggered while + the previous one is still visible, the text of the tooltip is + updated but its position doesn't change. + + * WebCoreSupport/ChromeClientGtk.cpp: + (WebKit::ChromeClient::mouseDidMoveOverElement): + * webkit/webkitprivate.h: + * webkit/webkitwebview.cpp: + (webkit_web_view_query_tooltip): + +2010-11-21 Mario Sanchez Prada <msanchez@igalia.com> + + Reviewed by Chris Fleizach. + + [GTK] Implement ROLE_COMBO_BOX + https://bugs.webkit.org/show_bug.cgi?id=25678 + + New test to check the implementation of the combo boxes. + + * tests/testatk.c: + (testWebkitAtkComboBox): New test, checking that the roles and the + implemented interfaces for a combo box and its descendants work. + (main): Added the new unit test. + +2010-11-20 Xan Lopez <xlopez@igalia.com> + + Reviewed by Martin Robinson. + + Remove leftover code in unit test. + + * GNUmakefile.am: remove unneeded utils file in dependency list. + * tests/testdomdocument.c: + (main): do not change to the directory of a non existing resource + list. + +2010-11-20 Xan Lopez <xlopez@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] Memory managament for DOM GObject wrappers + https://bugs.webkit.org/show_bug.cgi?id=40302 + + Initial attempt to have a kind of poor man's garbage collection + for GObject DOM objects. We tie the object's lifecycle to their + parent Frame and/or its document; that is, all objects will be + collected when their parent frame is destroyed or when that frame + transitions to a new document. Manual management (calling + g_object_unref on them) is also allowed, and is required for + objects that are not in the DOM tree (eg NodeLists). + + * GNUmakefile.am: add testutils file to testdomdocument.c + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::setMainFrameDocumentReady): collect + DOM objects on document transition. + * tests/testdomdocument.c: + (dom_document_fixture_teardown): only destroy the view if it's not + already destroyed, since the new test detroys it on its own. + (test_dom_document_get_elements_by_tag_name): manually unref node list. + (test_dom_document_get_elements_by_class_name): ditto. + (test_dom_document_get_links): ditto. + (test_dom_document_garbage_collection): test all possible + scenarios for DOM object "garbage collection". + (main): add new test. + * tests/testdomnode.c: + (test_dom_node_hierarchy_navigation): manually unref node list. + (test_dom_node_insertion): ditto. + * webkit/webkithittestresult.cpp: + (webkit_hit_test_result_dispose): unref the inner node on dispose + now that the memory management model is clarified. + (webkit_hit_test_result_class_init): hook dispose. + * webkit/webkitwebframe.cpp: + (webkit_web_frame_core_frame_gone): clear DOM objects attached to this frame. + (webkit_web_frame_finalize): ditto. + +2010-11-18 Xan Lopez <xlopez@igalia.com> + + Reviewed by Martin Robinson. + + Fix introspection build, we were missing a -I flag. + + * GNUmakefile.am: + +2010-11-18 Mario Sanchez Prada <msanchez@igalia.com> + + Reviewed by Martin Robinson. + + [Gtk] atk_text_get_selection returns the wrong offsets after a link + https://bugs.webkit.org/show_bug.cgi?id=49514 + + Updated test case to also chech this specific subcase. + + We need to explicitly check the case of having a selection in a + paragraph after an embedded object (i.e. a link) to make sure the + right calculations are being done when the paragraph is composed + of more than just one text object, and the current selection is + made only in one of them. + + * tests/testatk.c: + (testWebkitAtkTextSelections): Make sure that a selection after a + link in a paragraph is working ok when asking for the text + selection from the point of view of the paragraph. + +2010-11-17 Martin Robinson <mrobinson@igalia.com> + + Reviewed by Gustavo Noronha Silva. + + [GTK] Changing any GNUmakefile.am in the source tree forces a rebuld of the DOM bindings and WebKit APi + https://bugs.webkit.org/show_bug.cgi?id=49400 + + Add GNUmakefile.am and include all WebKit API build rules. Make webkitenum.* + depend on this new file, instead of the generated GNUmakefile.am. + + * GNUmakefile.am: Copied from GNUmakefile.am. + 2010-11-17 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> Reviewed by Martin Robinson. diff --git a/WebKit/gtk/GNUmakefile.am b/WebKit/gtk/GNUmakefile.am new file mode 100644 index 0000000..a3be816 --- /dev/null +++ b/WebKit/gtk/GNUmakefile.am @@ -0,0 +1,550 @@ + +# Programs to run the WebKitGtk unit tests +GTESTER = gtester +GTESTER_REPORT = gtester-report + +lib_LTLIBRARIES += \ + libwebkitgtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la + +nodist_EXTRA_libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_SOURCES = \ + $(webcore_built_nosources) + +nodist_libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_SOURCES = \ + $(webcore_built_sources) \ + $(webkitgtk_built_sources) + +libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_ladir = $(prefix)/include/webkit-@WEBKITGTK_API_VERSION@/webkit +libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_HEADERS = \ + $(webkitgtk_static_h_api) + +nodist_libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_HEADERS = \ + $(webkitgtk_built_h_api) \ + $(GENSOURCES_WEBKIT)/webkitenumtypes.h + +libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_SOURCES = \ + $(webcore_sources) \ + $(webcoregtk_sources) \ + $(webkitgtk_sources) + +libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_CXXFLAGS = \ + $(global_cxxflags) + +libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_CFLAGS = \ + $(global_cflags) + +# When building WebCore/WebKit, we want WebCore/config.h and NOT JavaScriptCore/config.h, +# hence, it's important that WebCore/ should come first before JavaScriptCore in the +# include path. +libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_CPPFLAGS = \ + -DBUILDING_WEBKIT \ + -DPACKAGE_LOCALE_DIR=\"$(localedir)\" \ + -DDATA_DIR=\"${datadir}\" \ + -I$(WebCore)/bindings \ + -I$(WebCore)/bindings/gobject \ + -I$(WebKit) \ + -I$(WebKit)/WebCoreSupport \ + -I$(WebKit)/webkit \ + -I$(GENSOURCES_WEBKIT) \ + -IWebKit/gtk/webkit \ + $(global_cppflags) \ + $(webcore_cppflags) \ + $(webcoregtk_cppflags) \ + $(javascriptcore_cppflags) \ + -fno-strict-aliasing \ + $(HILDON_CPPFLAGS) \ + $(COVERAGE_CFLAGS) \ + $(ENCHANT_CFLAGS) \ + $(GAIL_CFLAGS) \ + $(GEOCLUE_CFLAGS) \ + $(GLIB_CFLAGS) \ + $(GSTREAMER_CFLAGS) \ + $(GTK_CFLAGS) \ + $(HILDON_CFLAGS) \ + $(LIBSOUP_CFLAGS) \ + $(LIBXML_CFLAGS) \ + $(LIBXSLT_CFLAGS) \ + $(SQLITE3_CFLAGS) \ + $(UNICODE_CFLAGS) \ + $(XT_CFLAGS) + +# For the Gtk port we want to use XP_UNIX both in X11 and Mac +if !TARGET_WIN32 +libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_CPPFLAGS += \ + -DXP_UNIX +endif + +libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_LDFLAGS = \ + -version-info @LIBWEBKITGTK_VERSION@ \ + $(version_script) \ + $(no_undefined) + +libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_LIBADD = \ + -lpthread \ + libJavaScriptCore.la \ + $(webcore_ldflags) \ + $(CAIRO_LIBS) \ + $(COVERAGE_LDFLAGS) \ + $(ENCHANT_LIBS) \ + $(FREETYPE_LIBS) \ + $(GAIL_LIBS) \ + $(GEOCLUE_LIBS) \ + $(GLIB_LIBS) \ + $(GSTREAMER_LIBS) \ + $(GTK_LIBS) \ + $(HILDON_LIBS) \ + $(JPEG_LIBS) \ + $(LIBSOUP_LIBS) \ + $(LIBXML_LIBS) \ + $(LIBXSLT_LIBS) \ + $(PANGO_LIBS) \ + $(PNG_LIBS) \ + $(SQLITE3_LIBS) \ + $(UNICODE_LIBS) \ + $(XT_LIBS) \ + $(WINMM_LIBS) \ + $(SHLWAPI_LIBS) \ + $(OLE32_LIBS) + +webkitgtk_static_h_api += \ + $(srcdir)/WebCore/platform/network/soup/cache/webkit/soup-cache.h \ + $(srcdir)/WebKit/gtk/webkit/webkit.h \ + $(srcdir)/WebKit/gtk/webkit/webkitdefines.h \ + $(srcdir)/WebKit/gtk/webkit/webkitdownload.h \ + $(srcdir)/WebKit/gtk/webkit/webkiterror.h \ + $(srcdir)/WebKit/gtk/webkit/webkitgeolocationpolicydecision.h \ + $(srcdir)/WebKit/gtk/webkit/webkithittestresult.h \ + $(srcdir)/WebKit/gtk/webkit/webkitnetworkrequest.h \ + $(srcdir)/WebKit/gtk/webkit/webkitnetworkresponse.h \ + $(srcdir)/WebKit/gtk/webkit/webkitsecurityorigin.h \ + $(srcdir)/WebKit/gtk/webkit/webkitsoupauthdialog.h \ + $(srcdir)/WebKit/gtk/webkit/webkitwebbackforwardlist.h \ + $(srcdir)/WebKit/gtk/webkit/webkitwebdatabase.h \ + $(srcdir)/WebKit/gtk/webkit/webkitwebdatasource.h \ + $(srcdir)/WebKit/gtk/webkit/webkitwebframe.h \ + $(srcdir)/WebKit/gtk/webkit/webkitwebhistoryitem.h \ + $(srcdir)/WebKit/gtk/webkit/webkitwebinspector.h \ + $(srcdir)/WebKit/gtk/webkit/webkitwebnavigationaction.h \ + $(srcdir)/WebKit/gtk/webkit/webkitwebpolicydecision.h \ + $(srcdir)/WebKit/gtk/webkit/webkitwebresource.h \ + $(srcdir)/WebKit/gtk/webkit/webkitwebsettings.h \ + $(srcdir)/WebKit/gtk/webkit/webkitwebwindowfeatures.h \ + $(srcdir)/WebKit/gtk/webkit/webkitwebview.h + +webkitgtk_built_h_api += \ + WebKit/gtk/webkit/webkitversion.h + +webkitgtk_h_api += \ + $(webkitgtk_built_h_api) \ + $(webkitgtk_static_h_api) + +# webkitenumtypes.{h,cpp} cannot be in webkitgtk_built_h_api, because +# the rule that builds it depends on webkitgtk_built_h_api (circular dependency). +webkitgtk_built_sources += \ + DerivedSources/webkit/webkitenumtypes.cpp \ + DerivedSources/webkit/webkitenumtypes.h \ + DerivedSources/webkit/webkitmarshal.cpp \ + DerivedSources/webkit/webkitmarshal.h \ + $(webkitgtk_built_h_api) \ + $(webkitgtk_gdom_built_sources) +BUILT_SOURCES += $(webkitgtk_built_sources) + +webkitgtk_sources += \ + WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp \ + WebKit/gtk/WebCoreSupport/ChromeClientGtk.h \ + WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp \ + WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.h \ + WebKit/gtk/WebCoreSupport/DocumentLoaderGtk.cpp \ + WebKit/gtk/WebCoreSupport/DocumentLoaderGtk.h \ + WebKit/gtk/WebCoreSupport/DragClientGtk.cpp \ + WebKit/gtk/WebCoreSupport/DragClientGtk.h \ + WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp \ + WebKit/gtk/WebCoreSupport/EditorClientGtk.h \ + WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp \ + WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h \ + WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp \ + WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h \ + WebKit/gtk/WebCoreSupport/FrameNetworkingContextGtk.h \ + WebKit/gtk/WebCoreSupport/FullscreenVideoController.cpp \ + WebKit/gtk/WebCoreSupport/FullscreenVideoController.h \ + WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp \ + WebKit/gtk/WebCoreSupport/InspectorClientGtk.h \ + WebKit/gtk/WebCoreSupport/PasteboardHelperGtk.cpp \ + WebKit/gtk/WebCoreSupport/PasteboardHelperGtk.h \ + WebKit/gtk/webkit/webkitapplicationcache.cpp \ + WebKit/gtk/webkit/webkitdownload.cpp \ + WebKit/gtk/webkit/webkiterror.cpp \ + WebKit/gtk/webkit/webkithittestresult.cpp \ + WebKit/gtk/webkit/webkitnetworkrequest.cpp \ + WebKit/gtk/webkit/webkitnetworkresponse.cpp \ + WebKit/gtk/webkit/webkitprivate.cpp \ + WebKit/gtk/webkit/webkitprivate.h \ + WebKit/gtk/webkit/webkitsoupauthdialog.c \ + WebKit/gtk/webkit/webkitversion.cpp \ + WebKit/gtk/webkit/webkitwebbackforwardlist.cpp \ + WebKit/gtk/webkit/webkitwebdatasource.cpp \ + WebKit/gtk/webkit/webkitwebframe.cpp \ + WebKit/gtk/webkit/webkitwebhistoryitem.cpp \ + WebKit/gtk/webkit/webkitwebinspector.cpp \ + WebKit/gtk/webkit/webkitwebnavigationaction.cpp \ + WebKit/gtk/webkit/webkitwebpolicydecision.cpp \ + WebKit/gtk/webkit/webkitgeolocationpolicydecision.cpp \ + WebKit/gtk/webkit/webkitwebresource.cpp \ + WebKit/gtk/webkit/webkitwebdatabase.cpp \ + WebKit/gtk/webkit/webkitsecurityorigin.cpp \ + WebKit/gtk/webkit/webkitwebsettings.cpp \ + WebKit/gtk/webkit/webkitwebview.cpp \ + WebKit/gtk/webkit/webkitwebwindowfeatures.cpp \ + WebKit/gtk/webkit/webkitworkers.cpp + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = WebKit/gtk/@WEBKITGTK_PC_NAME@-@WEBKITGTK_API_VERSION@.pc + +if ENABLE_INTROSPECTION + +JSCore-@WEBKITGTK_API_VERSION@.gir: $(builddir)/WebKit/gtk/JSCore-@WEBKITGTK_API_VERSION@.gir + $(AM_V_GEN)cp $(builddir)/WebKit/gtk/JSCore-@WEBKITGTK_API_VERSION@.gir $(builddir)/ + +JSCORE_GIRSOURCES += JSCore-@WEBKITGTK_API_VERSION@.gir +WEBKIT_GIRSOURCES += WebKit-@WEBKITGTK_API_VERSION@.gir + +$(WEBKIT_GIRSOURCES): $(G_IR_SCANNER) $(JSCORE_GIRSOURCES) libwebkitgtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la + $(AM_V_GEN)$(G_IR_SCANNER) -v --warn-all \ + --symbol-prefix=webkit \ + --identifier-prefix=WebKit \ + --namespace=WebKit \ + --nsversion=@WEBKITGTK_API_VERSION@ \ + --include=GObject-2.0 \ + --include=Gtk-@GTK_API_VERSION@ \ + --include=JSCore-@WEBKITGTK_API_VERSION@ \ + --include=Soup-2.4 \ + --library=webkitgtk-@WEBKITGTK_API_VERSION@ \ + --libtool="$(LIBTOOL)" \ + --pkg=gobject-2.0 \ + --pkg=gtk+-@GTK_API_VERSION@ \ + --pkg=libsoup-2.4 \ + --output=$@ \ + --add-include-path=$(WebKit) \ + --add-include-path=$(builddir) \ + -I$(top_srcdir)/WebCore/platform/network/soup/cache \ + -I$(WebKit) \ + -I$(GENSOURCES) \ + -I$(GENSOURCES_WEBKIT) \ + -I$(builddir)/WebKit/gtk \ + -I$(top_srcdir)/JavaScriptCore/ForwardingHeaders \ + -I$(top_srcdir) \ + $(GENSOURCES_WEBKIT)/webkitenumtypes.h \ + $(webkitgtk_h_api) \ + $(WebKit)/webkit/*.cpp \ + $(WebKit)/webkit/*.c + +girdir = $(datadir)/gir-1.0 +gir_DATA = $(WEBKIT_GIRSOURCES) $(JSCORE_GIRSOURCES) + +typelibsdir += $(libdir)/girepository-1.0 +typelibs_DATA += $(JSCORE_GIRSOURCES:.gir=.typelib) $(WEBKIT_GIRSOURCES:.gir=.typelib) + +%.typelib: %.gir $(G_IR_COMPILER) + $(AM_V_GEN)$(G_IR_COMPILER) --includedir $(WebKit) --includedir $(builddir) $< -o $@ + +CLEANFILES += $(JSCORE_GIRSOURCES) $(WEBKIT_GIRSOURCES) $(typelibs_DATA) + +endif + +EXTRA_DIST += $(builddir)/WebKit/gtk/JSCore-@WEBKITGTK_API_VERSION@.gir + +WEBKIT_MARSHAL_LIST = $(WebKit)/webkitmarshal.list +$(GENSOURCES_WEBKIT)/webkitmarshal.cpp: stamp-webkitmarshal.cpp + @true +$(GENSOURCES_WEBKIT)/webkitmarshal.h: stamp-webkitmarshal.h + @true + +stamp-webkitmarshal.cpp: $(WEBKIT_MARSHAL_LIST) + $(AM_V_GEN) echo "extern \"C\" {" > $(GENSOURCES_WEBKIT)/webkitmarshal.cpp && \ + $(GLIB_GENMARSHAL) --prefix=webkit_marshal $(WEBKIT_MARSHAL_LIST) --body >> $(GENSOURCES_WEBKIT)/webkitmarshal.cpp && \ + echo '}' >> $(GENSOURCES_WEBKIT)/webkitmarshal.cpp && \ + echo timestamp > $(@F) + +stamp-webkitmarshal.h: $(WEBKIT_MARSHAL_LIST) + $(AM_V_GEN)$(GLIB_GENMARSHAL) --prefix=webkit_marshal $(WEBKIT_MARSHAL_LIST) --header > $(GENSOURCES_WEBKIT)/webkitmarshal.h && \ + echo timestamp > $(@F) + +$(GENSOURCES_WEBKIT)/webkitenumtypes.h: stamp-webkitenumtypes.h + @true +stamp-webkitenumtypes.h: $(webkitgtk_h_api) $(WebKit)/GNUmakefile.am + $(AM_V_GEN)glib-mkenums \ + --fhead "#ifndef WEBKIT_ENUM_TYPES_H\n" \ + --fhead "#define WEBKIT_ENUM_TYPES_H\n\n" \ + --fhead "#include <glib-object.h>\n\n" \ + --fhead "#include <webkit/webkitdefines.h>\n\n" \ + --fhead "G_BEGIN_DECLS\n\n" \ + --ftail "G_END_DECLS\n\n" \ + --ftail "#endif\n" \ + --fprod "#include <webkit/@basename@>\n\n" \ + --eprod "#define WEBKIT_TYPE_@ENUMSHORT@ @enum_name@_get_type()\n\n" \ + --eprod "WEBKIT_API GType\n@enum_name@_get_type(void);\n\n" \ + $(webkitgtk_h_api) | \ + sed 's,web_kit,webkit,' | \ + sed 's,WEBKIT_TYPE_KIT,WEBKIT_TYPE,' \ + > xgen-gth \ + && (cmp -s xgen-gth $(GENSOURCES_WEBKIT)/webkitenumtypes.h || cp xgen-gth $(GENSOURCES_WEBKIT)/webkitenumtypes.h) \ + && rm -f xgen-gth \ + && echo timestamp > $(@F) + +$(GENSOURCES_WEBKIT)/webkitenumtypes.cpp: $(webkitgtk_h_api) $(WebKit)/GNUmakefile.am + $(AM_V_GEN)glib-mkenums \ + --fhead "#include <config.h>\n" \ + --fhead "#include <glib-object.h>\n" \ + --fhead "#include \"$(GENSOURCES_WEBKIT)/webkitenumtypes.h\"\n\n" \ + --fhead "extern \"C\" {\n\n" \ + --fprod "\n/* enumerations from \"@filename@\" */" \ + --vhead "static const G@Type@Value _@enum_name@_values[] = {" \ + --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ + --vtail " { 0, NULL, NULL }\n};\n\n" \ + --vtail "GType @enum_name@_get_type(void)\n{\n" \ + --vtail " static GType type = 0;\n\n" \ + --vtail " if (!type)\n" \ + --vtail " type = g_@type@_register_static(\"@EnumName@\", _@enum_name@_values);\n\n" \ + --vtail " return type;\n}\n\n" \ + --ftail "}\n" \ + $(webkitgtk_h_api) | \ + sed 's,web_kit,webkit,' \ + > xgen-gtc \ + && cp xgen-gtc $@ \ + && rm -f xgen-gtc + +# GSettings +if USE_GSETTINGS +gsettings_SCHEMAS = $(top_builddir)/WebKit/gtk/org.webkitgtk-@WEBKITGTK_API_VERSION@.gschema.xml +@GSETTINGS_RULES@ +endif + +EXTRA_DIST += \ + $(WebKit)/ChangeLog \ + $(WebKit)/NEWS \ + $(WebKit)/webkitmarshal.list \ + $(WebKit)/docs/GNUmakefile.* \ + $(WebKit)/docs/webkitenvironment.xml \ + $(WebKit)/docs/webkitgtk-docs.sgml \ + $(WebKit)/docs/webkitgtk-sections.txt \ + $(WebKit)/docs/version.xml.in \ + $(WebKit)/po/* \ + $(WebKit)/resources/* \ + $(WebKit)/tests/resources/* \ + $(WebKit)/tests/test_utils.h \ + $(WebKit)/org.webkitgtk.gschema.xml.in + +# extra resource files +resourcesdir = ${datadir}/webkit-@WEBKITGTK_API_VERSION@/resources +dist_resources_DATA = \ + $(shell ls $(srcdir)/WebKit/gtk/resources/*.html) + +# Build unit tests +noinst_PROGRAMS += $(TEST_PROGS) +webkit_tests_cflags = \ + -fno-strict-aliasing \ + -I$(srcdir)/JavaScriptCore/ForwardingHeaders \ + -I$(WebCore)/platform/network/soup/cache \ + -I$(WebKit) \ + -I$(GENSOURCES) \ + -I$(top_builddir)/WebKit/gtk \ + -I$(top_srcdir)/WebCore/bindings \ + -I$(top_srcdir)/WebCore/bindings/gobject \ + $(global_cppflags) \ + $(global_cflags) \ + $(GLIB_CFLAGS) \ + $(GTK_CFLAGS) \ + $(LIBSOUP_CFLAGS) + +webkit_tests_ldadd = \ + libwebkitgtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la \ + $(GTK_LIBS) \ + $(GLIB_LIBS) \ + $(LIBSOUP_LIBS) + +webkit_tests_ldflags = \ + -no-install \ + -no-fast-install + +TEST_PROGS += \ + Programs/unittests/testdomdocument \ + Programs/unittests/testdomdomwindow \ + Programs/unittests/testdomnode \ + Programs/unittests/testhttpbackend \ + Programs/unittests/testloading \ + Programs/unittests/testglobals \ + Programs/unittests/testmimehandling \ + Programs/unittests/testnetworkrequest \ + Programs/unittests/testnetworkresponse \ + Programs/unittests/testwebframe \ + Programs/unittests/testwebbackforwardlist \ + Programs/unittests/testwebhistoryitem \ + Programs/unittests/testwindow \ + Programs/unittests/testdownload \ + Programs/unittests/testatk \ + Programs/unittests/testatkroles \ + Programs/unittests/testhittestresult \ + Programs/unittests/testwebsettings \ + Programs/unittests/testwebresource \ + Programs/unittests/testwebdatasource \ + Programs/unittests/testwebview \ + Programs/unittests/testkeyevents \ + Programs/unittests/testcopyandpaste + +# Add additional tests here +Programs_unittests_testdomdocument_SOURCES = WebKit/gtk/tests/testdomdocument.c +Programs_unittests_testdomdocument_CFLAGS = $(webkit_tests_cflags) +Programs_unittests_testdomdocument_LDADD = $(webkit_tests_ldadd) +Programs_unittests_testdomdocument_LDFLAGS = $(webkit_tests_ldflags) + +Programs_unittests_testdomdomwindow_SOURCES = WebKit/gtk/tests/testdomdomwindow.c +Programs_unittests_testdomdomwindow_CFLAGS = $(webkit_tests_cflags) +Programs_unittests_testdomdomwindow_LDADD = $(webkit_tests_ldadd) +Programs_unittests_testdomdomwindow_LDFLAGS = $(webkit_tests_ldflags) + +Programs_unittests_testdomnode_SOURCES = WebKit/gtk/tests/testdomnode.c +Programs_unittests_testdomnode_CFLAGS = $(webkit_tests_cflags) +Programs_unittests_testdomnode_LDADD = $(webkit_tests_ldadd) +Programs_unittests_testdomnode_LDFLAGS = $(webkit_tests_ldflags) + +Programs_unittests_testhttpbackend_SOURCES = WebKit/gtk/tests/testhttpbackend.c +Programs_unittests_testhttpbackend_CFLAGS = $(webkit_tests_cflags) +Programs_unittests_testhttpbackend_LDADD = $(webkit_tests_ldadd) +Programs_unittests_testhttpbackend_LDFLAGS = $(webkit_tests_ldflags) + +Programs_unittests_testglobals_SOURCES = WebKit/gtk/tests/testglobals.c +Programs_unittests_testglobals_CFLAGS = $(webkit_tests_cflags) +Programs_unittests_testglobals_LDADD = $(webkit_tests_ldadd) +Programs_unittests_testglobals_LDFLAGS = $(webkit_tests_ldflags) + +Programs_unittests_testloading_SOURCES = WebKit/gtk/tests/testloading.c +Programs_unittests_testloading_CFLAGS = $(webkit_tests_cflags) +Programs_unittests_testloading_LDADD = $(webkit_tests_ldadd) +Programs_unittests_testloading_LDFLAGS = $(webkit_tests_ldflags) + +Programs_unittests_testmimehandling_SOURCES = WebKit/gtk/tests/testmimehandling.c WebKit/gtk/tests/test_utils.c +Programs_unittests_testmimehandling_CFLAGS = $(webkit_tests_cflags) +Programs_unittests_testmimehandling_LDADD = $(webkit_tests_ldadd) +Programs_unittests_testmimehandling_LDFLAGS = $(webkit_tests_ldflags) + +Programs_unittests_testnetworkrequest_SOURCES = WebKit/gtk/tests/testnetworkrequest.c +Programs_unittests_testnetworkrequest_CFLAGS = $(webkit_tests_cflags) +Programs_unittests_testnetworkrequest_LDADD = $(webkit_tests_ldadd) +Programs_unittests_testnetworkrequest_LDFLAGS = $(webkit_tests_ldflags) + +Programs_unittests_testnetworkresponse_SOURCES = WebKit/gtk/tests/testnetworkresponse.c +Programs_unittests_testnetworkresponse_CFLAGS = $(webkit_tests_cflags) +Programs_unittests_testnetworkresponse_LDADD = $(webkit_tests_ldadd) +Programs_unittests_testnetworkresponse_LDFLAGS = $(webkit_tests_ldflags) + +Programs_unittests_testwebframe_SOURCES = WebKit/gtk/tests/testwebframe.c +Programs_unittests_testwebframe_CFLAGS = $(webkit_tests_cflags) +Programs_unittests_testwebframe_LDADD = $(webkit_tests_ldadd) +Programs_unittests_testwebframe_LDFLAGS = $(webkit_tests_ldflags) + +Programs_unittests_testwebbackforwardlist_SOURCES = WebKit/gtk/tests/testwebbackforwardlist.c +Programs_unittests_testwebbackforwardlist_CFLAGS = $(webkit_tests_cflags) +Programs_unittests_testwebbackforwardlist_LDADD = $(webkit_tests_ldadd) +Programs_unittests_testwebbackforwardlist_LDFLAGS = $(webkit_tests_ldflags) + +Programs_unittests_testwebhistoryitem_SOURCES = WebKit/gtk/tests/testwebhistoryitem.c +Programs_unittests_testwebhistoryitem_CFLAGS = $(webkit_tests_cflags) +Programs_unittests_testwebhistoryitem_LDADD = $(webkit_tests_ldadd) +Programs_unittests_testwebhistoryitem_LDFLAGS = $(webkit_tests_ldflags) + +Programs_unittests_testwindow_SOURCES = WebKit/gtk/tests/testwindow.c +Programs_unittests_testwindow_CFLAGS = $(webkit_tests_cflags) +Programs_unittests_testwindow_LDADD = $(webkit_tests_ldadd) +Programs_unittests_testwindow_LDFLAGS = $(webkit_tests_ldflags) + +Programs_unittests_testdownload_SOURCES = WebKit/gtk/tests/testdownload.c +Programs_unittests_testdownload_CFLAGS = $(webkit_tests_cflags) +Programs_unittests_testdownload_LDADD = $(webkit_tests_ldadd) +Programs_unittests_testdownload_LDFLAGS = $(webkit_tests_ldflags) + +Programs_unittests_testatk_SOURCES = WebKit/gtk/tests/testatk.c +Programs_unittests_testatk_CFLAGS = $(webkit_tests_cflags) +Programs_unittests_testatk_LDADD = $(webkit_tests_ldadd) +Programs_unittests_testatk_LDFLAGS = $(webkit_tests_ldflags) + +Programs_unittests_testatkroles_SOURCES = WebKit/gtk/tests/testatkroles.c +Programs_unittests_testatkroles_CFLAGS = $(webkit_tests_cflags) +Programs_unittests_testatkroles_LDADD = $(webkit_tests_ldadd) +Programs_unittests_testatkroles_LDFLAGS = $(webkit_tests_ldflags) + +Programs_unittests_testwebsettings_SOURCES = WebKit/gtk/tests/testwebsettings.c +Programs_unittests_testwebsettings_CFLAGS = $(webkit_tests_cflags) +Programs_unittests_testwebsettings_LDADD = $(webkit_tests_ldadd) +Programs_unittests_testwebsettings_LDFLAGS = $(webkit_tests_ldflags) + +Programs_unittests_testwebresource_SOURCES = WebKit/gtk/tests/testwebresource.c +Programs_unittests_testwebresource_CFLAGS = $(webkit_tests_cflags) +Programs_unittests_testwebresource_LDADD = $(webkit_tests_ldadd) + +Programs_unittests_testwebdatasource_SOURCES = WebKit/gtk/tests/testwebdatasource.c +Programs_unittests_testwebdatasource_CFLAGS = $(webkit_tests_cflags) +Programs_unittests_testwebdatasource_LDADD = $(webkit_tests_ldadd) + +Programs_unittests_testwebview_SOURCES = WebKit/gtk/tests/testwebview.c WebKit/gtk/tests/test_utils.c +Programs_unittests_testwebview_CFLAGS = $(webkit_tests_cflags) +Programs_unittests_testwebview_LDADD = $(webkit_tests_ldadd) +Programs_unittests_testwebview_LDFLAGS = $(webkit_tests_ldflags) + +Programs_unittests_testhittestresult_SOURCES = WebKit/gtk/tests/testhittestresult.c +Programs_unittests_testhittestresult_CFLAGS = $(webkit_tests_cflags) +Programs_unittests_testhittestresult_LDADD = $(webkit_tests_ldadd) + +Programs_unittests_testkeyevents_SOURCES = WebKit/gtk/tests/testkeyevents.c +Programs_unittests_testkeyevents_CFLAGS = $(webkit_tests_cflags) +Programs_unittests_testkeyevents_LDADD = $(webkit_tests_ldadd) +Programs_unittests_testkeyevents_LDFLAGS = $(webkit_tests_ldflags) + +Programs_unittests_testcopyandpaste_SOURCES = WebKit/gtk/tests/testcopyandpaste.c \ + WebCore/platform/gtk/GtkVersioning.c +Programs_unittests_testcopyandpaste_CFLAGS = $(webkit_tests_cflags) \ + -I$(srcdir)/WebCore/platform/gtk \ + -I$(srcdir)/WebCore +Programs_unittests_testcopyandpaste_LDADD = $(webkit_tests_ldadd) +Programs_unittests_testcopyandpaste_LDFLAGS = $(webkit_tests_ldflags) + +# Project-wide clean rules +# Files that will be cleaned +CLEANFILES += \ + $(BUILT_SOURCES) \ + $(top_builddir)/stamp-webkitmarshal.cpp \ + $(top_builddir)/stamp-webkitmarshal.h \ + $(top_builddir)/stamp-webkitenumtypes.cpp \ + $(top_builddir)/stamp-webkitenumtypes.h \ + $(top_builddir)/Programs/GtkLauncher + +DISTCLEANFILES += \ + $(top_builddir)/WebKit/gtk/docs/version.xml \ + $(top_builddir)/WebKit/gtk/docs/GNUmakefile \ + $(top_builddir)/WebKit/gtk/@WEBKITGTK_PC_NAME@-@WEBKITGTK_API_VERSION@.pc \ + $(top_builddir)/WebKit/gtk/org.webkitgtk-@WEBKITGTK_API_VERSION@.gschema.xml \ + $(top_builddir)/WebKit/gtk/webkit/webkitversion.h + +dist-hook: + cp $(WebKit)/NEWS $(distdir) +install-data-local: po-install-data-local +installdirs-data-local: po-installdirs-data-local +uninstall-local: po-uninstall-local + +# Run all tests in cwd +# FIXME: we should run this under xvfb +test: $(TEST_PROGS) + $(GTESTER) --verbose $(TEST_PROGS); + +# test-report: run tests in cwd and generate report +# full-report: run tests in cwd with -m perf and -m slow and generate report +# perf-report: run tests in cwd with -m perf and generate report +test-report full-report perf-report: $(TEST_PROGS) + @ case $@ in \ + test-report) test_options="-k";; \ + full-report) test_options="-k -m=perf";; \ + perf-report) test_options="-k -m=perf -m=slow";; \ + esac ; \ + $(GTESTER) --verbose $$test_options -o test-report.xml $(TEST_PROGS); \ + $(GTESTER_REPORT) test-report.xml > test-report.html ; + +.PHONY: test test-report perf-report full-report +check-local: test diff --git a/WebKit/gtk/NEWS b/WebKit/gtk/NEWS index ead8923..03db88b 100644 --- a/WebKit/gtk/NEWS +++ b/WebKit/gtk/NEWS @@ -1,4 +1,21 @@ ================ +WebKitGTK+ 1.3.7 +================ + +What's new in WebKitGTK+ 1.3.7? + + - Fix error pages template's not being filled properly. + - Fix context menu activation through keyboard. + - Add automatic garbage collection for most GObject DOM objects (all + those that are actually in the DOM tree). This gets rid of most of + the leaks when using the bindings. + - Add an Inspector API to inspect a DOM node. + - Tons of a11y bugfixes. + - Tons of fixes for the in-tree SoupCache, should work much better + now. + - Many other bugfixes. + +================ WebKitGTK+ 1.3.6 ================ diff --git a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp index d63317c..190ae9b 100644 --- a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp +++ b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp @@ -26,10 +26,12 @@ #include "Console.h" #include "DumpRenderTreeSupportGtk.h" +#include "Element.h" #include "FileSystem.h" #include "FileChooser.h" #include "FloatRect.h" #include "FrameLoadRequest.h" +#include "FrameView.h" #include "GtkVersioning.h" #include "HTMLNames.h" #include "IntRect.h" @@ -520,6 +522,13 @@ void ChromeClient::mouseDidMoveOverElement(const HitTestResult& hit, unsigned mo g_signal_emit_by_name(m_webView, "hovering-over-link", 0, 0); m_hoveredLinkURL = KURL(); } + + if (Node* node = hit.innerNonSharedNode()) { + Frame* frame = node->document()->frame(); + FrameView* view = frame ? frame->view() : 0; + m_webView->priv->tooltipArea = view ? view->contentsToWindow(node->getRect()) : IntRect(); + } else + m_webView->priv->tooltipArea = IntRect(); } void ChromeClient::setToolTip(const String& toolTip, TextDirection) diff --git a/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp b/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp index e04b5f9..da07e56 100644 --- a/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp +++ b/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp @@ -38,6 +38,11 @@ #include "Page.h" #include "PasteboardHelperGtk.h" #include "PlatformKeyboardEvent.h" +#include "WebKitDOMBinding.h" +#include "WebKitDOMCSSStyleDeclarationPrivate.h" +#include "WebKitDOMHTMLElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMRangePrivate.h" #include "WindowsKeyboardCodes.h" #include "webkitmarshal.h" #include "webkitprivate.h" @@ -267,15 +272,20 @@ void EditorClient::setInputMethodState(bool active) #endif } -bool EditorClient::shouldDeleteRange(Range*) +bool EditorClient::shouldDeleteRange(Range* range) { - notImplemented(); - return true; + gboolean accept = TRUE; + PlatformRefPtr<WebKitDOMRange> kitRange(adoptPlatformRef(kit(range))); + g_signal_emit_by_name(m_webView, "should-delete-range", kitRange.get(), &accept); + return accept; } -bool EditorClient::shouldShowDeleteInterface(HTMLElement*) +bool EditorClient::shouldShowDeleteInterface(HTMLElement* element) { - return false; + gboolean accept = TRUE; + PlatformRefPtr<WebKitDOMHTMLElement> kitElement(adoptPlatformRef(kit(element))); + g_signal_emit_by_name(m_webView, "should-show-delete-interface-for-element", kitElement.get(), &accept); + return accept; } bool EditorClient::isContinuousSpellCheckingEnabled() @@ -300,38 +310,77 @@ int EditorClient::spellCheckerDocumentTag() return 0; } -bool EditorClient::shouldBeginEditing(WebCore::Range*) +bool EditorClient::shouldBeginEditing(WebCore::Range* range) { clearPendingComposition(); - notImplemented(); - return true; + gboolean accept = TRUE; + PlatformRefPtr<WebKitDOMRange> kitRange(adoptPlatformRef(kit(range))); + g_signal_emit_by_name(m_webView, "should-begin-editing", kitRange.get(), &accept); + return accept; } -bool EditorClient::shouldEndEditing(WebCore::Range*) +bool EditorClient::shouldEndEditing(WebCore::Range* range) { clearPendingComposition(); - notImplemented(); - return true; + gboolean accept = TRUE; + PlatformRefPtr<WebKitDOMRange> kitRange(adoptPlatformRef(kit(range))); + g_signal_emit_by_name(m_webView, "should-end-editing", kitRange.get(), &accept); + return accept; } -bool EditorClient::shouldInsertText(const String&, Range*, EditorInsertAction) +static WebKitInsertAction kit(EditorInsertAction action) { - notImplemented(); - return true; + switch (action) { + case EditorInsertActionTyped: + return WEBKIT_INSERT_ACTION_TYPED; + case EditorInsertActionPasted: + return WEBKIT_INSERT_ACTION_PASTED; + case EditorInsertActionDropped: + return WEBKIT_INSERT_ACTION_DROPPED; + } + ASSERT_NOT_REACHED(); + return WEBKIT_INSERT_ACTION_TYPED; } -bool EditorClient::shouldChangeSelectedRange(Range*, Range*, EAffinity, bool) +bool EditorClient::shouldInsertText(const String& string, Range* range, EditorInsertAction action) { - notImplemented(); - return true; + gboolean accept = TRUE; + PlatformRefPtr<WebKitDOMRange> kitRange(adoptPlatformRef(kit(range))); + g_signal_emit_by_name(m_webView, "should-insert-text", string.utf8().data(), kitRange.get(), kit(action), &accept); + return accept; } -bool EditorClient::shouldApplyStyle(WebCore::CSSStyleDeclaration*, WebCore::Range*) +static WebKitSelectionAffinity kit(EAffinity affinity) { - notImplemented(); - return true; + switch (affinity) { + case UPSTREAM: + return WEBKIT_SELECTION_AFFINITY_UPSTREAM; + case DOWNSTREAM: + return WEBKIT_SELECTION_AFFINITY_DOWNSTREAM; + } + ASSERT_NOT_REACHED(); + return WEBKIT_SELECTION_AFFINITY_UPSTREAM; +} + +bool EditorClient::shouldChangeSelectedRange(Range* fromRange, Range* toRange, EAffinity affinity, bool stillSelecting) +{ + gboolean accept = TRUE; + PlatformRefPtr<WebKitDOMRange> kitFromRange(fromRange ? adoptPlatformRef(kit(fromRange)) : 0); + PlatformRefPtr<WebKitDOMRange> kitToRange(toRange ? adoptPlatformRef(kit(toRange)) : 0); + g_signal_emit_by_name(m_webView, "should-change-selected-range", kitFromRange.get(), kitToRange.get(), + kit(affinity), stillSelecting, &accept); + return accept; +} + +bool EditorClient::shouldApplyStyle(WebCore::CSSStyleDeclaration* declaration, WebCore::Range* range) +{ + gboolean accept = TRUE; + PlatformRefPtr<WebKitDOMCSSStyleDeclaration> kitDeclaration(kit(declaration)); + PlatformRefPtr<WebKitDOMRange> kitRange(adoptPlatformRef(kit(range))); + g_signal_emit_by_name(m_webView, "should-apply-style", kitDeclaration.get(), kitRange.get(), &accept); + return accept; } bool EditorClient::shouldMoveRangeAfterDelete(WebCore::Range*, WebCore::Range*) @@ -342,12 +391,12 @@ bool EditorClient::shouldMoveRangeAfterDelete(WebCore::Range*, WebCore::Range*) void EditorClient::didBeginEditing() { - notImplemented(); + g_signal_emit_by_name(m_webView, "editing-began"); } void EditorClient::respondToChangedContents() { - notImplemented(); + g_signal_emit_by_name(m_webView, "user-changed-contents"); } static WebKitWebView* viewSettingClipboard = 0; @@ -394,6 +443,8 @@ static void setSelectionPrimaryClipboardIfNeeded(WebKitWebView* webView) void EditorClient::respondToChangedSelection() { + g_signal_emit_by_name(m_webView, "selection-changed"); + WebKitWebViewPrivate* priv = m_webView->priv; WebCore::Page* corePage = core(m_webView); Frame* targetFrame = corePage->focusController()->focusedOrMainFrame(); @@ -422,7 +473,7 @@ void EditorClient::respondToChangedSelection() void EditorClient::didEndEditing() { - notImplemented(); + g_signal_emit_by_name(m_webView, "editing-ended"); } void EditorClient::didWriteSelectionToPasteboard() @@ -494,10 +545,13 @@ void EditorClient::redo() } } -bool EditorClient::shouldInsertNode(Node*, Range*, EditorInsertAction) +bool EditorClient::shouldInsertNode(Node* node, Range* range, EditorInsertAction action) { - notImplemented(); - return true; + gboolean accept = TRUE; + PlatformRefPtr<WebKitDOMRange> kitRange(adoptPlatformRef(kit(range))); + PlatformRefPtr<WebKitDOMNode> kitNode(adoptPlatformRef(kit(node))); + g_signal_emit_by_name(m_webView, "should-insert-node", kitNode.get(), kitRange.get(), kit(action), &accept); + return accept; } void EditorClient::pageDestroyed() @@ -954,7 +1008,7 @@ bool EditorClient::spellingUIIsShowing() return false; } -void EditorClient::getGuessesForWord(const String& word, WTF::Vector<String>& guesses) +void EditorClient::getGuessesForWord(const String& word, const String& context, WTF::Vector<String>& guesses) { GSList* dicts = webkit_web_settings_get_enchant_dicts(m_webView); guesses.clear(); diff --git a/WebKit/gtk/WebCoreSupport/EditorClientGtk.h b/WebKit/gtk/WebCoreSupport/EditorClientGtk.h index f9ff82e..22543c6 100644 --- a/WebKit/gtk/WebCoreSupport/EditorClientGtk.h +++ b/WebKit/gtk/WebCoreSupport/EditorClientGtk.h @@ -129,7 +129,7 @@ namespace WebKit { virtual void updateSpellingUIWithMisspelledWord(const WTF::String&); virtual void showSpellingUI(bool show); virtual bool spellingUIIsShowing(); - virtual void getGuessesForWord(const WTF::String&, WTF::Vector<WTF::String>& guesses); + virtual void getGuessesForWord(const WTF::String& word, const WTF::String& context, WTF::Vector<WTF::String>& guesses); virtual void willSetInputMethodState(); virtual void setInputMethodState(bool enabled); diff --git a/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp b/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp index b23bd70..fdef9dc 100644 --- a/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp +++ b/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp @@ -28,6 +28,7 @@ #include "ArchiveResource.h" #include "CachedFrame.h" #include "Color.h" +#include "DOMObjectCache.h" #include "DocumentLoader.h" #include "DocumentLoaderGtk.h" #include "FormState.h" @@ -696,9 +697,10 @@ void FrameLoaderClient::registerForIconNotification(bool shouldRegister) notImplemented(); } -void FrameLoaderClient::setMainFrameDocumentReady(bool) +void FrameLoaderClient::setMainFrameDocumentReady(bool ready) { - // this is only interesting once we provide an external API for the DOM + if (!ready) + DOMObjectCache::clearByFrame(core(m_frame)); } bool FrameLoaderClient::hasWebView() const diff --git a/WebKit/gtk/tests/testatk.c b/WebKit/gtk/tests/testatk.c index 509cb86..abd6091 100644 --- a/WebKit/gtk/tests/testatk.c +++ b/WebKit/gtk/tests/testatk.c @@ -44,6 +44,8 @@ static const char* contentsInTable = "<html><body><table><tr><td>foo</td><td>bar static const char* contentsInTableWithHeaders = "<html><body><table><tr><th>foo</th><th>bar</th><th colspan='2'>baz</th></tr><tr><th>qux</th><td>1</td><td>2</td><td>3</td></tr><tr><th rowspan='2'>quux</th><td>4</td><td>5</td><td>6</td></tr><tr><td>6</td><td>7</td><td>8</td></tr><tr><th>corge</th><td>9</td><td>10</td><td>11</td></tr></table><table><tr><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td></tr></table></body></html>"; +static const char* comboBoxSelector = "<html><body><select><option selected value='foo'>foo</option><option value='bar'>bar</option></select></body></html>"; + static const char* formWithTextInputs = "<html><body><form><input type='text' name='entry' /></form></body></html>"; static const char* hypertextAndHyperlinks = "<html><body><p>A paragraph with no links at all</p><p><a href='http://foo.bar.baz/'>A line</a> with <a href='http://bar.baz.foo/'>a link in the middle</a> as well as at the beginning and <a href='http://baz.foo.bar/'>at the end</a></p></body></html>"; @@ -221,6 +223,107 @@ static void runGetTextTests(AtkText* textObject) 0, "This is a test. This is the second sentence. And this the third.", 0, 64); } +static void testWebkitAtkComboBox() +{ + WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); + g_object_ref_sink(webView); + GtkAllocation allocation = { 0, 0, 800, 600 }; + gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); + webkit_web_view_load_string(webView, comboBoxSelector, 0, 0, 0); + + /* Wait for the accessible objects to be created. */ + waitForAccessibleObjects(); + + AtkObject* object = gtk_widget_get_accessible(GTK_WIDGET(webView)); + g_assert(object); + + AtkObject* formObject = atk_object_ref_accessible_child(object, 0); + g_assert(formObject); + + AtkObject* comboBox = atk_object_ref_accessible_child(formObject, 0); + g_assert(ATK_IS_OBJECT(comboBox)); + + AtkObject* menuPopup = atk_object_ref_accessible_child(comboBox, 0); + g_assert(ATK_IS_OBJECT(menuPopup)); + + AtkObject* item1 = atk_object_ref_accessible_child(menuPopup, 0); + g_assert(ATK_IS_OBJECT(item1)); + + AtkObject* item2 = atk_object_ref_accessible_child(menuPopup, 1); + g_assert(ATK_IS_OBJECT(item2)); + + /* Check roles. */ + g_assert(atk_object_get_role(comboBox) == ATK_ROLE_COMBO_BOX); + g_assert(atk_object_get_role(menuPopup) == ATK_ROLE_MENU); + g_assert(atk_object_get_role(item1) == ATK_ROLE_MENU_ITEM); + g_assert(atk_object_get_role(item2) == ATK_ROLE_MENU_ITEM); + + /* Check the implementation of the AtkSelection interface. */ + g_assert(ATK_IS_SELECTION(comboBox)); + AtkSelection* atkSelection = ATK_SELECTION(comboBox); + g_assert_cmpint(atk_selection_get_selection_count(atkSelection), ==, 1); + g_assert(atk_selection_is_child_selected(atkSelection, 0)); + g_assert(!atk_selection_is_child_selected(atkSelection, 1)); + AtkObject* selectedItem = atk_selection_ref_selection(atkSelection, 0); + g_assert(selectedItem == item1); + g_object_unref(selectedItem); + + /* Check the implementations of the AtkAction interface. */ + g_assert(ATK_IS_ACTION(comboBox)); + AtkAction* atkAction = ATK_ACTION(comboBox); + g_assert_cmpint(atk_action_get_n_actions(atkAction), ==, 1); + g_assert(atk_action_do_action(atkAction, 0)); + + g_assert(ATK_IS_ACTION(menuPopup)); + atkAction = ATK_ACTION(menuPopup); + g_assert_cmpint(atk_action_get_n_actions(atkAction), ==, 1); + g_assert(atk_action_do_action(atkAction, 0)); + + g_assert(ATK_IS_ACTION(item1)); + atkAction = ATK_ACTION(item1); + g_assert_cmpint(atk_action_get_n_actions(atkAction), ==, 1); + g_assert(atk_action_do_action(atkAction, 0)); + + g_assert(ATK_IS_ACTION(item2)); + atkAction = ATK_ACTION(item2); + g_assert_cmpint(atk_action_get_n_actions(atkAction), ==, 1); + g_assert(atk_action_do_action(atkAction, 0)); + + /* After selecting the second item, selection should have changed. */ + g_assert_cmpint(atk_selection_get_selection_count(atkSelection), ==, 1); + g_assert(!atk_selection_is_child_selected(atkSelection, 0)); + g_assert(atk_selection_is_child_selected(atkSelection, 1)); + selectedItem = atk_selection_ref_selection(atkSelection, 0); + g_assert(selectedItem == item2); + g_object_unref(selectedItem); + + /* Check the implementation of the AtkText interface. */ + g_assert(ATK_IS_TEXT(item1)); + AtkText* atkText = ATK_TEXT(item1); + char *text = atk_text_get_text(atkText, 0, -1); + g_assert_cmpstr(text, ==, "foo"); + g_free(text); + text = atk_text_get_text(atkText, 0, 2); + g_assert_cmpstr(text, ==, "fo"); + g_free(text); + + g_assert(ATK_IS_TEXT(item2)); + atkText = ATK_TEXT(item2); + text = atk_text_get_text(atkText, 0, -1); + g_assert_cmpstr(text, ==, "bar"); + g_free(text); + text = atk_text_get_text(atkText, 1, 3); + g_assert_cmpstr(text, ==, "ar"); + g_free(text); + + g_object_unref(formObject); + g_object_unref(comboBox); + g_object_unref(menuPopup); + g_object_unref(item1); + g_object_unref(item2); + g_object_unref(webView); +} + static void testWebkitAtkGetTextAtOffsetForms() { WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); @@ -776,6 +879,16 @@ static void testWebkitAtkTextSelections() g_assert_cmpstr(selectedText, ==, "a li"); g_free (selectedText); + /* Make a selection after the link and check selection for the whole paragraph. */ + result = atk_text_set_selection(paragraph2, 0, 27, 37); + g_assert(result); + g_assert_cmpint(atk_text_get_n_selections(paragraph2), ==, 1); + selectedText = atk_text_get_selection(paragraph2, 0, &startOffset, &endOffset); + g_assert_cmpint(startOffset, ==, 27); + g_assert_cmpint(endOffset, ==, 37); + g_assert_cmpstr(selectedText, ==, "the middle"); + g_free (selectedText); + /* Remove selections and text everything again. */ result = atk_text_remove_selection(paragraph2, 0); g_assert(result); @@ -1201,6 +1314,7 @@ int main(int argc, char** argv) gtk_test_init(&argc, &argv, 0); g_test_bug_base("https://bugs.webkit.org/"); + g_test_add_func("/webkit/atk/comboBox", testWebkitAtkComboBox); g_test_add_func("/webkit/atk/getTextAtOffset", testWebkitAtkGetTextAtOffset); g_test_add_func("/webkit/atk/getTextAtOffsetForms", testWebkitAtkGetTextAtOffsetForms); g_test_add_func("/webkit/atk/getTextAtOffsetNewlines", testWebkitAtkGetTextAtOffsetNewlines); diff --git a/WebKit/gtk/tests/testdomdocument.c b/WebKit/gtk/tests/testdomdocument.c index ec2f579..56e233f 100644 --- a/WebKit/gtk/tests/testdomdocument.c +++ b/WebKit/gtk/tests/testdomdocument.c @@ -30,7 +30,8 @@ #define HTML_DOCUMENT_ELEMENTS "<html><body><ul><li>1</li><li>2</li><li>3</li></ul></body></html>" #define HTML_DOCUMENT_ELEMENTS_CLASS "<html><body><div class=\"test\"></div><div class=\"strange\"></div><div class=\"test\"></div></body></html>" #define HTML_DOCUMENT_ELEMENTS_ID "<html><body><div id=\"testok\"></div><div id=\"testbad\">first</div><div id=\"testbad\">second</div></body></html>" -#define HTML_DOCUMENT_LINKS "<html><body><a href=\"about:blank\">blank</a><a href=\"http://www.google.com\">google</a><a href=\"http://www.webkit.org\">webkit</a></body></html>" +#define HTML_DOCUMENT_LINKS "<html><head><title>Title</title></head><body><a href=\"about:blank\">blank</a><a href=\"http://www.google.com\">google</a><a href=\"http://www.webkit.org\">webkit</a></body></html>" +#define HTML_DOCUMENT_IFRAME "<html><head><title>IFrame</title></head><body><iframe id='iframe'></iframe><div id='test'></div></body></html>" typedef struct { GtkWidget* webView; @@ -60,7 +61,8 @@ static void dom_document_fixture_setup(DomDocumentFixture* fixture, gconstpointe static void dom_document_fixture_teardown(DomDocumentFixture* fixture, gconstpointer data) { - g_object_unref(fixture->webView); + if (fixture->webView) + g_object_unref(fixture->webView); g_main_loop_unref(fixture->loop); } @@ -107,6 +109,8 @@ static void test_dom_document_get_elements_by_tag_name(DomDocumentFixture* fixtu g_assert_cmpstr(webkit_dom_html_element_get_inner_text(htmlElement), ==, n); g_free(n); } + + g_object_unref(list); } static void test_dom_document_get_elements_by_class_name(DomDocumentFixture* fixture, gconstpointer data) @@ -130,6 +134,8 @@ static void test_dom_document_get_elements_by_class_name(DomDocumentFixture* fix g_assert(element); g_assert_cmpstr(webkit_dom_element_get_tag_name(element), ==, "DIV"); } + + g_object_unref(list); } static void test_dom_document_get_element_by_id(DomDocumentFixture* fixture, gconstpointer data) @@ -178,6 +184,137 @@ static void test_dom_document_get_links(DomDocumentFixture* fixture, gconstpoint WebKitDOMHTMLAnchorElement *anchor = (WebKitDOMHTMLAnchorElement*)element; g_assert_cmpstr(webkit_dom_html_anchor_element_get_href(anchor), ==, uris[i]); } + g_object_unref(collection); +} + +static void weak_notify(gpointer data, GObject* zombie) +{ + guint* count = (guint*)data; + (*count)++; +} + +static void test_dom_document_garbage_collection(DomDocumentFixture* fixture, gconstpointer data) +{ + guint count = 0; + g_assert(fixture); + WebKitWebView* view = (WebKitWebView*)fixture->webView; + g_assert(view); + WebKitDOMDocument* document = webkit_web_view_get_dom_document(view); + g_assert(document); + g_object_weak_ref(G_OBJECT(document), (GWeakNotify)weak_notify, &count); + WebKitDOMHTMLHeadElement* head = webkit_dom_document_get_head(document); + g_assert(head); + g_object_weak_ref(G_OBJECT(head), (GWeakNotify)weak_notify, &count); + WebKitDOMHTMLElement* body = webkit_dom_document_get_body(document); + g_assert(body); + g_object_weak_ref(G_OBJECT(body), (GWeakNotify)weak_notify, &count); + WebKitDOMHTMLCollection *collection = webkit_dom_document_get_links(document); + g_assert(collection); + g_object_weak_ref(G_OBJECT(collection), (GWeakNotify)weak_notify, &count); + + webkit_web_view_load_string(WEBKIT_WEB_VIEW(view), HTML_DOCUMENT_LINKS, NULL, NULL, NULL); + + while (g_main_context_pending(NULL)) + g_main_context_iteration(NULL, FALSE); + + g_assert_cmpuint(count, ==, 3); + + g_object_unref(collection); + g_assert_cmpuint(count, ==, 4); + + count = 0; + + document = webkit_web_view_get_dom_document(view); + g_assert(document); + g_object_weak_ref(G_OBJECT(document), (GWeakNotify)weak_notify, &count); + head = webkit_dom_document_get_head(document); + g_assert(head); + g_object_weak_ref(G_OBJECT(head), (GWeakNotify)weak_notify, &count); + body = webkit_dom_document_get_body(document); + g_assert(body); + g_object_weak_ref(G_OBJECT(body), (GWeakNotify)weak_notify, &count); + collection = webkit_dom_document_get_links(document); + g_assert(collection); + g_object_weak_ref(G_OBJECT(collection), (GWeakNotify)weak_notify, &count); + /* Ask twice for the same object */ + WebKitDOMHTMLCollection* collection2 = webkit_dom_document_get_links(document); + g_assert(collection2); + g_object_weak_ref(G_OBJECT(collection2), (GWeakNotify)weak_notify, &count); + + g_object_unref(document); + g_object_unref(head); + g_object_unref(body); + g_object_unref(collection); + g_object_unref(collection2); + + g_assert_cmpuint(count, ==, 5); + + webkit_web_view_load_string(WEBKIT_WEB_VIEW(view), HTML_DOCUMENT_IFRAME, NULL, NULL, NULL); + + while (g_main_context_pending(NULL)) + g_main_context_iteration(NULL, FALSE); + + count = 0; + + document = webkit_web_view_get_dom_document(view); + WebKitDOMElement* div = webkit_dom_document_get_element_by_id(document, "test"); + g_assert(div); + g_object_weak_ref(G_OBJECT(div), (GWeakNotify)weak_notify, &count); + WebKitDOMElement* iframe = webkit_dom_document_get_element_by_id(document, "iframe"); + g_assert(iframe); + + webkit_dom_element_set_attribute(iframe, "src", "data:<html><head></head></html>", NULL); + + while (g_main_context_pending(NULL)) + g_main_context_iteration(NULL, FALSE); + + WebKitDOMDocument* iframeDocument = webkit_dom_html_iframe_element_get_content_document(WEBKIT_DOM_HTML_IFRAME_ELEMENT(iframe)); + g_assert(iframeDocument); + head = webkit_dom_document_get_head(iframeDocument); + g_assert(head); + g_object_weak_ref(G_OBJECT(head), (GWeakNotify)weak_notify, &count); + + webkit_dom_element_set_attribute(iframe, "src", "about:blank", NULL); + + while (g_main_context_pending(NULL)) + g_main_context_iteration(NULL, FALSE); + + g_assert_cmpuint(count, ==, 1); + + webkit_web_view_load_string(WEBKIT_WEB_VIEW(view), HTML_DOCUMENT_LINKS, NULL, NULL, NULL); + + while (g_main_context_pending(NULL)) + g_main_context_iteration(NULL, FALSE); + + g_assert_cmpuint(count, ==, 2); + + count = 0; + + document = webkit_web_view_get_dom_document(view); + g_assert(document); + g_object_weak_ref(G_OBJECT(document), (GWeakNotify)weak_notify, &count); + /* Ask twice for the Document */ + WebKitDOMDocument* document2 = webkit_web_view_get_dom_document(view); + g_assert(document2); + g_object_weak_ref(G_OBJECT(document2), (GWeakNotify)weak_notify, &count); + head = webkit_dom_document_get_head(document); + g_assert(head); + g_object_weak_ref(G_OBJECT(head), (GWeakNotify)weak_notify, &count); + body = webkit_dom_document_get_body(document); + g_assert(body); + g_object_weak_ref(G_OBJECT(body), (GWeakNotify)weak_notify, &count); + collection = webkit_dom_document_get_links(document); + g_assert(collection); + g_object_weak_ref(G_OBJECT(collection), (GWeakNotify)weak_notify, &count); + + gtk_widget_destroy(fixture->webView); + fixture->webView = NULL; + + g_assert_cmpuint(count, ==, 4); + + g_object_unref(collection); + + g_assert_cmpuint(count, ==, 5); } int main(int argc, char** argv) @@ -219,6 +356,12 @@ int main(int argc, char** argv) test_dom_document_get_links, dom_document_fixture_teardown); + g_test_add("/webkit/domdocument/test_garbage_collection", + DomDocumentFixture, HTML_DOCUMENT_LINKS, + dom_document_fixture_setup, + test_dom_document_garbage_collection, + dom_document_fixture_teardown); + return g_test_run(); } diff --git a/WebKit/gtk/tests/testdomnode.c b/WebKit/gtk/tests/testdomnode.c index c6056d6..7d62720 100644 --- a/WebKit/gtk/tests/testdomnode.c +++ b/WebKit/gtk/tests/testdomnode.c @@ -84,6 +84,7 @@ static void test_dom_node_hierarchy_navigation(DomNodeFixture* fixture, gconstpo ptr = webkit_dom_node_list_item(list, 0); g_assert(ptr); g_assert(WEBKIT_DOM_IS_HTML_TITLE_ELEMENT(ptr)); + g_object_unref(list); /* Body, Head sibling */ ptr = webkit_dom_node_get_next_sibling(WEBKIT_DOM_NODE(head)); @@ -118,6 +119,7 @@ static void test_dom_node_hierarchy_navigation(DomNodeFixture* fixture, gconstpo /* Nothing */; g_assert_cmpint(i, ==, 3); + g_object_unref(list); } static void test_dom_node_insertion(DomNodeFixture* fixture, gconstpointer data) @@ -148,6 +150,7 @@ static void test_dom_node_insertion(DomNodeFixture* fixture, gconstpointer data) node = webkit_dom_node_list_item(list, 0); g_assert(node); g_assert(webkit_dom_node_is_same_node(WEBKIT_DOM_NODE(p), node)); + g_object_unref(list); /* Replace the P tag with a DIV tag */ div = webkit_dom_document_create_element(document, "DIV", NULL); @@ -158,11 +161,13 @@ static void test_dom_node_insertion(DomNodeFixture* fixture, gconstpointer data) node = webkit_dom_node_list_item(list, 0); g_assert(node); g_assert(webkit_dom_node_is_same_node(WEBKIT_DOM_NODE(div), node)); + g_object_unref(list); /* Now remove the tag */ webkit_dom_node_remove_child(WEBKIT_DOM_NODE(body), node, NULL); list = webkit_dom_node_get_child_nodes(WEBKIT_DOM_NODE(body)); g_assert_cmpint(webkit_dom_node_list_get_length(list), ==, 0); + g_object_unref(list); /* TODO: insert_before, which does not seem to be working correctly */ } diff --git a/WebKit/gtk/webkit/webkithittestresult.cpp b/WebKit/gtk/webkit/webkithittestresult.cpp index 862d94a..931289e 100644 --- a/WebKit/gtk/webkit/webkithittestresult.cpp +++ b/WebKit/gtk/webkit/webkithittestresult.cpp @@ -71,6 +71,13 @@ static void webkit_hit_test_result_finalize(GObject* object) G_OBJECT_CLASS(webkit_hit_test_result_parent_class)->finalize(object); } +static void webkit_hit_test_result_dispose(GObject* object) +{ + g_object_unref(WEBKIT_HIT_TEST_RESULT(object)->priv->innerNode); + + G_OBJECT_CLASS(webkit_hit_test_result_parent_class)->dispose(object); +} + static void webkit_hit_test_result_get_property(GObject* object, guint propertyID, GValue* value, GParamSpec* pspec) { WebKitHitTestResult* web_hit_test_result = WEBKIT_HIT_TEST_RESULT(object); @@ -131,6 +138,7 @@ static void webkit_hit_test_result_class_init(WebKitHitTestResultClass* webHitTe GObjectClass* objectClass = G_OBJECT_CLASS(webHitTestResultClass); objectClass->finalize = webkit_hit_test_result_finalize; + objectClass->dispose = webkit_hit_test_result_dispose; objectClass->get_property = webkit_hit_test_result_get_property; objectClass->set_property = webkit_hit_test_result_set_property; diff --git a/WebKit/gtk/webkit/webkitprivate.cpp b/WebKit/gtk/webkit/webkitprivate.cpp index aa3d3da..4ec6362 100644 --- a/WebKit/gtk/webkit/webkitprivate.cpp +++ b/WebKit/gtk/webkit/webkitprivate.cpp @@ -24,6 +24,7 @@ #include "ApplicationCacheStorage.h" #include "Chrome.h" #include "ChromeClientGtk.h" +#include "Element.h" #include "Frame.h" #include "FrameLoader.h" #include "FrameLoaderClientGtk.h" @@ -173,7 +174,7 @@ WebKitHitTestResult* kit(const WebCore::HitTestResult& result) context |= WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE; if (result.innerNonSharedNode()) - node = static_cast<WebKitDOMNode*>(kit(result.innerNonSharedNode())); + node = kit(result.innerNonSharedNode()); return WEBKIT_HIT_TEST_RESULT(g_object_new(WEBKIT_TYPE_HIT_TEST_RESULT, "link-uri", linkURI.get(), diff --git a/WebKit/gtk/webkit/webkitprivate.h b/WebKit/gtk/webkit/webkitprivate.h index 7385677..e090ed4 100644 --- a/WebKit/gtk/webkit/webkitprivate.h +++ b/WebKit/gtk/webkit/webkitprivate.h @@ -55,6 +55,7 @@ #include "HistoryItem.h" #include "InspectorClientGtk.h" #include "IntPoint.h" +#include "IntRect.h" #include "FrameLoaderClient.h" #include "FullscreenVideoController.h" #include "Node.h" @@ -181,6 +182,7 @@ extern "C" { CString mainResourceIdentifier; PlatformRefPtr<GHashTable> subResources; CString tooltipText; + WebCore::IntRect tooltipArea; int currentClickCount; WebCore::IntPoint previousClickPoint; diff --git a/WebKit/gtk/webkit/webkitwebdatasource.cpp b/WebKit/gtk/webkit/webkitwebdatasource.cpp index 38c9c48..3673a99 100644 --- a/WebKit/gtk/webkit/webkitwebdatasource.cpp +++ b/WebKit/gtk/webkit/webkitwebdatasource.cpp @@ -318,7 +318,7 @@ G_CONST_RETURN gchar* webkit_web_data_source_get_encoding(WebKitWebDataSource* w */ gboolean webkit_web_data_source_is_loading(WebKitWebDataSource* webDataSource) { - g_return_val_if_fail(WEBKIT_IS_WEB_DATA_SOURCE(webDataSource), NULL); + g_return_val_if_fail(WEBKIT_IS_WEB_DATA_SOURCE(webDataSource), FALSE); WebKitWebDataSourcePrivate* priv = webDataSource->priv; diff --git a/WebKit/gtk/webkit/webkitwebframe.cpp b/WebKit/gtk/webkit/webkitwebframe.cpp index 63a2413..0e0c3c6 100644 --- a/WebKit/gtk/webkit/webkitwebframe.cpp +++ b/WebKit/gtk/webkit/webkitwebframe.cpp @@ -35,6 +35,7 @@ #include "AccessibilityObjectWrapperAtk.h" #include "AnimationController.h" #include "AXObjectCache.h" +#include "DOMObjectCache.h" #include "DocumentLoader.h" #include "DocumentLoaderGtk.h" #include "FrameLoader.h" @@ -146,7 +147,10 @@ static void webkit_web_frame_get_property(GObject* object, guint prop_id, GValue void webkit_web_frame_core_frame_gone(WebKitWebFrame* frame) { ASSERT(WEBKIT_IS_WEB_FRAME(frame)); - frame->priv->coreFrame = 0; + WebKitWebFramePrivate* priv = frame->priv; + if (priv->coreFrame) + DOMObjectCache::clearByFrame(priv->coreFrame); + priv->coreFrame = 0; } static WebKitWebDataSource* webkit_web_frame_get_data_source_from_core_loader(WebCore::DocumentLoader* loader) @@ -160,6 +164,7 @@ static void webkit_web_frame_finalize(GObject* object) WebKitWebFramePrivate* priv = frame->priv; if (priv->coreFrame) { + DOMObjectCache::clearByFrame(priv->coreFrame); priv->coreFrame->loader()->cancelAndClear(); priv->coreFrame = 0; } @@ -842,7 +847,7 @@ gchar* webkit_web_frame_counter_value_for_element_by_id(WebKitWebFrame* frame, c */ int webkit_web_frame_page_number_for_element_by_id(WebKitWebFrame* frame, const gchar* id, float pageWidth, float pageHeight) { - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), NULL); + g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), 0); Frame* coreFrame = core(frame); if (!coreFrame) @@ -864,7 +869,7 @@ int webkit_web_frame_page_number_for_element_by_id(WebKitWebFrame* frame, const */ int webkit_web_frame_number_of_pages(WebKitWebFrame* frame, float pageWidth, float pageHeight) { - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), NULL); + g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), 0); Frame* coreFrame = core(frame); if (!coreFrame) diff --git a/WebKit/gtk/webkit/webkitwebinspector.cpp b/WebKit/gtk/webkit/webkitwebinspector.cpp index f207906..626df32 100644 --- a/WebKit/gtk/webkit/webkitwebinspector.cpp +++ b/WebKit/gtk/webkit/webkitwebinspector.cpp @@ -32,6 +32,7 @@ #include "Page.h" #include "RenderLayer.h" #include "RenderView.h" +#include "webkit/WebKitDOMNodePrivate.h" #include "webkitmarshal.h" #include "webkitprivate.h" @@ -499,6 +500,23 @@ void webkit_web_inspector_show(WebKitWebInspector* webInspector) } /** + * webkit_web_inspector_inspect_node: + * @web_inspector: the #WebKitWebInspector that will do the inspection + * @node: the #WebKitDOMNode to inspect + * + * Causes the Web Inspector to inspect the given node. + * + * Since: 1.3.7 + */ +void webkit_web_inspector_inspect_node(WebKitWebInspector* webInspector, WebKitDOMNode* node) +{ + g_return_if_fail(WEBKIT_IS_WEB_INSPECTOR(webInspector)); + g_return_if_fail(WEBKIT_DOM_IS_NODE(node)); + + webInspector->priv->page->inspectorController()->inspect(core(node)); +} + +/** * webkit_web_inspector_inspect_coordinates: * @web_inspector: the #WebKitWebInspector that will do the inspection * @x: the X coordinate of the node to be inspected diff --git a/WebKit/gtk/webkit/webkitwebinspector.h b/WebKit/gtk/webkit/webkitwebinspector.h index bde4854..458e370 100644 --- a/WebKit/gtk/webkit/webkitwebinspector.h +++ b/WebKit/gtk/webkit/webkitwebinspector.h @@ -22,6 +22,7 @@ #include <glib-object.h> +#include <webkit/webkitdomdefines.h> #include <webkit/webkitdefines.h> G_BEGIN_DECLS @@ -61,6 +62,9 @@ WEBKIT_API const gchar* webkit_web_inspector_get_inspected_uri(WebKitWebInspector* web_inspector); WEBKIT_API void +webkit_web_inspector_inspect_node(WebKitWebInspector* webInspector, WebKitDOMNode* node); + +WEBKIT_API void webkit_web_inspector_inspect_coordinates(WebKitWebInspector* web_inspector, gdouble x, gdouble y); WEBKIT_API void diff --git a/WebKit/gtk/webkit/webkitwebview.cpp b/WebKit/gtk/webkit/webkitwebview.cpp index 0dc19f3..90be935 100644 --- a/WebKit/gtk/webkit/webkitwebview.cpp +++ b/WebKit/gtk/webkit/webkitwebview.cpp @@ -173,6 +173,19 @@ enum { GEOLOCATION_POLICY_DECISION_CANCELLED, ONLOAD_EVENT, FRAME_CREATED, + + SHOULD_BEGIN_EDITING, + SHOULD_END_EDITING, + SHOULD_INSERT_NODE, + SHOULD_INSERT_TEXT, + SHOULD_DELETE_RANGE, + SHOULD_SHOW_DELETE_INTERFACE_FOR_ELEMENT, + SHOULD_CHANGE_SELECTED_RANGE, + SHOULD_APPLY_STYLE, + EDITING_BEGAN, + USER_CHANGED_CONTENTS, + EDITING_ENDED, + LAST_SIGNAL }; @@ -1311,6 +1324,11 @@ static void webkit_web_view_real_paste_clipboard(WebKitWebView* webView) frame->editor()->command("Paste").execute(); } +static gboolean webkit_web_view_real_should_allow_editing_action(WebKitWebView*) +{ + return TRUE; +} + static void webkit_web_view_dispose(GObject* object) { WebKitWebView* webView = WEBKIT_WEB_VIEW(object); @@ -1636,13 +1654,58 @@ static gboolean webkit_web_view_query_tooltip(GtkWidget *widget, gint x, gint y, { WebKitWebViewPrivate* priv = WEBKIT_WEB_VIEW_GET_PRIVATE(widget); + if (keyboard_mode) { + WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); + + // Get the title of the current focused element. + Frame* coreFrame = core(webView)->focusController()->focusedOrMainFrame(); + if (!coreFrame) + return FALSE; + + Node* node = getFocusedNode(coreFrame); + if (!node) + return FALSE; + + for (Node* titleNode = node; titleNode; titleNode = titleNode->parentNode()) { + if (titleNode->isElementNode()) { + String title = static_cast<Element*>(titleNode)->title(); + if (!title.isEmpty()) { + if (FrameView* view = coreFrame->view()) { + GdkRectangle area = view->contentsToWindow(node->getRect()); + gtk_tooltip_set_tip_area(tooltip, &area); + } + gtk_tooltip_set_text(tooltip, title.utf8().data()); + + return TRUE; + } + } + } + + return FALSE; + } + if (priv->tooltipText.length() > 0) { + if (!keyboard_mode) { + if (!priv->tooltipArea.isEmpty()) { + GdkRectangle area = priv->tooltipArea; + gtk_tooltip_set_tip_area(tooltip, &area); + } else + gtk_tooltip_set_tip_area(tooltip, 0); + } gtk_tooltip_set_text(tooltip, priv->tooltipText.data()); return TRUE; } return FALSE; } + +static gboolean webkit_web_view_show_help(GtkWidget* widget, GtkWidgetHelpType help_type) +{ + if (help_type == GTK_WIDGET_HELP_TOOLTIP) + gtk_widget_set_has_tooltip(widget, TRUE); + + return GTK_WIDGET_CLASS(webkit_web_view_parent_class)->show_help(widget, help_type); +} #endif static GtkIMContext* webkit_web_view_get_im_context(WebKitWebView* webView) @@ -2197,15 +2260,6 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) G_TYPE_NONE, 1, G_TYPE_STRING); - webkit_web_view_signals[SELECTION_CHANGED] = g_signal_new("selection-changed", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - NULL, - NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - /** * WebKitWebView::console-message: * @webView: the object on which the signal is emitted @@ -2603,6 +2657,66 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) G_TYPE_NONE, 1, WEBKIT_TYPE_WEB_FRAME); + webkit_web_view_signals[SHOULD_BEGIN_EDITING] = g_signal_new("should-begin-editing", + G_TYPE_FROM_CLASS(webViewClass), static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + G_STRUCT_OFFSET(WebKitWebViewClass, should_allow_editing_action), g_signal_accumulator_first_wins, 0, + webkit_marshal_BOOLEAN__OBJECT, G_TYPE_BOOLEAN, 1, WEBKIT_TYPE_DOM_RANGE); + + webkit_web_view_signals[SHOULD_END_EDITING] = g_signal_new("should-end-editing", G_TYPE_FROM_CLASS(webViewClass), + static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + G_STRUCT_OFFSET(WebKitWebViewClass, should_allow_editing_action), g_signal_accumulator_first_wins, 0, + webkit_marshal_BOOLEAN__OBJECT, G_TYPE_BOOLEAN, 1, WEBKIT_TYPE_DOM_RANGE); + + webkit_web_view_signals[SHOULD_INSERT_NODE] = g_signal_new("should-insert-node", G_TYPE_FROM_CLASS(webViewClass), + static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + G_STRUCT_OFFSET(WebKitWebViewClass, should_allow_editing_action), g_signal_accumulator_first_wins, 0, + webkit_marshal_BOOLEAN__OBJECT_OBJECT_ENUM, G_TYPE_BOOLEAN, + 3, WEBKIT_TYPE_DOM_NODE, WEBKIT_TYPE_DOM_RANGE, WEBKIT_TYPE_INSERT_ACTION); + + webkit_web_view_signals[SHOULD_INSERT_TEXT] = g_signal_new("should-insert-text", G_TYPE_FROM_CLASS(webViewClass), + static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + G_STRUCT_OFFSET(WebKitWebViewClass, should_allow_editing_action), g_signal_accumulator_first_wins, 0, + webkit_marshal_BOOLEAN__STRING_OBJECT_ENUM, G_TYPE_BOOLEAN, + 3, G_TYPE_STRING, WEBKIT_TYPE_DOM_RANGE, WEBKIT_TYPE_INSERT_ACTION); + + webkit_web_view_signals[SHOULD_DELETE_RANGE] = g_signal_new("should-delete-range", G_TYPE_FROM_CLASS(webViewClass), + static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + G_STRUCT_OFFSET(WebKitWebViewClass, should_allow_editing_action), g_signal_accumulator_first_wins, 0, + webkit_marshal_BOOLEAN__OBJECT, G_TYPE_BOOLEAN, 1, WEBKIT_TYPE_DOM_RANGE); + + webkit_web_view_signals[SHOULD_SHOW_DELETE_INTERFACE_FOR_ELEMENT] = g_signal_new("should-show-delete-interface-for-element", + G_TYPE_FROM_CLASS(webViewClass), static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + G_STRUCT_OFFSET(WebKitWebViewClass, should_allow_editing_action), g_signal_accumulator_first_wins, 0, + webkit_marshal_BOOLEAN__OBJECT, G_TYPE_BOOLEAN, 1, WEBKIT_TYPE_DOM_HTML_ELEMENT); + + webkit_web_view_signals[SHOULD_CHANGE_SELECTED_RANGE] = g_signal_new("should-change-selected-range", + G_TYPE_FROM_CLASS(webViewClass), static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + G_STRUCT_OFFSET(WebKitWebViewClass, should_allow_editing_action), g_signal_accumulator_first_wins, 0, + webkit_marshal_BOOLEAN__OBJECT_OBJECT_ENUM_BOOLEAN, G_TYPE_BOOLEAN, + 4, WEBKIT_TYPE_DOM_RANGE, WEBKIT_TYPE_DOM_RANGE, WEBKIT_TYPE_SELECTION_AFFINITY, G_TYPE_BOOLEAN); + + webkit_web_view_signals[SHOULD_APPLY_STYLE] = g_signal_new("should-apply-style", + G_TYPE_FROM_CLASS(webViewClass), static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + G_STRUCT_OFFSET(WebKitWebViewClass, should_allow_editing_action), g_signal_accumulator_first_wins, 0, + webkit_marshal_BOOLEAN__OBJECT_OBJECT, G_TYPE_BOOLEAN, + 2, WEBKIT_TYPE_DOM_CSS_STYLE_DECLARATION, WEBKIT_TYPE_DOM_RANGE); + + webkit_web_view_signals[EDITING_BEGAN] = g_signal_new("editing-began", + G_TYPE_FROM_CLASS(webViewClass), static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), 0, 0, 0, + g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + + webkit_web_view_signals[USER_CHANGED_CONTENTS] = g_signal_new("user-changed-contents", + G_TYPE_FROM_CLASS(webViewClass), static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), 0, 0, 0, + g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + + webkit_web_view_signals[EDITING_ENDED] = g_signal_new("editing-ended", + G_TYPE_FROM_CLASS(webViewClass), static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), 0, 0, 0, + g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + + webkit_web_view_signals[SELECTION_CHANGED] = g_signal_new("selection-changed", + G_TYPE_FROM_CLASS(webViewClass), static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), 0, 0, 0, + g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + /* * implementations of virtual methods */ @@ -2623,6 +2737,7 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) webViewClass->undo = webkit_web_view_real_undo; webViewClass->redo = webkit_web_view_real_redo; webViewClass->move_cursor = webkit_web_view_real_move_cursor; + webViewClass->should_allow_editing_action = webkit_web_view_real_should_allow_editing_action; GObjectClass* objectClass = G_OBJECT_CLASS(webViewClass); objectClass->dispose = webkit_web_view_dispose; @@ -2664,6 +2779,7 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) widgetClass->drag_data_received = webkit_web_view_drag_data_received; #if GTK_CHECK_VERSION(2, 12, 0) widgetClass->query_tooltip = webkit_web_view_query_tooltip; + widgetClass->show_help = webkit_web_view_show_help; #endif GtkContainerClass* containerClass = GTK_CONTAINER_CLASS(webViewClass); @@ -4800,7 +4916,7 @@ webkit_web_view_get_dom_document(WebKitWebView* webView) if (!doc) return 0; - return static_cast<WebKitDOMDocument*>(kit(doc)); + return kit(doc); } /** diff --git a/WebKit/gtk/webkit/webkitwebview.h b/WebKit/gtk/webkit/webkitwebview.h index 9dfb654..cf8e669 100644 --- a/WebKit/gtk/webkit/webkitwebview.h +++ b/WebKit/gtk/webkit/webkitwebview.h @@ -73,6 +73,19 @@ typedef enum WEBKIT_WEB_VIEW_VIEW_MODE_MINIMIZED } WebKitWebViewViewMode; +typedef enum +{ + WEBKIT_SELECTION_AFFINITY_UPSTREAM, + WEBKIT_SELECTION_AFFINITY_DOWNSTREAM, +} WebKitSelectionAffinity; + +typedef enum +{ + WEBKIT_INSERT_ACTION_TYPED, + WEBKIT_INSERT_ACTION_PASTED, + WEBKIT_INSERT_ACTION_DROPPED, +} WebKitInsertAction; + struct _WebKitWebView { GtkContainer parent_instance; @@ -137,12 +150,12 @@ struct _WebKitWebViewClass { void (* undo) (WebKitWebView *web_view); void (* redo) (WebKitWebView *web_view); + gboolean (* should_allow_editing_action) (WebKitWebView *web_view); /* Padding for future expansion */ void (*_webkit_reserved0) (void); void (*_webkit_reserved1) (void); void (*_webkit_reserved2) (void); - void (*_webkit_reserved3) (void); }; WEBKIT_API GType diff --git a/WebKit/gtk/webkitmarshal.list b/WebKit/gtk/webkitmarshal.list index 026a8af..5372c57 100644 --- a/WebKit/gtk/webkitmarshal.list +++ b/WebKit/gtk/webkitmarshal.list @@ -2,12 +2,15 @@ BOOLEAN:ENUM,INT BOOLEAN:INT,INT,STRING BOOLEAN:OBJECT BOOLEAN:OBJECT,OBJECT +BOOLEAN:OBJECT,OBJECT,ENUM +BOOLEAN:OBJECT,OBJECT,ENUM,BOOLEAN BOOLEAN:OBJECT,OBJECT,OBJECT,OBJECT BOOLEAN:OBJECT,OBJECT,STRING,OBJECT BOOLEAN:OBJECT,STRING BOOLEAN:OBJECT,STRING,POINTER BOOLEAN:OBJECT,STRING,STRING,STRING BOOLEAN:STRING,INT,STRING +BOOLEAN:STRING,OBJECT,ENUM BOOLEAN:VOID ENUM:OBJECT,OBJECT OBJECT:OBJECT diff --git a/WebKit/haiku/ChangeLog b/WebKit/haiku/ChangeLog index 723c957..65a83f9 100644 --- a/WebKit/haiku/ChangeLog +++ b/WebKit/haiku/ChangeLog @@ -1,3 +1,17 @@ +2010-12-01 Jia Pu <jpu@apple.com> + + Reviewed by Darin Adler. + + Support multiple correction candidates panel for misspelled word on Mac OS X. + https://bugs.webkit.org/show_bug.cgi?id=50137 + <rdar://problem/8568059> + + Adopted new function signature defined in base class. + + * WebCoreSupport/EditorClientHaiku.cpp: + (WebCore::EditorClientHaiku::getGuessesForWord): + * WebCoreSupport/EditorClientHaiku.h: + 2010-11-08 Alexey Proskuryakov <ap@apple.com> Reviewed by Darin Adler. diff --git a/WebKit/haiku/WebCoreSupport/EditorClientHaiku.cpp b/WebKit/haiku/WebCoreSupport/EditorClientHaiku.cpp index bdd7eb8..deca47a 100644 --- a/WebKit/haiku/WebCoreSupport/EditorClientHaiku.cpp +++ b/WebKit/haiku/WebCoreSupport/EditorClientHaiku.cpp @@ -461,7 +461,7 @@ bool EditorClientHaiku::spellingUIIsShowing() return false; } -void EditorClientHaiku::getGuessesForWord(const String&, Vector<String>&) +void EditorClientHaiku::getGuessesForWord(const String& word, const String& context, Vector<String>& guesses) { notImplemented(); } diff --git a/WebKit/haiku/WebCoreSupport/EditorClientHaiku.h b/WebKit/haiku/WebCoreSupport/EditorClientHaiku.h index 5cbec27..cfde51c 100644 --- a/WebKit/haiku/WebCoreSupport/EditorClientHaiku.h +++ b/WebKit/haiku/WebCoreSupport/EditorClientHaiku.h @@ -107,7 +107,7 @@ namespace WebCore { virtual void updateSpellingUIWithMisspelledWord(const String&); virtual void showSpellingUI(bool show); virtual bool spellingUIIsShowing(); - virtual void getGuessesForWord(const String&, Vector<String>& guesses); + virtual void getGuessesForWord(const String& word, const String& context, Vector<String>& guesses); virtual void willSetInputMethodState(); virtual void setInputMethodState(bool enabled); diff --git a/WebKit/mac/ChangeLog b/WebKit/mac/ChangeLog index 4acd7e5..76428a4 100644 --- a/WebKit/mac/ChangeLog +++ b/WebKit/mac/ChangeLog @@ -1,3 +1,169 @@ +2010-12-01 Jia Pu <jpu@apple.com> + + Reviewed by Darin Adler. + + Support multiple correction candidates panel for misspelled word on Mac OS X. + https://bugs.webkit.org/show_bug.cgi?id=50137 + <rdar://problem/8568059> + + This patch is for supporting multiple correction suggestion panel on Mac OS X. + The behavior and implementation is similar to that of reversion candiate panel. + + * WebCoreSupport/WebEditorClient.h: Adopted new signatures defined in base class. + + * WebCoreSupport/WebEditorClient.mm: Adopted new signatures defined in base class. + Added code to handle new multiple suggestion canidate panel type. + (WebEditorClient::showCorrectionPanel): + (WebEditorClient::getGuessesForWord): + +2010-12-01 David Hyatt <hyatt@apple.com> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=46645 + + Part 1 of making scrolling work with vertical text. This patch generalizes the scrollOriginX concept + recently added for horizontal RTL documents and applies it to writing modes as well. Now the + scrollOrigin is a point, since you can start off locked to the bottom or locked to the right. + + This patch also fixes numerous bugs with the scrollOrigin code using native Mac NSScrollViews and + makes them behave the same as the cross-platform code (allowing for cross-platform results to be + landed). + + * WebView/WebDynamicScrollBarsView.mm: + (-[WebDynamicScrollBarsView adjustForScrollOriginChange]): + (-[WebDynamicScrollBarsView updateScrollers]): + (-[WebDynamicScrollBarsView reflectScrolledClipView:]): + (-[WebDynamicScrollBarsView setScrollOrigin:updatePosition:]): + (-[WebDynamicScrollBarsView scrollOrigin]): + * WebView/WebFrameView.mm: + (-[WebFrameView _scrollToBeginningOfDocument]): + (-[WebFrameView _scrollToEndOfDocument]): + +2010-11-29 Dan Bernstein <mitz@apple.com> + + Reviewed by Darin Adler. + + WebKit Mac part of <rdar://problem/8650085> adding word-prefix search options to the text search API. + https://bugs.webkit.org/show_bug.cgi?id=50038 + Based on a patch from Darin Adler. + + * WebView/WebDocumentInternal.h: Removed -markAllMatchesForText:caseSensitive:limit: and + replaced -countMatchesForText:caseSensitive:limit:markMatches: with a WebFindOptions-based + method. Declared a WebDocumentOptionsSearching protocol with a new -findString:options: + method. Made WebHTMLView conform to the new protocol. + * WebView/WebHTMLView.mm: + (coreOptions): Added. Converts WebFindOptions to WebCore FindOptions. + (-[WebHTMLView searchFor:direction:caseSensitive:wrap:startInSelection:]): Changed to use + -findString:options:. + (-[WebHTMLView countMatchesForText:options:limit:markMatches:]): Changed to use WebFindOptions. + (-[WebHTMLView findString:options:]): Added. Calls through to WebCore::Editor::findString(). + * WebView/WebPDFView.mm: + (-[WebPDFView countMatchesForText:options:limit:markMatches:]): Changed to use WebFindOptions. + * WebView/WebView.mm: + (-[WebView markAllMatchesForText:caseSensitive:highlight:limit:]): Now calls through to + -countMatchesForText:options:highlight:limit:markMatches. + (-[WebView countMatchesForText:caseSensitive:highlight:limit:markMatches:]): Ditto. + (-[WebView searchFor:direction:caseSensitive:wrap:startInSelection:]): Now calls through to + -findString:options:. + (incrementFrame): Changed to use WebFindOptions. + (findString): Added this helper method that performs the search using the best supported + method for the document view. + (-[WebView findString:options:]): Changed -searchFor::::: into this. + (-[WebView canMarkAllTextMatches]): + (-[WebView countMatchesForText:options:highlight:limit:markMatches:]): Updated to use + WebFindOptions. + (-[WebView unmarkAllTextMatches]): Updated for change to incrementFrame. + (-[WebView rectsForTextMatches]): Ditto. + * WebView/WebViewPrivate.h: Added WebFindOptions, -findString:options:, and WebFindOptions version + of countMatchesForText:. + +2010-11-29 Jeremy Moskovich <jeremy@chromium.org> + + Reviewed by David Hyatt. + + Right-to-left pages should be scrollable to reveal left overflow. + https://bugs.webkit.org/show_bug.cgi?id=23556 + + Set and get the original x-axis scroll position and reset scroll position on HOME/END key press. + Modify WebFrameView to support setting the initial horizontal scroller's thumb position to the right for + pages with a left overflow. + + * WebView/WebDynamicScrollBarsView.h: + * WebView/WebDynamicScrollBarsView.mm: + (-[WebDynamicScrollBarsView inProgramaticScroll]): + (-[WebDynamicScrollBarsView refreshInitialScrollbarPosition]): + (-[WebDynamicScrollBarsView updateScrollers]): + (-[WebDynamicScrollBarsView reflectScrolledClipView:]): + (-[WebDynamicScrollBarsView setScrollOriginX:]): + (-[WebDynamicScrollBarsView scrollOriginX]): + * WebView/WebFrameView.mm: + (-[WebFrameView _scrollToBeginningOfDocument]): + (-[WebFrameView _scrollToEndOfDocument]): + * WebView/WebHTMLView.mm: + (-[WebHTMLView _frameOrBoundsChanged]): + +2010-11-22 Ryosuke Niwa <rniwa@webkit.org> + + Reviewed by Tony Chang. + + SelectionController::typingStyle() should return EditingStyle* + https://bugs.webkit.org/show_bug.cgi?id=49813 + + Changed the return value of SelectionController::typingStyle() to EditingStyle*. + Also added SelectionController::copyTypingStyle() to copy the typing style + as an instance of CSSMutableStyleDeclaration. + + No tests are added since this is no behavioral change. + + * WebView/WebFrame.mm: + (-[WebFrame _typingStyle]): Calls SelectionController::copyTypingStyle() + +2010-11-19 Michael Saboff <msaboff@apple.com> + + Reviewed by Sam Weinig + + Remove DOMSVGAnimatedPathData.h from all: target to fix build. + + * MigrateHeaders.make: + +2010-11-19 Nikolas Zimmermann <nzimmermann@rim.com> + + Reviewed by Dirk Schulze. + + Convert SVGPathSeg/SVGPathSegList to the new SVGPropertyTearOff concept + https://bugs.webkit.org/show_bug.cgi?id=49580 + + * WebView/WebRenderLayer.mm: Add missing StyledElement.h include. + +2010-11-18 Mark Rowe <mrowe@apple.com> + + Rubber-stamped by Adam Roben. + + <rdar://problem/8602509&8602717&8602724> Enable compaction support. + + * Configurations/WebKit.xcconfig: + +2010-11-18 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r72288. + http://trac.webkit.org/changeset/72288 + https://bugs.webkit.org/show_bug.cgi?id=49730 + + 'krit attempted to do that, but revert got stuck' (Requested + by antonm on #webkit). + + * WebView/WebRenderLayer.mm: + +2010-11-17 Nikolas Zimmermann <nzimmermann@rim.com> + + Reviewed by Dirk Schulze. + + Convert SVGPathSeg/SVGPathSegList to the new SVGPropertyTearOff concept + https://bugs.webkit.org/show_bug.cgi?id=49580 + + * WebView/WebRenderLayer.mm: Add missing StyledElement.h include. + 2010-11-16 Stephanie Lewis <slewis@apple.com> Reviewed by Geoff Garen. diff --git a/WebKit/mac/Configurations/Version.xcconfig b/WebKit/mac/Configurations/Version.xcconfig index e0ce9cb..b60f899 100644 --- a/WebKit/mac/Configurations/Version.xcconfig +++ b/WebKit/mac/Configurations/Version.xcconfig @@ -22,7 +22,7 @@ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. MAJOR_VERSION = 534; -MINOR_VERSION = 13; +MINOR_VERSION = 14; TINY_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION); diff --git a/WebKit/mac/Configurations/WebKit.xcconfig b/WebKit/mac/Configurations/WebKit.xcconfig index 6b8ae6f..594b3a7 100644 --- a/WebKit/mac/Configurations/WebKit.xcconfig +++ b/WebKit/mac/Configurations/WebKit.xcconfig @@ -60,7 +60,8 @@ UMBRELLA_FRAMEWORKS_DIR = $(PRODUCTION_FRAMEWORKS_DIR)/WebKit.framework/Versions OTHER_LDFLAGS = $(OTHER_LDFLAGS_$(REAL_PLATFORM_NAME)); OTHER_LDFLAGS_iphoneos = -lobjc -framework CFNetwork -framework CoreFoundation -framework CoreGraphics -framework Foundation -framework GraphicsServices -framework ImageIO -framework WebCore; OTHER_LDFLAGS_iphonesimulator = $(OTHER_LDFLAGS_iphoneos); -OTHER_LDFLAGS_macosx = -sub_umbrella WebCore $(OTHER_LDFLAGS); +OTHER_LDFLAGS_macosx = -sub_umbrella WebCore $(OTHER_LDFLAGS) $(OTHER_LDFLAGS_macosx_$(TARGET_MAC_OS_X_VERSION_MAJOR)); +OTHER_LDFLAGS_macosx_1070 = -Xlinker -objc_gc_compaction; PRODUCTION_FRAMEWORKS_DIR = $(PRODUCTION_FRAMEWORKS_DIR_$(REAL_PLATFORM_NAME)); PRODUCTION_FRAMEWORKS_DIR_iphoneos = $(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks; diff --git a/WebKit/mac/MigrateHeaders.make b/WebKit/mac/MigrateHeaders.make index d674d4d..7b09b05 100644 --- a/WebKit/mac/MigrateHeaders.make +++ b/WebKit/mac/MigrateHeaders.make @@ -221,7 +221,6 @@ all : \ $(INTERNAL_HEADERS_DIR)/DOMSVGAnimatedNumberInternal.h \ $(PRIVATE_HEADERS_DIR)/DOMSVGAnimatedNumberList.h \ $(INTERNAL_HEADERS_DIR)/DOMSVGAnimatedNumberListInternal.h \ - $(PRIVATE_HEADERS_DIR)/DOMSVGAnimatedPathData.h \ $(PRIVATE_HEADERS_DIR)/DOMSVGAnimatedPreserveAspectRatio.h \ $(INTERNAL_HEADERS_DIR)/DOMSVGAnimatedPreserveAspectRatioInternal.h \ $(PRIVATE_HEADERS_DIR)/DOMSVGAnimatedRect.h \ diff --git a/WebKit/mac/WebCoreSupport/WebEditorClient.h b/WebKit/mac/WebCoreSupport/WebEditorClient.h index 23cf312..a7ffe3a 100644 --- a/WebKit/mac/WebCoreSupport/WebEditorClient.h +++ b/WebKit/mac/WebCoreSupport/WebEditorClient.h @@ -129,11 +129,11 @@ public: virtual void updateSpellingUIWithMisspelledWord(const WTF::String&); virtual void showSpellingUI(bool show); virtual bool spellingUIIsShowing(); - virtual void getGuessesForWord(const WTF::String&, WTF::Vector<WTF::String>& guesses); + virtual void getGuessesForWord(const WTF::String& word, const WTF::String& context, WTF::Vector<WTF::String>& guesses); virtual void willSetInputMethodState(); virtual void setInputMethodState(bool enabled); #if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD) - virtual void showCorrectionPanel(WebCore::CorrectionPanelInfo::PanelType, const WebCore::FloatRect& boundingBoxOfReplacedString, const WTF::String& replacedString, const WTF::String& replacementString, WebCore::Editor*); + virtual void showCorrectionPanel(WebCore::CorrectionPanelInfo::PanelType, const WebCore::FloatRect& boundingBoxOfReplacedString, const WTF::String& replacedString, const WTF::String& replacementString, const WTF::Vector<WTF::String>& alternativeReplacementStrings, WebCore::Editor*); virtual void dismissCorrectionPanel(WebCore::CorrectionWasRejectedOrNot); virtual bool isShowingCorrectionPanel(); #endif diff --git a/WebKit/mac/WebCoreSupport/WebEditorClient.mm b/WebKit/mac/WebCoreSupport/WebEditorClient.mm index 9efa766..0376122 100644 --- a/WebKit/mac/WebCoreSupport/WebEditorClient.mm +++ b/WebKit/mac/WebCoreSupport/WebEditorClient.mm @@ -77,6 +77,22 @@ using namespace WTF; using namespace HTMLNames; +#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD) +static inline NSCorrectionBubbleType correctionBubbleType(CorrectionPanelInfo::PanelType panelType) +{ + switch (panelType) { + case CorrectionPanelInfo::PanelTypeCorrection: + return NSCorrectionBubbleTypeCorrection; + case CorrectionPanelInfo::PanelTypeReversion: + return NSCorrectionBubbleTypeReversion; + case CorrectionPanelInfo::PanelTypeSpellingSuggestions: + return NSCorrectionBubbleTypeGuesses; + } + ASSERT_NOT_REACHED(); + return NSCorrectionBubbleTypeCorrection; +} +#endif + @interface NSAttributedString (WebNSAttributedStringDetails) - (id)_initWithDOMRange:(DOMRange*)range; - (DOMDocumentFragment*)_documentFromRange:(NSRange)range document:(DOMDocument*)document documentAttributes:(NSDictionary *)dict subresources:(NSArray **)subresources; @@ -856,7 +872,7 @@ void WebEditorClient::updateSpellingUIWithGrammarString(const String& badGrammar } #if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD) -void WebEditorClient::showCorrectionPanel(WebCore::CorrectionPanelInfo::PanelType panelType, const FloatRect& boundingBoxOfReplacedString, const String& replacedString, const String& replacementString, Editor* editor) { +void WebEditorClient::showCorrectionPanel(WebCore::CorrectionPanelInfo::PanelType panelType, const FloatRect& boundingBoxOfReplacedString, const String& replacedString, const String& replacementString, const Vector<String>& alternativeReplacementStrings, Editor* editor) { dismissCorrectionPanel(WebCore::CorrectionWasNotRejected); NSRect boundingBoxAsNSRect = boundingBoxOfReplacedString; @@ -868,14 +884,34 @@ void WebEditorClient::showCorrectionPanel(WebCore::CorrectionPanelInfo::PanelTyp NSString *replacementStringAsNSString = replacementString; m_correctionPanelIsShown = YES; - NSCorrectionBubbleType bubbleType = panelType == WebCore::CorrectionPanelInfo::PanelTypeCorrection ? NSCorrectionBubbleTypeCorrection : NSCorrectionBubbleTypeReversion; - [[NSSpellChecker sharedSpellChecker] showCorrectionBubbleOfType:bubbleType primaryString:replacementStringAsNSString alternativeStrings:nil forStringInRect:boundingBoxAsNSRect view:m_webView completionHandler:^(NSString *acceptedString) { - if (!acceptedString && bubbleType == NSCorrectionBubbleTypeCorrection) { - [[NSSpellChecker sharedSpellChecker] recordResponse:NSCorrectionResponseRejected toCorrection:replacementStringAsNSString forWord:replacedStringAsNSString language:nil inSpellDocumentWithTag:[m_webView spellCheckerDocumentTag]]; - editor->handleRejectedCorrection(); - } else if (acceptedString && bubbleType == NSCorrectionBubbleTypeReversion) { - [[NSSpellChecker sharedSpellChecker] recordResponse:NSCorrectionResponseReverted toCorrection:replacedStringAsNSString forWord:replacementStringAsNSString language:nil inSpellDocumentWithTag:[m_webView spellCheckerDocumentTag]]; - editor->handleRejectedCorrection(); + NSCorrectionBubbleType bubbleType = correctionBubbleType(panelType); + NSMutableArray *alternativeStrings = nil; + if (!alternativeReplacementStrings.isEmpty()) { + size_t size = alternativeReplacementStrings.size(); + alternativeStrings = [NSMutableArray arrayWithCapacity:size]; + for (size_t i = 0; i < size; ++i) + [alternativeStrings addObject:(NSString*)alternativeReplacementStrings[i]]; + } + + [[NSSpellChecker sharedSpellChecker] showCorrectionBubbleOfType:bubbleType primaryString:replacementStringAsNSString alternativeStrings:alternativeStrings forStringInRect:boundingBoxAsNSRect view:m_webView completionHandler:^(NSString *acceptedString) { + switch (bubbleType) { + case NSCorrectionBubbleTypeCorrection: + if (!acceptedString) { + [[NSSpellChecker sharedSpellChecker] recordResponse:NSCorrectionResponseRejected toCorrection:replacementStringAsNSString forWord:replacedStringAsNSString language:nil inSpellDocumentWithTag:[m_webView spellCheckerDocumentTag]]; + editor->handleCorrectionPanelResult(String()); + } + break; + case NSCorrectionBubbleTypeReversion: + if (acceptedString) { + [[NSSpellChecker sharedSpellChecker] recordResponse:NSCorrectionResponseReverted toCorrection:replacedStringAsNSString forWord:replacementStringAsNSString language:nil inSpellDocumentWithTag:[m_webView spellCheckerDocumentTag]]; + editor->handleCorrectionPanelResult(String()); + } + break; + case NSCorrectionBubbleTypeGuesses: + if (acceptedString) + [[NSSpellChecker sharedSpellChecker] recordResponse:NSCorrectionResponseAccepted toCorrection:acceptedString forWord:replacedStringAsNSString language:nil inSpellDocumentWithTag:[m_webView spellCheckerDocumentTag]]; + editor->handleCorrectionPanelResult(String(acceptedString)); + break; } }]; } @@ -916,11 +952,22 @@ bool WebEditorClient::spellingUIIsShowing() return [[[NSSpellChecker sharedSpellChecker] spellingPanel] isVisible]; } -void WebEditorClient::getGuessesForWord(const String& word, WTF::Vector<String>& guesses) -{ +void WebEditorClient::getGuessesForWord(const String& word, const String& context, Vector<String>& guesses) { + guesses.clear(); +#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD) + NSString* language = nil; + NSOrthography* orthography = nil; + NSSpellChecker *checker = [NSSpellChecker sharedSpellChecker]; + if (context.length()) { + [checker checkString:context range:NSMakeRange(0, context.length()) types:NSTextCheckingTypeOrthography options:0 inSpellDocumentWithTag:spellCheckerDocumentTag() orthography:&orthography wordCount:0]; + language = [checker languageForWordRange:NSMakeRange(0, context.length()) inString:context orthography:orthography]; + } + NSArray* stringsArray = [checker guessesForWordRange:NSMakeRange(0, word.length()) inString:word language:language inSpellDocumentWithTag:spellCheckerDocumentTag()]; +#else NSArray* stringsArray = [[NSSpellChecker sharedSpellChecker] guessesForWord:word]; +#endif unsigned count = [stringsArray count]; - guesses.clear(); + if (count > 0) { NSEnumerator* enumerator = [stringsArray objectEnumerator]; NSString* string; diff --git a/WebKit/mac/WebView/WebDocumentInternal.h b/WebKit/mac/WebView/WebDocumentInternal.h index 0f63d75..0b86ba8 100644 --- a/WebKit/mac/WebView/WebDocumentInternal.h +++ b/WebKit/mac/WebView/WebDocumentInternal.h @@ -28,6 +28,7 @@ #import <WebKit/WebDocumentPrivate.h> #import <WebKit/WebHTMLView.h> +#import <WebKit/WebViewPrivate.h> #if MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_4 #define WebNSUInteger unsigned int @@ -61,12 +62,14 @@ @protocol WebMultipleTextMatches <NSObject> - (void)setMarkedTextMatchesAreHighlighted:(BOOL)newValue; - (BOOL)markedTextMatchesAreHighlighted; -- (WebNSUInteger)markAllMatchesForText:(NSString *)string caseSensitive:(BOOL)caseFlag limit:(WebNSUInteger)limit; -- (WebNSUInteger)countMatchesForText:(NSString *)string caseSensitive:(BOOL)caseFlag limit:(WebNSUInteger)limit markMatches:(BOOL)markMatches; +- (WebNSUInteger)countMatchesForText:(NSString *)string options:(WebFindOptions)options limit:(WebNSUInteger)limit markMatches:(BOOL)markMatches; - (void)unmarkAllTextMatches; - (NSArray *)rectsForTextMatches; @end +@protocol WebDocumentOptionsSearching <NSObject> +- (BOOL)findString:(NSString *)string options:(WebFindOptions)options; +@end /* Used to save and restore state in the view, typically when going back/forward */ @protocol _WebDocumentViewState <NSObject> @@ -76,7 +79,7 @@ - (void)setViewState:(id)statePList; @end -@interface WebHTMLView (WebDocumentInternalProtocols) <WebDocumentElement, WebMultipleTextMatches> +@interface WebHTMLView (WebDocumentInternalProtocols) <WebDocumentElement, WebMultipleTextMatches, WebDocumentOptionsSearching> @end #undef WebNSUInteger diff --git a/WebKit/mac/WebView/WebDynamicScrollBarsView.h b/WebKit/mac/WebView/WebDynamicScrollBarsView.h index c289a04..b89462d 100644 --- a/WebKit/mac/WebView/WebDynamicScrollBarsView.h +++ b/WebKit/mac/WebView/WebDynamicScrollBarsView.h @@ -58,4 +58,10 @@ struct WebDynamicScrollBarsViewPrivate; // visible is that they have been suppressed by setAlwaysHideHorizontal/VerticalScroller:. - (BOOL)horizontalScrollingAllowed; - (BOOL)verticalScrollingAllowed; + +// Returns YES if we're currently in the middle of programmatically moving the +// scrollbar. +// NOTE: As opposed to other places in the code, programmatically moving the +// scrollers from inside this class should not fire JS events. +- (BOOL)inProgramaticScroll; @end diff --git a/WebKit/mac/WebView/WebDynamicScrollBarsView.mm b/WebKit/mac/WebView/WebDynamicScrollBarsView.mm index 74439dd..1c6980f 100644 --- a/WebKit/mac/WebView/WebDynamicScrollBarsView.mm +++ b/WebKit/mac/WebView/WebDynamicScrollBarsView.mm @@ -62,6 +62,17 @@ struct WebDynamicScrollBarsViewPrivate { bool alwaysHideVerticalScroller; bool horizontalScrollingAllowedButScrollerHidden; bool verticalScrollingAllowedButScrollerHidden; + + // scrollOrigin is set for various combinations of writing mode and direction. + // See the comment next to the corresponding member in ScrollView.h. + NSPoint scrollOrigin; + + // Flag to indicate that the scrollbar thumb's initial position needs to + // be manually set. + bool scrollOriginChanged; + NSPoint scrollPositionExcludingOrigin; + + bool inProgrammaticScroll; }; @implementation WebDynamicScrollBarsView @@ -149,6 +160,11 @@ struct WebDynamicScrollBarsViewPrivate { return _private->verticalScrollingAllowedButScrollerHidden || [self hasVerticalScroller]; } +- (BOOL)inProgramaticScroll +{ + return _private->inProgrammaticScroll; +} + @end @implementation WebDynamicScrollBarsView (WebInternal) @@ -201,6 +217,24 @@ struct WebDynamicScrollBarsViewPrivate { #endif } +- (void)adjustForScrollOriginChange +{ + if (!_private->scrollOriginChanged) + return; + + _private->scrollOriginChanged = false; + + NSView *documentView = [self documentView]; + NSRect documentRect = [documentView bounds]; + + // The call to [NSView scrollPoint:] fires off notification the handler for which needs to know that + // we're setting the initial scroll position so it doesn't interpret this as a user action and + // fire off a JS event. + _private->inProgrammaticScroll = true; + [documentView scrollPoint:NSMakePoint(_private->scrollPositionExcludingOrigin.x + documentRect.origin.x, _private->scrollPositionExcludingOrigin.y + documentRect.origin.y)]; + _private->inProgrammaticScroll = false; +} + static const unsigned cMaxUpdateScrollbarsPass = 2; - (void)updateScrollers @@ -304,6 +338,10 @@ static const unsigned cMaxUpdateScrollbarsPass = 2; [self setHasHorizontalScroller:newHasHorizontalScroller]; _private->inUpdateScrollers = NO; needsLayout = YES; + NSView *documentView = [self documentView]; + NSRect documentRect = [documentView bounds]; + if (documentRect.origin.y < 0 && !newHasHorizontalScroller) + [documentView setBoundsOrigin:NSMakePoint(documentRect.origin.x, documentRect.origin.y + 15)]; } if (hasVerticalScroller != newHasVerticalScroller) { @@ -311,6 +349,10 @@ static const unsigned cMaxUpdateScrollbarsPass = 2; [self setHasVerticalScroller:newHasVerticalScroller]; _private->inUpdateScrollers = NO; needsLayout = YES; + NSView *documentView = [self documentView]; + NSRect documentRect = [documentView bounds]; + if (documentRect.origin.x < 0 && !newHasVerticalScroller) + [documentView setBoundsOrigin:NSMakePoint(documentRect.origin.x + 15, documentRect.origin.y)]; } if (needsLayout && _private->inUpdateScrollersLayoutPass < cMaxUpdateScrollbarsPass && @@ -364,6 +406,11 @@ static const unsigned cMaxUpdateScrollbarsPass = 2; } #endif + // The call to [NSView reflectScrolledClipView] sets the scrollbar thumb + // position to 0 (the left) when the view is initially displayed. + // This call updates the initial position correctly. + [self adjustForScrollOriginChange]; + #if USE(ACCELERATED_COMPOSITING) && defined(BUILDING_ON_LEOPARD) NSView *documentView = [self documentView]; if ([documentView isKindOfClass:[WebHTMLView class]]) { @@ -525,4 +572,30 @@ static const unsigned cMaxUpdateScrollbarsPass = 2; return [super accessibilityIsIgnored]; } +- (void)setScrollOrigin:(NSPoint)scrollOrigin updatePosition:(BOOL)updatePosition +{ + // The cross-platform ScrollView call already checked to see if the old/new scroll origins were the same or not + // so we don't have to check for equivalence here. + _private->scrollOrigin = scrollOrigin; + id docView = [self documentView]; + NSPoint docOrigin = [docView bounds].origin; + + NSRect visibleRect = [self documentVisibleRect]; + + [docView setBoundsOrigin:NSMakePoint(-scrollOrigin.x, -scrollOrigin.y)]; + + _private->scrollOriginChanged = true; + + // Maintain our original position in the presence of the new scroll origin. + _private->scrollPositionExcludingOrigin = NSMakePoint(visibleRect.origin.x + scrollOrigin.x, visibleRect.origin.y + scrollOrigin.y); + + if (updatePosition) // Otherwise we'll just let the snap happen when we update for the resize. + [self adjustForScrollOriginChange]; +} + +- (NSPoint)scrollOrigin +{ + return _private->scrollOrigin; +} + @end diff --git a/WebKit/mac/WebView/WebFrame.mm b/WebKit/mac/WebView/WebFrame.mm index fb6d69c..d1d4953 100644 --- a/WebKit/mac/WebView/WebFrame.mm +++ b/WebKit/mac/WebView/WebFrame.mm @@ -901,9 +901,12 @@ static inline WebDataSource *dataSource(DocumentLoader* loader) - (DOMCSSStyleDeclaration *)_typingStyle { - if (!_private->coreFrame || !_private->coreFrame->selection()->typingStyle()) + if (!_private->coreFrame) + return nil; + RefPtr<CSSMutableStyleDeclaration> typingStyle = _private->coreFrame->selection()->copyTypingStyle(); + if (!typingStyle) return nil; - return kit(_private->coreFrame->selection()->typingStyle()->copy().get()); + return kit(typingStyle.get()); } - (void)_setTypingStyle:(DOMCSSStyleDeclaration *)style withUndoAction:(EditAction)undoAction diff --git a/WebKit/mac/WebView/WebFrameView.mm b/WebKit/mac/WebView/WebFrameView.mm index 0db12c0..20905d0 100644 --- a/WebKit/mac/WebView/WebFrameView.mm +++ b/WebKit/mac/WebView/WebFrameView.mm @@ -536,6 +536,8 @@ static inline void addTypesFromClass(NSMutableDictionary *allTypes, Class objCCl if (![self _isScrollable]) return NO; NSPoint point = [[[self _scrollView] documentView] frame].origin; + point.x += [[self _scrollView] scrollOrigin].x; + point.y += [[self _scrollView] scrollOrigin].y; return [[self _contentView] _scrollTo:&point animate:YES]; } @@ -547,6 +549,8 @@ static inline void addTypesFromClass(NSMutableDictionary *allTypes, Class objCCl return NO; NSRect frame = [[[self _scrollView] documentView] frame]; NSPoint point = NSMakePoint(frame.origin.x, NSMaxY(frame)); + point.x += [[self _scrollView] scrollOrigin].x; + point.y += [[self _scrollView] scrollOrigin].y; return [[self _contentView] _scrollTo:&point animate:YES]; } diff --git a/WebKit/mac/WebView/WebHTMLView.mm b/WebKit/mac/WebView/WebHTMLView.mm index ec2473f..db78c37 100644 --- a/WebKit/mac/WebView/WebHTMLView.mm +++ b/WebKit/mac/WebView/WebHTMLView.mm @@ -525,6 +525,16 @@ static NSCellStateValue kit(TriState state) return NSOffState; } +static FindOptions coreOptions(WebFindOptions options) +{ + return (options & WebFindOptionsCaseInsensitive ? CaseInsensitive : 0) + | (options & WebFindOptionsAtWordStarts ? AtWordStarts : 0) + | (options & WebFindOptionsTreatMedialCapitalAsWordStart ? TreatMedialCapitalAsWordStart : 0) + | (options & WebFindOptionsBackwards ? Backwards : 0) + | (options & WebFindOptionsWrapAround ? WrapAround : 0) + | (options & WebFindOptionsStartInSelection ? StartInSelection : 0); +} + @implementation WebHTMLViewPrivate + (void)initialize @@ -1198,8 +1208,11 @@ static void _updateMouseoverTimerCallback(CFRunLoopTimerRef timer, void *info) - (void)_frameOrBoundsChanged { + WebView *webView = [self _webView]; + WebDynamicScrollBarsView *scrollView = [[[webView mainFrame] frameView] _scrollView]; + NSPoint origin = [[self superview] bounds].origin; - if (!NSEqualPoints(_private->lastScrollPosition, origin)) { + if (!NSEqualPoints(_private->lastScrollPosition, origin) && ![scrollView inProgramaticScroll]) { if (Frame* coreFrame = core([self _frame])) { if (FrameView* coreView = coreFrame->view()) { #ifndef BUILDING_ON_TIGER @@ -1214,7 +1227,6 @@ static void _updateMouseoverTimerCallback(CFRunLoopTimerRef timer, void *info) [_private->completionController endRevertingChange:NO moveLeft:NO]; - WebView *webView = [self _webView]; [[webView _UIDelegateForwarder] webView:webView didScrollDocumentInFrameView:[self _frameView]]; } _private->lastScrollPosition = origin; @@ -6196,10 +6208,7 @@ static void extractUnderlines(NSAttributedString *string, Vector<CompositionUnde - (BOOL)searchFor:(NSString *)string direction:(BOOL)forward caseSensitive:(BOOL)caseFlag wrap:(BOOL)wrapFlag startInSelection:(BOOL)startInSelection { - if (![string length]) - return NO; - Frame* coreFrame = core([self _frame]); - return coreFrame && coreFrame->editor()->findString(string, forward, caseFlag, wrapFlag, startInSelection); + return [self findString:string options:(forward ? 0 : WebFindOptionsBackwards) | (caseFlag ? 0 : WebFindOptionsCaseInsensitive) | (startInSelection ? WebFindOptionsStartInSelection : 0)]; } @end @@ -6219,17 +6228,12 @@ static void extractUnderlines(NSAttributedString *string, Vector<CompositionUnde return [[[WebElementDictionary alloc] initWithHitTestResult:coreFrame->eventHandler()->hitTestResultAtPoint(IntPoint(point), allow)] autorelease]; } -- (NSUInteger)markAllMatchesForText:(NSString *)string caseSensitive:(BOOL)caseFlag limit:(NSUInteger)limit -{ - return [self countMatchesForText:string caseSensitive:caseFlag limit:limit markMatches:YES]; -} - -- (NSUInteger)countMatchesForText:(NSString *)string caseSensitive:(BOOL)caseFlag limit:(NSUInteger)limit markMatches:(BOOL)markMatches +- (NSUInteger)countMatchesForText:(NSString *)string options:(WebFindOptions)options limit:(NSUInteger)limit markMatches:(BOOL)markMatches { Frame* coreFrame = core([self _frame]); if (!coreFrame) return 0; - return coreFrame->editor()->countMatchesForText(string, caseFlag, limit, markMatches); + return coreFrame->editor()->countMatchesForText(string, coreOptions(options), limit, markMatches); } - (void)setMarkedTextMatchesAreHighlighted:(BOOL)newValue @@ -6274,6 +6278,14 @@ static void extractUnderlines(NSAttributedString *string, Vector<CompositionUnde return result; } +- (BOOL)findString:(NSString *)string options:(WebFindOptions)options +{ + if (![string length]) + return NO; + Frame* coreFrame = core([self _frame]); + return coreFrame && coreFrame->editor()->findString(string, coreOptions(options)); +} + @end // This is used by AppKit and is included here so that WebDataProtocolScheme is only defined once. diff --git a/WebKit/mac/WebView/WebPDFView.mm b/WebKit/mac/WebView/WebPDFView.mm index 70fceb6..35d44f7 100644 --- a/WebKit/mac/WebView/WebPDFView.mm +++ b/WebKit/mac/WebView/WebPDFView.mm @@ -626,19 +626,13 @@ static BOOL _PDFSelectionsAreEqual(PDFSelection *selectionA, PDFSelection *selec return NO; } -- (NSUInteger)markAllMatchesForText:(NSString *)string caseSensitive:(BOOL)caseFlag limit:(NSUInteger)limit -{ - return [self countMatchesForText:string caseSensitive:caseFlag limit:limit markMatches:YES]; -} - -- (NSUInteger)countMatchesForText:(NSString *)string caseSensitive:(BOOL)caseFlag limit:(NSUInteger)limit markMatches:(BOOL)markMatches +- (NSUInteger)countMatchesForText:(NSString *)string options:(WebFindOptions)options limit:(NSUInteger)limit markMatches:(BOOL)markMatches { PDFSelection *previousMatch = nil; - PDFSelection *nextMatch = nil; NSMutableArray *matches = [[NSMutableArray alloc] initWithCapacity:limit]; for (;;) { - nextMatch = [self _nextMatchFor:string direction:YES caseSensitive:caseFlag wrap:NO fromSelection:previousMatch startInSelection:NO]; + PDFSelection *nextMatch = [self _nextMatchFor:string direction:YES caseSensitive:!(options & WebFindOptionsCaseInsensitive) wrap:NO fromSelection:previousMatch startInSelection:NO]; if (!nextMatch) break; diff --git a/WebKit/mac/WebView/WebRenderLayer.mm b/WebKit/mac/WebView/WebRenderLayer.mm index edffac2..c282643 100644 --- a/WebKit/mac/WebView/WebRenderLayer.mm +++ b/WebKit/mac/WebView/WebRenderLayer.mm @@ -32,6 +32,7 @@ #import <WebCore/RenderLayer.h> #import <WebCore/RenderLayerBacking.h> #import <WebCore/RenderView.h> +#import <WebCore/StyledElement.h> using namespace WebCore; diff --git a/WebKit/mac/WebView/WebView.mm b/WebKit/mac/WebView/WebView.mm index 0498554..c57bf38 100644 --- a/WebKit/mac/WebView/WebView.mm +++ b/WebKit/mac/WebView/WebView.mm @@ -2645,6 +2645,21 @@ static PassOwnPtr<Vector<String> > toStringVector(NSArray* patterns) return coreFrame->pageScaleFactor(); } +- (NSUInteger)markAllMatchesForText:(NSString *)string caseSensitive:(BOOL)caseFlag highlight:(BOOL)highlight limit:(NSUInteger)limit +{ + return [self countMatchesForText:string options:(caseFlag ? 0 : WebFindOptionsCaseInsensitive) highlight:highlight limit:limit markMatches:YES]; +} + +- (NSUInteger)countMatchesForText:(NSString *)string caseSensitive:(BOOL)caseFlag highlight:(BOOL)highlight limit:(NSUInteger)limit markMatches:(BOOL)markMatches +{ + return [self countMatchesForText:string options:(caseFlag ? 0 : WebFindOptionsCaseInsensitive) highlight:highlight limit:limit markMatches:markMatches]; +} + +- (BOOL)searchFor:(NSString *)string direction:(BOOL)forward caseSensitive:(BOOL)caseFlag wrap:(BOOL)wrapFlag startInSelection:(BOOL)startInSelection +{ + return [self findString:string options:((forward ? 0 : WebFindOptionsBackwards) | (caseFlag ? 0 : WebFindOptionsCaseInsensitive) | (wrapFlag ? WebFindOptionsWrapAround : 0) | (startInSelection ? WebFindOptionsStartInSelection : 0))]; +} + @end @implementation _WebSafeForwarder @@ -3824,12 +3839,12 @@ static bool needsWebViewInitThreadWorkaround() [super setNextKeyView:view]; } -static WebFrame *incrementFrame(WebFrame *frame, BOOL forward, BOOL wrapFlag) +static WebFrame *incrementFrame(WebFrame *frame, WebFindOptions options = 0) { Frame* coreFrame = core(frame); - return kit(forward - ? coreFrame->tree()->traverseNextWithWrap(wrapFlag) - : coreFrame->tree()->traversePreviousWithWrap(wrapFlag)); + return kit((options & WebFindOptionsBackwards) + ? coreFrame->tree()->traversePreviousWithWrap(options & WebFindOptionsWrapAround) + : coreFrame->tree()->traverseNextWithWrap(options & WebFindOptionsWrapAround)); } - (BOOL)searchFor:(NSString *)string direction:(BOOL)forward caseSensitive:(BOOL)caseFlag wrap:(BOOL)wrapFlag @@ -4255,7 +4270,16 @@ static WebFrame *incrementFrame(WebFrame *frame, BOOL forward, BOOL wrapFlag) core(self)->removeSchedulePair(SchedulePair::create(runLoop, (CFStringRef)mode)); } -- (BOOL)searchFor:(NSString *)string direction:(BOOL)forward caseSensitive:(BOOL)caseFlag wrap:(BOOL)wrapFlag startInSelection:(BOOL)startInSelection +static BOOL findString(NSView <WebDocumentSearching> *searchView, NSString *string, WebFindOptions options) +{ + if ([searchView conformsToProtocol:@protocol(WebDocumentOptionsSearching)]) + return [(NSView <WebDocumentOptionsSearching> *)searchView findString:string options:options]; + if ([searchView conformsToProtocol:@protocol(WebDocumentIncrementalSearching)]) + return [(NSView <WebDocumentIncrementalSearching> *)searchView searchFor:string direction:!(options & WebFindOptionsBackwards) caseSensitive:!(options & WebFindOptionsCaseInsensitive) wrap:!!(options & WebFindOptionsWrapAround) startInSelection:!!(options & WebFindOptionsStartInSelection)]; + return [searchView searchFor:string direction:!(options & WebFindOptionsBackwards) caseSensitive:!(options & WebFindOptionsCaseInsensitive) wrap:!!(options & WebFindOptionsWrapAround)]; +} + +- (BOOL)findString:(NSString *)string options:(WebFindOptions)options { if (_private->closed) return NO; @@ -4267,7 +4291,7 @@ static WebFrame *incrementFrame(WebFrame *frame, BOOL forward, BOOL wrapFlag) NSView <WebDocumentSearching> *startSearchView = nil; WebFrame *frame = startFrame; do { - WebFrame *nextFrame = incrementFrame(frame, forward, wrapFlag); + WebFrame *nextFrame = incrementFrame(frame, options); BOOL onlyOneFrame = (frame == nextFrame); ASSERT(!onlyOneFrame || frame == startFrame); @@ -4279,18 +4303,13 @@ static WebFrame *incrementFrame(WebFrame *frame, BOOL forward, BOOL wrapFlag) if (frame == startFrame) startSearchView = searchView; - BOOL foundString; // In some cases we have to search some content twice; see comment later in this method. - // We can avoid ever doing this in the common one-frame case by passing YES for wrapFlag + // We can avoid ever doing this in the common one-frame case by passing the wrap option through // here, and then bailing out before we get to the code that would search again in the // same content. - BOOL wrapOnThisPass = wrapFlag && onlyOneFrame; - if ([searchView conformsToProtocol:@protocol(WebDocumentIncrementalSearching)]) - foundString = [(NSView <WebDocumentIncrementalSearching> *)searchView searchFor:string direction:forward caseSensitive:caseFlag wrap:wrapOnThisPass startInSelection:startInSelection]; - else - foundString = [searchView searchFor:string direction:forward caseSensitive:caseFlag wrap:wrapOnThisPass]; - - if (foundString) { + WebFindOptions optionsForThisPass = onlyOneFrame ? options : (options & ~WebFindOptionsWrapAround); + + if (findString(searchView, string, optionsForThisPass)) { if (frame != startFrame) [startFrame _clearSelection]; [[self window] makeFirstResponder:searchView]; @@ -4303,18 +4322,13 @@ static WebFrame *incrementFrame(WebFrame *frame, BOOL forward, BOOL wrapFlag) frame = nextFrame; } while (frame && frame != startFrame); - // If there are multiple frames and wrapFlag is true and we've visited each one without finding a result, we still need to search in the + // If there are multiple frames and WebFindOptionsWrapAround is set and we've visited each one without finding a result, we still need to search in the // first-searched frame up to the selection. However, the API doesn't provide a way to search only up to a particular point. The only - // way to make sure the entire frame is searched is to pass YES for the wrapFlag. When there are no matches, this will search again + // way to make sure the entire frame is searched is to pass WebFindOptionsWrapAround. When there are no matches, this will search // some content that we already searched on the first pass. In the worst case, we could search the entire contents of this frame twice. // To fix this, we'd need to add a mechanism to specify a range in which to search. - if (wrapFlag && startSearchView) { - BOOL foundString; - if ([startSearchView conformsToProtocol:@protocol(WebDocumentIncrementalSearching)]) - foundString = [(NSView <WebDocumentIncrementalSearching> *)startSearchView searchFor:string direction:forward caseSensitive:caseFlag wrap:YES startInSelection:startInSelection]; - else - foundString = [startSearchView searchFor:string direction:forward caseSensitive:caseFlag wrap:YES]; - if (foundString) { + if ((options & WebFindOptionsWrapAround) && startSearchView) { + if (findString(startSearchView, string, options)) { [[self window] makeFirstResponder:startSearchView]; return YES; } @@ -4496,21 +4510,13 @@ static NSAppleEventDescriptor* aeDescFromJSValue(ExecState* exec, JSValue jsValu if (view && ![view conformsToProtocol:@protocol(WebMultipleTextMatches)]) return NO; - frame = incrementFrame(frame, YES, NO); + frame = incrementFrame(frame); } while (frame); return YES; } -- (NSUInteger)markAllMatchesForText:(NSString *)string caseSensitive:(BOOL)caseFlag highlight:(BOOL)highlight limit:(NSUInteger)limit -{ - if (_private->closed) - return 0; - - return [self countMatchesForText:string caseSensitive:caseFlag highlight:highlight limit:limit markMatches:YES]; -} - -- (NSUInteger)countMatchesForText:(NSString *)string caseSensitive:(BOOL)caseFlag highlight:(BOOL)highlight limit:(NSUInteger)limit markMatches:(BOOL)markMatches +- (NSUInteger)countMatchesForText:(NSString *)string options:(WebFindOptions)options highlight:(BOOL)highlight limit:(NSUInteger)limit markMatches:(BOOL)markMatches { if (_private->closed) return 0; @@ -4524,14 +4530,14 @@ static NSAppleEventDescriptor* aeDescFromJSValue(ExecState* exec, JSValue jsValu [(NSView <WebMultipleTextMatches>*)view setMarkedTextMatchesAreHighlighted:highlight]; ASSERT(limit == 0 || matchCount < limit); - matchCount += [(NSView <WebMultipleTextMatches>*)view countMatchesForText:string caseSensitive:caseFlag limit:limit == 0 ? 0 : limit - matchCount markMatches:markMatches]; + matchCount += [(NSView <WebMultipleTextMatches>*)view countMatchesForText:string options:options limit:(limit == 0 ? 0 : limit - matchCount) markMatches:markMatches]; // Stop looking if we've reached the limit. A limit of 0 means no limit. if (limit > 0 && matchCount >= limit) break; } - frame = incrementFrame(frame, YES, NO); + frame = incrementFrame(frame); } while (frame); return matchCount; @@ -4548,7 +4554,7 @@ static NSAppleEventDescriptor* aeDescFromJSValue(ExecState* exec, JSValue jsValu if ([view conformsToProtocol:@protocol(WebMultipleTextMatches)]) [(NSView <WebMultipleTextMatches>*)view unmarkAllTextMatches]; - frame = incrementFrame(frame, YES, NO); + frame = incrementFrame(frame); } while (frame); } @@ -4586,7 +4592,7 @@ static NSAppleEventDescriptor* aeDescFromJSValue(ExecState* exec, JSValue jsValu [pool drain]; } - frame = incrementFrame(frame, YES, NO); + frame = incrementFrame(frame); } while (frame); return result; diff --git a/WebKit/mac/WebView/WebViewPrivate.h b/WebKit/mac/WebView/WebViewPrivate.h index af594d9..5b995e9 100644 --- a/WebKit/mac/WebView/WebViewPrivate.h +++ b/WebKit/mac/WebView/WebViewPrivate.h @@ -70,7 +70,7 @@ extern NSString *WebElementIsContentEditableKey; // NSNumber indicating whether extern NSString *WebElementMediaURLKey; // NSURL of the media element // other WebElementDictionary keys -extern NSString *WebElementLinkIsLiveKey; // NSNumber of BOOL indictating whether the link is live or not +extern NSString *WebElementLinkIsLiveKey; // NSNumber of BOOL indicating whether the link is live or not extern NSString *WebElementIsInScrollBarKey; // One of the subviews of the WebView entered compositing mode. @@ -96,6 +96,16 @@ typedef enum { WebInjectInTopFrameOnly } WebUserContentInjectedFrames; +enum { + WebFindOptionsCaseInsensitive = 1 << 0, + WebFindOptionsAtWordStarts = 1 << 1, + WebFindOptionsTreatMedialCapitalAsWordStart = 1 << 2, + WebFindOptionsBackwards = 1 << 3, + WebFindOptionsWrapAround = 1 << 4, + WebFindOptionsStartInSelection = 1 << 5 +}; +typedef NSUInteger WebFindOptions; + @interface WebController : NSTreeController { IBOutlet WebView *webView; } @@ -114,18 +124,7 @@ typedef enum { - (void)scheduleInRunLoop:(NSRunLoop *)runLoop forMode:(NSString *)mode; - (void)unscheduleFromRunLoop:(NSRunLoop *)runLoop forMode:(NSString *)mode; -/*! -@method searchFor:direction:caseSensitive:wrap:startInSelection: - @abstract Searches a document view for a string and highlights the string if it is found. - Starts the search from the current selection. Will search across all frames. - @param string The string to search for. - @param forward YES to search forward, NO to seach backwards. - @param caseFlag YES to for case-sensitive search, NO for case-insensitive search. - @param wrapFlag YES to wrap around, NO to avoid wrapping. - @param startInSelection YES to begin search in the selected text (useful for incremental searching), NO to begin search after the selected text. - @result YES if found, NO if not found. - */ -- (BOOL)searchFor:(NSString *)string direction:(BOOL)forward caseSensitive:(BOOL)caseFlag wrap:(BOOL)wrapFlag startInSelection:(BOOL)startInSelection; +- (BOOL)findString:(NSString *)string options:(WebFindOptions)options; - (void)setMainFrameDocumentReady:(BOOL)mainFrameDocumentReady; @@ -182,8 +181,7 @@ typedef enum { // whether or not they implement the protocol. For now we'll just deal with HTML. // These methods are still in flux; don't rely on them yet. - (BOOL)canMarkAllTextMatches; -- (WebNSUInteger)markAllMatchesForText:(NSString *)string caseSensitive:(BOOL)caseFlag highlight:(BOOL)highlight limit:(WebNSUInteger)limit; -- (WebNSUInteger)countMatchesForText:(NSString *)string caseSensitive:(BOOL)caseFlag highlight:(BOOL)highlight limit:(WebNSUInteger)limit markMatches:(BOOL)markMatches; +- (WebNSUInteger)countMatchesForText:(NSString *)string options:(WebFindOptions)options highlight:(BOOL)highlight limit:(WebNSUInteger)limit markMatches:(BOOL)markMatches; - (void)unmarkAllTextMatches; - (NSArray *)rectsForTextMatches; @@ -545,6 +543,24 @@ Could be worth adding to the API. - (void)_scaleWebView:(float)scale atOrigin:(NSPoint)origin; - (float)_viewScaleFactor; +// Deprecated. Use the methods in pending public above instead. +- (WebNSUInteger)markAllMatchesForText:(NSString *)string caseSensitive:(BOOL)caseFlag highlight:(BOOL)highlight limit:(WebNSUInteger)limit; +- (WebNSUInteger)countMatchesForText:(NSString *)string caseSensitive:(BOOL)caseFlag highlight:(BOOL)highlight limit:(WebNSUInteger)limit markMatches:(BOOL)markMatches; + +/*! + @method searchFor:direction:caseSensitive:wrap:startInSelection: + @abstract Searches a document view for a string and highlights the string if it is found. + Starts the search from the current selection. Will search across all frames. + @param string The string to search for. + @param forward YES to search forward, NO to seach backwards. + @param caseFlag YES to for case-sensitive search, NO for case-insensitive search. + @param wrapFlag YES to wrap around, NO to avoid wrapping. + @param startInSelection YES to begin search in the selected text (useful for incremental searching), NO to begin search after the selected text. + @result YES if found, NO if not found. + */ +// Deprecated. Use findString. +- (BOOL)searchFor:(NSString *)string direction:(BOOL)forward caseSensitive:(BOOL)caseFlag wrap:(BOOL)wrapFlag startInSelection:(BOOL)startInSelection; + @end @interface WebView (WebViewPrintingPrivate) diff --git a/WebKit/qt/Api/qgraphicswebview.cpp b/WebKit/qt/Api/qgraphicswebview.cpp index 6cc2aa0..c8438f3 100644 --- a/WebKit/qt/Api/qgraphicswebview.cpp +++ b/WebKit/qt/Api/qgraphicswebview.cpp @@ -140,8 +140,8 @@ void QGraphicsWebViewPrivate::updateResizesToContentsForPage() QObject::disconnect(page->mainFrame(), SIGNAL(contentsSizeChanged(QSize)), q, SLOT(_q_contentsSizeChanged(const QSize&))); } - page->d->page->settings()->setShouldDelegateScrolling(resizesToContents); page->d->page->mainFrame()->view()->setPaintsEntireContents(resizesToContents); + page->d->page->mainFrame()->view()->setDelegatesScrolling(resizesToContents); } void QGraphicsWebViewPrivate::_q_contentsSizeChanged(const QSize& size) @@ -413,8 +413,6 @@ void QGraphicsWebViewPrivate::detachCurrentPage() if (!page) return; - page->d->page->settings()->setShouldDelegateScrolling(false); - page->d->view.clear(); // The client has always to be deleted. diff --git a/WebKit/qt/Api/qwebelement.cpp b/WebKit/qt/Api/qwebelement.cpp index 8f40c0f..60ae3a0 100644 --- a/WebKit/qt/Api/qwebelement.cpp +++ b/WebKit/qt/Api/qwebelement.cpp @@ -1020,7 +1020,7 @@ void QWebElement::appendInside(const QString &markup) return; HTMLElement* htmlElement = static_cast<HTMLElement*>(m_element); - RefPtr<DocumentFragment> fragment = htmlElement->deprecatedCreateContextualFragment(markup); + RefPtr<DocumentFragment> fragment = htmlElement->Element::deprecatedCreateContextualFragment(markup); ExceptionCode exception = 0; m_element->appendChild(fragment, exception); diff --git a/WebKit/qt/Api/qwebframe.cpp b/WebKit/qt/Api/qwebframe.cpp index 203bd60..3cdbef2 100644 --- a/WebKit/qt/Api/qwebframe.cpp +++ b/WebKit/qt/Api/qwebframe.cpp @@ -558,6 +558,10 @@ void QWebFrame::addToJavaScriptWindowObject(const QString &name, QObject *object qDebug() << "Warning: couldn't get window object"; return; } + if (!root) { + qDebug() << "Warning: couldn't get root object"; + return; + } JSC::ExecState* exec = window->globalExec(); @@ -833,6 +837,11 @@ void QWebFrame::load(const QNetworkRequest &req, case QNetworkAccessManager::DeleteOperation: request.setHTTPMethod("DELETE"); break; +#if QT_VERSION >= QT_VERSION_CHECK(4, 7, 0) + case QNetworkAccessManager::CustomOperation: + request.setHTTPMethod(req.attribute(QNetworkRequest::CustomVerbAttribute).toByteArray().constData()); + break; +#endif case QNetworkAccessManager::UnknownOperation: // eh? break; diff --git a/WebKit/qt/Api/qwebinspector.cpp b/WebKit/qt/Api/qwebinspector.cpp index 27148f7..6706f2a 100644 --- a/WebKit/qt/Api/qwebinspector.cpp +++ b/WebKit/qt/Api/qwebinspector.cpp @@ -91,6 +91,8 @@ QWebInspector::~QWebInspector() { // Remove association principally to prevent deleting a child frontend setPage(0); + delete d; + d = 0; } /*! diff --git a/WebKit/qt/Api/qwebpage.cpp b/WebKit/qt/Api/qwebpage.cpp index a29d417..030923f 100644 --- a/WebKit/qt/Api/qwebpage.cpp +++ b/WebKit/qt/Api/qwebpage.cpp @@ -141,6 +141,11 @@ using namespace WebCore; +// from text/qfont.cpp +QT_BEGIN_NAMESPACE +extern Q_GUI_EXPORT int qt_defaultDpi(); +QT_END_NAMESPACE + bool QWebPagePrivate::drtRun = false; // Lookup table mapping QWebPage::WebActions to the associated Editor commands @@ -286,6 +291,7 @@ QWebPagePrivate::QWebPagePrivate(QWebPage *qq) , selectTrailingWhitespaceEnabled(false) , linkPolicy(QWebPage::DontDelegateLinks) , viewportSize(QSize(0, 0)) + , pixelRatio(1) #ifndef QT_NO_CONTEXTMENU , currentContextMenu(0) #endif @@ -1067,11 +1073,9 @@ void QWebPagePrivate::inputMethodEvent(QInputMethodEvent *ev) if (node) setSelectionRange(node, qMin(a.start, (a.start + a.length)), qMax(a.start, (a.start + a.length))); - if (!ev->preeditString().isEmpty()) { - editor->setComposition(ev->preeditString(), underlines, - (a.length < 0) ? a.start + a.length : a.start, - (a.length < 0) ? a.start : a.start + a.length); - } else { + if (!ev->preeditString().isEmpty()) + editor->setComposition(ev->preeditString(), underlines, qMin(a.start, (a.start + a.length)), qMax(a.start, (a.start + a.length))); + else { // If we are in the middle of a composition, an empty pre-edit string and a selection of zero // cancels the current composition if (editor->hasComposition() && (a.start + a.length == 0)) @@ -1082,10 +1086,16 @@ void QWebPagePrivate::inputMethodEvent(QInputMethodEvent *ev) } } - if (!ev->commitString().isEmpty()) + if (node && ev->replacementLength() > 0) { + int cursorPos = frame->selection()->extent().offsetInContainerNode(); + int start = cursorPos + ev->replacementStart(); + setSelectionRange(node, start, start + ev->replacementLength()); + // Commit regardless of whether commitString is empty, to get rid of selection. + editor->confirmComposition(ev->commitString()); + } else if (!ev->commitString().isEmpty()) editor->confirmComposition(ev->commitString()); else if (!hasSelection && !ev->preeditString().isEmpty()) - editor->setComposition(ev->preeditString(), underlines, 0, ev->preeditString().length()); + editor->setComposition(ev->preeditString(), underlines, 0, 0); ev->accept(); } @@ -1370,10 +1380,8 @@ QVariant QWebPage::inputMethodQuery(Qt::InputMethodQuery property) const return QVariant(QFont()); } case Qt::ImCursorPosition: { - if (editor->hasComposition()) { - RefPtr<Range> range = editor->compositionRange(); - return QVariant(frame->selection()->end().offsetInContainerNode() - TextIterator::rangeLength(range.get())); - } + if (editor->hasComposition()) + return QVariant(frame->selection()->end().offsetInContainerNode()); return QVariant(frame->selection()->extent().offsetInContainerNode()); } case Qt::ImSurroundingText: { @@ -1387,7 +1395,7 @@ QVariant QWebPage::inputMethodQuery(Qt::InputMethodQuery property) const return QVariant(); } case Qt::ImCurrentSelection: { - if (renderTextControl) { + if (!editor->hasComposition() && renderTextControl) { int start = frame->selection()->start().offsetInContainerNode(); int end = frame->selection()->end().offsetInContainerNode(); if (end > start) @@ -1397,10 +1405,8 @@ QVariant QWebPage::inputMethodQuery(Qt::InputMethodQuery property) const } case Qt::ImAnchorPosition: { - if (editor->hasComposition()) { - RefPtr<Range> range = editor->compositionRange(); - return QVariant(frame->selection()->start().offsetInContainerNode() - TextIterator::rangeLength(range.get())); - } + if (editor->hasComposition()) + return QVariant(frame->selection()->start().offsetInContainerNode()); return QVariant(frame->selection()->base().offsetInContainerNode()); } case Qt::ImMaximumTextLength: { @@ -2117,16 +2123,16 @@ bool QWebPage::shouldInterruptJavaScript() #endif } -void QWebPage::setUserPermission(QWebFrame* frame, PermissionDomain domain, PermissionPolicy policy) +void QWebPage::setFeaturePermission(QWebFrame* frame, Feature feature, PermissionPolicy policy) { - switch (domain) { - case NotificationsPermissionDomain: + switch (feature) { + case Notifications: #if ENABLE(NOTIFICATIONS) - if (policy == PermissionGranted) + if (policy == PermissionGrantedByUser) NotificationPresenterClientQt::notificationPresenter()->allowNotificationForFrame(frame->d->frame); #endif break; - case GeolocationPermissionDomain: + case Geolocation: #if ENABLE(GEOLOCATION) GeolocationPermissionClientQt::geolocationPermissionClient()->setPermission(frame, policy); #endif @@ -2451,14 +2457,30 @@ static QSize queryDeviceSizeForScreenContainingWidget(const QWidget* widget) environment variables QTWEBKIT_DEVICE_WIDTH and QTWEBKIT_DEVICE_HEIGHT, which both needs to be set. + The ViewportAttributes includes a pixel density ratio, which will also be exposed to + the web author though the -webkit-pixel-ratio media feature. This is the ratio + between 1 density-independent pixel (DPI) and physical pixels. + + A density-independent pixel is equivalent to one physical pixel on a 160 DPI screen, + so on our platform assumes that as the baseline density. + + The conversion of DIP units to screen pixels is quite simple: + + pixels = DIPs * (density / 160). + + Thus, on a 240 DPI screen, 1 DIPs would equal 1.5 physical pixels. + An invalid instance will be returned in the case an empty size is passed to the method. + + \note The density is automatically obtained from the DPI of the screen where the page + is being shown, but as many X11 servers are reporting wrong DPI, it is possible to + override it using QX11Info::setAppDpiY(). */ QWebPage::ViewportAttributes QWebPage::viewportAttributesForSize(const QSize& availableSize) const { static int desktopWidth = 980; - static int deviceDPI = 160; ViewportAttributes result; @@ -2475,7 +2497,7 @@ QWebPage::ViewportAttributes QWebPage::viewportAttributesForSize(const QSize& av deviceHeight = size.height(); } - WebCore::ViewportAttributes conf = WebCore::computeViewportAttributes(d->viewportArguments(), desktopWidth, deviceWidth, deviceHeight, deviceDPI, availableSize); + WebCore::ViewportAttributes conf = WebCore::computeViewportAttributes(d->viewportArguments(), desktopWidth, deviceWidth, deviceHeight, qt_defaultDpi(), availableSize); result.m_isValid = true; result.m_size = conf.layoutSize; @@ -2485,6 +2507,8 @@ QWebPage::ViewportAttributes QWebPage::viewportAttributesForSize(const QSize& av result.m_devicePixelRatio = conf.devicePixelRatio; result.m_isUserScalable = conf.userScalable; + d->pixelRatio = conf.devicePixelRatio; + return result; } diff --git a/WebKit/qt/Api/qwebpage.h b/WebKit/qt/Api/qwebpage.h index 9fa3518..f1f5d24 100644 --- a/WebKit/qt/Api/qwebpage.h +++ b/WebKit/qt/Api/qwebpage.h @@ -198,14 +198,14 @@ public: }; enum PermissionPolicy { - PermissionGranted, PermissionUnknown, - PermissionDenied + PermissionGrantedByUser, + PermissionDeniedByUser }; - enum PermissionDomain { - NotificationsPermissionDomain, - GeolocationPermissionDomain + enum Feature { + Notifications, + Geolocation }; class QWEBKIT_EXPORT ViewportAttributes { @@ -308,7 +308,7 @@ public: QMenu *createStandardContextMenu(); - void setUserPermission(QWebFrame* frame, PermissionDomain domain, PermissionPolicy policy); + void setFeaturePermission(QWebFrame* frame, Feature feature, PermissionPolicy policy); QStringList supportedContentTypes() const; bool supportsContentType(const QString& mimeType) const; @@ -393,8 +393,8 @@ Q_SIGNALS: void viewportChangeRequested(); - void requestPermissionFromUser(QWebFrame* frame, QWebPage::PermissionDomain domain); - void cancelRequestsForPermission(QWebFrame* frame, QWebPage::PermissionDomain domain); + void featurePermissionRequested(QWebFrame* frame, QWebPage::Feature feature); + void featurePermissionRequestCanceled(QWebFrame* frame, QWebPage::Feature feature); protected: virtual QWebPage *createWindow(WebWindowType type); diff --git a/WebKit/qt/Api/qwebpage_p.h b/WebKit/qt/Api/qwebpage_p.h index 1b9cd66..624ff99 100644 --- a/WebKit/qt/Api/qwebpage_p.h +++ b/WebKit/qt/Api/qwebpage_p.h @@ -188,6 +188,8 @@ public: QSize viewportSize; QSize fixedLayoutSize; + qreal pixelRatio; + QWebHistory history; QWebHitTestResult hitTestResult; #ifndef QT_NO_CONTEXTMENU diff --git a/WebKit/qt/Api/qwebsettings.h b/WebKit/qt/Api/qwebsettings.h index 7dad72f..0569ab0 100644 --- a/WebKit/qt/Api/qwebsettings.h +++ b/WebKit/qt/Api/qwebsettings.h @@ -75,9 +75,9 @@ public: TiledBackingStoreEnabled, FrameFlatteningEnabled, SiteSpecificQuirksEnabled, + JavascriptCanCloseWindows, WebGLEnabled, - HyperlinkAuditingEnabled, - JavascriptCanCloseWindows + HyperlinkAuditingEnabled }; enum WebGraphic { MissingImageGraphic, diff --git a/WebKit/qt/ChangeLog b/WebKit/qt/ChangeLog index 04c7125..d361624 100644 --- a/WebKit/qt/ChangeLog +++ b/WebKit/qt/ChangeLog @@ -1,3 +1,452 @@ +2010-12-01 Jia Pu <jpu@apple.com> + + Reviewed by Darin Adler. + + Support multiple correction candidates panel for misspelled word on Mac OS X. + https://bugs.webkit.org/show_bug.cgi?id=50137 + <rdar://problem/8568059> + + Adopted new function signature defined in base class. + + * WebCoreSupport/EditorClientQt.cpp: + (WebCore::EditorClientQt::getGuessesForWord): + * WebCoreSupport/EditorClientQt.h: + +2010-11-30 Benjamin Poulain <benjamin.poulain@nokia.com> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Implement layoutTestController.findString + https://bugs.webkit.org/show_bug.cgi?id=50236 + + Add support for the new advanced findString(). + + * WebCoreSupport/DumpRenderTreeSupportQt.cpp: + (DumpRenderTreeSupportQt::findString): + * WebCoreSupport/DumpRenderTreeSupportQt.h: + +2010-11-30 Ojan Vafai <ojan@chromium.org> + + Revert r72876. It caused a ~30% perf regression in chromium's bloat-http test + https://bugs.webkit.org/show_bug.cgi?id=50288 + + 2010-11-29 Adam Barth <abarth@webkit.org (:abarth) (r)> + Reviewed by Darin Adler. + Introduce the notion of a "display-isolated" URL scheme for use by Chrome-internal URLs + https://bugs.webkit.org/show_bug.cgi?id=50182 + A display-isolated URL can only be displayed (e.g., put in an iframe, + hyperlinked to) by documents from that scheme. In a sense, this is a + generalization of some of the protections we give file URLs, but + instead of lumping them all together into one "local" bucket, this + patch creates a separate bucket for each scheme. + For a while, I tried using a separate bucket for each origin. That + would have played nicely with what Blob URLs are trying to do, but some + "chrome" URL pages rely on being able to display other chrome URL + pages, even in different origins. For example, the New Tab Page shows + thumbnails from the "thumbnail" host. + This patch also removes a bunch of unused code. I've also propagated + the "deprecated" status of deprecatedCanDisplay to + deprecatedShouldTreatURLAsLocal because that method has no other + callers and is really asking for uppercase/lowercase bugs. I dream of + someday removing these functions. + 2010-11-29 Adam Barth <abarth@webkit.org (:abarth) (r)> + Reviewed by Darin Adler. + Introduce the notion of a "display-isolated" URL scheme for use by Chrome-internal URLs + https://bugs.webkit.org/show_bug.cgi?id=50182 + This patch adds a Chromium API for registering schemes as + display-isolated. In a subsequent patch, I'll change the "chrome" + scheme in Chrome to be display isolated instead of local. That will + prevent file URLs from linking to chrome URLs. + + * Api/qwebsecurityorigin.cpp: + (QWebSecurityOrigin::localSchemes): + +2010-11-29 Vangelis Kokkevis <vangelis@chromium.org> + + Reviewed by Simon Fraser. + + Provide more fine grained control to ports over when to turn on accelerated + compositing. + https://bugs.webkit.org/show_bug.cgi?id=49998 + + As part of this change, the old hasAcceleratedCompositing method on the ChromeClient + has now been replaced by allowedCompositingTriggers which returns a bitfield of + all the features which can trigger the compositor. + + + * WebCoreSupport/ChromeClientQt.cpp: + (WebCore::ChromeClientQt::allowedCompositingTriggers): + * WebCoreSupport/ChromeClientQt.h: + +2010-11-30 Thiago Macieira <thiago.macieira@nokia.com> + + Reviewed by Andreas Kling. + + [Qt] QWebFrame::load(QNetworkRequest) should respect the CustomVerbAttribute + + For CustomOperation requests, pass the CustomVerbAttribute on to + the WebCore::ResourceRequest. + + * Api/qwebframe.cpp: + (QWebFrame::load): + +2010-11-25 Norbert Leser <norbert.leser@nokia.com> + + Reviewed by Laszlo Gombos. + + Updated Symbian DEF file for ARM target due to API changes + via committs r72600-72603 (see bug# 46810) + + * symbian/eabi/QtWebKitu.def: + +2010-11-25 Kenneth Rohde Christiansen <kenneth@webkit.org> + + Reviewed by Andreas Kling and Simon Hausmann. + + [Qt] Calculate the -webkit-pixel-radio using the device DPI. + http://webkit.org/b/50059 + + Also, update the documentation on what a DIP is and how to override + the device DPI in the case the system reports the wrong one (which + unfortunately is common on X11). + + * Api/qwebpage.cpp: + (QWebPagePrivate::QWebPagePrivate): + (QWebPage::viewportAttributesForSize): + * Api/qwebpage_p.h: + * WebCoreSupport/ChromeClientQt.cpp: + (WebCore::ChromeClientQt::scaleFactor): + +2010-11-24 Kristian Amlie <kristian.amlie@nokia.com> + + Reviewed by Andreas Kling. + + Fixed handling of QInputMethodEvents with nonzero replacementLength. + + These types of events replace text that is already in the widget, but + WebKit did not check for replacementLength at all. + + https://bugs.webkit.org/show_bug.cgi?id=49787 + + * Api/qwebpage.cpp: + (QWebPagePrivate::inputMethodEvent): + * tests/qwebpage/tst_qwebpage.cpp: + (tst_QWebPage::inputMethods): + +2010-11-24 Andras Becsi <abecsi@inf.u-szeged.hu> + + Reviewed by Kenneth Rohde Christiansen. + + Make WebKit2 compile with !ENABLE(INSPECTOR). + https://bugs.webkit.org/show_bug.cgi?id=49973 + + * WebCoreSupport/DumpRenderTreeSupportQt.cpp: + (DumpRenderTreeSupportQt::setJavaScriptProfilingEnabled): + +2010-11-24 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r72650. + http://trac.webkit.org/changeset/72650 + https://bugs.webkit.org/show_bug.cgi?id=50010 + + breaks focus in scenes focus item other than graphicswebiview + (Requested by tronical_ on #webkit). + + * Api/qgraphicswebview.cpp: + (QGraphicsWebViewPrivate::QGraphicsWebViewPrivate): + (QGraphicsWebView::QGraphicsWebView): + (QGraphicsWebView::itemChange): + * Api/qgraphicswebview.h: + * tests/qgraphicswebview/tst_qgraphicswebview.cpp: + +2010-11-24 Jan Erik Hanssen <jhanssen@sencha.com> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Html autofocus not working with QGraphicsWebView + https://bugs.webkit.org/show_bug.cgi?id=43169 + + QGraphicsScene does not propagate Qt::ActivateWindowFocusReason focus + events when there are no active items. + + * Api/qgraphicswebview.cpp: + (QGraphicsWebViewPrivate::QGraphicsWebViewPrivate): + (QGraphicsWebView::QGraphicsWebView): + (QGraphicsWebView::eventFilter): + (QGraphicsWebView::itemChange): + * Api/qgraphicswebview.h: + * tests/qgraphicswebview/tst_qgraphicswebview.cpp: + (FocusPage::FocusPage): + (FocusPage::event): + (FocusPage::gotFocus): + (tst_QGraphicsWebView::receivesFocusInOnShow): + +2010-11-23 Kenneth Rohde Christiansen <kenneth@webkit.org> + + Reviewed by Andreas Kling. + + Adapt to setShouldDelegateScrolling not being a real setting anymore. + We now similarily to setUseFixedLayout and setPaintEntireContents + set it on the FrameView wen transitioning to a new page. + + * Api/qgraphicswebview.cpp: + (QGraphicsWebViewPrivate::updateResizesToContentsForPage): + * WebCoreSupport/FrameLoaderClientQt.cpp: + (WebCore::FrameLoaderClientQt::transitionToCommittedForNewPage): + +2010-11-23 Laszlo Gombos <laszlo.1.gombos@nokia.com> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Fix compilation with !ENABLE(INSPECTOR) + https://bugs.webkit.org/show_bug.cgi?id=49942 + + Add ENABLE(INSPECTOR) to the Qt specific files following r71981. + + * WebCoreSupport/InspectorClientQt.cpp: + (WebCore::InspectorClientQt::inspectorDestroyed): + (WebCore::InspectorClientQt::openInspectorFrontend): + (WebCore::InspectorClientQt::sendMessageToFrontend): + * WebCoreSupport/InspectorServerQt.cpp: + (WebCore::InspectorServerRequestHandlerQt::webSocketReadyRead): + +2010-11-23 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Andreas Kling. + + [Qt] Restore binary compatibility with the QtWebKit 2.1 branch + + Re-order the enums by adding new enum entries to the end. + + * Api/qwebsettings.h: + +2010-11-23 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Tor Arne Vestbø. + + [Qt] Review the setUserPermission & friends API + https://bugs.webkit.org/show_bug.cgi?id=46810 + + Renamed requestPermissionFromUser to featurePermissionRequested + and cancelRequestsForPermission to featurePermissionRequestCanceled. + + * Api/qwebpage.h: + * WebCoreSupport/GeolocationPermissionClientQt.cpp: + (WebCore::GeolocationPermissionClientQt::requestGeolocationPermissionForFrame): + (WebCore::GeolocationPermissionClientQt::cancelGeolocationPermissionRequestForFrame): + * WebCoreSupport/NotificationPresenterClientQt.cpp: + (WebCore::NotificationPresenterClientQt::requestPermission): + (WebCore::NotificationPresenterClientQt::cancelRequestsForPermission): + +2010-11-23 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Tor Arne Vestbø. + + [Qt] Review the setUserPermission & friends API + https://bugs.webkit.org/show_bug.cgi?id=46810 + + Rename setUserPermission to setFeaturePermission + + * Api/qwebpage.cpp: + (QWebPage::setFeaturePermission): + * Api/qwebpage.h: + * tests/qwebpage/tst_qwebpage.cpp: + (JSTestPage::requestPermission): + +2010-11-23 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Tor Arne Vestbø. + + [Qt] Review the setUserPermission & friends API + https://bugs.webkit.org/show_bug.cgi?id=46810 + + Rename PermissionDomain to Feature, NotificationsPermissionDomain to Notifications + and GeolocationPermissionDomain to Geolocation. + + * Api/qwebpage.cpp: + (QWebPage::setUserPermission): + * Api/qwebpage.h: + * WebCoreSupport/GeolocationPermissionClientQt.cpp: + (WebCore::GeolocationPermissionClientQt::requestGeolocationPermissionForFrame): + (WebCore::GeolocationPermissionClientQt::cancelGeolocationPermissionRequestForFrame): + * WebCoreSupport/NotificationPresenterClientQt.cpp: + (WebCore::NotificationPresenterClientQt::requestPermission): + (WebCore::NotificationPresenterClientQt::cancelRequestsForPermission): + * tests/qwebpage/tst_qwebpage.cpp: + (JSTestPage::requestPermission): + (tst_QWebPage::geolocationRequestJS): + +2010-11-23 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Tor Arne Vestbø. + + [Qt] Review the setUserPermission & friends API + https://bugs.webkit.org/show_bug.cgi?id=46810 + + Add a ByUser suffix to PermissionGranted/Denied. In the future + we can add PermissionGrantedByDefault. + + * Api/qwebpage.cpp: + (QWebPage::setUserPermission): + * Api/qwebpage.h: + * WebCoreSupport/GeolocationPermissionClientQt.cpp: + (WebCore::GeolocationPermissionClientQt::setPermission): + * tests/qwebpage/tst_qwebpage.cpp: + (JSTestPage::requestPermission): + +2010-11-22 Jan Erik Hanssen <jhanssen@sencha.com> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] QWebElement::appendInside() doesn't work on head elements + https://bugs.webkit.org/show_bug.cgi?id=49166 + + Make QWebElement::appendInside() call + Element::deprecatedCreateContextualFragment(), bypassing the check for + the HEAD tag in the HTMLElement implementation of this function. + + * Api/qwebelement.cpp: + (QWebElement::appendInside): + * tests/qwebelement/tst_qwebelement.cpp: + (tst_QWebElement::addElementToHead): + +2010-11-20 Andreas Kling <kling@webkit.org> + + Reviewed by Antonio Gomes. + + [Qt] Dragging a selection should use a rendering of the selection as "cursor" for the drag + https://bugs.webkit.org/show_bug.cgi?id=49870 + + * WebCoreSupport/DragClientQt.cpp: + (WebCore::DragClientQt::startDrag): Pass the DragImage to QDrag::setPixmap() + +2010-11-20 Sam Magnuson <smagnuso@gmail.com> + + Reviewed by Andreas Kling. + + [Qt] crash when attempting to add a JS object + https://bugs.webkit.org/show_bug.cgi?id=49287 + + * Api/qwebframe.cpp: + (QWebFrame::addToJavaScriptWindowObject): + + Test: LayoutTests/fast/frames/sandboxed-iframe-plugins.html + +2010-11-20 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r72471. + http://trac.webkit.org/changeset/72471 + https://bugs.webkit.org/show_bug.cgi?id=49865 + + broke two IME tests on Qt (Requested by kling on #webkit). + + * Api/qwebpage.cpp: + (QWebPagePrivate::inputMethodEvent): + * tests/qwebpage/tst_qwebpage.cpp: + (tst_QWebPage::inputMethods): + +2010-11-19 Kristian Amlie <kristian.amlie@nokia.com> + + Reviewed by Andreas Kling. + + Fixed handling of QInputMethodEvents with nonzero replacementLength. + + These types of events replace text that is already in the widget, but + WebKit did not check for replacementLength at all. + + Also made sure that the preeditString is always respected, even if + there is committed text. This is how QLineEdit does it. + + https://bugs.webkit.org/show_bug.cgi?id=49787 + + * Api/qwebpage.cpp: + (QWebPagePrivate::inputMethodEvent): + * tests/qwebpage/tst_qwebpage.cpp: + (tst_QWebPage::inputMethods): + +2010-11-19 Benjamin Poulain <benjamin.poulain@nokia.com> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Transition and animation do not work with QWebView anymore + https://bugs.webkit.org/show_bug.cgi?id=49797 + + Accelerated compositing should not be enabled on QWebView without + texture mapper. + + * WebCoreSupport/PageClientQt.h: + (WebCore::PageClientQWidget::allowsAcceleratedCompositing): + +2010-11-19 Yi Shen <yi.4.shen@nokia.com> + + Reviewed by Laszlo Gombos. + + [Qt] Memory leak in QWebInspector + https://bugs.webkit.org/show_bug.cgi?id=49765 + + Delete QWebInspectorPrivate in ~QWebInspector() + + * Api/qwebinspector.cpp: + (QWebInspector::~QWebInspector): + +2010-11-19 Sam Magnuson <smagnuso@gmail.com> + + Reviewed by Andreas Kling. + + [Qt] Compile with QT_NO_UNDOCOMMAND + https://bugs.webkit.org/show_bug.cgi?id=49752 + + * WebCoreSupport/EditCommandQt.cpp: + (EditCommandQt::EditCommandQt): + * WebCoreSupport/EditCommandQt.h: + +2010-11-19 Yi Shen <yi.4.shen@nokia.com> + + Reviewed by Andreas Kling. + + https://bugs.webkit.org/show_bug.cgi?id=49200 + [Qt] bugs in Composition mode for QWebPage::inputMethodEvent & inputMethodQuery() + + Make QWebPage work as following when editor is in composition mode: + 1. anchor position and cursor position are the same and always >= 0 + 2. current selection is always null + + * Api/qwebpage.cpp: + (QWebPagePrivate::inputMethodEvent): + (QWebPage::inputMethodQuery): + * tests/qwebpage/tst_qwebpage.cpp: + (tst_QWebPage::inputMethods): + +2010-11-18 Gavin Barraclough <barraclough@apple.com> + + Build fix - update error messages folllowing r72360. + + * tests/qwebframe/tst_qwebframe.cpp: + +2010-11-12 Luiz Agostini <luiz.agostini@openbossa.org> + + Reviewed by Andreas Kling. + + [Qt] Static platform plugin support + https://bugs.webkit.org/show_bug.cgi?id=49470 + + Adding support for statically linked platform plugins. + + * WebCoreSupport/QtPlatformPlugin.cpp: + (WebCore::QtPlatformPlugin::loadStaticallyLinkedPlugin): + (WebCore::QtPlatformPlugin::plugin): + * WebCoreSupport/QtPlatformPlugin.h: + +2010-11-17 Andreas Kling <kling@webkit.org> + + Reviewed by Kenneth Rohde Christiansen. + + Reuse the size of the actualVisibleContentRect when loading a new page + or navigating session history. + + * WebCoreSupport/FrameLoaderClientQt.cpp: + (WebCore::FrameLoaderClientQt::transitionToCommittedForNewPage): + 2010-11-17 Dimitri Glazkov <dglazkov@chromium.org> Reviewed by Darin Adler. diff --git a/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp b/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp index 3fec1d3..e72ef3e 100644 --- a/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp +++ b/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp @@ -118,14 +118,13 @@ FloatRect ChromeClientQt::pageRect() return FloatRect(QRectF(QPointF(0, 0), m_webPage->viewportSize())); } - float ChromeClientQt::scaleFactor() { - notImplemented(); - return 1; + if (!m_webPage) + return 1; + return m_webPage->d->pixelRatio; } - void ChromeClientQt::focus() { if (!m_webPage) @@ -618,9 +617,12 @@ void ChromeClientQt::scheduleCompositingLayerSync() platformPageClient()->markForSync(true); } -bool ChromeClientQt::allowsAcceleratedCompositing() const +ChromeClient::CompositingTriggerFlags ChromeClientQt::allowedCompositingTriggers() const { - return (platformPageClient() && platformPageClient()->allowsAcceleratedCompositing()); + if (platformPageClient() && platformPageClient()->allowsAcceleratedCompositing()) + return AllTriggers; + + return 0; } #endif diff --git a/WebKit/qt/WebCoreSupport/ChromeClientQt.h b/WebKit/qt/WebCoreSupport/ChromeClientQt.h index b8bc72d..bcf8975 100644 --- a/WebKit/qt/WebCoreSupport/ChromeClientQt.h +++ b/WebKit/qt/WebCoreSupport/ChromeClientQt.h @@ -152,7 +152,7 @@ namespace WebCore { virtual void attachRootGraphicsLayer(Frame*, GraphicsLayer*); virtual void setNeedsOneShotDrawingSynchronization(); virtual void scheduleCompositingLayerSync(); - virtual bool allowsAcceleratedCompositing() const; + virtual CompositingTriggerFlags allowedCompositingTriggers() const; #endif #if ENABLE(TILED_BACKING_STORE) diff --git a/WebKit/qt/WebCoreSupport/DragClientQt.cpp b/WebKit/qt/WebCoreSupport/DragClientQt.cpp index 52229dc..f136328 100644 --- a/WebKit/qt/WebCoreSupport/DragClientQt.cpp +++ b/WebKit/qt/WebCoreSupport/DragClientQt.cpp @@ -86,7 +86,7 @@ void DragClientQt::willPerformDragSourceAction(DragSourceAction, const IntPoint& { } -void DragClientQt::startDrag(DragImageRef, const IntPoint&, const IntPoint&, Clipboard* clipboard, Frame* frame, bool) +void DragClientQt::startDrag(DragImageRef dragImage, const IntPoint&, const IntPoint&, Clipboard* clipboard, Frame* frame, bool) { #ifndef QT_NO_DRAGANDDROP QMimeData* clipboardData = static_cast<ClipboardQt*>(clipboard)->clipboardData(); @@ -94,7 +94,9 @@ void DragClientQt::startDrag(DragImageRef, const IntPoint&, const IntPoint&, Cli QWidget* view = m_webPage->view(); if (view) { QDrag* drag = new QDrag(view); - if (clipboardData && clipboardData->hasImage()) + if (dragImage) + drag->setPixmap(*dragImage); + else if (clipboardData && clipboardData->hasImage()) drag->setPixmap(qvariant_cast<QPixmap>(clipboardData->imageData())); DragOperation dragOperationMask = clipboard->sourceOperation(); drag->setMimeData(clipboardData); diff --git a/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp b/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp index f5fa06b..a2863b1 100644 --- a/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp +++ b/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp @@ -175,7 +175,7 @@ bool DumpRenderTreeSupportQt::hasDocumentElement(QWebFrame* frame) void DumpRenderTreeSupportQt::setJavaScriptProfilingEnabled(QWebFrame* frame, bool enabled) { -#if ENABLE(JAVASCRIPT_DEBUGGER) +#if ENABLE(JAVASCRIPT_DEBUGGER) && ENABLE(INSPECTOR) Frame* coreFrame = QWebFramePrivate::core(frame); InspectorController* controller = coreFrame->page()->inspectorController(); if (!controller) @@ -437,6 +437,32 @@ bool DumpRenderTreeSupportQt::isCommandEnabled(QWebPage* page, const QString& na return page->handle()->page->focusController()->focusedOrMainFrame()->editor()->command(name).isEnabled(); } +bool DumpRenderTreeSupportQt::findString(QWebPage* page, const QString& string, const QStringList& optionArray) +{ + // 1. Parse the options from the array + WebCore::FindOptions options = 0; + const int optionCount = optionArray.size(); + for (int i = 0; i < optionCount; ++i) { + const QString& option = optionArray.at(i); + if (option == QLatin1String("CaseInsensitive")) + options |= WebCore::CaseInsensitive; + else if (option == QLatin1String("AtWordStarts")) + options |= WebCore::AtWordStarts; + else if (option == QLatin1String("TreatMedialCapitalAsWordStart")) + options |= WebCore::TreatMedialCapitalAsWordStart; + else if (option == QLatin1String("Backwards")) + options |= WebCore::Backwards; + else if (option == QLatin1String("WrapAround")) + options |= WebCore::WrapAround; + else if (option == QLatin1String("StartInSelection")) + options |= WebCore::StartInSelection; + } + + // 2. find the string + WebCore::Frame* frame = page->handle()->page->focusController()->focusedOrMainFrame(); + return frame && frame->editor()->findString(string, options); +} + QString DumpRenderTreeSupportQt::markerTextForListItem(const QWebElement& listItem) { return WebCore::markerTextForListItem(listItem.m_element); diff --git a/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h b/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h index 82d9319..98f2b94 100644 --- a/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h +++ b/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h @@ -44,6 +44,7 @@ public: static void executeCoreCommandByName(QWebPage* page, const QString& name, const QString& value); static bool isCommandEnabled(QWebPage* page, const QString& name); + static bool findString(QWebPage* page, const QString& string, const QStringList& optionArray); static void setSmartInsertDeleteEnabled(QWebPage* page, bool enabled); static void setSelectTrailingWhitespaceEnabled(QWebPage* page, bool enabled); static QVariantList selectedRange(QWebPage* page); diff --git a/WebKit/qt/WebCoreSupport/EditCommandQt.cpp b/WebKit/qt/WebCoreSupport/EditCommandQt.cpp index 9c4ff87..4b820a9 100644 --- a/WebKit/qt/WebCoreSupport/EditCommandQt.cpp +++ b/WebKit/qt/WebCoreSupport/EditCommandQt.cpp @@ -22,15 +22,20 @@ using namespace WebCore; -EditCommandQt::EditCommandQt(WTF::RefPtr<EditCommand> cmd, QUndoCommand *parent) -: #ifndef QT_NO_UNDOCOMMAND - QUndoCommand(parent), -#endif - m_cmd(cmd), m_first(true) +EditCommandQt::EditCommandQt(WTF::RefPtr<EditCommand> cmd, QUndoCommand *parent) + : QUndoCommand(parent) + , m_cmd(cmd) + , m_first(true) { } - +#else +EditCommandQt::EditCommandQt(WTF::RefPtr<EditCommand> cmd) + : m_cmd(cmd) + , m_first(true) +{ +} +#endif EditCommandQt::~EditCommandQt() { diff --git a/WebKit/qt/WebCoreSupport/EditCommandQt.h b/WebKit/qt/WebCoreSupport/EditCommandQt.h index e03b9b2..47dc67c 100644 --- a/WebKit/qt/WebCoreSupport/EditCommandQt.h +++ b/WebKit/qt/WebCoreSupport/EditCommandQt.h @@ -30,7 +30,11 @@ class EditCommandQt #endif { public: +#ifndef QT_NO_UNDOCOMMAND EditCommandQt(WTF::RefPtr<WebCore::EditCommand> cmd, QUndoCommand *parent = 0); +#else + EditCommandQt(WTF::RefPtr<WebCore::EditCommand> cmd); +#endif ~EditCommandQt(); void redo(); diff --git a/WebKit/qt/WebCoreSupport/EditorClientQt.cpp b/WebKit/qt/WebCoreSupport/EditorClientQt.cpp index 91a0cc6..46eeeb0 100644 --- a/WebKit/qt/WebCoreSupport/EditorClientQt.cpp +++ b/WebKit/qt/WebCoreSupport/EditorClientQt.cpp @@ -558,7 +558,7 @@ bool EditorClientQt::spellingUIIsShowing() return false; } -void EditorClientQt::getGuessesForWord(const String&, Vector<String>&) +void EditorClientQt::getGuessesForWord(const String& word, const String& context, Vector<String>& guesses) { notImplemented(); } diff --git a/WebKit/qt/WebCoreSupport/EditorClientQt.h b/WebKit/qt/WebCoreSupport/EditorClientQt.h index 7d99d22..defa8bb 100644 --- a/WebKit/qt/WebCoreSupport/EditorClientQt.h +++ b/WebKit/qt/WebCoreSupport/EditorClientQt.h @@ -104,7 +104,7 @@ public: virtual void updateSpellingUIWithMisspelledWord(const String&); virtual void showSpellingUI(bool show); virtual bool spellingUIIsShowing(); - virtual void getGuessesForWord(const String&, Vector<String>& guesses); + virtual void getGuessesForWord(const String& word, const String& context, Vector<String>& guesses); virtual void willSetInputMethodState(); virtual void setInputMethodState(bool enabled); diff --git a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp index 5c6364e..bf6e75a 100644 --- a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp +++ b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp @@ -274,6 +274,8 @@ void FrameLoaderClientQt::transitionToCommittedForNewPage() bool hLock = hScrollbar != ScrollbarAuto; bool vLock = vScrollbar != ScrollbarAuto; + IntSize currentVisibleContentSize = m_frame->view() ? m_frame->view()->actualVisibleContentRect().size() : IntSize(); + m_frame->createView(m_webFrame->page()->viewportSize(), backgroundColor, !backgroundColor.alpha(), preferredLayoutSize.isValid() ? IntSize(preferredLayoutSize) : IntSize(), @@ -282,8 +284,13 @@ void FrameLoaderClientQt::transitionToCommittedForNewPage() vScrollbar, vLock); bool isMainFrame = m_frame == m_frame->page()->mainFrame(); - if (isMainFrame && page->d->client) + if (isMainFrame && page->d->client) { m_frame->view()->setPaintsEntireContents(page->d->client->viewResizesToContentsEnabled()); + m_frame->view()->setDelegatesScrolling(page->d->client->viewResizesToContentsEnabled()); + } + + // The HistoryController will update the scroll position later if needed. + m_frame->view()->setActualVisibleContentRect(IntRect(IntPoint::zero(), currentVisibleContentSize)); } void FrameLoaderClientQt::dispatchDidBecomeFrameset(bool) diff --git a/WebKit/qt/WebCoreSupport/GeolocationPermissionClientQt.cpp b/WebKit/qt/WebCoreSupport/GeolocationPermissionClientQt.cpp index 5fb9ab7..7500e99 100644 --- a/WebKit/qt/WebCoreSupport/GeolocationPermissionClientQt.cpp +++ b/WebKit/qt/WebCoreSupport/GeolocationPermissionClientQt.cpp @@ -65,7 +65,7 @@ void GeolocationPermissionClientQt::requestGeolocationPermissionForFrame(QWebFra m_pendingPermissionRequests.insert(webFrame, listener); QWebPage* page = webFrame->page(); - emit page->requestPermissionFromUser(webFrame, QWebPage::GeolocationPermissionDomain); + emit page->featurePermissionRequested(webFrame, QWebPage::Geolocation); } @@ -74,7 +74,7 @@ void GeolocationPermissionClientQt::cancelGeolocationPermissionRequestForFrame(Q m_pendingPermissionRequests.remove(webFrame); QWebPage* page = webFrame->page(); - emit page->cancelRequestsForPermission(webFrame, QWebPage::GeolocationPermissionDomain); + emit page->featurePermissionRequestCanceled(webFrame, QWebPage::Geolocation); } void GeolocationPermissionClientQt::setPermission(QWebFrame* webFrame, QWebPage::PermissionPolicy permission) @@ -84,9 +84,9 @@ void GeolocationPermissionClientQt::setPermission(QWebFrame* webFrame, QWebPage: Geolocation* listener = m_pendingPermissionRequests.value(webFrame); - if (permission == QWebPage::PermissionGranted) + if (permission == QWebPage::PermissionGrantedByUser) listener->setIsAllowed(true); - else if (permission == QWebPage::PermissionDenied) + else if (permission == QWebPage::PermissionDeniedByUser) listener->setIsAllowed(false); else return; diff --git a/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp b/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp index e596870..1b06e2e 100644 --- a/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp +++ b/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp @@ -125,6 +125,7 @@ InspectorClientQt::InspectorClientQt(QWebPage* page) void InspectorClientQt::inspectorDestroyed() { +#if ENABLE(INSPECTOR) if (m_frontendClient) m_frontendClient->inspectorClientDestroyed(); @@ -133,11 +134,13 @@ void InspectorClientQt::inspectorDestroyed() webInspectorServer->unregisterClient(this); delete this; +#endif } void InspectorClientQt::openInspectorFrontend(WebCore::InspectorController* inspectorController) { +#if ENABLE(INSPECTOR) #if USE(V8) ensureDebuggerScriptLoaded(); #endif @@ -174,6 +177,7 @@ void InspectorClientQt::openInspectorFrontend(WebCore::InspectorController* insp m_frontendClient = new InspectorFrontendClientQt(m_inspectedWebPage, inspectorView, this); inspectorView->page()->d->page->inspectorController()->setInspectorFrontendClient(m_frontendClient); m_frontendWebPage = inspectorPage; +#endif } void InspectorClientQt::releaseFrontendPage() @@ -255,6 +259,7 @@ void InspectorClientQt::storeSetting(const String& key, const String& setting) bool InspectorClientQt::sendMessageToFrontend(const String& message) { +#if ENABLE(INSPECTOR) if (m_inspectedWebPage->d->inspector->d->remoteFrontend) { RemoteFrontendChannel* session = qobject_cast<RemoteFrontendChannel*>(m_inspectedWebPage->d->inspector->d->remoteFrontend); if (session) @@ -266,6 +271,9 @@ bool InspectorClientQt::sendMessageToFrontend(const String& message) Page* frontendPage = QWebPagePrivate::core(m_frontendWebPage); return doDispatchMessageOnFrontendPage(frontendPage, message); +#else + return false; +#endif } static String variantToSetting(const QVariant& qvariant) @@ -291,6 +299,7 @@ static QVariant settingToVariant(const String& setting) return retVal; } +#if ENABLE(INSPECTOR) InspectorFrontendClientQt::InspectorFrontendClientQt(QWebPage* inspectedWebPage, PassOwnPtr<QWebView> inspectorView, InspectorClientQt* inspectorClient) : InspectorFrontendClientLocal(inspectedWebPage->d->page->inspectorController(), inspectorView->page()->d->page) , m_inspectedWebPage(inspectedWebPage) @@ -397,7 +406,7 @@ void InspectorFrontendClientQt::inspectorClientDestroyed() m_inspectorClient = 0; m_inspectedWebPage = 0; } - +#endif } #include "InspectorClientQt.moc" diff --git a/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp b/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp index a6dda58..7002dce 100644 --- a/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp +++ b/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp @@ -360,10 +360,12 @@ void InspectorServerRequestHandlerQt::webSocketReadyRead() QByteArray payload = m_data.mid(1, length); +#if ENABLE(INSPECTOR) if (m_inspectorClient) { InspectorController* inspectorController = m_inspectorClient->m_inspectedWebPage->d->page->inspectorController(); inspectorController->inspectorBackendDispatcher()->dispatch(QString::fromUtf8(payload)); } +#endif // Remove this WebSocket message from m_data (payload, start-of-frame byte, end-of-frame byte). m_data = m_data.mid(length + 2); diff --git a/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp b/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp index e58829b..994cd85 100644 --- a/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp +++ b/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp @@ -328,7 +328,7 @@ void NotificationPresenterClientQt::requestPermission(ScriptExecutionContext* co if (toPage(context) && toFrame(context)) { m_pendingPermissionRequests.insert(context, info); - emit toPage(context)->requestPermissionFromUser(toFrame(context), QWebPage::NotificationsPermissionDomain); + emit toPage(context)->featurePermissionRequested(toFrame(context), QWebPage::Notifications); } } } @@ -358,7 +358,7 @@ void NotificationPresenterClientQt::cancelRequestsForPermission(ScriptExecutionC if (dumpNotification) printf("DESKTOP NOTIFICATION PERMISSION REQUEST CANCELLED: %s\n", QString(context->securityOrigin()->toString()).toUtf8().constData()); - emit page->cancelRequestsForPermission(frame, QWebPage::NotificationsPermissionDomain); + emit page->featurePermissionRequestCanceled(frame, QWebPage::Notifications); } void NotificationPresenterClientQt::allowNotificationForFrame(Frame* frame) diff --git a/WebKit/qt/WebCoreSupport/PageClientQt.h b/WebKit/qt/WebCoreSupport/PageClientQt.h index 924d2a7..6745cdc 100644 --- a/WebKit/qt/WebCoreSupport/PageClientQt.h +++ b/WebKit/qt/WebCoreSupport/PageClientQt.h @@ -96,8 +96,11 @@ public: void syncLayers(Timer<PageClientQWidget>*); #endif - // QGraphicsWebView can render composited layers +#if USE(ACCELERATED_COMPOSITING) && USE(TEXTURE_MAPPER) virtual bool allowsAcceleratedCompositing() const { return true; } +#else + virtual bool allowsAcceleratedCompositing() const { return false; } +#endif #if USE(ACCELERATED_COMPOSITING) && USE(TEXTURE_MAPPER) Timer<PageClientQWidget> syncTimer; diff --git a/WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp b/WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp index ede8a73..e4b89b4 100644 --- a/WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp +++ b/WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp @@ -69,12 +69,26 @@ QtPlatformPlugin::~QtPlatformPlugin() m_loader.unload(); } +bool QtPlatformPlugin::loadStaticallyLinkedPlugin() +{ + QObjectList objs = QPluginLoader::staticInstances(); + for (int i = 0; i < objs.size(); ++i) { + m_plugin = qobject_cast<QWebKitPlatformPlugin*>(objs[i]); + if (m_plugin) + return true; + } + return false; +} + QWebKitPlatformPlugin* QtPlatformPlugin::plugin() { if (m_loaded) return m_plugin; m_loaded = true; + if (loadStaticallyLinkedPlugin()) + return m_plugin; + // Plugin path is stored in a static variable to avoid searching for the plugin // more then once. static QString pluginPath; diff --git a/WebKit/qt/WebCoreSupport/QtPlatformPlugin.h b/WebKit/qt/WebCoreSupport/QtPlatformPlugin.h index ef14a1f..365b734 100644 --- a/WebKit/qt/WebCoreSupport/QtPlatformPlugin.h +++ b/WebKit/qt/WebCoreSupport/QtPlatformPlugin.h @@ -50,6 +50,7 @@ private: QPluginLoader m_loader; bool load(); bool load(const QString& file); + bool loadStaticallyLinkedPlugin(); }; } diff --git a/WebKit/qt/symbian/eabi/QtWebKitu.def b/WebKit/qt/symbian/eabi/QtWebKitu.def index 77ff7b1..23edc58 100644 --- a/WebKit/qt/symbian/eabi/QtWebKitu.def +++ b/WebKit/qt/symbian/eabi/QtWebKitu.def @@ -1,835 +1,838 @@ -EXPORTS - _Z10qt_drt_runb @ 1 NONAME - _Z14qWebKitVersionv @ 2 NONAME - _Z19qWebKitMajorVersionv @ 3 NONAME - _Z19qWebKitMinorVersionv @ 4 NONAME - _Z20qt_dump_frame_loaderb @ 5 NONAME - _Z20qt_webpage_groupNameP8QWebPage @ 6 NONAME - _Z21qt_drt_clearFrameNameP9QWebFrame @ 7 NONAME - _Z21qt_drt_pauseAnimationP9QWebFrameRK7QStringdS3_ @ 8 NONAME - _Z23qt_webpage_setGroupNameP8QWebPageRK7QString @ 9 NONAME - _Z25qt_dump_editing_callbacksb @ 10 NONAME - _Z27qt_dump_set_accepts_editingb @ 11 NONAME - _Z29qt_drt_javaScriptObjectsCountv @ 12 NONAME - _Z31qt_drt_garbageCollector_collectv @ 13 NONAME - _Z31qt_drt_numberOfActiveAnimationsP9QWebFrame @ 14 NONAME - _Z31qt_dump_resource_load_callbacksb @ 15 NONAME - _Z32qt_drt_pauseTransitionOfPropertyP9QWebFrameRK7QStringdS3_ @ 16 NONAME - _Z33qt_drt_overwritePluginDirectoriesv @ 17 NONAME - _Z36qt_drt_setJavaScriptProfilingEnabledP9QWebFrameb @ 18 NONAME - _Z48qt_drt_garbageCollector_collectOnAlternateThreadb @ 19 NONAME - _ZN11QWebElement11encloseWithERK7QString @ 20 NONAME - _ZN11QWebElement11encloseWithERKS_ @ 21 NONAME - _ZN11QWebElement11removeClassERK7QString @ 22 NONAME - _ZN11QWebElement11setInnerXmlERK7QString @ 23 NONAME - _ZN11QWebElement11setOuterXmlERK7QString @ 24 NONAME - _ZN11QWebElement11toggleClassERK7QString @ 25 NONAME - _ZN11QWebElement12appendInsideERK7QString @ 26 NONAME - _ZN11QWebElement12appendInsideERKS_ @ 27 NONAME - _ZN11QWebElement12setAttributeERK7QStringS2_ @ 28 NONAME - _ZN11QWebElement12setPlainTextERK7QString @ 29 NONAME - _ZN11QWebElement13appendOutsideERK7QString @ 30 NONAME - _ZN11QWebElement13appendOutsideERKS_ @ 31 NONAME - _ZN11QWebElement13prependInsideERK7QString @ 32 NONAME - _ZN11QWebElement13prependInsideERKS_ @ 33 NONAME - _ZN11QWebElement14prependOutsideERK7QString @ 34 NONAME - _ZN11QWebElement14prependOutsideERKS_ @ 35 NONAME - _ZN11QWebElement14removeChildrenEv @ 36 NONAME ABSENT - _ZN11QWebElement14setAttributeNSERK7QStringS2_S2_ @ 37 NONAME - _ZN11QWebElement15removeAttributeERK7QString @ 38 NONAME - _ZN11QWebElement16enclosingElementEPN7WebCore4NodeE @ 39 NONAME - _ZN11QWebElement16setStylePropertyERK7QStringS2_ @ 40 NONAME - _ZN11QWebElement16takeFromDocumentEv @ 41 NONAME - _ZN11QWebElement17removeAttributeNSERK7QStringS2_ @ 42 NONAME - _ZN11QWebElement18evaluateJavaScriptERK7QString @ 43 NONAME - _ZN11QWebElement18removeFromDocumentEv @ 44 NONAME - _ZN11QWebElement19encloseContentsWithERK7QString @ 45 NONAME - _ZN11QWebElement19encloseContentsWithERKS_ @ 46 NONAME - _ZN11QWebElement7replaceERK7QString @ 47 NONAME - _ZN11QWebElement7replaceERKS_ @ 48 NONAME - _ZN11QWebElement8addClassERK7QString @ 49 NONAME - _ZN11QWebElement8setFocusEv @ 50 NONAME - _ZN11QWebElementC1EPN7WebCore4NodeE @ 51 NONAME - _ZN11QWebElementC1EPN7WebCore7ElementE @ 52 NONAME - _ZN11QWebElementC1ERKS_ @ 53 NONAME - _ZN11QWebElementC1Ev @ 54 NONAME - _ZN11QWebElementC2EPN7WebCore4NodeE @ 55 NONAME - _ZN11QWebElementC2EPN7WebCore7ElementE @ 56 NONAME - _ZN11QWebElementC2ERKS_ @ 57 NONAME - _ZN11QWebElementC2Ev @ 58 NONAME - _ZN11QWebElementD1Ev @ 59 NONAME - _ZN11QWebElementD2Ev @ 60 NONAME - _ZN11QWebElementaSERKS_ @ 61 NONAME - _ZN11QWebHistory12restoreStateERK10QByteArray @ 62 NONAME ABSENT - _ZN11QWebHistory19setMaximumItemCountEi @ 63 NONAME - _ZN11QWebHistory4backEv @ 64 NONAME - _ZN11QWebHistory5clearEv @ 65 NONAME - _ZN11QWebHistory7forwardEv @ 66 NONAME - _ZN11QWebHistory8goToItemERK15QWebHistoryItem @ 67 NONAME - _ZN11QWebHistoryC1Ev @ 68 NONAME - _ZN11QWebHistoryC2Ev @ 69 NONAME - _ZN11QWebHistoryD1Ev @ 70 NONAME - _ZN11QWebHistoryD2Ev @ 71 NONAME - _ZN12QWebDatabase14removeDatabaseERKS_ @ 72 NONAME - _ZN12QWebDatabase18removeAllDatabasesEv @ 73 NONAME - _ZN12QWebDatabaseC1EP19QWebDatabasePrivate @ 74 NONAME - _ZN12QWebDatabaseC1ERKS_ @ 75 NONAME - _ZN12QWebDatabaseC2EP19QWebDatabasePrivate @ 76 NONAME - _ZN12QWebDatabaseC2ERKS_ @ 77 NONAME - _ZN12QWebDatabaseD1Ev @ 78 NONAME - _ZN12QWebDatabaseD2Ev @ 79 NONAME - _ZN12QWebDatabaseaSERKS_ @ 80 NONAME - _ZN12QWebSettings10iconForUrlERK4QUrl @ 81 NONAME - _ZN12QWebSettings10webGraphicENS_10WebGraphicE @ 82 NONAME - _ZN12QWebSettings11setFontSizeENS_8FontSizeEi @ 83 NONAME - _ZN12QWebSettings12setAttributeENS_12WebAttributeEb @ 84 NONAME - _ZN12QWebSettings13resetFontSizeENS_8FontSizeE @ 85 NONAME - _ZN12QWebSettings13setFontFamilyENS_10FontFamilyERK7QString @ 86 NONAME - _ZN12QWebSettings13setWebGraphicENS_10WebGraphicERK7QPixmap @ 87 NONAME - _ZN12QWebSettings14globalSettingsEv @ 88 NONAME - _ZN12QWebSettings14pluginDatabaseEv @ 89 NONAME ABSENT - _ZN12QWebSettings14resetAttributeENS_12WebAttributeE @ 90 NONAME - _ZN12QWebSettings15resetFontFamilyENS_10FontFamilyE @ 91 NONAME - _ZN12QWebSettings16iconDatabasePathEv @ 92 NONAME - _ZN12QWebSettings17clearIconDatabaseEv @ 93 NONAME - _ZN12QWebSettings17clearMemoryCachesEv @ 94 NONAME - _ZN12QWebSettings18offlineStoragePathEv @ 95 NONAME - _ZN12QWebSettings19maximumPagesInCacheEv @ 96 NONAME - _ZN12QWebSettings19setIconDatabasePathERK7QString @ 97 NONAME - _ZN12QWebSettings19setLocalStoragePathERK7QString @ 98 NONAME - _ZN12QWebSettings20setUserStyleSheetUrlERK4QUrl @ 99 NONAME - _ZN12QWebSettings21setOfflineStoragePathERK7QString @ 100 NONAME - _ZN12QWebSettings22setDefaultTextEncodingERK7QString @ 101 NONAME - _ZN12QWebSettings22setMaximumPagesInCacheEi @ 102 NONAME - _ZN12QWebSettings23enablePersistentStorageERK7QString @ 103 NONAME - _ZN12QWebSettings24setObjectCacheCapacitiesEiii @ 104 NONAME - _ZN12QWebSettings26offlineStorageDefaultQuotaEv @ 105 NONAME - _ZN12QWebSettings29setOfflineStorageDefaultQuotaEx @ 106 NONAME - _ZN12QWebSettings30offlineWebApplicationCachePathEv @ 107 NONAME - _ZN12QWebSettings31offlineWebApplicationCacheQuotaEv @ 108 NONAME - _ZN12QWebSettings33setOfflineWebApplicationCachePathERK7QString @ 109 NONAME - _ZN12QWebSettings34setOfflineWebApplicationCacheQuotaEx @ 110 NONAME - _ZN12QWebSettingsC1EPN7WebCore8SettingsE @ 111 NONAME - _ZN12QWebSettingsC1Ev @ 112 NONAME - _ZN12QWebSettingsC2EPN7WebCore8SettingsE @ 113 NONAME - _ZN12QWebSettingsC2Ev @ 114 NONAME - _ZN12QWebSettingsD1Ev @ 115 NONAME - _ZN12QWebSettingsD2Ev @ 116 NONAME - _ZN13QWebInspector11qt_metacallEN11QMetaObject4CallEiPPv @ 117 NONAME - _ZN13QWebInspector11qt_metacastEPKc @ 118 NONAME - _ZN13QWebInspector11resizeEventEP12QResizeEvent @ 119 NONAME - _ZN13QWebInspector16staticMetaObjectE @ 120 NONAME DATA 16 - _ZN13QWebInspector18windowTitleChangedERK7QString @ 121 NONAME ABSENT - _ZN13QWebInspector19getStaticMetaObjectEv @ 122 NONAME - _ZN13QWebInspector5eventEP6QEvent @ 123 NONAME - _ZN13QWebInspector7setPageEP8QWebPage @ 124 NONAME - _ZN13QWebInspector9hideEventEP10QHideEvent @ 125 NONAME - _ZN13QWebInspector9showEventEP10QShowEvent @ 126 NONAME - _ZN13QWebInspectorC1EP7QWidget @ 127 NONAME - _ZN13QWebInspectorC2EP7QWidget @ 128 NONAME - _ZN13QWebInspectorD0Ev @ 129 NONAME - _ZN13QWebInspectorD1Ev @ 130 NONAME - _ZN13QWebInspectorD2Ev @ 131 NONAME - _ZN14QWebPluginInfo10setEnabledEb @ 132 NONAME - _ZN14QWebPluginInfoC1EPN7WebCore13PluginPackageE @ 133 NONAME - _ZN14QWebPluginInfoC1ERKS_ @ 134 NONAME - _ZN14QWebPluginInfoC1Ev @ 135 NONAME - _ZN14QWebPluginInfoC2EPN7WebCore13PluginPackageE @ 136 NONAME - _ZN14QWebPluginInfoC2ERKS_ @ 137 NONAME - _ZN14QWebPluginInfoC2Ev @ 138 NONAME - _ZN14QWebPluginInfoD1Ev @ 139 NONAME - _ZN14QWebPluginInfoD2Ev @ 140 NONAME - _ZN14QWebPluginInfoaSERKS_ @ 141 NONAME - _ZN15QWebHistoryItem11setUserDataERK8QVariant @ 142 NONAME - _ZN15QWebHistoryItemC1EP22QWebHistoryItemPrivate @ 143 NONAME - _ZN15QWebHistoryItemC1ERKS_ @ 144 NONAME - _ZN15QWebHistoryItemC2EP22QWebHistoryItemPrivate @ 145 NONAME - _ZN15QWebHistoryItemC2ERKS_ @ 146 NONAME - _ZN15QWebHistoryItemD1Ev @ 147 NONAME - _ZN15QWebHistoryItemD2Ev @ 148 NONAME - _ZN15QWebHistoryItemaSERKS_ @ 149 NONAME - _ZN16QGraphicsWebView10loadFailedEv @ 150 NONAME ABSENT - _ZN16QGraphicsWebView10sceneEventEP6QEvent @ 151 NONAME - _ZN16QGraphicsWebView10setContentERK10QByteArrayRK7QStringRK4QUrl @ 152 NONAME - _ZN16QGraphicsWebView10urlChangedERK4QUrl @ 153 NONAME - _ZN16QGraphicsWebView10wheelEventEP24QGraphicsSceneWheelEvent @ 154 NONAME - _ZN16QGraphicsWebView11iconChangedEv @ 155 NONAME - _ZN16QGraphicsWebView11loadStartedEv @ 156 NONAME - _ZN16QGraphicsWebView11qt_metacallEN11QMetaObject4CallEiPPv @ 157 NONAME - _ZN16QGraphicsWebView11qt_metacastEPKc @ 158 NONAME - _ZN16QGraphicsWebView11setGeometryERK6QRectF @ 159 NONAME - _ZN16QGraphicsWebView12focusInEventEP11QFocusEvent @ 160 NONAME - _ZN16QGraphicsWebView12loadFinishedEv @ 161 NONAME ABSENT - _ZN16QGraphicsWebView12titleChangedERK7QString @ 162 NONAME - _ZN16QGraphicsWebView13dragMoveEventEP27QGraphicsSceneDragDropEvent @ 163 NONAME - _ZN16QGraphicsWebView13focusOutEventEP11QFocusEvent @ 164 NONAME - _ZN16QGraphicsWebView13keyPressEventEP9QKeyEvent @ 165 NONAME - _ZN16QGraphicsWebView13setZoomFactorEf @ 166 NONAME - _ZN16QGraphicsWebView13statusChangedEv @ 167 NONAME ABSENT - _ZN16QGraphicsWebView14dragEnterEventEP27QGraphicsSceneDragDropEvent @ 168 NONAME - _ZN16QGraphicsWebView14dragLeaveEventEP27QGraphicsSceneDragDropEvent @ 169 NONAME - _ZN16QGraphicsWebView14hoverMoveEventEP24QGraphicsSceneHoverEvent @ 170 NONAME - _ZN16QGraphicsWebView14mouseMoveEventEP24QGraphicsSceneMouseEvent @ 171 NONAME - _ZN16QGraphicsWebView14setInteractiveEb @ 172 NONAME ABSENT - _ZN16QGraphicsWebView14updateGeometryEv @ 173 NONAME - _ZN16QGraphicsWebView15hoverLeaveEventEP24QGraphicsSceneHoverEvent @ 174 NONAME - _ZN16QGraphicsWebView15keyReleaseEventEP9QKeyEvent @ 175 NONAME - _ZN16QGraphicsWebView15mousePressEventEP24QGraphicsSceneMouseEvent @ 176 NONAME - _ZN16QGraphicsWebView15progressChangedEf @ 177 NONAME ABSENT - _ZN16QGraphicsWebView16contextMenuEventEP30QGraphicsSceneContextMenuEvent @ 178 NONAME - _ZN16QGraphicsWebView16inputMethodEventEP17QInputMethodEvent @ 179 NONAME - _ZN16QGraphicsWebView16staticMetaObjectE @ 180 NONAME DATA 16 - _ZN16QGraphicsWebView17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 181 NONAME - _ZN16QGraphicsWebView17zoomFactorChangedEv @ 182 NONAME ABSENT - _ZN16QGraphicsWebView18focusNextPrevChildEb @ 183 NONAME - _ZN16QGraphicsWebView19getStaticMetaObjectEv @ 184 NONAME - _ZN16QGraphicsWebView20interactivityChangedEv @ 185 NONAME ABSENT - _ZN16QGraphicsWebView21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent @ 186 NONAME - _ZN16QGraphicsWebView4backEv @ 187 NONAME - _ZN16QGraphicsWebView4loadERK15QNetworkRequestN21QNetworkAccessManager9OperationERK10QByteArray @ 188 NONAME - _ZN16QGraphicsWebView4loadERK4QUrl @ 189 NONAME - _ZN16QGraphicsWebView4stopEv @ 190 NONAME - _ZN16QGraphicsWebView5eventEP6QEvent @ 191 NONAME - _ZN16QGraphicsWebView5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 192 NONAME - _ZN16QGraphicsWebView6reloadEv @ 193 NONAME - _ZN16QGraphicsWebView6setUrlERK4QUrl @ 194 NONAME - _ZN16QGraphicsWebView7forwardEv @ 195 NONAME - _ZN16QGraphicsWebView7setHtmlERK7QStringRK4QUrl @ 196 NONAME - _ZN16QGraphicsWebView7setPageEP8QWebPage @ 197 NONAME - _ZN16QGraphicsWebView9dropEventEP27QGraphicsSceneDragDropEvent @ 198 NONAME - _ZN16QGraphicsWebViewC1EP13QGraphicsItem @ 199 NONAME - _ZN16QGraphicsWebViewC2EP13QGraphicsItem @ 200 NONAME - _ZN16QGraphicsWebViewD0Ev @ 201 NONAME - _ZN16QGraphicsWebViewD1Ev @ 202 NONAME - _ZN16QGraphicsWebViewD2Ev @ 203 NONAME - _ZN17QWebHitTestResultC1EP24QWebHitTestResultPrivate @ 204 NONAME - _ZN17QWebHitTestResultC1ERKS_ @ 205 NONAME - _ZN17QWebHitTestResultC1Ev @ 206 NONAME - _ZN17QWebHitTestResultC2EP24QWebHitTestResultPrivate @ 207 NONAME - _ZN17QWebHitTestResultC2ERKS_ @ 208 NONAME - _ZN17QWebHitTestResultC2Ev @ 209 NONAME - _ZN17QWebHitTestResultD1Ev @ 210 NONAME - _ZN17QWebHitTestResultD2Ev @ 211 NONAME - _ZN17QWebHitTestResultaSERKS_ @ 212 NONAME - _ZN17QWebPluginFactory11qt_metacallEN11QMetaObject4CallEiPPv @ 213 NONAME - _ZN17QWebPluginFactory11qt_metacastEPKc @ 214 NONAME - _ZN17QWebPluginFactory14refreshPluginsEv @ 215 NONAME - _ZN17QWebPluginFactory16staticMetaObjectE @ 216 NONAME DATA 16 - _ZN17QWebPluginFactory19getStaticMetaObjectEv @ 217 NONAME - _ZN17QWebPluginFactory9extensionENS_9ExtensionEPKNS_15ExtensionOptionEPNS_15ExtensionReturnE @ 218 NONAME - _ZN17QWebPluginFactoryC2EP7QObject @ 219 NONAME - _ZN17QWebPluginFactoryD0Ev @ 220 NONAME - _ZN17QWebPluginFactoryD1Ev @ 221 NONAME - _ZN17QWebPluginFactoryD2Ev @ 222 NONAME - _ZN18QWebPluginDatabase11qt_metacallEN11QMetaObject4CallEiPPv @ 223 NONAME - _ZN18QWebPluginDatabase11qt_metacastEPKc @ 224 NONAME - _ZN18QWebPluginDatabase13addSearchPathERK7QString @ 225 NONAME - _ZN18QWebPluginDatabase14setSearchPathsERK11QStringList @ 226 NONAME - _ZN18QWebPluginDatabase16staticMetaObjectE @ 227 NONAME DATA 16 - _ZN18QWebPluginDatabase17pluginForMimeTypeERK7QString @ 228 NONAME - _ZN18QWebPluginDatabase18defaultSearchPathsEv @ 229 NONAME - _ZN18QWebPluginDatabase19getStaticMetaObjectEv @ 230 NONAME - _ZN18QWebPluginDatabase29setPreferredPluginForMimeTypeERK7QStringRK14QWebPluginInfo @ 231 NONAME - _ZN18QWebPluginDatabase7refreshEv @ 232 NONAME - _ZN18QWebPluginDatabaseC1EP7QObject @ 233 NONAME - _ZN18QWebPluginDatabaseC2EP7QObject @ 234 NONAME - _ZN18QWebPluginDatabaseD0Ev @ 235 NONAME - _ZN18QWebPluginDatabaseD1Ev @ 236 NONAME - _ZN18QWebPluginDatabaseD2Ev @ 237 NONAME - _ZN18QWebSecurityOrigin10allOriginsEv @ 238 NONAME - _ZN18QWebSecurityOrigin12localSchemesEv @ 239 NONAME - _ZN18QWebSecurityOrigin14addLocalSchemeERK7QString @ 240 NONAME - _ZN18QWebSecurityOrigin16setDatabaseQuotaEx @ 241 NONAME - _ZN18QWebSecurityOrigin17removeLocalSchemeERK7QString @ 242 NONAME - _ZN18QWebSecurityOrigin25whiteListAccessFromOriginERK7QStringS2_S2_b @ 243 NONAME ABSENT - _ZN18QWebSecurityOrigin27resetOriginAccessWhiteListsEv @ 244 NONAME ABSENT - _ZN18QWebSecurityOriginC1EP25QWebSecurityOriginPrivate @ 245 NONAME - _ZN18QWebSecurityOriginC1ERKS_ @ 246 NONAME - _ZN18QWebSecurityOriginC2EP25QWebSecurityOriginPrivate @ 247 NONAME - _ZN18QWebSecurityOriginC2ERKS_ @ 248 NONAME - _ZN18QWebSecurityOriginD1Ev @ 249 NONAME - _ZN18QWebSecurityOriginD2Ev @ 250 NONAME - _ZN18QWebSecurityOriginaSERKS_ @ 251 NONAME - _ZN20QWebHistoryInterface11qt_metacallEN11QMetaObject4CallEiPPv @ 252 NONAME - _ZN20QWebHistoryInterface11qt_metacastEPKc @ 253 NONAME - _ZN20QWebHistoryInterface16defaultInterfaceEv @ 254 NONAME - _ZN20QWebHistoryInterface16staticMetaObjectE @ 255 NONAME DATA 16 - _ZN20QWebHistoryInterface19getStaticMetaObjectEv @ 256 NONAME - _ZN20QWebHistoryInterface19setDefaultInterfaceEPS_ @ 257 NONAME - _ZN20QWebHistoryInterfaceC2EP7QObject @ 258 NONAME - _ZN20QWebHistoryInterfaceD0Ev @ 259 NONAME - _ZN20QWebHistoryInterfaceD1Ev @ 260 NONAME - _ZN20QWebHistoryInterfaceD2Ev @ 261 NONAME - _ZN8QWebPage10chooseFileEP9QWebFrameRK7QString @ 262 NONAME - _ZN8QWebPage10setPaletteERK8QPalette @ 263 NONAME - _ZN8QWebPage11linkClickedERK4QUrl @ 264 NONAME - _ZN8QWebPage11linkHoveredERK7QStringS2_S2_ @ 265 NONAME - _ZN8QWebPage11loadStartedEv @ 266 NONAME - _ZN8QWebPage11qt_metacallEN11QMetaObject4CallEiPPv @ 267 NONAME - _ZN8QWebPage11qt_metacastEPKc @ 268 NONAME - _ZN8QWebPage12createPluginERK7QStringRK4QUrlRK11QStringListS8_ @ 269 NONAME - _ZN8QWebPage12createWindowENS_13WebWindowTypeE @ 270 NONAME - _ZN8QWebPage12frameCreatedEP9QWebFrame @ 271 NONAME - _ZN8QWebPage12loadFinishedEb @ 272 NONAME - _ZN8QWebPage12loadProgressEi @ 273 NONAME - _ZN8QWebPage13triggerActionENS_9WebActionEb @ 274 NONAME - _ZN8QWebPage14printRequestedEP9QWebFrame @ 275 NONAME - _ZN8QWebPage15contentsChangedEv @ 276 NONAME - _ZN8QWebPage15javaScriptAlertEP9QWebFrameRK7QString @ 277 NONAME - _ZN8QWebPage15scrollRequestedEiiRK5QRect @ 278 NONAME - _ZN8QWebPage16javaScriptPromptEP9QWebFrameRK7QStringS4_PS2_ @ 279 NONAME - _ZN8QWebPage16repaintRequestedERK5QRect @ 280 NONAME - _ZN8QWebPage16selectionChangedEv @ 281 NONAME - _ZN8QWebPage16setPluginFactoryEP17QWebPluginFactory @ 282 NONAME - _ZN8QWebPage16staticMetaObjectE @ 283 NONAME DATA 16 - _ZN8QWebPage16statusBarMessageERK7QString @ 284 NONAME - _ZN8QWebPage17downloadRequestedERK15QNetworkRequest @ 285 NONAME - _ZN8QWebPage17javaScriptConfirmEP9QWebFrameRK7QString @ 286 NONAME - _ZN8QWebPage17microFocusChangedEv @ 287 NONAME - _ZN8QWebPage18focusNextPrevChildEb @ 288 NONAME - _ZN8QWebPage18setContentEditableEb @ 289 NONAME - _ZN8QWebPage18unsupportedContentEP13QNetworkReply @ 290 NONAME - _ZN8QWebPage19getStaticMetaObjectEv @ 291 NONAME - _ZN8QWebPage20windowCloseRequestedEv @ 292 NONAME - _ZN8QWebPage21databaseQuotaExceededEP9QWebFrame7QString @ 293 NONAME - _ZN8QWebPage21webInspectorTriggeredERK11QWebElement @ 294 NONAME ABSENT - _ZN8QWebPage23acceptNavigationRequestEP9QWebFrameRK15QNetworkRequestNS_14NavigationTypeE @ 295 NONAME - _ZN8QWebPage23geometryChangeRequestedERK5QRect @ 296 NONAME - _ZN8QWebPage23saveFrameStateRequestedEP9QWebFrameP15QWebHistoryItem @ 297 NONAME - _ZN8QWebPage23setLinkDelegationPolicyENS_20LinkDelegationPolicyE @ 298 NONAME - _ZN8QWebPage23setNetworkAccessManagerEP21QNetworkAccessManager @ 299 NONAME - _ZN8QWebPage23swallowContextMenuEventEP17QContextMenuEvent @ 300 NONAME - _ZN8QWebPage24javaScriptConsoleMessageERK7QStringiS2_ @ 301 NONAME - _ZN8QWebPage25createStandardContextMenuEv @ 302 NONAME - _ZN8QWebPage25shouldInterruptJavaScriptEv @ 303 NONAME - _ZN8QWebPage26restoreFrameStateRequestedEP9QWebFrame @ 304 NONAME - _ZN8QWebPage28setForwardUnsupportedContentEb @ 305 NONAME - _ZN8QWebPage30updatePositionDependentActionsERK6QPoint @ 306 NONAME - _ZN8QWebPage32menuBarVisibilityChangeRequestedEb @ 307 NONAME - _ZN8QWebPage32toolBarVisibilityChangeRequestedEb @ 308 NONAME - _ZN8QWebPage34statusBarVisibilityChangeRequestedEb @ 309 NONAME - _ZN8QWebPage5eventEP6QEvent @ 310 NONAME - _ZN8QWebPage7setViewEP7QWidget @ 311 NONAME - _ZN8QWebPage8findTextERK7QString6QFlagsINS_8FindFlagEE @ 312 NONAME - _ZN8QWebPage9extensionENS_9ExtensionEPKNS_15ExtensionOptionEPNS_15ExtensionReturnE @ 313 NONAME - _ZN8QWebPageC1EP7QObject @ 314 NONAME - _ZN8QWebPageC2EP7QObject @ 315 NONAME - _ZN8QWebPageD0Ev @ 316 NONAME - _ZN8QWebPageD1Ev @ 317 NONAME - _ZN8QWebPageD2Ev @ 318 NONAME - _ZN8QWebView10paintEventEP11QPaintEvent @ 319 NONAME - _ZN8QWebView10setContentERK10QByteArrayRK7QStringRK4QUrl @ 320 NONAME - _ZN8QWebView10urlChangedERK4QUrl @ 321 NONAME - _ZN8QWebView10wheelEventEP11QWheelEvent @ 322 NONAME - _ZN8QWebView11changeEventEP6QEvent @ 323 NONAME - _ZN8QWebView11iconChangedEv @ 324 NONAME - _ZN8QWebView11linkClickedERK4QUrl @ 325 NONAME - _ZN8QWebView11loadStartedEv @ 326 NONAME - _ZN8QWebView11qt_metacallEN11QMetaObject4CallEiPPv @ 327 NONAME - _ZN8QWebView11qt_metacastEPKc @ 328 NONAME - _ZN8QWebView11resizeEventEP12QResizeEvent @ 329 NONAME - _ZN8QWebView12createWindowEN8QWebPage13WebWindowTypeE @ 330 NONAME - _ZN8QWebView12focusInEventEP11QFocusEvent @ 331 NONAME - _ZN8QWebView12loadFinishedEb @ 332 NONAME - _ZN8QWebView12loadProgressEi @ 333 NONAME - _ZN8QWebView12titleChangedERK7QString @ 334 NONAME - _ZN8QWebView13dragMoveEventEP14QDragMoveEvent @ 335 NONAME - _ZN8QWebView13focusOutEventEP11QFocusEvent @ 336 NONAME - _ZN8QWebView13keyPressEventEP9QKeyEvent @ 337 NONAME - _ZN8QWebView13setRenderHintEN8QPainter10RenderHintEb @ 338 NONAME - _ZN8QWebView13setZoomFactorEf @ 339 NONAME - _ZN8QWebView14dragEnterEventEP15QDragEnterEvent @ 340 NONAME - _ZN8QWebView14dragLeaveEventEP15QDragLeaveEvent @ 341 NONAME - _ZN8QWebView14mouseMoveEventEP11QMouseEvent @ 342 NONAME - _ZN8QWebView14setRenderHintsE6QFlagsIN8QPainter10RenderHintEE @ 343 NONAME - _ZN8QWebView15keyReleaseEventEP9QKeyEvent @ 344 NONAME - _ZN8QWebView15mousePressEventEP11QMouseEvent @ 345 NONAME - _ZN8QWebView16contextMenuEventEP17QContextMenuEvent @ 346 NONAME - _ZN8QWebView16inputMethodEventEP17QInputMethodEvent @ 347 NONAME - _ZN8QWebView16selectionChangedEv @ 348 NONAME - _ZN8QWebView16staticMetaObjectE @ 349 NONAME DATA 16 - _ZN8QWebView16statusBarMessageERK7QString @ 350 NONAME - _ZN8QWebView17mouseReleaseEventEP11QMouseEvent @ 351 NONAME - _ZN8QWebView17triggerPageActionEN8QWebPage9WebActionEb @ 352 NONAME - _ZN8QWebView18focusNextPrevChildEb @ 353 NONAME - _ZN8QWebView18guessUrlFromStringERK7QString @ 354 NONAME ABSENT - _ZN8QWebView19getStaticMetaObjectEv @ 355 NONAME - _ZN8QWebView21mouseDoubleClickEventEP11QMouseEvent @ 356 NONAME - _ZN8QWebView21setTextSizeMultiplierEf @ 357 NONAME - _ZN8QWebView4backEv @ 358 NONAME - _ZN8QWebView4loadERK15QNetworkRequestN21QNetworkAccessManager9OperationERK10QByteArray @ 359 NONAME - _ZN8QWebView4loadERK4QUrl @ 360 NONAME - _ZN8QWebView4stopEv @ 361 NONAME - _ZN8QWebView5eventEP6QEvent @ 362 NONAME - _ZN8QWebView6reloadEv @ 363 NONAME - _ZN8QWebView6setUrlERK4QUrl @ 364 NONAME - _ZN8QWebView7forwardEv @ 365 NONAME - _ZN8QWebView7setHtmlERK7QStringRK4QUrl @ 366 NONAME - _ZN8QWebView7setPageEP8QWebPage @ 367 NONAME - _ZN8QWebView8findTextERK7QString6QFlagsIN8QWebPage8FindFlagEE @ 368 NONAME - _ZN8QWebView9dropEventEP10QDropEvent @ 369 NONAME - _ZN8QWebViewC1EP7QWidget @ 370 NONAME - _ZN8QWebViewC2EP7QWidget @ 371 NONAME - _ZN8QWebViewD0Ev @ 372 NONAME - _ZN8QWebViewD1Ev @ 373 NONAME - _ZN8QWebViewD2Ev @ 374 NONAME - _ZN9QWebFrame10setContentERK10QByteArrayRK7QStringRK4QUrl @ 375 NONAME - _ZN9QWebFrame10urlChangedERK4QUrl @ 376 NONAME - _ZN9QWebFrame11iconChangedEv @ 377 NONAME - _ZN9QWebFrame11loadStartedEv @ 378 NONAME - _ZN9QWebFrame11qt_metacallEN11QMetaObject4CallEiPPv @ 379 NONAME - _ZN9QWebFrame11qt_metacastEPKc @ 380 NONAME - _ZN9QWebFrame12loadFinishedEb @ 381 NONAME - _ZN9QWebFrame12titleChangedERK7QString @ 382 NONAME - _ZN9QWebFrame13setZoomFactorEf @ 383 NONAME - _ZN9QWebFrame15provisionalLoadEv @ 384 NONAME - _ZN9QWebFrame16staticMetaObjectE @ 385 NONAME DATA 16 - _ZN9QWebFrame17setScrollBarValueEN2Qt11OrientationEi @ 386 NONAME - _ZN9QWebFrame17setScrollPositionERK6QPoint @ 387 NONAME - _ZN9QWebFrame18evaluateJavaScriptERK7QString @ 388 NONAME - _ZN9QWebFrame18setScrollBarPolicyEN2Qt11OrientationENS0_15ScrollBarPolicyE @ 389 NONAME - _ZN9QWebFrame19contentsSizeChangedERK5QSize @ 390 NONAME - _ZN9QWebFrame19getStaticMetaObjectEv @ 391 NONAME - _ZN9QWebFrame21setTextSizeMultiplierEf @ 392 NONAME - _ZN9QWebFrame22initialLayoutCompletedEv @ 393 NONAME - _ZN9QWebFrame23setClipRenderToViewportEb @ 394 NONAME ABSENT - _ZN9QWebFrame27addToJavaScriptWindowObjectERK7QStringP7QObject @ 395 NONAME - _ZN9QWebFrame27addToJavaScriptWindowObjectERK7QStringP7QObjectN13QScriptEngine14ValueOwnershipE @ 396 NONAME - _ZN9QWebFrame29javaScriptWindowObjectClearedEv @ 397 NONAME - _ZN9QWebFrame4loadERK15QNetworkRequestN21QNetworkAccessManager9OperationERK10QByteArray @ 398 NONAME - _ZN9QWebFrame4loadERK4QUrl @ 399 NONAME - _ZN9QWebFrame5eventEP6QEvent @ 400 NONAME - _ZN9QWebFrame6renderEP8QPainter @ 401 NONAME - _ZN9QWebFrame6renderEP8QPainterRK7QRegion @ 402 NONAME - _ZN9QWebFrame6scrollEii @ 403 NONAME - _ZN9QWebFrame6setUrlERK4QUrl @ 404 NONAME - _ZN9QWebFrame7setHtmlERK7QStringRK4QUrl @ 405 NONAME - _ZN9QWebFrame8setFocusEv @ 406 NONAME - _ZN9QWebFrameC1EP8QWebPageP13QWebFrameData @ 407 NONAME - _ZN9QWebFrameC1EPS_P13QWebFrameData @ 408 NONAME - _ZN9QWebFrameC2EP8QWebPageP13QWebFrameData @ 409 NONAME - _ZN9QWebFrameC2EPS_P13QWebFrameData @ 410 NONAME - _ZN9QWebFrameD0Ev @ 411 NONAME - _ZN9QWebFrameD1Ev @ 412 NONAME - _ZN9QWebFrameD2Ev @ 413 NONAME - _ZNK11QWebElement10firstChildEv @ 414 NONAME - _ZNK11QWebElement10toInnerXmlEv @ 415 NONAME - _ZNK11QWebElement10toOuterXmlEv @ 416 NONAME - _ZNK11QWebElement11attributeNSERK7QStringS2_S2_ @ 417 NONAME - _ZNK11QWebElement11nextSiblingEv @ 418 NONAME - _ZNK11QWebElement11toPlainTextEv @ 419 NONAME - _ZNK11QWebElement12hasAttributeERK7QString @ 420 NONAME - _ZNK11QWebElement12namespaceUriEv @ 421 NONAME - _ZNK11QWebElement13hasAttributesEv @ 422 NONAME - _ZNK11QWebElement13stylePropertyERK7QStringNS_20StyleResolveStrategyE @ 423 NONAME - _ZNK11QWebElement14hasAttributeNSERK7QStringS2_ @ 424 NONAME - _ZNK11QWebElement15previousSiblingEv @ 425 NONAME - _ZNK11QWebElement5cloneEv @ 426 NONAME - _ZNK11QWebElement6isNullEv @ 427 NONAME - _ZNK11QWebElement6parentEv @ 428 NONAME - _ZNK11QWebElement6prefixEv @ 429 NONAME - _ZNK11QWebElement7classesEv @ 430 NONAME - _ZNK11QWebElement7findAllERK7QString @ 431 NONAME - _ZNK11QWebElement7tagNameEv @ 432 NONAME - _ZNK11QWebElement8documentEv @ 433 NONAME - _ZNK11QWebElement8geometryEv @ 434 NONAME - _ZNK11QWebElement8hasClassERK7QString @ 435 NONAME - _ZNK11QWebElement8hasFocusEv @ 436 NONAME - _ZNK11QWebElement8webFrameEv @ 437 NONAME - _ZNK11QWebElement9attributeERK7QStringS2_ @ 438 NONAME - _ZNK11QWebElement9findFirstERK7QString @ 439 NONAME - _ZNK11QWebElement9lastChildEv @ 440 NONAME - _ZNK11QWebElement9localNameEv @ 441 NONAME - _ZNK11QWebElementeqERKS_ @ 442 NONAME - _ZNK11QWebElementneERKS_ @ 443 NONAME - _ZNK11QWebHistory11currentItemEv @ 444 NONAME - _ZNK11QWebHistory11forwardItemEv @ 445 NONAME - _ZNK11QWebHistory12canGoForwardEv @ 446 NONAME - _ZNK11QWebHistory12forwardItemsEi @ 447 NONAME - _ZNK11QWebHistory16currentItemIndexEv @ 448 NONAME - _ZNK11QWebHistory16maximumItemCountEv @ 449 NONAME - _ZNK11QWebHistory5countEv @ 450 NONAME - _ZNK11QWebHistory5itemsEv @ 451 NONAME - _ZNK11QWebHistory6itemAtEi @ 452 NONAME - _ZNK11QWebHistory8backItemEv @ 453 NONAME - _ZNK11QWebHistory9backItemsEi @ 454 NONAME - _ZNK11QWebHistory9canGoBackEv @ 455 NONAME - _ZNK11QWebHistory9saveStateENS_19HistoryStateVersionE @ 456 NONAME ABSENT - _ZNK12QWebDatabase11displayNameEv @ 457 NONAME - _ZNK12QWebDatabase12expectedSizeEv @ 458 NONAME - _ZNK12QWebDatabase4nameEv @ 459 NONAME - _ZNK12QWebDatabase4sizeEv @ 460 NONAME - _ZNK12QWebDatabase6originEv @ 461 NONAME - _ZNK12QWebDatabase8fileNameEv @ 462 NONAME - _ZNK12QWebSettings10fontFamilyENS_10FontFamilyE @ 463 NONAME - _ZNK12QWebSettings13testAttributeENS_12WebAttributeE @ 464 NONAME - _ZNK12QWebSettings16localStoragePathEv @ 465 NONAME - _ZNK12QWebSettings17userStyleSheetUrlEv @ 466 NONAME - _ZNK12QWebSettings19defaultTextEncodingEv @ 467 NONAME - _ZNK12QWebSettings8fontSizeENS_8FontSizeE @ 468 NONAME - _ZNK13QWebInspector10metaObjectEv @ 469 NONAME - _ZNK13QWebInspector4pageEv @ 470 NONAME - _ZNK13QWebInspector8sizeHintEv @ 471 NONAME - _ZNK14QWebPluginInfo11descriptionEv @ 472 NONAME - _ZNK14QWebPluginInfo16supportsMimeTypeERK7QString @ 473 NONAME - _ZNK14QWebPluginInfo4nameEv @ 474 NONAME - _ZNK14QWebPluginInfo4pathEv @ 475 NONAME - _ZNK14QWebPluginInfo6isNullEv @ 476 NONAME - _ZNK14QWebPluginInfo9isEnabledEv @ 477 NONAME - _ZNK14QWebPluginInfo9mimeTypesEv @ 478 NONAME - _ZNK14QWebPluginInfoeqERKS_ @ 479 NONAME - _ZNK14QWebPluginInfoneERKS_ @ 480 NONAME - _ZNK15QWebHistoryItem11lastVisitedEv @ 481 NONAME - _ZNK15QWebHistoryItem11originalUrlEv @ 482 NONAME - _ZNK15QWebHistoryItem3urlEv @ 483 NONAME - _ZNK15QWebHistoryItem4iconEv @ 484 NONAME - _ZNK15QWebHistoryItem5titleEv @ 485 NONAME - _ZNK15QWebHistoryItem7isValidEv @ 486 NONAME - _ZNK15QWebHistoryItem8userDataEv @ 487 NONAME - _ZNK16QGraphicsWebView10metaObjectEv @ 488 NONAME - _ZNK16QGraphicsWebView10zoomFactorEv @ 489 NONAME - _ZNK16QGraphicsWebView13isInteractiveEv @ 490 NONAME ABSENT - _ZNK16QGraphicsWebView3urlEv @ 491 NONAME - _ZNK16QGraphicsWebView4iconEv @ 492 NONAME - _ZNK16QGraphicsWebView4pageEv @ 493 NONAME - _ZNK16QGraphicsWebView5titleEv @ 494 NONAME - _ZNK16QGraphicsWebView6statusEv @ 495 NONAME ABSENT - _ZNK16QGraphicsWebView6toHtmlEv @ 496 NONAME ABSENT - _ZNK16QGraphicsWebView7historyEv @ 497 NONAME - _ZNK16QGraphicsWebView8progressEv @ 498 NONAME ABSENT - _ZNK16QGraphicsWebView8settingsEv @ 499 NONAME - _ZNK17QWebHitTestResult11linkElementEv @ 500 NONAME - _ZNK17QWebHitTestResult12boundingRectEv @ 501 NONAME - _ZNK17QWebHitTestResult13alternateTextEv @ 502 NONAME - _ZNK17QWebHitTestResult15linkTargetFrameEv @ 503 NONAME - _ZNK17QWebHitTestResult17isContentEditableEv @ 504 NONAME - _ZNK17QWebHitTestResult17isContentSelectedEv @ 505 NONAME - _ZNK17QWebHitTestResult21enclosingBlockElementEv @ 506 NONAME - _ZNK17QWebHitTestResult3posEv @ 507 NONAME - _ZNK17QWebHitTestResult5frameEv @ 508 NONAME - _ZNK17QWebHitTestResult5titleEv @ 509 NONAME - _ZNK17QWebHitTestResult6isNullEv @ 510 NONAME - _ZNK17QWebHitTestResult6pixmapEv @ 511 NONAME - _ZNK17QWebHitTestResult7elementEv @ 512 NONAME - _ZNK17QWebHitTestResult7linkUrlEv @ 513 NONAME - _ZNK17QWebHitTestResult8imageUrlEv @ 514 NONAME - _ZNK17QWebHitTestResult8linkTextEv @ 515 NONAME - _ZNK17QWebHitTestResult9linkTitleEv @ 516 NONAME - _ZNK17QWebPluginFactory10metaObjectEv @ 517 NONAME - _ZNK17QWebPluginFactory17supportsExtensionENS_9ExtensionE @ 518 NONAME - _ZNK17QWebPluginFactory8MimeTypeeqERKS0_ @ 519 NONAME - _ZNK18QWebPluginDatabase10metaObjectEv @ 520 NONAME - _ZNK18QWebPluginDatabase11searchPathsEv @ 521 NONAME - _ZNK18QWebPluginDatabase7pluginsEv @ 522 NONAME - _ZNK18QWebSecurityOrigin13databaseQuotaEv @ 523 NONAME - _ZNK18QWebSecurityOrigin13databaseUsageEv @ 524 NONAME - _ZNK18QWebSecurityOrigin4hostEv @ 525 NONAME - _ZNK18QWebSecurityOrigin4portEv @ 526 NONAME - _ZNK18QWebSecurityOrigin6schemeEv @ 527 NONAME - _ZNK18QWebSecurityOrigin9databasesEv @ 528 NONAME - _ZNK20QWebHistoryInterface10metaObjectEv @ 529 NONAME - _ZNK8QWebPage10isModifiedEv @ 530 NONAME - _ZNK8QWebPage10metaObjectEv @ 531 NONAME - _ZNK8QWebPage10totalBytesEv @ 532 NONAME - _ZNK8QWebPage12currentFrameEv @ 533 NONAME - _ZNK8QWebPage12selectedTextEv @ 534 NONAME - _ZNK8QWebPage12viewportSizeEv @ 535 NONAME - _ZNK8QWebPage13bytesReceivedEv @ 536 NONAME - _ZNK8QWebPage13pluginFactoryEv @ 537 NONAME - _ZNK8QWebPage15setViewportSizeERK5QSize @ 538 NONAME - _ZNK8QWebPage15userAgentForUrlERK4QUrl @ 539 NONAME - _ZNK8QWebPage16inputMethodQueryEN2Qt16InputMethodQueryE @ 540 NONAME - _ZNK8QWebPage17fixedContentsSizeEv @ 541 NONAME ABSENT - _ZNK8QWebPage17isContentEditableEv @ 542 NONAME - _ZNK8QWebPage17supportsExtensionENS_9ExtensionE @ 543 NONAME - _ZNK8QWebPage20linkDelegationPolicyEv @ 544 NONAME - _ZNK8QWebPage20networkAccessManagerEv @ 545 NONAME - _ZNK8QWebPage20setFixedContentsSizeERK5QSize @ 546 NONAME ABSENT - _ZNK8QWebPage25forwardUnsupportedContentEv @ 547 NONAME - _ZNK8QWebPage4viewEv @ 548 NONAME - _ZNK8QWebPage6actionENS_9WebActionE @ 549 NONAME - _ZNK8QWebPage7frameAtERK6QPoint @ 550 NONAME - _ZNK8QWebPage7historyEv @ 551 NONAME - _ZNK8QWebPage7paletteEv @ 552 NONAME - _ZNK8QWebPage8settingsEv @ 553 NONAME - _ZNK8QWebPage9mainFrameEv @ 554 NONAME - _ZNK8QWebPage9undoStackEv @ 555 NONAME - _ZNK8QWebView10isModifiedEv @ 556 NONAME - _ZNK8QWebView10metaObjectEv @ 557 NONAME - _ZNK8QWebView10pageActionEN8QWebPage9WebActionE @ 558 NONAME - _ZNK8QWebView10zoomFactorEv @ 559 NONAME - _ZNK8QWebView11renderHintsEv @ 560 NONAME - _ZNK8QWebView12selectedTextEv @ 561 NONAME - _ZNK8QWebView16inputMethodQueryEN2Qt16InputMethodQueryE @ 562 NONAME - _ZNK8QWebView18textSizeMultiplierEv @ 563 NONAME - _ZNK8QWebView3urlEv @ 564 NONAME - _ZNK8QWebView4iconEv @ 565 NONAME - _ZNK8QWebView4pageEv @ 566 NONAME - _ZNK8QWebView5printEP8QPrinter @ 567 NONAME - _ZNK8QWebView5titleEv @ 568 NONAME - _ZNK8QWebView7historyEv @ 569 NONAME - _ZNK8QWebView8settingsEv @ 570 NONAME - _ZNK8QWebView8sizeHintEv @ 571 NONAME - _ZNK9QWebFrame10metaObjectEv @ 572 NONAME - _ZNK9QWebFrame10zoomFactorEv @ 573 NONAME - _ZNK9QWebFrame11childFramesEv @ 574 NONAME - _ZNK9QWebFrame11parentFrameEv @ 575 NONAME - _ZNK9QWebFrame11toPlainTextEv @ 576 NONAME - _ZNK9QWebFrame12contentsSizeEv @ 577 NONAME - _ZNK9QWebFrame12requestedUrlEv @ 578 NONAME - _ZNK9QWebFrame14hitTestContentERK6QPoint @ 579 NONAME - _ZNK9QWebFrame14renderTreeDumpEv @ 580 NONAME - _ZNK9QWebFrame14scrollBarValueEN2Qt11OrientationE @ 581 NONAME - _ZNK9QWebFrame14scrollPositionEv @ 582 NONAME - _ZNK9QWebFrame14securityOriginEv @ 583 NONAME - _ZNK9QWebFrame15documentElementEv @ 584 NONAME - _ZNK9QWebFrame15findAllElementsERK7QString @ 585 NONAME - _ZNK9QWebFrame15scrollBarPolicyEN2Qt11OrientationE @ 586 NONAME - _ZNK9QWebFrame16findFirstElementERK7QString @ 587 NONAME - _ZNK9QWebFrame16scrollBarMaximumEN2Qt11OrientationE @ 588 NONAME - _ZNK9QWebFrame16scrollBarMinimumEN2Qt11OrientationE @ 589 NONAME - _ZNK9QWebFrame17scrollBarGeometryEN2Qt11OrientationE @ 590 NONAME - _ZNK9QWebFrame18textSizeMultiplierEv @ 591 NONAME - _ZNK9QWebFrame20clipRenderToViewportEv @ 592 NONAME ABSENT - _ZNK9QWebFrame3posEv @ 593 NONAME - _ZNK9QWebFrame3urlEv @ 594 NONAME - _ZNK9QWebFrame4iconEv @ 595 NONAME - _ZNK9QWebFrame4pageEv @ 596 NONAME - _ZNK9QWebFrame5titleEv @ 597 NONAME - _ZNK9QWebFrame6toHtmlEv @ 598 NONAME - _ZNK9QWebFrame7baseUrlEv @ 599 NONAME - _ZNK9QWebFrame8geometryEv @ 600 NONAME - _ZNK9QWebFrame8hasFocusEv @ 601 NONAME - _ZNK9QWebFrame8metaDataEv @ 602 NONAME - _ZNK9QWebFrame9frameNameEv @ 603 NONAME - _ZTI13QWebInspector @ 604 NONAME - _ZTI16QGraphicsWebView @ 605 NONAME - _ZTI17QWebPluginFactory @ 606 NONAME - _ZTI18QWebPluginDatabase @ 607 NONAME - _ZTI20QWebHistoryInterface @ 608 NONAME - _ZTI8QWebPage @ 609 NONAME - _ZTI8QWebView @ 610 NONAME - _ZTI9QWebFrame @ 611 NONAME - _ZTV13QWebInspector @ 612 NONAME - _ZTV16QGraphicsWebView @ 613 NONAME - _ZTV17QWebPluginFactory @ 614 NONAME - _ZTV18QWebPluginDatabase @ 615 NONAME - _ZTV20QWebHistoryInterface @ 616 NONAME - _ZTV8QWebPage @ 617 NONAME - _ZTV8QWebView @ 618 NONAME - _ZTV9QWebFrame @ 619 NONAME - _ZThn16_N16QGraphicsWebView11setGeometryERK6QRectF @ 620 NONAME - _ZThn16_N16QGraphicsWebView14updateGeometryEv @ 621 NONAME - _ZThn16_N16QGraphicsWebViewD0Ev @ 622 NONAME - _ZThn16_N16QGraphicsWebViewD1Ev @ 623 NONAME - _ZThn8_N13QWebInspectorD0Ev @ 624 NONAME - _ZThn8_N13QWebInspectorD1Ev @ 625 NONAME - _ZThn8_N16QGraphicsWebView10sceneEventEP6QEvent @ 626 NONAME - _ZThn8_N16QGraphicsWebView10wheelEventEP24QGraphicsSceneWheelEvent @ 627 NONAME - _ZThn8_N16QGraphicsWebView12focusInEventEP11QFocusEvent @ 628 NONAME - _ZThn8_N16QGraphicsWebView13dragMoveEventEP27QGraphicsSceneDragDropEvent @ 629 NONAME - _ZThn8_N16QGraphicsWebView13focusOutEventEP11QFocusEvent @ 630 NONAME - _ZThn8_N16QGraphicsWebView13keyPressEventEP9QKeyEvent @ 631 NONAME - _ZThn8_N16QGraphicsWebView14dragEnterEventEP27QGraphicsSceneDragDropEvent @ 632 NONAME - _ZThn8_N16QGraphicsWebView14dragLeaveEventEP27QGraphicsSceneDragDropEvent @ 633 NONAME - _ZThn8_N16QGraphicsWebView14hoverMoveEventEP24QGraphicsSceneHoverEvent @ 634 NONAME - _ZThn8_N16QGraphicsWebView14mouseMoveEventEP24QGraphicsSceneMouseEvent @ 635 NONAME - _ZThn8_N16QGraphicsWebView15hoverLeaveEventEP24QGraphicsSceneHoverEvent @ 636 NONAME - _ZThn8_N16QGraphicsWebView15keyReleaseEventEP9QKeyEvent @ 637 NONAME - _ZThn8_N16QGraphicsWebView15mousePressEventEP24QGraphicsSceneMouseEvent @ 638 NONAME - _ZThn8_N16QGraphicsWebView16contextMenuEventEP30QGraphicsSceneContextMenuEvent @ 639 NONAME - _ZThn8_N16QGraphicsWebView16inputMethodEventEP17QInputMethodEvent @ 640 NONAME - _ZThn8_N16QGraphicsWebView17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 641 NONAME - _ZThn8_N16QGraphicsWebView21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent @ 642 NONAME - _ZThn8_N16QGraphicsWebView5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 643 NONAME - _ZThn8_N16QGraphicsWebView9dropEventEP27QGraphicsSceneDragDropEvent @ 644 NONAME - _ZThn8_N16QGraphicsWebViewD0Ev @ 645 NONAME - _ZThn8_N16QGraphicsWebViewD1Ev @ 646 NONAME - _ZThn8_N8QWebViewD0Ev @ 647 NONAME - _ZThn8_N8QWebViewD1Ev @ 648 NONAME - _ZlsR11QDataStreamRK11QWebHistory @ 649 NONAME - _ZrsR11QDataStreamR11QWebHistory @ 650 NONAME - _Z32qt_drt_whiteListAccessFromOriginRK7QStringS1_S1_b @ 651 NONAME - _Z33qt_drt_counterValueForElementByIdP9QWebFrameRK7QString @ 652 NONAME ABSENT - _Z34qt_drt_resetOriginAccessWhiteListsv @ 653 NONAME - _ZN11QWebElement17removeAllChildrenEv @ 654 NONAME - _ZN11QWebElement6renderEP8QPainter @ 655 NONAME - _ZN12QWebSettings30setPrintingMaximumShrinkFactorEf @ 656 NONAME ABSENT - _ZN12QWebSettings30setPrintingMinimumShrinkFactorEf @ 657 NONAME ABSENT - _ZN16QGraphicsWebView10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant @ 658 NONAME - _ZN16QGraphicsWebView11linkClickedERK4QUrl @ 659 NONAME - _ZN16QGraphicsWebView12loadFinishedEb @ 660 NONAME - _ZN16QGraphicsWebView12loadProgressEi @ 661 NONAME - _ZN16QGraphicsWebView16statusBarMessageERK7QString @ 662 NONAME - _ZN16QGraphicsWebView17triggerPageActionEN8QWebPage9WebActionEb @ 663 NONAME - _ZN16QGraphicsWebView8findTextERK7QString6QFlagsIN8QWebPage8FindFlagEE @ 664 NONAME - _ZN21QWebElementCollection6appendERKS_ @ 665 NONAME - _ZN21QWebElementCollectionC1ERK11QWebElementRK7QString @ 666 NONAME - _ZN21QWebElementCollectionC1ERKS_ @ 667 NONAME - _ZN21QWebElementCollectionC1Ev @ 668 NONAME - _ZN21QWebElementCollectionC2ERK11QWebElementRK7QString @ 669 NONAME - _ZN21QWebElementCollectionC2ERKS_ @ 670 NONAME - _ZN21QWebElementCollectionC2Ev @ 671 NONAME - _ZN21QWebElementCollectionD1Ev @ 672 NONAME - _ZN21QWebElementCollectionD2Ev @ 673 NONAME - _ZN21QWebElementCollectionaSERKS_ @ 674 NONAME - _ZN9QWebFrame6renderEP8QPainterNS_11RenderLayerERK7QRegion @ 675 NONAME - _ZNK12QWebSettings27printingMaximumShrinkFactorEv @ 676 NONAME ABSENT - _ZNK12QWebSettings27printingMinimumShrinkFactorEv @ 677 NONAME ABSENT - _ZNK16QGraphicsWebView10isModifiedEv @ 678 NONAME - _ZNK16QGraphicsWebView10pageActionEN8QWebPage9WebActionE @ 679 NONAME - _ZNK16QGraphicsWebView16inputMethodQueryEN2Qt16InputMethodQueryE @ 680 NONAME - _ZNK16QGraphicsWebView8sizeHintEN2Qt8SizeHintERK6QSizeF @ 681 NONAME - _ZNK21QWebElementCollection2atEi @ 682 NONAME - _ZNK21QWebElementCollection5countEv @ 683 NONAME - _ZNK21QWebElementCollection6toListEv @ 684 NONAME - _ZNK21QWebElementCollectionplERKS_ @ 685 NONAME - _ZNK8QWebPage21preferredContentsSizeEv @ 686 NONAME - _ZNK8QWebPage24setPreferredContentsSizeERK5QSize @ 687 NONAME - _ZThn16_NK16QGraphicsWebView8sizeHintEN2Qt8SizeHintERK6QSizeF @ 688 NONAME - _ZThn8_N16QGraphicsWebView10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant @ 689 NONAME - _ZThn8_NK16QGraphicsWebView16inputMethodQueryEN2Qt16InputMethodQueryE @ 690 NONAME - _ZNK11QWebElement14attributeNamesERK7QString @ 691 NONAME - _Z23qt_networkAccessAllowedb @ 692 NONAME - _Z25qt_resumeActiveDOMObjectsP9QWebFrame @ 693 NONAME - _Z26qt_suspendActiveDOMObjectsP9QWebFrame @ 694 NONAME - _Z35qtwebkit_webframe_scrollRecursivelyP9QWebFrameii @ 695 NONAME ABSENT - _Z35qtwebkit_webframe_scrollRecursivelyP9QWebFrameiiRK6QPoint @ 696 NONAME - _ZN9QWebFrame17scrollRecursivelyEii @ 697 NONAME ABSENT - _ZN16QGraphicsWebView20setResizesToContentsEb @ 698 NONAME - _ZNK16QGraphicsWebView17resizesToContentsEv @ 699 NONAME - _Z20qt_drt_numberOfPagesP9QWebFrameff @ 700 NONAME ABSENT - _Z24qt_drt_pauseSVGAnimationP9QWebFrameRK7QStringdS3_ @ 701 NONAME ABSENT - _Z24qt_drt_webinspector_showP8QWebPage @ 702 NONAME ABSENT - _Z24qt_drt_workerThreadCountv @ 703 NONAME ABSENT - _Z25qt_drt_hasDocumentElementP9QWebFrame @ 704 NONAME ABSENT - _Z25qt_drt_webinspector_closeP8QWebPage @ 705 NONAME ABSENT - _Z31qt_drt_pageNumberForElementByIdP9QWebFrameRK7QStringff @ 706 NONAME ABSENT - _Z33qt_drt_webinspector_executeScriptP8QWebPagelRK7QString @ 707 NONAME ABSENT - _Z34qt_drt_setTimelineProfilingEnabledP8QWebPageb @ 708 NONAME ABSENT - _Z32qt_drt_setFrameFlatteningEnabledP8QWebPageb @ 709 NONAME ABSENT - _Z36qt_drt_evaluateScriptInIsolatedWorldP9QWebFrameiRK7QString @ 710 NONAME ABSENT - _Z47qt_drt_setDomainRelaxationForbiddenForURLSchemebRK7QString @ 711 NONAME ABSENT - _ZN9QWebFrame11pageChangedEv @ 712 NONAME - _ZN9QWebFrame14scrollToAnchorERK7QString @ 713 NONAME - _ZN12QWebSettings15setInspectorUrlERK4QUrl @ 714 NONAME ABSENT - _ZN13QWebInspector10closeEventEP11QCloseEvent @ 715 NONAME - _ZN16QGraphicsWebView26setTiledBackingStoreFrozenEb @ 716 NONAME - _ZNK16QGraphicsWebView25isTiledBackingStoreFrozenEv @ 717 NONAME - _Z18qt_wrt_setViewModeP8QWebPageRK7QString @ 718 NONAME ABSENT - _Z19qt_drt_setMediaTypeP9QWebFrameRK7QString @ 719 NONAME ABSENT - _Z26qt_drt_enableCaretBrowsingP8QWebPageb @ 720 NONAME ABSENT - _ZNK12QWebSettings12inspectorUrlEv @ 721 NONAME ABSENT - _ZN23DumpRenderTreeSupportQt19webPageSetGroupNameEP8QWebPageRK7QString @ 722 NONAME - _ZN23DumpRenderTreeSupportQt16webPageGroupNameEP8QWebPage @ 723 NONAME - _ZN23DumpRenderTreeSupportQt23garbageCollectorCollectEv @ 724 NONAME - _Z32qtwebkit_webframe_scrollOverflowP9QWebFrameiiRK6QPoint @ 725 NONAME - _ZN23DumpRenderTreeSupportQt12setMediaTypeEP9QWebFrameRK7QString @ 726 NONAME - _ZN23DumpRenderTreeSupportQt13numberOfPagesEP9QWebFrameff @ 727 NONAME - _ZN23DumpRenderTreeSupportQt13selectedRangeEP8QWebPage @ 728 NONAME - _ZN23DumpRenderTreeSupportQt14clearFrameNameEP9QWebFrame @ 729 NONAME - _ZN23DumpRenderTreeSupportQt14pauseAnimationEP9QWebFrameRK7QStringdS4_ @ 730 NONAME - _ZN23DumpRenderTreeSupportQt15dumpFrameLoaderEb @ 731 NONAME - _ZN23DumpRenderTreeSupportQt16dumpNotificationEb @ 732 NONAME - _ZN23DumpRenderTreeSupportQt16isCommandEnabledEP8QWebPageRK7QString @ 733 NONAME - _ZN23DumpRenderTreeSupportQt16webInspectorShowEP8QWebPage @ 734 NONAME - _ZN23DumpRenderTreeSupportQt17pauseSVGAnimationEP9QWebFrameRK7QStringdS4_ @ 735 NONAME - _ZN23DumpRenderTreeSupportQt17webInspectorCloseEP8QWebPage @ 736 NONAME - _ZN23DumpRenderTreeSupportQt17workerThreadCountEv @ 737 NONAME - _ZN23DumpRenderTreeSupportQt18hasDocumentElementEP9QWebFrame @ 738 NONAME - _ZN23DumpRenderTreeSupportQt20dumpEditingCallbacksEb @ 739 NONAME - _ZN23DumpRenderTreeSupportQt21markerTextForListItemERK11QWebElement @ 740 NONAME - _ZN23DumpRenderTreeSupportQt22javaScriptObjectsCountEv @ 741 NONAME - _ZN23DumpRenderTreeSupportQt23setCaretBrowsingEnabledEP8QWebPageb @ 742 NONAME - _ZN23DumpRenderTreeSupportQt24executeCoreCommandByNameEP8QWebPageRK7QStringS4_ @ 743 NONAME - _ZN23DumpRenderTreeSupportQt21dumpSetAcceptsEditingEb @ 744 NONAME - _ZN23DumpRenderTreeSupportQt22resumeActiveDOMObjectsEP9QWebFrame @ 745 NONAME - _ZN23DumpRenderTreeSupportQt23suspendActiveDOMObjectsEP9QWebFrame @ 746 NONAME - _ZN23DumpRenderTreeSupportQt24numberOfActiveAnimationsEP9QWebFrame @ 747 NONAME - _ZN23DumpRenderTreeSupportQt24pageNumberForElementByIdEP9QWebFrameRK7QStringff @ 748 NONAME - _ZN23DumpRenderTreeSupportQt25dumpResourceLoadCallbacksEb @ 749 NONAME - _ZN23DumpRenderTreeSupportQt25pauseTransitionOfPropertyEP9QWebFrameRK7QStringdS4_ @ 750 NONAME - _ZN23DumpRenderTreeSupportQt25setFrameFlatteningEnabledEP8QWebPageb @ 751 NONAME - _ZN23DumpRenderTreeSupportQt25webInspectorExecuteScriptEP8QWebPagelRK7QString @ 752 NONAME - _ZN23DumpRenderTreeSupportQt25whiteListAccessFromOriginERK7QStringS2_S2_b @ 753 NONAME - _ZN23DumpRenderTreeSupportQt26counterValueForElementByIdEP9QWebFrameRK7QString @ 754 NONAME - _ZN23DumpRenderTreeSupportQt26firstRectForCharacterRangeEP8QWebPageii @ 755 NONAME - _ZN23DumpRenderTreeSupportQt26overwritePluginDirectoriesEv @ 756 NONAME - _ZN23DumpRenderTreeSupportQt27resetOriginAccessWhiteListsEv @ 757 NONAME - _ZN23DumpRenderTreeSupportQt27setSmartInsertDeleteEnabledEP8QWebPageb @ 758 NONAME - _ZN23DumpRenderTreeSupportQt27setTimelineProfilingEnabledEP8QWebPageb @ 759 NONAME - _ZN23DumpRenderTreeSupportQt28setDumpRenderTreeModeEnabledEb @ 760 NONAME - _ZN23DumpRenderTreeSupportQt29dumpResourceLoadCallbacksPathERK7QString @ 761 NONAME - _ZN23DumpRenderTreeSupportQt29evaluateScriptInIsolatedWorldEP9QWebFrameiRK7QString @ 762 NONAME - _ZN23DumpRenderTreeSupportQt29setJavaScriptProfilingEnabledEP9QWebFrameb @ 763 NONAME - _ZN23DumpRenderTreeSupportQt29setWillSendRequestReturnsNullEb @ 764 NONAME - _ZN23DumpRenderTreeSupportQt30setWillSendRequestClearHeadersERK11QStringList @ 765 NONAME - _ZN23DumpRenderTreeSupportQt33computedStyleIncludingVisitedInfoERK11QWebElement @ 766 NONAME - _ZN23DumpRenderTreeSupportQt34setSelectTrailingWhitespaceEnabledEP8QWebPageb @ 767 NONAME - _ZN23DumpRenderTreeSupportQt39elementDoesAutoCompleteForElementWithIdEP9QWebFrameRK7QString @ 768 NONAME - _ZN23DumpRenderTreeSupportQt39setWillSendRequestReturnsNullOnRedirectEb @ 769 NONAME - _ZN23DumpRenderTreeSupportQt40garbageCollectorCollectOnAlternateThreadEb @ 770 NONAME - _ZN23DumpRenderTreeSupportQt40setDomainRelaxationForbiddenForURLSchemeEbRK7QString @ 771 NONAME - _ZN23DumpRenderTreeSupportQt18setEditingBehaviorEP8QWebPageRK7QString @ 772 NONAME - _ZN23DumpRenderTreeSupportQt24setNotificationsReceiverEP7QObject @ 773 NONAME ABSENT - _ZN23DumpRenderTreeSupportQt26allowNotificationForOriginERK7QString @ 774 NONAME ABSENT - _ZN23DumpRenderTreeSupportQt26setCheckPermissionFunctionEPFvP7QObjectRK4QUrlR22NotificationPermissionE @ 775 NONAME ABSENT - _ZN23DumpRenderTreeSupportQt28setRequestPermissionFunctionEPFvP7QObjectRK7QStringE @ 776 NONAME ABSENT - _ZN23DumpRenderTreeSupportQt31removeWhiteListAccessFromOriginERK7QStringS2_S2_b @ 777 NONAME - _ZN23DumpRenderTreeSupportQt11shouldCloseEP9QWebFrame @ 778 NONAME - _ZN23DumpRenderTreeSupportQt12isTargetItemERK15QWebHistoryItem @ 779 NONAME - _ZN23DumpRenderTreeSupportQt17historyItemTargetERK15QWebHistoryItem @ 780 NONAME - _ZN23DumpRenderTreeSupportQt20getChildHistoryItemsERK15QWebHistoryItem @ 781 NONAME - _ZN23DumpRenderTreeSupportQt23setMockGeolocationErrorEiRK7QString @ 782 NONAME - _ZN23DumpRenderTreeSupportQt26setMockGeolocationPositionEddd @ 783 NONAME - _ZN23DumpRenderTreeSupportQt17clearScriptWorldsEv @ 784 NONAME - _ZN23DumpRenderTreeSupportQt23setCustomPolicyDelegateEbb @ 785 NONAME - _ZN15QWebScriptWorldC1ERKS_ @ 786 NONAME - _ZN15QWebScriptWorldC1Ev @ 787 NONAME - _ZN15QWebScriptWorldC2ERKS_ @ 788 NONAME - _ZN15QWebScriptWorldC2Ev @ 789 NONAME - _ZN15QWebScriptWorldD1Ev @ 790 NONAME - _ZN15QWebScriptWorldD2Ev @ 791 NONAME - _ZN15QWebScriptWorldaSERKS_ @ 792 NONAME - _ZN23DumpRenderTreeSupportQt29dumpResourceResponseMIMETypesEb @ 793 NONAME - _ZN23DumpRenderTreeSupportQtC1Ev @ 794 NONAME - _ZN23DumpRenderTreeSupportQtC2Ev @ 795 NONAME - _ZN23DumpRenderTreeSupportQtD1Ev @ 796 NONAME - _ZN23DumpRenderTreeSupportQtD2Ev @ 797 NONAME - _ZN8QWebPage23allowGeolocationRequestEP9QWebFrame @ 798 NONAME ABSENT - _ZN8QWebPage23viewportChangeRequestedERKNS_13ViewportHintsE @ 799 NONAME ABSENT - _ZNK15QWebScriptWorld5worldEv @ 800 NONAME - _ZN16QGraphicsWebView13setDeviceSizeERK5QSize @ 801 NONAME ABSENT - _ZN23DumpRenderTreeSupportQt12pagePropertyEP9QWebFrameRK7QStringi @ 802 NONAME - _ZN23DumpRenderTreeSupportQt16isPageBoxVisibleEP9QWebFramei @ 803 NONAME - _ZN23DumpRenderTreeSupportQt16resumeAnimationsEP9QWebFrame @ 804 NONAME - _ZN23DumpRenderTreeSupportQt17addUserStyleSheetEP8QWebPageRK7QString @ 805 NONAME - _ZN23DumpRenderTreeSupportQt17suspendAnimationsEP9QWebFrame @ 806 NONAME - _ZN23DumpRenderTreeSupportQt26pageSizeAndMarginsInPixelsEP9QWebFrameiiiiiii @ 807 NONAME - _ZN23DumpRenderTreeSupportQt28setDeferMainResourceDataLoadEb @ 808 NONAME - _ZN8QWebPage17setUserPermissionEP9QWebFrameNS_16PermissionDomainENS_16PermissionPolicyE @ 809 NONAME - _ZN8QWebPage23checkPermissionFromUserEP9QWebFrameNS_16PermissionDomainERNS_16PermissionPolicyE @ 810 NONAME - _ZN8QWebPage25requestPermissionFromUserEP9QWebFrameNS_16PermissionDomainE @ 811 NONAME - _ZN8QWebPage27cancelRequestsForPermissionEP9QWebFrameNS_16PermissionDomainE @ 812 NONAME - _ZNK16QGraphicsWebView10deviceSizeEv @ 813 NONAME ABSENT - _ZN23DumpRenderTreeSupportQt14viewportAsTextEP8QWebPageRK5QSize @ 814 NONAME - _ZN23DumpRenderTreeSupportQt32simulateDesktopNotificationClickERK7QString @ 815 NONAME - _ZN8QWebPage23viewportChangeRequestedEv @ 816 NONAME - _ZNK8QWebPage28viewportConfigurationForSizeERK5QSize @ 817 NONAME ABSENT - _ZN23DumpRenderTreeSupportQt20dumpHistoryCallbacksEb @ 818 NONAME - _ZN23DumpRenderTreeSupportQt25dumpVisitedLinksCallbacksEb @ 819 NONAME - _ZN23DumpRenderTreeSupportQt9plainTextERK8QVariant @ 820 NONAME - _ZNK8QWebPage25viewportAttributesForSizeERK5QSize @ 821 NONAME - _ZN8QWebPage18ViewportAttributesC1ERKS0_ @ 822 NONAME - _ZN8QWebPage18ViewportAttributesC1Ev @ 823 NONAME - _ZN8QWebPage18ViewportAttributesC2ERKS0_ @ 824 NONAME - _ZN8QWebPage18ViewportAttributesC2Ev @ 825 NONAME - _ZN8QWebPage18ViewportAttributesD1Ev @ 826 NONAME - _ZN8QWebPage18ViewportAttributesD2Ev @ 827 NONAME - _ZN8QWebPage18ViewportAttributesaSERKS0_ @ 828 NONAME - _ZN23DumpRenderTreeSupportQt13nodesFromRectERK11QWebElementiijjjjb @ 829 NONAME - _ZN23DumpRenderTreeSupportQt28dumpUserGestureInFrameLoaderEb @ 830 NONAME - _ZNK8QWebPage19supportsContentTypeERK7QString @ 831 NONAME - _ZNK8QWebPage21supportedContentTypesEv @ 832 NONAME - _ZNK8QWebPage27setActualVisibleContentRectERK5QRect @ 833 NONAME - +EXPORTS
+ _Z10qt_drt_runb @ 1 NONAME
+ _Z14qWebKitVersionv @ 2 NONAME
+ _Z19qWebKitMajorVersionv @ 3 NONAME
+ _Z19qWebKitMinorVersionv @ 4 NONAME
+ _Z20qt_dump_frame_loaderb @ 5 NONAME
+ _Z20qt_webpage_groupNameP8QWebPage @ 6 NONAME
+ _Z21qt_drt_clearFrameNameP9QWebFrame @ 7 NONAME
+ _Z21qt_drt_pauseAnimationP9QWebFrameRK7QStringdS3_ @ 8 NONAME
+ _Z23qt_webpage_setGroupNameP8QWebPageRK7QString @ 9 NONAME
+ _Z25qt_dump_editing_callbacksb @ 10 NONAME
+ _Z27qt_dump_set_accepts_editingb @ 11 NONAME
+ _Z29qt_drt_javaScriptObjectsCountv @ 12 NONAME
+ _Z31qt_drt_garbageCollector_collectv @ 13 NONAME
+ _Z31qt_drt_numberOfActiveAnimationsP9QWebFrame @ 14 NONAME
+ _Z31qt_dump_resource_load_callbacksb @ 15 NONAME
+ _Z32qt_drt_pauseTransitionOfPropertyP9QWebFrameRK7QStringdS3_ @ 16 NONAME
+ _Z33qt_drt_overwritePluginDirectoriesv @ 17 NONAME
+ _Z36qt_drt_setJavaScriptProfilingEnabledP9QWebFrameb @ 18 NONAME
+ _Z48qt_drt_garbageCollector_collectOnAlternateThreadb @ 19 NONAME
+ _ZN11QWebElement11encloseWithERK7QString @ 20 NONAME
+ _ZN11QWebElement11encloseWithERKS_ @ 21 NONAME
+ _ZN11QWebElement11removeClassERK7QString @ 22 NONAME
+ _ZN11QWebElement11setInnerXmlERK7QString @ 23 NONAME
+ _ZN11QWebElement11setOuterXmlERK7QString @ 24 NONAME
+ _ZN11QWebElement11toggleClassERK7QString @ 25 NONAME
+ _ZN11QWebElement12appendInsideERK7QString @ 26 NONAME
+ _ZN11QWebElement12appendInsideERKS_ @ 27 NONAME
+ _ZN11QWebElement12setAttributeERK7QStringS2_ @ 28 NONAME
+ _ZN11QWebElement12setPlainTextERK7QString @ 29 NONAME
+ _ZN11QWebElement13appendOutsideERK7QString @ 30 NONAME
+ _ZN11QWebElement13appendOutsideERKS_ @ 31 NONAME
+ _ZN11QWebElement13prependInsideERK7QString @ 32 NONAME
+ _ZN11QWebElement13prependInsideERKS_ @ 33 NONAME
+ _ZN11QWebElement14prependOutsideERK7QString @ 34 NONAME
+ _ZN11QWebElement14prependOutsideERKS_ @ 35 NONAME
+ _ZN11QWebElement14removeChildrenEv @ 36 NONAME ABSENT
+ _ZN11QWebElement14setAttributeNSERK7QStringS2_S2_ @ 37 NONAME
+ _ZN11QWebElement15removeAttributeERK7QString @ 38 NONAME
+ _ZN11QWebElement16enclosingElementEPN7WebCore4NodeE @ 39 NONAME
+ _ZN11QWebElement16setStylePropertyERK7QStringS2_ @ 40 NONAME
+ _ZN11QWebElement16takeFromDocumentEv @ 41 NONAME
+ _ZN11QWebElement17removeAttributeNSERK7QStringS2_ @ 42 NONAME
+ _ZN11QWebElement18evaluateJavaScriptERK7QString @ 43 NONAME
+ _ZN11QWebElement18removeFromDocumentEv @ 44 NONAME
+ _ZN11QWebElement19encloseContentsWithERK7QString @ 45 NONAME
+ _ZN11QWebElement19encloseContentsWithERKS_ @ 46 NONAME
+ _ZN11QWebElement7replaceERK7QString @ 47 NONAME
+ _ZN11QWebElement7replaceERKS_ @ 48 NONAME
+ _ZN11QWebElement8addClassERK7QString @ 49 NONAME
+ _ZN11QWebElement8setFocusEv @ 50 NONAME
+ _ZN11QWebElementC1EPN7WebCore4NodeE @ 51 NONAME
+ _ZN11QWebElementC1EPN7WebCore7ElementE @ 52 NONAME
+ _ZN11QWebElementC1ERKS_ @ 53 NONAME
+ _ZN11QWebElementC1Ev @ 54 NONAME
+ _ZN11QWebElementC2EPN7WebCore4NodeE @ 55 NONAME
+ _ZN11QWebElementC2EPN7WebCore7ElementE @ 56 NONAME
+ _ZN11QWebElementC2ERKS_ @ 57 NONAME
+ _ZN11QWebElementC2Ev @ 58 NONAME
+ _ZN11QWebElementD1Ev @ 59 NONAME
+ _ZN11QWebElementD2Ev @ 60 NONAME
+ _ZN11QWebElementaSERKS_ @ 61 NONAME
+ _ZN11QWebHistory12restoreStateERK10QByteArray @ 62 NONAME ABSENT
+ _ZN11QWebHistory19setMaximumItemCountEi @ 63 NONAME
+ _ZN11QWebHistory4backEv @ 64 NONAME
+ _ZN11QWebHistory5clearEv @ 65 NONAME
+ _ZN11QWebHistory7forwardEv @ 66 NONAME
+ _ZN11QWebHistory8goToItemERK15QWebHistoryItem @ 67 NONAME
+ _ZN11QWebHistoryC1Ev @ 68 NONAME
+ _ZN11QWebHistoryC2Ev @ 69 NONAME
+ _ZN11QWebHistoryD1Ev @ 70 NONAME
+ _ZN11QWebHistoryD2Ev @ 71 NONAME
+ _ZN12QWebDatabase14removeDatabaseERKS_ @ 72 NONAME
+ _ZN12QWebDatabase18removeAllDatabasesEv @ 73 NONAME
+ _ZN12QWebDatabaseC1EP19QWebDatabasePrivate @ 74 NONAME
+ _ZN12QWebDatabaseC1ERKS_ @ 75 NONAME
+ _ZN12QWebDatabaseC2EP19QWebDatabasePrivate @ 76 NONAME
+ _ZN12QWebDatabaseC2ERKS_ @ 77 NONAME
+ _ZN12QWebDatabaseD1Ev @ 78 NONAME
+ _ZN12QWebDatabaseD2Ev @ 79 NONAME
+ _ZN12QWebDatabaseaSERKS_ @ 80 NONAME
+ _ZN12QWebSettings10iconForUrlERK4QUrl @ 81 NONAME
+ _ZN12QWebSettings10webGraphicENS_10WebGraphicE @ 82 NONAME
+ _ZN12QWebSettings11setFontSizeENS_8FontSizeEi @ 83 NONAME
+ _ZN12QWebSettings12setAttributeENS_12WebAttributeEb @ 84 NONAME
+ _ZN12QWebSettings13resetFontSizeENS_8FontSizeE @ 85 NONAME
+ _ZN12QWebSettings13setFontFamilyENS_10FontFamilyERK7QString @ 86 NONAME
+ _ZN12QWebSettings13setWebGraphicENS_10WebGraphicERK7QPixmap @ 87 NONAME
+ _ZN12QWebSettings14globalSettingsEv @ 88 NONAME
+ _ZN12QWebSettings14pluginDatabaseEv @ 89 NONAME ABSENT
+ _ZN12QWebSettings14resetAttributeENS_12WebAttributeE @ 90 NONAME
+ _ZN12QWebSettings15resetFontFamilyENS_10FontFamilyE @ 91 NONAME
+ _ZN12QWebSettings16iconDatabasePathEv @ 92 NONAME
+ _ZN12QWebSettings17clearIconDatabaseEv @ 93 NONAME
+ _ZN12QWebSettings17clearMemoryCachesEv @ 94 NONAME
+ _ZN12QWebSettings18offlineStoragePathEv @ 95 NONAME
+ _ZN12QWebSettings19maximumPagesInCacheEv @ 96 NONAME
+ _ZN12QWebSettings19setIconDatabasePathERK7QString @ 97 NONAME
+ _ZN12QWebSettings19setLocalStoragePathERK7QString @ 98 NONAME
+ _ZN12QWebSettings20setUserStyleSheetUrlERK4QUrl @ 99 NONAME
+ _ZN12QWebSettings21setOfflineStoragePathERK7QString @ 100 NONAME
+ _ZN12QWebSettings22setDefaultTextEncodingERK7QString @ 101 NONAME
+ _ZN12QWebSettings22setMaximumPagesInCacheEi @ 102 NONAME
+ _ZN12QWebSettings23enablePersistentStorageERK7QString @ 103 NONAME
+ _ZN12QWebSettings24setObjectCacheCapacitiesEiii @ 104 NONAME
+ _ZN12QWebSettings26offlineStorageDefaultQuotaEv @ 105 NONAME
+ _ZN12QWebSettings29setOfflineStorageDefaultQuotaEx @ 106 NONAME
+ _ZN12QWebSettings30offlineWebApplicationCachePathEv @ 107 NONAME
+ _ZN12QWebSettings31offlineWebApplicationCacheQuotaEv @ 108 NONAME
+ _ZN12QWebSettings33setOfflineWebApplicationCachePathERK7QString @ 109 NONAME
+ _ZN12QWebSettings34setOfflineWebApplicationCacheQuotaEx @ 110 NONAME
+ _ZN12QWebSettingsC1EPN7WebCore8SettingsE @ 111 NONAME
+ _ZN12QWebSettingsC1Ev @ 112 NONAME
+ _ZN12QWebSettingsC2EPN7WebCore8SettingsE @ 113 NONAME
+ _ZN12QWebSettingsC2Ev @ 114 NONAME
+ _ZN12QWebSettingsD1Ev @ 115 NONAME
+ _ZN12QWebSettingsD2Ev @ 116 NONAME
+ _ZN13QWebInspector11qt_metacallEN11QMetaObject4CallEiPPv @ 117 NONAME
+ _ZN13QWebInspector11qt_metacastEPKc @ 118 NONAME
+ _ZN13QWebInspector11resizeEventEP12QResizeEvent @ 119 NONAME
+ _ZN13QWebInspector16staticMetaObjectE @ 120 NONAME DATA 16
+ _ZN13QWebInspector18windowTitleChangedERK7QString @ 121 NONAME ABSENT
+ _ZN13QWebInspector19getStaticMetaObjectEv @ 122 NONAME
+ _ZN13QWebInspector5eventEP6QEvent @ 123 NONAME
+ _ZN13QWebInspector7setPageEP8QWebPage @ 124 NONAME
+ _ZN13QWebInspector9hideEventEP10QHideEvent @ 125 NONAME
+ _ZN13QWebInspector9showEventEP10QShowEvent @ 126 NONAME
+ _ZN13QWebInspectorC1EP7QWidget @ 127 NONAME
+ _ZN13QWebInspectorC2EP7QWidget @ 128 NONAME
+ _ZN13QWebInspectorD0Ev @ 129 NONAME
+ _ZN13QWebInspectorD1Ev @ 130 NONAME
+ _ZN13QWebInspectorD2Ev @ 131 NONAME
+ _ZN14QWebPluginInfo10setEnabledEb @ 132 NONAME
+ _ZN14QWebPluginInfoC1EPN7WebCore13PluginPackageE @ 133 NONAME
+ _ZN14QWebPluginInfoC1ERKS_ @ 134 NONAME
+ _ZN14QWebPluginInfoC1Ev @ 135 NONAME
+ _ZN14QWebPluginInfoC2EPN7WebCore13PluginPackageE @ 136 NONAME
+ _ZN14QWebPluginInfoC2ERKS_ @ 137 NONAME
+ _ZN14QWebPluginInfoC2Ev @ 138 NONAME
+ _ZN14QWebPluginInfoD1Ev @ 139 NONAME
+ _ZN14QWebPluginInfoD2Ev @ 140 NONAME
+ _ZN14QWebPluginInfoaSERKS_ @ 141 NONAME
+ _ZN15QWebHistoryItem11setUserDataERK8QVariant @ 142 NONAME
+ _ZN15QWebHistoryItemC1EP22QWebHistoryItemPrivate @ 143 NONAME
+ _ZN15QWebHistoryItemC1ERKS_ @ 144 NONAME
+ _ZN15QWebHistoryItemC2EP22QWebHistoryItemPrivate @ 145 NONAME
+ _ZN15QWebHistoryItemC2ERKS_ @ 146 NONAME
+ _ZN15QWebHistoryItemD1Ev @ 147 NONAME
+ _ZN15QWebHistoryItemD2Ev @ 148 NONAME
+ _ZN15QWebHistoryItemaSERKS_ @ 149 NONAME
+ _ZN16QGraphicsWebView10loadFailedEv @ 150 NONAME ABSENT
+ _ZN16QGraphicsWebView10sceneEventEP6QEvent @ 151 NONAME
+ _ZN16QGraphicsWebView10setContentERK10QByteArrayRK7QStringRK4QUrl @ 152 NONAME
+ _ZN16QGraphicsWebView10urlChangedERK4QUrl @ 153 NONAME
+ _ZN16QGraphicsWebView10wheelEventEP24QGraphicsSceneWheelEvent @ 154 NONAME
+ _ZN16QGraphicsWebView11iconChangedEv @ 155 NONAME
+ _ZN16QGraphicsWebView11loadStartedEv @ 156 NONAME
+ _ZN16QGraphicsWebView11qt_metacallEN11QMetaObject4CallEiPPv @ 157 NONAME
+ _ZN16QGraphicsWebView11qt_metacastEPKc @ 158 NONAME
+ _ZN16QGraphicsWebView11setGeometryERK6QRectF @ 159 NONAME
+ _ZN16QGraphicsWebView12focusInEventEP11QFocusEvent @ 160 NONAME
+ _ZN16QGraphicsWebView12loadFinishedEv @ 161 NONAME ABSENT
+ _ZN16QGraphicsWebView12titleChangedERK7QString @ 162 NONAME
+ _ZN16QGraphicsWebView13dragMoveEventEP27QGraphicsSceneDragDropEvent @ 163 NONAME
+ _ZN16QGraphicsWebView13focusOutEventEP11QFocusEvent @ 164 NONAME
+ _ZN16QGraphicsWebView13keyPressEventEP9QKeyEvent @ 165 NONAME
+ _ZN16QGraphicsWebView13setZoomFactorEf @ 166 NONAME
+ _ZN16QGraphicsWebView13statusChangedEv @ 167 NONAME ABSENT
+ _ZN16QGraphicsWebView14dragEnterEventEP27QGraphicsSceneDragDropEvent @ 168 NONAME
+ _ZN16QGraphicsWebView14dragLeaveEventEP27QGraphicsSceneDragDropEvent @ 169 NONAME
+ _ZN16QGraphicsWebView14hoverMoveEventEP24QGraphicsSceneHoverEvent @ 170 NONAME
+ _ZN16QGraphicsWebView14mouseMoveEventEP24QGraphicsSceneMouseEvent @ 171 NONAME
+ _ZN16QGraphicsWebView14setInteractiveEb @ 172 NONAME ABSENT
+ _ZN16QGraphicsWebView14updateGeometryEv @ 173 NONAME
+ _ZN16QGraphicsWebView15hoverLeaveEventEP24QGraphicsSceneHoverEvent @ 174 NONAME
+ _ZN16QGraphicsWebView15keyReleaseEventEP9QKeyEvent @ 175 NONAME
+ _ZN16QGraphicsWebView15mousePressEventEP24QGraphicsSceneMouseEvent @ 176 NONAME
+ _ZN16QGraphicsWebView15progressChangedEf @ 177 NONAME ABSENT
+ _ZN16QGraphicsWebView16contextMenuEventEP30QGraphicsSceneContextMenuEvent @ 178 NONAME
+ _ZN16QGraphicsWebView16inputMethodEventEP17QInputMethodEvent @ 179 NONAME
+ _ZN16QGraphicsWebView16staticMetaObjectE @ 180 NONAME DATA 16
+ _ZN16QGraphicsWebView17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 181 NONAME
+ _ZN16QGraphicsWebView17zoomFactorChangedEv @ 182 NONAME ABSENT
+ _ZN16QGraphicsWebView18focusNextPrevChildEb @ 183 NONAME
+ _ZN16QGraphicsWebView19getStaticMetaObjectEv @ 184 NONAME
+ _ZN16QGraphicsWebView20interactivityChangedEv @ 185 NONAME ABSENT
+ _ZN16QGraphicsWebView21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent @ 186 NONAME
+ _ZN16QGraphicsWebView4backEv @ 187 NONAME
+ _ZN16QGraphicsWebView4loadERK15QNetworkRequestN21QNetworkAccessManager9OperationERK10QByteArray @ 188 NONAME
+ _ZN16QGraphicsWebView4loadERK4QUrl @ 189 NONAME
+ _ZN16QGraphicsWebView4stopEv @ 190 NONAME
+ _ZN16QGraphicsWebView5eventEP6QEvent @ 191 NONAME
+ _ZN16QGraphicsWebView5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 192 NONAME
+ _ZN16QGraphicsWebView6reloadEv @ 193 NONAME
+ _ZN16QGraphicsWebView6setUrlERK4QUrl @ 194 NONAME
+ _ZN16QGraphicsWebView7forwardEv @ 195 NONAME
+ _ZN16QGraphicsWebView7setHtmlERK7QStringRK4QUrl @ 196 NONAME
+ _ZN16QGraphicsWebView7setPageEP8QWebPage @ 197 NONAME
+ _ZN16QGraphicsWebView9dropEventEP27QGraphicsSceneDragDropEvent @ 198 NONAME
+ _ZN16QGraphicsWebViewC1EP13QGraphicsItem @ 199 NONAME
+ _ZN16QGraphicsWebViewC2EP13QGraphicsItem @ 200 NONAME
+ _ZN16QGraphicsWebViewD0Ev @ 201 NONAME
+ _ZN16QGraphicsWebViewD1Ev @ 202 NONAME
+ _ZN16QGraphicsWebViewD2Ev @ 203 NONAME
+ _ZN17QWebHitTestResultC1EP24QWebHitTestResultPrivate @ 204 NONAME
+ _ZN17QWebHitTestResultC1ERKS_ @ 205 NONAME
+ _ZN17QWebHitTestResultC1Ev @ 206 NONAME
+ _ZN17QWebHitTestResultC2EP24QWebHitTestResultPrivate @ 207 NONAME
+ _ZN17QWebHitTestResultC2ERKS_ @ 208 NONAME
+ _ZN17QWebHitTestResultC2Ev @ 209 NONAME
+ _ZN17QWebHitTestResultD1Ev @ 210 NONAME
+ _ZN17QWebHitTestResultD2Ev @ 211 NONAME
+ _ZN17QWebHitTestResultaSERKS_ @ 212 NONAME
+ _ZN17QWebPluginFactory11qt_metacallEN11QMetaObject4CallEiPPv @ 213 NONAME
+ _ZN17QWebPluginFactory11qt_metacastEPKc @ 214 NONAME
+ _ZN17QWebPluginFactory14refreshPluginsEv @ 215 NONAME
+ _ZN17QWebPluginFactory16staticMetaObjectE @ 216 NONAME DATA 16
+ _ZN17QWebPluginFactory19getStaticMetaObjectEv @ 217 NONAME
+ _ZN17QWebPluginFactory9extensionENS_9ExtensionEPKNS_15ExtensionOptionEPNS_15ExtensionReturnE @ 218 NONAME
+ _ZN17QWebPluginFactoryC2EP7QObject @ 219 NONAME
+ _ZN17QWebPluginFactoryD0Ev @ 220 NONAME
+ _ZN17QWebPluginFactoryD1Ev @ 221 NONAME
+ _ZN17QWebPluginFactoryD2Ev @ 222 NONAME
+ _ZN18QWebPluginDatabase11qt_metacallEN11QMetaObject4CallEiPPv @ 223 NONAME
+ _ZN18QWebPluginDatabase11qt_metacastEPKc @ 224 NONAME
+ _ZN18QWebPluginDatabase13addSearchPathERK7QString @ 225 NONAME
+ _ZN18QWebPluginDatabase14setSearchPathsERK11QStringList @ 226 NONAME
+ _ZN18QWebPluginDatabase16staticMetaObjectE @ 227 NONAME DATA 16
+ _ZN18QWebPluginDatabase17pluginForMimeTypeERK7QString @ 228 NONAME
+ _ZN18QWebPluginDatabase18defaultSearchPathsEv @ 229 NONAME
+ _ZN18QWebPluginDatabase19getStaticMetaObjectEv @ 230 NONAME
+ _ZN18QWebPluginDatabase29setPreferredPluginForMimeTypeERK7QStringRK14QWebPluginInfo @ 231 NONAME
+ _ZN18QWebPluginDatabase7refreshEv @ 232 NONAME
+ _ZN18QWebPluginDatabaseC1EP7QObject @ 233 NONAME
+ _ZN18QWebPluginDatabaseC2EP7QObject @ 234 NONAME
+ _ZN18QWebPluginDatabaseD0Ev @ 235 NONAME
+ _ZN18QWebPluginDatabaseD1Ev @ 236 NONAME
+ _ZN18QWebPluginDatabaseD2Ev @ 237 NONAME
+ _ZN18QWebSecurityOrigin10allOriginsEv @ 238 NONAME
+ _ZN18QWebSecurityOrigin12localSchemesEv @ 239 NONAME
+ _ZN18QWebSecurityOrigin14addLocalSchemeERK7QString @ 240 NONAME
+ _ZN18QWebSecurityOrigin16setDatabaseQuotaEx @ 241 NONAME
+ _ZN18QWebSecurityOrigin17removeLocalSchemeERK7QString @ 242 NONAME
+ _ZN18QWebSecurityOrigin25whiteListAccessFromOriginERK7QStringS2_S2_b @ 243 NONAME ABSENT
+ _ZN18QWebSecurityOrigin27resetOriginAccessWhiteListsEv @ 244 NONAME ABSENT
+ _ZN18QWebSecurityOriginC1EP25QWebSecurityOriginPrivate @ 245 NONAME
+ _ZN18QWebSecurityOriginC1ERKS_ @ 246 NONAME
+ _ZN18QWebSecurityOriginC2EP25QWebSecurityOriginPrivate @ 247 NONAME
+ _ZN18QWebSecurityOriginC2ERKS_ @ 248 NONAME
+ _ZN18QWebSecurityOriginD1Ev @ 249 NONAME
+ _ZN18QWebSecurityOriginD2Ev @ 250 NONAME
+ _ZN18QWebSecurityOriginaSERKS_ @ 251 NONAME
+ _ZN20QWebHistoryInterface11qt_metacallEN11QMetaObject4CallEiPPv @ 252 NONAME
+ _ZN20QWebHistoryInterface11qt_metacastEPKc @ 253 NONAME
+ _ZN20QWebHistoryInterface16defaultInterfaceEv @ 254 NONAME
+ _ZN20QWebHistoryInterface16staticMetaObjectE @ 255 NONAME DATA 16
+ _ZN20QWebHistoryInterface19getStaticMetaObjectEv @ 256 NONAME
+ _ZN20QWebHistoryInterface19setDefaultInterfaceEPS_ @ 257 NONAME
+ _ZN20QWebHistoryInterfaceC2EP7QObject @ 258 NONAME
+ _ZN20QWebHistoryInterfaceD0Ev @ 259 NONAME
+ _ZN20QWebHistoryInterfaceD1Ev @ 260 NONAME
+ _ZN20QWebHistoryInterfaceD2Ev @ 261 NONAME
+ _ZN8QWebPage10chooseFileEP9QWebFrameRK7QString @ 262 NONAME
+ _ZN8QWebPage10setPaletteERK8QPalette @ 263 NONAME
+ _ZN8QWebPage11linkClickedERK4QUrl @ 264 NONAME
+ _ZN8QWebPage11linkHoveredERK7QStringS2_S2_ @ 265 NONAME
+ _ZN8QWebPage11loadStartedEv @ 266 NONAME
+ _ZN8QWebPage11qt_metacallEN11QMetaObject4CallEiPPv @ 267 NONAME
+ _ZN8QWebPage11qt_metacastEPKc @ 268 NONAME
+ _ZN8QWebPage12createPluginERK7QStringRK4QUrlRK11QStringListS8_ @ 269 NONAME
+ _ZN8QWebPage12createWindowENS_13WebWindowTypeE @ 270 NONAME
+ _ZN8QWebPage12frameCreatedEP9QWebFrame @ 271 NONAME
+ _ZN8QWebPage12loadFinishedEb @ 272 NONAME
+ _ZN8QWebPage12loadProgressEi @ 273 NONAME
+ _ZN8QWebPage13triggerActionENS_9WebActionEb @ 274 NONAME
+ _ZN8QWebPage14printRequestedEP9QWebFrame @ 275 NONAME
+ _ZN8QWebPage15contentsChangedEv @ 276 NONAME
+ _ZN8QWebPage15javaScriptAlertEP9QWebFrameRK7QString @ 277 NONAME
+ _ZN8QWebPage15scrollRequestedEiiRK5QRect @ 278 NONAME
+ _ZN8QWebPage16javaScriptPromptEP9QWebFrameRK7QStringS4_PS2_ @ 279 NONAME
+ _ZN8QWebPage16repaintRequestedERK5QRect @ 280 NONAME
+ _ZN8QWebPage16selectionChangedEv @ 281 NONAME
+ _ZN8QWebPage16setPluginFactoryEP17QWebPluginFactory @ 282 NONAME
+ _ZN8QWebPage16staticMetaObjectE @ 283 NONAME DATA 16
+ _ZN8QWebPage16statusBarMessageERK7QString @ 284 NONAME
+ _ZN8QWebPage17downloadRequestedERK15QNetworkRequest @ 285 NONAME
+ _ZN8QWebPage17javaScriptConfirmEP9QWebFrameRK7QString @ 286 NONAME
+ _ZN8QWebPage17microFocusChangedEv @ 287 NONAME
+ _ZN8QWebPage18focusNextPrevChildEb @ 288 NONAME
+ _ZN8QWebPage18setContentEditableEb @ 289 NONAME
+ _ZN8QWebPage18unsupportedContentEP13QNetworkReply @ 290 NONAME
+ _ZN8QWebPage19getStaticMetaObjectEv @ 291 NONAME
+ _ZN8QWebPage20windowCloseRequestedEv @ 292 NONAME
+ _ZN8QWebPage21databaseQuotaExceededEP9QWebFrame7QString @ 293 NONAME
+ _ZN8QWebPage21webInspectorTriggeredERK11QWebElement @ 294 NONAME ABSENT
+ _ZN8QWebPage23acceptNavigationRequestEP9QWebFrameRK15QNetworkRequestNS_14NavigationTypeE @ 295 NONAME
+ _ZN8QWebPage23geometryChangeRequestedERK5QRect @ 296 NONAME
+ _ZN8QWebPage23saveFrameStateRequestedEP9QWebFrameP15QWebHistoryItem @ 297 NONAME
+ _ZN8QWebPage23setLinkDelegationPolicyENS_20LinkDelegationPolicyE @ 298 NONAME
+ _ZN8QWebPage23setNetworkAccessManagerEP21QNetworkAccessManager @ 299 NONAME
+ _ZN8QWebPage23swallowContextMenuEventEP17QContextMenuEvent @ 300 NONAME
+ _ZN8QWebPage24javaScriptConsoleMessageERK7QStringiS2_ @ 301 NONAME
+ _ZN8QWebPage25createStandardContextMenuEv @ 302 NONAME
+ _ZN8QWebPage25shouldInterruptJavaScriptEv @ 303 NONAME
+ _ZN8QWebPage26restoreFrameStateRequestedEP9QWebFrame @ 304 NONAME
+ _ZN8QWebPage28setForwardUnsupportedContentEb @ 305 NONAME
+ _ZN8QWebPage30updatePositionDependentActionsERK6QPoint @ 306 NONAME
+ _ZN8QWebPage32menuBarVisibilityChangeRequestedEb @ 307 NONAME
+ _ZN8QWebPage32toolBarVisibilityChangeRequestedEb @ 308 NONAME
+ _ZN8QWebPage34statusBarVisibilityChangeRequestedEb @ 309 NONAME
+ _ZN8QWebPage5eventEP6QEvent @ 310 NONAME
+ _ZN8QWebPage7setViewEP7QWidget @ 311 NONAME
+ _ZN8QWebPage8findTextERK7QString6QFlagsINS_8FindFlagEE @ 312 NONAME
+ _ZN8QWebPage9extensionENS_9ExtensionEPKNS_15ExtensionOptionEPNS_15ExtensionReturnE @ 313 NONAME
+ _ZN8QWebPageC1EP7QObject @ 314 NONAME
+ _ZN8QWebPageC2EP7QObject @ 315 NONAME
+ _ZN8QWebPageD0Ev @ 316 NONAME
+ _ZN8QWebPageD1Ev @ 317 NONAME
+ _ZN8QWebPageD2Ev @ 318 NONAME
+ _ZN8QWebView10paintEventEP11QPaintEvent @ 319 NONAME
+ _ZN8QWebView10setContentERK10QByteArrayRK7QStringRK4QUrl @ 320 NONAME
+ _ZN8QWebView10urlChangedERK4QUrl @ 321 NONAME
+ _ZN8QWebView10wheelEventEP11QWheelEvent @ 322 NONAME
+ _ZN8QWebView11changeEventEP6QEvent @ 323 NONAME
+ _ZN8QWebView11iconChangedEv @ 324 NONAME
+ _ZN8QWebView11linkClickedERK4QUrl @ 325 NONAME
+ _ZN8QWebView11loadStartedEv @ 326 NONAME
+ _ZN8QWebView11qt_metacallEN11QMetaObject4CallEiPPv @ 327 NONAME
+ _ZN8QWebView11qt_metacastEPKc @ 328 NONAME
+ _ZN8QWebView11resizeEventEP12QResizeEvent @ 329 NONAME
+ _ZN8QWebView12createWindowEN8QWebPage13WebWindowTypeE @ 330 NONAME
+ _ZN8QWebView12focusInEventEP11QFocusEvent @ 331 NONAME
+ _ZN8QWebView12loadFinishedEb @ 332 NONAME
+ _ZN8QWebView12loadProgressEi @ 333 NONAME
+ _ZN8QWebView12titleChangedERK7QString @ 334 NONAME
+ _ZN8QWebView13dragMoveEventEP14QDragMoveEvent @ 335 NONAME
+ _ZN8QWebView13focusOutEventEP11QFocusEvent @ 336 NONAME
+ _ZN8QWebView13keyPressEventEP9QKeyEvent @ 337 NONAME
+ _ZN8QWebView13setRenderHintEN8QPainter10RenderHintEb @ 338 NONAME
+ _ZN8QWebView13setZoomFactorEf @ 339 NONAME
+ _ZN8QWebView14dragEnterEventEP15QDragEnterEvent @ 340 NONAME
+ _ZN8QWebView14dragLeaveEventEP15QDragLeaveEvent @ 341 NONAME
+ _ZN8QWebView14mouseMoveEventEP11QMouseEvent @ 342 NONAME
+ _ZN8QWebView14setRenderHintsE6QFlagsIN8QPainter10RenderHintEE @ 343 NONAME
+ _ZN8QWebView15keyReleaseEventEP9QKeyEvent @ 344 NONAME
+ _ZN8QWebView15mousePressEventEP11QMouseEvent @ 345 NONAME
+ _ZN8QWebView16contextMenuEventEP17QContextMenuEvent @ 346 NONAME
+ _ZN8QWebView16inputMethodEventEP17QInputMethodEvent @ 347 NONAME
+ _ZN8QWebView16selectionChangedEv @ 348 NONAME
+ _ZN8QWebView16staticMetaObjectE @ 349 NONAME DATA 16
+ _ZN8QWebView16statusBarMessageERK7QString @ 350 NONAME
+ _ZN8QWebView17mouseReleaseEventEP11QMouseEvent @ 351 NONAME
+ _ZN8QWebView17triggerPageActionEN8QWebPage9WebActionEb @ 352 NONAME
+ _ZN8QWebView18focusNextPrevChildEb @ 353 NONAME
+ _ZN8QWebView18guessUrlFromStringERK7QString @ 354 NONAME ABSENT
+ _ZN8QWebView19getStaticMetaObjectEv @ 355 NONAME
+ _ZN8QWebView21mouseDoubleClickEventEP11QMouseEvent @ 356 NONAME
+ _ZN8QWebView21setTextSizeMultiplierEf @ 357 NONAME
+ _ZN8QWebView4backEv @ 358 NONAME
+ _ZN8QWebView4loadERK15QNetworkRequestN21QNetworkAccessManager9OperationERK10QByteArray @ 359 NONAME
+ _ZN8QWebView4loadERK4QUrl @ 360 NONAME
+ _ZN8QWebView4stopEv @ 361 NONAME
+ _ZN8QWebView5eventEP6QEvent @ 362 NONAME
+ _ZN8QWebView6reloadEv @ 363 NONAME
+ _ZN8QWebView6setUrlERK4QUrl @ 364 NONAME
+ _ZN8QWebView7forwardEv @ 365 NONAME
+ _ZN8QWebView7setHtmlERK7QStringRK4QUrl @ 366 NONAME
+ _ZN8QWebView7setPageEP8QWebPage @ 367 NONAME
+ _ZN8QWebView8findTextERK7QString6QFlagsIN8QWebPage8FindFlagEE @ 368 NONAME
+ _ZN8QWebView9dropEventEP10QDropEvent @ 369 NONAME
+ _ZN8QWebViewC1EP7QWidget @ 370 NONAME
+ _ZN8QWebViewC2EP7QWidget @ 371 NONAME
+ _ZN8QWebViewD0Ev @ 372 NONAME
+ _ZN8QWebViewD1Ev @ 373 NONAME
+ _ZN8QWebViewD2Ev @ 374 NONAME
+ _ZN9QWebFrame10setContentERK10QByteArrayRK7QStringRK4QUrl @ 375 NONAME
+ _ZN9QWebFrame10urlChangedERK4QUrl @ 376 NONAME
+ _ZN9QWebFrame11iconChangedEv @ 377 NONAME
+ _ZN9QWebFrame11loadStartedEv @ 378 NONAME
+ _ZN9QWebFrame11qt_metacallEN11QMetaObject4CallEiPPv @ 379 NONAME
+ _ZN9QWebFrame11qt_metacastEPKc @ 380 NONAME
+ _ZN9QWebFrame12loadFinishedEb @ 381 NONAME
+ _ZN9QWebFrame12titleChangedERK7QString @ 382 NONAME
+ _ZN9QWebFrame13setZoomFactorEf @ 383 NONAME
+ _ZN9QWebFrame15provisionalLoadEv @ 384 NONAME
+ _ZN9QWebFrame16staticMetaObjectE @ 385 NONAME DATA 16
+ _ZN9QWebFrame17setScrollBarValueEN2Qt11OrientationEi @ 386 NONAME
+ _ZN9QWebFrame17setScrollPositionERK6QPoint @ 387 NONAME
+ _ZN9QWebFrame18evaluateJavaScriptERK7QString @ 388 NONAME
+ _ZN9QWebFrame18setScrollBarPolicyEN2Qt11OrientationENS0_15ScrollBarPolicyE @ 389 NONAME
+ _ZN9QWebFrame19contentsSizeChangedERK5QSize @ 390 NONAME
+ _ZN9QWebFrame19getStaticMetaObjectEv @ 391 NONAME
+ _ZN9QWebFrame21setTextSizeMultiplierEf @ 392 NONAME
+ _ZN9QWebFrame22initialLayoutCompletedEv @ 393 NONAME
+ _ZN9QWebFrame23setClipRenderToViewportEb @ 394 NONAME ABSENT
+ _ZN9QWebFrame27addToJavaScriptWindowObjectERK7QStringP7QObject @ 395 NONAME
+ _ZN9QWebFrame27addToJavaScriptWindowObjectERK7QStringP7QObjectN13QScriptEngine14ValueOwnershipE @ 396 NONAME
+ _ZN9QWebFrame29javaScriptWindowObjectClearedEv @ 397 NONAME
+ _ZN9QWebFrame4loadERK15QNetworkRequestN21QNetworkAccessManager9OperationERK10QByteArray @ 398 NONAME
+ _ZN9QWebFrame4loadERK4QUrl @ 399 NONAME
+ _ZN9QWebFrame5eventEP6QEvent @ 400 NONAME
+ _ZN9QWebFrame6renderEP8QPainter @ 401 NONAME
+ _ZN9QWebFrame6renderEP8QPainterRK7QRegion @ 402 NONAME
+ _ZN9QWebFrame6scrollEii @ 403 NONAME
+ _ZN9QWebFrame6setUrlERK4QUrl @ 404 NONAME
+ _ZN9QWebFrame7setHtmlERK7QStringRK4QUrl @ 405 NONAME
+ _ZN9QWebFrame8setFocusEv @ 406 NONAME
+ _ZN9QWebFrameC1EP8QWebPageP13QWebFrameData @ 407 NONAME
+ _ZN9QWebFrameC1EPS_P13QWebFrameData @ 408 NONAME
+ _ZN9QWebFrameC2EP8QWebPageP13QWebFrameData @ 409 NONAME
+ _ZN9QWebFrameC2EPS_P13QWebFrameData @ 410 NONAME
+ _ZN9QWebFrameD0Ev @ 411 NONAME
+ _ZN9QWebFrameD1Ev @ 412 NONAME
+ _ZN9QWebFrameD2Ev @ 413 NONAME
+ _ZNK11QWebElement10firstChildEv @ 414 NONAME
+ _ZNK11QWebElement10toInnerXmlEv @ 415 NONAME
+ _ZNK11QWebElement10toOuterXmlEv @ 416 NONAME
+ _ZNK11QWebElement11attributeNSERK7QStringS2_S2_ @ 417 NONAME
+ _ZNK11QWebElement11nextSiblingEv @ 418 NONAME
+ _ZNK11QWebElement11toPlainTextEv @ 419 NONAME
+ _ZNK11QWebElement12hasAttributeERK7QString @ 420 NONAME
+ _ZNK11QWebElement12namespaceUriEv @ 421 NONAME
+ _ZNK11QWebElement13hasAttributesEv @ 422 NONAME
+ _ZNK11QWebElement13stylePropertyERK7QStringNS_20StyleResolveStrategyE @ 423 NONAME
+ _ZNK11QWebElement14hasAttributeNSERK7QStringS2_ @ 424 NONAME
+ _ZNK11QWebElement15previousSiblingEv @ 425 NONAME
+ _ZNK11QWebElement5cloneEv @ 426 NONAME
+ _ZNK11QWebElement6isNullEv @ 427 NONAME
+ _ZNK11QWebElement6parentEv @ 428 NONAME
+ _ZNK11QWebElement6prefixEv @ 429 NONAME
+ _ZNK11QWebElement7classesEv @ 430 NONAME
+ _ZNK11QWebElement7findAllERK7QString @ 431 NONAME
+ _ZNK11QWebElement7tagNameEv @ 432 NONAME
+ _ZNK11QWebElement8documentEv @ 433 NONAME
+ _ZNK11QWebElement8geometryEv @ 434 NONAME
+ _ZNK11QWebElement8hasClassERK7QString @ 435 NONAME
+ _ZNK11QWebElement8hasFocusEv @ 436 NONAME
+ _ZNK11QWebElement8webFrameEv @ 437 NONAME
+ _ZNK11QWebElement9attributeERK7QStringS2_ @ 438 NONAME
+ _ZNK11QWebElement9findFirstERK7QString @ 439 NONAME
+ _ZNK11QWebElement9lastChildEv @ 440 NONAME
+ _ZNK11QWebElement9localNameEv @ 441 NONAME
+ _ZNK11QWebElementeqERKS_ @ 442 NONAME
+ _ZNK11QWebElementneERKS_ @ 443 NONAME
+ _ZNK11QWebHistory11currentItemEv @ 444 NONAME
+ _ZNK11QWebHistory11forwardItemEv @ 445 NONAME
+ _ZNK11QWebHistory12canGoForwardEv @ 446 NONAME
+ _ZNK11QWebHistory12forwardItemsEi @ 447 NONAME
+ _ZNK11QWebHistory16currentItemIndexEv @ 448 NONAME
+ _ZNK11QWebHistory16maximumItemCountEv @ 449 NONAME
+ _ZNK11QWebHistory5countEv @ 450 NONAME
+ _ZNK11QWebHistory5itemsEv @ 451 NONAME
+ _ZNK11QWebHistory6itemAtEi @ 452 NONAME
+ _ZNK11QWebHistory8backItemEv @ 453 NONAME
+ _ZNK11QWebHistory9backItemsEi @ 454 NONAME
+ _ZNK11QWebHistory9canGoBackEv @ 455 NONAME
+ _ZNK11QWebHistory9saveStateENS_19HistoryStateVersionE @ 456 NONAME ABSENT
+ _ZNK12QWebDatabase11displayNameEv @ 457 NONAME
+ _ZNK12QWebDatabase12expectedSizeEv @ 458 NONAME
+ _ZNK12QWebDatabase4nameEv @ 459 NONAME
+ _ZNK12QWebDatabase4sizeEv @ 460 NONAME
+ _ZNK12QWebDatabase6originEv @ 461 NONAME
+ _ZNK12QWebDatabase8fileNameEv @ 462 NONAME
+ _ZNK12QWebSettings10fontFamilyENS_10FontFamilyE @ 463 NONAME
+ _ZNK12QWebSettings13testAttributeENS_12WebAttributeE @ 464 NONAME
+ _ZNK12QWebSettings16localStoragePathEv @ 465 NONAME
+ _ZNK12QWebSettings17userStyleSheetUrlEv @ 466 NONAME
+ _ZNK12QWebSettings19defaultTextEncodingEv @ 467 NONAME
+ _ZNK12QWebSettings8fontSizeENS_8FontSizeE @ 468 NONAME
+ _ZNK13QWebInspector10metaObjectEv @ 469 NONAME
+ _ZNK13QWebInspector4pageEv @ 470 NONAME
+ _ZNK13QWebInspector8sizeHintEv @ 471 NONAME
+ _ZNK14QWebPluginInfo11descriptionEv @ 472 NONAME
+ _ZNK14QWebPluginInfo16supportsMimeTypeERK7QString @ 473 NONAME
+ _ZNK14QWebPluginInfo4nameEv @ 474 NONAME
+ _ZNK14QWebPluginInfo4pathEv @ 475 NONAME
+ _ZNK14QWebPluginInfo6isNullEv @ 476 NONAME
+ _ZNK14QWebPluginInfo9isEnabledEv @ 477 NONAME
+ _ZNK14QWebPluginInfo9mimeTypesEv @ 478 NONAME
+ _ZNK14QWebPluginInfoeqERKS_ @ 479 NONAME
+ _ZNK14QWebPluginInfoneERKS_ @ 480 NONAME
+ _ZNK15QWebHistoryItem11lastVisitedEv @ 481 NONAME
+ _ZNK15QWebHistoryItem11originalUrlEv @ 482 NONAME
+ _ZNK15QWebHistoryItem3urlEv @ 483 NONAME
+ _ZNK15QWebHistoryItem4iconEv @ 484 NONAME
+ _ZNK15QWebHistoryItem5titleEv @ 485 NONAME
+ _ZNK15QWebHistoryItem7isValidEv @ 486 NONAME
+ _ZNK15QWebHistoryItem8userDataEv @ 487 NONAME
+ _ZNK16QGraphicsWebView10metaObjectEv @ 488 NONAME
+ _ZNK16QGraphicsWebView10zoomFactorEv @ 489 NONAME
+ _ZNK16QGraphicsWebView13isInteractiveEv @ 490 NONAME ABSENT
+ _ZNK16QGraphicsWebView3urlEv @ 491 NONAME
+ _ZNK16QGraphicsWebView4iconEv @ 492 NONAME
+ _ZNK16QGraphicsWebView4pageEv @ 493 NONAME
+ _ZNK16QGraphicsWebView5titleEv @ 494 NONAME
+ _ZNK16QGraphicsWebView6statusEv @ 495 NONAME ABSENT
+ _ZNK16QGraphicsWebView6toHtmlEv @ 496 NONAME ABSENT
+ _ZNK16QGraphicsWebView7historyEv @ 497 NONAME
+ _ZNK16QGraphicsWebView8progressEv @ 498 NONAME ABSENT
+ _ZNK16QGraphicsWebView8settingsEv @ 499 NONAME
+ _ZNK17QWebHitTestResult11linkElementEv @ 500 NONAME
+ _ZNK17QWebHitTestResult12boundingRectEv @ 501 NONAME
+ _ZNK17QWebHitTestResult13alternateTextEv @ 502 NONAME
+ _ZNK17QWebHitTestResult15linkTargetFrameEv @ 503 NONAME
+ _ZNK17QWebHitTestResult17isContentEditableEv @ 504 NONAME
+ _ZNK17QWebHitTestResult17isContentSelectedEv @ 505 NONAME
+ _ZNK17QWebHitTestResult21enclosingBlockElementEv @ 506 NONAME
+ _ZNK17QWebHitTestResult3posEv @ 507 NONAME
+ _ZNK17QWebHitTestResult5frameEv @ 508 NONAME
+ _ZNK17QWebHitTestResult5titleEv @ 509 NONAME
+ _ZNK17QWebHitTestResult6isNullEv @ 510 NONAME
+ _ZNK17QWebHitTestResult6pixmapEv @ 511 NONAME
+ _ZNK17QWebHitTestResult7elementEv @ 512 NONAME
+ _ZNK17QWebHitTestResult7linkUrlEv @ 513 NONAME
+ _ZNK17QWebHitTestResult8imageUrlEv @ 514 NONAME
+ _ZNK17QWebHitTestResult8linkTextEv @ 515 NONAME
+ _ZNK17QWebHitTestResult9linkTitleEv @ 516 NONAME
+ _ZNK17QWebPluginFactory10metaObjectEv @ 517 NONAME
+ _ZNK17QWebPluginFactory17supportsExtensionENS_9ExtensionE @ 518 NONAME
+ _ZNK17QWebPluginFactory8MimeTypeeqERKS0_ @ 519 NONAME
+ _ZNK18QWebPluginDatabase10metaObjectEv @ 520 NONAME
+ _ZNK18QWebPluginDatabase11searchPathsEv @ 521 NONAME
+ _ZNK18QWebPluginDatabase7pluginsEv @ 522 NONAME
+ _ZNK18QWebSecurityOrigin13databaseQuotaEv @ 523 NONAME
+ _ZNK18QWebSecurityOrigin13databaseUsageEv @ 524 NONAME
+ _ZNK18QWebSecurityOrigin4hostEv @ 525 NONAME
+ _ZNK18QWebSecurityOrigin4portEv @ 526 NONAME
+ _ZNK18QWebSecurityOrigin6schemeEv @ 527 NONAME
+ _ZNK18QWebSecurityOrigin9databasesEv @ 528 NONAME
+ _ZNK20QWebHistoryInterface10metaObjectEv @ 529 NONAME
+ _ZNK8QWebPage10isModifiedEv @ 530 NONAME
+ _ZNK8QWebPage10metaObjectEv @ 531 NONAME
+ _ZNK8QWebPage10totalBytesEv @ 532 NONAME
+ _ZNK8QWebPage12currentFrameEv @ 533 NONAME
+ _ZNK8QWebPage12selectedTextEv @ 534 NONAME
+ _ZNK8QWebPage12viewportSizeEv @ 535 NONAME
+ _ZNK8QWebPage13bytesReceivedEv @ 536 NONAME
+ _ZNK8QWebPage13pluginFactoryEv @ 537 NONAME
+ _ZNK8QWebPage15setViewportSizeERK5QSize @ 538 NONAME
+ _ZNK8QWebPage15userAgentForUrlERK4QUrl @ 539 NONAME
+ _ZNK8QWebPage16inputMethodQueryEN2Qt16InputMethodQueryE @ 540 NONAME
+ _ZNK8QWebPage17fixedContentsSizeEv @ 541 NONAME ABSENT
+ _ZNK8QWebPage17isContentEditableEv @ 542 NONAME
+ _ZNK8QWebPage17supportsExtensionENS_9ExtensionE @ 543 NONAME
+ _ZNK8QWebPage20linkDelegationPolicyEv @ 544 NONAME
+ _ZNK8QWebPage20networkAccessManagerEv @ 545 NONAME
+ _ZNK8QWebPage20setFixedContentsSizeERK5QSize @ 546 NONAME ABSENT
+ _ZNK8QWebPage25forwardUnsupportedContentEv @ 547 NONAME
+ _ZNK8QWebPage4viewEv @ 548 NONAME
+ _ZNK8QWebPage6actionENS_9WebActionE @ 549 NONAME
+ _ZNK8QWebPage7frameAtERK6QPoint @ 550 NONAME
+ _ZNK8QWebPage7historyEv @ 551 NONAME
+ _ZNK8QWebPage7paletteEv @ 552 NONAME
+ _ZNK8QWebPage8settingsEv @ 553 NONAME
+ _ZNK8QWebPage9mainFrameEv @ 554 NONAME
+ _ZNK8QWebPage9undoStackEv @ 555 NONAME
+ _ZNK8QWebView10isModifiedEv @ 556 NONAME
+ _ZNK8QWebView10metaObjectEv @ 557 NONAME
+ _ZNK8QWebView10pageActionEN8QWebPage9WebActionE @ 558 NONAME
+ _ZNK8QWebView10zoomFactorEv @ 559 NONAME
+ _ZNK8QWebView11renderHintsEv @ 560 NONAME
+ _ZNK8QWebView12selectedTextEv @ 561 NONAME
+ _ZNK8QWebView16inputMethodQueryEN2Qt16InputMethodQueryE @ 562 NONAME
+ _ZNK8QWebView18textSizeMultiplierEv @ 563 NONAME
+ _ZNK8QWebView3urlEv @ 564 NONAME
+ _ZNK8QWebView4iconEv @ 565 NONAME
+ _ZNK8QWebView4pageEv @ 566 NONAME
+ _ZNK8QWebView5printEP8QPrinter @ 567 NONAME
+ _ZNK8QWebView5titleEv @ 568 NONAME
+ _ZNK8QWebView7historyEv @ 569 NONAME
+ _ZNK8QWebView8settingsEv @ 570 NONAME
+ _ZNK8QWebView8sizeHintEv @ 571 NONAME
+ _ZNK9QWebFrame10metaObjectEv @ 572 NONAME
+ _ZNK9QWebFrame10zoomFactorEv @ 573 NONAME
+ _ZNK9QWebFrame11childFramesEv @ 574 NONAME
+ _ZNK9QWebFrame11parentFrameEv @ 575 NONAME
+ _ZNK9QWebFrame11toPlainTextEv @ 576 NONAME
+ _ZNK9QWebFrame12contentsSizeEv @ 577 NONAME
+ _ZNK9QWebFrame12requestedUrlEv @ 578 NONAME
+ _ZNK9QWebFrame14hitTestContentERK6QPoint @ 579 NONAME
+ _ZNK9QWebFrame14renderTreeDumpEv @ 580 NONAME
+ _ZNK9QWebFrame14scrollBarValueEN2Qt11OrientationE @ 581 NONAME
+ _ZNK9QWebFrame14scrollPositionEv @ 582 NONAME
+ _ZNK9QWebFrame14securityOriginEv @ 583 NONAME
+ _ZNK9QWebFrame15documentElementEv @ 584 NONAME
+ _ZNK9QWebFrame15findAllElementsERK7QString @ 585 NONAME
+ _ZNK9QWebFrame15scrollBarPolicyEN2Qt11OrientationE @ 586 NONAME
+ _ZNK9QWebFrame16findFirstElementERK7QString @ 587 NONAME
+ _ZNK9QWebFrame16scrollBarMaximumEN2Qt11OrientationE @ 588 NONAME
+ _ZNK9QWebFrame16scrollBarMinimumEN2Qt11OrientationE @ 589 NONAME
+ _ZNK9QWebFrame17scrollBarGeometryEN2Qt11OrientationE @ 590 NONAME
+ _ZNK9QWebFrame18textSizeMultiplierEv @ 591 NONAME
+ _ZNK9QWebFrame20clipRenderToViewportEv @ 592 NONAME ABSENT
+ _ZNK9QWebFrame3posEv @ 593 NONAME
+ _ZNK9QWebFrame3urlEv @ 594 NONAME
+ _ZNK9QWebFrame4iconEv @ 595 NONAME
+ _ZNK9QWebFrame4pageEv @ 596 NONAME
+ _ZNK9QWebFrame5titleEv @ 597 NONAME
+ _ZNK9QWebFrame6toHtmlEv @ 598 NONAME
+ _ZNK9QWebFrame7baseUrlEv @ 599 NONAME
+ _ZNK9QWebFrame8geometryEv @ 600 NONAME
+ _ZNK9QWebFrame8hasFocusEv @ 601 NONAME
+ _ZNK9QWebFrame8metaDataEv @ 602 NONAME
+ _ZNK9QWebFrame9frameNameEv @ 603 NONAME
+ _ZTI13QWebInspector @ 604 NONAME
+ _ZTI16QGraphicsWebView @ 605 NONAME
+ _ZTI17QWebPluginFactory @ 606 NONAME
+ _ZTI18QWebPluginDatabase @ 607 NONAME
+ _ZTI20QWebHistoryInterface @ 608 NONAME
+ _ZTI8QWebPage @ 609 NONAME
+ _ZTI8QWebView @ 610 NONAME
+ _ZTI9QWebFrame @ 611 NONAME
+ _ZTV13QWebInspector @ 612 NONAME
+ _ZTV16QGraphicsWebView @ 613 NONAME
+ _ZTV17QWebPluginFactory @ 614 NONAME
+ _ZTV18QWebPluginDatabase @ 615 NONAME
+ _ZTV20QWebHistoryInterface @ 616 NONAME
+ _ZTV8QWebPage @ 617 NONAME
+ _ZTV8QWebView @ 618 NONAME
+ _ZTV9QWebFrame @ 619 NONAME
+ _ZThn16_N16QGraphicsWebView11setGeometryERK6QRectF @ 620 NONAME
+ _ZThn16_N16QGraphicsWebView14updateGeometryEv @ 621 NONAME
+ _ZThn16_N16QGraphicsWebViewD0Ev @ 622 NONAME
+ _ZThn16_N16QGraphicsWebViewD1Ev @ 623 NONAME
+ _ZThn8_N13QWebInspectorD0Ev @ 624 NONAME
+ _ZThn8_N13QWebInspectorD1Ev @ 625 NONAME
+ _ZThn8_N16QGraphicsWebView10sceneEventEP6QEvent @ 626 NONAME
+ _ZThn8_N16QGraphicsWebView10wheelEventEP24QGraphicsSceneWheelEvent @ 627 NONAME
+ _ZThn8_N16QGraphicsWebView12focusInEventEP11QFocusEvent @ 628 NONAME
+ _ZThn8_N16QGraphicsWebView13dragMoveEventEP27QGraphicsSceneDragDropEvent @ 629 NONAME
+ _ZThn8_N16QGraphicsWebView13focusOutEventEP11QFocusEvent @ 630 NONAME
+ _ZThn8_N16QGraphicsWebView13keyPressEventEP9QKeyEvent @ 631 NONAME
+ _ZThn8_N16QGraphicsWebView14dragEnterEventEP27QGraphicsSceneDragDropEvent @ 632 NONAME
+ _ZThn8_N16QGraphicsWebView14dragLeaveEventEP27QGraphicsSceneDragDropEvent @ 633 NONAME
+ _ZThn8_N16QGraphicsWebView14hoverMoveEventEP24QGraphicsSceneHoverEvent @ 634 NONAME
+ _ZThn8_N16QGraphicsWebView14mouseMoveEventEP24QGraphicsSceneMouseEvent @ 635 NONAME
+ _ZThn8_N16QGraphicsWebView15hoverLeaveEventEP24QGraphicsSceneHoverEvent @ 636 NONAME
+ _ZThn8_N16QGraphicsWebView15keyReleaseEventEP9QKeyEvent @ 637 NONAME
+ _ZThn8_N16QGraphicsWebView15mousePressEventEP24QGraphicsSceneMouseEvent @ 638 NONAME
+ _ZThn8_N16QGraphicsWebView16contextMenuEventEP30QGraphicsSceneContextMenuEvent @ 639 NONAME
+ _ZThn8_N16QGraphicsWebView16inputMethodEventEP17QInputMethodEvent @ 640 NONAME
+ _ZThn8_N16QGraphicsWebView17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 641 NONAME
+ _ZThn8_N16QGraphicsWebView21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent @ 642 NONAME
+ _ZThn8_N16QGraphicsWebView5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 643 NONAME
+ _ZThn8_N16QGraphicsWebView9dropEventEP27QGraphicsSceneDragDropEvent @ 644 NONAME
+ _ZThn8_N16QGraphicsWebViewD0Ev @ 645 NONAME
+ _ZThn8_N16QGraphicsWebViewD1Ev @ 646 NONAME
+ _ZThn8_N8QWebViewD0Ev @ 647 NONAME
+ _ZThn8_N8QWebViewD1Ev @ 648 NONAME
+ _ZlsR11QDataStreamRK11QWebHistory @ 649 NONAME
+ _ZrsR11QDataStreamR11QWebHistory @ 650 NONAME
+ _Z32qt_drt_whiteListAccessFromOriginRK7QStringS1_S1_b @ 651 NONAME
+ _Z33qt_drt_counterValueForElementByIdP9QWebFrameRK7QString @ 652 NONAME ABSENT
+ _Z34qt_drt_resetOriginAccessWhiteListsv @ 653 NONAME
+ _ZN11QWebElement17removeAllChildrenEv @ 654 NONAME
+ _ZN11QWebElement6renderEP8QPainter @ 655 NONAME
+ _ZN12QWebSettings30setPrintingMaximumShrinkFactorEf @ 656 NONAME ABSENT
+ _ZN12QWebSettings30setPrintingMinimumShrinkFactorEf @ 657 NONAME ABSENT
+ _ZN16QGraphicsWebView10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant @ 658 NONAME
+ _ZN16QGraphicsWebView11linkClickedERK4QUrl @ 659 NONAME
+ _ZN16QGraphicsWebView12loadFinishedEb @ 660 NONAME
+ _ZN16QGraphicsWebView12loadProgressEi @ 661 NONAME
+ _ZN16QGraphicsWebView16statusBarMessageERK7QString @ 662 NONAME
+ _ZN16QGraphicsWebView17triggerPageActionEN8QWebPage9WebActionEb @ 663 NONAME
+ _ZN16QGraphicsWebView8findTextERK7QString6QFlagsIN8QWebPage8FindFlagEE @ 664 NONAME
+ _ZN21QWebElementCollection6appendERKS_ @ 665 NONAME
+ _ZN21QWebElementCollectionC1ERK11QWebElementRK7QString @ 666 NONAME
+ _ZN21QWebElementCollectionC1ERKS_ @ 667 NONAME
+ _ZN21QWebElementCollectionC1Ev @ 668 NONAME
+ _ZN21QWebElementCollectionC2ERK11QWebElementRK7QString @ 669 NONAME
+ _ZN21QWebElementCollectionC2ERKS_ @ 670 NONAME
+ _ZN21QWebElementCollectionC2Ev @ 671 NONAME
+ _ZN21QWebElementCollectionD1Ev @ 672 NONAME
+ _ZN21QWebElementCollectionD2Ev @ 673 NONAME
+ _ZN21QWebElementCollectionaSERKS_ @ 674 NONAME
+ _ZN9QWebFrame6renderEP8QPainterNS_11RenderLayerERK7QRegion @ 675 NONAME
+ _ZNK12QWebSettings27printingMaximumShrinkFactorEv @ 676 NONAME ABSENT
+ _ZNK12QWebSettings27printingMinimumShrinkFactorEv @ 677 NONAME ABSENT
+ _ZNK16QGraphicsWebView10isModifiedEv @ 678 NONAME
+ _ZNK16QGraphicsWebView10pageActionEN8QWebPage9WebActionE @ 679 NONAME
+ _ZNK16QGraphicsWebView16inputMethodQueryEN2Qt16InputMethodQueryE @ 680 NONAME
+ _ZNK16QGraphicsWebView8sizeHintEN2Qt8SizeHintERK6QSizeF @ 681 NONAME
+ _ZNK21QWebElementCollection2atEi @ 682 NONAME
+ _ZNK21QWebElementCollection5countEv @ 683 NONAME
+ _ZNK21QWebElementCollection6toListEv @ 684 NONAME
+ _ZNK21QWebElementCollectionplERKS_ @ 685 NONAME
+ _ZNK8QWebPage21preferredContentsSizeEv @ 686 NONAME
+ _ZNK8QWebPage24setPreferredContentsSizeERK5QSize @ 687 NONAME
+ _ZThn16_NK16QGraphicsWebView8sizeHintEN2Qt8SizeHintERK6QSizeF @ 688 NONAME
+ _ZThn8_N16QGraphicsWebView10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant @ 689 NONAME
+ _ZThn8_NK16QGraphicsWebView16inputMethodQueryEN2Qt16InputMethodQueryE @ 690 NONAME
+ _ZNK11QWebElement14attributeNamesERK7QString @ 691 NONAME
+ _Z23qt_networkAccessAllowedb @ 692 NONAME
+ _Z25qt_resumeActiveDOMObjectsP9QWebFrame @ 693 NONAME
+ _Z26qt_suspendActiveDOMObjectsP9QWebFrame @ 694 NONAME
+ _Z35qtwebkit_webframe_scrollRecursivelyP9QWebFrameii @ 695 NONAME ABSENT
+ _Z35qtwebkit_webframe_scrollRecursivelyP9QWebFrameiiRK6QPoint @ 696 NONAME
+ _ZN9QWebFrame17scrollRecursivelyEii @ 697 NONAME ABSENT
+ _ZN16QGraphicsWebView20setResizesToContentsEb @ 698 NONAME
+ _ZNK16QGraphicsWebView17resizesToContentsEv @ 699 NONAME
+ _Z20qt_drt_numberOfPagesP9QWebFrameff @ 700 NONAME ABSENT
+ _Z24qt_drt_pauseSVGAnimationP9QWebFrameRK7QStringdS3_ @ 701 NONAME ABSENT
+ _Z24qt_drt_webinspector_showP8QWebPage @ 702 NONAME ABSENT
+ _Z24qt_drt_workerThreadCountv @ 703 NONAME ABSENT
+ _Z25qt_drt_hasDocumentElementP9QWebFrame @ 704 NONAME ABSENT
+ _Z25qt_drt_webinspector_closeP8QWebPage @ 705 NONAME ABSENT
+ _Z31qt_drt_pageNumberForElementByIdP9QWebFrameRK7QStringff @ 706 NONAME ABSENT
+ _Z33qt_drt_webinspector_executeScriptP8QWebPagelRK7QString @ 707 NONAME ABSENT
+ _Z34qt_drt_setTimelineProfilingEnabledP8QWebPageb @ 708 NONAME ABSENT
+ _Z32qt_drt_setFrameFlatteningEnabledP8QWebPageb @ 709 NONAME ABSENT
+ _Z36qt_drt_evaluateScriptInIsolatedWorldP9QWebFrameiRK7QString @ 710 NONAME ABSENT
+ _Z47qt_drt_setDomainRelaxationForbiddenForURLSchemebRK7QString @ 711 NONAME ABSENT
+ _ZN9QWebFrame11pageChangedEv @ 712 NONAME
+ _ZN9QWebFrame14scrollToAnchorERK7QString @ 713 NONAME
+ _ZN12QWebSettings15setInspectorUrlERK4QUrl @ 714 NONAME ABSENT
+ _ZN13QWebInspector10closeEventEP11QCloseEvent @ 715 NONAME
+ _ZN16QGraphicsWebView26setTiledBackingStoreFrozenEb @ 716 NONAME
+ _ZNK16QGraphicsWebView25isTiledBackingStoreFrozenEv @ 717 NONAME
+ _Z18qt_wrt_setViewModeP8QWebPageRK7QString @ 718 NONAME ABSENT
+ _Z19qt_drt_setMediaTypeP9QWebFrameRK7QString @ 719 NONAME ABSENT
+ _Z26qt_drt_enableCaretBrowsingP8QWebPageb @ 720 NONAME ABSENT
+ _ZNK12QWebSettings12inspectorUrlEv @ 721 NONAME ABSENT
+ _ZN23DumpRenderTreeSupportQt19webPageSetGroupNameEP8QWebPageRK7QString @ 722 NONAME
+ _ZN23DumpRenderTreeSupportQt16webPageGroupNameEP8QWebPage @ 723 NONAME
+ _ZN23DumpRenderTreeSupportQt23garbageCollectorCollectEv @ 724 NONAME
+ _Z32qtwebkit_webframe_scrollOverflowP9QWebFrameiiRK6QPoint @ 725 NONAME
+ _ZN23DumpRenderTreeSupportQt12setMediaTypeEP9QWebFrameRK7QString @ 726 NONAME
+ _ZN23DumpRenderTreeSupportQt13numberOfPagesEP9QWebFrameff @ 727 NONAME
+ _ZN23DumpRenderTreeSupportQt13selectedRangeEP8QWebPage @ 728 NONAME
+ _ZN23DumpRenderTreeSupportQt14clearFrameNameEP9QWebFrame @ 729 NONAME
+ _ZN23DumpRenderTreeSupportQt14pauseAnimationEP9QWebFrameRK7QStringdS4_ @ 730 NONAME
+ _ZN23DumpRenderTreeSupportQt15dumpFrameLoaderEb @ 731 NONAME
+ _ZN23DumpRenderTreeSupportQt16dumpNotificationEb @ 732 NONAME
+ _ZN23DumpRenderTreeSupportQt16isCommandEnabledEP8QWebPageRK7QString @ 733 NONAME
+ _ZN23DumpRenderTreeSupportQt16webInspectorShowEP8QWebPage @ 734 NONAME
+ _ZN23DumpRenderTreeSupportQt17pauseSVGAnimationEP9QWebFrameRK7QStringdS4_ @ 735 NONAME
+ _ZN23DumpRenderTreeSupportQt17webInspectorCloseEP8QWebPage @ 736 NONAME
+ _ZN23DumpRenderTreeSupportQt17workerThreadCountEv @ 737 NONAME
+ _ZN23DumpRenderTreeSupportQt18hasDocumentElementEP9QWebFrame @ 738 NONAME
+ _ZN23DumpRenderTreeSupportQt20dumpEditingCallbacksEb @ 739 NONAME
+ _ZN23DumpRenderTreeSupportQt21markerTextForListItemERK11QWebElement @ 740 NONAME
+ _ZN23DumpRenderTreeSupportQt22javaScriptObjectsCountEv @ 741 NONAME
+ _ZN23DumpRenderTreeSupportQt23setCaretBrowsingEnabledEP8QWebPageb @ 742 NONAME
+ _ZN23DumpRenderTreeSupportQt24executeCoreCommandByNameEP8QWebPageRK7QStringS4_ @ 743 NONAME
+ _ZN23DumpRenderTreeSupportQt21dumpSetAcceptsEditingEb @ 744 NONAME
+ _ZN23DumpRenderTreeSupportQt22resumeActiveDOMObjectsEP9QWebFrame @ 745 NONAME
+ _ZN23DumpRenderTreeSupportQt23suspendActiveDOMObjectsEP9QWebFrame @ 746 NONAME
+ _ZN23DumpRenderTreeSupportQt24numberOfActiveAnimationsEP9QWebFrame @ 747 NONAME
+ _ZN23DumpRenderTreeSupportQt24pageNumberForElementByIdEP9QWebFrameRK7QStringff @ 748 NONAME
+ _ZN23DumpRenderTreeSupportQt25dumpResourceLoadCallbacksEb @ 749 NONAME
+ _ZN23DumpRenderTreeSupportQt25pauseTransitionOfPropertyEP9QWebFrameRK7QStringdS4_ @ 750 NONAME
+ _ZN23DumpRenderTreeSupportQt25setFrameFlatteningEnabledEP8QWebPageb @ 751 NONAME
+ _ZN23DumpRenderTreeSupportQt25webInspectorExecuteScriptEP8QWebPagelRK7QString @ 752 NONAME
+ _ZN23DumpRenderTreeSupportQt25whiteListAccessFromOriginERK7QStringS2_S2_b @ 753 NONAME
+ _ZN23DumpRenderTreeSupportQt26counterValueForElementByIdEP9QWebFrameRK7QString @ 754 NONAME
+ _ZN23DumpRenderTreeSupportQt26firstRectForCharacterRangeEP8QWebPageii @ 755 NONAME
+ _ZN23DumpRenderTreeSupportQt26overwritePluginDirectoriesEv @ 756 NONAME
+ _ZN23DumpRenderTreeSupportQt27resetOriginAccessWhiteListsEv @ 757 NONAME
+ _ZN23DumpRenderTreeSupportQt27setSmartInsertDeleteEnabledEP8QWebPageb @ 758 NONAME
+ _ZN23DumpRenderTreeSupportQt27setTimelineProfilingEnabledEP8QWebPageb @ 759 NONAME
+ _ZN23DumpRenderTreeSupportQt28setDumpRenderTreeModeEnabledEb @ 760 NONAME
+ _ZN23DumpRenderTreeSupportQt29dumpResourceLoadCallbacksPathERK7QString @ 761 NONAME
+ _ZN23DumpRenderTreeSupportQt29evaluateScriptInIsolatedWorldEP9QWebFrameiRK7QString @ 762 NONAME
+ _ZN23DumpRenderTreeSupportQt29setJavaScriptProfilingEnabledEP9QWebFrameb @ 763 NONAME
+ _ZN23DumpRenderTreeSupportQt29setWillSendRequestReturnsNullEb @ 764 NONAME
+ _ZN23DumpRenderTreeSupportQt30setWillSendRequestClearHeadersERK11QStringList @ 765 NONAME
+ _ZN23DumpRenderTreeSupportQt33computedStyleIncludingVisitedInfoERK11QWebElement @ 766 NONAME
+ _ZN23DumpRenderTreeSupportQt34setSelectTrailingWhitespaceEnabledEP8QWebPageb @ 767 NONAME
+ _ZN23DumpRenderTreeSupportQt39elementDoesAutoCompleteForElementWithIdEP9QWebFrameRK7QString @ 768 NONAME
+ _ZN23DumpRenderTreeSupportQt39setWillSendRequestReturnsNullOnRedirectEb @ 769 NONAME
+ _ZN23DumpRenderTreeSupportQt40garbageCollectorCollectOnAlternateThreadEb @ 770 NONAME
+ _ZN23DumpRenderTreeSupportQt40setDomainRelaxationForbiddenForURLSchemeEbRK7QString @ 771 NONAME
+ _ZN23DumpRenderTreeSupportQt18setEditingBehaviorEP8QWebPageRK7QString @ 772 NONAME
+ _ZN23DumpRenderTreeSupportQt24setNotificationsReceiverEP7QObject @ 773 NONAME ABSENT
+ _ZN23DumpRenderTreeSupportQt26allowNotificationForOriginERK7QString @ 774 NONAME ABSENT
+ _ZN23DumpRenderTreeSupportQt26setCheckPermissionFunctionEPFvP7QObjectRK4QUrlR22NotificationPermissionE @ 775 NONAME ABSENT
+ _ZN23DumpRenderTreeSupportQt28setRequestPermissionFunctionEPFvP7QObjectRK7QStringE @ 776 NONAME ABSENT
+ _ZN23DumpRenderTreeSupportQt31removeWhiteListAccessFromOriginERK7QStringS2_S2_b @ 777 NONAME
+ _ZN23DumpRenderTreeSupportQt11shouldCloseEP9QWebFrame @ 778 NONAME
+ _ZN23DumpRenderTreeSupportQt12isTargetItemERK15QWebHistoryItem @ 779 NONAME
+ _ZN23DumpRenderTreeSupportQt17historyItemTargetERK15QWebHistoryItem @ 780 NONAME
+ _ZN23DumpRenderTreeSupportQt20getChildHistoryItemsERK15QWebHistoryItem @ 781 NONAME
+ _ZN23DumpRenderTreeSupportQt23setMockGeolocationErrorEiRK7QString @ 782 NONAME
+ _ZN23DumpRenderTreeSupportQt26setMockGeolocationPositionEddd @ 783 NONAME
+ _ZN23DumpRenderTreeSupportQt17clearScriptWorldsEv @ 784 NONAME
+ _ZN23DumpRenderTreeSupportQt23setCustomPolicyDelegateEbb @ 785 NONAME
+ _ZN15QWebScriptWorldC1ERKS_ @ 786 NONAME
+ _ZN15QWebScriptWorldC1Ev @ 787 NONAME
+ _ZN15QWebScriptWorldC2ERKS_ @ 788 NONAME
+ _ZN15QWebScriptWorldC2Ev @ 789 NONAME
+ _ZN15QWebScriptWorldD1Ev @ 790 NONAME
+ _ZN15QWebScriptWorldD2Ev @ 791 NONAME
+ _ZN15QWebScriptWorldaSERKS_ @ 792 NONAME
+ _ZN23DumpRenderTreeSupportQt29dumpResourceResponseMIMETypesEb @ 793 NONAME
+ _ZN23DumpRenderTreeSupportQtC1Ev @ 794 NONAME
+ _ZN23DumpRenderTreeSupportQtC2Ev @ 795 NONAME
+ _ZN23DumpRenderTreeSupportQtD1Ev @ 796 NONAME
+ _ZN23DumpRenderTreeSupportQtD2Ev @ 797 NONAME
+ _ZN8QWebPage23allowGeolocationRequestEP9QWebFrame @ 798 NONAME ABSENT
+ _ZN8QWebPage23viewportChangeRequestedERKNS_13ViewportHintsE @ 799 NONAME ABSENT
+ _ZNK15QWebScriptWorld5worldEv @ 800 NONAME
+ _ZN16QGraphicsWebView13setDeviceSizeERK5QSize @ 801 NONAME ABSENT
+ _ZN23DumpRenderTreeSupportQt12pagePropertyEP9QWebFrameRK7QStringi @ 802 NONAME
+ _ZN23DumpRenderTreeSupportQt16isPageBoxVisibleEP9QWebFramei @ 803 NONAME
+ _ZN23DumpRenderTreeSupportQt16resumeAnimationsEP9QWebFrame @ 804 NONAME
+ _ZN23DumpRenderTreeSupportQt17addUserStyleSheetEP8QWebPageRK7QString @ 805 NONAME
+ _ZN23DumpRenderTreeSupportQt17suspendAnimationsEP9QWebFrame @ 806 NONAME
+ _ZN23DumpRenderTreeSupportQt26pageSizeAndMarginsInPixelsEP9QWebFrameiiiiiii @ 807 NONAME
+ _ZN23DumpRenderTreeSupportQt28setDeferMainResourceDataLoadEb @ 808 NONAME
+ _ZN8QWebPage17setUserPermissionEP9QWebFrameNS_16PermissionDomainENS_16PermissionPolicyE @ 809 NONAME ABSENT
+ _ZN8QWebPage23checkPermissionFromUserEP9QWebFrameNS_16PermissionDomainERNS_16PermissionPolicyE @ 810 NONAME ABSENT
+ _ZN8QWebPage25requestPermissionFromUserEP9QWebFrameNS_16PermissionDomainE @ 811 NONAME ABSENT
+ _ZN8QWebPage27cancelRequestsForPermissionEP9QWebFrameNS_16PermissionDomainE @ 812 NONAME ABSENT
+ _ZNK16QGraphicsWebView10deviceSizeEv @ 813 NONAME ABSENT
+ _ZN23DumpRenderTreeSupportQt14viewportAsTextEP8QWebPageRK5QSize @ 814 NONAME
+ _ZN23DumpRenderTreeSupportQt32simulateDesktopNotificationClickERK7QString @ 815 NONAME
+ _ZN8QWebPage23viewportChangeRequestedEv @ 816 NONAME
+ _ZNK8QWebPage28viewportConfigurationForSizeERK5QSize @ 817 NONAME ABSENT
+ _ZN23DumpRenderTreeSupportQt20dumpHistoryCallbacksEb @ 818 NONAME
+ _ZN23DumpRenderTreeSupportQt25dumpVisitedLinksCallbacksEb @ 819 NONAME
+ _ZN23DumpRenderTreeSupportQt9plainTextERK8QVariant @ 820 NONAME
+ _ZNK8QWebPage25viewportAttributesForSizeERK5QSize @ 821 NONAME
+ _ZN8QWebPage18ViewportAttributesC1ERKS0_ @ 822 NONAME
+ _ZN8QWebPage18ViewportAttributesC1Ev @ 823 NONAME
+ _ZN8QWebPage18ViewportAttributesC2ERKS0_ @ 824 NONAME
+ _ZN8QWebPage18ViewportAttributesC2Ev @ 825 NONAME
+ _ZN8QWebPage18ViewportAttributesD1Ev @ 826 NONAME
+ _ZN8QWebPage18ViewportAttributesD2Ev @ 827 NONAME
+ _ZN8QWebPage18ViewportAttributesaSERKS0_ @ 828 NONAME
+ _ZN23DumpRenderTreeSupportQt13nodesFromRectERK11QWebElementiijjjjb @ 829 NONAME
+ _ZN23DumpRenderTreeSupportQt28dumpUserGestureInFrameLoaderEb @ 830 NONAME
+ _ZNK8QWebPage19supportsContentTypeERK7QString @ 831 NONAME
+ _ZNK8QWebPage21supportedContentTypesEv @ 832 NONAME
+ _ZNK8QWebPage27setActualVisibleContentRectERK5QRect @ 833 NONAME
+ _ZN8QWebPage20setFeaturePermissionEP9QWebFrameNS_7FeatureENS_16PermissionPolicyE @ 834 NONAME
+ _ZN8QWebPage26featurePermissionRequestedEP9QWebFrameNS_7FeatureE @ 835 NONAME
+ _ZN8QWebPage32featurePermissionRequestCanceledEP9QWebFrameNS_7FeatureE @ 836 NONAME
+
diff --git a/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp b/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp index 9bd255f..88816e8 100644 --- a/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp +++ b/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp @@ -71,6 +71,7 @@ private slots: void lastChildPreviousSibling(); void hasSetFocus(); void render(); + void addElementToHead(); private: QWebView* m_view; @@ -1013,5 +1014,15 @@ void tst_QWebElement::render() QVERIFY(image3 == image4); } +void tst_QWebElement::addElementToHead() +{ + m_mainFrame->setHtml("<html><head></head><body></body></html>"); + QWebElement head = m_mainFrame->findFirstElement("head"); + QVERIFY(!head.isNull()); + QString append = "<script type=\"text/javascript\">var t = 0;</script>"; + head.appendInside(append); + QCOMPARE(head.toInnerXml(), append); +} + QTEST_MAIN(tst_QWebElement) #include "tst_qwebelement.moc" diff --git a/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp b/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp index 2f07f5b..eb3ae0a 100644 --- a/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp +++ b/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp @@ -1566,26 +1566,26 @@ void tst_QWebFrame::connectAndDisconnect() QString type; QString ret = evalJS("(function() { }).connect()", type); QCOMPARE(type, sError); - QCOMPARE(ret, QLatin1String("TypeError: 'undefined' is not a function (evaluating '(function() { }).connect()')")); + QCOMPARE(ret, QLatin1String("TypeError: 'undefined' is not a function")); } { QString type; QString ret = evalJS("var o = { }; o.connect = Function.prototype.connect; o.connect()", type); QCOMPARE(type, sError); - QCOMPARE(ret, QLatin1String("TypeError: 'undefined' is not a function (evaluating 'o.connect()')")); + QCOMPARE(ret, QLatin1String("TypeError: 'undefined' is not a function")); } { QString type; QString ret = evalJS("(function() { }).connect(123)", type); QCOMPARE(type, sError); - QCOMPARE(ret, QLatin1String("TypeError: 'undefined' is not a function (evaluating '(function() { }).connect(123)')")); + QCOMPARE(ret, QLatin1String("TypeError: 'undefined' is not a function")); } { QString type; QString ret = evalJS("var o = { }; o.connect = Function.prototype.connect; o.connect(123)", type); QCOMPARE(type, sError); - QCOMPARE(ret, QLatin1String("TypeError: 'undefined' is not a function (evaluating 'o.connect(123)')")); + QCOMPARE(ret, QLatin1String("TypeError: 'undefined' is not a function")); } { diff --git a/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp b/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp index e6b5909..c27ba02 100644 --- a/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp +++ b/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp @@ -220,12 +220,12 @@ public slots: bool shouldInterruptJavaScript() { return true; } - void requestPermission(QWebFrame* frame, QWebPage::PermissionDomain domain) + void requestPermission(QWebFrame* frame, QWebPage::Feature feature) { if (m_allowGeolocation) - setUserPermission(frame, domain, PermissionGranted); + setFeaturePermission(frame, feature, PermissionGrantedByUser); else - setUserPermission(frame, domain, PermissionDenied); + setFeaturePermission(frame, feature, PermissionDeniedByUser); } public: @@ -256,8 +256,8 @@ void tst_QWebPage::geolocationRequestJS() QSKIP("Test disabled as long as geolocation is disabled from the build.", SkipSingle); JSTestPage* newPage = new JSTestPage(m_view); - connect(newPage, SIGNAL(requestPermissionFromUser(QWebFrame*, QWebPage::PermissionDomain)), - newPage, SLOT(requestPermission(QWebFrame*, QWebPage::PermissionDomain))); + connect(newPage, SIGNAL(requestPermissionFromUser(QWebFrame*, QWebPage::Feature)), + newPage, SLOT(requestPermission(QWebFrame*, QWebPage::Feature))); newPage->setGeolocationPermission(false); m_view->setPage(newPage); @@ -1568,6 +1568,20 @@ void tst_QWebPage::inputMethods() page->event(&evpres); page->event(&evrel); + { + QList<QInputMethodEvent::Attribute> attributes; + QInputMethodEvent event(QString(), attributes); + event.setCommitString("XXX", 0, 0); + page->event(&event); + event.setCommitString(QString(), -2, 2); // Erase two characters. + page->event(&event); + event.setCommitString(QString(), -1, 1); // Erase one character. + page->event(&event); + variant = page->inputMethodQuery(Qt::ImSurroundingText); + value = variant.value<QString>(); + QCOMPARE(value, QString("QtWebKit")); + } + //Move to the start of the line page->triggerAction(QWebPage::MoveToStartOfLine); @@ -1687,6 +1701,314 @@ void tst_QWebPage::inputMethods() QCOMPARE(inputValue, QString("QtWebKit2")); //END - Test for sending empty QInputMethodEvent + page->mainFrame()->setHtml("<html><body>" \ + "<input type='text' id='input4' value='QtWebKit inputMethod'/>" \ + "</body></html>"); + page->mainFrame()->evaluateJavaScript("var inputEle = document.getElementById('input4'); inputEle.focus(); inputEle.select();"); + + // Clear the selection, also cancel the ongoing composition if there is one. + { + QList<QInputMethodEvent::Attribute> attributes; + QInputMethodEvent::Attribute newSelection(QInputMethodEvent::Selection, 0, 0, QVariant()); + attributes.append(newSelection); + QInputMethodEvent event("", attributes); + page->event(&event); + } + + // ImCurrentSelection + variant = page->inputMethodQuery(Qt::ImCurrentSelection); + selectionValue = variant.value<QString>(); + QCOMPARE(selectionValue, QString("")); + + variant = page->inputMethodQuery(Qt::ImSurroundingText); + QString surroundingValue = variant.value<QString>(); + QCOMPARE(surroundingValue, QString("QtWebKit inputMethod")); + + // ImAnchorPosition + variant = page->inputMethodQuery(Qt::ImAnchorPosition); + anchorPosition = variant.toInt(); + QCOMPARE(anchorPosition, 0); + + // ImCursorPosition + variant = page->inputMethodQuery(Qt::ImCursorPosition); + cursorPosition = variant.toInt(); + QCOMPARE(cursorPosition, 0); + + // 1. Insert a character to the begining of the line. + // Send temporary text, which makes the editor has composition 'm'. + { + QList<QInputMethodEvent::Attribute> attributes; + QInputMethodEvent event("m", attributes); + page->event(&event); + } + + // ImCurrentSelection + variant = page->inputMethodQuery(Qt::ImCurrentSelection); + selectionValue = variant.value<QString>(); + QCOMPARE(selectionValue, QString("")); + + // ImSurroundingText + variant = page->inputMethodQuery(Qt::ImSurroundingText); + surroundingValue = variant.value<QString>(); + QCOMPARE(surroundingValue, QString("QtWebKit inputMethod")); + + // ImCursorPosition + variant = page->inputMethodQuery(Qt::ImCursorPosition); + cursorPosition = variant.toInt(); + QCOMPARE(cursorPosition, 0); + + // ImAnchorPosition + variant = page->inputMethodQuery(Qt::ImAnchorPosition); + anchorPosition = variant.toInt(); + QCOMPARE(anchorPosition, 0); + + // Send temporary text, which makes the editor has composition 'n'. + { + QList<QInputMethodEvent::Attribute> attributes; + QInputMethodEvent event("n", attributes); + page->event(&event); + } + + // ImCurrentSelection + variant = page->inputMethodQuery(Qt::ImCurrentSelection); + selectionValue = variant.value<QString>(); + QCOMPARE(selectionValue, QString("")); + + // ImSurroundingText + variant = page->inputMethodQuery(Qt::ImSurroundingText); + surroundingValue = variant.value<QString>(); + QCOMPARE(surroundingValue, QString("QtWebKit inputMethod")); + + // ImCursorPosition + variant = page->inputMethodQuery(Qt::ImCursorPosition); + cursorPosition = variant.toInt(); + QCOMPARE(cursorPosition, 0); + + // ImAnchorPosition + variant = page->inputMethodQuery(Qt::ImAnchorPosition); + anchorPosition = variant.toInt(); + QCOMPARE(anchorPosition, 0); + + // Send commit text, which makes the editor conforms composition. + { + QList<QInputMethodEvent::Attribute> attributes; + QInputMethodEvent event("", attributes); + event.setCommitString("o"); + page->event(&event); + } + + // ImCurrentSelection + variant = page->inputMethodQuery(Qt::ImCurrentSelection); + selectionValue = variant.value<QString>(); + QCOMPARE(selectionValue, QString("")); + + // ImSurroundingText + variant = page->inputMethodQuery(Qt::ImSurroundingText); + surroundingValue = variant.value<QString>(); + QCOMPARE(surroundingValue, QString("oQtWebKit inputMethod")); + + // ImCursorPosition + variant = page->inputMethodQuery(Qt::ImCursorPosition); + cursorPosition = variant.toInt(); + QCOMPARE(cursorPosition, 1); + + // ImAnchorPosition + variant = page->inputMethodQuery(Qt::ImAnchorPosition); + anchorPosition = variant.toInt(); + QCOMPARE(anchorPosition, 1); + + // 2. insert a character to the middle of the line. + // Send temporary text, which makes the editor has composition 'd'. + { + QList<QInputMethodEvent::Attribute> attributes; + QInputMethodEvent event("d", attributes); + page->event(&event); + } + + // ImCurrentSelection + variant = page->inputMethodQuery(Qt::ImCurrentSelection); + selectionValue = variant.value<QString>(); + QCOMPARE(selectionValue, QString("")); + + // ImSurroundingText + variant = page->inputMethodQuery(Qt::ImSurroundingText); + surroundingValue = variant.value<QString>(); + QCOMPARE(surroundingValue, QString("oQtWebKit inputMethod")); + + // ImCursorPosition + variant = page->inputMethodQuery(Qt::ImCursorPosition); + cursorPosition = variant.toInt(); + QCOMPARE(cursorPosition, 1); + + // ImAnchorPosition + variant = page->inputMethodQuery(Qt::ImAnchorPosition); + anchorPosition = variant.toInt(); + QCOMPARE(anchorPosition, 1); + + // Send commit text, which makes the editor conforms composition. + { + QList<QInputMethodEvent::Attribute> attributes; + QInputMethodEvent event("", attributes); + event.setCommitString("e"); + page->event(&event); + } + + // ImCurrentSelection + variant = page->inputMethodQuery(Qt::ImCurrentSelection); + selectionValue = variant.value<QString>(); + QCOMPARE(selectionValue, QString("")); + + // ImSurroundingText + variant = page->inputMethodQuery(Qt::ImSurroundingText); + surroundingValue = variant.value<QString>(); + QCOMPARE(surroundingValue, QString("oeQtWebKit inputMethod")); + + // ImCursorPosition + variant = page->inputMethodQuery(Qt::ImCursorPosition); + cursorPosition = variant.toInt(); + QCOMPARE(cursorPosition, 2); + + // ImAnchorPosition + variant = page->inputMethodQuery(Qt::ImAnchorPosition); + anchorPosition = variant.toInt(); + QCOMPARE(anchorPosition, 2); + + // 3. Insert a character to the end of the line. + page->triggerAction(QWebPage::MoveToEndOfLine); + + // Send temporary text, which makes the editor has composition 't'. + { + QList<QInputMethodEvent::Attribute> attributes; + QInputMethodEvent event("t", attributes); + page->event(&event); + } + + // ImCurrentSelection + variant = page->inputMethodQuery(Qt::ImCurrentSelection); + selectionValue = variant.value<QString>(); + QCOMPARE(selectionValue, QString("")); + + // ImSurroundingText + variant = page->inputMethodQuery(Qt::ImSurroundingText); + surroundingValue = variant.value<QString>(); + QCOMPARE(surroundingValue, QString("oeQtWebKit inputMethod")); + + // ImCursorPosition + variant = page->inputMethodQuery(Qt::ImCursorPosition); + cursorPosition = variant.toInt(); + QCOMPARE(cursorPosition, 22); + + // ImAnchorPosition + variant = page->inputMethodQuery(Qt::ImAnchorPosition); + anchorPosition = variant.toInt(); + QCOMPARE(anchorPosition, 22); + + // Send commit text, which makes the editor conforms composition. + { + QList<QInputMethodEvent::Attribute> attributes; + QInputMethodEvent event("", attributes); + event.setCommitString("t"); + page->event(&event); + } + + // ImCurrentSelection + variant = page->inputMethodQuery(Qt::ImCurrentSelection); + selectionValue = variant.value<QString>(); + QCOMPARE(selectionValue, QString("")); + + // ImSurroundingText + variant = page->inputMethodQuery(Qt::ImSurroundingText); + surroundingValue = variant.value<QString>(); + QCOMPARE(surroundingValue, QString("oeQtWebKit inputMethodt")); + + // ImCursorPosition + variant = page->inputMethodQuery(Qt::ImCursorPosition); + cursorPosition = variant.toInt(); + QCOMPARE(cursorPosition, 23); + + // ImAnchorPosition + variant = page->inputMethodQuery(Qt::ImAnchorPosition); + anchorPosition = variant.toInt(); + QCOMPARE(anchorPosition, 23); + + // 4. Replace the selection. + page->triggerAction(QWebPage::SelectPreviousWord); + + // ImCurrentSelection + variant = page->inputMethodQuery(Qt::ImCurrentSelection); + selectionValue = variant.value<QString>(); + QCOMPARE(selectionValue, QString("inputMethodt")); + + // ImSurroundingText + variant = page->inputMethodQuery(Qt::ImSurroundingText); + surroundingValue = variant.value<QString>(); + QCOMPARE(surroundingValue, QString("oeQtWebKit inputMethodt")); + + // ImCursorPosition + variant = page->inputMethodQuery(Qt::ImCursorPosition); + cursorPosition = variant.toInt(); + QCOMPARE(cursorPosition, 11); + + // ImAnchorPosition + variant = page->inputMethodQuery(Qt::ImAnchorPosition); + anchorPosition = variant.toInt(); + QCOMPARE(anchorPosition, 23); + + // Send temporary text, which makes the editor has composition 'w'. + { + QList<QInputMethodEvent::Attribute> attributes; + QInputMethodEvent event("w", attributes); + page->event(&event); + } + + // ImCurrentSelection + variant = page->inputMethodQuery(Qt::ImCurrentSelection); + selectionValue = variant.value<QString>(); + QCOMPARE(selectionValue, QString("")); + + // ImSurroundingText + variant = page->inputMethodQuery(Qt::ImSurroundingText); + surroundingValue = variant.value<QString>(); + QCOMPARE(surroundingValue, QString("oeQtWebKit ")); + + // ImCursorPosition + variant = page->inputMethodQuery(Qt::ImCursorPosition); + cursorPosition = variant.toInt(); + QCOMPARE(cursorPosition, 11); + + // ImAnchorPosition + variant = page->inputMethodQuery(Qt::ImAnchorPosition); + anchorPosition = variant.toInt(); + QCOMPARE(anchorPosition, 11); + + // Send commit text, which makes the editor conforms composition. + { + QList<QInputMethodEvent::Attribute> attributes; + QInputMethodEvent event("", attributes); + event.setCommitString("2"); + page->event(&event); + } + + // ImCurrentSelection + variant = page->inputMethodQuery(Qt::ImCurrentSelection); + selectionValue = variant.value<QString>(); + QCOMPARE(selectionValue, QString("")); + + // ImSurroundingText + variant = page->inputMethodQuery(Qt::ImSurroundingText); + surroundingValue = variant.value<QString>(); + QCOMPARE(surroundingValue, QString("oeQtWebKit 2")); + + // ImCursorPosition + variant = page->inputMethodQuery(Qt::ImCursorPosition); + cursorPosition = variant.toInt(); + QCOMPARE(cursorPosition, 12); + + // ImAnchorPosition + variant = page->inputMethodQuery(Qt::ImAnchorPosition); + anchorPosition = variant.toInt(); + QCOMPARE(anchorPosition, 12); + delete container; } diff --git a/WebKit/win/ChangeLog b/WebKit/win/ChangeLog index 3fd58ec..ed946c8 100644 --- a/WebKit/win/ChangeLog +++ b/WebKit/win/ChangeLog @@ -1,3 +1,195 @@ +2010-12-01 Jia Pu <jpu@apple.com> + + Reviewed by Darin Adler. + + Support multiple correction candidates panel for misspelled word on Mac OS X. + https://bugs.webkit.org/show_bug.cgi?id=50137 + <rdar://problem/8568059> + + Adopted new function signature defined in base class. + + * WebCoreSupport/WebEditorClient.cpp: + (WebEditorClient::getGuessesForWord): + * WebCoreSupport/WebEditorClient.h: + +2010-12-01 Steve Falkenburg <sfalken@apple.com> + + Reviewed by Adam Roben. + + WinCairo build should not use link-time code generation (LTCG) + https://bugs.webkit.org/show_bug.cgi?id=50353 + + * WebKit.vcproj/Interfaces.vcproj: + * WebKit.vcproj/WebKit.vcproj: + * WebKit.vcproj/WebKitGUID.vcproj: + +2010-12-01 Steve Falkenburg <sfalken@apple.com> + + Reviewed by Adam Roben. + + vcproj changes can't be applied cleanly by the Windows EWS bot + https://bugs.webkit.org/show_bug.cgi?id=50328 + + * WebKit.vcproj/Interfaces.vcproj: Modified property svn:eol-style. + * WebKit.vcproj/InterfacesCommon.vsprops: Added property svn:eol-style. + * WebKit.vcproj/WebKit.sln: Modified property svn:eol-style. + * WebKit.vcproj/WebKit.submit.sln: Modified property svn:eol-style. + * WebKit.vcproj/WebKit.vcproj: Modified property svn:eol-style. + * WebKit.vcproj/WebKitGUID.vcproj: Modified property svn:eol-style. + * WebKit.vcproj/WebKitGUIDCommon.vsprops: Added property svn:eol-style. + * WebKit.vcproj/WebKitLibCommon.vsprops: Added property svn:eol-style. + +2010-11-30 Steve Falkenburg <sfalken@apple.com> + + Reviewed by Adam Roben. + + All projects on Windows should use cmd files for build events + https://bugs.webkit.org/show_bug.cgi?id=50213 + + * WebKit.vcproj/InterfacesCommon.vsprops: + * WebKit.vcproj/InterfacesPostBuild.cmd: Added. + * WebKit.vcproj/InterfacesPreBuild.cmd: Added. + * WebKit.vcproj/WebKitGUIDCommon.vsprops: + * WebKit.vcproj/WebKitGUIDPostBuild.cmd: Added. + * WebKit.vcproj/WebKitGUIDPreBuild.cmd: Added. + * WebKit.vcproj/WebKitLibCommon.vsprops: + * WebKit.vcproj/WebKitLibPostBuild.cmd: Added. + * WebKit.vcproj/WebKitLibPreBuild.cmd: Added. + +2010-11-29 Brent Fulgham <bfulgham@webkit.org> + + Unreviewed build correction. + + * WebKit.vcproj/WebKit.vcproj: Update WebKit project to + use WinCairo.vsprops definition for appropriate build targets. + +2010-11-22 Adam Roben <aroben@apple.com> + + Use paths relative to $WebKitVSPropsRedirectionDir to access shared .vsprops files + + Apple's Windows build allows placing header files and import libraries for WebKit's + dependencies (CoreGraphics, CFNetwork, SQLite, etc.) outside the source tree via the + $WebKitLibrariesDir environment variable. This is both required for production builds and + convenient for Apple-internal developer builds. Apple's production builds also require that + WebKit's shared .vsprops files be accessed relative to $WebKitLibrariesDir. In production + builds, the files are copied into that directory tree by the + WebKitLibraries/win/tools/WinTools.make file. In Apple-internal developer builds, the + copying is done by + JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make. + + This .vsprops copying is problematic in one very important case: when a developer updates + their source tree and then tries to build. Visual Studio only reads .vsprops files when a + project is first loaded. So, when Visual Studio is first opened after the .vsprops files are + updated, it reads in the old files that were already residing in $WebKitLibrariesDir. When a + build is started, JavaScriptCoreGenerated.make copies the new .vsprops files into + $WebKitLibrariesDir, but Visual Studio will not pick up the changes. The rest of the build + will proceed with out-of-date .vsprops files, which will likely result in a build failure. + + To fix this, we now use normal relative paths to access the .vsprops files in the source + tree rather than in $WebKitLibrariesDir, but prefix those paths with a new environment + variable, $WebKitVSPropsRedirectionDir. In developer builds, this environment variable is + unset, so the normal relative paths are used to read the .vsprops files out of the source + tree directly. In production builds, this environment variable is set to a fake directory + that will cause the .vsprops files in $WebKitLibrariesDir to be found when the relative path + is resolved. + + For example, JavaScriptCore.vcproj uses this path for FeatureDefines.vsprops: + + $(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops + + In developer builds, where $WebKitVSPropsRedirectionDir is unset, this will point to the + files in WebKitLibraries\win\tools\vsprops in the source tree. In production builds, + JavaScriptCore.make sets $WebKitVSPropsRedirectionDir to + "$(SRCROOT)\AppleInternal\tools\vsprops\OpenSource\1\2\3\", so the full path for + FeatureDefines.vsprops becomes: + + $(SRCROOT)\AppleInternal\tools\vsprops\OpenSource\1\2\3\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops + + which resolves to: + + $(SRCROOT)\AppleInternal\tools\vsprops\OpenSource\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops + + (We rely on the fact that Windows doesn't care whether the directories "1", "2", and "3" + actually exist since they are matched by an equal number of ".." path components.) + + Note that Visual Studio still won't pick up changes made to .vsprops files while Visual + Studio is open, but that problem hasn't seemed to cause developers many headaches so far. + + Fixes <http://webkit.org/b/49181> Windows build fails mysteriously when .vsprops files are + updated + + Reviewed by Dave Hyatt. + + * WebKit.vcproj/WebKit.make: Set $WebKitVSPropsRedirectionDir so that production builds can + find the .vsprops files. + + * WebKit.vcproj/WebKit.vcproj: + * WebKit.vcproj/Interfaces.vcproj: + * WebKit.vcproj/WebKitGUID.vcproj: + Changed to use paths relative to $WebKitVSPropsRedirectionDir to access shared .vsprops + files. + +2010-11-19 Steve Falkenburg <sfalken@apple.com> + + Reviewed by Adam Roben. + + Add Debug_Cairo_CFLite and Release_Cairo_CFLite configurations for all vcproj files + https://bugs.webkit.org/show_bug.cgi?id=49819 + + * WebKit.vcproj/Interfaces.vcproj: + * WebKit.vcproj/WebKit.sln: + * WebKit.vcproj/WebKit.vcproj: + * WebKit.vcproj/WebKitGUID.vcproj: + +2010-11-19 Steve Falkenburg <sfalken@apple.com> + + Reviewed by Darin Adler. + + Normalize Cairo/CFLite project/solution configuration names + https://bugs.webkit.org/show_bug.cgi?id=49818 + + * WebKit.vcproj/WebKit.sln: + * WebKit.vcproj/WebKit.vcproj: + +2010-11-18 Steve Falkenburg <sfalken@apple.com> + + Reviewed by Adam Roben. + + Windows vcproj configuration names should be normalized across projects + https://bugs.webkit.org/show_bug.cgi?id=49776 + + * WebKit.vcproj/Interfaces.vcproj: + * WebKit.vcproj/WebKit.sln: + +2010-11-18 Steve Falkenburg <sfalken@apple.com> + + Reviewed by Adam Roben. + + Remove leftover Windows Debug_Internal configurations + https://bugs.webkit.org/show_bug.cgi?id=49758 + + * WebKit.vcproj/WebKit.vcproj: + * WebKit.vcproj/WebKitGUID.vcproj: + +2010-11-18 Steve Falkenburg <sfalken@apple.com> + + Reviewed by Adam Roben. + + Debug_Internal Windows configuration is unnecessary, should be removed + https://bugs.webkit.org/show_bug.cgi?id=49753 + + * WebKitPrefix.h: + +2010-11-17 Steve Falkenburg <sfalken@apple.com> + + Reviewed by Adam Roben. + + WebKit Interfaces project should use vsprops file for common build settings + https://bugs.webkit.org/show_bug.cgi?id=49713 + + * WebKit.vcproj/Interfaces.vcproj: + * WebKit.vcproj/InterfacesCommon.vsprops: Added. + 2010-11-16 Steve Falkenburg <sfalken@apple.com> Reviewed by Adam Roben. diff --git a/WebKit/win/WebCoreSupport/WebEditorClient.cpp b/WebKit/win/WebCoreSupport/WebEditorClient.cpp index f03ffd6..539259b 100644 --- a/WebKit/win/WebCoreSupport/WebEditorClient.cpp +++ b/WebKit/win/WebCoreSupport/WebEditorClient.cpp @@ -758,7 +758,7 @@ bool WebEditorClient::spellingUIIsShowing() return !!showing; } -void WebEditorClient::getGuessesForWord(const String& word, Vector<String>& guesses) +void WebEditorClient::getGuessesForWord(const String& word, const String& context, Vector<String>& guesses) { guesses.clear(); diff --git a/WebKit/win/WebCoreSupport/WebEditorClient.h b/WebKit/win/WebCoreSupport/WebEditorClient.h index 8be6de9..f0b78ba 100644 --- a/WebKit/win/WebCoreSupport/WebEditorClient.h +++ b/WebKit/win/WebCoreSupport/WebEditorClient.h @@ -107,7 +107,7 @@ public: virtual void updateSpellingUIWithMisspelledWord(const WTF::String&); virtual void showSpellingUI(bool show); virtual bool spellingUIIsShowing(); - virtual void getGuessesForWord(const WTF::String&, Vector<WTF::String>& guesses); + virtual void getGuessesForWord(const WTF::String& word, const WTF::String& context, WTF::Vector<WTF::String>& guesses); virtual void willSetInputMethodState(); virtual void setInputMethodState(bool); diff --git a/WebKit/win/WebKit.vcproj/Interfaces.vcproj b/WebKit/win/WebKit.vcproj/Interfaces.vcproj index 9b0a385..2da87bf 100644 --- a/WebKit/win/WebKit.vcproj/Interfaces.vcproj +++ b/WebKit/win/WebKit.vcproj/Interfaces.vcproj @@ -1,2557 +1,4682 @@ -<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8.00"
- Name="Interfaces"
- ProjectGUID="{91762BE2-87EF-4F5A-A480-48B90EB3F406}"
- RootNamespace="Interfaces"
- Keyword="Win32Proj"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(WebKitOutputDir)\include\WebKit"
- ConfigurationType="4"
- InheritedPropertySheets="$(WebKitLibrariesDir)\tools\vsprops\FeatureDefines.vsprops;$(WebKitLibrariesDir)\tools\vsprops\common.vsprops;$(WebKitLibrariesDir)\tools\vsprops\debug.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- CommandLine="%SystemDrive%\cygwin\bin\which.exe bash
if errorlevel 1 set PATH=%SystemDrive%\cygwin\bin;%PATH%
cmd /c
if exist "$(WebKitOutputDir)\buildfailed" grep XX$(ProjectName)XX "$(WebKitOutputDir)\buildfailed"
if errorlevel 1 exit 1
echo XX$(ProjectName)XX > "$(WebKitOutputDir)\buildfailed"

mkdir 2>NUL "$(WebKitOutputDir)\obj\WebKit\$(ProjectName)"
bash "$(WebKitLibrariesDir)\tools\scripts\auto-version.sh" "$(IntDir)"
"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- AdditionalIncludeDirectories=""$(WebKitOutputDir)\obj\WebKit\DerivedSources";..\Interfaces;"$(IntDir)\include""
- TypeLibraryName="$(WebKitOutputDir)\lib\WebKit.tlb"
- OutputDirectory="$(WebKitOutputDir)\obj\WebKit\$(ProjectName)"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="%SystemDrive%\cygwin\bin\which.exe bash
if errorlevel 1 set PATH=%SystemDrive%\cygwin\bin;%PATH%
cmd /c

perl FixMIDLHeaders.pl "$(WebkitOutputDir)/include/webkit/"

if exist "$(WebKitOutputDir)\buildfailed" del "$(WebKitOutputDir)\buildfailed"
"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(WebKitOutputDir)\include\WebKit"
- ConfigurationType="4"
- InheritedPropertySheets="$(WebKitLibrariesDir)\tools\vsprops\FeatureDefines.vsprops;$(WebKitLibrariesDir)\tools\vsprops\common.vsprops;$(WebKitLibrariesDir)\tools\vsprops\release.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- CommandLine="%SystemDrive%\cygwin\bin\which.exe bash
if errorlevel 1 set PATH=%SystemDrive%\cygwin\bin;%PATH%
cmd /c
if exist "$(WebKitOutputDir)\buildfailed" grep XX$(ProjectName)XX "$(WebKitOutputDir)\buildfailed"
if errorlevel 1 exit 1
echo XX$(ProjectName)XX > "$(WebKitOutputDir)\buildfailed"

mkdir 2>NUL "$(WebKitOutputDir)\obj\WebKit\$(ProjectName)"
bash "$(WebKitLibrariesDir)\tools\scripts\auto-version.sh" "$(IntDir)"
"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- AdditionalIncludeDirectories=""$(WebKitOutputDir)\obj\WebKit\DerivedSources";..\Interfaces;"$(IntDir)\include""
- TypeLibraryName="$(WebKitOutputDir)\lib\WebKit.tlb"
- OutputDirectory="$(WebKitOutputDir)\obj\WebKit\$(ProjectName)"
- />
- <Tool
- Name="VCCLCompilerTool"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
- RuntimeLibrary="2"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="%SystemDrive%\cygwin\bin\which.exe bash
if errorlevel 1 set PATH=%SystemDrive%\cygwin\bin;%PATH%
cmd /c

perl FixMIDLHeaders.pl "$(WebkitOutputDir)/include/webkit/"

if exist "$(WebKitOutputDir)\buildfailed" del "$(WebKitOutputDir)\buildfailed"
"
- />
- </Configuration>
- <Configuration
- Name="Release_LTCG|Win32"
- OutputDirectory="$(WebKitOutputDir)\include\WebKit"
- ConfigurationType="4"
- InheritedPropertySheets="$(WebKitLibrariesDir)\tools\vsprops\FeatureDefines.vsprops;$(WebKitLibrariesDir)\tools\vsprops\common.vsprops;$(WebKitLibrariesDir)\tools\vsprops\release.vsprops"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- CommandLine="%SystemDrive%\cygwin\bin\which.exe bash
if errorlevel 1 set PATH=%SystemDrive%\cygwin\bin;%PATH%
cmd /c
if exist "$(WebKitOutputDir)\buildfailed" grep XX$(ProjectName)XX "$(WebKitOutputDir)\buildfailed"
if errorlevel 1 exit 1
echo XX$(ProjectName)XX > "$(WebKitOutputDir)\buildfailed"

mkdir 2>NUL "$(WebKitOutputDir)\obj\WebKit\$(ProjectName)"
bash "$(WebKitLibrariesDir)\tools\scripts\auto-version.sh" "$(IntDir)"
"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- AdditionalIncludeDirectories=""$(WebKitOutputDir)\obj\WebKit\DerivedSources";..\Interfaces;"$(IntDir)\include""
- TypeLibraryName="$(WebKitOutputDir)\lib\WebKit.tlb"
- OutputDirectory="$(WebKitOutputDir)\obj\WebKit\$(ProjectName)"
- />
- <Tool
- Name="VCCLCompilerTool"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
- RuntimeLibrary="2"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="%SystemDrive%\cygwin\bin\which.exe bash
if errorlevel 1 set PATH=%SystemDrive%\cygwin\bin;%PATH%
cmd /c

perl FixMIDLHeaders.pl "$(WebkitOutputDir)/include/webkit/"

if exist "$(WebKitOutputDir)\buildfailed" del "$(WebKitOutputDir)\buildfailed"
"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <File
- RelativePath="..\Interfaces\AccessibleComparable.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\DOMCore.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\DOMCSS.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\DOMEvents.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\DOMExtensions.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\DOMHTML.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\DOMPrivate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\DOMRange.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\DOMWindow.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IGEN_DOMObject.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebArchive.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebBackForwardList.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebBackForwardListPrivate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebCache.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebCookieManager.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebCoreStatistics.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebDatabaseManager.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebDataSource.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebDesktopNotificationsDelegate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebDocument.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebDownload.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebEditingDelegate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebEmbeddedView.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebError.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebErrorPrivate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebFormDelegate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebFrame.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebFrameLoadDelegate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebFrameLoadDelegatePrivate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebFrameLoadDelegatePrivate2.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebFramePrivate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebFrameView.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebGeolocationPolicyListener.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebGeolocationPosition.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebGeolocationProvider.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebHistory.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebHistoryDelegate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebHistoryItem.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebHistoryItemPrivate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebHistoryPrivate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebHTMLRepresentation.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebHTTPURLResponse.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebIconDatabase.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebInspector.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebInspectorPrivate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebJavaScriptCollector.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebKitStatistics.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebMutableURLRequest.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebMutableURLRequestPrivate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebNavigationData.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebNotification.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebNotificationCenter.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebNotificationObserver.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebPluginHalterDelegate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebPolicyDelegate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebPolicyDelegatePrivate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebPreferences.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebPreferencesPrivate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebResource.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebResourceLoadDelegate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebResourceLoadDelegatePrivate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebScriptObject.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebScriptWorld.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebScrollBarDelegatePrivate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebScrollBarPrivate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebSecurityOrigin.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebSerializedJSValue.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebSerializedJSValuePrivate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebTextRenderer.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebUIDelegate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebUIDelegatePrivate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebUndoManager.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebUndoTarget.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebURLAuthenticationChallenge.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebURLRequest.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebURLResponse.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebURLResponsePrivate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebUserContentURLPattern.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebView.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebViewPrivate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\IWebWorkersPrivate.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\JavaScriptCoreAPITypes.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\WebKit.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCMIDLTool"
- GenerateTypeLibrary="true"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCMIDLTool"
- GenerateTypeLibrary="true"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- >
- <Tool
- Name="VCMIDLTool"
- GenerateTypeLibrary="true"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Interfaces\WebScrollbarTypes.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCMIDLTool"
- />
- </FileConfiguration>
- </File>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
+<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="Interfaces" + ProjectGUID="{91762BE2-87EF-4F5A-A480-48B90EB3F406}" + RootNamespace="Interfaces" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + ConfigurationType="4" + InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;.\InterfacesCommon.vsprops" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + ConfigurationType="4" + InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;.\InterfacesCommon.vsprops" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release_LTCG|Win32" + ConfigurationType="4" + InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;.\InterfacesCommon.vsprops" + CharacterSet="1" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Debug_All|Win32" + ConfigurationType="4" + InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;.\InterfacesCommon.vsprops" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release_Cairo_CFLite|Win32" + ConfigurationType="4" + InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;.\InterfacesCommon.vsprops" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Debug_Cairo_CFLite|Win32" + ConfigurationType="4" + InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\debug_wincairo.vsprops;.\InterfacesCommon.vsprops" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <File + RelativePath="..\Interfaces\AccessibleComparable.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\DOMCore.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\DOMCSS.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\DOMEvents.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\DOMExtensions.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\DOMHTML.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\DOMPrivate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\DOMRange.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\DOMWindow.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IGEN_DOMObject.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebArchive.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebBackForwardList.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebBackForwardListPrivate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebCache.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebCookieManager.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebCoreStatistics.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebDatabaseManager.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebDataSource.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebDesktopNotificationsDelegate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebDocument.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebDownload.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebEditingDelegate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebEmbeddedView.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebError.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebErrorPrivate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebFormDelegate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebFrame.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebFrameLoadDelegate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebFrameLoadDelegatePrivate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebFrameLoadDelegatePrivate2.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebFramePrivate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebFrameView.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebGeolocationPolicyListener.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebGeolocationPosition.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebGeolocationProvider.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebHistory.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebHistoryDelegate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebHistoryItem.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebHistoryItemPrivate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebHistoryPrivate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebHTMLRepresentation.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebHTTPURLResponse.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebIconDatabase.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebInspector.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebInspectorPrivate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebJavaScriptCollector.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebKitStatistics.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebMutableURLRequest.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebMutableURLRequestPrivate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebNavigationData.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebNotification.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebNotificationCenter.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebNotificationObserver.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebPluginHalterDelegate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebPolicyDelegate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebPolicyDelegatePrivate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebPreferences.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebPreferencesPrivate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebResource.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebResourceLoadDelegate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebResourceLoadDelegatePrivate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebScriptObject.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebScriptWorld.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebScrollBarDelegatePrivate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebScrollBarPrivate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebSecurityOrigin.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebSerializedJSValue.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebSerializedJSValuePrivate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebTextRenderer.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebUIDelegate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebUIDelegatePrivate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebUndoManager.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebUndoTarget.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebURLAuthenticationChallenge.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebURLRequest.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebURLResponse.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebURLResponsePrivate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebUserContentURLPattern.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebView.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebViewPrivate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\IWebWorkersPrivate.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\JavaScriptCoreAPITypes.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\WebKit.idl" + > + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCMIDLTool" + GenerateTypeLibrary="true" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCMIDLTool" + GenerateTypeLibrary="true" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + > + <Tool + Name="VCMIDLTool" + GenerateTypeLibrary="true" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + > + <Tool + Name="VCMIDLTool" + GenerateTypeLibrary="true" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + > + <Tool + Name="VCMIDLTool" + GenerateTypeLibrary="true" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + > + <Tool + Name="VCMIDLTool" + GenerateTypeLibrary="true" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\Interfaces\WebScrollbarTypes.idl" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCMIDLTool" + /> + </FileConfiguration> + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/WebKit/win/WebKit.vcproj/InterfacesCommon.vsprops b/WebKit/win/WebKit.vcproj/InterfacesCommon.vsprops new file mode 100644 index 0000000..f4385ea --- /dev/null +++ b/WebKit/win/WebKit.vcproj/InterfacesCommon.vsprops @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="InterfacesCommon" + OutputDirectory="$(WebKitOutputDir)\include\WebKit" + > + <Tool + Name="VCMIDLTool" + AdditionalIncludeDirectories=""$(WebKitOutputDir)\obj\WebKit\DerivedSources";..\Interfaces;"$(IntDir)\include"" + TypeLibraryName="$(WebKitOutputDir)\lib\WebKit.tlb" + OutputDirectory="$(WebKitOutputDir)\obj\WebKit\$(ProjectName)" + /> +</VisualStudioPropertySheet> diff --git a/WebKit/win/WebKit.vcproj/InterfacesPostBuild.cmd b/WebKit/win/WebKit.vcproj/InterfacesPostBuild.cmd new file mode 100644 index 0000000..efe6904 --- /dev/null +++ b/WebKit/win/WebKit.vcproj/InterfacesPostBuild.cmd @@ -0,0 +1,7 @@ +%SystemDrive%\cygwin\bin\which.exe bash +if errorlevel 1 set PATH=%SystemDrive%\cygwin\bin;%PATH% +cmd /c + +perl FixMIDLHeaders.pl "%WEBKITOUTPUTDIR%/include/webkit/" + +if exist "%WEBKITOUTPUTDIR%\buildfailed" del "%WEBKITOUTPUTDIR%\buildfailed" diff --git a/WebKit/win/WebKit.vcproj/InterfacesPreBuild.cmd b/WebKit/win/WebKit.vcproj/InterfacesPreBuild.cmd new file mode 100644 index 0000000..f720a20 --- /dev/null +++ b/WebKit/win/WebKit.vcproj/InterfacesPreBuild.cmd @@ -0,0 +1,9 @@ +%SystemDrive%\cygwin\bin\which.exe bash +if errorlevel 1 set PATH=%SystemDrive%\cygwin\bin;%PATH% +cmd /c +if exist "%WEBKITOUTPUTDIR%\buildfailed" grep XX%PROJECTNAME%XX "%WEBKITOUTPUTDIR%\buildfailed" +if errorlevel 1 exit 1 +echo XX%PROJECTNAME%XX > "%WEBKITOUTPUTDIR%\buildfailed" + +mkdir 2>NUL "%WEBKITOUTPUTDIR%\obj\WebKit\%PROJECTNAME%" +bash "%WEBKITLIBRARIESDIR%\tools\scripts\auto-version.sh" "%INTDIR%" diff --git a/WebKit/win/WebKit.vcproj/WebKit.make b/WebKit/win/WebKit.vcproj/WebKit.make index d954342..0d5fbc5 100755 --- a/WebKit/win/WebKit.vcproj/WebKit.make +++ b/WebKit/win/WebKit.vcproj/WebKit.make @@ -7,6 +7,7 @@ BUILDSTYLE=Release_LTCG install: set WebKitLibrariesDir=$(SRCROOT)\AppleInternal set WebKitOutputDir=$(OBJROOT) + set WebKitVSPropsRedirectionDir=$(SRCROOT)\AppleInternal\tools\vsprops\OpenSource\1\2\3\ set PRODUCTION=1 devenv "WebKit.submit.sln" /rebuild $(BUILDSTYLE) -xcopy "$(OBJROOT)\bin\*.exe" "$(DSTROOT)\AppleInternal\bin\" /e/v/i/h/y diff --git a/WebKit/win/WebKit.vcproj/WebKit.sln b/WebKit/win/WebKit.vcproj/WebKit.sln index 53ade97..45edcd7 100644 --- a/WebKit/win/WebKit.vcproj/WebKit.sln +++ b/WebKit/win/WebKit.vcproj/WebKit.sln @@ -1,415 +1,415 @@ -ďťż
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JavaScriptCore", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\JavaScriptCore\JavaScriptCore.vcproj", "{011D10F1-B656-4A1B-A0C3-3842F02122C5}"
- ProjectSection(ProjectDependencies) = postProject
- {AA8A5A85-592B-4357-BC60-E0E91E026AF6} = {AA8A5A85-592B-4357-BC60-E0E91E026AF6}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebCore", "..\..\..\WebCore\WebCore.vcproj\WebCore.vcproj", "{1C16337B-ACF3-4D03-AA90-851C5B5EADA6}"
- ProjectSection(ProjectDependencies) = postProject
- {E498CA9D-3BD2-4D52-8E37-C8DC76526325} = {E498CA9D-3BD2-4D52-8E37-C8DC76526325}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WTF", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\WTF\WTF.vcproj", "{AA8A5A85-592B-4357-BC60-E0E91E026AF6}"
- ProjectSection(ProjectDependencies) = postProject
- {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A} = {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jsc", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\jsc\jsc.vcproj", "{C59E5129-B453-49B7-A52B-1E104715F76E}"
- ProjectSection(ProjectDependencies) = postProject
- {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2} = {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}
- EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JavaScriptCore Folder", "JavaScriptCore Folder", "{557FA164-0E39-4DEC-B66C-8795C8E52399}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JavaScriptCoreGenerated", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\JavaScriptCore\JavaScriptCoreGenerated.vcproj", "{4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebCore Folder", "WebCore Folder", "{63FB6F8A-C601-43E3-BD16-A00A465C2CB6}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebCoreGenerated", "..\..\..\WebCore\WebCore.vcproj\WebCoreGenerated.vcproj", "{0A324352-B3B6-496C-9E5B-4C7E923E628B}"
- ProjectSection(ProjectDependencies) = postProject
- {011D10F1-B656-4A1B-A0C3-3842F02122C5} = {011D10F1-B656-4A1B-A0C3-3842F02122C5}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "QTMovieWin", "..\..\..\WebCore\WebCore.vcproj\QTMovieWin.vcproj", "{E498CA9D-3BD2-4D52-8E37-C8DC76526325}"
- ProjectSection(ProjectDependencies) = postProject
- {0A324352-B3B6-496C-9E5B-4C7E923E628B} = {0A324352-B3B6-496C-9E5B-4C7E923E628B}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testapi", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\testapi\testapi.vcproj", "{1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}"
- ProjectSection(ProjectDependencies) = postProject
- {DA31DA52-6675-48D4-89E0-333A7144397C} = {DA31DA52-6675-48D4-89E0-333A7144397C}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKit", "..\..\..\WebKit2\win\WebKit2.vcproj", "{2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}"
- ProjectSection(ProjectDependencies) = postProject
- {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB} = {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}
- EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebKit2 Folder", "WebKit2 Folder", "{9AB9C96C-9039-4FA9-8F83-BBFC8F8B2182}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKit2Generated", "..\..\..\WebKit2\win\WebKit2Generated.vcproj", "{2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}"
- ProjectSection(ProjectDependencies) = postProject
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9} = {0662A8A9-82A3-4638-97D8-EC425D8D87C9}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKit2WebProcess", "..\..\..\WebKit2\win\WebKit2WebProcess.vcproj", "{AAE88FEF-509E-4D49-870B-7357922C276F}"
- ProjectSection(ProjectDependencies) = postProject
- {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD} = {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}
- EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebKitCOM Folder", "WebKitCOM Folder", "{1D359ACC-BE10-45D7-938B-BC7E4B7AA6CA}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Interfaces", "Interfaces.vcproj", "{91762BE2-87EF-4F5A-A480-48B90EB3F406}"
- ProjectSection(ProjectDependencies) = postProject
- {1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitLib", "WebKit.vcproj", "{0662A8A9-82A3-4638-97D8-EC425D8D87C9}"
- ProjectSection(ProjectDependencies) = postProject
- {B8437A41-67BC-4769-9452-45203827F821} = {B8437A41-67BC-4769-9452-45203827F821}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitGUID", "WebKitGUID.vcproj", "{B8437A41-67BC-4769-9452-45203827F821}"
- ProjectSection(ProjectDependencies) = postProject
- {91762BE2-87EF-4F5A-A480-48B90EB3F406} = {91762BE2-87EF-4F5A-A480-48B90EB3F406}
- EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebKitTools", "WebKitTools", "{62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DumpRenderTree", "..\..\..\WebKitTools\DumpRenderTree\win\DumpRenderTree.vcproj", "{6567DFD4-D6DE-4CD5-825D-17E353D160E1}"
- ProjectSection(ProjectDependencies) = postProject
- {59CC0547-70AC-499C-9B19-EC01C6F61137} = {59CC0547-70AC-499C-9B19-EC01C6F61137}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ImageDiff", "..\..\..\WebKitTools\DumpRenderTree\win\ImageDiff.vcproj", "{59CC0547-70AC-499C-9B19-EC01C6F61137}"
- ProjectSection(ProjectDependencies) = postProject
- {C0737398-3565-439E-A2B8-AB2BE4D5430C} = {C0737398-3565-439E-A2B8-AB2BE4D5430C}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FindSafari", "..\..\..\WebKitTools\FindSafari\FindSafari.vcproj", "{DA31DA52-6675-48D4-89E0-333A7144397C}"
- ProjectSection(ProjectDependencies) = postProject
- {AAE88FEF-509E-4D49-870B-7357922C276F} = {AAE88FEF-509E-4D49-870B-7357922C276F}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "record-memory-win", "..\..\..\WebKitTools\record-memory-win\record-memory-win.vcproj", "{44B9C152-1870-4035-B94D-7B3285AA0C12}"
- ProjectSection(ProjectDependencies) = postProject
- {D09806DB-E58B-4646-8C9B-61101906C1E2} = {D09806DB-E58B-4646-8C9B-61101906C1E2}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestNetscapePlugin", "..\..\..\WebKitTools\DumpRenderTree\TestNetscapePlugIn\win\TestNetscapePlugin.vcproj", "{C0737398-3565-439E-A2B8-AB2BE4D5430C}"
- ProjectSection(ProjectDependencies) = postProject
- {114FCA11-216B-4C8C-957E-30A75AE80443} = {114FCA11-216B-4C8C-957E-30A75AE80443}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitAPITest", "..\..\..\WebKitTools\WebKitAPITest\WebKitAPITest.vcproj", "{626089A3-25D3-4883-A96C-B8C66E036397}"
- ProjectSection(ProjectDependencies) = postProject
- {6567DFD4-D6DE-4CD5-825D-17E353D160E1} = {6567DFD4-D6DE-4CD5-825D-17E353D160E1}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitLauncherWin", "..\..\..\WebKitTools\WebKitLauncherWin\WebKitLauncherWin.vcproj", "{D09806DB-E58B-4646-8C9B-61101906C1E2}"
- ProjectSection(ProjectDependencies) = postProject
- {626089A3-25D3-4883-A96C-B8C66E036397} = {626089A3-25D3-4883-A96C-B8C66E036397}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinLauncher", "..\..\..\WebKitTools\WinLauncher\WinLauncher.vcproj", "{114FCA11-216B-4C8C-957E-30A75AE80443}"
- ProjectSection(ProjectDependencies) = postProject
- {C59E5129-B453-49B7-A52B-1E104715F76E} = {C59E5129-B453-49B7-A52B-1E104715F76E}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InjectedBundle", "..\..\..\WebKitTools\WebKitTestRunner\win\InjectedBundle.vcproj", "{CBC3391C-F060-4BF5-A66E-81404168816B}"
- ProjectSection(ProjectDependencies) = postProject
- {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD} = {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InjectedBundleGenerated", "..\..\..\WebKitTools\WebKitTestRunner\win\InjectedBundleGenerated.vcproj", "{4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}"
- ProjectSection(ProjectDependencies) = postProject
- {44B9C152-1870-4035-B94D-7B3285AA0C12} = {44B9C152-1870-4035-B94D-7B3285AA0C12}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitTestRunner", "..\..\..\WebKitTools\WebKitTestRunner\win\WebKitTestRunner.vcproj", "{3B99669B-1817-443B-BCBE-835580146668}"
- ProjectSection(ProjectDependencies) = postProject
- {CBC3391C-F060-4BF5-A66E-81404168816B} = {CBC3391C-F060-4BF5-A66E-81404168816B}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MiniBrowser", "..\..\..\WebKitTools\MiniBrowser\MiniBrowser.vcproj", "{1480CF5F-4160-47B5-A0E6-96AEC8258FB5}"
- ProjectSection(ProjectDependencies) = postProject
- {3E48AB23-D249-488F-A1C4-43CDF52FBD28} = {3E48AB23-D249-488F-A1C4-43CDF52FBD28}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestWebKitAPI", "..\..\..\WebKitTools\TestWebKitAPI\win\TestWebKitAPI.vcproj", "{3E48AB23-D249-488F-A1C4-43CDF52FBD28}"
- ProjectSection(ProjectDependencies) = postProject
- {45C45411-7F0E-404D-919A-4EE9BB60BE86} = {45C45411-7F0E-404D-919A-4EE9BB60BE86}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestWebKitAPIGenerated", "..\..\..\WebKitTools\TestWebKitAPI\win\TestWebKitAPIGenerated.vcproj", "{45C45411-7F0E-404D-919A-4EE9BB60BE86}"
- ProjectSection(ProjectDependencies) = postProject
- {3B99669B-1817-443B-BCBE-835580146668} = {3B99669B-1817-443B-BCBE-835580146668}
- EndProjectSection
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug_Cairo|Win32 = Debug_Cairo|Win32
- Debug|Win32 = Debug|Win32
- Release_Cairo|Win32 = Release_Cairo|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug_Cairo|Win32.ActiveCfg = Debug_CFLite|Win32
- {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug_Cairo|Win32.Build.0 = Debug_CFLite|Win32
- {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug|Win32.ActiveCfg = Debug|Win32
- {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug|Win32.Build.0 = Debug|Win32
- {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release_Cairo|Win32.ActiveCfg = Release_CFLite|Win32
- {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release_Cairo|Win32.Build.0 = Release_CFLite|Win32
- {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release|Win32.ActiveCfg = Release|Win32
- {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release|Win32.Build.0 = Release|Win32
- {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug_Cairo|Win32.ActiveCfg = Debug_Cairo|Win32
- {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug_Cairo|Win32.Build.0 = Debug_Cairo|Win32
- {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug|Win32.ActiveCfg = Debug|Win32
- {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug|Win32.Build.0 = Debug|Win32
- {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release_Cairo|Win32.ActiveCfg = Release_Cairo|Win32
- {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release_Cairo|Win32.Build.0 = Release_Cairo|Win32
- {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release|Win32.ActiveCfg = Release|Win32
- {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release|Win32.Build.0 = Release|Win32
- {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug_Cairo|Win32.ActiveCfg = Debug|Win32
- {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug_Cairo|Win32.Build.0 = Debug|Win32
- {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug|Win32.ActiveCfg = Debug|Win32
- {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug|Win32.Build.0 = Debug|Win32
- {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release_Cairo|Win32.ActiveCfg = Release|Win32
- {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release_Cairo|Win32.Build.0 = Release|Win32
- {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release|Win32.ActiveCfg = Release|Win32
- {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release|Win32.Build.0 = Release|Win32
- {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug_Cairo|Win32.ActiveCfg = Debug_CFLite|Win32
- {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug_Cairo|Win32.Build.0 = Debug_CFLite|Win32
- {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug|Win32.ActiveCfg = Debug|Win32
- {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug|Win32.Build.0 = Debug|Win32
- {C59E5129-B453-49B7-A52B-1E104715F76E}.Release_Cairo|Win32.ActiveCfg = Release|Win32
- {C59E5129-B453-49B7-A52B-1E104715F76E}.Release_Cairo|Win32.Build.0 = Release|Win32
- {C59E5129-B453-49B7-A52B-1E104715F76E}.Release|Win32.ActiveCfg = Release|Win32
- {C59E5129-B453-49B7-A52B-1E104715F76E}.Release|Win32.Build.0 = Release|Win32
- {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug_Cairo|Win32.ActiveCfg = all|Win32
- {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug_Cairo|Win32.Build.0 = all|Win32
- {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug|Win32.ActiveCfg = all|Win32
- {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug|Win32.Build.0 = all|Win32
- {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release_Cairo|Win32.ActiveCfg = all|Win32
- {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release_Cairo|Win32.Build.0 = all|Win32
- {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release|Win32.ActiveCfg = all|Win32
- {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release|Win32.Build.0 = all|Win32
- {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug_Cairo|Win32.ActiveCfg = cairo|Win32
- {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug_Cairo|Win32.Build.0 = cairo|Win32
- {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug|Win32.ActiveCfg = all|Win32
- {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug|Win32.Build.0 = all|Win32
- {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release_Cairo|Win32.ActiveCfg = cairo|Win32
- {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release_Cairo|Win32.Build.0 = cairo|Win32
- {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release|Win32.ActiveCfg = all|Win32
- {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release|Win32.Build.0 = all|Win32
- {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Debug_Cairo|Win32.ActiveCfg = Debug|Win32
- {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Debug|Win32.ActiveCfg = Debug|Win32
- {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Debug|Win32.Build.0 = Debug|Win32
- {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Release_Cairo|Win32.ActiveCfg = Release|Win32
- {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Release|Win32.ActiveCfg = Release|Win32
- {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Release|Win32.Build.0 = Release|Win32
- {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug_Cairo|Win32.ActiveCfg = Debug_CFLite|Win32
- {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug_Cairo|Win32.Build.0 = Debug_CFLite|Win32
- {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug|Win32.ActiveCfg = Debug|Win32
- {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug|Win32.Build.0 = Debug|Win32
- {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Release_Cairo|Win32.ActiveCfg = Release_CFLite|Win32
- {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Release_Cairo|Win32.Build.0 = Release_CFLite|Win32
- {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Release|Win32.ActiveCfg = Release|Win32
- {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Release|Win32.Build.0 = Release|Win32
- {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug_Cairo|Win32.ActiveCfg = Debug_Cairo|Win32
- {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug_Cairo|Win32.Build.0 = Debug_Cairo|Win32
- {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug|Win32.ActiveCfg = Debug|Win32
- {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug|Win32.Build.0 = Debug|Win32
- {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Release_Cairo|Win32.ActiveCfg = Release_Cairo|Win32
- {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Release_Cairo|Win32.Build.0 = Release_Cairo|Win32
- {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Release|Win32.ActiveCfg = Release|Win32
- {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Release|Win32.Build.0 = Release|Win32
- {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug_Cairo|Win32.ActiveCfg = all|Win32
- {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug_Cairo|Win32.Build.0 = all|Win32
- {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug|Win32.ActiveCfg = all|Win32
- {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug|Win32.Build.0 = all|Win32
- {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release_Cairo|Win32.ActiveCfg = all|Win32
- {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release_Cairo|Win32.Build.0 = all|Win32
- {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release|Win32.ActiveCfg = all|Win32
- {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release|Win32.Build.0 = all|Win32
- {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug_Cairo|Win32.ActiveCfg = Debug_CFLite|Win32
- {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug_Cairo|Win32.Build.0 = Debug_CFLite|Win32
- {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug|Win32.ActiveCfg = Debug|Win32
- {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug|Win32.Build.0 = Debug|Win32
- {AAE88FEF-509E-4D49-870B-7357922C276F}.Release_Cairo|Win32.ActiveCfg = Release|Win32
- {AAE88FEF-509E-4D49-870B-7357922C276F}.Release_Cairo|Win32.Build.0 = Release|Win32
- {AAE88FEF-509E-4D49-870B-7357922C276F}.Release|Win32.ActiveCfg = Release|Win32
- {AAE88FEF-509E-4D49-870B-7357922C276F}.Release|Win32.Build.0 = Release|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_Cairo|Win32.ActiveCfg = Debug|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_Cairo|Win32.Build.0 = Debug|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug|Win32.ActiveCfg = Debug|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug|Win32.Build.0 = Debug|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release_Cairo|Win32.ActiveCfg = Release|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release_Cairo|Win32.Build.0 = Release|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release|Win32.ActiveCfg = Release|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release|Win32.Build.0 = Release|Win32
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_Cairo|Win32.ActiveCfg = Debug_Cairo|Win32
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_Cairo|Win32.Build.0 = Debug_Cairo|Win32
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug|Win32.ActiveCfg = Debug|Win32
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug|Win32.Build.0 = Debug|Win32
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release_Cairo|Win32.ActiveCfg = Release_Cairo|Win32
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release_Cairo|Win32.Build.0 = Release_Cairo|Win32
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release|Win32.ActiveCfg = Release|Win32
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release|Win32.Build.0 = Release|Win32
- {B8437A41-67BC-4769-9452-45203827F821}.Debug_Cairo|Win32.ActiveCfg = Debug|Win32
- {B8437A41-67BC-4769-9452-45203827F821}.Debug_Cairo|Win32.Build.0 = Debug|Win32
- {B8437A41-67BC-4769-9452-45203827F821}.Debug|Win32.ActiveCfg = Debug|Win32
- {B8437A41-67BC-4769-9452-45203827F821}.Debug|Win32.Build.0 = Debug|Win32
- {B8437A41-67BC-4769-9452-45203827F821}.Release_Cairo|Win32.ActiveCfg = Release|Win32
- {B8437A41-67BC-4769-9452-45203827F821}.Release_Cairo|Win32.Build.0 = Release|Win32
- {B8437A41-67BC-4769-9452-45203827F821}.Release|Win32.ActiveCfg = Release|Win32
- {B8437A41-67BC-4769-9452-45203827F821}.Release|Win32.Build.0 = Release|Win32
- {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug_Cairo|Win32.ActiveCfg = Debug_Cairo|Win32
- {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug_Cairo|Win32.Build.0 = Debug_Cairo|Win32
- {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug|Win32.ActiveCfg = Debug|Win32
- {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug|Win32.Build.0 = Debug|Win32
- {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release_Cairo|Win32.ActiveCfg = Release_Cairo|Win32
- {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release_Cairo|Win32.Build.0 = Release_Cairo|Win32
- {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release|Win32.ActiveCfg = Release|Win32
- {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release|Win32.Build.0 = Release|Win32
- {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug_Cairo|Win32.ActiveCfg = Debug_Cairo|Win32
- {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug_Cairo|Win32.Build.0 = Debug_Cairo|Win32
- {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug|Win32.ActiveCfg = Debug|Win32
- {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug|Win32.Build.0 = Debug|Win32
- {59CC0547-70AC-499C-9B19-EC01C6F61137}.Release_Cairo|Win32.ActiveCfg = Release|Win32
- {59CC0547-70AC-499C-9B19-EC01C6F61137}.Release_Cairo|Win32.Build.0 = Release|Win32
- {59CC0547-70AC-499C-9B19-EC01C6F61137}.Release|Win32.ActiveCfg = Release|Win32
- {59CC0547-70AC-499C-9B19-EC01C6F61137}.Release|Win32.Build.0 = Release|Win32
- {DA31DA52-6675-48D4-89E0-333A7144397C}.Debug_Cairo|Win32.ActiveCfg = all|Win32
- {DA31DA52-6675-48D4-89E0-333A7144397C}.Debug_Cairo|Win32.Build.0 = all|Win32
- {DA31DA52-6675-48D4-89E0-333A7144397C}.Debug|Win32.ActiveCfg = all|Win32
- {DA31DA52-6675-48D4-89E0-333A7144397C}.Debug|Win32.Build.0 = all|Win32
- {DA31DA52-6675-48D4-89E0-333A7144397C}.Release_Cairo|Win32.ActiveCfg = all|Win32
- {DA31DA52-6675-48D4-89E0-333A7144397C}.Release_Cairo|Win32.Build.0 = all|Win32
- {DA31DA52-6675-48D4-89E0-333A7144397C}.Release|Win32.ActiveCfg = all|Win32
- {DA31DA52-6675-48D4-89E0-333A7144397C}.Release|Win32.Build.0 = all|Win32
- {44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug_Cairo|Win32.ActiveCfg = Release|Win32
- {44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug_Cairo|Win32.Build.0 = Release|Win32
- {44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug|Win32.ActiveCfg = Release|Win32
- {44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug|Win32.Build.0 = Release|Win32
- {44B9C152-1870-4035-B94D-7B3285AA0C12}.Release_Cairo|Win32.ActiveCfg = Release|Win32
- {44B9C152-1870-4035-B94D-7B3285AA0C12}.Release_Cairo|Win32.Build.0 = Release|Win32
- {44B9C152-1870-4035-B94D-7B3285AA0C12}.Release|Win32.ActiveCfg = Release|Win32
- {44B9C152-1870-4035-B94D-7B3285AA0C12}.Release|Win32.Build.0 = Release|Win32
- {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug_Cairo|Win32.ActiveCfg = Debug_Cairo|Win32
- {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug_Cairo|Win32.Build.0 = Debug_Cairo|Win32
- {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug|Win32.ActiveCfg = Debug|Win32
- {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug|Win32.Build.0 = Debug|Win32
- {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release_Cairo|Win32.ActiveCfg = Release|Win32
- {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release_Cairo|Win32.Build.0 = Release|Win32
- {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release|Win32.ActiveCfg = Release|Win32
- {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release|Win32.Build.0 = Release|Win32
- {626089A3-25D3-4883-A96C-B8C66E036397}.Debug_Cairo|Win32.ActiveCfg = Debug_Cairo|Win32
- {626089A3-25D3-4883-A96C-B8C66E036397}.Debug_Cairo|Win32.Build.0 = Debug_Cairo|Win32
- {626089A3-25D3-4883-A96C-B8C66E036397}.Debug|Win32.ActiveCfg = Debug|Win32
- {626089A3-25D3-4883-A96C-B8C66E036397}.Debug|Win32.Build.0 = Debug|Win32
- {626089A3-25D3-4883-A96C-B8C66E036397}.Release_Cairo|Win32.ActiveCfg = Debug_Cairo|Win32
- {626089A3-25D3-4883-A96C-B8C66E036397}.Release_Cairo|Win32.Build.0 = Debug_Cairo|Win32
- {626089A3-25D3-4883-A96C-B8C66E036397}.Release|Win32.ActiveCfg = Debug|Win32
- {626089A3-25D3-4883-A96C-B8C66E036397}.Release|Win32.Build.0 = Debug|Win32
- {D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug_Cairo|Win32.ActiveCfg = Release|Win32
- {D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug_Cairo|Win32.Build.0 = Release|Win32
- {D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug|Win32.ActiveCfg = Release|Win32
- {D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug|Win32.Build.0 = Release|Win32
- {D09806DB-E58B-4646-8C9B-61101906C1E2}.Release_Cairo|Win32.ActiveCfg = Release|Win32
- {D09806DB-E58B-4646-8C9B-61101906C1E2}.Release_Cairo|Win32.Build.0 = Release|Win32
- {D09806DB-E58B-4646-8C9B-61101906C1E2}.Release|Win32.ActiveCfg = Release|Win32
- {D09806DB-E58B-4646-8C9B-61101906C1E2}.Release|Win32.Build.0 = Release|Win32
- {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug_Cairo|Win32.ActiveCfg = Debug_Cairo|Win32
- {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug_Cairo|Win32.Build.0 = Debug_Cairo|Win32
- {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug|Win32.ActiveCfg = Debug|Win32
- {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug|Win32.Build.0 = Debug|Win32
- {114FCA11-216B-4C8C-957E-30A75AE80443}.Release_Cairo|Win32.ActiveCfg = Release|Win32
- {114FCA11-216B-4C8C-957E-30A75AE80443}.Release_Cairo|Win32.Build.0 = Release|Win32
- {114FCA11-216B-4C8C-957E-30A75AE80443}.Release|Win32.ActiveCfg = Release|Win32
- {114FCA11-216B-4C8C-957E-30A75AE80443}.Release|Win32.Build.0 = Release|Win32
- {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug_Cairo|Win32.ActiveCfg = Debug_CFLite|Win32
- {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug_Cairo|Win32.Build.0 = Debug_CFLite|Win32
- {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug|Win32.ActiveCfg = Debug|Win32
- {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug|Win32.Build.0 = Debug|Win32
- {CBC3391C-F060-4BF5-A66E-81404168816B}.Release_Cairo|Win32.ActiveCfg = Release_CFLite|Win32
- {CBC3391C-F060-4BF5-A66E-81404168816B}.Release_Cairo|Win32.Build.0 = Release_CFLite|Win32
- {CBC3391C-F060-4BF5-A66E-81404168816B}.Release|Win32.ActiveCfg = Release|Win32
- {CBC3391C-F060-4BF5-A66E-81404168816B}.Release|Win32.Build.0 = Release|Win32
- {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug_Cairo|Win32.ActiveCfg = all|Win32
- {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug_Cairo|Win32.Build.0 = all|Win32
- {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug|Win32.ActiveCfg = all|Win32
- {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug|Win32.Build.0 = all|Win32
- {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release_Cairo|Win32.ActiveCfg = all|Win32
- {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release_Cairo|Win32.Build.0 = all|Win32
- {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release|Win32.ActiveCfg = all|Win32
- {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release|Win32.Build.0 = all|Win32
- {3B99669B-1817-443B-BCBE-835580146668}.Debug_Cairo|Win32.ActiveCfg = Debug_CFLite|Win32
- {3B99669B-1817-443B-BCBE-835580146668}.Debug_Cairo|Win32.Build.0 = Debug_CFLite|Win32
- {3B99669B-1817-443B-BCBE-835580146668}.Debug|Win32.ActiveCfg = Debug|Win32
- {3B99669B-1817-443B-BCBE-835580146668}.Debug|Win32.Build.0 = Debug|Win32
- {3B99669B-1817-443B-BCBE-835580146668}.Release_Cairo|Win32.ActiveCfg = Release_CFLite|Win32
- {3B99669B-1817-443B-BCBE-835580146668}.Release_Cairo|Win32.Build.0 = Release_CFLite|Win32
- {3B99669B-1817-443B-BCBE-835580146668}.Release|Win32.ActiveCfg = Release|Win32
- {3B99669B-1817-443B-BCBE-835580146668}.Release|Win32.Build.0 = Release|Win32
- {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug_Cairo|Win32.ActiveCfg = Debug_CFLite|Win32
- {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug_Cairo|Win32.Build.0 = Debug_CFLite|Win32
- {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug|Win32.ActiveCfg = Debug|Win32
- {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug|Win32.Build.0 = Debug|Win32
- {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release_Cairo|Win32.ActiveCfg = Release_CFLite|Win32
- {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release_Cairo|Win32.Build.0 = Release_CFLite|Win32
- {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release|Win32.ActiveCfg = Release|Win32
- {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release|Win32.Build.0 = Release|Win32
- {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Debug_Cairo|Win32.ActiveCfg = Debug_CFLite|Win32
- {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Debug_Cairo|Win32.Build.0 = Debug_CFLite|Win32
- {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Debug|Win32.ActiveCfg = Debug|Win32
- {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Debug|Win32.Build.0 = Debug|Win32
- {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Release_Cairo|Win32.ActiveCfg = Release_CFLite|Win32
- {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Release_Cairo|Win32.Build.0 = Release_CFLite|Win32
- {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Release|Win32.ActiveCfg = Release|Win32
- {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Release|Win32.Build.0 = Release|Win32
- {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Debug_Cairo|Win32.ActiveCfg = all|Win32
- {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Debug_Cairo|Win32.Build.0 = all|Win32
- {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Debug|Win32.ActiveCfg = all|Win32
- {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Debug|Win32.Build.0 = all|Win32
- {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Release_Cairo|Win32.ActiveCfg = all|Win32
- {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Release_Cairo|Win32.Build.0 = all|Win32
- {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Release|Win32.ActiveCfg = all|Win32
- {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Release|Win32.Build.0 = all|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {AA8A5A85-592B-4357-BC60-E0E91E026AF6} = {557FA164-0E39-4DEC-B66C-8795C8E52399}
- {C59E5129-B453-49B7-A52B-1E104715F76E} = {557FA164-0E39-4DEC-B66C-8795C8E52399}
- {011D10F1-B656-4A1B-A0C3-3842F02122C5} = {557FA164-0E39-4DEC-B66C-8795C8E52399}
- {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A} = {557FA164-0E39-4DEC-B66C-8795C8E52399}
- {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2} = {557FA164-0E39-4DEC-B66C-8795C8E52399}
- {1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {63FB6F8A-C601-43E3-BD16-A00A465C2CB6}
- {0A324352-B3B6-496C-9E5B-4C7E923E628B} = {63FB6F8A-C601-43E3-BD16-A00A465C2CB6}
- {E498CA9D-3BD2-4D52-8E37-C8DC76526325} = {63FB6F8A-C601-43E3-BD16-A00A465C2CB6}
- {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD} = {9AB9C96C-9039-4FA9-8F83-BBFC8F8B2182}
- {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB} = {9AB9C96C-9039-4FA9-8F83-BBFC8F8B2182}
- {AAE88FEF-509E-4D49-870B-7357922C276F} = {9AB9C96C-9039-4FA9-8F83-BBFC8F8B2182}
- {91762BE2-87EF-4F5A-A480-48B90EB3F406} = {1D359ACC-BE10-45D7-938B-BC7E4B7AA6CA}
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9} = {1D359ACC-BE10-45D7-938B-BC7E4B7AA6CA}
- {B8437A41-67BC-4769-9452-45203827F821} = {1D359ACC-BE10-45D7-938B-BC7E4B7AA6CA}
- {6567DFD4-D6DE-4CD5-825D-17E353D160E1} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
- {59CC0547-70AC-499C-9B19-EC01C6F61137} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
- {DA31DA52-6675-48D4-89E0-333A7144397C} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
- {44B9C152-1870-4035-B94D-7B3285AA0C12} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
- {C0737398-3565-439E-A2B8-AB2BE4D5430C} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
- {626089A3-25D3-4883-A96C-B8C66E036397} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
- {D09806DB-E58B-4646-8C9B-61101906C1E2} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
- {114FCA11-216B-4C8C-957E-30A75AE80443} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
- {CBC3391C-F060-4BF5-A66E-81404168816B} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
- {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
- {3B99669B-1817-443B-BCBE-835580146668} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
- {1480CF5F-4160-47B5-A0E6-96AEC8258FB5} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
- {3E48AB23-D249-488F-A1C4-43CDF52FBD28} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
- {45C45411-7F0E-404D-919A-4EE9BB60BE86} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
- EndGlobalSection
-EndGlobal
+ďťż +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JavaScriptCore", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\JavaScriptCore\JavaScriptCore.vcproj", "{011D10F1-B656-4A1B-A0C3-3842F02122C5}" + ProjectSection(ProjectDependencies) = postProject + {AA8A5A85-592B-4357-BC60-E0E91E026AF6} = {AA8A5A85-592B-4357-BC60-E0E91E026AF6} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebCore", "..\..\..\WebCore\WebCore.vcproj\WebCore.vcproj", "{1C16337B-ACF3-4D03-AA90-851C5B5EADA6}" + ProjectSection(ProjectDependencies) = postProject + {E498CA9D-3BD2-4D52-8E37-C8DC76526325} = {E498CA9D-3BD2-4D52-8E37-C8DC76526325} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WTF", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\WTF\WTF.vcproj", "{AA8A5A85-592B-4357-BC60-E0E91E026AF6}" + ProjectSection(ProjectDependencies) = postProject + {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A} = {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jsc", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\jsc\jsc.vcproj", "{C59E5129-B453-49B7-A52B-1E104715F76E}" + ProjectSection(ProjectDependencies) = postProject + {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2} = {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2} + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JavaScriptCore Folder", "JavaScriptCore Folder", "{557FA164-0E39-4DEC-B66C-8795C8E52399}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JavaScriptCoreGenerated", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\JavaScriptCore\JavaScriptCoreGenerated.vcproj", "{4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebCore Folder", "WebCore Folder", "{63FB6F8A-C601-43E3-BD16-A00A465C2CB6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebCoreGenerated", "..\..\..\WebCore\WebCore.vcproj\WebCoreGenerated.vcproj", "{0A324352-B3B6-496C-9E5B-4C7E923E628B}" + ProjectSection(ProjectDependencies) = postProject + {011D10F1-B656-4A1B-A0C3-3842F02122C5} = {011D10F1-B656-4A1B-A0C3-3842F02122C5} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "QTMovieWin", "..\..\..\WebCore\WebCore.vcproj\QTMovieWin.vcproj", "{E498CA9D-3BD2-4D52-8E37-C8DC76526325}" + ProjectSection(ProjectDependencies) = postProject + {0A324352-B3B6-496C-9E5B-4C7E923E628B} = {0A324352-B3B6-496C-9E5B-4C7E923E628B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testapi", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\testapi\testapi.vcproj", "{1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}" + ProjectSection(ProjectDependencies) = postProject + {DA31DA52-6675-48D4-89E0-333A7144397C} = {DA31DA52-6675-48D4-89E0-333A7144397C} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKit", "..\..\..\WebKit2\win\WebKit2.vcproj", "{2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}" + ProjectSection(ProjectDependencies) = postProject + {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB} = {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB} + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebKit2 Folder", "WebKit2 Folder", "{9AB9C96C-9039-4FA9-8F83-BBFC8F8B2182}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKit2Generated", "..\..\..\WebKit2\win\WebKit2Generated.vcproj", "{2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}" + ProjectSection(ProjectDependencies) = postProject + {0662A8A9-82A3-4638-97D8-EC425D8D87C9} = {0662A8A9-82A3-4638-97D8-EC425D8D87C9} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKit2WebProcess", "..\..\..\WebKit2\win\WebKit2WebProcess.vcproj", "{AAE88FEF-509E-4D49-870B-7357922C276F}" + ProjectSection(ProjectDependencies) = postProject + {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD} = {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD} + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebKitCOM Folder", "WebKitCOM Folder", "{1D359ACC-BE10-45D7-938B-BC7E4B7AA6CA}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Interfaces", "Interfaces.vcproj", "{91762BE2-87EF-4F5A-A480-48B90EB3F406}" + ProjectSection(ProjectDependencies) = postProject + {1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {1C16337B-ACF3-4D03-AA90-851C5B5EADA6} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitLib", "WebKit.vcproj", "{0662A8A9-82A3-4638-97D8-EC425D8D87C9}" + ProjectSection(ProjectDependencies) = postProject + {B8437A41-67BC-4769-9452-45203827F821} = {B8437A41-67BC-4769-9452-45203827F821} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitGUID", "WebKitGUID.vcproj", "{B8437A41-67BC-4769-9452-45203827F821}" + ProjectSection(ProjectDependencies) = postProject + {91762BE2-87EF-4F5A-A480-48B90EB3F406} = {91762BE2-87EF-4F5A-A480-48B90EB3F406} + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebKitTools", "WebKitTools", "{62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DumpRenderTree", "..\..\..\WebKitTools\DumpRenderTree\win\DumpRenderTree.vcproj", "{6567DFD4-D6DE-4CD5-825D-17E353D160E1}" + ProjectSection(ProjectDependencies) = postProject + {59CC0547-70AC-499C-9B19-EC01C6F61137} = {59CC0547-70AC-499C-9B19-EC01C6F61137} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ImageDiff", "..\..\..\WebKitTools\DumpRenderTree\win\ImageDiff.vcproj", "{59CC0547-70AC-499C-9B19-EC01C6F61137}" + ProjectSection(ProjectDependencies) = postProject + {C0737398-3565-439E-A2B8-AB2BE4D5430C} = {C0737398-3565-439E-A2B8-AB2BE4D5430C} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FindSafari", "..\..\..\WebKitTools\FindSafari\FindSafari.vcproj", "{DA31DA52-6675-48D4-89E0-333A7144397C}" + ProjectSection(ProjectDependencies) = postProject + {AAE88FEF-509E-4D49-870B-7357922C276F} = {AAE88FEF-509E-4D49-870B-7357922C276F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "record-memory-win", "..\..\..\WebKitTools\record-memory-win\record-memory-win.vcproj", "{44B9C152-1870-4035-B94D-7B3285AA0C12}" + ProjectSection(ProjectDependencies) = postProject + {D09806DB-E58B-4646-8C9B-61101906C1E2} = {D09806DB-E58B-4646-8C9B-61101906C1E2} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestNetscapePlugin", "..\..\..\WebKitTools\DumpRenderTree\TestNetscapePlugIn\win\TestNetscapePlugin.vcproj", "{C0737398-3565-439E-A2B8-AB2BE4D5430C}" + ProjectSection(ProjectDependencies) = postProject + {114FCA11-216B-4C8C-957E-30A75AE80443} = {114FCA11-216B-4C8C-957E-30A75AE80443} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitAPITest", "..\..\..\WebKitTools\WebKitAPITest\WebKitAPITest.vcproj", "{626089A3-25D3-4883-A96C-B8C66E036397}" + ProjectSection(ProjectDependencies) = postProject + {6567DFD4-D6DE-4CD5-825D-17E353D160E1} = {6567DFD4-D6DE-4CD5-825D-17E353D160E1} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitLauncherWin", "..\..\..\WebKitTools\WebKitLauncherWin\WebKitLauncherWin.vcproj", "{D09806DB-E58B-4646-8C9B-61101906C1E2}" + ProjectSection(ProjectDependencies) = postProject + {626089A3-25D3-4883-A96C-B8C66E036397} = {626089A3-25D3-4883-A96C-B8C66E036397} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinLauncher", "..\..\..\WebKitTools\WinLauncher\WinLauncher.vcproj", "{114FCA11-216B-4C8C-957E-30A75AE80443}" + ProjectSection(ProjectDependencies) = postProject + {C59E5129-B453-49B7-A52B-1E104715F76E} = {C59E5129-B453-49B7-A52B-1E104715F76E} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InjectedBundle", "..\..\..\WebKitTools\WebKitTestRunner\win\InjectedBundle.vcproj", "{CBC3391C-F060-4BF5-A66E-81404168816B}" + ProjectSection(ProjectDependencies) = postProject + {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD} = {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InjectedBundleGenerated", "..\..\..\WebKitTools\WebKitTestRunner\win\InjectedBundleGenerated.vcproj", "{4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}" + ProjectSection(ProjectDependencies) = postProject + {44B9C152-1870-4035-B94D-7B3285AA0C12} = {44B9C152-1870-4035-B94D-7B3285AA0C12} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitTestRunner", "..\..\..\WebKitTools\WebKitTestRunner\win\WebKitTestRunner.vcproj", "{3B99669B-1817-443B-BCBE-835580146668}" + ProjectSection(ProjectDependencies) = postProject + {CBC3391C-F060-4BF5-A66E-81404168816B} = {CBC3391C-F060-4BF5-A66E-81404168816B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MiniBrowser", "..\..\..\WebKitTools\MiniBrowser\MiniBrowser.vcproj", "{1480CF5F-4160-47B5-A0E6-96AEC8258FB5}" + ProjectSection(ProjectDependencies) = postProject + {3E48AB23-D249-488F-A1C4-43CDF52FBD28} = {3E48AB23-D249-488F-A1C4-43CDF52FBD28} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestWebKitAPI", "..\..\..\WebKitTools\TestWebKitAPI\win\TestWebKitAPI.vcproj", "{3E48AB23-D249-488F-A1C4-43CDF52FBD28}" + ProjectSection(ProjectDependencies) = postProject + {45C45411-7F0E-404D-919A-4EE9BB60BE86} = {45C45411-7F0E-404D-919A-4EE9BB60BE86} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestWebKitAPIGenerated", "..\..\..\WebKitTools\TestWebKitAPI\win\TestWebKitAPIGenerated.vcproj", "{45C45411-7F0E-404D-919A-4EE9BB60BE86}" + ProjectSection(ProjectDependencies) = postProject + {3B99669B-1817-443B-BCBE-835580146668} = {3B99669B-1817-443B-BCBE-835580146668} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug_Cairo_CFLite|Win32 = Debug_Cairo_CFLite|Win32 + Debug|Win32 = Debug|Win32 + Release_Cairo_CFLite|Win32 = Release_Cairo_CFLite|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug|Win32.ActiveCfg = Debug|Win32 + {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug|Win32.Build.0 = Debug|Win32 + {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release|Win32.ActiveCfg = Release|Win32 + {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release|Win32.Build.0 = Release|Win32 + {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug|Win32.ActiveCfg = Debug|Win32 + {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug|Win32.Build.0 = Debug|Win32 + {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release|Win32.ActiveCfg = Release|Win32 + {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release|Win32.Build.0 = Release|Win32 + {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug|Win32.ActiveCfg = Debug|Win32 + {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug|Win32.Build.0 = Debug|Win32 + {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release|Win32.ActiveCfg = Release|Win32 + {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release|Win32.Build.0 = Release|Win32 + {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug|Win32.ActiveCfg = Debug|Win32 + {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug|Win32.Build.0 = Debug|Win32 + {C59E5129-B453-49B7-A52B-1E104715F76E}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {C59E5129-B453-49B7-A52B-1E104715F76E}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {C59E5129-B453-49B7-A52B-1E104715F76E}.Release|Win32.ActiveCfg = Release|Win32 + {C59E5129-B453-49B7-A52B-1E104715F76E}.Release|Win32.Build.0 = Release|Win32 + {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug|Win32.ActiveCfg = Debug|Win32 + {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug|Win32.Build.0 = Debug|Win32 + {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release|Win32.ActiveCfg = Release|Win32 + {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release|Win32.Build.0 = Release|Win32 + {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug|Win32.ActiveCfg = Debug|Win32 + {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug|Win32.Build.0 = Debug|Win32 + {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release|Win32.ActiveCfg = Release|Win32 + {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release|Win32.Build.0 = Release|Win32 + {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Debug|Win32.ActiveCfg = Debug|Win32 + {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Debug|Win32.Build.0 = Debug|Win32 + {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Release|Win32.ActiveCfg = Release|Win32 + {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Release|Win32.Build.0 = Release|Win32 + {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug|Win32.ActiveCfg = Debug|Win32 + {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug|Win32.Build.0 = Debug|Win32 + {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Release|Win32.ActiveCfg = Release|Win32 + {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Release|Win32.Build.0 = Release|Win32 + {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug|Win32.ActiveCfg = Debug|Win32 + {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug|Win32.Build.0 = Debug|Win32 + {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Release|Win32.ActiveCfg = Release|Win32 + {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Release|Win32.Build.0 = Release|Win32 + {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug|Win32.ActiveCfg = Debug|Win32 + {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug|Win32.Build.0 = Debug|Win32 + {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release|Win32.ActiveCfg = Release|Win32 + {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release|Win32.Build.0 = Release|Win32 + {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug|Win32.ActiveCfg = Debug|Win32 + {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug|Win32.Build.0 = Debug|Win32 + {AAE88FEF-509E-4D49-870B-7357922C276F}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {AAE88FEF-509E-4D49-870B-7357922C276F}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {AAE88FEF-509E-4D49-870B-7357922C276F}.Release|Win32.ActiveCfg = Release|Win32 + {AAE88FEF-509E-4D49-870B-7357922C276F}.Release|Win32.Build.0 = Release|Win32 + {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug|Win32.ActiveCfg = Debug|Win32 + {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug|Win32.Build.0 = Debug|Win32 + {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release|Win32.ActiveCfg = Release|Win32 + {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release|Win32.Build.0 = Release|Win32 + {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug|Win32.ActiveCfg = Debug|Win32 + {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug|Win32.Build.0 = Debug|Win32 + {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release|Win32.ActiveCfg = Release|Win32 + {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release|Win32.Build.0 = Release|Win32 + {B8437A41-67BC-4769-9452-45203827F821}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {B8437A41-67BC-4769-9452-45203827F821}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {B8437A41-67BC-4769-9452-45203827F821}.Debug|Win32.ActiveCfg = Debug|Win32 + {B8437A41-67BC-4769-9452-45203827F821}.Debug|Win32.Build.0 = Debug|Win32 + {B8437A41-67BC-4769-9452-45203827F821}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {B8437A41-67BC-4769-9452-45203827F821}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {B8437A41-67BC-4769-9452-45203827F821}.Release|Win32.ActiveCfg = Release|Win32 + {B8437A41-67BC-4769-9452-45203827F821}.Release|Win32.Build.0 = Release|Win32 + {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug|Win32.ActiveCfg = Debug|Win32 + {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug|Win32.Build.0 = Debug|Win32 + {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release|Win32.ActiveCfg = Release|Win32 + {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release|Win32.Build.0 = Release|Win32 + {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug|Win32.ActiveCfg = Debug|Win32 + {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug|Win32.Build.0 = Debug|Win32 + {59CC0547-70AC-499C-9B19-EC01C6F61137}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {59CC0547-70AC-499C-9B19-EC01C6F61137}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {59CC0547-70AC-499C-9B19-EC01C6F61137}.Release|Win32.ActiveCfg = Release|Win32 + {59CC0547-70AC-499C-9B19-EC01C6F61137}.Release|Win32.Build.0 = Release|Win32 + {DA31DA52-6675-48D4-89E0-333A7144397C}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {DA31DA52-6675-48D4-89E0-333A7144397C}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {DA31DA52-6675-48D4-89E0-333A7144397C}.Debug|Win32.ActiveCfg = Debug|Win32 + {DA31DA52-6675-48D4-89E0-333A7144397C}.Debug|Win32.Build.0 = Debug|Win32 + {DA31DA52-6675-48D4-89E0-333A7144397C}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {DA31DA52-6675-48D4-89E0-333A7144397C}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {DA31DA52-6675-48D4-89E0-333A7144397C}.Release|Win32.ActiveCfg = Release|Win32 + {DA31DA52-6675-48D4-89E0-333A7144397C}.Release|Win32.Build.0 = Release|Win32 + {44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug|Win32.ActiveCfg = Debug|Win32 + {44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug|Win32.Build.0 = Debug|Win32 + {44B9C152-1870-4035-B94D-7B3285AA0C12}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {44B9C152-1870-4035-B94D-7B3285AA0C12}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {44B9C152-1870-4035-B94D-7B3285AA0C12}.Release|Win32.ActiveCfg = Release|Win32 + {44B9C152-1870-4035-B94D-7B3285AA0C12}.Release|Win32.Build.0 = Release|Win32 + {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug|Win32.ActiveCfg = Debug|Win32 + {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug|Win32.Build.0 = Debug|Win32 + {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release|Win32.ActiveCfg = Release|Win32 + {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release|Win32.Build.0 = Release|Win32 + {626089A3-25D3-4883-A96C-B8C66E036397}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {626089A3-25D3-4883-A96C-B8C66E036397}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {626089A3-25D3-4883-A96C-B8C66E036397}.Debug|Win32.ActiveCfg = Debug|Win32 + {626089A3-25D3-4883-A96C-B8C66E036397}.Debug|Win32.Build.0 = Debug|Win32 + {626089A3-25D3-4883-A96C-B8C66E036397}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {626089A3-25D3-4883-A96C-B8C66E036397}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {626089A3-25D3-4883-A96C-B8C66E036397}.Release|Win32.ActiveCfg = Release|Win32 + {626089A3-25D3-4883-A96C-B8C66E036397}.Release|Win32.Build.0 = Release|Win32 + {D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug|Win32.ActiveCfg = Debug|Win32 + {D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug|Win32.Build.0 = Debug|Win32 + {D09806DB-E58B-4646-8C9B-61101906C1E2}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {D09806DB-E58B-4646-8C9B-61101906C1E2}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {D09806DB-E58B-4646-8C9B-61101906C1E2}.Release|Win32.ActiveCfg = Release|Win32 + {D09806DB-E58B-4646-8C9B-61101906C1E2}.Release|Win32.Build.0 = Release|Win32 + {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug|Win32.ActiveCfg = Debug|Win32 + {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug|Win32.Build.0 = Debug|Win32 + {114FCA11-216B-4C8C-957E-30A75AE80443}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {114FCA11-216B-4C8C-957E-30A75AE80443}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {114FCA11-216B-4C8C-957E-30A75AE80443}.Release|Win32.ActiveCfg = Release|Win32 + {114FCA11-216B-4C8C-957E-30A75AE80443}.Release|Win32.Build.0 = Release|Win32 + {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug|Win32.ActiveCfg = Debug|Win32 + {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug|Win32.Build.0 = Debug|Win32 + {CBC3391C-F060-4BF5-A66E-81404168816B}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {CBC3391C-F060-4BF5-A66E-81404168816B}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {CBC3391C-F060-4BF5-A66E-81404168816B}.Release|Win32.ActiveCfg = Release|Win32 + {CBC3391C-F060-4BF5-A66E-81404168816B}.Release|Win32.Build.0 = Release|Win32 + {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug|Win32.ActiveCfg = Debug|Win32 + {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug|Win32.Build.0 = Debug|Win32 + {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release|Win32.ActiveCfg = Release|Win32 + {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release|Win32.Build.0 = Release|Win32 + {3B99669B-1817-443B-BCBE-835580146668}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {3B99669B-1817-443B-BCBE-835580146668}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {3B99669B-1817-443B-BCBE-835580146668}.Debug|Win32.ActiveCfg = Debug|Win32 + {3B99669B-1817-443B-BCBE-835580146668}.Debug|Win32.Build.0 = Debug|Win32 + {3B99669B-1817-443B-BCBE-835580146668}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {3B99669B-1817-443B-BCBE-835580146668}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {3B99669B-1817-443B-BCBE-835580146668}.Release|Win32.ActiveCfg = Release|Win32 + {3B99669B-1817-443B-BCBE-835580146668}.Release|Win32.Build.0 = Release|Win32 + {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug|Win32.ActiveCfg = Debug|Win32 + {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug|Win32.Build.0 = Debug|Win32 + {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release|Win32.ActiveCfg = Release|Win32 + {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release|Win32.Build.0 = Release|Win32 + {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Debug|Win32.ActiveCfg = Debug|Win32 + {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Debug|Win32.Build.0 = Debug|Win32 + {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Release|Win32.ActiveCfg = Release|Win32 + {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Release|Win32.Build.0 = Release|Win32 + {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 + {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 + {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Debug|Win32.ActiveCfg = Debug|Win32 + {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Debug|Win32.Build.0 = Debug|Win32 + {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 + {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 + {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Release|Win32.ActiveCfg = Release|Win32 + {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {AA8A5A85-592B-4357-BC60-E0E91E026AF6} = {557FA164-0E39-4DEC-B66C-8795C8E52399} + {C59E5129-B453-49B7-A52B-1E104715F76E} = {557FA164-0E39-4DEC-B66C-8795C8E52399} + {011D10F1-B656-4A1B-A0C3-3842F02122C5} = {557FA164-0E39-4DEC-B66C-8795C8E52399} + {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A} = {557FA164-0E39-4DEC-B66C-8795C8E52399} + {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2} = {557FA164-0E39-4DEC-B66C-8795C8E52399} + {1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {63FB6F8A-C601-43E3-BD16-A00A465C2CB6} + {0A324352-B3B6-496C-9E5B-4C7E923E628B} = {63FB6F8A-C601-43E3-BD16-A00A465C2CB6} + {E498CA9D-3BD2-4D52-8E37-C8DC76526325} = {63FB6F8A-C601-43E3-BD16-A00A465C2CB6} + {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD} = {9AB9C96C-9039-4FA9-8F83-BBFC8F8B2182} + {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB} = {9AB9C96C-9039-4FA9-8F83-BBFC8F8B2182} + {AAE88FEF-509E-4D49-870B-7357922C276F} = {9AB9C96C-9039-4FA9-8F83-BBFC8F8B2182} + {91762BE2-87EF-4F5A-A480-48B90EB3F406} = {1D359ACC-BE10-45D7-938B-BC7E4B7AA6CA} + {0662A8A9-82A3-4638-97D8-EC425D8D87C9} = {1D359ACC-BE10-45D7-938B-BC7E4B7AA6CA} + {B8437A41-67BC-4769-9452-45203827F821} = {1D359ACC-BE10-45D7-938B-BC7E4B7AA6CA} + {6567DFD4-D6DE-4CD5-825D-17E353D160E1} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} + {59CC0547-70AC-499C-9B19-EC01C6F61137} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} + {DA31DA52-6675-48D4-89E0-333A7144397C} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} + {44B9C152-1870-4035-B94D-7B3285AA0C12} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} + {C0737398-3565-439E-A2B8-AB2BE4D5430C} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} + {626089A3-25D3-4883-A96C-B8C66E036397} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} + {D09806DB-E58B-4646-8C9B-61101906C1E2} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} + {114FCA11-216B-4C8C-957E-30A75AE80443} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} + {CBC3391C-F060-4BF5-A66E-81404168816B} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} + {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} + {3B99669B-1817-443B-BCBE-835580146668} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} + {1480CF5F-4160-47B5-A0E6-96AEC8258FB5} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} + {3E48AB23-D249-488F-A1C4-43CDF52FBD28} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} + {45C45411-7F0E-404D-919A-4EE9BB60BE86} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} + EndGlobalSection +EndGlobal diff --git a/WebKit/win/WebKit.vcproj/WebKit.submit.sln b/WebKit/win/WebKit.vcproj/WebKit.submit.sln index 75d79de..c4830fc 100644 --- a/WebKit/win/WebKit.vcproj/WebKit.submit.sln +++ b/WebKit/win/WebKit.vcproj/WebKit.submit.sln @@ -1,60 +1,53 @@ -ďťż
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitLib", "WebKit.vcproj", "{0662A8A9-82A3-4638-97D8-EC425D8D87C9}"
- ProjectSection(ProjectDependencies) = postProject
- {91762BE2-87EF-4F5A-A480-48B90EB3F406} = {91762BE2-87EF-4F5A-A480-48B90EB3F406}
- {B8437A41-67BC-4769-9452-45203827F821} = {B8437A41-67BC-4769-9452-45203827F821}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitGUID", "WebKitGUID.vcproj", "{B8437A41-67BC-4769-9452-45203827F821}"
- ProjectSection(ProjectDependencies) = postProject
- {91762BE2-87EF-4F5A-A480-48B90EB3F406} = {91762BE2-87EF-4F5A-A480-48B90EB3F406}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Interfaces", "Interfaces.vcproj", "{91762BE2-87EF-4F5A-A480-48B90EB3F406}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug_All|Win32 = Debug_All|Win32
- Debug_Internal|Win32 = Debug_Internal|Win32
- Debug|Win32 = Debug|Win32
- Release_LTCG|Win32 = Release_LTCG|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_All|Win32.Build.0 = Debug_All|Win32
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_Internal|Win32.ActiveCfg = Debug_Internal|Win32
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_Internal|Win32.Build.0 = Debug_Internal|Win32
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug|Win32.ActiveCfg = Debug|Win32
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug|Win32.Build.0 = Debug|Win32
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release|Win32.ActiveCfg = Release|Win32
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release|Win32.Build.0 = Release|Win32
- {B8437A41-67BC-4769-9452-45203827F821}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
- {B8437A41-67BC-4769-9452-45203827F821}.Debug_All|Win32.Build.0 = Debug_All|Win32
- {B8437A41-67BC-4769-9452-45203827F821}.Debug_Internal|Win32.ActiveCfg = Debug_Internal|Win32
- {B8437A41-67BC-4769-9452-45203827F821}.Debug_Internal|Win32.Build.0 = Debug_Internal|Win32
- {B8437A41-67BC-4769-9452-45203827F821}.Debug|Win32.ActiveCfg = Debug|Win32
- {B8437A41-67BC-4769-9452-45203827F821}.Debug|Win32.Build.0 = Debug|Win32
- {B8437A41-67BC-4769-9452-45203827F821}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {B8437A41-67BC-4769-9452-45203827F821}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
- {B8437A41-67BC-4769-9452-45203827F821}.Release|Win32.ActiveCfg = Release|Win32
- {B8437A41-67BC-4769-9452-45203827F821}.Release|Win32.Build.0 = Release|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_All|Win32.ActiveCfg = Debug|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_All|Win32.Build.0 = Debug|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_Internal|Win32.ActiveCfg = Debug|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_Internal|Win32.Build.0 = Debug|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug|Win32.ActiveCfg = Debug|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug|Win32.Build.0 = Debug|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release|Win32.ActiveCfg = Release|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
+ďťż +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitLib", "WebKit.vcproj", "{0662A8A9-82A3-4638-97D8-EC425D8D87C9}" + ProjectSection(ProjectDependencies) = postProject + {91762BE2-87EF-4F5A-A480-48B90EB3F406} = {91762BE2-87EF-4F5A-A480-48B90EB3F406} + {B8437A41-67BC-4769-9452-45203827F821} = {B8437A41-67BC-4769-9452-45203827F821} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitGUID", "WebKitGUID.vcproj", "{B8437A41-67BC-4769-9452-45203827F821}" + ProjectSection(ProjectDependencies) = postProject + {91762BE2-87EF-4F5A-A480-48B90EB3F406} = {91762BE2-87EF-4F5A-A480-48B90EB3F406} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Interfaces", "Interfaces.vcproj", "{91762BE2-87EF-4F5A-A480-48B90EB3F406}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug_All|Win32 = Debug_All|Win32 + Debug|Win32 = Debug|Win32 + Release_LTCG|Win32 = Release_LTCG|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 + {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_All|Win32.Build.0 = Debug_All|Win32 + {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug|Win32.ActiveCfg = Debug|Win32 + {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug|Win32.Build.0 = Debug|Win32 + {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 + {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release|Win32.ActiveCfg = Release|Win32 + {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release|Win32.Build.0 = Release|Win32 + {B8437A41-67BC-4769-9452-45203827F821}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 + {B8437A41-67BC-4769-9452-45203827F821}.Debug_All|Win32.Build.0 = Debug_All|Win32 + {B8437A41-67BC-4769-9452-45203827F821}.Debug|Win32.ActiveCfg = Debug|Win32 + {B8437A41-67BC-4769-9452-45203827F821}.Debug|Win32.Build.0 = Debug|Win32 + {B8437A41-67BC-4769-9452-45203827F821}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 + {B8437A41-67BC-4769-9452-45203827F821}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {B8437A41-67BC-4769-9452-45203827F821}.Release|Win32.ActiveCfg = Release|Win32 + {B8437A41-67BC-4769-9452-45203827F821}.Release|Win32.Build.0 = Release|Win32 + {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_All|Win32.ActiveCfg = Debug|Win32 + {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_All|Win32.Build.0 = Debug|Win32 + {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug|Win32.ActiveCfg = Debug|Win32 + {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug|Win32.Build.0 = Debug|Win32 + {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 + {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release|Win32.ActiveCfg = Release|Win32 + {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/WebKit/win/WebKit.vcproj/WebKit.vcproj b/WebKit/win/WebKit.vcproj/WebKit.vcproj index c5392ee..bf13191 100644 --- a/WebKit/win/WebKit.vcproj/WebKit.vcproj +++ b/WebKit/win/WebKit.vcproj/WebKit.vcproj @@ -1,1405 +1,1319 @@ -<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8.00"
- Name="WebKitLib"
- ProjectGUID="{0662A8A9-82A3-4638-97D8-EC425D8D87C9}"
- RootNamespace="WebKit"
- Keyword="Win32Proj"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- ConfigurationType="4"
- InheritedPropertySheets="$(WebKitLibrariesDir)\tools\vsprops\FeatureDefines.vsprops;$(WebKitLibrariesDir)\tools\vsprops\common.vsprops;$(WebKitLibrariesDir)\tools\vsprops\debug.vsprops;.\WebKitLibCommon.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- ConfigurationType="4"
- InheritedPropertySheets="$(WebKitLibrariesDir)\tools\vsprops\FeatureDefines.vsprops;$(WebKitLibrariesDir)\tools\vsprops\common.vsprops;$(WebKitLibrariesDir)\tools\vsprops\release.vsprops;.\WebKitLibCommon.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Debug_Internal|Win32"
- ConfigurationType="4"
- InheritedPropertySheets="$(WebKitLibrariesDir)\tools\vsprops\FeatureDefines.vsprops;$(WebKitLibrariesDir)\tools\vsprops\common.vsprops;$(WebKitLibrariesDir)\tools\vsprops\debug.vsprops;$(WebKitLibrariesDir)\tools\vsprops\debug_internal.vsprops;.\WebKitLibCommon.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Debug_Cairo|Win32"
- ConfigurationType="4"
- InheritedPropertySheets="$(WebKitLibrariesDir)\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitLibrariesDir)\tools\vsprops\common.vsprops;$(WebKitLibrariesDir)\tools\vsprops\debug_wincairo.vsprops;$(WebKitLibrariesDir)\tools\vsprops\WinCairo.vsprops;$(WebKitLibrariesDir)\tools\vsprops\cURL.vsprops;.\WebKitLibCommon.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release_Cairo|Win32"
- ConfigurationType="4"
- InheritedPropertySheets="$(WebKitLibrariesDir)\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitLibrariesDir)\tools\vsprops\common.vsprops;$(WebKitLibrariesDir)\tools\vsprops\release.vsprops;$(WebKitLibrariesDir)\tools\vsprops\WinCairo.vsprops;$(WebKitLibrariesDir)\tools\vsprops\cURL.vsprops;.\WebKitLibCommon.vsprops"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Debug_All|Win32"
- ConfigurationType="4"
- InheritedPropertySheets="$(WebKitLibrariesDir)\tools\vsprops\FeatureDefines.vsprops;$(WebKitLibrariesDir)\tools\vsprops\common.vsprops;$(WebKitLibrariesDir)\tools\vsprops\debug.vsprops;$(WebKitLibrariesDir)\tools\vsprops\debug_internal.vsprops;$(WebKitLibrariesDir)\tools\vsprops\debug_all.vsprops;.\WebKitLibCommon.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release_LTCG|Win32"
- ConfigurationType="4"
- InheritedPropertySheets="$(WebKitLibrariesDir)\tools\vsprops\FeatureDefines.vsprops;$(WebKitLibrariesDir)\tools\vsprops\common.vsprops;$(WebKitLibrariesDir)\tools\vsprops\release.vsprops;.\WebKitLibCommon.vsprops"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath="..\MarshallingHelpers.cpp"
- >
- </File>
- <File
- RelativePath="..\WebKitClassFactory.cpp"
- >
- </File>
- <File
- RelativePath="..\WebKitDLL.cpp"
- >
- </File>
- <File
- RelativePath="..\WebKitSystemBits.cpp"
- >
- </File>
- <File
- RelativePath="..\WebNodeHighlight.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath="..\AccessibleBase.h"
- >
- </File>
- <File
- RelativePath="..\AccessibleDocument.h"
- >
- </File>
- <File
- RelativePath="..\AccessibleImage.h"
- >
- </File>
- <File
- RelativePath=".\autoversion.h"
- >
- </File>
- <File
- RelativePath="..\CFDictionaryPropertyBag.h"
- >
- </File>
- <File
- RelativePath="..\CodeAnalysisConfig.h"
- >
- </File>
- <File
- RelativePath="..\COMEnumVariant.h"
- >
- </File>
- <File
- RelativePath="..\COMPropertyBag.h"
- >
- </File>
- <File
- RelativePath="..\COMVariantSetter.h"
- >
- </File>
- <File
- RelativePath="..\DefaultDownloadDelegate.h"
- >
- </File>
- <File
- RelativePath="..\DefaultPolicyDelegate.h"
- >
- </File>
- <File
- RelativePath="..\DOMCoreClasses.h"
- >
- </File>
- <File
- RelativePath="..\DOMCSSClasses.h"
- >
- </File>
- <File
- RelativePath="..\DOMEventsClasses.h"
- >
- </File>
- <File
- RelativePath="..\DOMHTMLClasses.h"
- >
- </File>
- <File
- RelativePath="..\ForEachCoClass.h"
- >
- </File>
- <File
- RelativePath="..\FullscreenVideoController.h"
- >
- </File>
- <File
- RelativePath="..\MarshallingHelpers.h"
- >
- </File>
- <File
- RelativePath="..\MemoryStream.h"
- >
- </File>
- <File
- RelativePath="..\ProgIDMacros.h"
- >
- </File>
- <File
- RelativePath=".\resource.h"
- >
- </File>
- <File
- RelativePath="..\WebActionPropertyBag.h"
- >
- </File>
- <File
- RelativePath="..\WebArchive.h"
- >
- </File>
- <File
- RelativePath="..\WebBackForwardList.h"
- >
- </File>
- <File
- RelativePath="..\WebCache.h"
- >
- </File>
- <File
- RelativePath="..\WebCachedFramePlatformData.h"
- >
- </File>
- <File
- RelativePath="..\WebCookieManager.h"
- >
- </File>
- <File
- RelativePath="..\WebCoreStatistics.h"
- >
- </File>
- <File
- RelativePath="..\WebDatabaseManager.h"
- >
- </File>
- <File
- RelativePath="..\WebDataSource.h"
- >
- </File>
- <File
- RelativePath="..\WebDocumentLoader.h"
- >
- </File>
- <File
- RelativePath="..\WebDownload.h"
- >
- </File>
- <File
- RelativePath="..\WebDropSource.h"
- >
- </File>
- <File
- RelativePath="..\WebElementPropertyBag.h"
- >
- </File>
- <File
- RelativePath="..\WebError.h"
- >
- </File>
- <File
- RelativePath="..\WebFrame.h"
- >
- </File>
- <File
- RelativePath="..\WebFramePolicyListener.h"
- >
- </File>
- <File
- RelativePath="..\WebGeolocationPolicyListener.h"
- >
- </File>
- <File
- RelativePath="..\WebGeolocationPosition.h"
- >
- </File>
- <File
- RelativePath="..\WebHistory.h"
- >
- </File>
- <File
- RelativePath="..\WebHistoryItem.h"
- >
- </File>
- <File
- RelativePath="..\WebHTMLRepresentation.h"
- >
- </File>
- <File
- RelativePath="..\WebIconDatabase.h"
- >
- </File>
- <File
- RelativePath="..\WebInspector.h"
- >
- </File>
- <File
- RelativePath="..\WebJavaScriptCollector.h"
- >
- </File>
- <File
- RelativePath="..\WebKitClassFactory.h"
- >
- </File>
- <File
- RelativePath="..\WebKitDLL.h"
- >
- </File>
- <File
- RelativePath="..\WebKitGraphics.h"
- >
- <FileConfiguration
- Name="Debug_Cairo|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCustomBuildTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_Cairo|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCustomBuildTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\WebKitLogging.h"
- >
- </File>
- <File
- RelativePath="..\WebKitStatistics.h"
- >
- </File>
- <File
- RelativePath="..\WebKitStatisticsPrivate.h"
- >
- </File>
- <File
- RelativePath="..\WebKitSystemBits.h"
- >
- </File>
- <File
- RelativePath="..\WebLocalizableStrings.h"
- >
- <FileConfiguration
- Name="Debug_Cairo|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCustomBuildTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_Cairo|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCustomBuildTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\WebMutableURLRequest.h"
- >
- </File>
- <File
- RelativePath="..\WebNavigationData.h"
- >
- </File>
- <File
- RelativePath="..\WebNodeHighlight.h"
- >
- </File>
- <File
- RelativePath="..\WebNotification.h"
- >
- </File>
- <File
- RelativePath="..\WebNotificationCenter.h"
- >
- </File>
- <File
- RelativePath="..\WebPreferenceKeysPrivate.h"
- >
- </File>
- <File
- RelativePath="..\WebPreferences.h"
- >
- </File>
- <File
- RelativePath="..\WebResource.h"
- >
- </File>
- <File
- RelativePath="..\WebScriptObject.h"
- >
- </File>
- <File
- RelativePath="..\WebScriptWorld.h"
- >
- </File>
- <File
- RelativePath="..\WebScriptWorld.h"
- >
- </File>
- <File
- RelativePath="..\WebScrollBar.h"
- >
- </File>
- <File
- RelativePath="..\WebSecurityOrigin.h"
- >
- </File>
- <File
- RelativePath="..\WebSerializedJSValue.h"
- >
- </File>
- <File
- RelativePath="..\WebTextRenderer.h"
- >
- </File>
- <File
- RelativePath="..\WebURLAuthenticationChallenge.h"
- >
- </File>
- <File
- RelativePath="..\WebURLAuthenticationChallengeSender.h"
- >
- </File>
- <File
- RelativePath="..\WebURLCredential.h"
- >
- </File>
- <File
- RelativePath="..\WebURLProtectionSpace.h"
- >
- </File>
- <File
- RelativePath="..\WebURLResponse.h"
- >
- </File>
- <File
- RelativePath="..\WebUserContentURLPattern.h"
- >
- </File>
- <File
- RelativePath="..\WebView.h"
- >
- </File>
- <File
- RelativePath="..\WebWorkersPrivate.h"
- >
- </File>
- <File
- RelativePath="..\WindowsTouch.h"
- >
- </File>
- </Filter>
- <Filter
- Name="Classes"
- >
- <File
- RelativePath="..\AccessibleBase.cpp"
- >
- </File>
- <File
- RelativePath="..\AccessibleDocument.cpp"
- >
- </File>
- <File
- RelativePath="..\AccessibleImage.cpp"
- >
- </File>
- <File
- RelativePath="..\CFDictionaryPropertyBag.cpp"
- >
- </File>
- <File
- RelativePath="..\DefaultDownloadDelegate.cpp"
- >
- </File>
- <File
- RelativePath="..\DefaultPolicyDelegate.cpp"
- >
- </File>
- <File
- RelativePath="..\DOMCoreClasses.cpp"
- >
- </File>
- <File
- RelativePath="..\DOMCSSClasses.cpp"
- >
- </File>
- <File
- RelativePath="..\DOMEventsClasses.cpp"
- >
- </File>
- <File
- RelativePath="..\DOMHTMLClasses.cpp"
- >
- </File>
- <File
- RelativePath="..\ForEachCoClass.cpp"
- >
- </File>
- <File
- RelativePath="..\FullscreenVideoController.cpp"
- >
- </File>
- <File
- RelativePath="..\MemoryStream.cpp"
- >
- </File>
- <File
- RelativePath="..\WebActionPropertyBag.cpp"
- >
- </File>
- <File
- RelativePath="..\WebArchive.cpp"
- >
- </File>
- <File
- RelativePath="..\WebBackForwardList.cpp"
- >
- </File>
- <File
- RelativePath="..\WebCache.cpp"
- >
- </File>
- <File
- RelativePath="..\WebCookieManager.cpp"
- >
- </File>
- <File
- RelativePath="..\WebCookieManagerCFNet.cpp"
- >
- <FileConfiguration
- Name="Debug_Cairo|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_Cairo|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\WebCookieManagerCurl.cpp"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug_Internal|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug_All|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\WebCoreStatistics.cpp"
- >
- </File>
- <File
- RelativePath="..\WebDatabaseManager.cpp"
- >
- </File>
- <File
- RelativePath="..\WebDataSource.cpp"
- >
- </File>
- <File
- RelativePath="..\WebDocumentLoader.cpp"
- >
- </File>
- <File
- RelativePath="..\WebDownload.cpp"
- >
- </File>
- <File
- RelativePath="..\WebDownloadCFNet.cpp"
- >
- <FileConfiguration
- Name="Debug_Cairo|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_Cairo|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\WebDownloadCurl.cpp"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug_Internal|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug_All|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\WebDropSource.cpp"
- >
- </File>
- <File
- RelativePath="..\WebElementPropertyBag.cpp"
- >
- </File>
- <File
- RelativePath="..\WebError.cpp"
- >
- </File>
- <File
- RelativePath="..\WebFrame.cpp"
- >
- </File>
- <File
- RelativePath="..\WebFramePolicyListener.cpp"
- >
- </File>
- <File
- RelativePath="..\WebGeolocationPolicyListener.cpp"
- >
- </File>
- <File
- RelativePath="..\WebGeolocationPosition.cpp"
- >
- </File>
- <File
- RelativePath="..\WebHistory.cpp"
- >
- </File>
- <File
- RelativePath="..\WebHistoryItem.cpp"
- >
- </File>
- <File
- RelativePath="..\WebHTMLRepresentation.cpp"
- >
- </File>
- <File
- RelativePath="..\WebIconDatabase.cpp"
- >
- </File>
- <File
- RelativePath="..\WebInspector.cpp"
- >
- </File>
- <File
- RelativePath="..\WebJavaScriptCollector.cpp"
- >
- </File>
- <File
- RelativePath="..\WebKitLogging.cpp"
- >
- </File>
- <File
- RelativePath="..\WebKitStatistics.cpp"
- >
- </File>
- <File
- RelativePath="..\WebMutableURLRequest.cpp"
- >
- </File>
- <File
- RelativePath="..\WebNavigationData.cpp"
- >
- </File>
- <File
- RelativePath="..\WebNotification.cpp"
- >
- </File>
- <File
- RelativePath="..\WebNotificationCenter.cpp"
- >
- </File>
- <File
- RelativePath="..\WebPreferences.cpp"
- >
- </File>
- <File
- RelativePath="..\WebResource.cpp"
- >
- </File>
- <File
- RelativePath="..\WebScriptObject.cpp"
- >
- </File>
- <File
- RelativePath="..\WebScriptWorld.cpp"
- >
- </File>
- <File
- RelativePath="..\WebScriptWorld.cpp"
- >
- </File>
- <File
- RelativePath="..\WebScrollBar.cpp"
- >
- </File>
- <File
- RelativePath="..\WebSecurityOrigin.cpp"
- >
- </File>
- <File
- RelativePath="..\WebSerializedJSValue.cpp"
- >
- </File>
- <File
- RelativePath="..\WebTextRenderer.cpp"
- >
- </File>
- <File
- RelativePath="..\WebURLAuthenticationChallenge.cpp"
- >
- </File>
- <File
- RelativePath="..\WebURLAuthenticationChallengeSender.cpp"
- >
- </File>
- <File
- RelativePath="..\WebURLAuthenticationChallengeSenderCFNet.cpp"
- >
- <FileConfiguration
- Name="Debug_Cairo|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_Cairo|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\WebURLAuthenticationChallengeSenderCurl.cpp"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug_Internal|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug_All|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\WebURLCredential.cpp"
- >
- </File>
- <File
- RelativePath="..\WebURLProtectionSpace.cpp"
- >
- </File>
- <File
- RelativePath="..\WebURLResponse.cpp"
- >
- </File>
- <File
- RelativePath="..\WebUserContentURLPattern.cpp"
- >
- </File>
- <File
- RelativePath="..\WebView.cpp"
- >
- </File>
- <File
- RelativePath="..\WebWorkersPrivate.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="API"
- >
- <File
- RelativePath="..\WebKitCOMAPI.cpp"
- >
- </File>
- <File
- RelativePath="..\WebKitGraphics.cpp"
- >
- <FileConfiguration
- Name="Debug_Cairo|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_Cairo|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\WebLocalizableStrings.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="WebCoreSupport"
- >
- <File
- RelativePath="..\WebCoreSupport\EmbeddedWidget.cpp"
- >
- </File>
- <File
- RelativePath="..\WebCoreSupport\EmbeddedWidget.h"
- >
- </File>
- <File
- RelativePath="..\WebCoreSupport\WebChromeClient.cpp"
- >
- </File>
- <File
- RelativePath="..\WebCoreSupport\WebChromeClient.h"
- >
- </File>
- <File
- RelativePath="..\WebCoreSupport\WebContextMenuClient.cpp"
- >
- </File>
- <File
- RelativePath="..\WebCoreSupport\WebContextMenuClient.h"
- >
- </File>
- <File
- RelativePath="..\WebCoreSupport\WebDesktopNotificationsDelegate.cpp"
- >
- </File>
- <File
- RelativePath="..\WebCoreSupport\WebDesktopNotificationsDelegate.h"
- >
- </File>
- <File
- RelativePath="..\WebCoreSupport\WebDragClient.cpp"
- >
- </File>
- <File
- RelativePath="..\WebCoreSupport\WebDragClient.h"
- >
- </File>
- <File
- RelativePath="..\WebCoreSupport\WebEditorClient.cpp"
- >
- </File>
- <File
- RelativePath="..\WebCoreSupport\WebEditorClient.h"
- >
- </File>
- <File
- RelativePath="..\WebCoreSupport\WebFrameLoaderClient.cpp"
- >
- </File>
- <File
- RelativePath="..\WebCoreSupport\WebFrameLoaderClient.h"
- >
- </File>
- <File
- RelativePath="..\WebCoreSupport\WebFrameNetworkingContext.cpp"
- >
- </File>
- <File
- RelativePath="..\WebCoreSupport\WebFrameNetworkingContext.h"
- >
- </File>
- <File
- RelativePath="..\WebCoreSupport\WebGeolocationClient.cpp"
- >
- </File>
- <File
- RelativePath="..\WebCoreSupport\WebGeolocationClient.h"
- >
- </File>
- <File
- RelativePath="..\WebCoreSupport\WebInspectorClient.cpp"
- >
- </File>
- <File
- RelativePath="..\WebCoreSupport\WebInspectorClient.h"
- >
- </File>
- <File
- RelativePath="..\..\cf\WebCoreSupport\WebInspectorClientCF.cpp"
- >
- </File>
- <File
- RelativePath="..\WebCoreSupport\WebInspectorDelegate.cpp"
- >
- </File>
- <File
- RelativePath="..\WebCoreSupport\WebInspectorDelegate.h"
- >
- </File>
- <File
- RelativePath="..\WebCoreSupport\WebPlatformStrategies.cpp"
- >
- </File>
- <File
- RelativePath="..\WebCoreSupport\WebPlatformStrategies.h"
- >
- </File>
- <File
- RelativePath="..\WebCoreSupport\WebPluginHalterClient.cpp"
- >
- </File>
- <File
- RelativePath="..\WebCoreSupport\WebPluginHalterClient.h"
- >
- </File>
- </Filter>
- <File
- RelativePath="..\WebKitPrefix.cpp"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug_Internal|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"
- PrecompiledHeaderThrough="WebKitPrefix.h"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug_Cairo|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_Cairo|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug_All|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"
- PrecompiledHeaderThrough="WebKitPrefix.h"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_LTCG|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\WebKitPrefix.h"
- >
- </File>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
+<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="WebKitLib" + ProjectGUID="{0662A8A9-82A3-4638-97D8-EC425D8D87C9}" + RootNamespace="WebKit" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + ConfigurationType="4" + InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;.\WebKitLibCommon.vsprops" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + ConfigurationType="4" + InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;.\WebKitLibCommon.vsprops" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Debug_Cairo_CFLite|Win32" + ConfigurationType="4" + InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\debug_wincairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\cURL.vsprops;.\WebKitLibCommon.vsprops" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release_Cairo_CFLite|Win32" + ConfigurationType="4" + InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\cURL.vsprops;.\WebKitLibCommon.vsprops" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Debug_All|Win32" + ConfigurationType="4" + InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\debug_all.vsprops;.\WebKitLibCommon.vsprops" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release_LTCG|Win32" + ConfigurationType="4" + InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;.\WebKitLibCommon.vsprops" + CharacterSet="1" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" + > + <File + RelativePath="..\MarshallingHelpers.cpp" + > + </File> + <File + RelativePath="..\WebKitClassFactory.cpp" + > + </File> + <File + RelativePath="..\WebKitDLL.cpp" + > + </File> + <File + RelativePath="..\WebKitSystemBits.cpp" + > + </File> + <File + RelativePath="..\WebNodeHighlight.cpp" + > + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" + > + <File + RelativePath="..\AccessibleBase.h" + > + </File> + <File + RelativePath="..\AccessibleDocument.h" + > + </File> + <File + RelativePath="..\AccessibleImage.h" + > + </File> + <File + RelativePath=".\autoversion.h" + > + </File> + <File + RelativePath="..\CFDictionaryPropertyBag.h" + > + </File> + <File + RelativePath="..\CodeAnalysisConfig.h" + > + </File> + <File + RelativePath="..\COMEnumVariant.h" + > + </File> + <File + RelativePath="..\COMPropertyBag.h" + > + </File> + <File + RelativePath="..\COMVariantSetter.h" + > + </File> + <File + RelativePath="..\DefaultDownloadDelegate.h" + > + </File> + <File + RelativePath="..\DefaultPolicyDelegate.h" + > + </File> + <File + RelativePath="..\DOMCoreClasses.h" + > + </File> + <File + RelativePath="..\DOMCSSClasses.h" + > + </File> + <File + RelativePath="..\DOMEventsClasses.h" + > + </File> + <File + RelativePath="..\DOMHTMLClasses.h" + > + </File> + <File + RelativePath="..\ForEachCoClass.h" + > + </File> + <File + RelativePath="..\FullscreenVideoController.h" + > + </File> + <File + RelativePath="..\MarshallingHelpers.h" + > + </File> + <File + RelativePath="..\MemoryStream.h" + > + </File> + <File + RelativePath="..\ProgIDMacros.h" + > + </File> + <File + RelativePath=".\resource.h" + > + </File> + <File + RelativePath="..\WebActionPropertyBag.h" + > + </File> + <File + RelativePath="..\WebArchive.h" + > + </File> + <File + RelativePath="..\WebBackForwardList.h" + > + </File> + <File + RelativePath="..\WebCache.h" + > + </File> + <File + RelativePath="..\WebCachedFramePlatformData.h" + > + </File> + <File + RelativePath="..\WebCookieManager.h" + > + </File> + <File + RelativePath="..\WebCoreStatistics.h" + > + </File> + <File + RelativePath="..\WebDatabaseManager.h" + > + </File> + <File + RelativePath="..\WebDataSource.h" + > + </File> + <File + RelativePath="..\WebDocumentLoader.h" + > + </File> + <File + RelativePath="..\WebDownload.h" + > + </File> + <File + RelativePath="..\WebDropSource.h" + > + </File> + <File + RelativePath="..\WebElementPropertyBag.h" + > + </File> + <File + RelativePath="..\WebError.h" + > + </File> + <File + RelativePath="..\WebFrame.h" + > + </File> + <File + RelativePath="..\WebFramePolicyListener.h" + > + </File> + <File + RelativePath="..\WebGeolocationPolicyListener.h" + > + </File> + <File + RelativePath="..\WebGeolocationPosition.h" + > + </File> + <File + RelativePath="..\WebHistory.h" + > + </File> + <File + RelativePath="..\WebHistoryItem.h" + > + </File> + <File + RelativePath="..\WebHTMLRepresentation.h" + > + </File> + <File + RelativePath="..\WebIconDatabase.h" + > + </File> + <File + RelativePath="..\WebInspector.h" + > + </File> + <File + RelativePath="..\WebJavaScriptCollector.h" + > + </File> + <File + RelativePath="..\WebKitClassFactory.h" + > + </File> + <File + RelativePath="..\WebKitDLL.h" + > + </File> + <File + RelativePath="..\WebKitGraphics.h" + > + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCustomBuildTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCustomBuildTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\WebKitLogging.h" + > + </File> + <File + RelativePath="..\WebKitStatistics.h" + > + </File> + <File + RelativePath="..\WebKitStatisticsPrivate.h" + > + </File> + <File + RelativePath="..\WebKitSystemBits.h" + > + </File> + <File + RelativePath="..\WebLocalizableStrings.h" + > + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCustomBuildTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCustomBuildTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\WebMutableURLRequest.h" + > + </File> + <File + RelativePath="..\WebNavigationData.h" + > + </File> + <File + RelativePath="..\WebNodeHighlight.h" + > + </File> + <File + RelativePath="..\WebNotification.h" + > + </File> + <File + RelativePath="..\WebNotificationCenter.h" + > + </File> + <File + RelativePath="..\WebPreferenceKeysPrivate.h" + > + </File> + <File + RelativePath="..\WebPreferences.h" + > + </File> + <File + RelativePath="..\WebResource.h" + > + </File> + <File + RelativePath="..\WebScriptObject.h" + > + </File> + <File + RelativePath="..\WebScriptWorld.h" + > + </File> + <File + RelativePath="..\WebScriptWorld.h" + > + </File> + <File + RelativePath="..\WebScrollBar.h" + > + </File> + <File + RelativePath="..\WebSecurityOrigin.h" + > + </File> + <File + RelativePath="..\WebSerializedJSValue.h" + > + </File> + <File + RelativePath="..\WebTextRenderer.h" + > + </File> + <File + RelativePath="..\WebURLAuthenticationChallenge.h" + > + </File> + <File + RelativePath="..\WebURLAuthenticationChallengeSender.h" + > + </File> + <File + RelativePath="..\WebURLCredential.h" + > + </File> + <File + RelativePath="..\WebURLProtectionSpace.h" + > + </File> + <File + RelativePath="..\WebURLResponse.h" + > + </File> + <File + RelativePath="..\WebUserContentURLPattern.h" + > + </File> + <File + RelativePath="..\WebView.h" + > + </File> + <File + RelativePath="..\WebWorkersPrivate.h" + > + </File> + <File + RelativePath="..\WindowsTouch.h" + > + </File> + </Filter> + <Filter + Name="Classes" + > + <File + RelativePath="..\AccessibleBase.cpp" + > + </File> + <File + RelativePath="..\AccessibleDocument.cpp" + > + </File> + <File + RelativePath="..\AccessibleImage.cpp" + > + </File> + <File + RelativePath="..\CFDictionaryPropertyBag.cpp" + > + </File> + <File + RelativePath="..\DefaultDownloadDelegate.cpp" + > + </File> + <File + RelativePath="..\DefaultPolicyDelegate.cpp" + > + </File> + <File + RelativePath="..\DOMCoreClasses.cpp" + > + </File> + <File + RelativePath="..\DOMCSSClasses.cpp" + > + </File> + <File + RelativePath="..\DOMEventsClasses.cpp" + > + </File> + <File + RelativePath="..\DOMHTMLClasses.cpp" + > + </File> + <File + RelativePath="..\ForEachCoClass.cpp" + > + </File> + <File + RelativePath="..\FullscreenVideoController.cpp" + > + </File> + <File + RelativePath="..\MemoryStream.cpp" + > + </File> + <File + RelativePath="..\WebActionPropertyBag.cpp" + > + </File> + <File + RelativePath="..\WebArchive.cpp" + > + </File> + <File + RelativePath="..\WebBackForwardList.cpp" + > + </File> + <File + RelativePath="..\WebCache.cpp" + > + </File> + <File + RelativePath="..\WebCookieManager.cpp" + > + </File> + <File + RelativePath="..\WebCookieManagerCFNet.cpp" + > + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\WebCookieManagerCurl.cpp" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\WebCoreStatistics.cpp" + > + </File> + <File + RelativePath="..\WebDatabaseManager.cpp" + > + </File> + <File + RelativePath="..\WebDataSource.cpp" + > + </File> + <File + RelativePath="..\WebDocumentLoader.cpp" + > + </File> + <File + RelativePath="..\WebDownload.cpp" + > + </File> + <File + RelativePath="..\WebDownloadCFNet.cpp" + > + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\WebDownloadCurl.cpp" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\WebDropSource.cpp" + > + </File> + <File + RelativePath="..\WebElementPropertyBag.cpp" + > + </File> + <File + RelativePath="..\WebError.cpp" + > + </File> + <File + RelativePath="..\WebFrame.cpp" + > + </File> + <File + RelativePath="..\WebFramePolicyListener.cpp" + > + </File> + <File + RelativePath="..\WebGeolocationPolicyListener.cpp" + > + </File> + <File + RelativePath="..\WebGeolocationPosition.cpp" + > + </File> + <File + RelativePath="..\WebHistory.cpp" + > + </File> + <File + RelativePath="..\WebHistoryItem.cpp" + > + </File> + <File + RelativePath="..\WebHTMLRepresentation.cpp" + > + </File> + <File + RelativePath="..\WebIconDatabase.cpp" + > + </File> + <File + RelativePath="..\WebInspector.cpp" + > + </File> + <File + RelativePath="..\WebJavaScriptCollector.cpp" + > + </File> + <File + RelativePath="..\WebKitLogging.cpp" + > + </File> + <File + RelativePath="..\WebKitStatistics.cpp" + > + </File> + <File + RelativePath="..\WebMutableURLRequest.cpp" + > + </File> + <File + RelativePath="..\WebNavigationData.cpp" + > + </File> + <File + RelativePath="..\WebNotification.cpp" + > + </File> + <File + RelativePath="..\WebNotificationCenter.cpp" + > + </File> + <File + RelativePath="..\WebPreferences.cpp" + > + </File> + <File + RelativePath="..\WebResource.cpp" + > + </File> + <File + RelativePath="..\WebScriptObject.cpp" + > + </File> + <File + RelativePath="..\WebScriptWorld.cpp" + > + </File> + <File + RelativePath="..\WebScriptWorld.cpp" + > + </File> + <File + RelativePath="..\WebScrollBar.cpp" + > + </File> + <File + RelativePath="..\WebSecurityOrigin.cpp" + > + </File> + <File + RelativePath="..\WebSerializedJSValue.cpp" + > + </File> + <File + RelativePath="..\WebTextRenderer.cpp" + > + </File> + <File + RelativePath="..\WebURLAuthenticationChallenge.cpp" + > + </File> + <File + RelativePath="..\WebURLAuthenticationChallengeSender.cpp" + > + </File> + <File + RelativePath="..\WebURLAuthenticationChallengeSenderCFNet.cpp" + > + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\WebURLAuthenticationChallengeSenderCurl.cpp" + > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\WebURLCredential.cpp" + > + </File> + <File + RelativePath="..\WebURLProtectionSpace.cpp" + > + </File> + <File + RelativePath="..\WebURLResponse.cpp" + > + </File> + <File + RelativePath="..\WebUserContentURLPattern.cpp" + > + </File> + <File + RelativePath="..\WebView.cpp" + > + </File> + <File + RelativePath="..\WebWorkersPrivate.cpp" + > + </File> + </Filter> + <Filter + Name="API" + > + <File + RelativePath="..\WebKitCOMAPI.cpp" + > + </File> + <File + RelativePath="..\WebKitGraphics.cpp" + > + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\WebLocalizableStrings.cpp" + > + </File> + </Filter> + <Filter + Name="WebCoreSupport" + > + <File + RelativePath="..\WebCoreSupport\EmbeddedWidget.cpp" + > + </File> + <File + RelativePath="..\WebCoreSupport\EmbeddedWidget.h" + > + </File> + <File + RelativePath="..\WebCoreSupport\WebChromeClient.cpp" + > + </File> + <File + RelativePath="..\WebCoreSupport\WebChromeClient.h" + > + </File> + <File + RelativePath="..\WebCoreSupport\WebContextMenuClient.cpp" + > + </File> + <File + RelativePath="..\WebCoreSupport\WebContextMenuClient.h" + > + </File> + <File + RelativePath="..\WebCoreSupport\WebDesktopNotificationsDelegate.cpp" + > + </File> + <File + RelativePath="..\WebCoreSupport\WebDesktopNotificationsDelegate.h" + > + </File> + <File + RelativePath="..\WebCoreSupport\WebDragClient.cpp" + > + </File> + <File + RelativePath="..\WebCoreSupport\WebDragClient.h" + > + </File> + <File + RelativePath="..\WebCoreSupport\WebEditorClient.cpp" + > + </File> + <File + RelativePath="..\WebCoreSupport\WebEditorClient.h" + > + </File> + <File + RelativePath="..\WebCoreSupport\WebFrameLoaderClient.cpp" + > + </File> + <File + RelativePath="..\WebCoreSupport\WebFrameLoaderClient.h" + > + </File> + <File + RelativePath="..\WebCoreSupport\WebFrameNetworkingContext.cpp" + > + </File> + <File + RelativePath="..\WebCoreSupport\WebFrameNetworkingContext.h" + > + </File> + <File + RelativePath="..\WebCoreSupport\WebGeolocationClient.cpp" + > + </File> + <File + RelativePath="..\WebCoreSupport\WebGeolocationClient.h" + > + </File> + <File + RelativePath="..\WebCoreSupport\WebInspectorClient.cpp" + > + </File> + <File + RelativePath="..\WebCoreSupport\WebInspectorClient.h" + > + </File> + <File + RelativePath="..\..\cf\WebCoreSupport\WebInspectorClientCF.cpp" + > + </File> + <File + RelativePath="..\WebCoreSupport\WebInspectorDelegate.cpp" + > + </File> + <File + RelativePath="..\WebCoreSupport\WebInspectorDelegate.h" + > + </File> + <File + RelativePath="..\WebCoreSupport\WebPlatformStrategies.cpp" + > + </File> + <File + RelativePath="..\WebCoreSupport\WebPlatformStrategies.h" + > + </File> + <File + RelativePath="..\WebCoreSupport\WebPluginHalterClient.cpp" + > + </File> + <File + RelativePath="..\WebCoreSupport\WebPluginHalterClient.h" + > + </File> + </Filter> + <File + RelativePath="..\WebKitPrefix.cpp" + > + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + UsePrecompiledHeader="1" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + UsePrecompiledHeader="1" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_Cairo_CFLite|Win32" + > + <Tool + Name="VCCLCompilerTool" + UsePrecompiledHeader="1" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Cairo_CFLite|Win32" + > + <Tool + Name="VCCLCompilerTool" + UsePrecompiledHeader="1" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_All|Win32" + > + <Tool + Name="VCCLCompilerTool" + UsePrecompiledHeader="1" + PrecompiledHeaderThrough="WebKitPrefix.h" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_LTCG|Win32" + > + <Tool + Name="VCCLCompilerTool" + UsePrecompiledHeader="1" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\WebKitPrefix.h" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/WebKit/win/WebKit.vcproj/WebKitGUID.vcproj b/WebKit/win/WebKit.vcproj/WebKitGUID.vcproj index 0064840..ce0973f 100644 --- a/WebKit/win/WebKit.vcproj/WebKitGUID.vcproj +++ b/WebKit/win/WebKit.vcproj/WebKitGUID.vcproj @@ -1,295 +1,348 @@ -<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8.00"
- Name="WebKitGUID"
- ProjectGUID="{B8437A41-67BC-4769-9452-45203827F821}"
- RootNamespace="WebKitGUID"
- Keyword="Win32Proj"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- ConfigurationType="4"
- InheritedPropertySheets="$(WebKitLibrariesDir)\tools\vsprops\FeatureDefines.vsprops;$(WebKitLibrariesDir)\tools\vsprops\common.vsprops;$(WebKitLibrariesDir)\tools\vsprops\debug.vsprops;.\WebKitGUIDCommon.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- OutputDirectory="Debug"
- />
- <Tool
- Name="VCCLCompilerTool"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- ConfigurationType="4"
- InheritedPropertySheets="$(WebKitLibrariesDir)\tools\vsprops\FeatureDefines.vsprops;$(WebKitLibrariesDir)\tools\vsprops\common.vsprops;$(WebKitLibrariesDir)\tools\vsprops\release.vsprops;.\WebKitGUIDCommon.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- OutputDirectory="Release"
- />
- <Tool
- Name="VCCLCompilerTool"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Debug_Internal|Win32"
- ConfigurationType="4"
- InheritedPropertySheets="$(WebKitLibrariesDir)\tools\vsprops\FeatureDefines.vsprops;$(WebKitLibrariesDir)\tools\vsprops\common.vsprops;$(WebKitLibrariesDir)\tools\vsprops\debug.vsprops;$(WebKitLibrariesDir)\tools\vsprops\debug_internal.vsprops;.\WebKitGUIDCommon.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- OutputDirectory="Debug"
- />
- <Tool
- Name="VCCLCompilerTool"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Debug_All|Win32"
- ConfigurationType="4"
- InheritedPropertySheets="$(WebKitLibrariesDir)\tools\vsprops\FeatureDefines.vsprops;$(WebKitLibrariesDir)\tools\vsprops\common.vsprops;$(WebKitLibrariesDir)\tools\vsprops\debug.vsprops;$(WebKitLibrariesDir)\tools\vsprops\debug_internal.vsprops;$(WebKitLibrariesDir)\tools\vsprops\debug_all.vsprops;.\WebKitGUIDCommon.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- OutputDirectory="Debug"
- />
- <Tool
- Name="VCCLCompilerTool"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release_LTCG|Win32"
- ConfigurationType="4"
- InheritedPropertySheets="$(WebKitLibrariesDir)\tools\vsprops\FeatureDefines.vsprops;$(WebKitLibrariesDir)\tools\vsprops\common.vsprops;$(WebKitLibrariesDir)\tools\vsprops\release.vsprops;.\WebKitGUIDCommon.vsprops"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- OutputDirectory="Release"
- />
- <Tool
- Name="VCCLCompilerTool"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <File
- RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\WebKit_i.c"
- >
- </File>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
+<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="WebKitGUID" + ProjectGUID="{B8437A41-67BC-4769-9452-45203827F821}" + RootNamespace="WebKitGUID" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + ConfigurationType="4" + InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;.\WebKitGUIDCommon.vsprops" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + OutputDirectory="Debug" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + ConfigurationType="4" + InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;.\WebKitGUIDCommon.vsprops" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + OutputDirectory="Release" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Debug_All|Win32" + ConfigurationType="4" + InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\debug_all.vsprops;.\WebKitGUIDCommon.vsprops" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + OutputDirectory="Debug" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release_LTCG|Win32" + ConfigurationType="4" + InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;.\WebKitGUIDCommon.vsprops" + CharacterSet="1" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + OutputDirectory="Release" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release_Cairo_CFLite|Win32" + ConfigurationType="4" + InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;.\WebKitGUIDCommon.vsprops" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + OutputDirectory="Release" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Debug_Cairo_CFLite|Win32" + ConfigurationType="4" + InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\debug_wincairo.vsprops;.\WebKitGUIDCommon.vsprops" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + OutputDirectory="Debug" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <File + RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\WebKit_i.c" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/WebKit/win/WebKit.vcproj/WebKitGUIDCommon.vsprops b/WebKit/win/WebKit.vcproj/WebKitGUIDCommon.vsprops index 422c8bd..677847d 100644 --- a/WebKit/win/WebKit.vcproj/WebKitGUIDCommon.vsprops +++ b/WebKit/win/WebKit.vcproj/WebKitGUIDCommon.vsprops @@ -1,27 +1,19 @@ -<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioPropertySheet
- ProjectType="Visual C++"
- Version="8.00"
- Name="WebKitGUIDCommon"
- OutputDirectory="$(WebKitOutputDir)\lib"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="$(WebKitOutputDir)\$(ConfigurationName)\WebKit"
- PreprocessorDefinitions="_USRDLL;WEBKITGUID_EXPORTS"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="if exist "$(WebKitOutputDir)\buildfailed" del "$(WebKitOutputDir)\buildfailed""
- />
- <Tool
- Name="VCPreBuildEventTool"
- CommandLine="%SystemDrive%\cygwin\bin\which.exe bash
if errorlevel 1 set PATH=%SystemDrive%\cygwin\bin;%PATH%
cmd /c
if exist "$(WebKitOutputDir)\buildfailed" grep XX$(ProjectName)XX "$(WebKitOutputDir)\buildfailed"
if errorlevel 1 exit 1
echo XX$(ProjectName)XX > "$(WebKitOutputDir)\buildfailed"
"
- />
- <Tool
- Name="VCMIDLTool"
- AdditionalIncludeDirectories="Interfaces"
- HeaderFileName="$(InputName).h"
- />
-
-</VisualStudioPropertySheet>
+<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="WebKitGUIDCommon" + OutputDirectory="$(WebKitOutputDir)\lib" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="$(WebKitOutputDir)\$(ConfigurationName)\WebKit" + PreprocessorDefinitions="_USRDLL;WEBKITGUID_EXPORTS" + /> + <Tool + Name="VCMIDLTool" + AdditionalIncludeDirectories="Interfaces" + HeaderFileName="$(InputName).h" + /> + +</VisualStudioPropertySheet> diff --git a/WebKit/win/WebKit.vcproj/WebKitGUIDPostBuild.cmd b/WebKit/win/WebKit.vcproj/WebKitGUIDPostBuild.cmd new file mode 100644 index 0000000..f011495 --- /dev/null +++ b/WebKit/win/WebKit.vcproj/WebKitGUIDPostBuild.cmd @@ -0,0 +1 @@ +if exist "%WEBKITOUTPUTDIR%\buildfailed" del "%WEBKITOUTPUTDIR%\buildfailed" diff --git a/WebKit/win/WebKit.vcproj/WebKitGUIDPreBuild.cmd b/WebKit/win/WebKit.vcproj/WebKitGUIDPreBuild.cmd new file mode 100644 index 0000000..3a84c26 --- /dev/null +++ b/WebKit/win/WebKit.vcproj/WebKitGUIDPreBuild.cmd @@ -0,0 +1,6 @@ +%SystemDrive%\cygwin\bin\which.exe bash +if errorlevel 1 set PATH=%SystemDrive%\cygwin\bin;%PATH% +cmd /c +if exist "%WEBKITOUTPUTDIR%\buildfailed" grep XX%PROJECTNAME%XX "%WEBKITOUTPUTDIR%\buildfailed" +if errorlevel 1 exit 1 +echo XX%PROJECTNAME%XX > "%WEBKITOUTPUTDIR%\buildfailed" diff --git a/WebKit/win/WebKit.vcproj/WebKitLibCommon.vsprops b/WebKit/win/WebKit.vcproj/WebKitLibCommon.vsprops index f2fb761..7caff4d 100644 --- a/WebKit/win/WebKit.vcproj/WebKitLibCommon.vsprops +++ b/WebKit/win/WebKit.vcproj/WebKitLibCommon.vsprops @@ -1,30 +1,22 @@ -<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioPropertySheet
- ProjectType="Visual C++"
- Version="8.00"
- Name="WebKitLibCommon"
- OutputDirectory="$(WebKitOutputDir)\lib"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""$(WebKitOutputDir)\include\WebKit";"$(WebKitOutputDir)\Include";"$(WebKitOutputDir)\Include\private";"$(WebKitLibrariesDir)\Include";"$(WebKitLibrariesDir)\Include\private";"$(WebKitOutputDir)\Include\WebCore";"$(WebKitLibrariesDir)\Include\WebCore";"$(WebKitOutputDir)\Include\WebCore\ForwardingHeaders";"$(WebKitLibrariesDir)\Include\WebCore\ForwardingHeaders";"$(WebKitOutputDir)\Include\JavaScriptCore";"$(WebKitOutputDir)\Include\private\JavaScriptCore";"$(WebKitLibrariesDir)\Include\JavaScriptCore";"$(WebKitLibrariesDir)\Include\private\JavaScriptCore";"$(WebKitLibrariesDir)\include\pthreads";"$(ProjectDir)\..";"$(ProjectDir)";"$(ProjectDir)\..\WebCoreSupport";"$(IntDir)\include";"$(WebKitOutputDir)\obj\WebKit\DerivedSources""
- PreprocessorDefinitions="_USRDLL;WEBKIT_EXPORTS;FRAMEWORK_NAME=WebKit"
- UsePrecompiledHeader="2"
- PrecompiledHeaderThrough="WebKitPrefix.h"
- ProgramDataBaseFileName="$(OutDir)\$(TargetName).vc80.pdb"
- DisableSpecificWarnings="4819"
- ForcedIncludeFiles="WebKitPrefix.h;ICUVersion.h"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="mkdir 2>NUL "$(WebKitOutputDir)\include\WebKit"

xcopy /y /d "$(ProjectDir)\..\WebLocalizableStrings.h" "$(WebKitOutputDir)\include\WebKit"
xcopy /y /d "$(ProjectDir)\..\WebKitGraphics.h" "$(WebKitOutputDir)\include\WebKit"
xcopy /y /d "$(ProjectDir)\..\WebKitCOMAPI.h" "$(WebKitOutputDir)\include\WebKit"
xcopy /y /d "$(ProjectDir)\..\WebPreferenceKeysPrivate.h" "$(WebKitOutputDir)\include\WebKit"

xcopy /y /d "$(WebKitOutputDir)\include\WebCore\npapi.h" "$(WebKitOutputDir)\include\WebKit"
xcopy /y /d "$(WebKitOutputDir)\include\WebCore\npfunctions.h" "$(WebKitOutputDir)\include\WebKit"
xcopy /y /d "$(WebKitOutputDir)\include\WebCore\npruntime.h" "$(WebKitOutputDir)\include\WebKit"
xcopy /y /d "$(WebKitOutputDir)\include\WebCore\npruntime_internal.h" "$(WebKitOutputDir)\include\WebKit"
xcopy /y /d "$(WebKitOutputDir)\include\WebCore\nptypes.h" "$(WebKitOutputDir)\include\WebKit"

mkdir 2>NUL "$(OutDir)\..\bin\WebKit.resources"
xcopy /y /d "$(ProjectDir)..\WebKit.resources\*" "$(OutDir)\..\bin\WebKit.resources"
mkdir 2>NUL "$(OutDir)\..\bin\WebKit.resources\en.lproj"
xcopy /y /d "$(ProjectDir)..\..\English.lproj\Localizable.strings" "$(OutDir)\..\bin\WebKit.resources\en.lproj\"

if exist "$(WebKitOutputDir)\buildfailed" del "$(WebKitOutputDir)\buildfailed"
"
- />
- <Tool
- Name="VCPreBuildEventTool"
- CommandLine="%SystemDrive%\cygwin\bin\which.exe bash
if errorlevel 1 set PATH=%SystemDrive%\cygwin\bin;%PATH%
cmd /c
if exist "$(WebKitOutputDir)\buildfailed" grep XX$(ProjectName)XX "$(WebKitOutputDir)\buildfailed"
if errorlevel 1 exit 1
echo XX$(ProjectName)XX > "$(WebKitOutputDir)\buildfailed"

touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" /Fo"$(IntDir)\tmp.obj" 2>&1 | findstr D9040
if ERRORLEVEL 1 (set EnablePREfast="true") else (set EnablePREfast="false")
if ERRORLEVEL 1 (set AnalyzeWithLargeStack="/analyze:65536") else (set AnalyzeWithLargeStack="")

mkdir 2>NUL "$(WebKitOutputDir)\include\JavaScriptCore"
xcopy /y /d "$(WebKitLibrariesDir)\include\JavaScriptCore\*" "$(WebKitOutputDir)\include\JavaScriptCore"

bash "$(WebKitLibrariesDir)\tools\scripts\auto-version.sh" "$(IntDir)"
"
- />
- <Tool
- Name="VCResourceCompilerTool"
- AdditionalIncludeDirectories="$(WebKitOutputDir)\obj\WebKit\"
- />
-</VisualStudioPropertySheet>
+<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="WebKitLibCommon" + OutputDirectory="$(WebKitOutputDir)\lib" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories=""$(WebKitOutputDir)\include\WebKit";"$(WebKitOutputDir)\Include";"$(WebKitOutputDir)\Include\private";"$(WebKitLibrariesDir)\Include";"$(WebKitLibrariesDir)\Include\private";"$(WebKitOutputDir)\Include\WebCore";"$(WebKitLibrariesDir)\Include\WebCore";"$(WebKitOutputDir)\Include\WebCore\ForwardingHeaders";"$(WebKitLibrariesDir)\Include\WebCore\ForwardingHeaders";"$(WebKitOutputDir)\Include\JavaScriptCore";"$(WebKitOutputDir)\Include\private\JavaScriptCore";"$(WebKitLibrariesDir)\Include\JavaScriptCore";"$(WebKitLibrariesDir)\Include\private\JavaScriptCore";"$(WebKitLibrariesDir)\include\pthreads";"$(ProjectDir)\..";"$(ProjectDir)";"$(ProjectDir)\..\WebCoreSupport";"$(IntDir)\include";"$(WebKitOutputDir)\obj\WebKit\DerivedSources"" + PreprocessorDefinitions="_USRDLL;WEBKIT_EXPORTS;FRAMEWORK_NAME=WebKit" + UsePrecompiledHeader="2" + PrecompiledHeaderThrough="WebKitPrefix.h" + ProgramDataBaseFileName="$(OutDir)\$(TargetName).vc80.pdb" + DisableSpecificWarnings="4819" + ForcedIncludeFiles="WebKitPrefix.h;ICUVersion.h" + /> + <Tool + Name="VCResourceCompilerTool" + AdditionalIncludeDirectories="$(WebKitOutputDir)\obj\WebKit\" + /> +</VisualStudioPropertySheet> diff --git a/WebKit/win/WebKit.vcproj/WebKitLibPostBuild.cmd b/WebKit/win/WebKit.vcproj/WebKitLibPostBuild.cmd new file mode 100644 index 0000000..99f84fe --- /dev/null +++ b/WebKit/win/WebKit.vcproj/WebKitLibPostBuild.cmd @@ -0,0 +1,19 @@ +mkdir 2>NUL "%WEBKITOUTPUTDIR%\include\WebKit" + +xcopy /y /d "%PROJECTDIR%\..\WebLocalizableStrings.h" "%WEBKITOUTPUTDIR%\include\WebKit" +xcopy /y /d "%PROJECTDIR%\..\WebKitGraphics.h" "%WEBKITOUTPUTDIR%\include\WebKit" +xcopy /y /d "%PROJECTDIR%\..\WebKitCOMAPI.h" "%WEBKITOUTPUTDIR%\include\WebKit" +xcopy /y /d "%PROJECTDIR%\..\WebPreferenceKeysPrivate.h" "%WEBKITOUTPUTDIR%\include\WebKit" + +xcopy /y /d "%WEBKITOUTPUTDIR%\include\WebCore\npapi.h" "%WEBKITOUTPUTDIR%\include\WebKit" +xcopy /y /d "%WEBKITOUTPUTDIR%\include\WebCore\npfunctions.h" "%WEBKITOUTPUTDIR%\include\WebKit" +xcopy /y /d "%WEBKITOUTPUTDIR%\include\WebCore\npruntime.h" "%WEBKITOUTPUTDIR%\include\WebKit" +xcopy /y /d "%WEBKITOUTPUTDIR%\include\WebCore\npruntime_internal.h" "%WEBKITOUTPUTDIR%\include\WebKit" +xcopy /y /d "%WEBKITOUTPUTDIR%\include\WebCore\nptypes.h" "%WEBKITOUTPUTDIR%\include\WebKit" + +mkdir 2>NUL "%OUTDIR%\..\bin\WebKit.resources" +xcopy /y /d "%PROJECTDIR%..\WebKit.resources\*" "%OUTDIR%\..\bin\WebKit.resources" +mkdir 2>NUL "%OUTDIR%\..\bin\WebKit.resources\en.lproj" +xcopy /y /d "%PROJECTDIR%..\..\English.lproj\Localizable.strings" "%OUTDIR%\..\bin\WebKit.resources\en.lproj\" + +if exist "%WEBKITOUTPUTDIR%\buildfailed" del "%WEBKITOUTPUTDIR%\buildfailed" diff --git a/WebKit/win/WebKit.vcproj/WebKitLibPreBuild.cmd b/WebKit/win/WebKit.vcproj/WebKitLibPreBuild.cmd new file mode 100644 index 0000000..312033d --- /dev/null +++ b/WebKit/win/WebKit.vcproj/WebKitLibPreBuild.cmd @@ -0,0 +1,16 @@ +%SystemDrive%\cygwin\bin\which.exe bash +if errorlevel 1 set PATH=%SystemDrive%\cygwin\bin;%PATH% +cmd /c +if exist "%WEBKITOUTPUTDIR%\buildfailed" grep XX%PROJECTNAME%XX "%WEBKITOUTPUTDIR%\buildfailed" +if errorlevel 1 exit 1 +echo XX%PROJECTNAME%XX > "%WEBKITOUTPUTDIR%\buildfailed" + +touch "%WEBKITOUTPUTDIR%\tmp.cpp" +cl /analyze /nologo /c "%WEBKITOUTPUTDIR%\tmp.cpp" /Fo"%INTDIR%\tmp.obj" 2>&1 | findstr D9040 +if ERRORLEVEL 1 (set EnablePREfast="true") else (set EnablePREfast="false") +if ERRORLEVEL 1 (set AnalyzeWithLargeStack="/analyze:65536") else (set AnalyzeWithLargeStack="") + +mkdir 2>NUL "%WEBKITOUTPUTDIR%\include\JavaScriptCore" +xcopy /y /d "%WEBKITLIBRARIESDIR%\include\JavaScriptCore\*" "%WEBKITOUTPUTDIR%\include\JavaScriptCore" + +bash "%WEBKITLIBRARIESDIR%\tools\scripts\auto-version.sh" "%INTDIR%" diff --git a/WebKit/win/WebKitPrefix.h b/WebKit/win/WebKitPrefix.h index 3086f0b..2ff6baf 100644 --- a/WebKit/win/WebKitPrefix.h +++ b/WebKit/win/WebKitPrefix.h @@ -49,4 +49,3 @@ #include <CoreFoundation/CoreFoundation.h> #include <WebKit/WebKit.h> - diff --git a/WebKit/wince/ChangeLog b/WebKit/wince/ChangeLog index 0b99bf7..d32059d 100644 --- a/WebKit/wince/ChangeLog +++ b/WebKit/wince/ChangeLog @@ -1,3 +1,27 @@ +2010-12-01 Jia Pu <jpu@apple.com> + + Reviewed by Darin Adler. + + Support multiple correction candidates panel for misspelled word on Mac OS X. + https://bugs.webkit.org/show_bug.cgi?id=50137 + <rdar://problem/8568059> + + Adopted new function signature defined in base class. + + * WebCoreSupport/EditorClientWinCE.cpp: + (WebKit::EditorClientWinCE::getGuessesForWord): + * WebCoreSupport/EditorClientWinCE.h: + +2010-11-30 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Adam Roben. + + [WINCE] Add WebView + https://bugs.webkit.org/show_bug.cgi?id=50216 + + * WebView.cpp: Added. + * WebView.h: Added. + 2010-11-13 Patrick Gansterer <paroga@webkit.org> Unreviewed, build fix after r71541. diff --git a/WebKit/wince/WebCoreSupport/EditorClientWinCE.cpp b/WebKit/wince/WebCoreSupport/EditorClientWinCE.cpp index 7dee562..c4555ed 100644 --- a/WebKit/wince/WebCoreSupport/EditorClientWinCE.cpp +++ b/WebKit/wince/WebCoreSupport/EditorClientWinCE.cpp @@ -487,7 +487,7 @@ bool EditorClientWinCE::spellingUIIsShowing() return false; } -void EditorClientWinCE::getGuessesForWord(const String& word, WTF::Vector<String>& guesses) +void EditorClientWinCE::getGuessesForWord(const String& word, const String& context, WTF::Vector<String>& guesses) { notImplemented(); } diff --git a/WebKit/wince/WebCoreSupport/EditorClientWinCE.h b/WebKit/wince/WebCoreSupport/EditorClientWinCE.h index be85b3f..fd3dd10 100644 --- a/WebKit/wince/WebCoreSupport/EditorClientWinCE.h +++ b/WebKit/wince/WebCoreSupport/EditorClientWinCE.h @@ -97,7 +97,7 @@ public: virtual void updateSpellingUIWithMisspelledWord(const WTF::String&); virtual void showSpellingUI(bool); virtual bool spellingUIIsShowing(); - virtual void getGuessesForWord(const WTF::String&, WTF::Vector<WTF::String>&); + virtual void getGuessesForWord(const WTF::String& word, const WTF::String& context, WTF::Vector<WTF::String>& guesses); virtual void willSetInputMethodState(); virtual void setInputMethodState(bool); diff --git a/WebKit/wince/WebView.cpp b/WebKit/wince/WebView.cpp new file mode 100644 index 0000000..ce90149 --- /dev/null +++ b/WebKit/wince/WebView.cpp @@ -0,0 +1,454 @@ +/* + * Copyright (C) 2006, 2007, 2008, 2009, 2010 Apple, Inc. All rights reserved. + * Copyright (C) 2010 Patrick Gansterer <paroga@paroga.com> + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * + * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS 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 APPLE OR ITS 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 "WebView.h" + +#include "ChromeClientWinCE.h" +#include "ContextMenuClientWinCE.h" +#include "DragClientWinCE.h" +#include "EditorClientWinCE.h" +#include "FocusController.h" +#include "Frame.h" +#include "FrameLoader.h" +#include "FrameLoaderClientWinCE.h" +#include "FrameView.h" +#include "GraphicsContext.h" +#include "InitializeThreading.h" +#include "InspectorClientWinCE.h" +#include "IntSize.h" +#include "MainThread.h" +#include "NotImplemented.h" +#include "Page.h" +#include "PlatformKeyboardEvent.h" +#include "PlatformMouseEvent.h" +#include "PlatformStrategiesWinCE.h" +#include "PlatformWheelEvent.h" +#include "ResourceRequest.h" +#include "Settings.h" +#include "SharedBuffer.h" +#include "WebCoreInstanceHandle.h" + +using namespace WebCore; + +const LPCWSTR kWebViewWindowClassName = L"WebViewWindowClass"; + + +LRESULT CALLBACK WebView::webViewWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + if (WebView* webView = reinterpret_cast<WebView*>(GetWindowLong(hWnd, 0))) + return webView->wndProc(hWnd, message, wParam, lParam); + + return DefWindowProc(hWnd, message, wParam, lParam); +} + +PassRefPtr<SharedBuffer> loadResourceIntoBuffer(const char* name) +{ + notImplemented(); + return 0; +} + + +WebView::WebView(HWND hwnd, unsigned features) + : m_frame(0) + , m_page(0) + , m_parentWindowHandle(hwnd) + , m_enableDoubleBuffer(features & EnableDoubleBuffering) +{ + RECT rcClient; + GetClientRect(hwnd, &rcClient); + + m_windowHandle = CreateWindow(kWebViewWindowClassName, 0, WS_CHILD, + CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, hwnd, 0, WebCore::instanceHandle(), 0); + + SetWindowLong(m_windowHandle, 0, reinterpret_cast<LONG>(this)); + + MoveWindow(m_windowHandle, 0, 0, rcClient.right, rcClient.bottom, TRUE); + ShowWindow(m_windowHandle, SW_SHOW); + + Page::PageClients pageClients; + pageClients.chromeClient = new WebKit::ChromeClientWinCE(this); + pageClients.contextMenuClient = new WebKit::ContextMenuClientWinCE(this); + pageClients.editorClient = new WebKit::EditorClientWinCE(this); + pageClients.dragClient = new WebKit::DragClientWinCE(); + pageClients.inspectorClient = new WebKit::InspectorClientWinCE(this); + m_page = new Page(pageClients); + + Settings* settings = m_page->settings(); + settings->setDefaultFixedFontSize(14); + settings->setDefaultFontSize(14); + settings->setMinimumFontSize(8); + settings->setMinimumLogicalFontSize(8); + settings->setJavaScriptEnabled(true); + settings->setLoadsImagesAutomatically(true); + + WebKit::FrameLoaderClientWinCE* loaderClient = new WebKit::FrameLoaderClientWinCE(this); + RefPtr<Frame> frame = Frame::create(m_page, 0, loaderClient); + m_frame = frame.get(); + loaderClient->setFrame(m_frame); + + m_page->mainFrame()->init(); + + if (view()) { + RECT windowRect; + frameRect(&windowRect); + view()->resize(IntRect(windowRect).size()); + } +} + +WebView::~WebView() +{ + delete m_page; + DestroyWindow(m_windowHandle); +} + +void WebView::initialize(HINSTANCE instanceHandle) +{ + JSC::initializeThreading(); + WTF::initializeMainThread(); + PlatformStrategiesWinCE::initialize(); + + WebCore::setInstanceHandle(instanceHandle); + + WNDCLASS wc; + wc.style = CS_DBLCLKS; + wc.lpfnWndProc = WebView::webViewWndProc; + wc.cbClsExtra = 0; + wc.cbWndExtra = sizeof(void *); + wc.hInstance = instanceHandle; + wc.hIcon = 0; + wc.hCursor = LoadCursor(0, IDC_ARROW); + wc.hbrBackground = 0; + wc.lpszMenuName = 0; + wc.lpszClassName = kWebViewWindowClassName; + + RegisterClass(&wc); +} + +void WebView::cleanup() +{ + UnregisterClass(kWebViewWindowClassName, WebCore::instanceHandle()); +} + +PassRefPtr<Frame> WebView::createFrame(const KURL& url, const String& name, HTMLFrameOwnerElement* ownerElement, const String& referrer, + bool /*allowsScrolling*/, int /*marginWidth*/, int /*marginHeight*/) +{ + Frame* coreFrame = m_frame; + + WebKit::FrameLoaderClientWinCE *loaderClient = new WebKit::FrameLoaderClientWinCE(this); + RefPtr<Frame> childFrame = Frame::create(m_page, ownerElement, loaderClient); + loaderClient->setFrame(childFrame.get()); + + coreFrame->tree()->appendChild(childFrame); + childFrame->tree()->setName(name); + childFrame->init(); + + // The creation of the frame may have run arbitrary JavaScript that removed it from the page already. + if (!childFrame->page()) + return 0; + + childFrame->loader()->loadURLIntoChildFrame(url, referrer, childFrame.get()); + + // The frame's onload handler may have removed it from the document. + if (!childFrame->tree()->parent()) + return 0; + + return childFrame.release(); +} + +void WebView::runJavaScriptAlert(const String& message) +{ + notImplemented(); +} + +bool WebView::runJavaScriptConfirm(const String& message) +{ + notImplemented(); + return false; +} + +bool WebView::runJavaScriptPrompt(const String& message, const String& defaultValue, String& result) +{ + notImplemented(); + return false; +} + +void WebView::frameRect(RECT* rect) const +{ + GetWindowRect(m_windowHandle, rect); +} + +FrameView* WebView::view() const +{ + return m_frame ? m_frame->view() : 0; +} + +void WebView::load(LPCWSTR url) +{ + load(String(url)); +} + +void WebView::load(const String &url) +{ + load(WebCore::ResourceRequest(url)); +} + +void WebView::load(const WebCore::ResourceRequest &request) +{ + frame()->loader()->load(request, false); +} + +void WebView::reload() +{ + frame()->loader()->reload(); +} + +void WebView::stop() +{ + frame()->loader()->stopAllLoaders(); +} + +void WebView::paint(HDC hDC, const IntRect& clipRect) +{ + OwnPtr<HRGN> clipRgn(CreateRectRgn(clipRect.x(), clipRect.y(), clipRect.right(), clipRect.bottom())); + SelectClipRgn(hDC, clipRgn.get()); + + GraphicsContext gc(hDC); + view()->paint(&gc, clipRect); +} + +bool WebView::handlePaint(HWND hWnd) +{ + RECT updateRect; + if (!GetUpdateRect(hWnd, &updateRect, false)) + return false; + + PAINTSTRUCT ps; + HDC hDC = BeginPaint(m_windowHandle, &ps); + + IntRect clipRect(updateRect); + + if (m_enableDoubleBuffer) { + if (!m_doubleBufferDC) { + RECT rcClient; + GetClientRect(m_windowHandle, &rcClient); + + m_doubleBufferDC = adoptPtr(CreateCompatibleDC(hDC)); + m_doubleBufferBitmap = adoptPtr(CreateCompatibleBitmap(hDC, rcClient.right, rcClient.bottom)); + SelectObject(m_doubleBufferDC.get(), m_doubleBufferBitmap.get()); + } + + paint(m_doubleBufferDC.get(), clipRect); + + BitBlt(hDC, clipRect.x(), clipRect.y(), clipRect.width(), clipRect.height(), m_doubleBufferDC.get(), clipRect.x(), clipRect.y(), SRCCOPY); + } else + paint(hDC, clipRect); + + EndPaint(m_windowHandle, &ps); + return true; +} + +bool WebView::handleMouseEvent(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + static LONG globalClickCount; + static IntPoint globalPrevPoint; + static MouseButton globalPrevButton; + static LONG globalPrevMouseDownTime; + + // Create our event. + // On WM_MOUSELEAVE we need to create a mouseout event, so we force the position + // of the event to be at (MINSHORT, MINSHORT). + PlatformMouseEvent mouseEvent(hWnd, message, wParam, lParam); + + bool insideThreshold = abs(globalPrevPoint.x() - mouseEvent.pos().x()) < ::GetSystemMetrics(SM_CXDOUBLECLK) + && abs(globalPrevPoint.y() - mouseEvent.pos().y()) < ::GetSystemMetrics(SM_CYDOUBLECLK); + LONG messageTime = 0; + + bool handled = false; + if (message == WM_LBUTTONDOWN || message == WM_MBUTTONDOWN || message == WM_RBUTTONDOWN) { + // FIXME: I'm not sure if this is the "right" way to do this + // but without this call, we never become focused since we don't allow + // the default handling of mouse events. + SetFocus(m_windowHandle); + + PlatformMouseEvent moveEvent(hWnd, WM_MOUSEMOVE, 0, lParam, false); + moveEvent.setClickCount(0); + m_page->mainFrame()->eventHandler()->handleMouseMoveEvent(moveEvent); + + // Always start capturing events when the mouse goes down in our HWND. + SetCapture(m_windowHandle); + + if (insideThreshold && mouseEvent.button() == globalPrevButton) + globalClickCount++; + else + // Reset the click count. + globalClickCount = 1; + globalPrevMouseDownTime = messageTime; + globalPrevButton = mouseEvent.button(); + globalPrevPoint = mouseEvent.pos(); + + mouseEvent.setClickCount(globalClickCount); + handled = m_page->mainFrame()->eventHandler()->handleMousePressEvent(mouseEvent); + } else if (message == WM_LBUTTONDBLCLK || message == WM_MBUTTONDBLCLK || message == WM_RBUTTONDBLCLK) { + globalClickCount++; + mouseEvent.setClickCount(globalClickCount); + handled = m_page->mainFrame()->eventHandler()->handleMousePressEvent(mouseEvent); + } else if (message == WM_LBUTTONUP || message == WM_MBUTTONUP || message == WM_RBUTTONUP) { + // Record the global position and the button of the up. + globalPrevButton = mouseEvent.button(); + globalPrevPoint = mouseEvent.pos(); + mouseEvent.setClickCount(globalClickCount); + m_page->mainFrame()->eventHandler()->handleMouseReleaseEvent(mouseEvent); + ReleaseCapture(); + } else if (message == WM_MOUSEMOVE) { + if (!insideThreshold) + globalClickCount = 0; + mouseEvent.setClickCount(globalClickCount); + handled = m_page->mainFrame()->eventHandler()->mouseMoved(mouseEvent); + } + + return handled; +} + +bool WebView::handleMouseWheel(HWND hWnd, WPARAM wParam, LPARAM lParam, bool isHorizontal) +{ + PlatformWheelEvent wheelEvent(hWnd, wParam, lParam, isHorizontal); + return frame()->eventHandler()->handleWheelEvent(wheelEvent); +} + +bool WebView::handleKeyDown(WPARAM virtualKeyCode, LPARAM keyData, bool systemKeyDown) +{ + Frame* frame = m_page->focusController()->focusedOrMainFrame(); + if (virtualKeyCode == VK_CAPITAL) + frame->eventHandler()->capsLockStateMayHaveChanged(); + + PlatformKeyboardEvent keyEvent(m_windowHandle, virtualKeyCode, keyData, PlatformKeyboardEvent::RawKeyDown, systemKeyDown); + bool handled = frame->eventHandler()->keyEvent(keyEvent); + + // These events cannot be canceled, and we have no default handling for them. + // FIXME: match IE list more closely, see <http://msdn2.microsoft.com/en-us/library/ms536938.aspx>. + if (systemKeyDown && virtualKeyCode != VK_RETURN) + return false; + + if (handled) { + MSG msg; + if (!systemKeyDown) + ::PeekMessage(&msg, m_windowHandle, WM_CHAR, WM_CHAR, PM_REMOVE); + return true; + } + + return handled; +} + +bool WebView::handleKeyPress(WPARAM charCode, LPARAM keyData, bool systemKeyDown) +{ + Frame* frame = m_page->focusController()->focusedOrMainFrame(); + + PlatformKeyboardEvent keyEvent(m_windowHandle, charCode, keyData, PlatformKeyboardEvent::Char, systemKeyDown); + // IE does not dispatch keypress event for WM_SYSCHAR. + if (systemKeyDown) + return frame->eventHandler()->handleAccessKey(keyEvent); + if (frame->eventHandler()->keyEvent(keyEvent)) + return true; + + return false; +} + +bool WebView::handleKeyUp(WPARAM virtualKeyCode, LPARAM keyData, bool systemKeyDown) +{ + PlatformKeyboardEvent keyEvent(m_windowHandle, virtualKeyCode, keyData, PlatformKeyboardEvent::KeyUp, systemKeyDown); + + Frame* frame = m_page->focusController()->focusedOrMainFrame(); + return frame->eventHandler()->keyEvent(keyEvent); +} + +LRESULT WebView::wndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + bool handled = false; + + if (view()) { + switch (message) { + case WM_PAINT: + handled = handlePaint(hWnd); + break; + + case WM_MOUSEMOVE: + case WM_LBUTTONDOWN: + case WM_MBUTTONDOWN: + case WM_RBUTTONDOWN: + case WM_LBUTTONDBLCLK: + case WM_MBUTTONDBLCLK: + case WM_RBUTTONDBLCLK: + case WM_LBUTTONUP: + case WM_MBUTTONUP: + case WM_RBUTTONUP: + if (frame()->eventHandler() && view()->didFirstLayout()) + handled = handleMouseEvent(hWnd, message, wParam, lParam); + break; + + case WM_MOUSEWHEEL: + if (frame()->eventHandler() && view()->didFirstLayout()) + handled = handleMouseWheel(hWnd, wParam, lParam, wParam & MK_SHIFT); + break; + + case WM_SYSKEYDOWN: + handled = handleKeyDown(wParam, lParam, true); + break; + + case WM_KEYDOWN: + handled = handleKeyDown(wParam, lParam, false); + break; + + case WM_SYSKEYUP: + handled = handleKeyUp(wParam, lParam, true); + break; + + case WM_KEYUP: + handled = handleKeyUp(wParam, lParam, false); + break; + + case WM_SYSCHAR: + handled = handleKeyPress(wParam, lParam, true); + break; + + case WM_CHAR: + handled = handleKeyPress(wParam, lParam, false); + break; + + case WM_CLOSE: + PostMessage(m_parentWindowHandle, WM_CLOSE, wParam, lParam); + handled = true; + break; + + default: + break; + } + } + + if (handled) + return 0; + + return DefWindowProc(hWnd, message, wParam, lParam); +} diff --git a/WebKit/wince/WebView.h b/WebKit/wince/WebView.h new file mode 100644 index 0000000..c6e6684 --- /dev/null +++ b/WebKit/wince/WebView.h @@ -0,0 +1,100 @@ +/* + * Copyright (C) 2010 Patrick Gansterer <paroga@paroga.com> + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * + * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS 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 APPLE OR ITS 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 WebView_h +#define WebView_h + +#include "IntRect.h" +#include "OwnPtr.h" +#include "PassRefPtr.h" + +namespace WTF { +class String; +} + +namespace WebCore { +class Frame; +class Page; +class FrameView; +class HTMLFrameOwnerElement; +class KURL; +class ResourceRequest; +} + +class WebView { +public: + enum Features { + NoFeature = 0, + EnableDoubleBuffering = 1 << 0 + }; + + WebView(HWND hwnd, unsigned features = EnableDoubleBuffering); + ~WebView(); + + static void initialize(HINSTANCE instanceHandle); + static void cleanup(); + + HWND windowHandle() const { return m_windowHandle; } + WebCore::Frame* frame() const { return m_frame; } + WebCore::Page* page() const { return m_page; } + WebCore::FrameView* view() const; + + void load(LPCWSTR url); + void load(const WTF::String &url); + void load(const WebCore::ResourceRequest &request); + void reload(); + void stop(); + + void frameRect(RECT* rect) const; + + PassRefPtr<WebCore::Frame> createFrame(const WebCore::KURL&, const WTF::String&, WebCore::HTMLFrameOwnerElement*, const WTF::String&, bool, int, int); + + // JavaScript Dialog + void runJavaScriptAlert(const WTF::String& message); + bool runJavaScriptConfirm(const WTF::String& message); + bool runJavaScriptPrompt(const WTF::String& message, const WTF::String& defaultValue, WTF::String& result); + +private: + static LRESULT CALLBACK webViewWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); + LRESULT wndProc(HWND, UINT, WPARAM, LPARAM); + + bool handlePaint(HWND hWnd); + bool handleMouseEvent(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); + bool handleMouseWheel(HWND hWnd, WPARAM wParam, LPARAM lParam, bool isHorizontal); + bool handleKeyDown(WPARAM virtualKeyCode, LPARAM keyData, bool systemKeyDown); + bool handleKeyPress(WPARAM charCode, LPARAM keyData, bool systemKeyDown); + bool handleKeyUp(WPARAM virtualKeyCode, LPARAM keyData, bool systemKeyDown); + + void paint(HDC hDC, const WebCore::IntRect& clipRect); + + WebCore::Frame* m_frame; + WebCore::Page* m_page; + HWND m_parentWindowHandle; + HWND m_windowHandle; + bool m_enableDoubleBuffer; + OwnPtr<HDC> m_doubleBufferDC; + OwnPtr<HBITMAP> m_doubleBufferBitmap; +}; + +#endif // WebView_h diff --git a/WebKit/wx/Bakefiles.bkgen b/WebKit/wx/Bakefiles.bkgen deleted file mode 100644 index be544d6..0000000 --- a/WebKit/wx/Bakefiles.bkgen +++ /dev/null @@ -1,123 +0,0 @@ -<?xml version="1.0" ?> -<!-- -Copyright (C) 2005, 2006, 2007 Apple Computer, 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: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -2. 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. -3. Neither the name of Apple Computer, Inc. ("Apple") 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 APPLE AND ITS 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 APPLE OR ITS 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. - -Build configuration script for Bakefile. ---> - -<bakefile-gen> - - <input> - ../../JavaScriptCore/jscore.bkl - ../../WebCore/webcore-wx.bkl - wxwebkit.bkl - bindings/python/wxwebkit-py.bkl - ../../WebKitTools/DumpRenderTree/wx/DumpRenderTree.bkl - ../../WebKitTools/wx/browser/browser.bkl - </input> - - <!-- List of output formats to generate: --> - <add-formats> - gnu,msvs2005prj,msvc - </add-formats> - - <!-- JSCore settings --> - <add-flags files="../../JavaScriptCore/jscore.bkl" formats="gnu"> - -o../../JavaScriptCore/GNUmakefile - </add-flags> - <add-flags files="../../JavaScriptCore/jscore.bkl" formats="msvs2005prj"> - -o../../JavaScriptCore/JavaScriptCore.sln - </add-flags> - <add-flags files="../../JavaScriptCore/jscore.bkl" formats="msvc"> - -o../../JavaScriptCore/makefile.vc - </add-flags> - <!-- testing XCode backend - <add-flags files="jscore.bkl" formats="xcode2"> - -o../WebCore/Projects/base/WebCoreBase.xcode - </add-flags> - --> - - <!-- wx port settings --> - <add-flags files="../../WebCore/webcore-wx.bkl" formats="gnu"> - -o../../WebCore/GNUmakefile - </add-flags> - <add-flags files="../../WebCore/webcore-wx.bkl" formats="msvs2005prj"> - -o../../WebCore/webcore-wx.sln - </add-flags> - <add-flags files="../../WebCore/webcore-wx.bkl" formats="msvc"> - -o../../WebCore/makefile.vc - </add-flags> - - <add-flags files="wxwebkit.bkl" formats="gnu"> - -oGNUmakefile - </add-flags> - <add-flags files="wxwebkit.bkl" formats="msvs2005prj"> - -owxWebKit.sln - </add-flags> - <add-flags files="wxwebkit.bkl" formats="msvc"> - -omakefile.vc - </add-flags> - - <add-flags files="bindings/python/wxwebkit-py.bkl" formats="gnu"> - -obindings/python/GNUmakefile - </add-flags> - <add-flags files="bindings/python/wxwebkit-py.bkl" formats="msvs2005prj"> - -obindings/python/wxWebKit.sln - </add-flags> - <add-flags files="bindings/python/wxwebkit-py.bkl" formats="msvc"> - -obindings/python/makefile.vc - </add-flags> - - <add-flags files="../../WebKitTools/wx/browser/browser.bkl" formats="gnu"> - -o../../WebKitTools/wx/browser/GNUmakefile - </add-flags> - <add-flags files="../../WebKitTools/wx/browser/browser.bkl" formats="msvs2005prj"> - -o../../WebKitTools/wx/browser/browser.sln - </add-flags> - <add-flags files="../../WebKitTools/wx/browser/browser.bkl" formats="msvc"> - -o../../WebKitTools/wx/browser/makefile.vc - </add-flags> - <!-- testing XCode backend - <add-flags files="webcore-wx.bkl" formats="xcode2"> - -o../WebCore/Projects/wx/wxWebCore.xcode - </add-flags> - --> - - <add-flags files="../../WebKitTools/DumpRenderTree/wx/DumpRenderTree.bkl" formats="gnu"> - -o../../WebKitTools/DumpRenderTree/wx/GNUmakefile - </add-flags> - <add-flags files="../../WebKitTools/DumpRenderTree/wx/DumpRenderTree.bkl" formats="msvs2005prj"> - -o../../WebKitTools/DumpRenderTree/wx/DumpRenderTree.sln - </add-flags> - <add-flags files="../../WebKitTools/DumpRenderTree/wx/DumpRenderTree.bkl" formats="msvc"> - -o../../WebKitTools/DumpRenderTree/wx/makefile.vc - </add-flags> - - <!-- Personal customizations (not in SVN): --> - <include file="Bakefiles.local.bkgen" ignore_missing="1"/> - -</bakefile-gen> diff --git a/WebKit/wx/ChangeLog b/WebKit/wx/ChangeLog index e0f0cd1..ee07fbd 100644 --- a/WebKit/wx/ChangeLog +++ b/WebKit/wx/ChangeLog @@ -1,3 +1,35 @@ +2010-12-01 Jia Pu <jpu@apple.com> + + Reviewed by Darin Adler. + + Support multiple correction candidates panel for misspelled word on Mac OS X. + https://bugs.webkit.org/show_bug.cgi?id=50137 + <rdar://problem/8568059> + + Adopted new function signature defined in base class. + + * WebKitSupport/EditorClientWx.cpp: + (WebCore::EditorClientWx::getGuessesForWord): + * WebKitSupport/EditorClientWx.h: + +2010-11-24 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Csaba Osztrogonác. + + Remove Bakefile build system files + https://bugs.webkit.org/show_bug.cgi?id=49983 + + r53757 only removed the content, but not the files. + This patch removes that empty files. + + * Bakefiles.bkgen: Removed. + * bindings/python/wxwebkit-py.bkl: Removed. + * dependencies.bkl: Removed. + * presets: Removed. + * presets/wxwebkit.bkl: Removed. + * wxwebkit.bkl: Removed. + * wxwk-settings.bkl: Removed. + 2010-11-08 Alexey Proskuryakov <ap@apple.com> Reviewed by Darin Adler. diff --git a/WebKit/wx/WebKitSupport/EditorClientWx.cpp b/WebKit/wx/WebKitSupport/EditorClientWx.cpp index 59e2fd4..5601364 100644 --- a/WebKit/wx/WebKitSupport/EditorClientWx.cpp +++ b/WebKit/wx/WebKitSupport/EditorClientWx.cpp @@ -542,9 +542,9 @@ bool EditorClientWx::spellingUIIsShowing() return false; } -void EditorClientWx::getGuessesForWord(const String&, Vector<String>& guesses) -{ - notImplemented(); +void EditorClientWx::getGuessesForWord(const String& word, const String& context, Vector<String>& guesses) +{ + notImplemented(); } String EditorClientWx::getAutoCorrectSuggestionForMisspelledWord(const WTF::String&) diff --git a/WebKit/wx/WebKitSupport/EditorClientWx.h b/WebKit/wx/WebKitSupport/EditorClientWx.h index be5c98a..35a95ab 100644 --- a/WebKit/wx/WebKitSupport/EditorClientWx.h +++ b/WebKit/wx/WebKitSupport/EditorClientWx.h @@ -107,9 +107,9 @@ public: virtual void updateSpellingUIWithMisspelledWord(const String&); virtual void showSpellingUI(bool show); virtual bool spellingUIIsShowing(); - virtual void getGuessesForWord(const String&, Vector<String>& guesses); + virtual void getGuessesForWord(const String& word, const String& context, Vector<String>& guesses); virtual String getAutoCorrectSuggestionForMisspelledWord(const WTF::String&); - + virtual void willSetInputMethodState(); virtual void setInputMethodState(bool enabled); diff --git a/WebKit/wx/bindings/python/wxwebkit-py.bkl b/WebKit/wx/bindings/python/wxwebkit-py.bkl deleted file mode 100644 index e69de29..0000000 --- a/WebKit/wx/bindings/python/wxwebkit-py.bkl +++ /dev/null diff --git a/WebKit/wx/dependencies.bkl b/WebKit/wx/dependencies.bkl deleted file mode 100644 index e69de29..0000000 --- a/WebKit/wx/dependencies.bkl +++ /dev/null diff --git a/WebKit/wx/presets/wxwebkit.bkl b/WebKit/wx/presets/wxwebkit.bkl deleted file mode 100644 index e69de29..0000000 --- a/WebKit/wx/presets/wxwebkit.bkl +++ /dev/null diff --git a/WebKit/wx/wxwebkit.bkl b/WebKit/wx/wxwebkit.bkl deleted file mode 100644 index e69de29..0000000 --- a/WebKit/wx/wxwebkit.bkl +++ /dev/null diff --git a/WebKit/wx/wxwk-settings.bkl b/WebKit/wx/wxwk-settings.bkl deleted file mode 100644 index e69de29..0000000 --- a/WebKit/wx/wxwk-settings.bkl +++ /dev/null |