diff options
author | Steve Block <steveblock@google.com> | 2011-05-25 19:08:45 +0100 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2011-06-08 13:51:31 +0100 |
commit | 2bde8e466a4451c7319e3a072d118917957d6554 (patch) | |
tree | 28f4a1b869a513e565c7760d0e6a06e7cf1fe95a /Source/WebKit | |
parent | 6939c99b71d9372d14a0c74a772108052e8c48c8 (diff) | |
download | external_webkit-2bde8e466a4451c7319e3a072d118917957d6554.zip external_webkit-2bde8e466a4451c7319e3a072d118917957d6554.tar.gz external_webkit-2bde8e466a4451c7319e3a072d118917957d6554.tar.bz2 |
Merge WebKit at r82507: Initial merge by git
Change-Id: I60ce9d780725b58b45e54165733a8ffee23b683e
Diffstat (limited to 'Source/WebKit')
430 files changed, 12092 insertions, 3840 deletions
diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog index 78e8174..d786ce1 100644 --- a/Source/WebKit/ChangeLog +++ b/Source/WebKit/ChangeLog @@ -1,3 +1,56 @@ +2011-03-29 Timothy Hatcher <timothy@apple.com> + + Update WebKit Localizable.strings to only contain WebKit/win strings. + + https://webkit.org/b/57354 + + Reviewed by Sam Weinig. + + * English.lproj/Localizable.strings: Updated. + +2011-03-23 Jia Pu <jpu@apple.com> + + Reviewed by Darin Adler. + + Hook up new AppKit autocorrection UI with WK2. + https://bugs.webkit.org/show_bug.cgi?id=56055 + <rdar://problem/8947463> + + Please see WebCore/ChangeLog for detail. + + * WebKit.xcodeproj/project.pbxproj: + +2011-03-17 Jeff Miller <jeffm@apple.com> + + Use a consistent set of file patterns in the svn:ignore property for all .xcodeproj directories, specifically: + + *.mode* + *.pbxuser + *.perspective* + project.xcworkspace + xcuserdata + + * WebKit.xcodeproj: Modified property svn:ignore. + +2011-03-15 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Darin Adler. + + REGRESSION (WebKit2): keygen element doesn't work + https://bugs.webkit.org/show_bug.cgi?id=56402 + <rdar://problem/9006545> + + * WebKit.xcodeproj/project.pbxproj: Renamed WebKeyGenerator.m to use Objective C++. + +2011-03-11 Anton D'Auria <adauria@apple.com> + + Reviewed and landed by Brady Eidson. + + Add WebKit1 API to view and delete local storage + https://bugs.webkit.org/show_bug.cgi?id=51878 + + * WebKit.xcodeproj/project.pbxproj: + 2011-03-02 Sam Weinig <sam@webkit.org> Reviewed by Anders Carlsson. diff --git a/Source/WebKit/English.lproj/Localizable.strings b/Source/WebKit/English.lproj/Localizable.strings Binary files differindex ebc6ecf..eebf03f 100644 --- a/Source/WebKit/English.lproj/Localizable.strings +++ b/Source/WebKit/English.lproj/Localizable.strings diff --git a/Source/WebKit/WebKit.xcodeproj/project.pbxproj b/Source/WebKit/WebKit.xcodeproj/project.pbxproj index 5bebdbe..06a5566 100644 --- a/Source/WebKit/WebKit.xcodeproj/project.pbxproj +++ b/Source/WebKit/WebKit.xcodeproj/project.pbxproj @@ -85,6 +85,11 @@ 37B6FB4F1063530C000FDB3B /* WebPDFDocumentExtras.mm in Sources */ = {isa = PBXBuildFile; fileRef = 37B6FB4D1063530C000FDB3B /* WebPDFDocumentExtras.mm */; }; 37D1DCA81065928C0068F7EF /* WebJSPDFDoc.h in Headers */ = {isa = PBXBuildFile; fileRef = 37D1DCA61065928C0068F7EF /* WebJSPDFDoc.h */; }; 37D1DCA91065928C0068F7EF /* WebJSPDFDoc.mm in Sources */ = {isa = PBXBuildFile; fileRef = 37D1DCA71065928C0068F7EF /* WebJSPDFDoc.mm */; }; + 3AB02AF612C1319B00FBB694 /* WebStorageManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3AB02AF512C1319B00FBB694 /* WebStorageManager.mm */; }; + 3AB02B0012C132B200FBB694 /* WebStorageManagerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB02AFF12C132B200FBB694 /* WebStorageManagerPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 3ABB3C7A1309C3B500E93D94 /* WebStorageTrackerClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 3ABB3C781309C3B500E93D94 /* WebStorageTrackerClient.h */; }; + 3ABB3C7B1309C3B500E93D94 /* WebStorageTrackerClient.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3ABB3C791309C3B500E93D94 /* WebStorageTrackerClient.mm */; }; + 3AE15D5012DBDED4009323C8 /* WebStorageManagerInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AE15D4F12DBDED4009323C8 /* WebStorageManagerInternal.h */; }; 41F4484F10338E8C0030E55E /* WebWorkersPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 41F4484D10338E8C0030E55E /* WebWorkersPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; 41F4485010338E8C0030E55E /* WebWorkersPrivate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 41F4484E10338E8C0030E55E /* WebWorkersPrivate.mm */; }; 44BB8B141241A022001E3A22 /* WebArchiveInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 44BB8B131241A022001E3A22 /* WebArchiveInternal.h */; }; @@ -302,7 +307,7 @@ 939811130824BF01008DF038 /* WebHistory.mm in Sources */ = {isa = PBXBuildFile; fileRef = 65DA2608052CC18700A97B31 /* WebHistory.mm */; }; 939811150824BF01008DF038 /* WebNSDataExtras.m in Sources */ = {isa = PBXBuildFile; fileRef = BECD142A0565830A005BB09C /* WebNSDataExtras.m */; }; 939811160824BF01008DF038 /* WebNSEventExtras.m in Sources */ = {isa = PBXBuildFile; fileRef = BE887C00056D3A6E009BB3E7 /* WebNSEventExtras.m */; }; - 939811170824BF01008DF038 /* WebKeyGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 84723BE4056D719E0044BFEA /* WebKeyGenerator.m */; }; + 939811170824BF01008DF038 /* WebKeyGenerator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 84723BE4056D719E0044BFEA /* WebKeyGenerator.mm */; }; 939811190824BF01008DF038 /* WebNSPrintOperationExtras.m in Sources */ = {isa = PBXBuildFile; fileRef = EDD1A5C705C83987008E3150 /* WebNSPrintOperationExtras.m */; }; 9398111A0824BF01008DF038 /* WebResource.mm in Sources */ = {isa = PBXBuildFile; fileRef = 84311A1305EAAAF00088EDA4 /* WebResource.mm */; }; 9398111B0824BF01008DF038 /* WebDefaultEditingDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = BE95BEE505FD0805006E1513 /* WebDefaultEditingDelegate.m */; }; @@ -339,6 +344,8 @@ B6CE5C25100BC5F500219936 /* WebApplicationCache.h in Headers */ = {isa = PBXBuildFile; fileRef = B68049710FFBCEC1009F7F62 /* WebApplicationCache.h */; settings = {ATTRIBUTES = (Private, ); }; }; B804176F1217A83100466BAE /* WebInspectorFrontend.h in Headers */ = {isa = PBXBuildFile; fileRef = B804176D1217A83100466BAE /* WebInspectorFrontend.h */; }; B80417701217A83100466BAE /* WebInspectorFrontend.mm in Sources */ = {isa = PBXBuildFile; fileRef = B804176E1217A83100466BAE /* WebInspectorFrontend.mm */; }; + B82958D3132707D0000D0E79 /* CorrectionPanel.h in Headers */ = {isa = PBXBuildFile; fileRef = B82958D1132707D0000D0E79 /* CorrectionPanel.h */; }; + B82958D4132707D0000D0E79 /* CorrectionPanel.mm in Sources */ = {isa = PBXBuildFile; fileRef = B82958D2132707D0000D0E79 /* CorrectionPanel.mm */; }; BC26C69E10B743F400B687ED /* WebSerializedJSValue.h in Headers */ = {isa = PBXBuildFile; fileRef = BC26C69D10B743F400B687ED /* WebSerializedJSValue.h */; settings = {ATTRIBUTES = (Private, ); }; }; BC26C6A510B7447A00B687ED /* WebSerializedJSValue.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC26C6A410B7447A00B687ED /* WebSerializedJSValue.mm */; }; BC2E464D0FD8A96800A9D9DE /* WebViewData.h in Headers */ = {isa = PBXBuildFile; fileRef = BC2E464B0FD8A96800A9D9DE /* WebViewData.h */; }; @@ -483,6 +490,11 @@ 3944607E020F50ED0ECA1767 /* WebBackForwardList.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebBackForwardList.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; 3944607F020F50ED0ECA1767 /* WebHistoryItem.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebHistoryItem.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; 39446080020F50ED0ECA1767 /* WebHistoryItem.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebHistoryItem.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; + 3AB02AF512C1319B00FBB694 /* WebStorageManager.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebStorageManager.mm; sourceTree = "<group>"; }; + 3AB02AFF12C132B200FBB694 /* WebStorageManagerPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebStorageManagerPrivate.h; sourceTree = "<group>"; }; + 3ABB3C781309C3B500E93D94 /* WebStorageTrackerClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebStorageTrackerClient.h; sourceTree = "<group>"; }; + 3ABB3C791309C3B500E93D94 /* WebStorageTrackerClient.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebStorageTrackerClient.mm; sourceTree = "<group>"; }; + 3AE15D4F12DBDED4009323C8 /* WebStorageManagerInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebStorageManagerInternal.h; sourceTree = "<group>"; }; 41F4484D10338E8C0030E55E /* WebWorkersPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebWorkersPrivate.h; path = mac/Workers/WebWorkersPrivate.h; sourceTree = "<group>"; }; 41F4484E10338E8C0030E55E /* WebWorkersPrivate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = WebWorkersPrivate.mm; path = mac/Workers/WebWorkersPrivate.mm; sourceTree = "<group>"; }; 449098B90F8F82DF0076A327 /* FeatureDefines.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = FeatureDefines.xcconfig; sourceTree = "<group>"; }; @@ -587,7 +599,7 @@ 8467275C0367158500CA2ACA /* WebPluginController.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebPluginController.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; 8467275D0367158500CA2ACA /* WebPluginController.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebPluginController.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; 84723BE3056D719E0044BFEA /* WebKeyGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebKeyGenerator.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; - 84723BE4056D719E0044BFEA /* WebKeyGenerator.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = WebKeyGenerator.m; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; + 84723BE4056D719E0044BFEA /* WebKeyGenerator.mm */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebKeyGenerator.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; 848DFF840365FE6A00CA2ACA /* WebPlugin.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebPlugin.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; 848DFF850365FE6A00CA2ACA /* WebPluginContainer.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebPluginContainer.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; 848DFF860365FE6A00CA2ACA /* WebPluginViewFactory.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebPluginViewFactory.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; @@ -650,6 +662,8 @@ B68049720FFBCEC1009F7F62 /* WebApplicationCache.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebApplicationCache.mm; sourceTree = "<group>"; }; B804176D1217A83100466BAE /* WebInspectorFrontend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebInspectorFrontend.h; sourceTree = "<group>"; }; B804176E1217A83100466BAE /* WebInspectorFrontend.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebInspectorFrontend.mm; sourceTree = "<group>"; }; + B82958D1132707D0000D0E79 /* CorrectionPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CorrectionPanel.h; sourceTree = "<group>"; }; + B82958D2132707D0000D0E79 /* CorrectionPanel.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CorrectionPanel.mm; sourceTree = "<group>"; }; BC26C69D10B743F400B687ED /* WebSerializedJSValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebSerializedJSValue.h; sourceTree = "<group>"; }; BC26C6A410B7447A00B687ED /* WebSerializedJSValue.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebSerializedJSValue.mm; sourceTree = "<group>"; }; BC2E464B0FD8A96800A9D9DE /* WebViewData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebViewData.h; sourceTree = "<group>"; }; @@ -1056,6 +1070,11 @@ A5DEFC0E11D5343E00885273 /* WebDatabaseQuotaManager.mm */, 511F3FD30CECC88F00852565 /* WebDatabaseTrackerClient.h */, 511F3FD40CECC88F00852565 /* WebDatabaseTrackerClient.mm */, + 3AB02AF512C1319B00FBB694 /* WebStorageManager.mm */, + 3AB02AFF12C132B200FBB694 /* WebStorageManagerPrivate.h */, + 3AE15D4F12DBDED4009323C8 /* WebStorageManagerInternal.h */, + 3ABB3C781309C3B500E93D94 /* WebStorageTrackerClient.h */, + 3ABB3C791309C3B500E93D94 /* WebStorageTrackerClient.mm */, ); name = Storage; path = mac/Storage; @@ -1280,6 +1299,8 @@ F5B36B400281DE87018635CB /* WebCoreSupport */ = { isa = PBXGroup; children = ( + B82958D1132707D0000D0E79 /* CorrectionPanel.h */, + B82958D2132707D0000D0E79 /* CorrectionPanel.mm */, 598AD91D1201CECF00ABAE4E /* WebDeviceOrientationClient.mm */, 598AD9191201CEC900ABAE4E /* WebDeviceOrientationClient.h */, B68049710FFBCEC1009F7F62 /* WebApplicationCache.h */, @@ -1310,7 +1331,7 @@ 9345D4EA0365C5B2008635CE /* WebJavaScriptTextInputPanel.h */, 9345D4EB0365C5B2008635CE /* WebJavaScriptTextInputPanel.m */, 84723BE3056D719E0044BFEA /* WebKeyGenerator.h */, - 84723BE4056D719E0044BFEA /* WebKeyGenerator.m */, + 84723BE4056D719E0044BFEA /* WebKeyGenerator.mm */, 1AA879B411CBE9BF003C664F /* WebPlatformStrategies.h */, 1AA879B511CBE9BF003C664F /* WebPlatformStrategies.mm */, 0A2D87FB107AF52B00CDDEE3 /* WebPluginHalterClient.h */, @@ -1625,8 +1646,12 @@ 598AD92A1201CF3B00ABAE4E /* WebDeviceOrientationProviderMockInternal.h in Headers */, 598ADA461202275000ABAE4E /* WebDeviceOrientationProvider.h in Headers */, 93E2A1A4123B0B3C009FE12A /* WebDashboardRegion.h in Headers */, + 3AB02B0012C132B200FBB694 /* WebStorageManagerPrivate.h in Headers */, CDA62AE2125F87C2007FD118 /* WebFullScreenController.h in Headers */, + 3AE15D5012DBDED4009323C8 /* WebStorageManagerInternal.h in Headers */, + 3ABB3C7A1309C3B500E93D94 /* WebStorageTrackerClient.h in Headers */, BC42D324131ED1E00075FA4B /* WebLocalizableStringsInternal.h in Headers */, + B82958D3132707D0000D0E79 /* CorrectionPanel.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1908,7 +1933,7 @@ 1C7B0C660EB2464D00A28502 /* WebInspectorClientCF.cpp in Sources */, 939810E40824BF01008DF038 /* WebJavaScriptTextInputPanel.m in Sources */, 37D1DCA91065928C0068F7EF /* WebJSPDFDoc.mm in Sources */, - 939811170824BF01008DF038 /* WebKeyGenerator.m in Sources */, + 939811170824BF01008DF038 /* WebKeyGenerator.mm in Sources */, 939811030824BF01008DF038 /* WebKitErrors.m in Sources */, 939810C30824BF01008DF038 /* WebKitLogging.m in Sources */, 939810C40824BF01008DF038 /* WebKitNSStringExtras.mm in Sources */, @@ -1993,8 +2018,11 @@ 598AD9221201CF1000ABAE4E /* WebDeviceOrientation.mm in Sources */, 598AD9281201CF3200ABAE4E /* WebDeviceOrientationProviderMock.mm in Sources */, 93E2A1A5123B0B3C009FE12A /* WebDashboardRegion.mm in Sources */, + 3AB02AF612C1319B00FBB694 /* WebStorageManager.mm in Sources */, CDA62AE3125F87C2007FD118 /* WebFullScreenController.mm in Sources */, + 3ABB3C7B1309C3B500E93D94 /* WebStorageTrackerClient.mm in Sources */, BC42D34D131ED3880075FA4B /* WebLocalizableStringsInternal.mm in Sources */, + B82958D4132707D0000D0E79 /* CorrectionPanel.mm in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Source/WebKit/cf/ChangeLog b/Source/WebKit/cf/ChangeLog index 1826525..abcc065 100644 --- a/Source/WebKit/cf/ChangeLog +++ b/Source/WebKit/cf/ChangeLog @@ -1,3 +1,15 @@ +2011-03-15 Kevin Ollivier <kevino@theolliviers.com> + + Reviewed by Darin Adler. + + Introduce WTF_USE_EXPORT_MACROS, which will allow us to put shared library import/export + info into the headers rather than in export symbol definition files, but disable it on + all platforms initially so we can deal with port build issues one port at a time. + + https://bugs.webkit.org/show_bug.cgi?id=27551 + + * WebCoreSupport/WebInspectorClientCF.cpp: + 2011-02-23 Patrick Gansterer <paroga@webkit.org> Reviewed by Darin Adler. diff --git a/Source/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp b/Source/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp index 7fe7e5f..0362dac 100644 --- a/Source/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp +++ b/Source/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp @@ -37,6 +37,11 @@ #define WTF_USE_JSC 1 #endif +// Leave these set to nothing until we switch Mac and Win ports over to +// using the export macros. +#define JS_EXPORT_PRIVATE +#define WTF_EXPORT_PRIVATE + #if defined(WIN32) || defined(_WIN32) #ifndef WTF_USE_CFNETWORK #define WTF_USE_CFNETWORK 1 @@ -126,6 +131,18 @@ void WebInspectorClient::releaseFrontendPage() m_frontendPage = 0; } +void WebInspectorClient::saveSessionSetting(const String& key, const String& value) +{ + if (!key.isEmpty()) + m_sessionSettings.set(key, value); +} + +void WebInspectorClient::loadSessionSetting(const String& key, String* value) +{ + if (!key.isEmpty()) + *value = m_sessionSettings.get(key); +} + WTF::PassOwnPtr<WebCore::InspectorFrontendClientLocal::Settings> WebInspectorClient::createFrontendSettings() { class InspectorFrontendSettingsCF : public WebCore::InspectorFrontendClientLocal::Settings { diff --git a/Source/WebKit/chromium/ChangeLog b/Source/WebKit/chromium/ChangeLog index e5e6149..8becdba 100644 --- a/Source/WebKit/chromium/ChangeLog +++ b/Source/WebKit/chromium/ChangeLog @@ -1,3 +1,1713 @@ +2011-03-29 John Abd-El-Malek <jam@chromium.org> + + Reviewed by Tony Chang. + + [chromium]: Remove the code that called WebViewClient for spelling now that chromium is updated + https://bugs.webkit.org/show_bug.cgi?id=57396 + + * DEPS: + * public/WebFrame.h: + * public/WebView.h: + * public/WebViewClient.h: + (WebKit::WebViewClient::handleCurrentKeyboardEvent): + * src/EditorClientImpl.cpp: + (WebKit::EditorClientImpl::checkSpellingOfString): + (WebKit::EditorClientImpl::requestCheckingOfString): + (WebKit::EditorClientImpl::getAutoCorrectSuggestionForMisspelledWord): + (WebKit::EditorClientImpl::updateSpellingUIWithMisspelledWord): + (WebKit::EditorClientImpl::showSpellingUI): + (WebKit::EditorClientImpl::spellingUIIsShowing): + * src/WebViewImpl.cpp: + (WebKit::WebView::create): + * src/WebViewImpl.h: + * src/WebWorkerBase.cpp: + (WebKit::WebWorkerBase::initializeLoader): + * tests/PopupMenuTest.cpp: + (WebKit::SelectPopupMenuTest::SetUp): + * tests/WebFrameTest.cpp: + (WebKit::TEST_F): + * tests/WebPageSerializerTest.cpp: + (WebKit::WebPageSerializerTest::SetUp): + +2011-03-30 MORITA Hajime <morrita@google.com> + + Reviewed by Dimitri Glazkov. + + [Chromium] Expose the shadow DOM to DumpRenderTree JS tests. + https://bugs.webkit.org/show_bug.cgi?id=56573 + + Added: + - WebBindins::makeNode() to convert WebNode to a JS object, and + - WebElement::shadowRoot(). + + * public/WebBindings.h: + * public/WebElement.h: + * src/WebBindings.cpp: + (WebKit::makeNodeImpl): + (WebKit::WebBindings::makeNode): + * src/WebElement.cpp: + (WebKit::WebElement::shadowRoot): + +2011-03-30 Mario Sanchez Prada <msanchez@igalia.com> + + Reviewed by Chris Fleizach. + + AX: GTK: ARIA role is not respected on <p> <label> <div> and <form> + https://bugs.webkit.org/show_bug.cgi?id=47636 + + Duplicate new internal WebCore roles in the Chromium port. + + * public/WebAccessibilityRole.h: Update enumeration + WebAccessibilityRole to reflect newly added roles in WebCore. + * src/AssertMatchingEnums.cpp: Added new assertions. + +2011-03-30 Yury Semikhatsky <yurys@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: split debugger agent into Page and Worker-specific ones + https://bugs.webkit.org/show_bug.cgi?id=57345 + + ScriptDebugServer and InspectorDebuggerAgent contain only functionality common + for Worker and Page debugger. All specifics is moved into Page/WorkerScriptDebugServer + and Page/WorkerDebuggerAgent. + + * src/DebuggerAgentManager.cpp: + (WebKit::DebuggerAgentManager::setExposeV8DebuggerProtocol): + * src/WebDevToolsAgentImpl.cpp: + (WebKit::WebDevToolsAgent::interruptAndDispatch): + (WebKit::WebDevToolsAgent::processPendingMessages): + +2011-03-30 Yury Semikhatsky <yurys@chromium.org> + + Unreviewed. Rollout r82438 and r82436. + + * src/DebuggerAgentManager.cpp: + (WebKit::DebuggerAgentManager::setExposeV8DebuggerProtocol): + * src/WebDevToolsAgentImpl.cpp: + (WebKit::WebDevToolsAgent::interruptAndDispatch): + (WebKit::WebDevToolsAgent::processPendingMessages): + +2011-03-30 Yury Semikhatsky <yurys@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: split debugger agent into Page and Worker-specific ones + https://bugs.webkit.org/show_bug.cgi?id=57345 + + ScriptDebugServer and InspectorDebuggerAgent contain only functionality common + for Worker and Page debugger. All specifics is moved into Page/WorkerScriptDebugServer + and Page/WorkerDebuggerAgent. + + * src/DebuggerAgentManager.cpp: + (WebKit::DebuggerAgentManager::setExposeV8DebuggerProtocol): + * src/WebDevToolsAgentImpl.cpp: + (WebKit::WebDevToolsAgent::interruptAndDispatch): + (WebKit::WebDevToolsAgent::processPendingMessages): + +2011-03-29 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r82293. + http://trac.webkit.org/changeset/82293 + https://bugs.webkit.org/show_bug.cgi?id=57390 + + Breaks RetrieveCSSResources (Requested by abarth|gardener on + #webkit). + + * WebKit.gyp: + * src/WebPageSerializer.cpp: + (WebCore::getSubResourceURLFromElement): + (WebCore::retrieveResourcesForElement): + (WebCore::retrieveResourcesForFrame): + (WebKit::WebPageSerializer::retrieveAllResources): + * tests/WebPageSerializerTest.cpp: + * tests/data/pageserialization/css_test_page.html: Removed. + * tests/data/pageserialization/import_style_from_link.css: Removed. + * tests/data/pageserialization/import_styles.css: Removed. + * tests/data/pageserialization/link_styles.css: Removed. + +2011-03-29 Tony Chang <tony@chromium.org> + + Roll chromium version to r79710 to pick up libpng changes. + + * DEPS: + +2011-03-29 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r82295 and r82300. + http://trac.webkit.org/changeset/82295 + http://trac.webkit.org/changeset/82300 + https://bugs.webkit.org/show_bug.cgi?id=57380 + + This patch breaks compile on Chromium (Requested by + abarth|gardener on #webkit). + + * public/WebAccessibilityRole.h: + * src/AssertMatchingEnums.cpp: + +2011-03-29 Mario Sanchez Prada <msanchez@igalia.com> + + Reviewed by Adam Barth. + + REGRESSION(r82295): This patch does not compile on Chromium (Requested by abarth|gardener on #webkit). + https://bugs.webkit.org/show_bug.cgi?id=57377 + + Fix build errors on Chromium bots. + + * public/WebAccessibilityRole.h: Update to reflect newly added roles in WebCore. + * src/AssertMatchingEnums.cpp: Ditto. + +2011-03-29 Adam Barth <abarth@webkit.org> + + Roll Chromium DEPS + https://bugs.webkit.org/show_bug.cgi?id=57361 + + * DEPS: + +2011-03-29 Jay Civelli <jcivelli@chromium.org> + + Reviewed by David Levin. + + Adding retrieval off CSS resources to WebPageSerializer::retrieveAllResources. + https://bugs.webkit.org/show_bug.cgi?id=56650 + + * WebKit.gyp: + * src/WebPageSerializer.cpp: + (WebCore::getResourceAttributeForElement): + (WebCore::retrieveStyleSheetForElement): + (WebCore::retrieveResourcesForElement): + (WebCore::retrieveResourcesForFrame): + (WebCore::retrieveResourcesForCSSRule): + (WebCore::retrieveResourcesForCSSStyleDeclaration): + (WebCore::retrieveResourcesForCSSStyleSheet): + (WebKit::WebPageSerializer::retrieveAllResources): + * tests/WebPageSerializerTest.cpp: + (WebKit::TestWebFrameClient::TestWebFrameClient): + (WebKit::TestWebFrameClient::allowScript): + (WebKit::WebPageSerializerTest::enableJS): + (WebKit::WebPageSerializerTest::runOnLoad): + (WebKit::TEST_F): + * tests/data/pageserialization/css_test_page.html: Added. + * tests/data/pageserialization/import_style_from_link.css: Added. + (#divOrange): + * tests/data/pageserialization/import_styles.css: Added. + (#divYellow): + * tests/data/pageserialization/link_styles.css: Added. + (#divRed): + +2011-03-29 Vsevolod Vlasov <vsevik@chromium.org> + + Reviewed by Pavel Feldman. + + [Chromium] Inspector does not always shows transferred size correctly (e.g. gzipped/chunked content) + https://bugs.webkit.org/show_bug.cgi?id=56602 + + Added new methods to interface while keeping the old ones to keep + chromium working until it is also patched. + + * public/WebURLLoaderClient.h: + (WebKit::WebURLLoaderClient::didReceiveData2): + * src/AssociatedURLLoader.cpp: + (WebKit::AssociatedURLLoader::ClientAdapter::didReceiveData): + * src/ResourceHandle.cpp: + (WebCore::ResourceHandleInternal::didReceiveData): + (WebCore::ResourceHandleInternal::didReceiveData2): + +2011-03-29 Vsevolod Vlasov <vsevik@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: [Chromium] DevTools shows two resources for each plugin resource loaded + https://bugs.webkit.org/show_bug.cgi?id=57101 + + Remove DevToolsAgent network callbacks as this information is now available through ResourceLoader + + * public/WebDevToolsAgent.h: + * src/WebDevToolsAgentImpl.cpp: + * src/WebDevToolsAgentImpl.h: + +2011-03-29 Emil A Eklund <eae@chromium.org> + + Reviewed by Dimitri Glazkov. + + Relative mouse coordinates recalculated for each target + https://bugs.webkit.org/show_bug.cgi?id=57130 + + * public/WebDOMMouseEvent.h: + * src/WebDOMMouseEvent.cpp: + (WebKit::WebDOMMouseEvent::layerX): + (WebKit::WebDOMMouseEvent::layerY): + (WebKit::WebDOMMouseEvent::offsetX): + (WebKit::WebDOMMouseEvent::offsetY): + +2011-03-29 Yuta Kitamura <yutak@chromium.org> + + Unreviewed, rolling out r82195. + http://trac.webkit.org/changeset/82195 + https://bugs.webkit.org/show_bug.cgi?id=56602 + + Broke Chromium Clang builds. + + * public/WebDevToolsAgent.h: + * public/WebURLLoaderClient.h: + * src/AssociatedURLLoader.cpp: + (WebKit::AssociatedURLLoader::ClientAdapter::didReceiveData): + * src/ResourceHandle.cpp: + (WebCore::ResourceHandleInternal::didReceiveData): + * src/WebDevToolsAgentImpl.cpp: + (WebKit::WebDevToolsAgentImpl::didReceiveData): + * src/WebDevToolsAgentImpl.h: + +2011-03-29 Yuta Kitamura <yutak@chromium.org> + + Unreviewed. Another build fix. The last fix was incorrect. + + * src/ChromeClientImpl.cpp: + (WebKit::ChromeClientImpl::supportsFullscreenForNode): + (WebKit::ChromeClientImpl::supportsFullScreenForElement): + * src/ChromeClientImpl.h: + +2011-03-29 Yuta Kitamura <yutak@chromium.org> + + Unreviewed. Build fix for Chromium Clang bot. + + * src/ChromeClientImpl.cpp: + (WebKit::ChromeClientImpl::supportsFullscreenForNode): + * src/ChromeClientImpl.h: + +2011-03-28 Vsevolod Vlasov <vsevik@chromium.org> + + Reviewed by Pavel Feldman. + + [Chromium] Inspector does not always shows transferred size correctly (e.g. gzipped/chunked content) + https://bugs.webkit.org/show_bug.cgi?id=56602 + + Added new methods to interface while keeping the old ones to keep + chromium working until it is also patched. + + * public/WebDevToolsAgent.h: + * public/WebURLLoaderClient.h: + (WebKit::WebURLLoaderClient::didReceiveData): + * src/AssociatedURLLoader.cpp: + (WebKit::AssociatedURLLoader::ClientAdapter::didReceiveData): + * src/ResourceHandle.cpp: + (WebCore::ResourceHandleInternal::didReceiveData): + * src/WebDevToolsAgentImpl.cpp: + (WebKit::WebDevToolsAgentImpl::didReceiveData): + * src/WebDevToolsAgentImpl.h: + +2011-03-28 Tony Chang <tony@chromium.org> + + Reviewed by Adam Barth. + + [chromium] have DRT write the png checksum into a png comment + https://bugs.webkit.org/show_bug.cgi?id=57255 + + * DEPS: Pull in version of chromium with comment writing + +2011-03-28 Adele Peterson <adele@apple.com> + + Build fix. + + * src/WebFrameImpl.cpp: (WebKit::WebFrameImpl::selectionStartHasSpellingMarkerFor): + Call new selectionStartHasMarkerFor method instead of selectionStartHasSpellingMarkerFor. + +2011-03-28 Pavel Feldman <pfeldman@chromium.org> + + Not reviewed: fixed chromium build. + + * src/WebDevToolsAgentImpl.cpp: + (WebKit::WebDevToolsAgent::shouldInterruptForMessage): + +2011-03-25 Andy Estes <aestes@apple.com> + + Reviewed by Adele Peterson. + + REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js + https://bugs.webkit.org/show_bug.cgi?id=49016 + + Update objectContentType() implementation to handle the + shouldPreferPlugInsForImages flag. + + * src/FrameLoaderClientImpl.cpp: + (WebKit::FrameLoaderClientImpl::objectContentType): + * src/FrameLoaderClientImpl.h: + +2011-03-25 Kinuko Yasuda <kinuko@chromium.org> + + Reviewed by David Levin. + + Data race between ~WorkerFileSystemCallbacksBridge and runTasksOnWorkerThread + https://bugs.webkit.org/show_bug.cgi?id=56138 + Stopped passing the WorkerFileSystemCallbacksBridge's reference to + MainThreadFileSystemCallbacks so that in most cases (in normal cases) + its reference is only maintained by WorkerThread. + + * src/WorkerFileSystemCallbacksBridge.cpp: + (WebKit::MainThreadFileSystemCallbacks::createLeakedPtr): + (WebKit::MainThreadFileSystemCallbacks::MainThreadFileSystemCallbacks): + (WebKit::WorkerFileSystemCallbacksBridge::mayPostTaskToWorker): + * src/WorkerFileSystemCallbacksBridge.h: + +2011-03-24 John Abd-El-Malek <jam@chromium.org> + + Reviewed by Dimitri Glazkov. + + [chromium] Add setters for various client interfaces, and add WebSpellCheckClient + https://bugs.webkit.org/show_bug.cgi?id=57070 + + * public/WebSpellCheckClient.h: Added. + (WebKit::WebSpellCheckClient::spellCheck): + (WebKit::WebSpellCheckClient::requestCheckingOfText): + (WebKit::WebSpellCheckClient::autoCorrectWord): + (WebKit::WebSpellCheckClient::showSpellingUI): + (WebKit::WebSpellCheckClient::isShowingSpellingUI): + (WebKit::WebSpellCheckClient::updateSpellingUIWithMisspelledWord): + (WebKit::WebSpellCheckClient::~WebSpellCheckClient): + * public/WebView.h: + * public/WebViewClient.h: + * src/EditorClientImpl.cpp: + (WebKit::EditorClientImpl::checkSpellingOfString): + (WebKit::EditorClientImpl::requestCheckingOfString): + (WebKit::EditorClientImpl::getAutoCorrectSuggestionForMisspelledWord): + (WebKit::EditorClientImpl::updateSpellingUIWithMisspelledWord): + (WebKit::EditorClientImpl::showSpellingUI): + (WebKit::EditorClientImpl::spellingUIIsShowing): + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::setWebDevToolsAgentClient): + (WebKit::WebViewImpl::setWebAutoFillClient): + (WebKit::WebViewImpl::setWebSpellCheckClient): + (WebKit::WebViewImpl::WebViewImpl): + * src/WebViewImpl.h: + (WebKit::WebViewImpl::spellCheckClient): + +2011-03-25 Cary Clark <caryclark@google.com> + + Reviewed by Dimitri Glazkov. + + Add CGBitmapContext.h include to WebViewImpl.cpp + https://bugs.webkit.org/show_bug.cgi?id=57097 + + No tests. Exposes no new functionality. + + * src/WebViewImpl.cpp: + +2011-03-25 Adam Klein <adamk@chromium.org> + + Reviewed by David Levin. + + [chromium] Remove deprecated overload of openFileSystem for workers + https://bugs.webkit.org/show_bug.cgi?id=57062 + + * public/WebCommonWorkerClient.h: + +2011-03-25 Chang Shu <cshu@webkit.org> + + Reviewed by Ryosuke Niwa. + + rename Node::isContentEditable and all call sites to rendererIsEditable + https://bugs.webkit.org/show_bug.cgi?id=54290 + + This is part of the effort to separate JS API HTMLElement isContentEditable from + internal Node::rendererIsEditable. + + * src/WebNode.cpp: + (WebKit::WebNode::isContentEditable): + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::setFocus): + (WebKit::WebViewImpl::setComposition): + (WebKit::WebViewImpl::confirmComposition): + +2011-03-25 Mikhail Naganov <mnaganov@chromium.org> + + Roll forward Chromium deps to r79379 to pick up V8 3.2.4.2. + + * DEPS: + +2011-03-24 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r81916 and r81917. + http://trac.webkit.org/changeset/81916 + http://trac.webkit.org/changeset/81917 + https://bugs.webkit.org/show_bug.cgi?id=57071 + + broke a test on platforms that do not have QuickTime installed + (Requested by estes on #webkit). + + * src/FrameLoaderClientImpl.cpp: + (WebKit::FrameLoaderClientImpl::objectContentType): + * src/FrameLoaderClientImpl.h: + +2011-03-24 Min Qin <qinmin@google.com> + + Reviewed by James Robinson. + + Allow WebMediaPlayerClient to notify MediaPlayer that the playback state has changed + + https://bugs.webkit.org/show_bug.cgi?id=56837 + + * public/WebMediaPlayerClient.h: + * src/WebMediaPlayerClientImpl.cpp: + (WebKit::WebMediaPlayerClientImpl::playbackStateChanged): + * src/WebMediaPlayerClientImpl.h: + +2011-03-23 John Abd-El-Malek <jam@chromium.org> + + Reviewed by Tony Chang. + + [chromium] Get rid of WEB_TEXT_CHECKING_RESULT_IS_A_STRUCT since it's not needed anymore + https://bugs.webkit.org/show_bug.cgi?id=56955 + + * DEPS: + * public/WebTextCheckingResult.h: + +2011-03-24 Bill Budge <bbudge@chromium.org> + + Reviewed by Eric Seidel. + + Change a forward declaration of WebURLLoaderOptions to struct to prevent a build break in Chromium. + https://bugs.webkit.org/show_bug.cgi?id=57064 + + No tests. Exposes no new functionality. + + * public/WebFrame.h: + +2011-03-24 Andy Estes <aestes@apple.com> + + Fix the chromium build. + + * src/FrameLoaderClientImpl.cpp: + (WebKit::FrameLoaderClientImpl::objectContentType): + +2011-03-24 Andy Estes <aestes@apple.com> + + Reviewed by Darin Adler. + + REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js + https://bugs.webkit.org/show_bug.cgi?id=49016 + + Update objectContentType() implementation to handle the + shouldPreferPlugInsForImages flag. + + * src/FrameLoaderClientImpl.cpp: + (WebKit::FrameLoaderClientImpl::objectContentType): + * src/FrameLoaderClientImpl.h: + +2011-03-24 Bill Budge <bbudge@chromium.org> + + Reviewed by Dmitry Titov. + + Add an overloaded WebFrame::createAssociatedURLLoader method that takes WebURLLoaderOptions, so clients can specify CORS options to allow cross-origin requests. + https://bugs.webkit.org/show_bug.cgi?id=56885 + + No new tests. Exposes no new functionality. + + * public/WebFrame.h: + * src/WebFrameImpl.cpp: + (WebKit::WebFrameImpl::createAssociatedURLLoader): + * src/WebFrameImpl.h: + +2011-03-24 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + Remove legacy version of findPlainText. + https://bugs.webkit.org/show_bug.cgi?id=57056 + + * src/WebFrameImpl.cpp: + (WebKit::WebFrameImpl::scopeStringMatches): + Replace use of legacy findPlainText with a version that + takes an options parameter. + +2011-03-24 Nat Duca <nduca@chromium.org> + + Reviewed by Kenneth Russell. + + [chromium] Add traceEvents to compositor + https://bugs.webkit.org/show_bug.cgi?id=56965 + + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::composite): + +2011-03-24 Dominic Mazzoni <dmazzoni@google.com> + + Reviewed by Dimitri Glazkov. + + Add accessibilityObject accessor to WebDocument (needed for + building an accessibility tree that includes iframes). + https://bugs.webkit.org/show_bug.cgi?id=56984 + + * public/WebDocument.h: + * src/WebDocument.cpp: + (WebKit::WebDocument::accessibilityObject): + +2011-03-24 Ilya Sherman <isherman@chromium.org> + + Reviewed by Dimitri Glazkov. + + Expose Node::isFocusable() in the Chromium WebKit API + In service of https://code.google.com/p/chromium/issues/detail?id=72918 + https://bugs.webkit.org/show_bug.cgi?id=56809 + + * public/WebNode.h: + * src/WebNode.cpp: + (WebKit::WebNode::isFocusable): + +2011-03-24 Pavel Feldman <pfeldman@chromium.org> + + Not reviewed: fix chromium compilation. + + * public/WebDevToolsAgent.h: + +2011-03-24 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: brush up Network agent API. + https://bugs.webkit.org/show_bug.cgi?id=57001 + + * public/WebDevToolsAgent.h: + * src/WebDevToolsAgentImpl.cpp: + (WebKit::WebDevToolsAgentImpl::identifierForInitialRequest): + (WebKit::WebDevToolsAgentImpl::willSendRequest): + * src/WebDevToolsAgentImpl.h: + +2011-03-24 Noel Gordon <noel.gordon@gmail.com> + + Reviewed by Ojan Vafai. + + [chromium] WebBindings::getRangeImpl() should NULL check its NPObject argument + https://bugs.webkit.org/show_bug.cgi?id=56996 + + * src/WebBindings.cpp: + (WebKit::getRangeImpl): + +2011-03-23 Noel Gordon <noel.gordon@gmail.com> + + Reviewed by Ojan Vafai. + + [chromium] WebBindings{.h,.cpp}: should use consistent argument naming + https://bugs.webkit.org/show_bug.cgi?id=56898 + + Address FIXME I noted/added in r81676. Wanted to just copy/paste the checking + code from elsewhere in the file, but inconsistent argument naming made it more + difficult than it need be, so first step: use consistent naming. + + * public/WebBindings.h: + * src/WebBindings.cpp: + (WebKit::WebBindings::construct): + (WebKit::WebBindings::enumerate): + (WebKit::WebBindings::evaluate): + (WebKit::WebBindings::evaluateHelper): + (WebKit::WebBindings::getProperty): + (WebKit::WebBindings::hasMethod): + (WebKit::WebBindings::hasProperty): + (WebKit::WebBindings::invoke): + (WebKit::WebBindings::invokeDefault): + (WebKit::WebBindings::releaseObject): + (WebKit::WebBindings::removeProperty): + (WebKit::WebBindings::retainObject): + (WebKit::WebBindings::setException): + (WebKit::WebBindings::setProperty): + (WebKit::WebBindings::unregisterObject): + (WebKit::WebBindings::extractIdentifierData): + (WebKit::getRangeImpl): + (WebKit::getElementImpl): + (WebKit::makeIntArrayImpl): + (WebKit::WebBindings::getRange): + (WebKit::WebBindings::makeIntArray): + +2011-03-23 Jay Civelli <jcivelli@chromium.org> + + Reviewed by David Levin. + + Relanding: + Moving the method that is used to retrieve all the resources in + a page from the Chromium code (dom_operations.cc) to WebKit. + https://bugs.webkit.org/show_bug.cgi?id=55859 + + * WebKit.gyp: + * public/WebPageSerializer.h: + * public/WebURL.h: + (WebKit::operator==): + (WebKit::operator!=): + * public/WebVector.h: + (WebKit::WebVector::contains): + * src/WebDataSourceImpl.cpp: + (WebKit::WebDataSourceImpl::WebDataSourceImpl): + * src/WebPageSerializer.cpp: + (WebCore::getSubResourceURLFromElement): + (WebCore::retrieveResourcesForElement): + (WebCore::retrieveResourcesForFrame): + (WebKit::WebPageSerializer::retrieveAllResources): + * tests/WebFrameTest.cpp: + * tests/WebPageSerializerTest.cpp: Added. + * tests/data/pageserialization/awesome.png: Added. + * tests/data/pageserialization/embed_iframe.html: Added. + * tests/data/pageserialization/object_iframe.html: Added. + * tests/data/pageserialization/simple_iframe.html: Added. + * tests/data/pageserialization/simple_page.html: Added. + * tests/data/pageserialization/top_frame.html: Added. + +2011-03-23 Kenneth Russell <kbr@google.com> + + Rolled forward Chromium DEPS again to fix DumpRenderTree build + failure caused by r81821. + + * DEPS: + +2011-03-23 Kenneth Russell <kbr@google.com> + + Rolled forward Chromium DEPS to fix build breakage after r81821. + + * DEPS: + +2011-03-23 Kenneth Russell <kbr@google.com> + + Reviewed by James Robinson. + + [chromium] WebGLRenderingContext and other DOMWindow properties should remain if WebGL is disabled + https://bugs.webkit.org/show_bug.cgi?id=56947 + + Removed the WebRuntimeFeatures setting for WebGL. WebGL support is + now controlled exclusively through the page's Settings. + + * public/WebRuntimeFeatures.h: + * src/WebRuntimeFeatures.cpp: + +2011-03-23 Chris Rogers <crogers@google.com> + + Reviewed by Kenneth Russell. + + Add API to retrieve the audio hardware sample-rate + https://bugs.webkit.org/show_bug.cgi?id=56882 + + * public/WebAudioDevice.h: + * public/WebKitClient.h: + (WebKit::WebKitClient::audioHardwareSampleRate): + * src/AudioDestinationChromium.cpp: + (WebCore::AudioDestination::hardwareSampleRate): + +2011-03-23 Cris Neckar <cdn@chromium.org> + + Reviewed by Eric Seidel. + + Add refptr for widget. Mutations can happen within the event handler. + https://bugs.webkit.org/show_bug.cgi?id=56774 + + * src/WebPluginContainerImpl.cpp: + (WebKit::WebPluginContainerImpl::handleEvent): + +2011-03-23 Viet-Trung Luu <viettrungluu@chromium.org> + + Reviewed by Tony Chang. + + [chromium] Add FormatPlainText to WebClipboard::Format enumeration. + https://bugs.webkit.org/show_bug.cgi?id=56868 + + Chromium's WebClipboard::isFormatAvailable() will be correspondingly + extended. + + * public/WebClipboard.h: + * src/AssertMatchingEnums.cpp: + +2011-03-23 Yury Semikhatsky <yurys@chromium.org> + + Reviewed by Pavel Feldman. + + [Chromium] Web Inspector: Remove DebuggerScript.js from Chromium resource bundle. + https://bugs.webkit.org/show_bug.cgi?id=56916 + + * DEPS: bump up Chromium dependency to the revision where no references to the DebuggerScript.js resource are left. + * WebKit.grd: + +2011-03-23 Yury Semikhatsky <yurys@chromium.org> + + Reviewed by Pavel Feldman. + + [Chromium] Web Inspector: remove inspectNode method from WebDevToolsAgent + https://bugs.webkit.org/show_bug.cgi?id=56926 + + * public/WebDevToolsAgent.h: + * src/WebDevToolsAgentImpl.cpp: + * src/WebDevToolsAgentImpl.h: + +2011-03-23 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r81686. + http://trac.webkit.org/changeset/81686 + https://bugs.webkit.org/show_bug.cgi?id=56914 + + Breaks webkit_tests in Chromium again. (Requested by pfeldman + on #webkit). + + * WebKit.gyp: + * public/WebPageSerializer.h: + * public/WebURL.h: + * public/WebVector.h: + (WebKit::WebVector::operator[]): + * src/WebDataSourceImpl.cpp: + (WebKit::WebDataSourceImpl::WebDataSourceImpl): + * src/WebPageSerializer.cpp: + * tests/WebFrameTest.cpp: + * tests/WebPageSerializerTest.cpp: Removed. + * tests/data/pageserialization/awesome.png: Removed. + * tests/data/pageserialization/embed_iframe.html: Removed. + * tests/data/pageserialization/object_iframe.html: Removed. + * tests/data/pageserialization/simple_iframe.html: Removed. + * tests/data/pageserialization/simple_page.html: Removed. + * tests/data/pageserialization/top_frame.html: Removed. + +2011-03-22 Yury Semikhatsky <yurys@chromium.org> + + Reviewed by Pavel Feldman. + + [V8] Web Inspector: compile DebuggerScript.js into DebuggerScriptSource.h + https://bugs.webkit.org/show_bug.cgi?id=56843 + + * public/WebDevToolsAgentClient.h: the script source is now compiled along with the inspector code. + * src/WebDevToolsAgentImpl.cpp: + (WebKit::WebDevToolsAgentImpl::attach): + +2011-03-22 Yury Semikhatsky <yurys@chromium.org> + + Reviewed by Pavel Feldman. + + [Chromium] Web Inspector: remove obsolete methods from WebDevToolsAgentClient.h + https://bugs.webkit.org/show_bug.cgi?id=56897 + + * public/WebDevToolsAgentClient.h: + +2011-03-22 Noel Gordon <noel.gordon@gmail.com> + + Reviewed by Tony Chang. + + [chromium] Remove identity from dragTargetDragEnter() function signature + https://bugs.webkit.org/show_bug.cgi?id=56875 + + First part of 3-sided patch. Add new function signature sans identity. + + * public/WebView.h: + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::dragTargetDragEnter): + * src/WebViewImpl.h: + +2011-03-22 John Bauman <jbauman@chromium.org> + + Reviewed by Kenneth Russell. + + Add support for preserveDrawingBuffer context creation attribute + https://bugs.webkit.org/show_bug.cgi?id=56431 + + * src/GraphicsContext3DChromium.cpp: + (WebCore::GraphicsContext3DInternal::markContextChanged): + (WebCore::GraphicsContext3DInternal::markLayerComposited): + (WebCore::GraphicsContext3DInternal::layerComposited): + (WebCore::GraphicsContext3D::layerComposited): + * src/GraphicsContext3DInternal.h: + +2011-03-22 John Abd-El-Malek <jam@chromium.org> + + Reviewed by Tony Chang. + + [chromium] Make WebTextCheckingResult's members be public in preparation for converting it to a struct + https://bugs.webkit.org/show_bug.cgi?id=56857 + + * DEPS: + * public/WebTextCheckingResult.h: + +2011-03-22 Jay Civelli <jcivelli@chromium.org> + + Reviewed by David Levin. + + Relanding: + Moving the method that is used to retrieve all the resources in + a page from the Chromium code (dom_operations.cc) to WebKit. + https://bugs.webkit.org/show_bug.cgi?id=55859 + + + * WebKit.gyp: + * public/WebPageSerializer.h: + * public/WebURL.h: + (WebKit::operator==): + (WebKit::operator!=): + * public/WebVector.h: + (WebKit::WebVector::contains): + * src/WebDataSourceImpl.cpp: + (WebKit::WebDataSourceImpl::WebDataSourceImpl): + * src/WebPageSerializer.cpp: + (WebCore::getSubResourceURLFromElement): + (WebCore::retrieveResourcesForElement): + (WebCore::retrieveResourcesForFrame): + (WebKit::WebPageSerializer::retrieveAllResources): + * tests/WebFrameTest.cpp: + * tests/WebPageSerializerTest.cpp: Added. + * tests/data/pageserialization/awesome.png: Added. + * tests/data/pageserialization/embed_iframe.html: Added. + * tests/data/pageserialization/object_iframe.html: Added. + * tests/data/pageserialization/simple_iframe.html: Added. + * tests/data/pageserialization/simple_page.html: Added. + * tests/data/pageserialization/top_frame.html: Added. + +2011-03-22 Noel Gordon <noel.gordon@gmail.com> + + Reviewed by Tony Chang. + + [chromium] Remove Gears from Chromium WebKit + https://bugs.webkit.org/show_bug.cgi?id=56808 + + Gears has been removed from Chromium 12. Remove Gears drag drop support + from WebKit. That work lead to http://webkit.org/b/25916, a proposal to + add native file drag drop, and its subsequent standardization in HTML5. + + * public/WebBindings.h: + * public/WebView.h: + * src/WebBindings.cpp: + (WebKit::getRangeImpl): FIXME note added. + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::WebViewImpl): + (WebKit::WebViewImpl::dragTargetDragEnter): + (WebKit::WebViewImpl::dragTargetDragLeave): + (WebKit::WebViewImpl::dragTargetDrop): + (WebKit::WebViewImpl::dragTargetDragEnterOrOver): + * src/WebViewImpl.h: + +2011-03-21 Adam Klein <adamk@chromium.org> + + Reviewed by David Levin. + + [fileapi] Add URI resolution support to WorkerContext + https://bugs.webkit.org/show_bug.cgi?id=55644 + + Pass "create" bool through to allow opening + a filesystem without allowing creation. + + * src/LocalFileSystemChromium.cpp: + (WebCore::LocalFileSystem::readFileSystem): + (WebCore::LocalFileSystem::requestFileSystem): + * src/WebWorkerBase.cpp: + (WebKit::WebWorkerBase::openFileSystemForWorker): + * src/WebWorkerBase.h: + * src/WorkerFileSystemCallbacksBridge.cpp: + (WebKit::WorkerFileSystemCallbacksBridge::postOpenFileSystemToMainThread): + (WebKit::WorkerFileSystemCallbacksBridge::openFileSystemOnMainThread): + * src/WorkerFileSystemCallbacksBridge.h: + +2011-03-21 Ilya Sherman <isherman@chromium.org> + + Reviewed by James Robinson. + + Remove WebInputElement::isEnabledFormControl() from Chromium WebKit API + Clients should instead call into WebFormControlElement::isEnabled(). + https://bugs.webkit.org/show_bug.cgi?id=56364 + + * public/WebInputElement.h: Removed isEnabledFormControl(). + * src/WebInputElement.cpp: Removed isEnabledFormControl(). + +2011-03-21 Robert Kroeger <rjkroege@chromium.org> + + Reviewed by Antonio Gomes. + + Flag to enable a platform specific GestureReocognizer framework in Chromium. + + https://bugs.webkit.org/show_bug.cgi?id=49345 + + * features.gypi: + +2011-03-21 Tony Chang <tony@chromium.org> + + Reviewed by Pavel Feldman. + + [chromium] remove devtools_html's dependency on WebKit.gypi + https://bugs.webkit.org/show_bug.cgi?id=56661 + + We want to depend on the values in the gypi file, not the gypi file + itself. Actually, if someone edits a gypi file, s/he should re-run + gyp to pick up the new dependencies. + + It turns out that this doesn't matter much for this target anymore + since we pull the .js dependencies from the inspector html file. + + * WebKit.gyp: cleanup dependencies + * scripts/generate_devtools_html.py: remove unused param + +2011-03-21 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r81377. + http://trac.webkit.org/changeset/81377 + https://bugs.webkit.org/show_bug.cgi?id=56765 + + WebPageSerializerTest.MultipleFrames is broken (Requested by + simonjam on #webkit). + + * WebKit.gyp: + * public/WebPageSerializer.h: + * public/WebURL.h: + * public/WebVector.h: + (WebKit::WebVector::operator[]): + * src/WebDataSourceImpl.cpp: + (WebKit::WebDataSourceImpl::WebDataSourceImpl): + * src/WebPageSerializer.cpp: + * tests/WebFrameTest.cpp: + * tests/WebPageSerializerTest.cpp: Removed. + * tests/data/pageserialization/awesome.png: Removed. + * tests/data/pageserialization/embed_iframe.html: Removed. + * tests/data/pageserialization/object_iframe.html: Removed. + * tests/data/pageserialization/simple_iframe.html: Removed. + * tests/data/pageserialization/simple_page.html: Removed. + * tests/data/pageserialization/top_frame.html: Removed. + +2011-03-21 Daniel Sievers <sievers@google.com> + + Reviewed by Simon Fraser. + + [Chromium] Make RenderAsTextBehavior and LayerTreeAsTextBehavior tweakable from the DumpRenderTree commandline + https://bugs.webkit.org/show_bug.cgi?id=56139 + + * public/WebFrame.h: + * src/WebFrameImpl.cpp: + (WebKit::WebFrameImpl::renderTreeAsText): + (WebKit::WebFrameImpl::layerTreeAsText): + * src/WebFrameImpl.h: + +2011-03-21 Eric Uhrhane <ericu@chromium.org> + + Reviewed by David Levin. + + [fileapi/chromium] Fetch platform path using GetMetadata before creating File from FileEntry* + https://bugs.webkit.org/show_bug.cgi?id=56704 + + * src/WebFileSystemCallbacksImpl.cpp: + (WebFileSystemCallbacksImpl::didReadMetadata) + Pass new platformPath member through. + + * src/WorkerFileSystemCallbacksBridge.cpp: + (CrossThreadCopierBase) + Copy new platformPath member. + + * public/WebFileInfo.h: + (struct WebFileInfo) + Add new platformPath member. + +2011-03-21 Leandro Gracia Gil <leandrogracia@chromium.org> + + Reviewed by Steve Block. + + Media Stream API patch 0: adding compilation guards. + https://bugs.webkit.org/show_bug.cgi?id=56458 + + Enabling the feature by default for chromium builds. + + * features.gypi: + +2011-03-21 Vsevolod Vlasov <vsevik@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: Inspector does not always show correct transfer size (for compressed/chunked data) + https://bugs.webkit.org/show_bug.cgi?id=56691 + + Added transfer size support in inspector for compressed data. + + * src/ResourceHandle.cpp: + (WebCore::ResourceHandleInternal::didReceiveData): + * src/WebDevToolsAgentImpl.cpp: + (WebKit::WebDevToolsAgentImpl::didReceiveData): + +2011-03-20 Bill Budge <bbudge@chromium.org> + + Reviewed by Adam Barth. + + Rename ThreadSafeShared to ThreadSafeRefCounted + https://bugs.webkit.org/show_bug.cgi?id=56714 + + No new tests. Exposes no new functionality. + + * src/PlatformMessagePortChannel.h: + * src/WebWorkerBase.cpp: + * src/WorkerFileSystemCallbacksBridge.h: + * src/WorkerFileWriterCallbacksBridge.h: + +2011-03-18 Tony Chang <tony@chromium.org> + + Reviewed by Eric Seidel. + + [chromium] make devtool concatenation targets conditional based on debug_devtools + https://bugs.webkit.org/show_bug.cgi?id=56667 + + We don't want to run these targets when debug_devtools=1 because it + will overwrite the devtools.js and devtools.css files copied by + inspector_resources. On Linux, this triggers a warning because + there are two commands that target the same output file when + debug_devtools=1. + + I also removed the 'sources' lines since I don't think they do + anything for actions. + + * WebKit.gyp: + +2011-03-17 Alexey Marinichev <amarinichev@chromium.org> + + Reviewed by Kenneth Russell. + + chromium: uninitialized field in WebViewImpl + https://bugs.webkit.org/show_bug.cgi?id=56620 + + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::WebViewImpl): + +2011-03-17 Adrienne Walker <enne@google.com> + + Reviewed by James Robinson. + + [chromium] Turn off accelerated compositing for RTL style pages. + https://bugs.webkit.org/show_bug.cgi?id=56585 + + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::layout): + (WebKit::WebViewImpl::pageHasRTLStyle): + (WebKit::WebViewImpl::setRootGraphicsLayer): + * src/WebViewImpl.h: + +2011-03-17 Jay Civelli <jcivelli@chromium.org> + + Reviewed by David Levin. + + Moving the method that is used to retrieve all the resources in + a page from the Chromium code (dom_operations.cc) to WebKit. + https://bugs.webkit.org/show_bug.cgi?id=55859 + + * WebKit.gyp: + * public/WebPageSerializer.h: + * public/WebURL.h: + (WebKit::operator==): + (WebKit::operator!=): + * public/WebVector.h: + (WebKit::WebVector::contains): + * src/WebDataSourceImpl.cpp: + (WebKit::WebDataSourceImpl::WebDataSourceImpl): + * src/WebPageSerializer.cpp: + (WebCore::getSubResourceURLFromElement): + (WebCore::retrieveResourcesForElement): + (WebCore::retrieveResourcesForFrame): + (WebKit::WebPageSerializer::retrieveAllResources): + * tests/WebFrameTest.cpp: + * tests/WebPageSerializerTest.cpp: Added. + * tests/data/pageserialization: Added. + * tests/data/pageserialization/awesome.png: Added. + * tests/data/pageserialization/embed_iframe.html: Added. + * tests/data/pageserialization/object_iframe.html: Added. + * tests/data/pageserialization/simple_iframe.html: Added. + * tests/data/pageserialization/simple_page.html: Added. + * tests/data/pageserialization/top_frame.html: Added. + +2011-03-17 Tony Chang <tony@chromium.org> + + Reviewed by Pavel Feldman. + + [chromium] don't concatenate devtools files when debug_devtools=1 + https://bugs.webkit.org/show_bug.cgi?id=56572 + + * WebKit.gyp: + +2011-03-17 Tony Chang <tony@chromium.org> + + Reviewed by Eric Seidel. + + [chromium] minor cleanup of devtools_files variable in WebKit.gyp + https://bugs.webkit.org/show_bug.cgi?id=56503 + + * WebKit.gyp: Moving duplicate variables out of a condition. + +2011-03-16 Adam Barth <abarth@webkit.org> + + Reviewed by James Robinson. + + Remove USE(BUILTIN_UTF8_CODEC) + https://bugs.webkit.org/show_bug.cgi?id=56508 + + * features.gypi: + +2011-03-16 Tony Chang <tony@chromium.org> + + Reviewed by Adam Barth. + + [chromium] include inspector gif files in the list of resources + https://bugs.webkit.org/show_bug.cgi?id=56504 + + * scripts/generate_devtools_grd.py: + +2011-03-16 Bill Budge <bbudge@chromium.org> + + Reviewed by David Levin. + + AssociatedURLLoader does not support Cross Origin Requests + https://bugs.webkit.org/show_bug.cgi?id=53925 + + No new tests. Exposes no new functionality. + + * public/WebURLLoader.h: + (WebKit::WebURLLoaderOptions::WebURLLoaderOptions): + * src/AssociatedURLLoader.cpp: + (WebKit::AssociatedURLLoader::ClientAdapter::isDocumentThreadableLoaderClient): + (WebKit::AssociatedURLLoader::ClientAdapter::clearClient): + (WebKit::AssociatedURLLoader::ClientAdapter::create): + (WebKit::AssociatedURLLoader::ClientAdapter::ClientAdapter): + (WebKit::AssociatedURLLoader::ClientAdapter::willSendRequest): + (WebKit::AssociatedURLLoader::ClientAdapter::didSendData): + (WebKit::AssociatedURLLoader::ClientAdapter::didReceiveResponse): + (WebKit::AssociatedURLLoader::ClientAdapter::didReceiveData): + (WebKit::AssociatedURLLoader::ClientAdapter::didReceiveCachedMetadata): + (WebKit::AssociatedURLLoader::ClientAdapter::didFinishLoading): + (WebKit::AssociatedURLLoader::ClientAdapter::didFail): + (WebKit::AssociatedURLLoader::AssociatedURLLoader): + (WebKit::AssociatedURLLoader::~AssociatedURLLoader): + (WebKit::AssociatedURLLoader::loadSynchronously): + (WebKit::AssociatedURLLoader::loadAsynchronously): + (WebKit::AssociatedURLLoader::cancel): + (WebKit::AssociatedURLLoader::setDefersLoading): + * src/AssociatedURLLoader.h: + +2011-03-16 Adam Barth <abarth@webkit.org> + + Roll Chromium DEPS. + + * DEPS: + +2011-03-16 Daniel Sievers <sievers@google.com> + + Reviewed by James Robinson. + + Add setting to always force compositing mode + https://bugs.webkit.org/show_bug.cgi?id=56156 + + * public/WebSettings.h: + * src/WebSettingsImpl.cpp: + (WebKit::WebSettingsImpl::setForceCompositingMode): + * src/WebSettingsImpl.h: + +2011-03-16 Sreeram Ramachandran <sreeram@google.com> + + Reviewed by Dimitri Glazkov. + + Revert of r80451. Decided to do this in WebCore instead. + https://bugs.webkit.org/show_bug.cgi?id=55844 + + * public/WebFrame.h: + * src/WebFrameImpl.cpp: + * src/WebFrameImpl.h: + +2011-03-15 Ilya Sherman <isherman@chromium.org> + + Reviewed by Darin Fisher. + + Move isReadOnly() from WebInputElement to WebFormControlElement + https://bugs.webkit.org/show_bug.cgi?id=55760 + + * public/WebFormControlElement.h: + * public/WebInputElement.h: + * src/WebFormControlElement.cpp: + (WebKit::WebFormControlElement::isReadOnly): + * src/WebInputElement.cpp: + +2011-03-15 John Bauman <jbauman@chromium.org> + + Reviewed by Kenneth Russell. + + Non-premultiplied-alpha canvas attribute is ignore for toDataURL, drawImage, texImage2D + https://bugs.webkit.org/show_bug.cgi?id=56238 + + Add support for reading a webgl context into an ImageData. + + * src/GraphicsContext3DChromium.cpp: + (WebCore::GraphicsContext3DInternal::paintRenderingResultsToCanvas): + (WebCore::GraphicsContext3DInternal::paintRenderingResultsToImageData): + * src/GraphicsContext3DInternal.h: + +2011-03-15 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r81144. + http://trac.webkit.org/changeset/81144 + https://bugs.webkit.org/show_bug.cgi?id=56432 + + It broke the ui test + NPAPITesterBase.GetURLRedirectNotification. (Requested by + dave_levin on #webkit). + + * public/WebURLLoader.h: + * src/AssociatedURLLoader.cpp: + (WebKit::AssociatedURLLoader::AssociatedURLLoader): + (WebKit::AssociatedURLLoader::~AssociatedURLLoader): + (WebKit::AssociatedURLLoader::loadSynchronously): + (WebKit::AssociatedURLLoader::loadAsynchronously): + (WebKit::AssociatedURLLoader::cancel): + (WebKit::AssociatedURLLoader::setDefersLoading): + (WebKit::AssociatedURLLoader::prepareRequest): + (WebKit::AssociatedURLLoader::willSendRequest): + (WebKit::AssociatedURLLoader::didSendData): + (WebKit::AssociatedURLLoader::didReceiveResponse): + (WebKit::AssociatedURLLoader::didDownloadData): + (WebKit::AssociatedURLLoader::didReceiveData): + (WebKit::AssociatedURLLoader::didReceiveCachedMetadata): + (WebKit::AssociatedURLLoader::didFinishLoading): + (WebKit::AssociatedURLLoader::didFail): + * src/AssociatedURLLoader.h: + +2011-03-15 Tony Chang <tony@chromium.org> + + Reviewed by Adam Barth. + + pngcrush images used by inspector + https://bugs.webkit.org/show_bug.cgi?id=56426 + + This saves 120k in WebCore and 8k in WebKit/chromium. I ran + pngcrush -brute, so none of the meta data (ancillary chunks) + are modified. + + * src/js/Images/segmentChromium.png: + * src/js/Images/segmentHoverChromium.png: + * src/js/Images/segmentHoverEndChromium.png: + * src/js/Images/segmentSelectedChromium.png: + * src/js/Images/segmentSelectedEndChromium.png: + * src/js/Images/statusbarBackgroundChromium.png: + * src/js/Images/statusbarBottomBackgroundChromium.png: + * src/js/Images/statusbarMenuButtonChromium.png: + * src/js/Images/statusbarMenuButtonSelectedChromium.png: + +2011-03-15 Michael Nordman <michaeln@google.com> + + Reviewed by Alexey Proskuryakov. + + When initiating a main resource load, let the application cache + know which frame the load is being conducted for. This patch doesn't + resolve the following bug, but the additional WebFrame parameter + should provide the chromium port with enough info to pick the + "most appropiate" cached resource. + https://bugs.webkit.org/show_bug.cgi?id=55505 + + Also fixup a stale comment in stopLoadingInFrame. + + * public/WebApplicationCacheHost.h: + (WebKit::WebApplicationCacheHost::willStartMainResourceRequest): + * src/ApplicationCacheHost.cpp: + (WebCore::ApplicationCacheHost::maybeLoadMainResource): + (WebCore::ApplicationCacheHost::stopLoadingInFrame): + +2011-03-15 Tony Chang <tony@chromium.org> + + Reviewed by Adam Barth. + + [chromium] add a build target to create a grd file with devtool resources + https://bugs.webkit.org/show_bug.cgi?id=56335 + + Reland with a fix to avoid really long command lines on Windows. + + * WebKit.gyp: + * scripts/generate_devtools_grd.py: Added. + +2011-03-15 Alok priyadarshi <alokp@chromium.org> + + Reviewed by James Robinson. + + Valgrind error due to uninitialized PluginLayerChromium::m_textureId + https://bugs.webkit.org/show_bug.cgi?id=56390 + + * src/WebPluginContainerImpl.cpp: + (WebKit::WebPluginContainerImpl::setBackingTextureId): + (WebKit::WebPluginContainerImpl::platformLayer): + +2011-03-15 Brett Wilson <brettw@chromium.org> + + Reviewed by Adam Barth. + + Make WebConsoleMessage properly respect the log level. + https://bugs.webkit.org/show_bug.cgi?id=56386 + + * public/WebConsoleMessage.h: + (WebKit::WebConsoleMessage::WebConsoleMessage): + +2011-03-15 Tony Chang <tony@chromium.org> + + Revert r81147 and r81149, broke the chromium win build. + + * WebKit.gyp: + * scripts/generate_devtools_grd.py: Removed. + +2011-03-15 Tony Chang <tony@chromium.org> + + Fix chromium build using python 2.5 (with statement). + + * scripts/generate_devtools_grd.py: + +2011-03-15 Tony Chang <tony@chromium.org> + + Reviewed by Adam Barth. + + [chromium] add a build target to create a grd file with devtool resources + https://bugs.webkit.org/show_bug.cgi?id=56335 + + This is the webkit side of the fix for + http://code.google.com/p/chromium/issues/detail?id=35793 + + * WebKit.gyp: + * scripts/generate_devtools_grd.py: Added. + +2011-03-15 Bill Budge <bbudge@chromium.org> + + Reviewed by David Levin. + + AssociatedURLLoader does not support Cross Origin Requests + https://bugs.webkit.org/show_bug.cgi?id=53925 + + No new tests. No new functionality exposed. + + * public/WebURLLoader.h: + (WebKit::WebURLLoaderOptions::WebURLLoaderOptions): + * src/AssociatedURLLoader.cpp: + (WebKit::AssociatedURLLoader::ClientAdapter::clearClient): + (WebKit::AssociatedURLLoader::ClientAdapter::create): + (WebKit::AssociatedURLLoader::ClientAdapter::ClientAdapter): + (WebKit::AssociatedURLLoader::ClientAdapter::willSendRequest): + (WebKit::AssociatedURLLoader::ClientAdapter::didSendData): + (WebKit::AssociatedURLLoader::ClientAdapter::didReceiveResponse): + (WebKit::AssociatedURLLoader::ClientAdapter::didReceiveData): + (WebKit::AssociatedURLLoader::ClientAdapter::didReceiveCachedMetadata): + (WebKit::AssociatedURLLoader::ClientAdapter::didFinishLoading): + (WebKit::AssociatedURLLoader::ClientAdapter::didFail): + (WebKit::AssociatedURLLoader::AssociatedURLLoader): + (WebKit::AssociatedURLLoader::~AssociatedURLLoader): + (WebKit::AssociatedURLLoader::loadSynchronously): + (WebKit::AssociatedURLLoader::loadAsynchronously): + (WebKit::AssociatedURLLoader::cancel): + (WebKit::AssociatedURLLoader::setDefersLoading): + * src/AssociatedURLLoader.h: + +2011-03-15 Alok priyadarshi <alokp@chromium.org> + + Reviewed by James Robinson. + + Remove unnecessary function WebPlugin::getBackingTextureId + https://bugs.webkit.org/show_bug.cgi?id=56122 + + It will be tested by Pepper2D and Pepper3D layout/smoke tests + on the Chromium side. + + * public/WebPlugin.h: + * src/WebPluginContainerImpl.cpp: + (WebKit::WebPluginContainerImpl::platformLayer): + +2011-03-15 Mikhail Naganov <mnaganov@chromium.org> + + Unreviewed. Update chromium deps to pick up the latest V8. + + * DEPS: + +2011-03-14 Alexey Marinichev <amarinichev@chromium.org> + + Reviewed by Kenneth Russell. + + Graphics Context is not properly recovered if the GPU process dies. + https://bugs.webkit.org/show_bug.cgi?id=56148 + + Split context recreation into two steps. + + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::composite): + (WebKit::WebViewImpl::doComposite): + (WebKit::WebViewImpl::reallocateRenderer): + * src/WebViewImpl.h: + +2011-03-14 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r81094. + http://trac.webkit.org/changeset/81094 + https://bugs.webkit.org/show_bug.cgi?id=56355 + + Broke the chromium DRT related build. (Requested by dave_levin + on #webkit). + + * public/WebFrame.h: + * src/WebFrameImpl.cpp: + (WebKit::WebFrameImpl::renderTreeAsText): + (WebKit::WebFrameImpl::layerTreeAsText): + * src/WebFrameImpl.h: + +2011-03-14 Daniel Sievers <sievers@google.com> + + Reviewed by Simon Fraser. + + [Chromium] Make RenderAsTextBehavior and LayerTreeAsTextBehavior tweakable from the DumpRenderTree commandline + https://bugs.webkit.org/show_bug.cgi?id=56139 + + * public/WebFrame.h: + * src/WebFrameImpl.cpp: + (WebKit::WebFrameImpl::renderTreeAsText): + (WebKit::WebFrameImpl::layerTreeAsText): + * src/WebFrameImpl.h: + +2011-03-14 John Knottenbelt <jknotten@chromium.org> + + Reviewed by Steve Block. + + Detach Geolocation from Frame when Page destroyed. + https://bugs.webkit.org/show_bug.cgi?id=52877 + + Add accessors to the WebGeolocationClientMock to allow the number of + pending geolocation permission requests to be queried. + + * public/WebGeolocationClientMock.h: + * src/WebGeolocationClientMock.cpp: + (WebKit::WebGeolocationClientMock::numberOfPendingPermissionRequests): + +2011-03-11 David Levin <levin@chromium.org> + + Rollout the chromium deps roll as it adds a dependency on a header + that the bots building for WebKit don't seem to have. + + Specifically gfx\gl\gl_context_egl.cc depends on d3dcompiler.h + + * DEPS: + +2011-03-11 Daniel Cheng <dcheng@chromium.org> + + Reviewed by Tony Chang. + + [chromium] Correct return type of WebClipboard::readImage. + https://bugs.webkit.org/show_bug.cgi?id=56234 + + Update the return type to reflect that we are returning a blob of PNG + data, not a bitmap. + + * public/WebClipboard.h: + (WebKit::WebClipboard::readImage): + +2011-03-11 David Levin <levin@chromium.org> + + Update chromium deps to pick up the skia roll. + + * DEPS: + +2011-03-11 Adrienne Walker <enne@google.com> + + Reviewed by Kenneth Russell. + + Add missing unit tests to TilingData. + https://bugs.webkit.org/show_bug.cgi?id=54143 + + * tests/TilingDataTest.cpp: + (WebCore::TEST): + +2011-03-11 Anton D'Auria <adauria@apple.com> + + Reviewed and landed by Brady Eidson. + + Add WebKit1 API to view and delete local storage + https://bugs.webkit.org/show_bug.cgi?id=51878 + + * src/StorageNamespaceProxy.cpp: + (WebCore::StorageNamespaceProxy::clearOriginForDeletion): + (WebCore::StorageNamespaceProxy::clearAllOriginsForDeletion): + (WebCore::StorageNamespaceProxy::sync): + * src/StorageNamespaceProxy.h: + +2011-03-11 Dominic Mazzoni <dmazzoni@google.com> + + Reviewed by Dimitri Glazkov. + + Add an accessibilityIsIgnored method to WebAccessibilityObject. + https://bugs.webkit.org/show_bug.cgi?id=50969 + + * public/WebAccessibilityObject.h: + * src/WebAccessibilityObject.cpp: + (WebKit::WebAccessibilityObject::accessibilityIsIgnored): + +2011-03-11 Avi Drissman <avi@google.com> + + Reviewed by Tony Chang. + + Fix missing initialization of new member variables. + https://bugs.webkit.org/show_bug.cgi?id=50969 + + * public/WebMenuItemInfo.h: + (WebKit::WebMenuItemInfo::WebMenuItemInfo): + +2011-03-11 Roland Steiner <rolandsteiner@chromium.org> + + Reviewed by Ryosuke Niwa. + + Bug 55570 - Remove dependency of dom/InputElement.cpp on html/ and wml/ + https://bugs.webkit.org/show_bug.cgi?id=55570 + + Add a virtual function toInputElement() to Node that has a default + implementation of returning 0. + For HTMLInputElement and WMLInputElement (which derive from InputElement) + override this to return the object. + Change all calling sites of the old toInputElement to use the new member + function. This also allows us to save some casts. + + No new tests (refactoring). + + * src/WebInputElement.cpp: + (WebKit::toWebInputElement): + +2011-03-10 Takayoshi Kochi <kochi@chromium.org> + + Reviewed by Tony Chang. + + Remove default parameter declaration for familiForChars(), which is no longer necessary. + + * public/gtk/WebFontInfo.h: + +2011-03-10 Nat Duca <nduca@chromium.org> + + Reviewed by James Robinson. + + [chromium] Make updateAndDrawLayers argumentless. + https://bugs.webkit.org/show_bug.cgi?id=55985 + + Made the TilePainters and viewport parameters for + LayerRendererChromium member variables instead of arguments on + updateAndDrawLayers. In a future change, this will allows us to + draw the layer tree without the WebView's assistance. + + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::resize): + (WebKit::WebViewImpl::paint): + (WebKit::WebViewImpl::scrollRootLayerRect): + (WebKit::WebViewImpl::invalidateRootLayerRect): + (WebKit::WebViewImplContentPainter::create): + (WebKit::WebViewImplContentPainter::paint): + (WebKit::WebViewImplContentPainter::WebViewImplContentPainter): + (WebKit::WebViewImplScrollbarPainter::create): + (WebKit::WebViewImplScrollbarPainter::paint): + (WebKit::WebViewImplScrollbarPainter::WebViewImplScrollbarPainter): + (WebKit::WebViewImpl::setIsAcceleratedCompositingActive): + (WebKit::WebViewImpl::doComposite): + (WebKit::WebViewImpl::reallocateRenderer): + (WebKit::WebViewImpl::updateLayerRendererViewport): + * src/WebViewImpl.h: + +2011-03-10 Tony Chang <tony@chromium.org> + + Unreviewed, roll chromium version to r77259 to pick up + webfontinfo api change. + + * DEPS: + +2011-03-10 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r80701. + http://trac.webkit.org/changeset/80701 + https://bugs.webkit.org/show_bug.cgi?id=56126 + + fast/dom/Geolocation/window-close-crash.html fails on Snow + Leopard release builds (Requested by mihaip on #webkit). + + * public/WebGeolocationClientMock.h: + * src/WebGeolocationClientMock.cpp: + +2011-03-10 Andrey Kosyakov <caseq@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: better names for HAR export commands + https://bugs.webkit.org/show_bug.cgi?id=56097 + + Rename Export to HAR to Copy entry/network log as HAR + Expose Copy as HAR unconditionally, remove related settings entry. + + * src/js/DevTools.js: removed override for resourceExportEnabled + +2011-01-26 John Knottenbelt <jknotten@chromium.org> + + Reviewed by Dmitry Titov. + + Detach Geolocation from Frame when Page destroyed. + https://bugs.webkit.org/show_bug.cgi?id=52877 + + Add accessors to the WebGeolocationClientMock to allow the number of + pending geolocation permission requests to be queried. + + * public/WebGeolocationClientMock.h: + * src/WebGeolocationClientMock.cpp: + (WebKit::WebGeolocationClientMock::numberOfPendingPermissionRequests): + +2011-03-08 Hans Wennborg <hans@chromium.org> + + Reviewed by Jeremy Orlow. + + IndexedDB: Add BackingStoreType parameter to IDBFactoryBackendInterface::open + https://bugs.webkit.org/show_bug.cgi?id=55948 + + Add a parameter that allows for selection of alternative backing store + implementations. + + * public/WebIDBFactory.h: + (WebKit::WebIDBFactory::open): + * src/AssertMatchingEnums.cpp: + * src/IDBFactoryBackendProxy.cpp: + (WebCore::IDBFactoryBackendProxy::open): + * src/IDBFactoryBackendProxy.h: + * src/WebIDBFactoryImpl.cpp: + (WebKit::WebIDBFactoryImpl::open): + * src/WebIDBFactoryImpl.h: + +2011-03-08 Kinuko Yasuda <kinuko@chromium.org> + + Reviewed by David Levin. + + Destroying WorkerFileSystemCallbacksBridge on main thread results in ASSERT in WorkerContext::Observer::~Observer + https://bugs.webkit.org/show_bug.cgi?id=55895 + + * src/WorkerFileSystemCallbacksBridge.cpp: + (WebKit::WorkerFileSystemCallbacksBridge::runTaskOnWorkerThread): + Added stopObserving() so that releasing the bridge on the main thread + (this could happen before or after the runTaskOnWorkerThread) does + not cause the assertion error. + +2011-03-08 Alok priyadarshi <alokp@chromium.org> + + Reviewed by Dimitri Glazkov. + + Plugins needs a way to trigger style recalc + https://bugs.webkit.org/show_bug.cgi?id=55242 + + It will be tested by Pepper2D and Pepper3D layout/smoke tests + on the Chromium side. + + * public/WebPluginContainer.h: + * src/WebPluginContainerImpl.cpp: + (WebKit::WebPluginContainerImpl::setBackingTextureId): + * src/WebPluginContainerImpl.h: + +2011-03-08 Andrei Popescu <andreip@google.com> + + Reviewed by Steve Block. + + IDBCallbacks::onsuccess(IDBIndex*) is unused and should be removed. + https://bugs.webkit.org/show_bug.cgi?id=55938 + + * public/WebIDBCallbacks.h: + * src/IDBCallbacksProxy.cpp: + * src/IDBCallbacksProxy.h: + * src/WebIDBCallbacksImpl.cpp: + * src/WebIDBCallbacksImpl.h: + * src/WebIDBObjectStoreImpl.cpp: + +2011-03-07 Daniel Cheng <dcheng@chromium.org> + + Reviewed by David Levin. + + Add support for DataTransferItems + https://bugs.webkit.org/show_bug.cgi?id=55115 + + Add new runtime enabled flag for data transfer items feature. + + * public/WebRuntimeFeatures.h: + * src/WebRuntimeFeatures.cpp: + (WebKit::WebRuntimeFeatures::enableDataTransferItems): + (WebKit::WebRuntimeFeatures::isDataTransferItemsEnabled): + 2011-03-07 Ryosuke Niwa <rniwa@webkit.org> Chromium build fix. diff --git a/Source/WebKit/chromium/DEPS b/Source/WebKit/chromium/DEPS index 0e8c529..3ab2e78 100644 --- a/Source/WebKit/chromium/DEPS +++ b/Source/WebKit/chromium/DEPS @@ -32,7 +32,7 @@ vars = { 'chromium_svn': 'http://src.chromium.org/svn/trunk/src', - 'chromium_rev': '77152' + 'chromium_rev': '79759' } deps = { diff --git a/Source/WebKit/chromium/WebKit.grd b/Source/WebKit/chromium/WebKit.grd index 38570b9..4da7600 100644 --- a/Source/WebKit/chromium/WebKit.grd +++ b/Source/WebKit/chromium/WebKit.grd @@ -9,7 +9,6 @@ </outputs> <release seq="1"> <includes> - <include name="IDR_DEVTOOLS_DEBUGGER_SCRIPT_JS" file="..\..\..\Source\WebCore\bindings\v8\DebuggerScript.js" type="BINDATA"/> <include name="IDR_AUDIO_SPATIALIZATION_T000_P000" file="..\..\WebCore\platform\audio\resources\IRC_Composite_C_R0195_T000_P000.wav" type="BINDATA"/> <include name="IDR_AUDIO_SPATIALIZATION_T000_P015" file="..\..\WebCore\platform\audio\resources\IRC_Composite_C_R0195_T000_P015.wav" type="BINDATA"/> <include name="IDR_AUDIO_SPATIALIZATION_T000_P030" file="..\..\WebCore\platform\audio\resources\IRC_Composite_C_R0195_T000_P030.wav" type="BINDATA"/> diff --git a/Source/WebKit/chromium/WebKit.gyp b/Source/WebKit/chromium/WebKit.gyp index 1cb68f9..d47248e 100644 --- a/Source/WebKit/chromium/WebKit.gyp +++ b/Source/WebKit/chromium/WebKit.gyp @@ -44,22 +44,10 @@ # e.g. via build-webkit --chromium 'chromium_src_dir': '../../WebKit/chromium', 'webkit_target_type': 'static_library', - - # List of DevTools source files, ordered by dependencies. It is used both - # for copying them to resource dir, and for generating 'devtools.html' file. - 'devtools_files': [ - '<@(devtools_css_files)', - '<@(devtools_js_files)', - ], },{ # WebKit is checked out in src/chromium/third_party/WebKit 'chromium_src_dir': '../../../../..', 'webkit_target_type': '<(library)', - - 'devtools_files': [ - '<@(devtools_css_files)', - '<@(devtools_js_files)', - ], }], ], 'ahem_path': '../../../Tools/DumpRenderTree/qt/fonts/AHEM____.TTF', @@ -67,6 +55,13 @@ # If debug_devtools is set to 1, JavaScript files for DevTools are # stored as is. Otherwise, a concatenated file is stored. 'debug_devtools%': 0, + + # List of DevTools source files, ordered by dependencies. It is used both + # for copying them to resource dir, and for generating 'devtools.html' file. + 'devtools_files': [ + '<@(devtools_css_files)', + '<@(devtools_js_files)', + ], }, 'targets': [ { @@ -732,67 +727,57 @@ 'sources': ['<(PRODUCT_DIR)/resources/inspector/devtools.html'], 'actions': [{ 'action_name': 'devtools_html', - 'inputs': [ - 'scripts/generate_devtools_html.py', - # See issue 29695: WebKit.gypi is a source file for devtools.html. - 'WebKit.gypi', - '../../WebCore/inspector/front-end/inspector.html', - ], - 'outputs': ['<(PRODUCT_DIR)/resources/inspector/devtools.html'], - 'action': ['python', '<@(_inputs)', '<@(_outputs)', '<@(debug_devtools)', '<@(devtools_files)'], - }], - }, - { - 'target_name': 'concatenated_devtools_js', - 'type': 'none', - 'dependencies': [ - 'devtools_html', - '../../WebCore/WebCore.gyp/WebCore.gyp:inspector_protocol_sources' - ], - 'sources': ['<(PRODUCT_DIR)/resources/inspector/DevTools.js'], - 'actions': [{ - 'action_name': 'concatenate_devtools_js', - 'script_name': 'scripts/concatenate_js_files.py', + 'script_name': 'scripts/generate_devtools_html.py', 'input_page': '../../WebCore/inspector/front-end/inspector.html', 'inputs': [ '<@(_script_name)', '<@(_input_page)', - '<@(webinspector_files)', '<@(devtools_files)', - '<(SHARED_INTERMEDIATE_DIR)/webcore/InspectorBackendStub.js' - ], - 'search_path': [ - '../../WebCore/inspector/front-end', - 'src/js', - '<(SHARED_INTERMEDIATE_DIR)/webcore', ], - 'outputs': ['<(PRODUCT_DIR)/resources/inspector/DevTools.js'], - 'action': ['python', '<@(_script_name)', '<@(_input_page)', '<@(_search_path)', '<@(_outputs)'], + 'outputs': ['<(PRODUCT_DIR)/resources/inspector/devtools.html'], + 'action': ['python', '<@(_script_name)', '<@(_input_page)', '<@(_outputs)', '<@(debug_devtools)', '<@(devtools_files)'], }], }, { - 'target_name': 'concatenated_devtools_css', + 'target_name': 'generate_devtools_grd', 'type': 'none', 'dependencies': [ - 'devtools_html' + 'devtools_html', + ], + 'conditions': [ + ['debug_devtools==0', { + 'dependencies': ['concatenated_devtools_js', + 'concatenated_devtools_css'], + },{ + # If we're not concatenating devtools files, we want to + # run after the original files have been copied to + # <(PRODUCT_DIR)/resources/inspector. + 'dependencies': ['inspector_resources'], + }], ], - 'sources': ['<(PRODUCT_DIR)/resources/inspector/devTools.css'], 'actions': [{ - 'action_name': 'concatenate_devtools_css', - 'script_name': 'scripts/concatenate_css_files.py', - 'input_page': '../../WebCore/inspector/front-end/inspector.html', + 'action_name': 'generate_devtools_grd', + 'script_name': 'scripts/generate_devtools_grd.py', + 'input_pages': [ + '<(PRODUCT_DIR)/resources/inspector/devtools.html', + '<(PRODUCT_DIR)/resources/inspector/DevTools.js', + '<(PRODUCT_DIR)/resources/inspector/devTools.css', + ], + 'images': [ + '<@(webinspector_image_files)', + '<@(devtools_image_files)', + ], 'inputs': [ '<@(_script_name)', - '<@(_input_page)', - '<@(webinspector_files)', - '<@(devtools_files)' + '<@(_input_pages)', + '<@(_images)', ], 'search_path': [ - '../../WebCore/inspector/front-end', - 'src/js', + '../../WebCore/inspector/front-end/Images', + 'src/js/Images', ], - 'outputs': ['<(PRODUCT_DIR)/resources/inspector/devTools.css'], - 'action': ['python', '<@(_script_name)', '<@(_input_page)', '<@(_search_path)', '<@(_outputs)'], + 'outputs': ['<(SHARED_INTERMEDIATE_DIR)/devtools/devtools_resources.grd'], + 'action': ['python', '<@(_script_name)', '<@(_input_pages)', '--images', '<@(_search_path)', '--output', '<@(_outputs)'], }], }, { @@ -832,6 +817,7 @@ 'tests/TransparencyWinTest.cpp', 'tests/UniscribeHelperTest.cpp', 'tests/WebFrameTest.cpp', + 'tests/WebPageSerializerTest.cpp', ], }], ['OS=="mac"', { @@ -1151,6 +1137,61 @@ }, ], }], + ['debug_devtools==0', { + 'targets': [ + { + 'target_name': 'concatenated_devtools_js', + 'type': 'none', + 'dependencies': [ + 'devtools_html', + '../../WebCore/WebCore.gyp/WebCore.gyp:inspector_protocol_sources' + ], + 'actions': [{ + 'action_name': 'concatenate_devtools_js', + 'script_name': 'scripts/concatenate_js_files.py', + 'input_page': '../../WebCore/inspector/front-end/inspector.html', + 'inputs': [ + '<@(_script_name)', + '<@(_input_page)', + '<@(webinspector_files)', + '<@(devtools_files)', + '<(SHARED_INTERMEDIATE_DIR)/webcore/InspectorBackendStub.js' + ], + 'search_path': [ + '../../WebCore/inspector/front-end', + 'src/js', + '<(SHARED_INTERMEDIATE_DIR)/webcore', + ], + 'outputs': ['<(PRODUCT_DIR)/resources/inspector/DevTools.js'], + 'action': ['python', '<@(_script_name)', '<@(_input_page)', '<@(_search_path)', '<@(_outputs)'], + }], + }, + { + 'target_name': 'concatenated_devtools_css', + 'type': 'none', + 'dependencies': [ + 'devtools_html' + ], + 'actions': [{ + 'action_name': 'concatenate_devtools_css', + 'script_name': 'scripts/concatenate_css_files.py', + 'input_page': '../../WebCore/inspector/front-end/inspector.html', + 'inputs': [ + '<@(_script_name)', + '<@(_input_page)', + '<@(webinspector_files)', + '<@(devtools_files)' + ], + 'search_path': [ + '../../WebCore/inspector/front-end', + 'src/js', + ], + 'outputs': ['<(PRODUCT_DIR)/resources/inspector/devTools.css'], + 'action': ['python', '<@(_script_name)', '<@(_input_page)', '<@(_search_path)', '<@(_outputs)'], + }], + }, + ], + }], ], # conditions } diff --git a/Source/WebKit/chromium/features.gypi b/Source/WebKit/chromium/features.gypi index 4e91d60..7354eb8 100644 --- a/Source/WebKit/chromium/features.gypi +++ b/Source/WebKit/chromium/features.gypi @@ -59,6 +59,7 @@ 'ENABLE_FILTERS=1', 'ENABLE_FULLSCREEN_API=1', 'ENABLE_GEOLOCATION=1', + 'ENABLE_GESTURE_RECOGNIZER=1', 'ENABLE_ICONDATABASE=0', 'ENABLE_INDEXED_DATABASE=1', 'ENABLE_INPUT_SPEECH=1', @@ -67,6 +68,7 @@ 'ENABLE_LINK_PREFETCH=1', 'ENABLE_MATHML=0', 'ENABLE_MEDIA_STATISTICS=1', + 'ENABLE_MEDIA_STREAM=1', 'ENABLE_METER_TAG=1', 'ENABLE_NOTIFICATIONS=1', 'ENABLE_OFFLINE_WEB_APPLICATIONS=1', @@ -93,7 +95,6 @@ 'ENABLE_XPATH=1', 'ENABLE_XSLT=1', 'WTF_USE_ACCELERATED_COMPOSITING=1', - 'WTF_USE_BUILTIN_UTF8_CODEC=1', 'WTF_USE_WEBP=1', 'WTF_USE_WEBKIT_IMAGE_DECODERS=1', ], diff --git a/Source/WebKit/chromium/public/WebAccessibilityObject.h b/Source/WebKit/chromium/public/WebAccessibilityObject.h index 67a79e0..bdc3d09d 100644 --- a/Source/WebKit/chromium/public/WebAccessibilityObject.h +++ b/Source/WebKit/chromium/public/WebAccessibilityObject.h @@ -118,6 +118,7 @@ public: WEBKIT_API WebDocument document() const; WEBKIT_API bool hasComputedStyle() const; WEBKIT_API WebString computedStyleDisplay() const; + WEBKIT_API bool accessibilityIsIgnored() const; #if WEBKIT_IMPLEMENTATION WebAccessibilityObject(const WTF::PassRefPtr<WebCore::AccessibilityObject>&); diff --git a/Source/WebKit/chromium/public/WebAccessibilityRole.h b/Source/WebKit/chromium/public/WebAccessibilityRole.h index b0748a7..391b3e2 100644 --- a/Source/WebKit/chromium/public/WebAccessibilityRole.h +++ b/Source/WebKit/chromium/public/WebAccessibilityRole.h @@ -116,6 +116,11 @@ enum WebAccessibilityRole { WebAccessibilityRoleMenuListPopup, WebAccessibilityRoleMenuListOption, + WebAccessibilityRoleParagraph, + WebAccessibilityRoleLabel, + WebAccessibilityRoleDiv, + WebAccessibilityRoleForm, + WebAccessibilityRoleLandmarkApplication, WebAccessibilityRoleLandmarkBanner, WebAccessibilityRoleLandmarkComplementary, diff --git a/Source/WebKit/chromium/public/WebApplicationCacheHost.h b/Source/WebKit/chromium/public/WebApplicationCacheHost.h index acbc106..8539d82 100644 --- a/Source/WebKit/chromium/public/WebApplicationCacheHost.h +++ b/Source/WebKit/chromium/public/WebApplicationCacheHost.h @@ -38,6 +38,7 @@ namespace WebKit { class WebApplicationCacheHostClient; +class WebFrame; class WebURL; class WebURLRequest; class WebURLResponse; @@ -73,9 +74,11 @@ public: virtual ~WebApplicationCacheHost() { } // Called for every request made within the context. - virtual void willStartMainResourceRequest(WebURLRequest&) { } + virtual void willStartMainResourceRequest(WebURLRequest& r, const WebFrame*) { willStartMainResourceRequest(r); } virtual void willStartSubResourceRequest(WebURLRequest&) { } + virtual void willStartMainResourceRequest(WebURLRequest&) { } // DEPRECATED, remove after derived classes have caught up. + // One or the other selectCache methods is called after having parsed the <html> tag. // The latter returns false if the current document has been identified as a "foreign" // entry, in which case the frame navigation will be restarted by webkit. diff --git a/Source/WebKit/chromium/public/WebAudioDevice.h b/Source/WebKit/chromium/public/WebAudioDevice.h index a9f5a1c..00aea97 100644 --- a/Source/WebKit/chromium/public/WebAudioDevice.h +++ b/Source/WebKit/chromium/public/WebAudioDevice.h @@ -48,6 +48,7 @@ public: virtual void start() = 0; virtual void stop() = 0; + virtual double sampleRate() = 0; }; } // namespace WebKit diff --git a/Source/WebKit/chromium/public/WebBindings.h b/Source/WebKit/chromium/public/WebBindings.h index cb33781..149bff3 100644 --- a/Source/WebKit/chromium/public/WebBindings.h +++ b/Source/WebKit/chromium/public/WebBindings.h @@ -40,6 +40,7 @@ namespace WebKit { class WebDragData; class WebElement; +class WebNode; class WebRange; // A haphazard collection of functions for dealing with plugins. @@ -55,7 +56,7 @@ public: WEBKIT_API static NPObject* createObject(NPP, NPClass*); // NPN_Enumerate - WEBKIT_API static bool enumerate(NPP, NPObject*, NPIdentifier**, uint32_t* count); + WEBKIT_API static bool enumerate(NPP, NPObject*, NPIdentifier**, uint32_t* identifierCount); // NPN_Evaluate WEBKIT_API static bool evaluate(NPP, NPObject*, NPString* script, NPVariant* result); @@ -67,7 +68,7 @@ public: WEBKIT_API static NPIdentifier getIntIdentifier(int32_t number); // NPN_GetProperty - WEBKIT_API static bool getProperty(NPP, NPObject*, NPIdentifier propertyName, NPVariant *result); + WEBKIT_API static bool getProperty(NPP, NPObject*, NPIdentifier property, NPVariant *result); // NPN_GetStringIdentifier WEBKIT_API static NPIdentifier getStringIdentifier(const NPUTF8* string); @@ -76,10 +77,10 @@ public: WEBKIT_API static void getStringIdentifiers(const NPUTF8** names, int32_t nameCount, NPIdentifier*); // NPN_HasMethod - WEBKIT_API static bool hasMethod(NPP, NPObject*, NPIdentifier methodName); + WEBKIT_API static bool hasMethod(NPP, NPObject*, NPIdentifier method); // NPN_HasProperty - WEBKIT_API static bool hasProperty(NPP, NPObject*, NPIdentifier propertyName); + WEBKIT_API static bool hasProperty(NPP, NPObject*, NPIdentifier property); // NPN_IdentifierIsString WEBKIT_API static bool identifierIsString(NPIdentifier); @@ -91,10 +92,10 @@ public: WEBKIT_API static int32_t intFromIdentifier(NPIdentifier); // NPN_Invoke - WEBKIT_API static bool invoke(NPP, NPObject*, NPIdentifier methodName, const NPVariant* args, uint32_t count, NPVariant* result); + WEBKIT_API static bool invoke(NPP, NPObject*, NPIdentifier method, const NPVariant* args, uint32_t argCount, NPVariant* result); // NPN_InvokeDefault - WEBKIT_API static bool invokeDefault(NPP, NPObject*, const NPVariant* args, uint32_t count, NPVariant* result); + WEBKIT_API static bool invokeDefault(NPP, NPObject*, const NPVariant* args, uint32_t argCount, NPVariant* result); // NPN_ReleaseObject WEBKIT_API static void releaseObject(NPObject*); @@ -127,17 +128,6 @@ public: // undefined. If iString is false, the opposite is true. WEBKIT_API static void extractIdentifierData(const NPIdentifier&, const NPUTF8*& string, int32_t& number, bool& isString); - // Return true (success) if the given npobj is the current drag event in browser dispatch, - // and is accessible based on context execution frames and their security origins and - // WebKit clipboard access policy. If so, return the event id and the clipboard data (WebDragData). - // This only works with V8. If compiled without V8, it'll always return false. - WEBKIT_API static bool getDragData(NPObject* event, int* eventId, WebDragData*); - - // Invoke the event access policy checks listed above with GetDragData(). No need for clipboard - // data or event_id outputs, just confirm the given npobj is the current & accessible drag event. - // This only works with V8. If compiled without V8, it'll always return false. - WEBKIT_API static bool isDragEvent(NPObject* event); - // Return true (success) if the given npobj is a range object. // If so, return that range as a WebRange object. WEBKIT_API static bool getRange(NPObject* range, WebRange*); @@ -148,6 +138,7 @@ public: WEBKIT_API static NPObject* makeIntArray(const WebVector<int>&); WEBKIT_API static NPObject* makeStringArray(const WebVector<WebString>&); + WEBKIT_API static NPObject* makeNode(const WebNode&); // Exceptions ------------------------------------------------------------- diff --git a/Source/WebKit/chromium/public/WebClipboard.h b/Source/WebKit/chromium/public/WebClipboard.h index f9a06cf..1be255a 100644 --- a/Source/WebKit/chromium/public/WebClipboard.h +++ b/Source/WebKit/chromium/public/WebClipboard.h @@ -32,18 +32,20 @@ #define WebClipboard_h #include "WebCommon.h" -#include "WebImage.h" +#include "WebData.h" #include "WebString.h" #include "WebVector.h" namespace WebKit { class WebDragData; +class WebImage; class WebURL; class WebClipboard { public: enum Format { + FormatPlainText, FormatHTML, FormatBookmark, FormatSmartPaste @@ -62,7 +64,7 @@ public: virtual WebString readPlainText(Buffer) { return WebString(); } virtual WebString readHTML(Buffer, WebURL*) { return WebString(); } - virtual WebImage readImage(Buffer) { return WebImage(); } + virtual WebData readImage(Buffer) { return WebData(); } virtual void writePlainText(const WebString&) { } virtual void writeHTML( diff --git a/Source/WebKit/chromium/public/WebCommonWorkerClient.h b/Source/WebKit/chromium/public/WebCommonWorkerClient.h index b99d39d..9f11aa2 100644 --- a/Source/WebKit/chromium/public/WebCommonWorkerClient.h +++ b/Source/WebKit/chromium/public/WebCommonWorkerClient.h @@ -92,12 +92,6 @@ public: WEBKIT_ASSERT_NOT_REACHED(); } - // This will be removed once changes in chromium use the new method above. - virtual void openFileSystem(WebFileSystem::Type, long long size, WebFileSystemCallbacks*) - { - WEBKIT_ASSERT_NOT_REACHED(); - } - protected: ~WebCommonWorkerClient() { } }; diff --git a/Source/WebKit/chromium/public/WebConsoleMessage.h b/Source/WebKit/chromium/public/WebConsoleMessage.h index d7a0ead..3dcbc77 100644 --- a/Source/WebKit/chromium/public/WebConsoleMessage.h +++ b/Source/WebKit/chromium/public/WebConsoleMessage.h @@ -49,7 +49,7 @@ struct WebConsoleMessage { WebConsoleMessage() : level(LevelLog) { } WebConsoleMessage(Level level, const WebString& text) - : level(LevelLog) + : level(level) , text(text) { } }; diff --git a/Source/WebKit/chromium/public/WebDOMMouseEvent.h b/Source/WebKit/chromium/public/WebDOMMouseEvent.h index 4c38b56..c3de098 100644 --- a/Source/WebKit/chromium/public/WebDOMMouseEvent.h +++ b/Source/WebKit/chromium/public/WebDOMMouseEvent.h @@ -44,10 +44,10 @@ public: WEBKIT_API int screenY() const; WEBKIT_API int clientX() const; WEBKIT_API int clientY() const; - WEBKIT_API int layerX() const; - WEBKIT_API int layerY() const; - WEBKIT_API int offsetX() const; - WEBKIT_API int offsetY() const; + WEBKIT_API int layerX(); + WEBKIT_API int layerY(); + WEBKIT_API int offsetX(); + WEBKIT_API int offsetY(); WEBKIT_API int pageX() const; WEBKIT_API int pageY() const; WEBKIT_API int x() const; diff --git a/Source/WebKit/chromium/public/WebDevToolsAgent.h b/Source/WebKit/chromium/public/WebDevToolsAgent.h index d6a7bcd..03303f7 100644 --- a/Source/WebKit/chromium/public/WebDevToolsAgent.h +++ b/Source/WebKit/chromium/public/WebDevToolsAgent.h @@ -33,13 +33,6 @@ #include "WebCommon.h" -#if WEBKIT_USING_V8 -namespace v8 { -class Value; -template <class T> class Handle; -} -#endif - namespace WebKit { class WebDevToolsAgentClient; class WebDevToolsMessageTransport; @@ -65,9 +58,6 @@ 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. @@ -98,13 +88,6 @@ public: // Installs dispatch handle that is going to be called periodically // while on a breakpoint. WEBKIT_API static void setMessageLoopDispatchHandler(MessageLoopDispatchHandler); - - virtual void identifierForInitialRequest(unsigned long resourceId, WebFrame*, const WebURLRequest&) = 0; - virtual void willSendRequest(unsigned long resourceId, WebURLRequest&) = 0; - virtual void didReceiveData(unsigned long resourceId, int length) = 0; - virtual void didReceiveResponse(unsigned long resourceId, const WebURLResponse&) = 0; - virtual void didFinishLoading(unsigned long resourceId) = 0; - virtual void didFailLoading(unsigned long resourceId, const WebURLError&) = 0; }; } // namespace WebKit diff --git a/Source/WebKit/chromium/public/WebDevToolsAgentClient.h b/Source/WebKit/chromium/public/WebDevToolsAgentClient.h index b373b60..3ec5487 100644 --- a/Source/WebKit/chromium/public/WebDevToolsAgentClient.h +++ b/Source/WebKit/chromium/public/WebDevToolsAgentClient.h @@ -42,7 +42,6 @@ class WebDevToolsAgentClient { public: virtual void sendMessageToInspectorFrontend(const WebString&) { } virtual void sendDebuggerOutput(const WebString&) { } - virtual void sendDispatchToAPU(const WebString&) { } // Returns the identifier of the entity hosting this agent. virtual int hostIdentifier() { return -1; } @@ -50,8 +49,6 @@ public: // Notifies host upon runtime feature being enabled/disabled. virtual void runtimePropertyChanged(const WebString& name, const WebString& value) { } - virtual WebCString debuggerScriptSource() { return WebCString(); } - class WebKitClientMessageLoop { public: virtual ~WebKitClientMessageLoop() { } diff --git a/Source/WebKit/chromium/public/WebDocument.h b/Source/WebKit/chromium/public/WebDocument.h index d9f7386..23f28c3 100644 --- a/Source/WebKit/chromium/public/WebDocument.h +++ b/Source/WebKit/chromium/public/WebDocument.h @@ -42,6 +42,7 @@ namespace WTF { template <typename T> class PassRefPtr; } #endif namespace WebKit { +class WebAccessibilityObject; class WebDocumentType; class WebElement; class WebFrame; @@ -79,6 +80,7 @@ public: WEBKIT_API WebElement getElementById(const WebString&) const; WEBKIT_API WebNode focusedNode() const; WEBKIT_API WebDocumentType doctype() const; + WEBKIT_API WebAccessibilityObject accessibilityObject() const; #if WEBKIT_IMPLEMENTATION WebDocument(const WTF::PassRefPtr<WebCore::Document>&); diff --git a/Source/WebKit/chromium/public/WebElement.h b/Source/WebKit/chromium/public/WebElement.h index 8d51e98..2072dd3 100644 --- a/Source/WebKit/chromium/public/WebElement.h +++ b/Source/WebKit/chromium/public/WebElement.h @@ -58,6 +58,7 @@ class WebNamedNodeMap; WEBKIT_API bool setAttribute(const WebString& name, const WebString& value); WEBKIT_API WebNamedNodeMap attributes() const; WEBKIT_API WebString innerText() const; + WEBKIT_API WebNode shadowRoot(); // Returns the language code specified for this element. This attribute // is inherited, so the returned value is drawn from the closest parent diff --git a/Source/WebKit/chromium/public/WebFileInfo.h b/Source/WebKit/chromium/public/WebFileInfo.h index be0b3e4..d326e06 100644 --- a/Source/WebKit/chromium/public/WebFileInfo.h +++ b/Source/WebKit/chromium/public/WebFileInfo.h @@ -31,6 +31,8 @@ #ifndef WebFileInfo_h #define WebFileInfo_h +#include "WebString.h" + namespace WebKit { struct WebFileInfo { @@ -50,6 +52,8 @@ struct WebFileInfo { Type type; + WebString platformPath; + WebFileInfo() : modificationTime(0.0), length(-1), type(TypeUnknown) { } }; diff --git a/Source/WebKit/chromium/public/WebFormControlElement.h b/Source/WebKit/chromium/public/WebFormControlElement.h index e70b995..53ef850 100644 --- a/Source/WebKit/chromium/public/WebFormControlElement.h +++ b/Source/WebKit/chromium/public/WebFormControlElement.h @@ -54,6 +54,7 @@ public: void assign(const WebFormControlElement& e) { WebElement::assign(e); } WEBKIT_API bool isEnabled() const; + WEBKIT_API bool isReadOnly() const; WEBKIT_API WebString formControlName() const; WEBKIT_API WebString formControlType() const; diff --git a/Source/WebKit/chromium/public/WebFrame.h b/Source/WebKit/chromium/public/WebFrame.h index f3f5ba6..d5d2ff4 100644 --- a/Source/WebKit/chromium/public/WebFrame.h +++ b/Source/WebKit/chromium/public/WebFrame.h @@ -70,11 +70,9 @@ struct WebFindOptions; struct WebRect; struct WebScriptSource; struct WebSize; +struct WebURLLoaderOptions; template <typename T> class WebVector; -// FIXME(jam): take this out once Chromium has this -#define WEBFRAME_PRINTBEGIN_TAKES_NODE - class WebFrame { public: // Returns the number of live WebFrame objects, used for leak checking. @@ -345,10 +343,13 @@ public: // DEPRECATED: Please use createAssociatedURLLoader instead. virtual void dispatchWillSendRequest(WebURLRequest&) = 0; + // FIXME: Remove this overload when clients have been changed to pass options. + virtual WebURLLoader* createAssociatedURLLoader() = 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; + virtual WebURLLoader* createAssociatedURLLoader(const WebURLLoaderOptions&) = 0; // Called from within WebFrameClient::didReceiveDocumentData to commit // data for the frame that will be used to construct the frame's @@ -365,10 +366,6 @@ public: // with a suppressed opener. virtual bool willSuppressOpenerInNewFrame() const = 0; - // Returns true if this frame is in the midst of executing a beforeunload - // or unload event handler. - virtual bool pageDismissalEventBeingDispatched() const = 0; - // Editing ------------------------------------------------------------- @@ -549,7 +546,7 @@ public: // Returns a text representation of the render tree. This method is used // to support layout tests. - virtual WebString renderTreeAsText() const = 0; + virtual WebString renderTreeAsText(bool showDebugInfo = false) const = 0; // Returns the counter value for the specified element. This method is // used to support layout tests. @@ -582,7 +579,7 @@ public: // Dumps the layer tree, used by the accelerated compositor, in // text form. This is used only by layout tests. - virtual WebString layerTreeAsText() const = 0; + virtual WebString layerTreeAsText(bool showDebugInfo = false) const = 0; protected: ~WebFrame() { } diff --git a/Source/WebKit/chromium/public/WebGeolocationClientMock.h b/Source/WebKit/chromium/public/WebGeolocationClientMock.h index 08a85e2..9a39e2e 100644 --- a/Source/WebKit/chromium/public/WebGeolocationClientMock.h +++ b/Source/WebKit/chromium/public/WebGeolocationClientMock.h @@ -51,6 +51,7 @@ public: WEBKIT_API void setPosition(double latitude, double longitude, double accuracy); WEBKIT_API void setError(int errorCode, const WebString& message); WEBKIT_API void setPermission(bool); + WEBKIT_API int numberOfPendingPermissionRequests() const; WEBKIT_API void resetMock(); virtual void startUpdating(); diff --git a/Source/WebKit/chromium/public/WebIDBCallbacks.h b/Source/WebKit/chromium/public/WebIDBCallbacks.h index 1eb6d3a..ec7c095 100644 --- a/Source/WebKit/chromium/public/WebIDBCallbacks.h +++ b/Source/WebKit/chromium/public/WebIDBCallbacks.h @@ -49,8 +49,8 @@ public: virtual void onSuccess(WebIDBCursor*) { WEBKIT_ASSERT_NOT_REACHED(); } virtual void onSuccess(WebIDBDatabase*) { WEBKIT_ASSERT_NOT_REACHED(); } virtual void onSuccess(const WebIDBKey&) { WEBKIT_ASSERT_NOT_REACHED(); } + // FIXME: remove after Webkit roll. virtual void onSuccess(WebIDBIndex*) { WEBKIT_ASSERT_NOT_REACHED(); } - virtual void onSuccess(WebIDBObjectStore*) { WEBKIT_ASSERT_NOT_REACHED(); } virtual void onSuccess(WebIDBTransaction*) { WEBKIT_ASSERT_NOT_REACHED(); } virtual void onSuccess(const WebSerializedScriptValue&) { WEBKIT_ASSERT_NOT_REACHED(); } virtual void onBlocked() { WEBKIT_ASSERT_NOT_REACHED(); } diff --git a/Source/WebKit/chromium/public/WebIDBFactory.h b/Source/WebKit/chromium/public/WebIDBFactory.h index 977510f..29414e8 100755 --- a/Source/WebKit/chromium/public/WebIDBFactory.h +++ b/Source/WebKit/chromium/public/WebIDBFactory.h @@ -51,8 +51,18 @@ public: virtual ~WebIDBFactory() { } + enum BackingStoreType { + DefaultBackingStore, + LevelDBBackingStore + }; + // The WebKit implementation of open ignores the WebFrame* parameter. - virtual void open(const WebString& name, WebIDBCallbacks*, const WebSecurityOrigin&, WebFrame*, const WebString& dataDir, unsigned long long maximumSize) { WEBKIT_ASSERT_NOT_REACHED(); } + // FIXME: Assert not reached when Chromium side is updated. + virtual void open(const WebString& name, WebIDBCallbacks* callbacks, const WebSecurityOrigin& origin, WebFrame* frame, const WebString& dataDir, unsigned long long maximumSize, BackingStoreType) { open(name, callbacks, origin, frame, dataDir, maximumSize); } + + // FIXME: Remove this when Chromium side is updated. + virtual void open(const WebString& name, WebIDBCallbacks* callbacks, const WebSecurityOrigin& origin, WebFrame* frame, const WebString& dataDir, unsigned long long maximumSize) { open(name, callbacks, origin, frame, dataDir, maximumSize, DefaultBackingStore); } + virtual void deleteDatabase(const WebString& name, WebIDBCallbacks*, const WebSecurityOrigin&, WebFrame*, const WebString& dataDir) { WEBKIT_ASSERT_NOT_REACHED(); } }; diff --git a/Source/WebKit/chromium/public/WebInputElement.h b/Source/WebKit/chromium/public/WebInputElement.h index 1f0836b..3ae6578 100644 --- a/Source/WebKit/chromium/public/WebInputElement.h +++ b/Source/WebKit/chromium/public/WebInputElement.h @@ -60,8 +60,6 @@ namespace WebKit { WEBKIT_API bool isPasswordField() const; WEBKIT_API bool isImageButton() const; WEBKIT_API bool autoComplete() const; - WEBKIT_API bool isReadOnly() const; - WEBKIT_API bool isEnabledFormControl() const; WEBKIT_API int maxLength() const; WEBKIT_API bool isActivatedSubmit() const; WEBKIT_API void setActivatedSubmit(bool); diff --git a/Source/WebKit/chromium/public/WebKitClient.h b/Source/WebKit/chromium/public/WebKitClient.h index 208ecdd..eb99531 100644 --- a/Source/WebKit/chromium/public/WebKitClient.h +++ b/Source/WebKit/chromium/public/WebKitClient.h @@ -286,6 +286,7 @@ public: // Audio -------------------------------------------------------------- + virtual double audioHardwareSampleRate() { return 0; } virtual WebAudioDevice* createAudioDevice(size_t bufferSize, unsigned numberOfChannels, double sampleRate, WebAudioDevice::RenderCallback*) { return 0; } // FileSystem ---------------------------------------------------------- diff --git a/Source/WebKit/chromium/public/WebMediaPlayerClient.h b/Source/WebKit/chromium/public/WebMediaPlayerClient.h index 7e5dd68..5f60870 100644 --- a/Source/WebKit/chromium/public/WebMediaPlayerClient.h +++ b/Source/WebKit/chromium/public/WebMediaPlayerClient.h @@ -49,6 +49,7 @@ public: virtual void sizeChanged() = 0; virtual void sawUnsupportedTracks() = 0; virtual float volume() const = 0; + virtual void playbackStateChanged() = 0; protected: ~WebMediaPlayerClient() { } diff --git a/Source/WebKit/chromium/public/WebMenuItemInfo.h b/Source/WebKit/chromium/public/WebMenuItemInfo.h index f6e622a..742b4ef 100644 --- a/Source/WebKit/chromium/public/WebMenuItemInfo.h +++ b/Source/WebKit/chromium/public/WebMenuItemInfo.h @@ -49,6 +49,8 @@ struct WebMenuItemInfo { WebMenuItemInfo() : type(Option) , action(0) + , textDirection(WebTextDirectionDefault) + , hasTextDirectionOverride(false) , enabled(false) , checked(false) { diff --git a/Source/WebKit/chromium/public/WebNode.h b/Source/WebKit/chromium/public/WebNode.h index 7116dfa..92b17d4 100644 --- a/Source/WebKit/chromium/public/WebNode.h +++ b/Source/WebKit/chromium/public/WebNode.h @@ -96,6 +96,7 @@ public: WEBKIT_API WebNodeList childNodes(); WEBKIT_API WebString createMarkup() const; WEBKIT_API bool isTextNode() const; + WEBKIT_API bool isFocusable() const; WEBKIT_API bool isContentEditable() const; WEBKIT_API bool isElementNode() const; WEBKIT_API void addEventListener(const WebString& eventType, WebDOMEventListener* listener, bool useCapture); diff --git a/Source/WebKit/chromium/public/WebPageSerializer.h b/Source/WebKit/chromium/public/WebPageSerializer.h index 94f7994..b4d5715 100644 --- a/Source/WebKit/chromium/public/WebPageSerializer.h +++ b/Source/WebKit/chromium/public/WebPageSerializer.h @@ -34,10 +34,12 @@ #include "WebCommon.h" namespace WebKit { +class WebCString; class WebFrame; class WebPageSerializerClient; class WebString; class WebURL; +class WebView; template <typename T> class WebVector; // Get html data by serializing all frames of current page with lists @@ -69,6 +71,14 @@ public: const WebVector<WebString>& localPaths, const WebString& localDirectoryName); + // Retrieve all the resource for the passed view, including the main frame + // and sub-frames. Returns true if all resources were retrieved + // successfully. + WEBKIT_API static bool retrieveAllResources(WebView*, + const WebVector<WebCString>& supportedSchemes, + WebVector<WebURL>* resources, + WebVector<WebURL>* frames); + // FIXME: The following are here for unit testing purposes. Consider // changing the unit tests instead. @@ -80,6 +90,6 @@ public: WEBKIT_API static WebString generateBaseTagDeclaration(const WebString& baseTarget); }; -} // namespace WebKit +} // namespace WebKit #endif diff --git a/Source/WebKit/chromium/public/WebPlugin.h b/Source/WebKit/chromium/public/WebPlugin.h index 4a6f081..17e29e2 100644 --- a/Source/WebKit/chromium/public/WebPlugin.h +++ b/Source/WebKit/chromium/public/WebPlugin.h @@ -64,10 +64,6 @@ public: virtual void updateGeometry( const WebRect& frameRect, const WebRect& clipRect, const WebVector<WebRect>& cutOutsRects, bool isVisible) = 0; - - // If the plugin instance is backed by an OpenGL texture, return its ID in the - // compositors namespace. Otherwise return 0. Returns 0 by default. - virtual unsigned getBackingTextureId() { return 0; } virtual void updateFocus(bool) = 0; virtual void updateVisibility(bool) = 0; diff --git a/Source/WebKit/chromium/public/WebPluginContainer.h b/Source/WebKit/chromium/public/WebPluginContainer.h index c580f81..026028b 100644 --- a/Source/WebKit/chromium/public/WebPluginContainer.h +++ b/Source/WebKit/chromium/public/WebPluginContainer.h @@ -55,6 +55,10 @@ public: // WebPlugin::updateGeometry. virtual void reportGeometry() = 0; + // Sets the id of the texture used for hw-accel compositing. + // The default value for id is zero which indicates software rendering. + // A non-zero value will trigger hw-accelerated compositing. + virtual void setBackingTextureId(unsigned) = 0; // Called when the backing texture is ready to be composited. virtual void commitBackingTexture() {} diff --git a/Source/WebKit/chromium/public/WebRuntimeFeatures.h b/Source/WebKit/chromium/public/WebRuntimeFeatures.h index c9e32f5..dfaae5e 100644 --- a/Source/WebKit/chromium/public/WebRuntimeFeatures.h +++ b/Source/WebKit/chromium/public/WebRuntimeFeatures.h @@ -63,6 +63,9 @@ public: WEBKIT_API static void enableApplicationCache(bool); WEBKIT_API static bool isApplicationCacheEnabled(); + + WEBKIT_API static void enableDataTransferItems(bool); + WEBKIT_API static bool isDataTransferItemsEnabled(); WEBKIT_API static void enableGeolocation(bool); WEBKIT_API static bool isGeolocationEnabled(); @@ -73,9 +76,6 @@ public: WEBKIT_API static void enableWebAudio(bool); WEBKIT_API static bool isWebAudioEnabled(); - WEBKIT_API static void enableWebGL(bool); - WEBKIT_API static bool isWebGLEnabled(); - WEBKIT_API static void enablePushState(bool); WEBKIT_API static bool isPushStateEnabled(bool); diff --git a/Source/WebKit/chromium/public/WebSettings.h b/Source/WebKit/chromium/public/WebSettings.h index 11ed49d..113de52 100644 --- a/Source/WebKit/chromium/public/WebSettings.h +++ b/Source/WebKit/chromium/public/WebSettings.h @@ -101,6 +101,7 @@ public: virtual bool showPlatformLayerTree() const = 0; virtual void setEditingBehavior(EditingBehavior) = 0; virtual void setAcceleratedCompositingEnabled(bool) = 0; + virtual void setForceCompositingMode(bool) = 0; virtual void setCompositeToTextureEnabled(bool) = 0; virtual bool compositeToTextureEnabled() const = 0; virtual void setAcceleratedCompositingFor3DTransformsEnabled(bool) = 0; diff --git a/Source/WebKit/chromium/public/WebSpellCheckClient.h b/Source/WebKit/chromium/public/WebSpellCheckClient.h new file mode 100755 index 0000000..87bdf9e --- /dev/null +++ b/Source/WebKit/chromium/public/WebSpellCheckClient.h @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2010 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef WebSpellCheckClient_h +#define WebSpellCheckClient_h + +#include "WebString.h" + +namespace WebKit { + +class WebString; +class WebTextCheckingCompletion; + +class WebSpellCheckClient { +public: + // The client should perform spell-checking on the given text. If the + // text contains a misspelled word, then upon return misspelledOffset + // will point to the start of the misspelled word, and misspelledLength + // will indicates its length. Otherwise, if there was not a spelling + // error, then upon return misspelledLength is 0. + virtual void spellCheck( + const WebString& text, int& misspelledOffset, int& misspelledLength) { } + // Requests asynchronous spelling and grammar checking, whose result should be + // returned by passed completion object. + virtual void requestCheckingOfText(const WebString&, WebTextCheckingCompletion*) { } + + // Computes an auto-corrected replacement for a misspelled word. If no + // replacement is found, then an empty string is returned. + virtual WebString autoCorrectWord(const WebString& misspelledWord) { return WebString(); } + + // Show or hide the spelling UI. + virtual void showSpellingUI(bool show) { } + + // Returns true if the spelling UI is showing. + virtual bool isShowingSpellingUI() { return false; } + + // Update the spelling UI with the given word. + virtual void updateSpellingUIWithMisspelledWord(const WebString& word) { } + +protected: + ~WebSpellCheckClient() { } +}; + +} // namespace WebKit + +#endif diff --git a/Source/WebKit/chromium/public/WebTextCheckingCompletion.h b/Source/WebKit/chromium/public/WebTextCheckingCompletion.h index 7e6526d..a207a27 100644 --- a/Source/WebKit/chromium/public/WebTextCheckingCompletion.h +++ b/Source/WebKit/chromium/public/WebTextCheckingCompletion.h @@ -35,7 +35,7 @@ namespace WebKit { -class WebTextCheckingResult; +struct WebTextCheckingResult; template <typename T> class WebVector; // Gets called back when WebViewClient finished an asynchronous spell checking. diff --git a/Source/WebKit/chromium/public/WebTextCheckingResult.h b/Source/WebKit/chromium/public/WebTextCheckingResult.h index 4d16d31..79fbb56 100644 --- a/Source/WebKit/chromium/public/WebTextCheckingResult.h +++ b/Source/WebKit/chromium/public/WebTextCheckingResult.h @@ -36,28 +36,22 @@ namespace WebKit { // A checked entry of text checking. -class WebTextCheckingResult { -public: +struct WebTextCheckingResult { enum Error { ErrorSpelling = 1 << 0, ErrorGrammar = 1 << 1 }; - Error error() const { return m_error; } - int position() const { return m_position; } - int length() const { return m_length; } - - explicit WebTextCheckingResult(Error error = ErrorSpelling, int position = 0, int length = 0) - : m_error(error) - , m_position(position) - , m_length(length) + explicit WebTextCheckingResult(Error e = ErrorSpelling, int p = 0, int l = 0) + : error(e) + , position(p) + , length(l) { } - -private: - Error m_error; - int m_position; - int m_length; + + Error error; + int position; + int length; }; } // namespace WebKit diff --git a/Source/WebKit/chromium/public/WebURL.h b/Source/WebKit/chromium/public/WebURL.h index bb90e32..707ba08 100644 --- a/Source/WebKit/chromium/public/WebURL.h +++ b/Source/WebKit/chromium/public/WebURL.h @@ -143,6 +143,16 @@ inline bool operator<(const WebURL& a, const WebURL& b) return a.spec() < b.spec(); } +inline bool operator==(const WebURL& a, const WebURL& b) +{ + return !a.spec().compare(b.spec()); +} + +inline bool operator!=(const WebURL& a, const WebURL& b) +{ + return !(a == b); +} + } // namespace WebKit #endif diff --git a/Source/WebKit/chromium/public/WebURLLoader.h b/Source/WebKit/chromium/public/WebURLLoader.h index 54d105e..38efcb4 100644 --- a/Source/WebKit/chromium/public/WebURLLoader.h +++ b/Source/WebKit/chromium/public/WebURLLoader.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Google Inc. All rights reserved. + * Copyright (C) 2009, 2011 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 @@ -41,6 +41,21 @@ class WebURLRequest; class WebURLResponse; struct WebURLError; +enum WebCrossOriginRequestPolicy { + DenyCrossOriginRequests, + UseAccessControl, + AllowCrossOriginRequests +}; + +struct WebURLLoaderOptions { + WebURLLoaderOptions() : sniffContent(false), allowCredentials(false), forcePreflight(false), crossOriginRequestPolicy(DenyCrossOriginRequests) { } + + bool sniffContent; // Whether to sniff content. + bool allowCredentials; // Whether to send HTTP credentials and cookies with the request. + bool forcePreflight; // If AccessControl is used, whether to force a preflight. + WebCrossOriginRequestPolicy crossOriginRequestPolicy; +}; + class WebURLLoader { public: // The WebURLLoader may be deleted in a call to its client. diff --git a/Source/WebKit/chromium/public/WebURLLoaderClient.h b/Source/WebKit/chromium/public/WebURLLoaderClient.h index 87d100f..e306b19 100644 --- a/Source/WebKit/chromium/public/WebURLLoaderClient.h +++ b/Source/WebKit/chromium/public/WebURLLoaderClient.h @@ -58,6 +58,10 @@ public: virtual void didDownloadData(WebURLLoader*, int dataLength) { } // Called when a chunk of response data is received. + // FIXME(vsevik): rename once original didReceiveData() is removed. + virtual void didReceiveData2(WebURLLoader*, const char* data, int dataLength, int lengthReceived) { } + + // FIXME(vsevik): remove once not used downstream virtual void didReceiveData(WebURLLoader*, const char* data, int dataLength) { } // Called when a chunk of renderer-generated metadata is received from the cache. diff --git a/Source/WebKit/chromium/public/WebVector.h b/Source/WebKit/chromium/public/WebVector.h index cf3ec95..bb02abc 100644 --- a/Source/WebKit/chromium/public/WebVector.h +++ b/Source/WebKit/chromium/public/WebVector.h @@ -125,6 +125,15 @@ public: WEBKIT_ASSERT(i < m_size); return m_ptr[i]; } + + bool contains(const T& value) const + { + for (size_t i = 0; i < m_size; i++) { + if (m_ptr[i] == value) + return true; + } + return false; + } T* data() { return m_ptr; } const T* data() const { return m_ptr; } @@ -172,6 +181,6 @@ private: size_t m_size; }; -} // namespace WebKit +} // namespace WebKit #endif diff --git a/Source/WebKit/chromium/public/WebView.h b/Source/WebKit/chromium/public/WebView.h index 081fddb..d32e09c 100644 --- a/Source/WebKit/chromium/public/WebView.h +++ b/Source/WebKit/chromium/public/WebView.h @@ -36,9 +36,6 @@ #include "WebVector.h" #include "WebWidget.h" -// FIXME(jam): take out once Chromium rolls past this revision -#define WEBKIT_HAS_WEB_AUTO_FILL_CLIENT - namespace WebKit { class WebAccessibilityObject; @@ -51,6 +48,7 @@ class WebFrameClient; class WebGraphicsContext3D; class WebNode; class WebSettings; +class WebSpellCheckClient; class WebString; class WebViewClient; struct WebMediaPlayerAction; @@ -86,9 +84,7 @@ public: // Creates a WebView that is NOT yet initialized. You will need to // call initializeMainFrame to finish the initialization. It is valid // to pass null client pointers. - WEBKIT_API static WebView* create(WebViewClient*, - WebDevToolsAgentClient*, - WebAutoFillClient*); + WEBKIT_API static WebView* create(WebViewClient*); // After creating a WebView, you should immediately call this method. // You can optionally modify the settings before calling this method. @@ -96,6 +92,11 @@ public: // child frames. It is valid to pass a null WebFrameClient pointer. virtual void initializeMainFrame(WebFrameClient*) = 0; + // Initializes the various client interfaces. + virtual void setDevToolsAgentClient(WebDevToolsAgentClient*) = 0; + virtual void setAutoFillClient(WebAutoFillClient*) = 0; + virtual void setSpellCheckClient(WebSpellCheckClient*) = 0; + // Options ------------------------------------------------------------- @@ -229,7 +230,11 @@ public: // Callback methods when a drag-and-drop operation is trying to drop // something on the WebView. virtual WebDragOperation dragTargetDragEnter( - const WebDragData&, int identity, + const WebDragData&, int identity, // FIXME: remove identity from this function signature. + const WebPoint& clientPoint, const WebPoint& screenPoint, + WebDragOperationsMask operationsAllowed) = 0; + virtual WebDragOperation dragTargetDragEnter( + const WebDragData&, const WebPoint& clientPoint, const WebPoint& screenPoint, WebDragOperationsMask operationsAllowed) = 0; virtual WebDragOperation dragTargetDragOver( @@ -239,13 +244,6 @@ public: virtual void dragTargetDrop( const WebPoint& clientPoint, const WebPoint& screenPoint) = 0; - virtual int dragIdentity() = 0; - - // Helper method for drag and drop target operations: override the - // default drop effect with either a "copy" (accept true) or "none" - // (accept false) effect. Return true on success. - virtual bool setDropEffect(bool accept) = 0; - // Support for resource loading initiated by plugins ------------------- diff --git a/Source/WebKit/chromium/public/WebViewClient.h b/Source/WebKit/chromium/public/WebViewClient.h index 2588788..c168ef2 100644 --- a/Source/WebKit/chromium/public/WebViewClient.h +++ b/Source/WebKit/chromium/public/WebViewClient.h @@ -64,7 +64,6 @@ class WebRange; class WebSpeechInputController; class WebSpeechInputListener; class WebStorageNamespace; -class WebTextCheckingCompletion; class WebURL; class WebURLRequest; class WebView; @@ -170,32 +169,6 @@ public: virtual bool handleCurrentKeyboardEvent() { return false; } - // Spellchecker -------------------------------------------------------- - - // The client should perform spell-checking on the given text. If the - // text contains a misspelled word, then upon return misspelledOffset - // will point to the start of the misspelled word, and misspelledLength - // will indicates its length. Otherwise, if there was not a spelling - // error, then upon return misspelledLength is 0. - virtual void spellCheck( - const WebString& text, int& misspelledOffset, int& misspelledLength) { } - // Requests asynchronous spelling and grammar checking, whose result should be - // returned by passed completion object. - virtual void requestCheckingOfText(const WebString&, WebTextCheckingCompletion*) { } - // Computes an auto-corrected replacement for a misspelled word. If no - // replacement is found, then an empty string is returned. - virtual WebString autoCorrectWord(const WebString& misspelledWord) { return WebString(); } - - // Show or hide the spelling UI. - virtual void showSpellingUI(bool show) { } - - // Returns true if the spelling UI is showing. - virtual bool isShowingSpellingUI() { return false; } - - // Update the spelling UI with the given word. - virtual void updateSpellingUIWithMisspelledWord(const WebString& word) { } - - // Dialogs ------------------------------------------------------------- // This method returns immediately after showing the dialog. When the diff --git a/Source/WebKit/chromium/public/gtk/WebFontInfo.h b/Source/WebKit/chromium/public/gtk/WebFontInfo.h index d603372..aa31faf 100644 --- a/Source/WebKit/chromium/public/gtk/WebFontInfo.h +++ b/Source/WebKit/chromium/public/gtk/WebFontInfo.h @@ -50,7 +50,7 @@ public: // // Returns: the font family or an empty string if the request could not be // satisfied. - WEBKIT_API static WebCString familyForChars(const WebUChar* characters, size_t numCharacters, const char* preferredLocale = 0); + WEBKIT_API static WebCString familyForChars(const WebUChar* characters, size_t numCharacters, const char* preferredLocale); // Fill out the given WebFontRenderStyle with the user's preferences for // rendering the given font at the given size. diff --git a/Source/WebKit/chromium/scripts/generate_devtools_grd.py b/Source/WebKit/chromium/scripts/generate_devtools_grd.py new file mode 100644 index 0000000..fabe64b --- /dev/null +++ b/Source/WebKit/chromium/scripts/generate_devtools_grd.py @@ -0,0 +1,121 @@ +#!/usr/bin/env python +# +# Copyright (C) 2011 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. + +"""Creates a grd file for packaging the inspector files.""" + +from __future__ import with_statement + +import errno +import os +import shutil +import sys +from xml.dom import minidom + +kDevToolsResourcePrefix = 'IDR_DEVTOOLS_' +kGrdTemplate = '''<?xml version="1.0" encoding="UTF-8"?> +<grit latest_public_release="0" current_release="1"> + <outputs> + <output filename="grit/devtools_resources.h" type="rc_header"> + <emit emit_type='prepend'></emit> + </output> + <output filename="grit/devtools_resources_map.cc" type="resource_file_map_source" /> + <output filename="grit/devtools_resources_map.h" type="resource_map_header" /> + + <output filename="devtools_resources.pak" type="data_package" /> + </outputs> + <release seq="1"> + <includes></includes> + </release> +</grit> +''' + + +class ParsedArgs: + def __init__(self, source_files, image_dirs, output_filename): + self.source_files = source_files + self.image_dirs = image_dirs + self.output_filename = output_filename + + +def parse_args(argv): + images_position = argv.index('--images') + output_position = argv.index('--output') + source_files = argv[:images_position] + image_dirs = argv[images_position + 1:output_position] + return ParsedArgs(source_files, image_dirs, argv[output_position + 1]) + + +def make_name_from_filename(filename): + return (filename.replace('/', '_') + .replace('\\', '_') + .replace('.', '_')).upper() + + +def add_file_to_grd(grd_doc, filename): + includes_node = grd_doc.getElementsByTagName('includes')[0] + includes_node.appendChild(grd_doc.createTextNode('\n ')) + + new_include_node = grd_doc.createElement('include') + new_include_node.setAttribute('name', make_name_from_filename(filename)) + new_include_node.setAttribute('file', filename) + new_include_node.setAttribute('type', 'BINDATA') + includes_node.appendChild(new_include_node) + + +def main(argv): + parsed_args = parse_args(argv[1:]) + + doc = minidom.parseString(kGrdTemplate) + output_directory = os.path.dirname(parsed_args.output_filename) + + try: + os.makedirs(os.path.join(output_directory, 'Images')) + except OSError, e: + if e.errno != errno.EEXIST: + raise e + + for filename in parsed_args.source_files: + shutil.copy(filename, output_directory) + add_file_to_grd(doc, os.path.basename(filename)) + + for dirname in parsed_args.image_dirs: + for filename in os.listdir(dirname): + if not filename.endswith('.png') and not filename.endswith('.gif'): + continue + shutil.copy(os.path.join(dirname, filename), + os.path.join(output_directory, 'Images')) + add_file_to_grd(doc, os.path.join('Images', filename)) + + with open(parsed_args.output_filename, 'w') as output_file: + output_file.write(doc.toxml(encoding='UTF-8')) + + +if __name__ == '__main__': + sys.exit(main(sys.argv)) diff --git a/Source/WebKit/chromium/scripts/generate_devtools_html.py b/Source/WebKit/chromium/scripts/generate_devtools_html.py index b9b5fff..b8eab09 100644 --- a/Source/WebKit/chromium/scripts/generate_devtools_html.py +++ b/Source/WebKit/chromium/scripts/generate_devtools_html.py @@ -45,17 +45,17 @@ def GenerateIncludeTag(resource_path): def main(argv): - if len(argv) < 5: - print('usage: %s ignored inspector_html devtools_html debug' + if len(argv) < 4: + print('usage: %s inspector_html devtools_html debug' ' css_and_js_files_list' % argv[0]) return 1 # The first argument is ignored. We put 'webkit.gyp' in the inputs list # for this script, so every time the list of script gets changed, our html # file is rebuilt. - inspector_html_name = argv[2] - devtools_html_name = argv[3] - debug = argv[4] != '0' + inspector_html_name = argv[1] + devtools_html_name = argv[2] + debug = argv[3] != '0' inspector_html = open(inspector_html_name, 'r') devtools_html = open(devtools_html_name, 'w') @@ -66,7 +66,7 @@ def main(argv): continue if '</head>' in line: if debug: - for resource in argv[5:]: + for resource in argv[4:]: devtools_html.write(GenerateIncludeTag(resource)) else: devtools_html.write(GenerateIncludeTag("devTools.css")) diff --git a/Source/WebKit/chromium/src/ApplicationCacheHost.cpp b/Source/WebKit/chromium/src/ApplicationCacheHost.cpp index 2696b2c..3981ee9 100644 --- a/Source/WebKit/chromium/src/ApplicationCacheHost.cpp +++ b/Source/WebKit/chromium/src/ApplicationCacheHost.cpp @@ -42,6 +42,7 @@ #include "Page.h" #include "ProgressEvent.h" #include "Settings.h" +#include "WebFrameImpl.h" #include "WebURL.h" #include "WebURLError.h" #include "WebURLResponse.h" @@ -81,7 +82,7 @@ void ApplicationCacheHost::maybeLoadMainResource(ResourceRequest& request, Subst m_internal.set(new ApplicationCacheHostInternal(this)); if (m_internal->m_outerHost) { WrappedResourceRequest wrapped(request); - m_internal->m_outerHost->willStartMainResourceRequest(wrapped); + m_internal->m_outerHost->willStartMainResourceRequest(wrapped, WebFrameImpl::fromFrame(m_documentLoader->frame())); } else m_internal.clear(); @@ -259,7 +260,7 @@ void ApplicationCacheHost::stopDeferringEvents() void ApplicationCacheHost::stopLoadingInFrame(Frame* frame) { - // FIXME: Implement this method. + // N/A to the chromium port } void ApplicationCacheHost::dispatchDOMEvent(EventID id, int total, int done) diff --git a/Source/WebKit/chromium/src/AssertMatchingEnums.cpp b/Source/WebKit/chromium/src/AssertMatchingEnums.cpp index 20fbcd5..7baaf8a 100644 --- a/Source/WebKit/chromium/src/AssertMatchingEnums.cpp +++ b/Source/WebKit/chromium/src/AssertMatchingEnums.cpp @@ -45,6 +45,7 @@ #include "GeolocationError.h" #include "GeolocationPosition.h" #include "HTMLInputElement.h" +#include "IDBFactoryBackendInterface.h" #include "IDBKey.h" #include "MediaPlayer.h" #include "NotificationPresenter.h" @@ -67,6 +68,7 @@ #include "WebFontDescription.h" #include "WebGeolocationError.h" #include "WebGeolocationPosition.h" +#include "WebIDBFactory.h" #include "WebIDBKey.h" #include "WebInputElement.h" #include "WebMediaPlayer.h" @@ -171,6 +173,10 @@ COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleTreeItemRole, TreeItemRole); COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleDirectory, DirectoryRole); COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleEditableText, EditableTextRole); COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleListItem, ListItemRole); +COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleParagraph, ParagraphRole); +COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleLabel, LabelRole); +COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleDiv, DivRole); +COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleForm, FormRole); COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleLandmarkApplication, LandmarkApplicationRole); COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleLandmarkBanner, LandmarkBannerRole); COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleLandmarkComplementary, LandmarkComplementaryRole); @@ -209,6 +215,7 @@ COMPILE_ASSERT_MATCHING_ENUM(WebApplicationCacheHost::CachedEvent, ApplicationCa COMPILE_ASSERT_MATCHING_ENUM(WebApplicationCacheHost::ObsoleteEvent, ApplicationCacheHost::OBSOLETE_EVENT); #endif +COMPILE_ASSERT_MATCHING_ENUM(WebClipboard::FormatPlainText, PasteboardPrivate::PlainTextFormat); COMPILE_ASSERT_MATCHING_ENUM(WebClipboard::FormatHTML, PasteboardPrivate::HTMLFormat); COMPILE_ASSERT_MATCHING_ENUM(WebClipboard::FormatBookmark, PasteboardPrivate::BookmarkFormat); COMPILE_ASSERT_MATCHING_ENUM(WebClipboard::FormatSmartPaste, PasteboardPrivate::WebSmartPasteFormat); @@ -377,6 +384,9 @@ COMPILE_ASSERT_MATCHING_ENUM(WebIDBKey::StringType, IDBKey::StringType); COMPILE_ASSERT_MATCHING_ENUM(WebIDBKey::DateType, IDBKey::DateType); COMPILE_ASSERT_MATCHING_ENUM(WebIDBKey::NumberType, IDBKey::NumberType); +COMPILE_ASSERT_MATCHING_ENUM(WebIDBFactory::DefaultBackingStore, IDBFactoryBackendInterface::DefaultBackingStore); +COMPILE_ASSERT_MATCHING_ENUM(WebIDBFactory::LevelDBBackingStore, IDBFactoryBackendInterface::LevelDBBackingStore); + #if ENABLE(FILE_SYSTEM) COMPILE_ASSERT_MATCHING_ENUM(WebFileSystem::TypeTemporary, AsyncFileSystem::Temporary); COMPILE_ASSERT_MATCHING_ENUM(WebFileSystem::TypePersistent, AsyncFileSystem::Persistent); diff --git a/Source/WebKit/chromium/src/AssociatedURLLoader.cpp b/Source/WebKit/chromium/src/AssociatedURLLoader.cpp index 34a4055..1ca9900 100644 --- a/Source/WebKit/chromium/src/AssociatedURLLoader.cpp +++ b/Source/WebKit/chromium/src/AssociatedURLLoader.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. All rights reserved. + * Copyright (C) 2010, 2011 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 @@ -31,103 +31,206 @@ #include "config.h" #include "AssociatedURLLoader.h" +#include "DocumentThreadableLoader.h" +#include "DocumentThreadableLoaderClient.h" +#include "SubresourceLoader.h" #include "WebApplicationCacheHost.h" #include "WebDataSource.h" #include "WebFrameImpl.h" #include "WebKit.h" #include "WebKitClient.h" +#include "WebURLError.h" +#include "WebURLLoaderClient.h" #include "WebURLRequest.h" +#include "WrappedResourceRequest.h" +#include "WrappedResourceResponse.h" + +using namespace WebCore; +using namespace WebKit; +using namespace WTF; namespace WebKit { -AssociatedURLLoader::AssociatedURLLoader(PassRefPtr<WebFrameImpl> frameImpl) - : m_frameImpl(frameImpl), - m_realLoader(webKitClient()->createURLLoader()), - m_realClient(0) +// This class bridges the interface differences between WebCore and WebKit loader clients. +// It forwards its ThreadableLoaderClient notifications to a WebURLLoaderClient. +class AssociatedURLLoader::ClientAdapter : public DocumentThreadableLoaderClient { +public: + static PassOwnPtr<ClientAdapter> create(AssociatedURLLoader*, WebURLLoaderClient*, bool /*downloadToFile*/); + + virtual void didSendData(unsigned long long /*bytesSent*/, unsigned long long /*totalBytesToBeSent*/); + virtual void willSendRequest(ResourceRequest& /*newRequest*/, const ResourceResponse& /*redirectResponse*/); + + virtual void didReceiveResponse(const ResourceResponse&); + virtual void didReceiveData(const char*, int /*dataLength*/); + virtual void didReceiveCachedMetadata(const char*, int /*dataLength*/); + virtual void didFinishLoading(unsigned long /*identifier*/, double /*finishTime*/); + virtual void didFail(const ResourceError&); + + virtual bool isDocumentThreadableLoaderClient() { return true; } + + // This method stops loading and releases the DocumentThreadableLoader as early as possible. + void clearClient() { m_client = 0; } + +private: + ClientAdapter(AssociatedURLLoader*, WebURLLoaderClient*, bool /*downloadToFile*/); + + AssociatedURLLoader* m_loader; + WebURLLoaderClient* m_client; + unsigned long m_downloadLength; + bool m_downloadToFile; +}; + +PassOwnPtr<AssociatedURLLoader::ClientAdapter> AssociatedURLLoader::ClientAdapter::create(AssociatedURLLoader* loader, WebURLLoaderClient* client, bool downloadToFile) { + return adoptPtr(new ClientAdapter(loader, client, downloadToFile)); } -AssociatedURLLoader::~AssociatedURLLoader() +AssociatedURLLoader::ClientAdapter::ClientAdapter(AssociatedURLLoader* loader, WebURLLoaderClient* client, bool downloadToFile) + : m_loader(loader) + , m_client(client) + , m_downloadLength(0) + , m_downloadToFile(downloadToFile) { + ASSERT(m_loader); + ASSERT(m_client); } -void AssociatedURLLoader::loadSynchronously(const WebURLRequest& request, WebURLResponse& response, WebURLError& error, WebData& data) +void AssociatedURLLoader::ClientAdapter::willSendRequest(ResourceRequest& newRequest, const ResourceResponse& redirectResponse) { - ASSERT(!m_realClient); - - WebURLRequest requestCopy(request); - prepareRequest(requestCopy); + if (!m_client) + return; - m_realLoader->loadSynchronously(requestCopy, response, error, data); + WrappedResourceRequest wrappedNewRequest(newRequest); + WrappedResourceResponse wrappedRedirectResponse(redirectResponse); + m_client->willSendRequest(m_loader, wrappedNewRequest, wrappedRedirectResponse); } -void AssociatedURLLoader::loadAsynchronously(const WebURLRequest& request, WebURLLoaderClient* client) +void AssociatedURLLoader::ClientAdapter::didSendData(unsigned long long bytesSent, unsigned long long totalBytesToBeSent) { - ASSERT(!m_realClient); + if (!m_client) + return; - WebURLRequest requestCopy(request); - prepareRequest(requestCopy); + m_client->didSendData(m_loader, bytesSent, totalBytesToBeSent); +} - m_realClient = client; - m_realLoader->loadAsynchronously(requestCopy, this); +void AssociatedURLLoader::ClientAdapter::didReceiveResponse(const ResourceResponse& response) +{ + WrappedResourceResponse wrappedResponse(response); + m_client->didReceiveResponse(m_loader, wrappedResponse); } -void AssociatedURLLoader::cancel() +void AssociatedURLLoader::ClientAdapter::didReceiveData(const char* data, int dataLength) { - m_realLoader->cancel(); + if (!m_client) + return; + + // FIXME(vsevik): add -1 to params once migrated. + m_client->didReceiveData(m_loader, data, dataLength); + m_downloadLength += dataLength; } -void AssociatedURLLoader::setDefersLoading(bool defersLoading) +void AssociatedURLLoader::ClientAdapter::didReceiveCachedMetadata(const char* data, int lengthReceived) { - m_realLoader->setDefersLoading(defersLoading); + if (!m_client) + return; + + m_client->didReceiveCachedMetadata(m_loader, data, lengthReceived); } -void AssociatedURLLoader::prepareRequest(WebURLRequest& request) +void AssociatedURLLoader::ClientAdapter::didFinishLoading(unsigned long identifier, double finishTime) { - WebApplicationCacheHost* applicationCacheHost = m_frameImpl->dataSource()->applicationCacheHost(); - if (applicationCacheHost) - applicationCacheHost->willStartSubResourceRequest(request); - m_frameImpl->dispatchWillSendRequest(request); + if (!m_client) + return; + + if (m_downloadToFile) { + int downloadLength = m_downloadLength <= INT_MAX ? m_downloadLength : INT_MAX; + m_client->didDownloadData(m_loader, downloadLength); + // While the client could have cancelled, continue, since the load finished. + } + + m_client->didFinishLoading(m_loader, finishTime); } -void AssociatedURLLoader::willSendRequest(WebURLLoader*, WebURLRequest& newRequest, const WebURLResponse& redirectResponse) +void AssociatedURLLoader::ClientAdapter::didFail(const ResourceError& error) { - m_realClient->willSendRequest(this, newRequest, redirectResponse); + if (!m_client) + return; + + WebURLError webError(error); + m_client->didFail(m_loader, webError); } -void AssociatedURLLoader::didSendData(WebURLLoader*, unsigned long long bytesSent, unsigned long long totalBytesToBeSent) +AssociatedURLLoader::AssociatedURLLoader(PassRefPtr<WebFrameImpl> frameImpl) + : m_frameImpl(frameImpl) + , m_client(0) { - m_realClient->didSendData(this, bytesSent, totalBytesToBeSent); + ASSERT(m_frameImpl); + + m_options.sniffContent = false; + m_options.allowCredentials = true; + m_options.forcePreflight = false; + m_options.crossOriginRequestPolicy = AllowCrossOriginRequests; // TODO(bbudge) Default should be DenyCrossOriginRequests, but this would break some tests. } -void AssociatedURLLoader::didReceiveResponse(WebURLLoader*, const WebURLResponse& response) +AssociatedURLLoader::AssociatedURLLoader(PassRefPtr<WebFrameImpl> frameImpl, const WebURLLoaderOptions& options) + : m_frameImpl(frameImpl) + , m_options(options) + , m_client(0) { - m_realClient->didReceiveResponse(this, response); + ASSERT(m_frameImpl); } -void AssociatedURLLoader::didDownloadData(WebURLLoader*, int dataLength) +AssociatedURLLoader::~AssociatedURLLoader() { - m_realClient->didDownloadData(this, dataLength); + if (m_clientAdapter) + m_clientAdapter->clearClient(); } -void AssociatedURLLoader::didReceiveData(WebURLLoader*, const char* data, int dataLength) +#define COMPILE_ASSERT_MATCHING_ENUM(webkit_name, webcore_name) \ + COMPILE_ASSERT(static_cast<int>(WebKit::webkit_name) == static_cast<int>(WebCore::webcore_name), mismatching_enums) + +COMPILE_ASSERT_MATCHING_ENUM(DenyCrossOriginRequests, DenyCrossOriginRequests); +COMPILE_ASSERT_MATCHING_ENUM(UseAccessControl, UseAccessControl); +COMPILE_ASSERT_MATCHING_ENUM(AllowCrossOriginRequests, AllowCrossOriginRequests); + +void AssociatedURLLoader::loadSynchronously(const WebURLRequest& request, WebURLResponse& response, WebURLError& error, WebData& data) { - m_realClient->didReceiveData(this, data, dataLength); + ASSERT(0); // Synchronous loading is not supported. } -void AssociatedURLLoader::didReceiveCachedMetadata(WebURLLoader*, const char* data, int dataLength) +void AssociatedURLLoader::loadAsynchronously(const WebURLRequest& request, WebURLLoaderClient* client) { - m_realClient->didReceiveCachedMetadata(this, data, dataLength); + ASSERT(!m_client); + + m_client = client; + ASSERT(m_client); + + ThreadableLoaderOptions options; + options.sendLoadCallbacks = true; // Always send callbacks. + options.sniffContent = m_options.sniffContent; + options.allowCredentials = m_options.allowCredentials; + options.forcePreflight = m_options.forcePreflight; + options.crossOriginRequestPolicy = static_cast<WebCore::CrossOriginRequestPolicy>(m_options.crossOriginRequestPolicy); + + const ResourceRequest& webcoreRequest = request.toResourceRequest(); + Document* webcoreDocument = m_frameImpl->frame()->document(); + m_clientAdapter = ClientAdapter::create(this, m_client, request.downloadToFile()); + + m_loader = DocumentThreadableLoader::create(webcoreDocument, m_clientAdapter.get(), webcoreRequest, options); } -void AssociatedURLLoader::didFinishLoading(WebURLLoader*, double finishTime) +void AssociatedURLLoader::cancel() { - m_realClient->didFinishLoading(this, finishTime); + if (m_loader) { + m_clientAdapter->clearClient(); + m_loader->cancel(); + } } -void AssociatedURLLoader::didFail(WebURLLoader*, const WebURLError& error) +void AssociatedURLLoader::setDefersLoading(bool defersLoading) { - m_realClient->didFail(this, error); + if (m_loader) + m_loader->setDefersLoading(defersLoading); } } // namespace WebKit diff --git a/Source/WebKit/chromium/src/AssociatedURLLoader.h b/Source/WebKit/chromium/src/AssociatedURLLoader.h index 91cb0bf..ed183e5 100644 --- a/Source/WebKit/chromium/src/AssociatedURLLoader.h +++ b/Source/WebKit/chromium/src/AssociatedURLLoader.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. All rights reserved. + * Copyright (C) 2010, 2011 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 @@ -32,20 +32,22 @@ #define AssociatedURLLoader_h #include "WebURLLoader.h" -#include "WebURLLoaderClient.h" +#include <wtf/Noncopyable.h> #include <wtf/OwnPtr.h> #include <wtf/RefPtr.h> +namespace WebCore { class DocumentThreadableLoader; } + namespace WebKit { class WebFrameImpl; // This class is used to implement WebFrame::createAssociatedURLLoader. -// FIXME: Implement in terms of WebCore::SubresourceLoader. -class AssociatedURLLoader : public WebURLLoader, - public WebURLLoaderClient { +class AssociatedURLLoader : public WebURLLoader { + WTF_MAKE_NONCOPYABLE(AssociatedURLLoader); public: AssociatedURLLoader(PassRefPtr<WebFrameImpl>); + AssociatedURLLoader(PassRefPtr<WebFrameImpl>, const WebURLLoaderOptions&); ~AssociatedURLLoader(); // WebURLLoader methods: @@ -54,22 +56,15 @@ public: virtual void cancel(); virtual void setDefersLoading(bool); - // WebURLLoaderClient methods: - virtual void willSendRequest(WebURLLoader*, WebURLRequest& newRequest, const WebURLResponse& redirectResponse); - virtual void didSendData(WebURLLoader*, unsigned long long bytesSent, unsigned long long totalBytesToBeSent); - virtual void didReceiveResponse(WebURLLoader*, const WebURLResponse&); - virtual void didDownloadData(WebURLLoader*, int dataLength); - virtual void didReceiveData(WebURLLoader*, const char* data, int dataLength); - virtual void didReceiveCachedMetadata(WebURLLoader*, const char* data, int dataLength); - virtual void didFinishLoading(WebURLLoader*, double finishTime); - virtual void didFail(WebURLLoader*, const WebURLError&); - private: - void prepareRequest(WebURLRequest&); + + class ClientAdapter; RefPtr<WebFrameImpl> m_frameImpl; - OwnPtr<WebURLLoader> m_realLoader; - WebURLLoaderClient* m_realClient; + WebURLLoaderOptions m_options; + WebURLLoaderClient* m_client; + OwnPtr<ClientAdapter> m_clientAdapter; + RefPtr<WebCore::DocumentThreadableLoader> m_loader; }; } // namespace WebKit diff --git a/Source/WebKit/chromium/src/AudioDestinationChromium.cpp b/Source/WebKit/chromium/src/AudioDestinationChromium.cpp index a483308..6fc51db 100644 --- a/Source/WebKit/chromium/src/AudioDestinationChromium.cpp +++ b/Source/WebKit/chromium/src/AudioDestinationChromium.cpp @@ -98,8 +98,7 @@ void AudioDestinationChromium::stop() double AudioDestination::hardwareSampleRate() { - // FIXME: implement this properly for Chromium. - return 44100.0; + return webKitClient()->audioHardwareSampleRate(); } // Pulls on our provider to get the rendered audio stream. diff --git a/Source/WebKit/chromium/src/ChromeClientImpl.cpp b/Source/WebKit/chromium/src/ChromeClientImpl.cpp index 1e639ec..99302cc 100644 --- a/Source/WebKit/chromium/src/ChromeClientImpl.cpp +++ b/Source/WebKit/chromium/src/ChromeClientImpl.cpp @@ -857,7 +857,7 @@ void ChromeClientImpl::exitFullscreenForNode(WebCore::Node* node) } #if ENABLE(FULLSCREEN_API) -bool ChromeClientImpl::supportsFullScreenForElement(const WebCore::Element* element) +bool ChromeClientImpl::supportsFullScreenForElement(const WebCore::Element* element, bool withKeyboard) { return m_webView->page()->settings()->fullScreenEnabled(); } diff --git a/Source/WebKit/chromium/src/ChromeClientImpl.h b/Source/WebKit/chromium/src/ChromeClientImpl.h index e70b766..f3a48ee 100644 --- a/Source/WebKit/chromium/src/ChromeClientImpl.h +++ b/Source/WebKit/chromium/src/ChromeClientImpl.h @@ -166,7 +166,7 @@ public: virtual void exitFullscreenForNode(WebCore::Node*); #if ENABLE(FULLSCREEN_API) - virtual bool supportsFullScreenForElement(const WebCore::Element*); + virtual bool supportsFullScreenForElement(const WebCore::Element*, bool withKeyboard); virtual void enterFullScreenForElement(WebCore::Element*); virtual void exitFullScreenForElement(WebCore::Element*); virtual void fullScreenRendererChanged(WebCore::RenderBox*); diff --git a/Source/WebKit/chromium/src/DebuggerAgentManager.cpp b/Source/WebKit/chromium/src/DebuggerAgentManager.cpp index b76bcfe..368b78c 100644 --- a/Source/WebKit/chromium/src/DebuggerAgentManager.cpp +++ b/Source/WebKit/chromium/src/DebuggerAgentManager.cpp @@ -34,7 +34,7 @@ #include "DebuggerAgentImpl.h" #include "Frame.h" #include "PageGroupLoadDeferrer.h" -#include "ScriptDebugServer.h" +#include "PageScriptDebugServer.h" #include "V8Proxy.h" #include "WebDevToolsAgentImpl.h" #include "WebFrameImpl.h" @@ -247,7 +247,7 @@ void DebuggerAgentManager::setMessageLoopDispatchHandler(WebDevToolsAgent::Messa void DebuggerAgentManager::setExposeV8DebuggerProtocol(bool value) { s_exposeV8DebuggerProtocol = value; - WebCore::ScriptDebugServer::shared().setEnabled(!s_exposeV8DebuggerProtocol); + WebCore::PageScriptDebugServer::shared().setEnabled(!s_exposeV8DebuggerProtocol); } void DebuggerAgentManager::setHostId(WebFrameImpl* webframe, int hostId) diff --git a/Source/WebKit/chromium/src/EditorClientImpl.cpp b/Source/WebKit/chromium/src/EditorClientImpl.cpp index 38d4f5e..6f2231d 100644 --- a/Source/WebKit/chromium/src/EditorClientImpl.cpp +++ b/Source/WebKit/chromium/src/EditorClientImpl.cpp @@ -54,6 +54,7 @@ #include "WebNode.h" #include "WebPasswordAutocompleteListener.h" #include "WebRange.h" +#include "WebSpellCheckClient.h" #include "WebTextAffinity.h" #include "WebTextCheckingCompletionImpl.h" #include "WebViewClient.h" @@ -856,8 +857,8 @@ void EditorClientImpl::checkSpellingOfString(const UChar* text, int length, int spellLength = 0; // Check to see if the provided text is spelled correctly. - if (isContinuousSpellCheckingEnabled() && m_webView->client()) - m_webView->client()->spellCheck(WebString(text, length), spellLocation, spellLength); + if (isContinuousSpellCheckingEnabled() && m_webView->spellCheckClient()) + m_webView->spellCheckClient()->spellCheck(WebString(text, length), spellLocation, spellLength); else { spellLocation = 0; spellLength = 0; @@ -873,7 +874,8 @@ void EditorClientImpl::checkSpellingOfString(const UChar* text, int length, void EditorClientImpl::requestCheckingOfString(SpellChecker* sender, int identifier, const String& text) { - m_webView->client()->requestCheckingOfText(text, new WebTextCheckingCompletionImpl(identifier, sender)); + if (m_webView->spellCheckClient()) + m_webView->spellCheckClient()->requestCheckingOfText(text, new WebTextCheckingCompletionImpl(identifier, sender)); } String EditorClientImpl::getAutoCorrectSuggestionForMisspelledWord(const String& misspelledWord) @@ -888,7 +890,9 @@ String EditorClientImpl::getAutoCorrectSuggestionForMisspelledWord(const String& return String(); } - return m_webView->client()->autoCorrectWord(WebString(misspelledWord)); + if (m_webView->spellCheckClient()) + return m_webView->spellCheckClient()->autoCorrectWord(WebString(misspelledWord)); + return String(); } void EditorClientImpl::checkGrammarOfString(const UChar*, int length, @@ -911,20 +915,20 @@ void EditorClientImpl::updateSpellingUIWithGrammarString(const String&, void EditorClientImpl::updateSpellingUIWithMisspelledWord(const String& misspelledWord) { - if (m_webView->client()) - m_webView->client()->updateSpellingUIWithMisspelledWord(WebString(misspelledWord)); + if (m_webView->spellCheckClient()) + m_webView->spellCheckClient()->updateSpellingUIWithMisspelledWord(WebString(misspelledWord)); } void EditorClientImpl::showSpellingUI(bool show) { - if (m_webView->client()) - m_webView->client()->showSpellingUI(show); + if (m_webView->spellCheckClient()) + m_webView->spellCheckClient()->showSpellingUI(show); } bool EditorClientImpl::spellingUIIsShowing() { - if (m_webView->client()) - return m_webView->client()->isShowingSpellingUI(); + if (m_webView->spellCheckClient()) + return m_webView->spellCheckClient()->isShowingSpellingUI(); return false; } diff --git a/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp b/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp index dc47923..647a70c 100644 --- a/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp +++ b/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp @@ -1,5 +1,6 @@ /* * Copyright (C) 2009 Google Inc. All rights reserved. + * Copyright (C) 2011 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are @@ -1479,7 +1480,8 @@ PassRefPtr<Widget> FrameLoaderClientImpl::createJavaAppletWidget( ObjectContentType FrameLoaderClientImpl::objectContentType( const KURL& url, - const String& explicitMimeType) + const String& explicitMimeType, + bool shouldPreferPlugInsForImages) { // This code is based on Apple's implementation from // WebCoreSupport/WebFrameBridge.mm. @@ -1503,12 +1505,14 @@ ObjectContentType FrameLoaderClientImpl::objectContentType( return ObjectContentFrame; } - if (MIMETypeRegistry::isSupportedImageMIMEType(mimeType)) - return ObjectContentImage; - // If Chrome is started with the --disable-plugins switch, pluginData is 0. PluginData* pluginData = m_webFrame->frame()->page()->pluginData(); - if (pluginData && pluginData->supportsMimeType(mimeType)) + bool plugInSupportsMIMEType = pluginData && pluginData->supportsMimeType(mimeType); + + if (MIMETypeRegistry::isSupportedImageMIMEType(mimeType)) + return shouldPreferPlugInsForImages && plugInSupportsMIMEType ? ObjectContentNetscapePlugin : ObjectContentImage; + + if (plugInSupportsMIMEType) return ObjectContentNetscapePlugin; if (MIMETypeRegistry::isSupportedNonImageMIMEType(mimeType)) diff --git a/Source/WebKit/chromium/src/FrameLoaderClientImpl.h b/Source/WebKit/chromium/src/FrameLoaderClientImpl.h index 7abf617..f19c26c 100644 --- a/Source/WebKit/chromium/src/FrameLoaderClientImpl.h +++ b/Source/WebKit/chromium/src/FrameLoaderClientImpl.h @@ -1,5 +1,6 @@ /* * Copyright (C) 2009 Google Inc. All rights reserved. + * Copyright (C) 2011 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are @@ -197,7 +198,7 @@ public: const Vector<WTF::String>& paramNames, const Vector<WTF::String>& paramValues); virtual WebCore::ObjectContentType objectContentType( - const WebCore::KURL& url, const WTF::String& mimeType); + const WebCore::KURL&, const WTF::String& mimeType, bool shouldPreferPlugInsForImages); virtual WTF::String overrideMediaType() const; virtual void didPerformFirstNavigation() const; virtual void registerForIconNotification(bool listen = true); diff --git a/Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp b/Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp index 3d937ac..54c18e3 100644 --- a/Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp +++ b/Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp @@ -82,6 +82,7 @@ namespace WebCore { GraphicsContext3DInternal::GraphicsContext3DInternal() : m_webViewImpl(0) , m_initializedAvailableExtensions(false) + , m_layerComposited(false) #if USE(SKIA) #elif PLATFORM(CG) , m_renderOutput(0) @@ -160,6 +161,24 @@ WebGLLayerChromium* GraphicsContext3DInternal::platformLayer() const } #endif +void GraphicsContext3DInternal::markContextChanged() +{ +#if USE(ACCELERATED_COMPOSITING) + platformLayer()->setTextureUpdated(); +#endif + m_layerComposited = false; +} + +void GraphicsContext3DInternal::markLayerComposited() +{ + m_layerComposited = true; +} + +bool GraphicsContext3DInternal::layerComposited() const +{ + return m_layerComposited; +} + void GraphicsContext3DInternal::paintRenderingResultsToCanvas(CanvasRenderingContext* context) { HTMLCanvasElement* canvas = context->canvas(); @@ -200,6 +219,16 @@ void GraphicsContext3DInternal::paintRenderingResultsToCanvas(CanvasRenderingCon m_impl->readBackFramebuffer(pixels, 4 * m_impl->width() * m_impl->height()); + if (!m_impl->getContextAttributes().premultipliedAlpha) { + size_t bufferSize = 4 * m_impl->width() * m_impl->height(); + + for (size_t i = 0; i < bufferSize; i += 4) { + pixels[i + 0] = std::min(255, pixels[i + 0] * pixels[i + 3] / 255); + pixels[i + 1] = std::min(255, pixels[i + 1] * pixels[i + 3] / 255); + pixels[i + 2] = std::min(255, pixels[i + 2] * pixels[i + 3] / 255); + } + } + #if USE(SKIA) if (m_resizingBitmap.readyToDraw()) { // We need to draw the resizing bitmap into the canvas's backing store. @@ -218,6 +247,23 @@ void GraphicsContext3DInternal::paintRenderingResultsToCanvas(CanvasRenderingCon #endif } +PassRefPtr<ImageData> GraphicsContext3DInternal::paintRenderingResultsToImageData() +{ + if (m_impl->getContextAttributes().premultipliedAlpha) + return 0; + + RefPtr<ImageData> imageData = ImageData::create(IntSize(m_impl->width(), m_impl->height())); + unsigned char* pixels = imageData->data()->data()->data(); + size_t bufferSize = 4 * m_impl->width() * m_impl->height(); + + m_impl->readBackFramebuffer(pixels, bufferSize); + + for (size_t i = 0; i < bufferSize; i += 4) + std::swap(pixels[i], pixels[i + 2]); + + return imageData.release(); +} + bool GraphicsContext3DInternal::paintsIntoCanvasBuffer() const { // If the gpu compositor is on then skip the readback and software rendering path. @@ -1058,7 +1104,16 @@ DELEGATE_TO_INTERNAL_6(vertexAttribPointer, GC3Duint, GC3Dint, GC3Denum, GC3Dboo DELEGATE_TO_INTERNAL_4(viewport, GC3Dint, GC3Dint, GC3Dsizei, GC3Dsizei) +DELEGATE_TO_INTERNAL(markLayerComposited) +DELEGATE_TO_INTERNAL(markContextChanged) + +bool GraphicsContext3D::layerComposited() const +{ + return m_internal->layerComposited(); +} + DELEGATE_TO_INTERNAL_1(paintRenderingResultsToCanvas, CanvasRenderingContext*) +DELEGATE_TO_INTERNAL_R(paintRenderingResultsToImageData, PassRefPtr<ImageData>) bool GraphicsContext3D::paintsIntoCanvasBuffer() const { diff --git a/Source/WebKit/chromium/src/GraphicsContext3DInternal.h b/Source/WebKit/chromium/src/GraphicsContext3DInternal.h index c8f7c7a..0af291e 100644 --- a/Source/WebKit/chromium/src/GraphicsContext3DInternal.h +++ b/Source/WebKit/chromium/src/GraphicsContext3DInternal.h @@ -66,7 +66,12 @@ public: void reshape(int width, int height); IntSize getInternalFramebufferSize(); + void markContextChanged(); + bool layerComposited() const; + void markLayerComposited(); + void paintRenderingResultsToCanvas(CanvasRenderingContext*); + PassRefPtr<ImageData> paintRenderingResultsToImageData(); bool paintsIntoCanvasBuffer() const; void prepareTexture(); @@ -273,6 +278,7 @@ private: bool m_initializedAvailableExtensions; HashSet<String> m_enabledExtensions; HashSet<String> m_requestableExtensions; + bool m_layerComposited; #if USE(ACCELERATED_COMPOSITING) RefPtr<WebGLLayerChromium> m_compositingLayer; #endif diff --git a/Source/WebKit/chromium/src/IDBCallbacksProxy.cpp b/Source/WebKit/chromium/src/IDBCallbacksProxy.cpp index ea0f433..727092a 100644 --- a/Source/WebKit/chromium/src/IDBCallbacksProxy.cpp +++ b/Source/WebKit/chromium/src/IDBCallbacksProxy.cpp @@ -35,7 +35,6 @@ #include "WebIDBCursorImpl.h" #include "WebIDBDatabaseImpl.h" #include "WebIDBDatabaseError.h" -#include "WebIDBIndexImpl.h" #include "WebIDBKey.h" #include "WebIDBTransactionImpl.h" #include "WebSerializedScriptValue.h" @@ -73,11 +72,6 @@ void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBDatabaseBackendInterface> backen m_callbacks->onSuccess(new WebKit::WebIDBDatabaseImpl(backend)); } -void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBIndexBackendInterface> backend) -{ - m_callbacks->onSuccess(new WebKit::WebIDBIndexImpl(backend)); -} - void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBKey> idbKey) { m_callbacks->onSuccess(WebKit::WebIDBKey(idbKey)); diff --git a/Source/WebKit/chromium/src/IDBCallbacksProxy.h b/Source/WebKit/chromium/src/IDBCallbacksProxy.h index 912cb86..6829845 100644 --- a/Source/WebKit/chromium/src/IDBCallbacksProxy.h +++ b/Source/WebKit/chromium/src/IDBCallbacksProxy.h @@ -50,7 +50,6 @@ public: virtual void onError(PassRefPtr<IDBDatabaseError>); virtual void onSuccess(PassRefPtr<IDBCursorBackendInterface>); virtual void onSuccess(PassRefPtr<IDBDatabaseBackendInterface>); - virtual void onSuccess(PassRefPtr<IDBIndexBackendInterface>); virtual void onSuccess(PassRefPtr<IDBKey>); virtual void onSuccess(PassRefPtr<IDBTransactionBackendInterface>); virtual void onSuccess(PassRefPtr<SerializedScriptValue>); diff --git a/Source/WebKit/chromium/src/IDBFactoryBackendProxy.cpp b/Source/WebKit/chromium/src/IDBFactoryBackendProxy.cpp index 67504a3..9e5ccc0 100755 --- a/Source/WebKit/chromium/src/IDBFactoryBackendProxy.cpp +++ b/Source/WebKit/chromium/src/IDBFactoryBackendProxy.cpp @@ -59,13 +59,12 @@ IDBFactoryBackendProxy::~IDBFactoryBackendProxy() { } -void IDBFactoryBackendProxy::open(const String& name, 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, BackingStoreType backingStoreType) { WebKit::WebFrame* webFrame = WebKit::WebFrameImpl::fromFrame(frame); - m_webIDBFactory->open(name, new WebIDBCallbacksImpl(callbacks), origin, webFrame, dataDir, maximumSize); + m_webIDBFactory->open(name, new WebIDBCallbacksImpl(callbacks), origin, webFrame, dataDir, maximumSize, static_cast<WebKit::WebIDBFactory::BackingStoreType>(backingStoreType)); } } // namespace WebCore #endif // ENABLE(INDEXED_DATABASE) - diff --git a/Source/WebKit/chromium/src/IDBFactoryBackendProxy.h b/Source/WebKit/chromium/src/IDBFactoryBackendProxy.h index 5950a68..593051e 100755 --- a/Source/WebKit/chromium/src/IDBFactoryBackendProxy.h +++ b/Source/WebKit/chromium/src/IDBFactoryBackendProxy.h @@ -45,7 +45,7 @@ public: virtual ~IDBFactoryBackendProxy(); PassRefPtr<DOMStringList> databases(void) const; - virtual void open(const String& name, 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, BackingStoreType); private: IDBFactoryBackendProxy(); @@ -59,4 +59,3 @@ private: #endif #endif // IDBFactoryBackendProxy_h - diff --git a/Source/WebKit/chromium/src/LocalFileSystemChromium.cpp b/Source/WebKit/chromium/src/LocalFileSystemChromium.cpp index 35e4de8..b377bdb 100644 --- a/Source/WebKit/chromium/src/LocalFileSystemChromium.cpp +++ b/Source/WebKit/chromium/src/LocalFileSystemChromium.cpp @@ -57,29 +57,40 @@ LocalFileSystem& LocalFileSystem::localFileSystem() return *localFileSystem; } -void LocalFileSystem::readFileSystem(ScriptExecutionContext* context, AsyncFileSystem::Type type, PassOwnPtr<AsyncFileSystemCallbacks> callbacks) -{ - ASSERT(context && context->isDocument()); - Document* document = static_cast<Document*>(context); - WebFrameImpl* webFrame = WebFrameImpl::fromFrame(document->frame()); - webFrame->client()->openFileSystem(webFrame, static_cast<WebFileSystem::Type>(type), 0, false, new WebFileSystemCallbacksImpl(callbacks, type)); -} +namespace { -void LocalFileSystem::requestFileSystem(ScriptExecutionContext* context, AsyncFileSystem::Type type, long long size, PassOwnPtr<AsyncFileSystemCallbacks> callbacks, bool synchronous) +enum CreationFlag { + OpenExisting, + CreateIfNotPresent +}; + +} // namespace + +static void openFileSystemHelper(ScriptExecutionContext* context, AsyncFileSystem::Type type, PassOwnPtr<AsyncFileSystemCallbacks> callbacks, bool synchronous, long long size, CreationFlag create) { ASSERT(context); if (context->isDocument()) { Document* document = static_cast<Document*>(context); WebFrameImpl* webFrame = WebFrameImpl::fromFrame(document->frame()); - webFrame->client()->openFileSystem(webFrame, static_cast<WebFileSystem::Type>(type), size, true, new WebFileSystemCallbacksImpl(callbacks, type)); + webFrame->client()->openFileSystem(webFrame, static_cast<WebFileSystem::Type>(type), size, create == CreateIfNotPresent, new WebFileSystemCallbacksImpl(callbacks, type)); } else { WorkerContext* workerContext = static_cast<WorkerContext*>(context); WorkerLoaderProxy* workerLoaderProxy = &workerContext->thread()->workerLoaderProxy(); WebWorkerBase* webWorker = static_cast<WebWorkerBase*>(workerLoaderProxy); - webWorker->openFileSystemForWorker(static_cast<WebFileSystem::Type>(type), size, new WebFileSystemCallbacksImpl(callbacks, type, context, synchronous), synchronous); + webWorker->openFileSystemForWorker(static_cast<WebFileSystem::Type>(type), size, create == CreateIfNotPresent, new WebFileSystemCallbacksImpl(callbacks, type, context, synchronous), synchronous); } } +void LocalFileSystem::readFileSystem(ScriptExecutionContext* context, AsyncFileSystem::Type type, PassOwnPtr<AsyncFileSystemCallbacks> callbacks, bool synchronous) +{ + openFileSystemHelper(context, type, callbacks, synchronous, 0, OpenExisting); +} + +void LocalFileSystem::requestFileSystem(ScriptExecutionContext* context, AsyncFileSystem::Type type, long long size, PassOwnPtr<AsyncFileSystemCallbacks> callbacks, bool synchronous) +{ + openFileSystemHelper(context, type, callbacks, synchronous, size, CreateIfNotPresent); +} + } // namespace WebCore #endif // ENABLE(FILE_SYSTEM) diff --git a/Source/WebKit/chromium/src/LocalizedStrings.cpp b/Source/WebKit/chromium/src/LocalizedStrings.cpp index 18f9fb8..35e03c4 100644 --- a/Source/WebKit/chromium/src/LocalizedStrings.cpp +++ b/Source/WebKit/chromium/src/LocalizedStrings.cpp @@ -257,7 +257,7 @@ String contextMenuItemTagNoGuessesFound() { return String(); } String contextMenuItemTagIgnoreSpelling() { return String(); } String contextMenuItemTagLearnSpelling() { return String(); } String contextMenuItemTagSearchWeb() { return String(); } -String contextMenuItemTagLookUpInDictionary() { return String(); } +String contextMenuItemTagLookUpInDictionary(const String&) { return String(); } String contextMenuItemTagOpenLink() { return String(); } String contextMenuItemTagIgnoreGrammar() { return String(); } String contextMenuItemTagSpellingMenu() { return String(); } diff --git a/Source/WebKit/chromium/src/PlatformMessagePortChannel.h b/Source/WebKit/chromium/src/PlatformMessagePortChannel.h index 5416145..9cd7001 100644 --- a/Source/WebKit/chromium/src/PlatformMessagePortChannel.h +++ b/Source/WebKit/chromium/src/PlatformMessagePortChannel.h @@ -46,7 +46,7 @@ namespace WebCore { class MessagePort; // PlatformMessagePortChannel is a platform-dependent interface to the remote side of a message channel. -class PlatformMessagePortChannel : public ThreadSafeShared<PlatformMessagePortChannel>, +class PlatformMessagePortChannel : public ThreadSafeRefCounted<PlatformMessagePortChannel>, public WebKit::WebMessagePortChannelClient { public: static void createChannel(PassRefPtr<MessagePort>, PassRefPtr<MessagePort>); diff --git a/Source/WebKit/chromium/src/ResourceHandle.cpp b/Source/WebKit/chromium/src/ResourceHandle.cpp index 72f60bb..f88a48a 100644 --- a/Source/WebKit/chromium/src/ResourceHandle.cpp +++ b/Source/WebKit/chromium/src/ResourceHandle.cpp @@ -72,7 +72,11 @@ public: virtual void didSendData( WebURLLoader*, unsigned long long bytesSent, unsigned long long totalBytesToBeSent); virtual void didReceiveResponse(WebURLLoader*, const WebURLResponse&); + virtual void didReceiveData2(WebURLLoader*, const char* data, int dataLength, int lengthReceived); + + // FIXME(vsevik): remove once not used downstream virtual void didReceiveData(WebURLLoader*, const char* data, int dataLength); + virtual void didReceiveCachedMetadata(WebURLLoader*, const char* data, int dataLength); virtual void didFinishLoading(WebURLLoader*, double finishTime); virtual void didFail(WebURLLoader*, const WebURLError&); @@ -159,18 +163,20 @@ void ResourceHandleInternal::didReceiveResponse(WebURLLoader*, const WebURLRespo m_client->didReceiveResponse(m_owner, response.toResourceResponse()); } -void ResourceHandleInternal::didReceiveData( - WebURLLoader*, const char* data, int dataLength) +// FIXME(vsevik): remove once not used +void ResourceHandleInternal::didReceiveData(WebURLLoader* webURLLoader, const char* data, int dataLength) +{ + didReceiveData2(webURLLoader, data, dataLength, -1); +} + +void ResourceHandleInternal::didReceiveData2(WebURLLoader*, const char* data, int dataLength, int lengthReceived) { ASSERT(m_client); if (m_state != ConnectionStateReceivedResponse && m_state != ConnectionStateReceivingData) CRASH(); m_state = ConnectionStateReceivingData; - // FIXME(yurys): it looks like lengthReceived is always the same as - // dataLength and that the latter parameter can be eliminated. - // See WebKit bug: https://bugs.webkit.org/show_bug.cgi?id=31019 - m_client->didReceiveData(m_owner, data, dataLength, dataLength); + m_client->didReceiveData(m_owner, data, dataLength, lengthReceived); } void ResourceHandleInternal::didReceiveCachedMetadata(WebURLLoader*, const char* data, int dataLength) diff --git a/Source/WebKit/chromium/src/StorageNamespaceProxy.cpp b/Source/WebKit/chromium/src/StorageNamespaceProxy.cpp index ec0dbce..ef19b2f 100644 --- a/Source/WebKit/chromium/src/StorageNamespaceProxy.cpp +++ b/Source/WebKit/chromium/src/StorageNamespaceProxy.cpp @@ -92,6 +92,21 @@ void StorageNamespaceProxy::unlock() // FIXME: Implement. } +void StorageNamespaceProxy::clearOriginForDeletion(SecurityOrigin* origin) +{ + ASSERT_NOT_REACHED(); +} + +void StorageNamespaceProxy::clearAllOriginsForDeletion() +{ + ASSERT_NOT_REACHED(); +} + +void StorageNamespaceProxy::sync() +{ + ASSERT_NOT_REACHED(); +} + } // namespace WebCore #endif // ENABLE(DOM_STORAGE) diff --git a/Source/WebKit/chromium/src/StorageNamespaceProxy.h b/Source/WebKit/chromium/src/StorageNamespaceProxy.h index 28d7a23..9388531 100644 --- a/Source/WebKit/chromium/src/StorageNamespaceProxy.h +++ b/Source/WebKit/chromium/src/StorageNamespaceProxy.h @@ -43,6 +43,11 @@ public: virtual PassRefPtr<StorageNamespace> copy(); virtual void close(); virtual void unlock(); + + virtual void clearOriginForDeletion(SecurityOrigin*); + virtual void clearAllOriginsForDeletion(); + + virtual void sync(); private: OwnPtr<WebKit::WebStorageNamespace> m_storageNamespace; diff --git a/Source/WebKit/chromium/src/WebAccessibilityObject.cpp b/Source/WebKit/chromium/src/WebAccessibilityObject.cpp index 30305bd..8df112a 100644 --- a/Source/WebKit/chromium/src/WebAccessibilityObject.cpp +++ b/Source/WebKit/chromium/src/WebAccessibilityObject.cpp @@ -537,6 +537,12 @@ WebString WebAccessibilityObject::computedStyleDisplay() const return WebString(CSSPrimitiveValue::create(renderStyle->display())->getStringValue()); } +bool WebAccessibilityObject::accessibilityIsIgnored() const +{ + m_private->updateBackingStore(); + return m_private->accessibilityIsIgnored(); +} + WebAccessibilityObject::WebAccessibilityObject(const WTF::PassRefPtr<WebCore::AccessibilityObject>& object) : m_private(static_cast<WebAccessibilityObjectPrivate*>(object.releaseRef())) { diff --git a/Source/WebKit/chromium/src/WebBindings.cpp b/Source/WebKit/chromium/src/WebBindings.cpp index 0882e38..4012d1c 100644 --- a/Source/WebKit/chromium/src/WebBindings.cpp +++ b/Source/WebKit/chromium/src/WebBindings.cpp @@ -35,25 +35,18 @@ #include "npruntime_priv.h" #if USE(V8) -#include "ChromiumDataObject.h" -#include "ClipboardChromium.h" -#include "EventNames.h" -#include "MouseEvent.h" #include "NPV8Object.h" // for PrivateIdentifier #include "Range.h" #include "V8BindingState.h" #include "V8DOMWrapper.h" #include "V8Element.h" -#include "V8Event.h" -#include "V8Helpers.h" -#include "V8HiddenPropertyName.h" #include "V8NPUtils.h" +#include "V8Node.h" #include "V8Proxy.h" #include "V8Range.h" #elif USE(JSC) #include "bridge/c/c_utility.h" #endif -#include "WebDragData.h" #include "WebElement.h" #include "WebRange.h" @@ -65,9 +58,9 @@ using namespace WebCore; namespace WebKit { -bool WebBindings::construct(NPP npp, NPObject *npobj, const NPVariant *args, uint32_t argCount, NPVariant* result) +bool WebBindings::construct(NPP npp, NPObject* object, const NPVariant* args, uint32_t argCount, NPVariant* result) { - return _NPN_Construct(npp, npobj, args, argCount, result); + return _NPN_Construct(npp, object, args, argCount, result); } NPObject* WebBindings::createObject(NPP npp, NPClass* npClass) @@ -75,19 +68,19 @@ NPObject* WebBindings::createObject(NPP npp, NPClass* npClass) return _NPN_CreateObject(npp, npClass); } -bool WebBindings::enumerate(NPP id, NPObject* obj, NPIdentifier** identifier, uint32_t* val) +bool WebBindings::enumerate(NPP npp, NPObject* object, NPIdentifier** identifier, uint32_t* identifierCount) { - return _NPN_Enumerate(id, obj, identifier, val); + return _NPN_Enumerate(npp, object, identifier, identifierCount); } -bool WebBindings::evaluate(NPP npp, NPObject* npObject, NPString* npScript, NPVariant* result) +bool WebBindings::evaluate(NPP npp, NPObject* object, NPString* script, NPVariant* result) { - return _NPN_Evaluate(npp, npObject, npScript, result); + return _NPN_Evaluate(npp, object, script, result); } -bool WebBindings::evaluateHelper(NPP npp, bool popups_allowed, NPObject* npobj, NPString* npscript, NPVariant* result) +bool WebBindings::evaluateHelper(NPP npp, bool popupsAllowed, NPObject* object, NPString* script, NPVariant* result) { - return _NPN_EvaluateHelper(npp, popups_allowed, npobj, npscript, result); + return _NPN_EvaluateHelper(npp, popupsAllowed, object, script, result); } NPIdentifier WebBindings::getIntIdentifier(int32_t number) @@ -95,9 +88,9 @@ NPIdentifier WebBindings::getIntIdentifier(int32_t number) return _NPN_GetIntIdentifier(number); } -bool WebBindings::getProperty(NPP npp, NPObject* obj, NPIdentifier propertyName, NPVariant *result) +bool WebBindings::getProperty(NPP npp, NPObject* object, NPIdentifier property, NPVariant* result) { - return _NPN_GetProperty(npp, obj, propertyName, result); + return _NPN_GetProperty(npp, object, property, result); } NPIdentifier WebBindings::getStringIdentifier(const NPUTF8* string) @@ -110,14 +103,14 @@ void WebBindings::getStringIdentifiers(const NPUTF8** names, int32_t nameCount, _NPN_GetStringIdentifiers(names, nameCount, identifiers); } -bool WebBindings::hasMethod(NPP npp, NPObject* npObject, NPIdentifier methodName) +bool WebBindings::hasMethod(NPP npp, NPObject* object, NPIdentifier method) { - return _NPN_HasMethod(npp, npObject, methodName); + return _NPN_HasMethod(npp, object, method); } -bool WebBindings::hasProperty(NPP npp, NPObject* npObject, NPIdentifier propertyName) +bool WebBindings::hasProperty(NPP npp, NPObject* object, NPIdentifier property) { - return _NPN_HasProperty(npp, npObject, propertyName); + return _NPN_HasProperty(npp, object, property); } bool WebBindings::identifierIsString(NPIdentifier identifier) @@ -139,19 +132,19 @@ void WebBindings::initializeVariantWithStringCopy(NPVariant* variant, const NPSt #endif } -bool WebBindings::invoke(NPP npp, NPObject* npObject, NPIdentifier methodName, const NPVariant* arguments, uint32_t argumentCount, NPVariant* result) +bool WebBindings::invoke(NPP npp, NPObject* object, NPIdentifier method, const NPVariant* args, uint32_t argCount, NPVariant* result) { - return _NPN_Invoke(npp, npObject, methodName, arguments, argumentCount, result); + return _NPN_Invoke(npp, object, method, args, argCount, result); } -bool WebBindings::invokeDefault(NPP id, NPObject* obj, const NPVariant* args, uint32_t count, NPVariant* result) +bool WebBindings::invokeDefault(NPP npp, NPObject* object, const NPVariant* args, uint32_t argCount, NPVariant* result) { - return _NPN_InvokeDefault(id, obj, args, count, result); + return _NPN_InvokeDefault(npp, object, args, argCount, result); } -void WebBindings::releaseObject(NPObject* npObject) +void WebBindings::releaseObject(NPObject* object) { - return _NPN_ReleaseObject(npObject); + return _NPN_ReleaseObject(object); } void WebBindings::releaseVariantValue(NPVariant* variant) @@ -159,30 +152,30 @@ void WebBindings::releaseVariantValue(NPVariant* variant) _NPN_ReleaseVariantValue(variant); } -bool WebBindings::removeProperty(NPP id, NPObject* object, NPIdentifier identifier) +bool WebBindings::removeProperty(NPP npp, NPObject* object, NPIdentifier identifier) { - return _NPN_RemoveProperty(id, object, identifier); + return _NPN_RemoveProperty(npp, object, identifier); } -NPObject* WebBindings::retainObject(NPObject* npObject) +NPObject* WebBindings::retainObject(NPObject* object) { - return _NPN_RetainObject(npObject); + return _NPN_RetainObject(object); } -void WebBindings::setException(NPObject* obj, const NPUTF8* message) +void WebBindings::setException(NPObject* object, const NPUTF8* message) { - _NPN_SetException(obj, message); + _NPN_SetException(object, message); } -bool WebBindings::setProperty(NPP id, NPObject* obj, NPIdentifier identifier, const NPVariant* variant) +bool WebBindings::setProperty(NPP npp, NPObject* object, NPIdentifier identifier, const NPVariant* value) { - return _NPN_SetProperty(id, obj, identifier, variant); + return _NPN_SetProperty(npp, object, identifier, value); } -void WebBindings::unregisterObject(NPObject* npObject) +void WebBindings::unregisterObject(NPObject* object) { #if USE(V8) - _NPN_UnregisterObject(npObject); + _NPN_UnregisterObject(object); #endif } @@ -193,116 +186,46 @@ NPUTF8* WebBindings::utf8FromIdentifier(NPIdentifier identifier) void WebBindings::extractIdentifierData(const NPIdentifier& identifier, const NPUTF8*& string, int32_t& number, bool& isString) { - PrivateIdentifier* priv = static_cast<PrivateIdentifier*>(identifier); - if (!priv) { + PrivateIdentifier* data = static_cast<PrivateIdentifier*>(identifier); + if (!data) { isString = false; number = 0; return; } - isString = priv->isString; + isString = data->isString; if (isString) - string = priv->value.string; + string = data->value.string; else - number = priv->value.number; + number = data->value.number; } #if USE(V8) -static v8::Local<v8::Value> getEvent(const v8::Handle<v8::Context>& context) +static bool getRangeImpl(NPObject* object, WebRange* webRange) { - return context->Global()->GetHiddenValue(V8HiddenPropertyName::event()); -} - -static bool getDragDataImpl(NPObject* npobj, int* eventId, WebDragData* data) -{ - if (!npobj) - return false; - if (npobj->_class != npScriptObjectClass) - return false; - - v8::HandleScope handleScope; - v8::Handle<v8::Context> context = v8::Context::GetEntered(); - if (context.IsEmpty()) - return false; - - // Get the current WebCore event. - v8::Handle<v8::Value> currentEvent(getEvent(context)); - Event* event = V8Event::toNative(v8::Handle<v8::Object>::Cast(currentEvent)); - if (!event) - return false; - - // Check that the given npobj is that event. - V8NPObject* object = reinterpret_cast<V8NPObject*>(npobj); - Event* given = V8Event::toNative(object->v8Object); - if (given != event) - return false; - - // Check the execution frames are same origin. - V8Proxy* current = V8Proxy::retrieve(V8Proxy::retrieveFrameForCurrentContext()); - Frame* frame = V8Proxy::retrieveFrame(context); - if (!current || !V8BindingSecurity::canAccessFrame(V8BindingState::Only(), frame, false)) - return false; - - const EventNames& names(eventNames()); - const AtomicString& eventType(event->type()); - - enum DragTargetMouseEventId { - DragEnterId = 1, DragOverId = 2, DragLeaveId = 3, DropId = 4 - }; - - // The event type should be a drag event. - if (eventType == names.dragenterEvent) - *eventId = DragEnterId; - else if (eventType == names.dragoverEvent) - *eventId = DragOverId; - else if (eventType == names.dragleaveEvent) - *eventId = DragLeaveId; - else if (eventType == names.dropEvent) - *eventId = DropId; - else - return false; - - // Drag events are mouse events and should have a clipboard. - MouseEvent* me = static_cast<MouseEvent*>(event); - Clipboard* clipboard = me->clipboard(); - if (!clipboard) + if (!object || (object->_class != npScriptObjectClass)) return false; - // And that clipboard should be accessible by WebKit policy. - ClipboardChromium* chrome = static_cast<ClipboardChromium*>(clipboard); - HashSet<String> accessible(chrome->types()); - if (accessible.isEmpty()) - return false; - - RefPtr<ChromiumDataObject> dataObject(chrome->dataObject()); - if (dataObject && data) - *data = WebDragData(dataObject); - - return dataObject; -} - -static bool getRangeImpl(NPObject* npobj, WebRange* range) -{ - V8NPObject* v8npobject = reinterpret_cast<V8NPObject*>(npobj); - v8::Handle<v8::Object> v8object(v8npobject->v8Object); - if (!V8Range::info.equals(V8DOMWrapper::domWrapperType(v8object))) + V8NPObject* v8NPObject = reinterpret_cast<V8NPObject*>(object); + v8::Handle<v8::Object> v8Object(v8NPObject->v8Object); + if (!V8Range::info.equals(V8DOMWrapper::domWrapperType(v8Object))) return false; - Range* native = V8Range::toNative(v8object); + Range* native = V8Range::toNative(v8Object); if (!native) return false; - *range = WebRange(native); + *webRange = WebRange(native); return true; } -static bool getElementImpl(NPObject* npObj, WebElement* webElement) +static bool getElementImpl(NPObject* object, WebElement* webElement) { - if (!npObj || (npObj->_class != npScriptObjectClass)) + if (!object || (object->_class != npScriptObjectClass)) return false; - V8NPObject* v8NPObject = reinterpret_cast<V8NPObject*>(npObj); + V8NPObject* v8NPObject = reinterpret_cast<V8NPObject*>(object); v8::Handle<v8::Object> v8Object(v8NPObject->v8Object); Element* native = V8Element::toNative(v8Object); if (!native) @@ -316,7 +239,7 @@ static NPObject* makeIntArrayImpl(const WebVector<int>& data) { v8::HandleScope handleScope; v8::Handle<v8::Array> result = v8::Array::New(data.size()); - for (size_t i = 0; i < data.size(); i++) + for (size_t i = 0; i < data.size(); ++i) result->Set(i, v8::Number::New(data[i])); WebCore::DOMWindow* window = WebCore::V8Proxy::retrieveWindow(WebCore::V8Proxy::currentContext()); @@ -334,28 +257,22 @@ static NPObject* makeStringArrayImpl(const WebVector<WebString>& data) return npCreateV8ScriptObject(0, result, window); } -#endif - -bool WebBindings::getDragData(NPObject* event, int* eventId, WebDragData* data) +static NPObject* makeNodeImpl(WebNode data) { -#if USE(V8) - return getDragDataImpl(event, eventId, data); -#else - // Not supported on other ports (JSC, etc). - return false; -#endif + v8::HandleScope handleScope; + if (data.isNull()) + return 0; + v8::Handle<v8::Object> result = V8Node::wrap(data.unwrap<Node>()); + WebCore::DOMWindow* window = WebCore::V8Proxy::retrieveWindow(WebCore::V8Proxy::currentContext()); + return npCreateV8ScriptObject(0, result, window); } -bool WebBindings::isDragEvent(NPObject* event) -{ - int eventId; - return getDragData(event, &eventId, 0); -} +#endif -bool WebBindings::getRange(NPObject* range, WebRange* webrange) +bool WebBindings::getRange(NPObject* range, WebRange* webRange) { #if USE(V8) - return getRangeImpl(range, webrange); + return getRangeImpl(range, webRange); #else // Not supported on other ports (JSC, etc). return false; @@ -372,7 +289,7 @@ bool WebBindings::getElement(NPObject* element, WebElement* webElement) #endif } -NPObject* WebBindings::makeIntArray(const WebVector<int> & data) +NPObject* WebBindings::makeIntArray(const WebVector<int>& data) { #if USE(V8) return makeIntArrayImpl(data); @@ -392,6 +309,16 @@ NPObject* WebBindings::makeStringArray(const WebVector<WebString>& data) #endif } +NPObject* WebBindings::makeNode(const WebNode& data) +{ +#if USE(V8) + return makeNodeImpl(data); +#else + // Not supported on other ports (JSC, etc.). + return 0; +#endif +} + void WebBindings::pushExceptionHandler(ExceptionHandler handler, void* data) { WebCore::pushExceptionHandler(handler, data); diff --git a/Source/WebKit/chromium/src/WebDOMMouseEvent.cpp b/Source/WebKit/chromium/src/WebDOMMouseEvent.cpp index bfeae37..1e65888 100644 --- a/Source/WebKit/chromium/src/WebDOMMouseEvent.cpp +++ b/Source/WebKit/chromium/src/WebDOMMouseEvent.cpp @@ -57,24 +57,24 @@ int WebDOMMouseEvent::clientY() const return constUnwrap<MouseEvent>()->clientY(); } -int WebDOMMouseEvent::layerX() const +int WebDOMMouseEvent::layerX() { - return constUnwrap<MouseEvent>()->layerX(); + return unwrap<MouseEvent>()->layerX(); } -int WebDOMMouseEvent::layerY() const +int WebDOMMouseEvent::layerY() { - return constUnwrap<MouseEvent>()->layerY(); + return unwrap<MouseEvent>()->layerY(); } -int WebDOMMouseEvent::offsetX() const +int WebDOMMouseEvent::offsetX() { - return constUnwrap<MouseEvent>()->offsetX(); + return unwrap<MouseEvent>()->offsetX(); } -int WebDOMMouseEvent::offsetY() const +int WebDOMMouseEvent::offsetY() { - return constUnwrap<MouseEvent>()->offsetY(); + return unwrap<MouseEvent>()->offsetY(); } int WebDOMMouseEvent::pageX() const diff --git a/Source/WebKit/chromium/src/WebDataSourceImpl.cpp b/Source/WebKit/chromium/src/WebDataSourceImpl.cpp index 65147fa..1366a80 100644 --- a/Source/WebKit/chromium/src/WebDataSourceImpl.cpp +++ b/Source/WebKit/chromium/src/WebDataSourceImpl.cpp @@ -174,7 +174,7 @@ WebDataSourceImpl::WebDataSourceImpl(const ResourceRequest& request, const Subst // frame, which results in a second data source being created. We want // to wait to attach the WebPluginLoadObserver to that data source. if (!request.url().isEmpty()) { - ASSERT(m_nextPluginLoadObserver->url() == request.url()); + ASSERT(m_nextPluginLoadObserver->url() == WebURL(request.url())); m_pluginLoadObserver.set(m_nextPluginLoadObserver); m_nextPluginLoadObserver = 0; } diff --git a/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp b/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp index 6329d76..c1a5f9c 100644 --- a/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp +++ b/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. All rights reserved. + * Copyright (C) 2010-2011 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 @@ -40,13 +40,12 @@ #include "InspectorInstrumentation.h" #include "Page.h" #include "PageGroup.h" +#include "PageScriptDebugServer.h" #include "PlatformString.h" #include "ResourceError.h" #include "ResourceRequest.h" #include "ResourceResponse.h" -#include "ScriptDebugServer.h" #include "V8Binding.h" -#include "V8Node.h" #include "V8Proxy.h" #include "V8Utilities.h" #include "WebDataSource.h" @@ -73,14 +72,14 @@ namespace { static const char kFrontendConnectedFeatureName[] = "frontend-connected"; static const char kInspectorStateFeatureName[] = "inspector-state"; -class ClientMessageLoopAdapter : public ScriptDebugServer::ClientMessageLoop { +class ClientMessageLoopAdapter : public PageScriptDebugServer::ClientMessageLoop { public: static void ensureClientMessageLoopCreated(WebDevToolsAgentClient* client) { if (s_instance) return; s_instance = new ClientMessageLoopAdapter(client->createClientMessageLoop()); - ScriptDebugServer::shared().setClientMessageLoop(s_instance); + PageScriptDebugServer::shared().setClientMessageLoop(s_instance); } static void inspectedViewClosed(WebViewImpl* view) @@ -93,7 +92,7 @@ public: { // Release render thread if necessary. if (s_instance && s_instance->m_running) - ScriptDebugServer::shared().continueProgram(); + PageScriptDebugServer::shared().continueProgram(); } private: @@ -187,9 +186,6 @@ void WebDevToolsAgentImpl::attach() m_debuggerAgentImpl.set( new DebuggerAgentImpl(m_webViewImpl, this, m_client)); - WebCString debuggerScriptJs = m_client->debuggerScriptSource(); - ScriptDebugServer::shared().setDebuggerScriptSource( - String(debuggerScriptJs.data(), debuggerScriptJs.length())); m_attached = true; } @@ -230,14 +226,6 @@ void WebDevToolsAgentImpl::inspectElementAt(const WebPoint& point) m_webViewImpl->inspectElementAt(point); } -void WebDevToolsAgentImpl::inspectNode(v8::Handle<v8::Value> node) -{ - if (!V8Node::HasInstance(node)) - V8Proxy::setDOMException(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 == kInspectorStateFeatureName) { @@ -260,49 +248,6 @@ Frame* WebDevToolsAgentImpl::mainFrame() return 0; } - -//------- plugin resource load notifications --------------- -void WebDevToolsAgentImpl::identifierForInitialRequest( - unsigned long resourceId, - WebFrame* webFrame, - const WebURLRequest& request) -{ - WebFrameImpl* webFrameImpl = static_cast<WebFrameImpl*>(webFrame); - Frame* frame = webFrameImpl->frame(); - DocumentLoader* loader = frame->loader()->activeDocumentLoader(); - InspectorInstrumentation::identifierForInitialRequest(frame, resourceId, loader, request.toResourceRequest()); -} - -void WebDevToolsAgentImpl::willSendRequest(unsigned long resourceId, WebURLRequest& request) -{ - if (InspectorController* ic = inspectorController()) { - InspectorInstrumentation::willSendRequest(mainFrame(), resourceId, request.toMutableResourceRequest(), ResourceResponse()); - if (ic->hasFrontend() && request.reportLoadTiming()) - request.setReportRawHeaders(true); - } -} - -void WebDevToolsAgentImpl::didReceiveData(unsigned long resourceId, int length) -{ - InspectorInstrumentation::didReceiveContentLength(mainFrame(), resourceId, length); -} - -void WebDevToolsAgentImpl::didReceiveResponse(unsigned long resourceId, const WebURLResponse& response) -{ - InspectorInstrumentationCookie cookie = InspectorInstrumentation::willReceiveResourceResponse(mainFrame(), resourceId, response.toResourceResponse()); - InspectorInstrumentation::didReceiveResourceResponse(cookie, resourceId, 0, response.toResourceResponse()); -} - -void WebDevToolsAgentImpl::didFinishLoading(unsigned long resourceId) -{ - InspectorInstrumentation::didFinishLoading(mainFrame(), resourceId, 0); -} - -void WebDevToolsAgentImpl::didFailLoading(unsigned long resourceId, const WebURLError& error) -{ - InspectorInstrumentation::didFailLoading(mainFrame(), resourceId, error); -} - void WebDevToolsAgentImpl::inspectorDestroyed() { // Our lifetime is bound to the WebViewImpl. @@ -374,7 +319,7 @@ void WebDevToolsAgent::debuggerPauseScript() void WebDevToolsAgent::interruptAndDispatch(MessageDescriptor* d) { - class DebuggerTask : public ScriptDebugServer::Task { + class DebuggerTask : public PageScriptDebugServer::Task { public: DebuggerTask(WebDevToolsAgent::MessageDescriptor* descriptor) : m_descriptor(descriptor) { } virtual ~DebuggerTask() { } @@ -386,7 +331,7 @@ void WebDevToolsAgent::interruptAndDispatch(MessageDescriptor* d) private: OwnPtr<WebDevToolsAgent::MessageDescriptor> m_descriptor; }; - ScriptDebugServer::interruptAndRun(new DebuggerTask(d)); + PageScriptDebugServer::interruptAndRun(new DebuggerTask(d)); } bool WebDevToolsAgent::shouldInterruptForMessage(const WebString& message) @@ -395,18 +340,18 @@ bool WebDevToolsAgent::shouldInterruptForMessage(const WebString& message) if (!InspectorBackendDispatcher::getCommandName(message, &commandName)) return false; return commandName == InspectorBackendDispatcher::Debugger_pauseCmd - || commandName == InspectorBackendDispatcher::Debugger_setJavaScriptBreakpointCmd - || commandName == InspectorBackendDispatcher::Debugger_removeJavaScriptBreakpointCmd - || commandName == InspectorBackendDispatcher::Debugger_activateBreakpointsCmd - || commandName == InspectorBackendDispatcher::Debugger_deactivateBreakpointsCmd - || commandName == InspectorBackendDispatcher::Inspector_startProfilingCmd - || commandName == InspectorBackendDispatcher::Inspector_stopProfilingCmd + || commandName == InspectorBackendDispatcher::Debugger_setBreakpointCmd + || commandName == InspectorBackendDispatcher::Debugger_setBreakpointByUrlCmd + || commandName == InspectorBackendDispatcher::Debugger_removeBreakpointCmd + || commandName == InspectorBackendDispatcher::Debugger_setBreakpointsActiveCmd + || commandName == InspectorBackendDispatcher::Profiler_startCmd + || commandName == InspectorBackendDispatcher::Profiler_stopCmd || commandName == InspectorBackendDispatcher::Profiler_getProfileCmd; } void WebDevToolsAgent::processPendingMessages() { - ScriptDebugServer::shared().runPendingTasks(); + PageScriptDebugServer::shared().runPendingTasks(); } void WebDevToolsAgent::setMessageLoopDispatchHandler(MessageLoopDispatchHandler handler) diff --git a/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h b/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h index 2bc197d..33ca232 100644 --- a/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h +++ b/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h @@ -35,7 +35,6 @@ #include "WebDevToolsAgentPrivate.h" -#include <v8.h> #include <wtf/Forward.h> #include <wtf/OwnPtr.h> @@ -76,18 +75,10 @@ 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); - virtual void identifierForInitialRequest(unsigned long, WebFrame*, const WebURLRequest&); - virtual void willSendRequest(unsigned long, WebURLRequest&); - virtual void didReceiveData(unsigned long, int length); - virtual void didReceiveResponse(unsigned long, const WebURLResponse&); - virtual void didFinishLoading(unsigned long); - virtual void didFailLoading(unsigned long, const WebURLError&); - // InspectorClient implementation. virtual void inspectorDestroyed(); virtual void openInspectorFrontend(WebCore::InspectorController*); diff --git a/Source/WebKit/chromium/src/WebDocument.cpp b/Source/WebKit/chromium/src/WebDocument.cpp index a983bf7..0abf307 100644 --- a/Source/WebKit/chromium/src/WebDocument.cpp +++ b/Source/WebKit/chromium/src/WebDocument.cpp @@ -31,6 +31,7 @@ #include "config.h" #include "WebDocument.h" +#include "AXObjectCache.h" #include "Document.h" #include "DocumentType.h" #include "Element.h" @@ -41,6 +42,7 @@ #include "HTMLHeadElement.h" #include "NodeList.h" +#include "WebAccessibilityObject.h" #include "WebDocumentType.h" #include "WebElement.h" #include "WebFrameImpl.h" @@ -129,6 +131,13 @@ WebDocumentType WebDocument::doctype() const return WebDocumentType(constUnwrap<Document>()->doctype()); } +WebAccessibilityObject WebDocument::accessibilityObject() const +{ + const Document* document = constUnwrap<Document>(); + return WebAccessibilityObject( + document->axObjectCache()->getOrCreate(document->renderer())); +} + WebDocument::WebDocument(const PassRefPtr<Document>& elem) : WebNode(elem) { diff --git a/Source/WebKit/chromium/src/WebElement.cpp b/Source/WebKit/chromium/src/WebElement.cpp index 34daa34..ee7ec09 100644 --- a/Source/WebKit/chromium/src/WebElement.cpp +++ b/Source/WebKit/chromium/src/WebElement.cpp @@ -90,6 +90,11 @@ WebString WebElement::innerText() const return constUnwrap<Element>()->innerText(); } +WebNode WebElement::shadowRoot() +{ + return adoptRef(unwrap<Element>()->shadowRoot()); +} + WebString WebElement::computeInheritedLanguage() const { return WebString(constUnwrap<Element>()->computeInheritedLanguage()); diff --git a/Source/WebKit/chromium/src/WebFileSystemCallbacksImpl.cpp b/Source/WebKit/chromium/src/WebFileSystemCallbacksImpl.cpp index 0c71f80..58d56e9 100644 --- a/Source/WebKit/chromium/src/WebFileSystemCallbacksImpl.cpp +++ b/Source/WebKit/chromium/src/WebFileSystemCallbacksImpl.cpp @@ -72,6 +72,7 @@ void WebFileSystemCallbacksImpl::didReadMetadata(const WebFileInfo& webFileInfo) fileMetadata.modificationTime = webFileInfo.modificationTime; fileMetadata.length = webFileInfo.length; fileMetadata.type = static_cast<FileMetadata::Type>(webFileInfo.type); + fileMetadata.platformPath = webFileInfo.platformPath; m_callbacks->didReadMetadata(fileMetadata); delete this; } diff --git a/Source/WebKit/chromium/src/WebFormControlElement.cpp b/Source/WebKit/chromium/src/WebFormControlElement.cpp index d2bc8ab..f00b058 100644 --- a/Source/WebKit/chromium/src/WebFormControlElement.cpp +++ b/Source/WebKit/chromium/src/WebFormControlElement.cpp @@ -43,6 +43,11 @@ bool WebFormControlElement::isEnabled() const return constUnwrap<HTMLFormControlElement>()->isEnabledFormControl(); } +bool WebFormControlElement::isReadOnly() const +{ + return constUnwrap<HTMLFormControlElement>()->readOnly(); +} + WebString WebFormControlElement::formControlName() const { return constUnwrap<HTMLFormControlElement>()->name(); diff --git a/Source/WebKit/chromium/src/WebFrameImpl.cpp b/Source/WebKit/chromium/src/WebFrameImpl.cpp index 53e1d44..fdfb14e 100644 --- a/Source/WebKit/chromium/src/WebFrameImpl.cpp +++ b/Source/WebKit/chromium/src/WebFrameImpl.cpp @@ -1052,11 +1052,17 @@ void WebFrameImpl::dispatchWillSendRequest(WebURLRequest& request) 0, 0, request.toMutableResourceRequest(), response); } +// FIXME: Remove this overload when clients have been changed to pass options. WebURLLoader* WebFrameImpl::createAssociatedURLLoader() { return new AssociatedURLLoader(this); } +WebURLLoader* WebFrameImpl::createAssociatedURLLoader(const WebURLLoaderOptions& options) +{ + return new AssociatedURLLoader(this, options); +} + void WebFrameImpl::commitDocumentData(const char* data, size_t length) { m_frame->loader()->documentLoader()->commitData(data, length); @@ -1077,11 +1083,6 @@ bool WebFrameImpl::willSuppressOpenerInNewFrame() const return frame()->loader()->suppressOpenerInNewFrame(); } -bool WebFrameImpl::pageDismissalEventBeingDispatched() const -{ - return frame()->loader()->pageDismissalEventBeingDispatched(); -} - void WebFrameImpl::replaceSelection(const WebString& text) { RefPtr<DocumentFragment> fragment = createFragmentFromText( @@ -1583,8 +1584,7 @@ void WebFrameImpl::scopeStringMatches(int identifier, // find an alternative. RefPtr<Range> resultRange(findPlainText(searchRange.get(), searchText, - true, - options.matchCase)); + options.matchCase ? 0 : CaseInsensitive)); if (resultRange->collapsed(ec)) { if (!resultRange->startContainer()->isInShadowTree()) break; @@ -1742,9 +1742,18 @@ WebString WebFrameImpl::contentAsMarkup() const return createFullMarkup(m_frame->document()); } -WebString WebFrameImpl::renderTreeAsText() const +WebString WebFrameImpl::renderTreeAsText(bool showDebugInfo) const { - return externalRepresentation(m_frame); + RenderAsTextBehavior behavior = RenderAsTextBehaviorNormal; + + if (showDebugInfo) { + behavior |= RenderAsTextShowCompositedLayers + | RenderAsTextShowAddresses + | RenderAsTextShowIDAndClass + | RenderAsTextShowLayerNesting; + } + + return externalRepresentation(m_frame, behavior); } WebString WebFrameImpl::counterValueForElementById(const WebString& id) const @@ -1791,7 +1800,7 @@ bool WebFrameImpl::selectionStartHasSpellingMarkerFor(int from, int length) cons { if (!m_frame) return false; - return m_frame->editor()->selectionStartHasSpellingMarkerFor(from, length); + return m_frame->editor()->selectionStartHasMarkerFor(DocumentMarker::Spelling, from, length); } bool WebFrameImpl::pauseSVGAnimation(const WebString& animationId, double time, const WebString& elementId) @@ -1814,11 +1823,11 @@ bool WebFrameImpl::pauseSVGAnimation(const WebString& animationId, double time, #endif } -WebString WebFrameImpl::layerTreeAsText() const +WebString WebFrameImpl::layerTreeAsText(bool showDebugInfo) const { if (!m_frame) return WebString(); - return WebString(m_frame->layerTreeAsText()); + return WebString(m_frame->layerTreeAsText(showDebugInfo)); } // WebFrameImpl public --------------------------------------------------------- diff --git a/Source/WebKit/chromium/src/WebFrameImpl.h b/Source/WebKit/chromium/src/WebFrameImpl.h index 179051e..6129de1 100644 --- a/Source/WebKit/chromium/src/WebFrameImpl.h +++ b/Source/WebKit/chromium/src/WebFrameImpl.h @@ -133,12 +133,13 @@ public: virtual bool isViewSourceModeEnabled() const; virtual void setReferrerForRequest(WebURLRequest&, const WebURL& referrer); virtual void dispatchWillSendRequest(WebURLRequest&); + // FIXME: Remove this overload when clients have been changed to pass options. virtual WebURLLoader* createAssociatedURLLoader(); + virtual WebURLLoader* createAssociatedURLLoader(const WebURLLoaderOptions&); virtual void commitDocumentData(const char* data, size_t length); virtual unsigned unloadListenerCount() const; virtual bool isProcessingUserGesture() const; virtual bool willSuppressOpenerInNewFrame() const; - virtual bool pageDismissalEventBeingDispatched() const; virtual void replaceSelection(const WebString&); virtual void insertText(const WebString&); virtual void setMarkedText(const WebString&, unsigned location, unsigned length); @@ -187,7 +188,7 @@ public: virtual WebString contentAsText(size_t maxChars) const; virtual WebString contentAsMarkup() const; - virtual WebString renderTreeAsText() const; + virtual WebString renderTreeAsText(bool showDebugInfo = false) const; virtual WebString counterValueForElementById(const WebString& id) const; virtual WebString markerTextForListItem(const WebElement&) const; virtual int pageNumberForElementById(const WebString& id, @@ -199,7 +200,7 @@ public: virtual bool pauseSVGAnimation(const WebString& animationId, double time, const WebString& elementId); - virtual WebString layerTreeAsText() const; + virtual WebString layerTreeAsText(bool showDebugInfo = false) const; static PassRefPtr<WebFrameImpl> create(WebFrameClient* client); ~WebFrameImpl(); diff --git a/Source/WebKit/chromium/src/WebGeolocationClientMock.cpp b/Source/WebKit/chromium/src/WebGeolocationClientMock.cpp index 1ec3dd1..0ad47da 100644 --- a/Source/WebKit/chromium/src/WebGeolocationClientMock.cpp +++ b/Source/WebKit/chromium/src/WebGeolocationClientMock.cpp @@ -82,6 +82,11 @@ void WebGeolocationClientMock::setPermission(bool allowed) m_clientMock->setPermission(allowed); } +int WebGeolocationClientMock::numberOfPendingPermissionRequests() const +{ + return m_clientMock->numberOfPendingPermissionRequests(); +} + void WebGeolocationClientMock::resetMock() { m_clientMock->reset(); diff --git a/Source/WebKit/chromium/src/WebIDBCallbacksImpl.cpp b/Source/WebKit/chromium/src/WebIDBCallbacksImpl.cpp index 38ac360..ce307a4 100644 --- a/Source/WebKit/chromium/src/WebIDBCallbacksImpl.cpp +++ b/Source/WebKit/chromium/src/WebIDBCallbacksImpl.cpp @@ -30,13 +30,11 @@ #include "IDBCursorBackendProxy.h" #include "IDBDatabaseError.h" #include "IDBDatabaseProxy.h" -#include "IDBIndexBackendProxy.h" #include "IDBKey.h" #include "IDBTransactionBackendProxy.h" #include "WebIDBCallbacks.h" #include "WebIDBDatabase.h" #include "WebIDBDatabaseError.h" -#include "WebIDBIndex.h" #include "WebIDBKey.h" #include "WebIDBTransaction.h" #include "WebSerializedScriptValue.h" @@ -74,11 +72,6 @@ void WebIDBCallbacksImpl::onSuccess(const WebKit::WebIDBKey& key) m_callbacks->onSuccess(key); } -void WebIDBCallbacksImpl::onSuccess(WebKit::WebIDBIndex* webKitInstance) -{ - m_callbacks->onSuccess(IDBIndexBackendProxy::create(webKitInstance)); -} - void WebIDBCallbacksImpl::onSuccess(WebKit::WebIDBTransaction* webKitInstance) { m_callbacks->onSuccess(IDBTransactionBackendProxy::create(webKitInstance)); diff --git a/Source/WebKit/chromium/src/WebIDBCallbacksImpl.h b/Source/WebKit/chromium/src/WebIDBCallbacksImpl.h index 9dd59a5..057aa25 100644 --- a/Source/WebKit/chromium/src/WebIDBCallbacksImpl.h +++ b/Source/WebKit/chromium/src/WebIDBCallbacksImpl.h @@ -45,7 +45,6 @@ public: virtual void onSuccess(WebKit::WebIDBCursor*); virtual void onSuccess(WebKit::WebIDBDatabase*); virtual void onSuccess(const WebKit::WebIDBKey&); - virtual void onSuccess(WebKit::WebIDBIndex*); virtual void onSuccess(WebKit::WebIDBTransaction*); virtual void onSuccess(const WebKit::WebSerializedScriptValue&); virtual void onBlocked(); diff --git a/Source/WebKit/chromium/src/WebIDBFactoryImpl.cpp b/Source/WebKit/chromium/src/WebIDBFactoryImpl.cpp index a509076..3e21af5 100755 --- a/Source/WebKit/chromium/src/WebIDBFactoryImpl.cpp +++ b/Source/WebKit/chromium/src/WebIDBFactoryImpl.cpp @@ -58,9 +58,9 @@ WebIDBFactoryImpl::~WebIDBFactoryImpl() { } -void WebIDBFactoryImpl::open(const WebString& name, 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, BackingStoreType backingStoreType) { - m_idbFactoryBackend->open(name, IDBCallbacksProxy::create(callbacks), origin, 0, dataDir, maximumSize); + m_idbFactoryBackend->open(name, IDBCallbacksProxy::create(callbacks), origin, 0, dataDir, maximumSize, static_cast<IDBFactoryBackendInterface::BackingStoreType>(backingStoreType)); } } // namespace WebKit diff --git a/Source/WebKit/chromium/src/WebIDBFactoryImpl.h b/Source/WebKit/chromium/src/WebIDBFactoryImpl.h index 9ed6e3f..0ffd289 100755 --- a/Source/WebKit/chromium/src/WebIDBFactoryImpl.h +++ b/Source/WebKit/chromium/src/WebIDBFactoryImpl.h @@ -42,7 +42,7 @@ public: WebIDBFactoryImpl(); virtual ~WebIDBFactoryImpl(); - virtual void open(const WebString& name, 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, BackingStoreType); private: WTF::RefPtr<WebCore::IDBFactoryBackendInterface> m_idbFactoryBackend; diff --git a/Source/WebKit/chromium/src/WebIDBObjectStoreImpl.cpp b/Source/WebKit/chromium/src/WebIDBObjectStoreImpl.cpp index 9fe6166..56e354d 100755 --- a/Source/WebKit/chromium/src/WebIDBObjectStoreImpl.cpp +++ b/Source/WebKit/chromium/src/WebIDBObjectStoreImpl.cpp @@ -28,6 +28,7 @@ #include "DOMStringList.h" #include "IDBCallbacksProxy.h" +#include "IDBIndexBackendInterface.h" #include "IDBKeyRange.h" #include "IDBObjectStoreBackendInterface.h" #include "WebIDBIndexImpl.h" diff --git a/Source/WebKit/chromium/src/WebInputElement.cpp b/Source/WebKit/chromium/src/WebInputElement.cpp index 548f1bb..3448bb6 100644 --- a/Source/WebKit/chromium/src/WebInputElement.cpp +++ b/Source/WebKit/chromium/src/WebInputElement.cpp @@ -65,16 +65,6 @@ bool WebInputElement::autoComplete() const return constUnwrap<HTMLInputElement>()->autoComplete(); } -bool WebInputElement::isReadOnly() const -{ - return constUnwrap<HTMLInputElement>()->readOnly(); -} - -bool WebInputElement::isEnabledFormControl() const -{ - return constUnwrap<HTMLInputElement>()->isEnabledFormControl(); -} - int WebInputElement::maxLength() const { return constUnwrap<HTMLInputElement>()->maxLength(); @@ -183,7 +173,7 @@ WebInputElement::operator PassRefPtr<HTMLInputElement>() const WebInputElement* toWebInputElement(WebElement* webElement) { - InputElement* inputElement = toInputElement(webElement->unwrap<Element>()); + InputElement* inputElement = webElement->unwrap<Element>()->toInputElement(); if (!inputElement) return 0; diff --git a/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp b/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp index a1b428c..abe9cbf 100644 --- a/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp +++ b/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp @@ -183,6 +183,12 @@ float WebMediaPlayerClientImpl::volume() const return 0.0f; } +void WebMediaPlayerClientImpl::playbackStateChanged() +{ + ASSERT(m_mediaPlayer); + m_mediaPlayer->playbackStateChanged(); +} + // MediaPlayerPrivateInterface ------------------------------------------------- void WebMediaPlayerClientImpl::load(const String& url) diff --git a/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.h b/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.h index 5d44626..22030b3 100644 --- a/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.h +++ b/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.h @@ -76,6 +76,7 @@ public: virtual void sizeChanged(); virtual void sawUnsupportedTracks(); virtual float volume() const; + virtual void playbackStateChanged(); // MediaPlayerPrivateInterface methods: virtual void load(const WTF::String& url); diff --git a/Source/WebKit/chromium/src/WebNode.cpp b/Source/WebKit/chromium/src/WebNode.cpp index e91d1ee..68b6f13 100644 --- a/Source/WebKit/chromium/src/WebNode.cpp +++ b/Source/WebKit/chromium/src/WebNode.cpp @@ -145,9 +145,14 @@ bool WebNode::isTextNode() const return m_private->isTextNode(); } +bool WebNode::isFocusable() const +{ + return m_private->isFocusable(); +} + bool WebNode::isContentEditable() const { - return m_private->isContentEditable(); + return m_private->rendererIsEditable(); } bool WebNode::isElementNode() const diff --git a/Source/WebKit/chromium/src/WebPageSerializer.cpp b/Source/WebKit/chromium/src/WebPageSerializer.cpp index 1fda484..c8c7529 100644 --- a/Source/WebKit/chromium/src/WebPageSerializer.cpp +++ b/Source/WebKit/chromium/src/WebPageSerializer.cpp @@ -31,19 +31,152 @@ #include "config.h" #include "WebPageSerializer.h" +#include "DocumentLoader.h" +#include "Element.h" +#include "Frame.h" +#include "HTMLAllCollection.h" +#include "HTMLFrameOwnerElement.h" +#include "HTMLInputElement.h" +#include "HTMLNames.h" #include "KURL.h" +#include "Vector.h" +#include "WebCString.h" #include "WebFrame.h" +#include "WebFrameImpl.h" #include "WebPageSerializerClient.h" #include "WebPageSerializerImpl.h" #include "WebString.h" #include "WebURL.h" #include "WebVector.h" +#include "WebView.h" #include <wtf/text/StringConcatenate.h> using namespace WebCore; +namespace { + +KURL getSubResourceURLFromElement(Element* element) +{ + ASSERT(element); + const QualifiedName* attributeName = 0; + if (element->hasTagName(HTMLNames::imgTag) || element->hasTagName(HTMLNames::scriptTag)) + attributeName = &HTMLNames::srcAttr; + else if (element->hasTagName(HTMLNames::inputTag)) { + HTMLInputElement* input = static_cast<HTMLInputElement*>(element); + if (input->isImageButton()) + attributeName = &HTMLNames::srcAttr; + } else if (element->hasTagName(HTMLNames::bodyTag) + || element->hasTagName(HTMLNames::tableTag) + || element->hasTagName(HTMLNames::trTag) + || element->hasTagName(HTMLNames::tdTag)) + attributeName = &HTMLNames::backgroundAttr; + else if (element->hasTagName(HTMLNames::blockquoteTag) + || element->hasTagName(HTMLNames::qTag) + || element->hasTagName(HTMLNames::delTag) + || element->hasTagName(HTMLNames::insTag)) + attributeName = &HTMLNames::citeAttr; + else if (element->hasTagName(HTMLNames::linkTag)) { + // If the link element is not css, ignore it. + if (equalIgnoringCase(element->getAttribute(HTMLNames::typeAttr), "text/css")) { + // FIXME: Add support for extracting links of sub-resources which + // are inside style-sheet such as @import, @font-face, url(), etc. + attributeName = &HTMLNames::hrefAttr; + } + } else if (element->hasTagName(HTMLNames::objectTag)) + attributeName = &HTMLNames::dataAttr; + else if (element->hasTagName(HTMLNames::embedTag)) + attributeName = &HTMLNames::srcAttr; + + if (!attributeName) + return KURL(); + + String value = element->getAttribute(*attributeName); + // Ignore javascript content. + if (value.isEmpty() || value.stripWhiteSpace().startsWith("javascript:", false)) + return KURL(); + + return element->document()->completeURL(value); +} + +void retrieveResourcesForElement(Element* element, + Vector<Frame*>* visitedFrames, + Vector<Frame*>* framesToVisit, + Vector<KURL>* frameURLs, + Vector<KURL>* resourceURLs) +{ + // If the node is a frame, we'll process it later in retrieveResourcesForFrame. + if ((element->hasTagName(HTMLNames::iframeTag) || element->hasTagName(HTMLNames::frameTag) + || element->hasTagName(HTMLNames::objectTag) || element->hasTagName(HTMLNames::embedTag)) + && element->isFrameOwnerElement()) { + Frame* frame = static_cast<HTMLFrameOwnerElement*>(element)->contentFrame(); + if (frame) { + if (!visitedFrames->contains(frame)) + framesToVisit->append(frame); + return; + } + } + + KURL url = getSubResourceURLFromElement(element); + if (url.isEmpty() || !url.isValid()) + return; // No subresource for this node. + + // Ignore URLs that have a non-standard protocols. Since the FTP protocol + // does no have a cache mechanism, we skip it as well. + if (!url.protocolInHTTPFamily() && !url.isLocalFile()) + return; + + if (!resourceURLs->contains(url)) + resourceURLs->append(url); +} + +void retrieveResourcesForFrame(Frame* frame, + const WebKit::WebVector<WebKit::WebCString>& supportedSchemes, + Vector<Frame*>* visitedFrames, + Vector<Frame*>* framesToVisit, + Vector<KURL>* frameURLs, + Vector<KURL>* resourceURLs) +{ + KURL frameURL = frame->loader()->documentLoader()->request().url(); + + // If the frame's URL is invalid, ignore it, it is not retrievable. + if (!frameURL.isValid()) + return; + + // Ignore frames from unsupported schemes. + bool isValidScheme = false; + for (size_t i = 0; i < supportedSchemes.size(); ++i) { + if (frameURL.protocolIs(static_cast<CString>(supportedSchemes[i]).data())) { + isValidScheme = true; + break; + } + } + if (!isValidScheme) + return; + + // If we have already seen that frame, ignore it. + if (visitedFrames->contains(frame)) + return; + visitedFrames->append(frame); + if (!frameURLs->contains(frameURL)) + frameURLs->append(frameURL); + + // Now get the resources associated with each node of the document. + RefPtr<HTMLAllCollection> allNodes = frame->document()->all(); + for (unsigned i = 0; i < allNodes->length(); ++i) { + Node* node = allNodes->item(i); + // We are only interested in HTML resources. + if (!node->isElementNode()) + continue; + retrieveResourcesForElement(static_cast<Element*>(node), + visitedFrames, framesToVisit, + frameURLs, resourceURLs); + } +} + +} // namespace + namespace WebKit { bool WebPageSerializer::serialize(WebFrame* frame, @@ -58,6 +191,48 @@ bool WebPageSerializer::serialize(WebFrame* frame, return serializerImpl.serialize(); } +bool WebPageSerializer::retrieveAllResources(WebView* view, + const WebVector<WebCString>& supportedSchemes, + WebVector<WebURL>* resourceURLs, + WebVector<WebURL>* frameURLs) { + WebFrameImpl* mainFrame = static_cast<WebFrameImpl*>(view->mainFrame()); + if (!mainFrame) + return false; + + Vector<Frame*> framesToVisit; + Vector<Frame*> visitedFrames; + Vector<KURL> frameKURLs; + Vector<KURL> resourceKURLs; + + // Let's retrieve the resources from every frame in this page. + framesToVisit.append(mainFrame->frame()); + while (!framesToVisit.isEmpty()) { + Frame* frame = framesToVisit[0]; + framesToVisit.remove(0); + retrieveResourcesForFrame(frame, supportedSchemes, + &visitedFrames, &framesToVisit, + &frameKURLs, &resourceKURLs); + } + + // Converts the results to WebURLs. + WebVector<WebURL> resultResourceURLs(resourceKURLs.size()); + for (size_t i = 0; i < resourceKURLs.size(); ++i) { + resultResourceURLs[i] = resourceKURLs[i]; + // A frame's src can point to the same URL as another resource, keep the + // resource URL only in such cases. + size_t index = frameKURLs.find(resourceKURLs[i]); + if (index != notFound) + frameKURLs.remove(index); + } + *resourceURLs = resultResourceURLs; + WebVector<WebURL> resultFrameURLs(frameKURLs.size()); + for (size_t i = 0; i < frameKURLs.size(); ++i) + resultFrameURLs[i] = frameKURLs[i]; + *frameURLs = resultFrameURLs; + + return true; +} + WebString WebPageSerializer::generateMetaCharsetDeclaration(const WebString& charset) { return makeString("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=", static_cast<const String&>(charset), "\">"); @@ -77,4 +252,4 @@ WebString WebPageSerializer::generateBaseTagDeclaration(const WebString& baseTar return makeString("<base href=\".\" target=\"", static_cast<const String&>(baseTarget), "\">"); } -} // namespace WebKit +} // namespace WebKit diff --git a/Source/WebKit/chromium/src/WebPluginContainerImpl.cpp b/Source/WebKit/chromium/src/WebPluginContainerImpl.cpp index bb1b083..40f8625 100644 --- a/Source/WebKit/chromium/src/WebPluginContainerImpl.cpp +++ b/Source/WebKit/chromium/src/WebPluginContainerImpl.cpp @@ -164,6 +164,7 @@ void WebPluginContainerImpl::handleEvent(Event* event) if (!m_webPlugin->acceptsInputEvents()) return; + RefPtr<WebPluginContainerImpl> protector(this); // The events we pass are defined at: // http://devedge-temp.mozilla.org/library/manuals/2002/plugin/1.0/structures5.html#1000000 // Don't take the documentation as truth, however. There are many cases @@ -307,6 +308,22 @@ void WebPluginContainerImpl::reportGeometry() m_webPlugin->updateGeometry(windowRect, clipRect, cutOutRects, isVisible()); } +void WebPluginContainerImpl::setBackingTextureId(unsigned id) +{ +#if USE(ACCELERATED_COMPOSITING) + unsigned currId = m_platformLayer->textureId(); + if (currId == id) + return; + + m_platformLayer->setTextureId(id); + // If anyone of the IDs is zero we need to switch between hardware + // and software compositing. This is done by triggering a style recalc + // on the container element. + if (!(currId * id)) + m_element->setNeedsStyleRecalc(WebCore::SyntheticStyleChange); +#endif +} + void WebPluginContainerImpl::commitBackingTexture() { #if USE(ACCELERATED_COMPOSITING) @@ -427,15 +444,7 @@ void WebPluginContainerImpl::willDestroyPluginLoadObserver(WebPluginLoadObserver #if USE(ACCELERATED_COMPOSITING) WebCore::LayerChromium* WebPluginContainerImpl::platformLayer() const { - // FIXME: In the event of a context lost, the texture needs to be recreated on the compositor's - // context and rebound to the platform layer here. - unsigned backingTextureId = m_webPlugin->getBackingTextureId(); - if (!backingTextureId) - return 0; - - m_platformLayer->setTextureId(backingTextureId); - - return m_platformLayer.get(); + return m_platformLayer->textureId() ? m_platformLayer.get() : 0; } #endif diff --git a/Source/WebKit/chromium/src/WebPluginContainerImpl.h b/Source/WebKit/chromium/src/WebPluginContainerImpl.h index ebe6983..9922932 100644 --- a/Source/WebKit/chromium/src/WebPluginContainerImpl.h +++ b/Source/WebKit/chromium/src/WebPluginContainerImpl.h @@ -84,6 +84,7 @@ public: virtual void invalidateRect(const WebRect&); virtual void scrollRect(int dx, int dy, const WebRect&); virtual void reportGeometry(); + virtual void setBackingTextureId(unsigned); virtual void commitBackingTexture(); virtual void clearScriptObjects(); virtual NPObject* scriptableObjectForElement(); diff --git a/Source/WebKit/chromium/src/WebRuntimeFeatures.cpp b/Source/WebKit/chromium/src/WebRuntimeFeatures.cpp index e3ece6e..256bf56 100644 --- a/Source/WebKit/chromium/src/WebRuntimeFeatures.cpp +++ b/Source/WebKit/chromium/src/WebRuntimeFeatures.cpp @@ -152,6 +152,22 @@ bool WebRuntimeFeatures::isApplicationCacheEnabled() #endif } +void WebRuntimeFeatures::enableDataTransferItems(bool enable) +{ +#if ENABLE(DATA_TRANSFER_ITEMS) + RuntimeEnabledFeatures::setDataTransferItemsEnabled(enable); +#endif +} + +bool WebRuntimeFeatures::isDataTransferItemsEnabled() +{ +#if ENABLE(DATA_TRANSFER_ITEMS) + return RuntimeEnabledFeatures::dataTransferItemsEnabled(); +#else + return false; +#endif +} + void WebRuntimeFeatures::enableGeolocation(bool enable) { #if ENABLE(GEOLOCATION) @@ -200,22 +216,6 @@ bool WebRuntimeFeatures::isWebAudioEnabled() #endif } -void WebRuntimeFeatures::enableWebGL(bool enable) -{ -#if ENABLE(WEBGL) - RuntimeEnabledFeatures::setWebGLEnabled(enable); -#endif -} - -bool WebRuntimeFeatures::isWebGLEnabled() -{ -#if ENABLE(WEBGL) - return RuntimeEnabledFeatures::webGLRenderingContextEnabled(); -#else - return false; -#endif -} - void WebRuntimeFeatures::enablePushState(bool enable) { RuntimeEnabledFeatures::setPushStateEnabled(enable); diff --git a/Source/WebKit/chromium/src/WebSettingsImpl.cpp b/Source/WebKit/chromium/src/WebSettingsImpl.cpp index e5d172e..1089af9 100644 --- a/Source/WebKit/chromium/src/WebSettingsImpl.cpp +++ b/Source/WebKit/chromium/src/WebSettingsImpl.cpp @@ -308,6 +308,11 @@ void WebSettingsImpl::setAcceleratedCompositingEnabled(bool enabled) m_settings->setAcceleratedCompositingEnabled(enabled); } +void WebSettingsImpl::setForceCompositingMode(bool enabled) +{ + m_settings->setForceCompositingMode(enabled); +} + void WebSettingsImpl::setCompositeToTextureEnabled(bool enabled) { m_compositeToTextureEnabled = enabled; diff --git a/Source/WebKit/chromium/src/WebSettingsImpl.h b/Source/WebKit/chromium/src/WebSettingsImpl.h index 323a5b3..d0319f8 100644 --- a/Source/WebKit/chromium/src/WebSettingsImpl.h +++ b/Source/WebKit/chromium/src/WebSettingsImpl.h @@ -94,6 +94,7 @@ public: virtual bool showPlatformLayerTree() const { return m_showPlatformLayerTree; } virtual void setEditingBehavior(EditingBehavior); virtual void setAcceleratedCompositingEnabled(bool); + virtual void setForceCompositingMode(bool); virtual void setCompositeToTextureEnabled(bool); virtual bool compositeToTextureEnabled() const { return m_compositeToTextureEnabled; } virtual void setAcceleratedCompositingFor3DTransformsEnabled(bool); diff --git a/Source/WebKit/chromium/src/WebTextCheckingCompletionImpl.cpp b/Source/WebKit/chromium/src/WebTextCheckingCompletionImpl.cpp index 2759790..b9e5227 100644 --- a/Source/WebKit/chromium/src/WebTextCheckingCompletionImpl.cpp +++ b/Source/WebKit/chromium/src/WebTextCheckingCompletionImpl.cpp @@ -43,7 +43,7 @@ static Vector<SpellCheckingResult> toCoreResults(const WebVector<WebTextChecking { Vector<SpellCheckingResult> coreResults; for (size_t i = 0; i < results.size(); ++i) - coreResults.append(SpellCheckingResult(static_cast<DocumentMarker::MarkerType>(results[i].error()), results[i].position(), results[i].length())); + coreResults.append(SpellCheckingResult(static_cast<DocumentMarker::MarkerType>(results[i].error), results[i].position, results[i].length)); return coreResults; } diff --git a/Source/WebKit/chromium/src/WebViewImpl.cpp b/Source/WebKit/chromium/src/WebViewImpl.cpp index 6ae4f35..4efa880 100644 --- a/Source/WebKit/chromium/src/WebViewImpl.cpp +++ b/Source/WebKit/chromium/src/WebViewImpl.cpp @@ -77,7 +77,6 @@ #include "PageGroup.h" #include "PageGroupLoadDeferrer.h" #include "Pasteboard.h" -#include "PlatformBridge.h" #include "PlatformContextSkia.h" #include "PlatformKeyboardEvent.h" #include "PlatformMouseEvent.h" @@ -93,6 +92,7 @@ #include "Settings.h" #include "SpeechInputClientImpl.h" #include "Timer.h" +#include "TraceEvent.h" #include "TypingCommand.h" #include "UserGestureIndicator.h" #include "Vector.h" @@ -126,6 +126,7 @@ #include <wtf/RefPtr.h> #if PLATFORM(CG) +#include <CoreGraphics/CGBitmapContext.h> #include <CoreGraphics/CGContext.h> #endif @@ -211,13 +212,13 @@ static bool shouldUseExternalPopupMenus = false; // WebView ---------------------------------------------------------------- -WebView* WebView::create(WebViewClient* client, WebDevToolsAgentClient* devToolsClient, WebAutoFillClient* autoFillClient) +WebView* WebView::create(WebViewClient* client) { // Keep runtime flag for device motion turned off until it's implemented. WebRuntimeFeatures::enableDeviceMotion(false); // Pass the WebViewImpl's self-reference to the caller. - return adoptRef(new WebViewImpl(client, devToolsClient, autoFillClient)).leakRef(); + return adoptRef(new WebViewImpl(client)).leakRef(); } void WebView::setUseExternalPopupMenus(bool useExternalPopupMenus) @@ -269,9 +270,28 @@ void WebViewImpl::initializeMainFrame(WebFrameClient* frameClient) SecurityOrigin::setLocalLoadPolicy(SecurityOrigin::AllowLocalLoadsForLocalOnly); } -WebViewImpl::WebViewImpl(WebViewClient* client, WebDevToolsAgentClient* devToolsClient, WebAutoFillClient* autoFillClient) +void WebViewImpl::setDevToolsAgentClient(WebDevToolsAgentClient* devToolsClient) +{ + if (devToolsClient) + m_devToolsAgent = new WebDevToolsAgentImpl(this, devToolsClient); + else + m_devToolsAgent.clear(); +} + +void WebViewImpl::setAutoFillClient(WebAutoFillClient* autoFillClient) +{ + m_autoFillClient = autoFillClient; +} + +void WebViewImpl::setSpellCheckClient(WebSpellCheckClient* spellCheckClient) +{ + m_spellCheckClient = spellCheckClient; +} + +WebViewImpl::WebViewImpl(WebViewClient* client) : m_client(client) - , m_autoFillClient(autoFillClient) + , m_autoFillClient(0) + , m_spellCheckClient(0) , m_chromeClientImpl(this) , m_contextMenuClientImpl(this) , m_dragClientImpl(this) @@ -290,9 +310,6 @@ WebViewImpl::WebViewImpl(WebViewClient* client, WebDevToolsAgentClient* devTools , m_suppressNextKeypressEvent(false) , m_initialNavigationPolicy(WebNavigationPolicyIgnore) , m_imeAcceptEvents(true) - , m_dragTargetDispatch(false) - , m_dragIdentity(0) - , m_dropEffect(DropEffectDefault) , m_operationsAllowed(WebDragOperationNone) , m_dragOperation(WebDragOperationNone) , m_autoFillPopupShowing(false) @@ -305,6 +322,7 @@ WebViewImpl::WebViewImpl(WebViewClient* client, WebDevToolsAgentClient* devTools , m_layerRenderer(0) , m_isAcceleratedCompositingActive(false) , m_compositorCreationFailed(false) + , m_recreatingGraphicsContext(false) #endif #if ENABLE(INPUT_SPEECH) , m_speechInputClient(SpeechInputClientImpl::create(client)) @@ -321,9 +339,6 @@ WebViewImpl::WebViewImpl(WebViewClient* client, WebDevToolsAgentClient* devTools // set to impossible point so we always get the first mouse pos m_lastMousePosition = WebPoint(-1, -1); - if (devToolsClient) - m_devToolsAgent = new WebDevToolsAgentImpl(this, devToolsClient); - Page::PageClients pageClients; pageClients.chromeClient = &m_chromeClientImpl; pageClients.contextMenuClient = &m_contextMenuClientImpl; @@ -962,13 +977,14 @@ void WebViewImpl::resize(const WebSize& newSize) } if (m_client) { - WebRect damagedRect(0, 0, m_size.width, m_size.height); if (isAcceleratedCompositingActive()) { #if USE(ACCELERATED_COMPOSITING) - invalidateRootLayerRect(damagedRect); + updateLayerRendererViewport(); #endif - } else + } else { + WebRect damagedRect(0, 0, m_size.width, m_size.height); m_client->didInvalidateRect(damagedRect); + } } #if USE(ACCELERATED_COMPOSITING) @@ -993,6 +1009,12 @@ void WebViewImpl::animate() void WebViewImpl::layout() { +#if USE(ACCELERATED_COMPOSITING) + // FIXME: RTL style not supported by the compositor yet. + if (isAcceleratedCompositingActive() && pageHasRTLStyle()) + setIsAcceleratedCompositingActive(false); +#endif + WebFrameImpl* webframe = mainFrameImpl(); if (webframe) { // In order for our child HWNDs (NativeWindowWidgets) to update properly, @@ -1057,7 +1079,7 @@ void WebViewImpl::paint(WebCanvas* canvas, const WebRect& rect) if (canvas) { // Clip rect to the confines of the rootLayerTexture. IntRect resizeRect(rect); - resizeRect.intersect(IntRect(IntPoint(), m_layerRenderer->visibleRectSize())); + resizeRect.intersect(IntRect(IntPoint(), m_layerRenderer->viewportSize())); doPixelReadbackToCanvas(canvas, resizeRect); } #endif @@ -1081,6 +1103,14 @@ void WebViewImpl::themeChanged() void WebViewImpl::composite(bool finish) { #if USE(ACCELERATED_COMPOSITING) + TRACE_EVENT("WebViewImpl::composite", this, 0); + if (m_recreatingGraphicsContext) { + // reallocateRenderer will request a repaint whether or not it succeeded + // in creating a new context. + reallocateRenderer(); + m_recreatingGraphicsContext = false; + return; + } doComposite(); // Finish if requested. @@ -1091,8 +1121,16 @@ void WebViewImpl::composite(bool finish) m_layerRenderer->present(); GraphicsContext3D* context = m_layerRenderer->context(); - if (context->getExtensions()->getGraphicsResetStatusARB() != GraphicsContext3D::NO_ERROR) - reallocateRenderer(); + if (context->getExtensions()->getGraphicsResetStatusARB() != GraphicsContext3D::NO_ERROR) { + // Trying to recover the context right here will not work if GPU process + // died. This is because GpuChannelHost::OnErrorMessage will only be + // called at the next iteration of the message loop, reverting our + // recovery attempts here. Instead, we detach the root layer from the + // renderer, recreate the renderer at the next message loop iteration + // and request a repaint yet again. + m_recreatingGraphicsContext = true; + setRootLayerNeedsDisplay(); + } #endif } @@ -1235,7 +1273,7 @@ void WebViewImpl::setFocus(bool enable) Element* element = static_cast<Element*>(focusedNode); if (element->isTextFormControl()) element->updateFocusAppearance(true); - else if (focusedNode->isContentEditable()) { + else if (focusedNode->rendererIsEditable()) { // updateFocusAppearance() selects all the text of // contentseditable DIVs. So we set the selection explicitly // instead. Note that this has the side effect of moving the @@ -1297,7 +1335,7 @@ bool WebViewImpl::setComposition( PassRefPtr<Range> range = editor->compositionRange(); if (range) { const Node* node = range->startContainer(); - if (!node || !node->isContentEditable()) + if (!node || !node->rendererIsEditable()) return false; } @@ -1346,7 +1384,7 @@ bool WebViewImpl::confirmComposition(const WebString& text) PassRefPtr<Range> range = editor->compositionRange(); if (range) { const Node* node = range->startContainer(); - if (!node || !node->isContentEditable()) + if (!node || !node->rendererIsEditable()) return false; } @@ -1755,7 +1793,22 @@ void WebViewImpl::dragSourceSystemDragEnded() } WebDragOperation WebViewImpl::dragTargetDragEnter( - const WebDragData& webDragData, int identity, + const WebDragData& webDragData, int identity, // FIXME: remove identity from this function signature. + const WebPoint& clientPoint, + const WebPoint& screenPoint, + WebDragOperationsMask operationsAllowed) +{ + ASSERT(!m_currentDragData.get()); + + m_currentDragData = webDragData; + UNUSED_PARAM(identity); + m_operationsAllowed = operationsAllowed; + + return dragTargetDragEnterOrOver(clientPoint, screenPoint, DragEnter); +} + +WebDragOperation WebViewImpl::dragTargetDragEnter( + const WebDragData& webDragData, const WebPoint& clientPoint, const WebPoint& screenPoint, WebDragOperationsMask operationsAllowed) @@ -1763,7 +1816,6 @@ WebDragOperation WebViewImpl::dragTargetDragEnter( ASSERT(!m_currentDragData.get()); m_currentDragData = webDragData; - m_dragIdentity = identity; m_operationsAllowed = operationsAllowed; return dragTargetDragEnterOrOver(clientPoint, screenPoint, DragEnter); @@ -1789,14 +1841,12 @@ void WebViewImpl::dragTargetDragLeave() IntPoint(), static_cast<DragOperation>(m_operationsAllowed)); - m_dragTargetDispatch = true; m_page->dragController()->dragExited(&dragData); - m_dragTargetDispatch = false; - m_currentDragData = 0; - m_dropEffect = DropEffectDefault; + // FIXME: why is the drag scroll timer not stopped here? + m_dragOperation = WebDragOperationNone; - m_dragIdentity = 0; + m_currentDragData = 0; } void WebViewImpl::dragTargetDrop(const WebPoint& clientPoint, @@ -1822,22 +1872,12 @@ void WebViewImpl::dragTargetDrop(const WebPoint& clientPoint, screenPoint, static_cast<DragOperation>(m_operationsAllowed)); - m_dragTargetDispatch = true; m_page->dragController()->performDrag(&dragData); - m_dragTargetDispatch = false; - m_currentDragData = 0; - m_dropEffect = DropEffectDefault; m_dragOperation = WebDragOperationNone; - m_dragIdentity = 0; - m_dragScrollTimer->stop(); -} + m_currentDragData = 0; -int WebViewImpl::dragIdentity() -{ - if (m_dragTargetDispatch) - return m_dragIdentity; - return 0; + m_dragScrollTimer->stop(); } WebDragOperation WebViewImpl::dragTargetDragEnterOrOver(const WebPoint& clientPoint, const WebPoint& screenPoint, DragAction dragAction) @@ -1850,27 +1890,23 @@ WebDragOperation WebViewImpl::dragTargetDragEnterOrOver(const WebPoint& clientPo screenPoint, static_cast<DragOperation>(m_operationsAllowed)); - m_dropEffect = DropEffectDefault; - m_dragTargetDispatch = true; - DragOperation effect = dragAction == DragEnter ? m_page->dragController()->dragEntered(&dragData) - : m_page->dragController()->dragUpdated(&dragData); - // Mask the operation against the drag source's allowed operations. - if (!(effect & dragData.draggingSourceOperationMask())) - effect = DragOperationNone; - m_dragTargetDispatch = false; - - if (m_dropEffect != DropEffectDefault) { - m_dragOperation = (m_dropEffect != DropEffectNone) ? WebDragOperationCopy - : WebDragOperationNone; - } else - m_dragOperation = static_cast<WebDragOperation>(effect); + DragOperation dropEffect; + if (dragAction == DragEnter) + dropEffect = m_page->dragController()->dragEntered(&dragData); + else + dropEffect = m_page->dragController()->dragUpdated(&dragData); + + // Mask the drop effect operation against the drag source's allowed operations. + if (!(dropEffect & dragData.draggingSourceOperationMask())) + dropEffect = DragOperationNone; + + m_dragOperation = static_cast<WebDragOperation>(dropEffect); if (dragAction == DragOver) m_dragScrollTimer->triggerScroll(mainFrameImpl()->frameView(), clientPoint); else m_dragScrollTimer->stop(); - return m_dragOperation; } @@ -2010,15 +2046,6 @@ void WebViewImpl::performCustomContextMenuAction(unsigned action) // WebView -------------------------------------------------------------------- -bool WebViewImpl::setDropEffect(bool accept) -{ - if (m_dragTargetDispatch) { - m_dropEffect = accept ? DropEffectCopy : DropEffectNone; - return true; - } - return false; -} - void WebViewImpl::setIsTransparent(bool isTransparent) { // Set any existing frames to be transparent. @@ -2258,9 +2285,26 @@ bool WebViewImpl::allowsAcceleratedCompositing() return !m_compositorCreationFailed; } +bool WebViewImpl::pageHasRTLStyle() const +{ + if (!page()) + return false; + Document* document = page()->mainFrame()->document(); + if (!document) + return false; + RenderView* renderView = document->renderView(); + if (!renderView) + return false; + RenderStyle* style = renderView->style(); + if (!style) + return false; + return (style->direction() == RTL); +} + void WebViewImpl::setRootGraphicsLayer(WebCore::PlatformLayer* layer) { - setIsAcceleratedCompositingActive(layer ? true : false); + // FIXME: RTL style not supported by the compositor yet. + setIsAcceleratedCompositingActive(layer && !pageHasRTLStyle() ? true : false); if (m_layerRenderer) m_layerRenderer->setRootLayer(layer); @@ -2279,6 +2323,7 @@ void WebViewImpl::setRootLayerNeedsDisplay() void WebViewImpl::scrollRootLayerRect(const IntSize& scrollDelta, const IntRect& clipRect) { + updateLayerRendererViewport(); setRootLayerNeedsDisplay(); } @@ -2290,14 +2335,66 @@ void WebViewImpl::invalidateRootLayerRect(const IntRect& rect) return; FrameView* view = page()->mainFrame()->view(); - IntRect contentRect = view->visibleContentRect(false); - IntRect visibleRect = view->visibleContentRect(true); - IntRect dirtyRect = view->windowToContents(rect); - m_layerRenderer->invalidateRootLayerRect(dirtyRect, visibleRect, contentRect); + updateLayerRendererViewport(); + m_layerRenderer->invalidateRootLayerRect(dirtyRect); setRootLayerNeedsDisplay(); } +class WebViewImplContentPainter : public TilePaintInterface { + WTF_MAKE_NONCOPYABLE(WebViewImplContentPainter); +public: + static PassOwnPtr<WebViewImplContentPainter*> create(WebViewImpl* webViewImpl) + { + return adoptPtr(new WebViewImplContentPainter(webViewImpl)); + } + + virtual void paint(GraphicsContext& context, const IntRect& contentRect) + { + Page* page = m_webViewImpl->page(); + if (!page) + return; + FrameView* view = page->mainFrame()->view(); + view->paintContents(&context, contentRect); + } + +private: + explicit WebViewImplContentPainter(WebViewImpl* webViewImpl) + : m_webViewImpl(webViewImpl) + { + } + + WebViewImpl* m_webViewImpl; +}; + +class WebViewImplScrollbarPainter : public TilePaintInterface { + WTF_MAKE_NONCOPYABLE(WebViewImplScrollbarPainter); +public: + static PassOwnPtr<WebViewImplScrollbarPainter> create(WebViewImpl* webViewImpl) + { + return adoptPtr(new WebViewImplScrollbarPainter(webViewImpl)); + } + + virtual void paint(GraphicsContext& context, const IntRect& contentRect) + { + Page* page = m_webViewImpl->page(); + if (!page) + return; + FrameView* view = page->mainFrame()->view(); + + context.translate(static_cast<float>(view->scrollX()), static_cast<float>(view->scrollY())); + IntRect windowRect = view->contentsToWindow(contentRect); + view->paintScrollbars(&context, windowRect); + } + +private: + explicit WebViewImplScrollbarPainter(WebViewImpl* webViewImpl) + : m_webViewImpl(webViewImpl) + { + } + + WebViewImpl* m_webViewImpl; +}; void WebViewImpl::setIsAcceleratedCompositingActive(bool active) { @@ -2308,8 +2405,11 @@ void WebViewImpl::setIsAcceleratedCompositingActive(bool active) if (!active) { m_isAcceleratedCompositingActive = false; + // We need to finish all GL rendering before sending + // didActivateAcceleratedCompositing(false) to prevent + // flickering when compositing turns off. if (m_layerRenderer) - m_layerRenderer->finish(); // finish all GL rendering before we hide the window? + m_layerRenderer->finish(); m_client->didActivateAcceleratedCompositing(false); } else if (m_layerRenderer) { m_isAcceleratedCompositingActive = true; @@ -2324,7 +2424,8 @@ void WebViewImpl::setIsAcceleratedCompositingActive(bool active) if (context) context->reshape(std::max(1, m_size.width), std::max(1, m_size.height)); } - m_layerRenderer = LayerRendererChromium::create(context.release()); + + m_layerRenderer = LayerRendererChromium::create(context.release(), WebViewImplContentPainter::create(this), WebViewImplScrollbarPainter::create(this)); if (m_layerRenderer) { m_client->didActivateAcceleratedCompositing(true); m_isAcceleratedCompositingActive = true; @@ -2339,95 +2440,67 @@ void WebViewImpl::setIsAcceleratedCompositingActive(bool active) page()->mainFrame()->view()->setClipsRepaints(!m_isAcceleratedCompositingActive); } -class WebViewImplTilePaintInterface : public TilePaintInterface { -public: - explicit WebViewImplTilePaintInterface(WebViewImpl* webViewImpl) - : m_webViewImpl(webViewImpl) - { - } - - virtual void paint(GraphicsContext& context, const IntRect& contentRect) - { - Page* page = m_webViewImpl->page(); - if (!page) - return; - FrameView* view = page->mainFrame()->view(); - view->paintContents(&context, contentRect); - } - -private: - WebViewImpl* m_webViewImpl; -}; - - -class WebViewImplScrollbarPaintInterface : public TilePaintInterface { -public: - explicit WebViewImplScrollbarPaintInterface(WebViewImpl* webViewImpl) - : m_webViewImpl(webViewImpl) - { - } - - virtual void paint(GraphicsContext& context, const IntRect& contentRect) - { - Page* page = m_webViewImpl->page(); - if (!page) - return; - FrameView* view = page->mainFrame()->view(); - - context.translate(static_cast<float>(view->scrollX()), static_cast<float>(view->scrollY())); - IntRect windowRect = view->contentsToWindow(contentRect); - view->paintScrollbars(&context, windowRect); - } - -private: - WebViewImpl* m_webViewImpl; -}; - void WebViewImpl::doComposite() { + ASSERT(m_layerRenderer); + if (!m_layerRenderer) { + setIsAcceleratedCompositingActive(false); + return; + } + ASSERT(isAcceleratedCompositingActive()); if (!page()) return; - FrameView* view = page()->mainFrame()->view(); - - // The visibleRect includes scrollbars whereas the contentRect doesn't. - IntRect visibleRect = view->visibleContentRect(true); - IntRect contentRect = view->visibleContentRect(false); - IntPoint scroll(view->scrollX(), view->scrollY()); - - WebViewImplTilePaintInterface tilePaint(this); - - WebViewImplScrollbarPaintInterface scrollbarPaint(this); m_layerRenderer->setCompositeOffscreen(settings()->compositeToTextureEnabled()); CCHeadsUpDisplay* hud = m_layerRenderer->headsUpDisplay(); hud->setShowFPSCounter(settings()->showFPSCounter()); hud->setShowPlatformLayerTree(settings()->showPlatformLayerTree()); - m_layerRenderer->updateAndDrawLayers(visibleRect, contentRect, scroll, tilePaint, scrollbarPaint); - - if (m_layerRenderer->isCompositingOffscreen()) - m_layerRenderer->copyOffscreenTextureToDisplay(); + m_layerRenderer->updateAndDrawLayers(); } void WebViewImpl::reallocateRenderer() { - GraphicsContext3D* context = m_layerRenderer->context(); - RefPtr<GraphicsContext3D> newContext = GraphicsContext3D::create(context->getContextAttributes(), m_page->chrome(), GraphicsContext3D::RenderDirectlyToHostWindow); + RefPtr<GraphicsContext3D> newContext = GraphicsContext3D::create( + getCompositorContextAttributes(), m_page->chrome(), GraphicsContext3D::RenderDirectlyToHostWindow); // GraphicsContext3D::create might fail and return 0, in that case LayerRendererChromium::create will also return 0. - RefPtr<LayerRendererChromium> layerRenderer = LayerRendererChromium::create(newContext); + RefPtr<LayerRendererChromium> layerRenderer = LayerRendererChromium::create(newContext, WebViewImplContentPainter::create(this), WebViewImplScrollbarPainter::create(this)); // Reattach the root layer. Child layers will get reattached as a side effect of updateLayersRecursive. - if (layerRenderer) + if (layerRenderer) { m_layerRenderer->transferRootLayer(layerRenderer.get()); - m_layerRenderer = layerRenderer; - - // Enable or disable accelerated compositing and request a refresh. - setRootGraphicsLayer(m_layerRenderer ? m_layerRenderer->rootLayer() : 0); + m_layerRenderer = layerRenderer; + // FIXME: In MacOS newContext->reshape method needs to be called to + // allocate IOSurfaces. All calls to create a context followed by + // reshape should really be extracted into one function; it is not + // immediately obvious that GraphicsContext3D object will not + // function properly until its reshape method is called. + newContext->reshape(std::max(1, m_size.width), std::max(1, m_size.height)); + setRootGraphicsLayer(m_layerRenderer->rootLayer()); + // Forces ViewHostMsg_DidActivateAcceleratedCompositing to be sent so + // that the browser process can reacquire surfaces. + m_client->didActivateAcceleratedCompositing(true); + } else + setRootGraphicsLayer(0); } #endif +void WebViewImpl::updateLayerRendererViewport() +{ + ASSERT(m_layerRenderer); + + if (!page()) + return; + + FrameView* view = page()->mainFrame()->view(); + IntRect contentRect = view->visibleContentRect(false); + IntRect visibleRect = view->visibleContentRect(true); + IntPoint scroll(view->scrollX(), view->scrollY()); + + m_layerRenderer->setViewport(visibleRect, contentRect, scroll); +} WebGraphicsContext3D* WebViewImpl::graphicsContext3D() { diff --git a/Source/WebKit/chromium/src/WebViewImpl.h b/Source/WebKit/chromium/src/WebViewImpl.h index 2163725..66b2908 100644 --- a/Source/WebKit/chromium/src/WebViewImpl.h +++ b/Source/WebKit/chromium/src/WebViewImpl.h @@ -114,6 +114,9 @@ public: // WebView methods: virtual void initializeMainFrame(WebFrameClient*); + virtual void setDevToolsAgentClient(WebDevToolsAgentClient*); + virtual void setAutoFillClient(WebAutoFillClient*); + virtual void setSpellCheckClient(WebSpellCheckClient*); virtual WebSettings* settings(); virtual WebString pageEncoding() const; virtual void setPageEncoding(const WebString& encoding); @@ -154,7 +157,12 @@ public: WebDragOperation operation); virtual void dragSourceSystemDragEnded(); virtual WebDragOperation dragTargetDragEnter( - const WebDragData& dragData, int identity, + const WebDragData&, int identity, // FIXME: remove identity from this function signature. + const WebPoint& clientPoint, + const WebPoint& screenPoint, + WebDragOperationsMask operationsAllowed); + virtual WebDragOperation dragTargetDragEnter( + const WebDragData&, const WebPoint& clientPoint, const WebPoint& screenPoint, WebDragOperationsMask operationsAllowed); @@ -166,8 +174,6 @@ public: virtual void dragTargetDrop( const WebPoint& clientPoint, const WebPoint& screenPoint); - virtual int dragIdentity(); - virtual bool setDropEffect(bool accept); virtual unsigned long createUniqueIdentifierForRequest(); virtual void inspectElementAt(const WebPoint& point); virtual WebString inspectorSettings() const; @@ -221,6 +227,11 @@ public: return m_autoFillClient; } + WebSpellCheckClient* spellCheckClient() + { + return m_spellCheckClient; + } + // Returns the page object associated with this view. This may be null when // the page is shutting down, but will be valid at all other times. WebCore::Page* page() const @@ -327,6 +338,7 @@ public: #if USE(ACCELERATED_COMPOSITING) bool allowsAcceleratedCompositing(); + bool pageHasRTLStyle() const; void setRootGraphicsLayer(WebCore::PlatformLayer*); void setRootLayerNeedsDisplay(); void scrollRootLayerRect(const WebCore::IntSize& scrollDelta, const WebCore::IntRect& clipRect); @@ -361,7 +373,7 @@ private: DragOver }; - WebViewImpl(WebViewClient*, WebDevToolsAgentClient*, WebAutoFillClient*); + WebViewImpl(WebViewClient*); ~WebViewImpl(); // Returns true if the event was actually processed. @@ -399,10 +411,12 @@ private: void doComposite(); void doPixelReadbackToCanvas(WebCanvas*, const WebCore::IntRect&); void reallocateRenderer(); + void updateLayerRendererViewport(); #endif WebViewClient* m_client; WebAutoFillClient* m_autoFillClient; + WebSpellCheckClient* m_spellCheckClient; ChromeClientImpl m_chromeClientImpl; ContextMenuClientImpl m_contextMenuClientImpl; @@ -467,22 +481,6 @@ private: // Represents whether or not this object should process incoming IME events. bool m_imeAcceptEvents; - // True while dispatching system drag and drop events to drag/drop targets - // within this WebView. - bool m_dragTargetDispatch; - - // Valid when m_dragTargetDispatch is true; the identity of the drag data - // copied from the WebDropData object sent from the browser process. - int m_dragIdentity; - - // Valid when m_dragTargetDispatch is true. Used to override the default - // browser drop effect with the effects "none" or "copy". - enum DragTargetDropEffect { - DropEffectDefault = -1, - DropEffectNone, - DropEffectCopy - } m_dropEffect; - // The available drag operations (copy, move link...) allowed by the source. WebDragOperation m_operationsAllowed; @@ -531,6 +529,8 @@ private: RefPtr<WebCore::LayerRendererChromium> m_layerRenderer; bool m_isAcceleratedCompositingActive; bool m_compositorCreationFailed; + // If true, the graphics context is being restored. + bool m_recreatingGraphicsContext; #endif static const WebInputEvent* m_currentInputEvent; diff --git a/Source/WebKit/chromium/src/WebWorkerBase.cpp b/Source/WebKit/chromium/src/WebWorkerBase.cpp index b16b6d4..0cd5f41 100644 --- a/Source/WebKit/chromium/src/WebWorkerBase.cpp +++ b/Source/WebKit/chromium/src/WebWorkerBase.cpp @@ -65,7 +65,7 @@ namespace { // This class is used to route the result of the WebWorkerBase::allowDatabase // call back to the worker context. -class AllowDatabaseMainThreadBridge : public ThreadSafeShared<AllowDatabaseMainThreadBridge> { +class AllowDatabaseMainThreadBridge : public ThreadSafeRefCounted<AllowDatabaseMainThreadBridge> { public: static PassRefPtr<AllowDatabaseMainThreadBridge> create(WebWorkerBase* worker, const WTF::String& mode, WebCommonWorkerClient* commonClient, WebFrame* frame, const WTF::String& name, const WTF::String& displayName, unsigned long estimatedSize) { @@ -170,7 +170,7 @@ void WebWorkerBase::initializeLoader(const WebURL& url) // loading requests from the worker context to the rest of WebKit and Chromium // infrastructure. ASSERT(!m_webView); - m_webView = WebView::create(0, 0, 0); + m_webView = WebView::create(0); m_webView->settings()->setOfflineWebApplicationCacheEnabled(WebRuntimeFeatures::isApplicationCacheEnabled()); m_webView->initializeMainFrame(this); @@ -237,7 +237,7 @@ bool WebWorkerBase::allowDatabase(WebFrame*, const WebString& name, const WebStr } #if ENABLE(FILE_SYSTEM) -void WebWorkerBase::openFileSystemForWorker(WebFileSystem::Type type, long long size, WebFileSystemCallbacks* callbacks, bool synchronous) +void WebWorkerBase::openFileSystemForWorker(WebFileSystem::Type type, long long size, bool create, WebFileSystemCallbacks* callbacks, bool synchronous) { WorkerRunLoop& runLoop = m_workerThread->runLoop(); WorkerScriptController* controller = WorkerScriptController::controllerForContext(); @@ -248,7 +248,7 @@ void WebWorkerBase::openFileSystemForWorker(WebFileSystem::Type type, long long mode.append(String::number(runLoop.createUniqueId())); RefPtr<WorkerFileSystemCallbacksBridge> bridge = WorkerFileSystemCallbacksBridge::create(this, workerContext, callbacks); - bridge->postOpenFileSystemToMainThread(commonClient(), type, size, mode); + bridge->postOpenFileSystemToMainThread(commonClient(), type, size, create, mode); if (synchronous) { if (runLoop.runInMode(workerContext, mode) == MessageQueueTerminated) diff --git a/Source/WebKit/chromium/src/WebWorkerBase.h b/Source/WebKit/chromium/src/WebWorkerBase.h index ec73505..8fb032e 100644 --- a/Source/WebKit/chromium/src/WebWorkerBase.h +++ b/Source/WebKit/chromium/src/WebWorkerBase.h @@ -92,7 +92,7 @@ public: virtual bool allowDatabase(WebFrame*, const WebString& name, const WebString& displayName, unsigned long estimatedSize); #if ENABLE(FILE_SYSTEM) - void openFileSystemForWorker(WebFileSystem::Type, long long size, WebFileSystemCallbacks*, bool synchronous); + void openFileSystemForWorker(WebFileSystem::Type, long long size, bool create, WebFileSystemCallbacks*, bool synchronous); #endif // Executes the given task on the main thread. diff --git a/Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.cpp b/Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.cpp index 6c31221..d05322f 100644 --- a/Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.cpp +++ b/Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.cpp @@ -57,6 +57,7 @@ template<> struct CrossThreadCopierBase<false, false, WebKit::WebFileInfo> { newInfo.modificationTime = info.modificationTime; newInfo.length = info.length; newInfo.type = info.type; + newInfo.platformPath.assign(info.platformPath.data(), info.platformPath.length()); return newInfo; } }; @@ -85,7 +86,7 @@ namespace WebKit { class MainThreadFileSystemCallbacks : public WebFileSystemCallbacks { public: // Callbacks are self-destructed and we always return leaked pointer here. - static MainThreadFileSystemCallbacks* createLeakedPtr(PassRefPtr<WorkerFileSystemCallbacksBridge> bridge, const String& mode) + static MainThreadFileSystemCallbacks* createLeakedPtr(WorkerFileSystemCallbacksBridge* bridge, const String& mode) { OwnPtr<MainThreadFileSystemCallbacks> callbacks = adoptPtr(new MainThreadFileSystemCallbacks(bridge, mode)); return callbacks.leakPtr(); @@ -126,15 +127,16 @@ public: } private: - MainThreadFileSystemCallbacks(PassRefPtr<WorkerFileSystemCallbacksBridge> bridge, const String& mode) + MainThreadFileSystemCallbacks(WorkerFileSystemCallbacksBridge* bridge, const String& mode) : m_bridge(bridge) , m_mode(mode) { - ASSERT(m_bridge.get()); + ASSERT(m_bridge); } friend class WorkerFileSystemCallbacksBridge; - RefPtr<WorkerFileSystemCallbacksBridge> m_bridge; + // The bridge pointer is kept by the bridge itself on the WorkerThread. + WorkerFileSystemCallbacksBridge* m_bridge; const String m_mode; }; @@ -150,9 +152,9 @@ void WorkerFileSystemCallbacksBridge::stop() } } -void WorkerFileSystemCallbacksBridge::postOpenFileSystemToMainThread(WebCommonWorkerClient* commonClient, WebFileSystem::Type type, long long size, const String& mode) +void WorkerFileSystemCallbacksBridge::postOpenFileSystemToMainThread(WebCommonWorkerClient* commonClient, WebFileSystem::Type type, long long size, bool create, const String& mode) { - dispatchTaskToMainThread(createCallbackTask(&openFileSystemOnMainThread, commonClient, type, size, this, mode)); + dispatchTaskToMainThread(createCallbackTask(&openFileSystemOnMainThread, commonClient, type, size, create, this, mode)); } void WorkerFileSystemCallbacksBridge::postMoveToMainThread(WebFileSystem* fileSystem, const String& sourcePath, const String& destinationPath, const String& mode) @@ -212,12 +214,12 @@ void WorkerFileSystemCallbacksBridge::postReadDirectoryToMainThread(WebFileSyste dispatchTaskToMainThread(createCallbackTask(&readDirectoryOnMainThread, fileSystem, path, this, mode)); } -void WorkerFileSystemCallbacksBridge::openFileSystemOnMainThread(ScriptExecutionContext*, WebCommonWorkerClient* commonClient, WebFileSystem::Type type, long long size, WorkerFileSystemCallbacksBridge* bridge, const String& mode) +void WorkerFileSystemCallbacksBridge::openFileSystemOnMainThread(ScriptExecutionContext*, WebCommonWorkerClient* commonClient, WebFileSystem::Type type, long long size, bool create, WorkerFileSystemCallbacksBridge* bridge, const String& mode) { if (!commonClient) bridge->didFailOnMainThread(WebFileErrorAbort, mode); else { - commonClient->openFileSystem(type, size, MainThreadFileSystemCallbacks::createLeakedPtr(bridge, mode)); + commonClient->openFileSystem(type, size, create, MainThreadFileSystemCallbacks::createLeakedPtr(bridge, mode)); } } @@ -365,6 +367,7 @@ void WorkerFileSystemCallbacksBridge::runTaskOnWorkerThread(WebCore::ScriptExecu ASSERT(bridge->m_workerContext->isContextThread()); taskToRun->performTask(scriptExecutionContext); bridge->m_callbacksOnWorkerThread = 0; + bridge->stopObserving(); } void WorkerFileSystemCallbacksBridge::dispatchTaskToMainThread(PassOwnPtr<WebCore::ScriptExecutionContext::Task> task) @@ -379,12 +382,9 @@ void WorkerFileSystemCallbacksBridge::dispatchTaskToMainThread(PassOwnPtr<WebCor void WorkerFileSystemCallbacksBridge::mayPostTaskToWorker(PassOwnPtr<ScriptExecutionContext::Task> task, const String& mode) { ASSERT(isMainThread()); - { // Let go of the mutex before possibly deleting this due to m_selfRef.clear(). - MutexLocker locker(m_mutex); - if (m_worker) - m_worker->postTaskForModeToWorkerContext(createCallbackTask(&runTaskOnWorkerThread, m_selfRef, task), mode); - } - m_selfRef.clear(); + MutexLocker locker(m_mutex); + if (m_worker) + m_worker->postTaskForModeToWorkerContext(createCallbackTask(&runTaskOnWorkerThread, m_selfRef.release(), task), mode); } } // namespace WebCore diff --git a/Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.h b/Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.h index fa57f38..9a869dc 100644 --- a/Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.h +++ b/Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.h @@ -66,7 +66,7 @@ struct WebFileSystemEntry; // --> Bridge::didXxxOnWorkerThread is called on WorkerThread // This calls the original callbacks (m_callbacksOnWorkerThread) and // releases a self-reference to the bridge. -class WorkerFileSystemCallbacksBridge : public ThreadSafeShared<WorkerFileSystemCallbacksBridge>, public WebCore::WorkerContext::Observer { +class WorkerFileSystemCallbacksBridge : public ThreadSafeRefCounted<WorkerFileSystemCallbacksBridge>, public WebCore::WorkerContext::Observer { public: ~WorkerFileSystemCallbacksBridge(); @@ -84,7 +84,7 @@ public: } // Methods that create an instance and post an initial request task to the main thread. They must be called on the worker thread. - void postOpenFileSystemToMainThread(WebCommonWorkerClient*, WebFileSystem::Type, long long size, const String& mode); + void postOpenFileSystemToMainThread(WebCommonWorkerClient*, WebFileSystem::Type, long long size, bool create, const String& mode); void postMoveToMainThread(WebFileSystem*, const String& srcPath, const String& destPath, const String& mode); void postCopyToMainThread(WebFileSystem*, const String& srcPath, const String& destPath, const String& mode); void postRemoveToMainThread(WebFileSystem*, const String& path, const String& mode); @@ -107,7 +107,7 @@ private: WorkerFileSystemCallbacksBridge(WebWorkerBase*, WebCore::ScriptExecutionContext*, WebFileSystemCallbacks*); // Methods that are to be called on the main thread. - static void openFileSystemOnMainThread(WebCore::ScriptExecutionContext*, WebCommonWorkerClient*, WebFileSystem::Type, long long size, WorkerFileSystemCallbacksBridge*, const String& mode); + static void openFileSystemOnMainThread(WebCore::ScriptExecutionContext*, WebCommonWorkerClient*, WebFileSystem::Type, long long size, bool create, WorkerFileSystemCallbacksBridge*, const String& mode); static void moveOnMainThread(WebCore::ScriptExecutionContext*, WebFileSystem*, const String& srcPath, const String& destPath, WorkerFileSystemCallbacksBridge*, const String& mode); static void copyOnMainThread(WebCore::ScriptExecutionContext*, WebFileSystem*, const String& srcPath, const String& destPath, WorkerFileSystemCallbacksBridge*, const String& mode); static void removeOnMainThread(WebCore::ScriptExecutionContext*, WebFileSystem*, const String& path, WorkerFileSystemCallbacksBridge*, const String& mode); @@ -138,7 +138,7 @@ private: void dispatchTaskToMainThread(PassOwnPtr<WebCore::ScriptExecutionContext::Task>); void mayPostTaskToWorker(PassOwnPtr<WebCore::ScriptExecutionContext::Task>, const String& mode); - // m_selfRef keeps a reference to itself until a task is created for the worker thread (at which point the task holds the reference). + // m_selfRef keeps a reference to itself while there's a pending callback on the main thread. RefPtr<WorkerFileSystemCallbacksBridge> m_selfRef; Mutex m_mutex; diff --git a/Source/WebKit/chromium/src/WorkerFileWriterCallbacksBridge.h b/Source/WebKit/chromium/src/WorkerFileWriterCallbacksBridge.h index 62e333c..7e9795e 100644 --- a/Source/WebKit/chromium/src/WorkerFileWriterCallbacksBridge.h +++ b/Source/WebKit/chromium/src/WorkerFileWriterCallbacksBridge.h @@ -38,7 +38,7 @@ #include "WorkerContext.h" #include <wtf/PassOwnPtr.h> #include <wtf/PassRefPtr.h> -#include <wtf/ThreadSafeShared.h> +#include <wtf/ThreadSafeRefCounted.h> namespace WebCore { class AsyncFileWriterClient; @@ -79,7 +79,7 @@ class WebWorkerBase; // should call postShutdownToMainThread before dropping its reference to the // bridge. This ensures that the WebFileWriter will be cleared on the main // thread and that no further calls to the WebFileWriterClient will be made. -class WorkerFileWriterCallbacksBridge : public ThreadSafeShared<WorkerFileWriterCallbacksBridge>, public WebCore::WorkerContext::Observer, public WebFileWriterClient { +class WorkerFileWriterCallbacksBridge : public ThreadSafeRefCounted<WorkerFileWriterCallbacksBridge>, public WebCore::WorkerContext::Observer, public WebFileWriterClient { public: ~WorkerFileWriterCallbacksBridge(); diff --git a/Source/WebKit/chromium/src/js/DevTools.js b/Source/WebKit/chromium/src/js/DevTools.js index 03c72d2..7a3eb8d 100644 --- a/Source/WebKit/chromium/src/js/DevTools.js +++ b/Source/WebKit/chromium/src/js/DevTools.js @@ -48,7 +48,6 @@ var context = {}; // Used by WebCore's inspector routines. Preferences.onlineDetectionEnabled = false; Preferences.nativeInstrumentationEnabled = true; Preferences.fileSystemEnabled = false; - Preferences.resourceExportEnabled = true; Preferences.showTimingTab = true; Preferences.showCookiesTab = true; })(); diff --git a/Source/WebKit/chromium/src/js/Images/segmentChromium.png b/Source/WebKit/chromium/src/js/Images/segmentChromium.png Binary files differindex f4248e1..a636820 100755 --- a/Source/WebKit/chromium/src/js/Images/segmentChromium.png +++ b/Source/WebKit/chromium/src/js/Images/segmentChromium.png diff --git a/Source/WebKit/chromium/src/js/Images/segmentHoverChromium.png b/Source/WebKit/chromium/src/js/Images/segmentHoverChromium.png Binary files differindex 0a743d9..0510773 100755 --- a/Source/WebKit/chromium/src/js/Images/segmentHoverChromium.png +++ b/Source/WebKit/chromium/src/js/Images/segmentHoverChromium.png diff --git a/Source/WebKit/chromium/src/js/Images/segmentHoverEndChromium.png b/Source/WebKit/chromium/src/js/Images/segmentHoverEndChromium.png Binary files differindex cf62072..91be9db 100755 --- a/Source/WebKit/chromium/src/js/Images/segmentHoverEndChromium.png +++ b/Source/WebKit/chromium/src/js/Images/segmentHoverEndChromium.png diff --git a/Source/WebKit/chromium/src/js/Images/segmentSelectedChromium.png b/Source/WebKit/chromium/src/js/Images/segmentSelectedChromium.png Binary files differindex a1f7251..9df447b 100755 --- a/Source/WebKit/chromium/src/js/Images/segmentSelectedChromium.png +++ b/Source/WebKit/chromium/src/js/Images/segmentSelectedChromium.png diff --git a/Source/WebKit/chromium/src/js/Images/segmentSelectedEndChromium.png b/Source/WebKit/chromium/src/js/Images/segmentSelectedEndChromium.png Binary files differindex 07641db..abe8db8 100755 --- a/Source/WebKit/chromium/src/js/Images/segmentSelectedEndChromium.png +++ b/Source/WebKit/chromium/src/js/Images/segmentSelectedEndChromium.png diff --git a/Source/WebKit/chromium/src/js/Images/statusbarBackgroundChromium.png b/Source/WebKit/chromium/src/js/Images/statusbarBackgroundChromium.png Binary files differindex 7a760c1..b5a780f 100755 --- a/Source/WebKit/chromium/src/js/Images/statusbarBackgroundChromium.png +++ b/Source/WebKit/chromium/src/js/Images/statusbarBackgroundChromium.png diff --git a/Source/WebKit/chromium/src/js/Images/statusbarBottomBackgroundChromium.png b/Source/WebKit/chromium/src/js/Images/statusbarBottomBackgroundChromium.png Binary files differindex e3bc944..531a3ef 100755 --- a/Source/WebKit/chromium/src/js/Images/statusbarBottomBackgroundChromium.png +++ b/Source/WebKit/chromium/src/js/Images/statusbarBottomBackgroundChromium.png diff --git a/Source/WebKit/chromium/src/js/Images/statusbarMenuButtonChromium.png b/Source/WebKit/chromium/src/js/Images/statusbarMenuButtonChromium.png Binary files differindex 5ff61d9..c8fbd45 100755 --- a/Source/WebKit/chromium/src/js/Images/statusbarMenuButtonChromium.png +++ b/Source/WebKit/chromium/src/js/Images/statusbarMenuButtonChromium.png diff --git a/Source/WebKit/chromium/src/js/Images/statusbarMenuButtonSelectedChromium.png b/Source/WebKit/chromium/src/js/Images/statusbarMenuButtonSelectedChromium.png Binary files differindex 3c0aeec..668070d 100755 --- a/Source/WebKit/chromium/src/js/Images/statusbarMenuButtonSelectedChromium.png +++ b/Source/WebKit/chromium/src/js/Images/statusbarMenuButtonSelectedChromium.png diff --git a/Source/WebKit/chromium/tests/PopupMenuTest.cpp b/Source/WebKit/chromium/tests/PopupMenuTest.cpp index acfcda5..8c53ffc 100644 --- a/Source/WebKit/chromium/tests/PopupMenuTest.cpp +++ b/Source/WebKit/chromium/tests/PopupMenuTest.cpp @@ -181,7 +181,7 @@ public: protected: virtual void SetUp() { - m_webView = static_cast<WebViewImpl*>(WebView::create(&m_webviewClient, 0, 0)); + m_webView = static_cast<WebViewImpl*>(WebView::create(&m_webviewClient)); m_webView->initializeMainFrame(&m_webFrameClient); m_popupMenu = adoptRef(new PopupMenuChromium(&m_popupMenuClient)); } diff --git a/Source/WebKit/chromium/tests/TilingDataTest.cpp b/Source/WebKit/chromium/tests/TilingDataTest.cpp index ec18f01..a41f7fe 100755 --- a/Source/WebKit/chromium/tests/TilingDataTest.cpp +++ b/Source/WebKit/chromium/tests/TilingDataTest.cpp @@ -331,4 +331,56 @@ TEST(TilingDataTest, tileSizeY_and_tilePositionY) EXPECT_EQ(4, TilingData(3, 100, 6, true).tilePositionY(3)); } +TEST(TilingDataTest, setTotalSize) +{ + TilingData data(5, 5, 5, false); + EXPECT_EQ(5, data.totalSizeX()); + EXPECT_EQ(5, data.totalSizeY()); + EXPECT_EQ(1, data.numTilesX()); + EXPECT_EQ(5, data.tileSizeX(0)); + EXPECT_EQ(1, data.numTilesY()); + EXPECT_EQ(5, data.tileSizeY(0)); + + data.setTotalSize(6, 5); + EXPECT_EQ(6, data.totalSizeX()); + EXPECT_EQ(5, data.totalSizeY()); + EXPECT_EQ(2, data.numTilesX()); + EXPECT_EQ(5, data.tileSizeX(0)); + EXPECT_EQ(1, data.tileSizeX(1)); + EXPECT_EQ(1, data.numTilesY()); + EXPECT_EQ(5, data.tileSizeY(0)); + + data.setTotalSize(5, 12); + EXPECT_EQ(5, data.totalSizeX()); + EXPECT_EQ(12, data.totalSizeY()); + EXPECT_EQ(1, data.numTilesX()); + EXPECT_EQ(5, data.tileSizeX(0)); + EXPECT_EQ(3, data.numTilesY()); + EXPECT_EQ(5, data.tileSizeY(0)); + EXPECT_EQ(5, data.tileSizeY(1)); + EXPECT_EQ(2, data.tileSizeY(2)); +} + +TEST(TilingDataTest, setMaxTextureSize) +{ + TilingData data(8, 16, 32, false); + EXPECT_EQ(2, data.numTilesX()); + EXPECT_EQ(4, data.numTilesY()); + + data.setMaxTextureSize(32); + EXPECT_EQ(32, data.maxTextureSize()); + EXPECT_EQ(1, data.numTilesX()); + EXPECT_EQ(1, data.numTilesY()); + + data.setMaxTextureSize(2); + EXPECT_EQ(2, data.maxTextureSize()); + EXPECT_EQ(8, data.numTilesX()); + EXPECT_EQ(16, data.numTilesY()); + + data.setMaxTextureSize(5); + EXPECT_EQ(5, data.maxTextureSize()); + EXPECT_EQ(4, data.numTilesX()); + EXPECT_EQ(7, data.numTilesY()); +} + } // namespace diff --git a/Source/WebKit/chromium/tests/WebFrameTest.cpp b/Source/WebKit/chromium/tests/WebFrameTest.cpp index 7342721..891fa83 100644 --- a/Source/WebKit/chromium/tests/WebFrameTest.cpp +++ b/Source/WebKit/chromium/tests/WebFrameTest.cpp @@ -28,6 +28,8 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include "config.h" + #include <googleurl/src/gurl.h> #include <gtest/gtest.h> #include <webkit/support/webkit_support.h> @@ -85,7 +87,7 @@ TEST_F(WebFrameTest, ContentText) // Create and initialize the WebView. TestWebFrameClient webFrameClient; - WebView* webView = WebView::create(0, 0, 0); + WebView* webView = WebView::create(0); webView->initializeMainFrame(&webFrameClient); // Load the main frame URL. diff --git a/Source/WebKit/chromium/tests/WebPageSerializerTest.cpp b/Source/WebKit/chromium/tests/WebPageSerializerTest.cpp new file mode 100644 index 0000000..1416882 --- /dev/null +++ b/Source/WebKit/chromium/tests/WebPageSerializerTest.cpp @@ -0,0 +1,193 @@ +/* + * Copyright (C) 2011 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 "WebPageSerializer.h" + +#include "WebFrame.h" +#include "WebFrameClient.h" +#include "WebString.h" +#include "WebURL.h" +#include "WebURLRequest.h" +#include "WebURLResponse.h" +#include "WebView.h" + +#include <googleurl/src/gurl.h> +#include <gtest/gtest.h> +#include <webkit/support/webkit_support.h> + +using namespace WebKit; + +namespace { + +class TestWebFrameClient : public WebFrameClient { +}; + +class WebPageSerializerTest : public testing::Test { +public: + WebPageSerializerTest() : m_webView(0), m_supportedSchemes(3U) + { + m_supportedSchemes[0] = "http"; + m_supportedSchemes[1] = "https"; + m_supportedSchemes[2] = "file"; + } + +protected: + virtual void SetUp() + { + // Create and initialize the WebView. + m_webView = WebView::create(0); + m_webView->initializeMainFrame(&m_webFrameClient); + } + + virtual void TearDown() + { + webkit_support::UnregisterAllMockedURLs(); + m_webView->close(); + } + + void registerMockedURLLoad(const WebURL& url, const WebString& fileName) + { + WebURLResponse response; + response.initialize(); + response.setMIMEType("text/html"); + std::string filePath = webkit_support::GetWebKitRootDir().utf8(); + filePath.append("/Source/WebKit/chromium/tests/data/pageserialization/"); + filePath.append(fileName.utf8()); + webkit_support::RegisterMockedURL(url, response, WebString::fromUTF8(filePath)); + } + + void loadURLInTopFrame(const GURL& url) + { + WebURLRequest urlRequest; + urlRequest.initialize(); + urlRequest.setURL(WebURL(url)); + m_webView->mainFrame()->loadRequest(urlRequest); + // Make sure any pending request get served. + webkit_support::ServeAsynchronousMockedRequests(); + } + + static bool webVectorContains(const WebVector<WebURL>& vector, char* url) + { + return vector.contains(WebURL(GURL(url))); + } + + // Useful for debugging. + static void printWebURLs(const WebVector<WebURL>& urls) + { + for (size_t i = 0; i < urls.size(); i++) + printf("%s\n", urls[i].spec().data()); + } + + WebView* m_webView; + WebVector<WebCString> m_supportedSchemes; + +private: + TestWebFrameClient m_webFrameClient; +}; + +TEST_F(WebPageSerializerTest, HTMLNodes) +{ + // Register the mocked frame and load it. + WebURL topFrameURL = GURL("http://www.test.com"); + registerMockedURLLoad(topFrameURL, WebString::fromUTF8("simple_page.html")); + loadURLInTopFrame(topFrameURL); + + // Retrieve all resources. + WebVector<WebURL> frames; + WebVector<WebURL> resources; + ASSERT_TRUE(WebPageSerializer::retrieveAllResources( + m_webView, m_supportedSchemes, &resources, &frames)); + + // Tests that all resources from the frame have been retrieved. + EXPECT_EQ(1, frames.size()); // There should be no duplicates. + EXPECT_TRUE(webVectorContains(frames, "http://www.test.com")); + + EXPECT_EQ(14, resources.size()); // There should be no duplicates. + EXPECT_TRUE(webVectorContains(resources, "http://www.example.com/beautifull.css")); + EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/awesome.js")); + EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/bodyBackground.jpg")); + EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/awesome.png")); + EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/imageButton.png")); + EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/tableBackground.png")); + EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/trBackground.png")); + EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/tdBackground.png")); + EXPECT_TRUE(webVectorContains(resources, "http://www.evene.fr/citations/auteur.php?ida=46")); + EXPECT_TRUE(webVectorContains(resources, "http://www.brainyquote.com/quotes/authors/c/charles_darwin.html")); + EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/why_deleted.html")); + EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/why_inserted.html")); + EXPECT_TRUE(webVectorContains(resources, "https://www.secure.com/https.gif")); + EXPECT_TRUE(webVectorContains(resources, "file://c/my_folder/file.gif")); +} + +TEST_F(WebPageSerializerTest, MultipleFrames) +{ + // Register the mocked frames. + WebURL topFrameURL = GURL("http://www.test.com"); + registerMockedURLLoad(topFrameURL, WebString::fromUTF8("top_frame.html")); + registerMockedURLLoad(GURL("http://www.test.com/simple_iframe.html"), + WebString::fromUTF8("simple_iframe.html")); + registerMockedURLLoad(GURL("http://www.test.com/object_iframe.html"), + WebString::fromUTF8("object_iframe.html")); + registerMockedURLLoad(GURL("http://www.test.com/embed_iframe.html"), + WebString::fromUTF8("embed_iframe.html")); + // If we don't register a mocked resource for awesome.png, it causes the + // document loader of the iframe that has it as its src to assert on close, + // not sure why. + registerMockedURLLoad(GURL("http://www.test.com/awesome.png"), + WebString::fromUTF8("awesome.png")); + + loadURLInTopFrame(topFrameURL); + + // Retrieve all resources. + WebVector<WebURL> frames; + WebVector<WebURL> resources; + ASSERT_TRUE(WebPageSerializer::retrieveAllResources( + m_webView, m_supportedSchemes, &resources, &frames)); + + // Tests that all resources from the frame have been retrieved. + EXPECT_EQ(4, frames.size()); // There should be no duplicates. + EXPECT_TRUE(webVectorContains(frames, "http://www.test.com")); + EXPECT_TRUE(webVectorContains(frames, "http://www.test.com/simple_iframe.html")); + EXPECT_TRUE(webVectorContains(frames, "http://www.test.com/object_iframe.html")); + EXPECT_TRUE(webVectorContains(frames, "http://www.test.com/embed_iframe.html")); + + EXPECT_EQ(5, resources.size()); // There should be no duplicates. + EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/awesome.png")); + EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/innerFrame.png")); + EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/flash.swf")); + // FIXME: for some reason the following resources is missing on one of the bot + // causing the test to fail. Probably a plugin issue. + // EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/music.mid")); + EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/object.png")); + EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/embed.png")); +} + +} diff --git a/Source/WebKit/chromium/tests/data/pageserialization/awesome.png b/Source/WebKit/chromium/tests/data/pageserialization/awesome.png new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/Source/WebKit/chromium/tests/data/pageserialization/awesome.png @@ -0,0 +1 @@ + diff --git a/Source/WebKit/chromium/tests/data/pageserialization/embed_iframe.html b/Source/WebKit/chromium/tests/data/pageserialization/embed_iframe.html new file mode 100644 index 0000000..174a8a9 --- /dev/null +++ b/Source/WebKit/chromium/tests/data/pageserialization/embed_iframe.html @@ -0,0 +1,5 @@ +<html> + +<img src="embed.png"/> + +</html> diff --git a/Source/WebKit/chromium/tests/data/pageserialization/object_iframe.html b/Source/WebKit/chromium/tests/data/pageserialization/object_iframe.html new file mode 100644 index 0000000..662bc5f --- /dev/null +++ b/Source/WebKit/chromium/tests/data/pageserialization/object_iframe.html @@ -0,0 +1,5 @@ +<html> + +<img src="object.png"/> + +</html> diff --git a/Source/WebKit/chromium/tests/data/pageserialization/simple_iframe.html b/Source/WebKit/chromium/tests/data/pageserialization/simple_iframe.html new file mode 100644 index 0000000..65dca17 --- /dev/null +++ b/Source/WebKit/chromium/tests/data/pageserialization/simple_iframe.html @@ -0,0 +1,14 @@ +<html> +<!-- + This page is used to test that WebPageSerializer::retrieveAllResources retrieves + correctly the expected resources when dealing with multiple frames. +--> + +<body> + +<img src="awesome.png"/> +<img src="innerFrame.png"/> + +</body> + +</html> diff --git a/Source/WebKit/chromium/tests/data/pageserialization/simple_page.html b/Source/WebKit/chromium/tests/data/pageserialization/simple_page.html new file mode 100644 index 0000000..66d09e1 --- /dev/null +++ b/Source/WebKit/chromium/tests/data/pageserialization/simple_page.html @@ -0,0 +1,50 @@ +<html> +<!-- + This page is used to test that WebPageSerializer::retrieveAllResources retrieves + correctly the expected resources from various HTML nodes. +--> + +<head> +<!-- Style sheet links should be retrieved --> +<link rel="stylesheet" type="text/css" href="http://www.example.com/beautifull.css"/> +<!-- Other link should NOT be retrieved --> +<link rel="copyright" type="text/plain" href="http://www.example.com/copyright"/> +<!-- Scripts should be retrieved --> +<script src="awesome.js"></script> +</head> + +<!-- Images are always retrieved --> +<body background="bodyBackground.jpg"> + +<!-- Twice to make sure we only report each resource once --> +<img src="awesome.png"/> +<img src="awesome.png"/> + +<form> + <input type="image" src="imageButton.png"/> +</form> + +<table background="tableBackground.png"> + <tr background="trBackground.png"> + <td background="tdBackground.png"></td> + </tr> + <tr background="trBackground.png"> + <td background="tdBackground.png"></td> + </tr> +</table> + +<!-- Some more obscure tags --> +<blockquote cite="http://www.evene.fr/citations/auteur.php?ida=46"></blockquote> +<q CITE="http://www.brainyquote.com/quotes/authors/c/charles_darwin.html"></q> +<p>My favorite color is <del cite="why_deleted.html">blue</del> <ins>red</ins>!</p> +<p>My favorite color is <del>blue</del> <ins cite="why_inserted.html">red</ins>!</p> + +<!-- Make sure we only retrieve URLs with the right schemes --> +<img src="https://www.secure.com/https.gif"/> <!-- HTTPS is OK --> +<img src="file://c/my_folder/file.gif"/> <!-- file is OK --> +<img src="ftp://ftp.com/ftp.gif"/> <!-- FTP is not OK --> +<img src="unknown://unkown.com/unknown.gif"/> <!-- Unknown schemes are not OK --> + +</body> + +</html> diff --git a/Source/WebKit/chromium/tests/data/pageserialization/top_frame.html b/Source/WebKit/chromium/tests/data/pageserialization/top_frame.html new file mode 100755 index 0000000..edc8ab2 --- /dev/null +++ b/Source/WebKit/chromium/tests/data/pageserialization/top_frame.html @@ -0,0 +1,28 @@ +<html> +<!-- + This page is used to test that WebPageSerializer::retrieveAllResources retrieves + correctly the expected resources when dealing with multiple frames. +--> + +<body> + +<!-- Resources used by a frame and a tag should be only reported once --> +<iframe src="awesome.png"></iframe> +<img src="awesome.png"/> + +<iframe src="simple_iframe.html"></iframe> +<iframe src="simple_iframe.html"></iframe> + +<!-- Object tags can be used to create iframes --> + +<object data="object_iframe.html"></object> +<object data="flash.swf"></object> + +<!-- Embed tags can be used to create iframes as well --> +<embed src="embed_iframe.html"></object> +<!-- +<embed src="music.mid"></embed> +--> +</body> + +</html> diff --git a/Source/WebKit/efl/ChangeLog b/Source/WebKit/efl/ChangeLog index a781c80..35da09c 100644 --- a/Source/WebKit/efl/ChangeLog +++ b/Source/WebKit/efl/ChangeLog @@ -1,3 +1,263 @@ +2011-03-29 Gyuyoung Kim <gyuyoung.kim@samsung.com> + + Reviewed by Antonio Gomes. + + [EFL] Remove unnecessary ewk_view_viewport_attributes_set() invocation + https://bugs.webkit.org/show_bug.cgi?id=57222 + + WebCore sends viewport signal whenever viewport is changed by Page::updateViewportArguments(). + Thus, we don't need to call ewk_view_viewport_attributes_set() with dummy viewport data + anymore. + + * WebCoreSupport/FrameLoaderClientEfl.cpp: + (WebCore::FrameLoaderClientEfl::dispatchDidCommitLoad): + +2011-03-27 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Andreas Kling. + + Fix agentOS() in FrameLoaderClientEfl + https://bugs.webkit.org/show_bug.cgi?id=57177 + + Replace old PLATFORM macro with OS and CPU. + + * WebCoreSupport/FrameLoaderClientEfl.cpp: + (WebCore::agentOS): + +2011-03-27 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Andreas Kling. + + [EFL] Use an appropriate user agent string + https://bugs.webkit.org/show_bug.cgi?id=57176 + + * WebCoreSupport/FrameLoaderClientEfl.cpp: + (WebCore::composeUserAgent): + +2011-03-25 Andy Estes <aestes@apple.com> + + Reviewed by Adele Peterson. + + REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js + https://bugs.webkit.org/show_bug.cgi?id=49016 + + Update objectContentType() implementation to handle the + shouldPreferPlugInsForImages flag. + + * WebCoreSupport/FrameLoaderClientEfl.cpp: + (WebCore::FrameLoaderClientEfl::objectContentType): + * WebCoreSupport/FrameLoaderClientEfl.h: + +2011-03-24 Gyuyoung Kim <gyuyoung.kim@samsung.com> + + Reviewed by Antonio Gomes. + + [EFL] Add sound / mute button to MediaControl UI + https://bugs.webkit.org/show_bug.cgi?id=56726 + + Add sound / mute button to MediaControl UI. + + * DefaultTheme/default.edc: + * DefaultTheme/widget/mediacontrol/mutebutton/mute_button.edc: Added. + * DefaultTheme/widget/mediacontrol/mutebutton/mutebutton.png: Added. + * DefaultTheme/widget/mediacontrol/mutebutton/unmutebutton.png: Added. + +2011-03-24 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r81916 and r81917. + http://trac.webkit.org/changeset/81916 + http://trac.webkit.org/changeset/81917 + https://bugs.webkit.org/show_bug.cgi?id=57071 + + broke a test on platforms that do not have QuickTime installed + (Requested by estes on #webkit). + + * WebCoreSupport/FrameLoaderClientEfl.cpp: + (WebCore::FrameLoaderClientEfl::objectContentType): + * WebCoreSupport/FrameLoaderClientEfl.h: + +2011-03-24 Andy Estes <aestes@apple.com> + + Reviewed by Darin Adler. + + REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js + https://bugs.webkit.org/show_bug.cgi?id=49016 + + Update objectContentType() implementation to handle the + shouldPreferPlugInsForImages flag. + + * WebCoreSupport/FrameLoaderClientEfl.cpp: + (WebCore::FrameLoaderClientEfl::objectContentType): + * WebCoreSupport/FrameLoaderClientEfl.h: + +2011-03-23 Brady Eidson <beidson@apple.com> + + Reviewed by Sam Weinig. + + Change IconDatabase opening to allow for arbitrary filenames + https://bugs.webkit.org/show_bug.cgi?id=56977 + + * ewk/ewk_settings.cpp: + (ewk_settings_icon_database_path_set): + +2011-03-23 Gyuyoung Kim <gyuyoung.kim@samsung.com> + + Reviewed by Antonio Gomes. + + [EFL] Add play / pause button to media control + https://bugs.webkit.org/show_bug.cgi?id=55463 + + Add play|pause button to media control. + + * DefaultTheme/default.edc: + * DefaultTheme/widget/mediacontrol/playpausebutton/pausebutton.png: Added. + * DefaultTheme/widget/mediacontrol/playpausebutton/playbutton.png: Added. + * DefaultTheme/widget/mediacontrol/playpausebutton/playpause_button.edc: Added. + +2011-03-22 Gyuyoung Kim <gyuyoung.kim@samsung.com> + + Reviewed by Antonio Gomes. + + [EFL] Change return values with better one in ewk_setting's functions + https://bugs.webkit.org/show_bug.cgi?id=56819 + + In ewk_settings_cache_directory_path_set_xxx, they return false value + when soup is disabled. It is better to use EINA_SAFETY_ON_TRUE_RETURN_XXX. + + * ewk/ewk_settings.cpp: + (ewk_settings_proxy_uri_get): + (ewk_settings_cache_directory_path_set): + (ewk_settings_cache_directory_path_get): + +2011-03-22 Grzegorz Czajkowski <g.czajkowski@samsung.com> + + Reviewed by Kent Tamura. + + Add void to function without parameters + https://bugs.webkit.org/show_bug.cgi?id=56821 + + * ewk/ewk_cookies.cpp: + (ewk_cookies_clear): + (ewk_cookies_policy_get): + * ewk/ewk_cookies.h: + * ewk/ewk_private.h: + * ewk/ewk_settings.cpp: + (ewk_settings_web_database_default_quota_get): + (ewk_settings_web_database_path_get): + (ewk_settings_proxy_uri_get): + (ewk_settings_default_user_agent_get): + * ewk/ewk_settings.h: + * ewk/ewk_view.cpp: + (ewk_view_dpi_get): + +2011-03-17 Brady Eidson <beidson@apple.com> + + Reviewed by Sam Weinig. + + https://bugs.webkit.org/show_bug.cgi?id=56425 + More groundwork for WebKit2 IconDatabase + + Update already-used function names: + * ewk/ewk_history.cpp: + (ewk_history_item_icon_surface_get): + (ewk_history_item_icon_object_add): + * ewk/ewk_settings.cpp: + (ewk_settings_icon_database_icon_surface_get): + (ewk_settings_icon_database_icon_object_add): + +2011-03-16 Joseph Pecoraro <joepeck@webkit.org> + + Reviewed by Kenneth Rohde Christiansen. + + Viewport no longer allows an auto value for "user-scalable" + https://bugs.webkit.org/show_bug.cgi?id=55416 + + Make the default value for userScalable be true. + + * ewk/ewk_view.cpp: + (ewk_view_viewport_attributes_get): + +2011-03-14 Brady Eidson <beidson@apple.com> + + Try to fix the EFL build-bustage that their EWS bot did not see, but their core-builder did. (sigh) + + * ewk/ewk_history.cpp: + (ewk_history_item_icon_surface_get): + (ewk_history_item_icon_object_add): + +2011-03-14 Brady Eidson <beidson@apple.com> + + Reviewed by Anders Carlsson. + + https://bugs.webkit.org/show_bug.cgi?id=56320 + Remove HistoryItem::icon() and the WebCore dependency on "IconDatabaseBase::defaultIcon()" + + * ewk/ewk_history.cpp: + (ewk_history_item_icon_surface_get): Use IconDatabase directly. + +2011-03-14 Ryuan Choi <ryuan.choi@samsung.com> + + Reviewed by Kenneth Rohde Christiansen. + + [EFL] Move cache_directory api + https://bugs.webkit.org/show_bug.cgi?id=52139 + + Move cache directory related apis from ewk_view to ewk_settings because + those are not related to ewk_view. + + * ewk/ewk_main.cpp: + (_ewk_init_body): + * ewk/ewk_settings.cpp: + (ewk_settings_cache_directory_path_set): + (ewk_settings_cache_directory_path_get): + * ewk/ewk_settings.h: + * ewk/ewk_view.cpp: + (_ewk_view_priv_new): + (_ewk_view_priv_del): + * ewk/ewk_view.h: + +2011-03-12 Ryuan Choi <ryuan.choi@samsung.com> + + Unreviewed build fix. + + [EFL] Fix build break because of several reason. + https://bugs.webkit.org/show_bug.cgi?id=56244 + + * ewk/ewk_settings.cpp: + (ewk_settings_icon_database_path_set): + +2011-03-10 Ryuan Choi <ryuan.choi@samsung.com> + + Reviewed by Antonio Gomes. + + [EFL] Limit touch events when only page required touch events. + https://bugs.webkit.org/show_bug.cgi?id=54857 + + Block touch events when ChromeClient::needTouchEvents got false. + + * WebCoreSupport/ChromeClientEfl.cpp: + (WebCore::ChromeClientEfl::needTouchEvents): + * WebCoreSupport/ChromeClientEfl.h: + * ewk/ewk_frame.cpp: + (ewk_frame_feed_touch_event): + * ewk/ewk_private.h: + * ewk/ewk_view.cpp: + (ewk_view_need_touch_events_set): + (ewk_view_need_touch_events_get): + +2011-03-08 Grzegorz Czajkowski <g.czajkowski@samsung.com> + + Reviewed by Kent Tamura. + + [EFL] Doxygen documentation for ewk_window_features and ewk_context_menu + https://bugs.webkit.org/show_bug.cgi?id=55026 + + * ewk/ewk_contextmenu.cpp: + (ewk_context_menu_item_select): returns EINA_FALSE when CONTEXT_MENU is disabled + * ewk/ewk_contextmenu.h: + * ewk/ewk_window_features.cpp: + * ewk/ewk_window_features.h: + 2011-03-07 Sam Weinig <sam@webkit.org> Reviewed by Anders Carlsson. diff --git a/Source/WebKit/efl/DefaultTheme/default.edc b/Source/WebKit/efl/DefaultTheme/default.edc index 7d750f4..f77bd86 100644 --- a/Source/WebKit/efl/DefaultTheme/default.edc +++ b/Source/WebKit/efl/DefaultTheme/default.edc @@ -76,4 +76,6 @@ collections { #include "widget/search/cancel/search_cancel.edc" #include "widget/search/decoration/search_decoration.edc" #include "widget/slider/slider.edc" +#include "widget/mediacontrol/playpausebutton/playpause_button.edc" +#include "widget/mediacontrol/mutebutton/mute_button.edc" } diff --git a/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/mute_button.edc b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/mute_button.edc new file mode 100644 index 0000000..3219f2d --- /dev/null +++ b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/mute_button.edc @@ -0,0 +1,60 @@ +/* + Copyright (C) 2008,2009 INdT - Instituto Nokia de Tecnologia + Copyright (C) 2009,2010 ProFUSION embedded systems + Copyright (C) 2011 Samsung Electronics + + This file 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 file 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. +*/ + + group { + name: "webkit/widget/mediacontrol/mute_button"; + + images { + image: "widget/mediacontrol/mutebutton/mutebutton.png" COMP; + image: "widget/mediacontrol/mutebutton/unmutebutton.png" COMP; + } + + parts { + part { + name: "mute_button"; + type: IMAGE; + description { state: "default" 0.0; + min: 25 25; + } + description { state: "mute" 0.0; + inherit: "default" 0.0; + image.normal: "widget/mediacontrol/mutebutton/mutebutton.png"; + } + description { state: "sound" 0.0; + inherit: "default" 0.0; + image.normal: "widget/mediacontrol/mutebutton/unmutebutton.png"; + } + } + } + + programs { + program { + signal: "mute"; + action: STATE_SET "mute" 0.0; + target: "mute_button"; + } + program { + signal: "sound"; + action: STATE_SET "sound" 0.0; + target: "mute_button"; + } + } + } diff --git a/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/mutebutton.png b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/mutebutton.png Binary files differnew file mode 100644 index 0000000..575acd6 --- /dev/null +++ b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/mutebutton.png diff --git a/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/unmutebutton.png b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/unmutebutton.png Binary files differnew file mode 100644 index 0000000..4282017 --- /dev/null +++ b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/unmutebutton.png diff --git a/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/pausebutton.png b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/pausebutton.png Binary files differnew file mode 100755 index 0000000..b40cfea --- /dev/null +++ b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/pausebutton.png diff --git a/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playbutton.png b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playbutton.png Binary files differnew file mode 100755 index 0000000..b4bc661 --- /dev/null +++ b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playbutton.png diff --git a/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playpause_button.edc b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playpause_button.edc new file mode 100644 index 0000000..86b7bca --- /dev/null +++ b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playpause_button.edc @@ -0,0 +1,60 @@ +/* + Copyright (C) 2008,2009 INdT - Instituto Nokia de Tecnologia + Copyright (C) 2009,2010 ProFUSION embedded systems + Copyright (C) 2011 Samsung Electronics + + This file 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 file 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. +*/ + + group { + name: "webkit/widget/mediacontrol/playpause_button"; + + images { + image: "widget/mediacontrol/playpausebutton/playbutton.png" COMP; + image: "widget/mediacontrol/playpausebutton/pausebutton.png" COMP; + } + + parts { + part { + name: "playpause_button"; + type: IMAGE; + description { state: "default" 0.0; + min: 25 25; + } + description { state: "play" 0.0; + inherit: "default" 0.0; + image.normal: "widget/mediacontrol/playpausebutton/playbutton.png"; + } + description { state: "pause" 0.0; + inherit: "default" 0.0; + image.normal: "widget/mediacontrol/playpausebutton/pausebutton.png"; + } + } + } + + programs { + program { + signal: "play"; + action: STATE_SET "play" 0.0; + target: "playpause_button"; + } + program { + signal: "pause"; + action: STATE_SET "pause" 0.0; + target: "playpause_button"; + } + } + } diff --git a/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp b/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp index a1851c5..ce2ac1b 100644 --- a/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp +++ b/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp @@ -396,6 +396,13 @@ void ChromeClientEfl::reachedApplicationCacheOriginQuota(SecurityOrigin*) } #endif +#if ENABLE(TOUCH_EVENTS) +void ChromeClientEfl::needTouchEvents(bool needed) +{ + ewk_view_need_touch_events_set(m_view, needed); +} +#endif + #if ENABLE(DATABASE) void ChromeClientEfl::exceededDatabaseQuota(Frame* frame, const String& databaseName) { diff --git a/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h b/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h index 09b0f4f..3d276e5 100644 --- a/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h +++ b/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h @@ -121,7 +121,7 @@ public: #endif #if ENABLE(TOUCH_EVENTS) - virtual void needTouchEvents(bool) { } + virtual void needTouchEvents(bool); #endif virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>); diff --git a/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp b/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp index 3ea8c2a..fa34ac9 100644 --- a/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp +++ b/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp @@ -1,6 +1,6 @@ /* * Copyright (C) 2006 Zack Rusin <zack@kde.org> - * Copyright (C) 2006 Apple Computer, Inc. All rights reserved. + * Copyright (C) 2006, 2011 Apple Inc. All rights reserved. * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) * Copyright (C) 2008 Collabora Ltd. All rights reserved. * Copyright (C) 2008 Holger Hans Peter Freyther @@ -50,13 +50,15 @@ #include "ProgressTracker.h" #include "RenderPart.h" #include "ResourceRequest.h" -#include "ViewportArguments.h" +#include "WebKitVersion.h" #include "ewk_private.h" #include <wtf/text/CString.h> #include <wtf/text/StringConcatenate.h> -#if PLATFORM(UNIX) +#if OS(UNIX) #include <sys/utsname.h> +#elif OS(WINDOWS) +#include "SystemInfo.h" #endif #include <Ecore_Evas.h> @@ -75,29 +77,22 @@ FrameLoaderClientEfl::FrameLoaderClientEfl(Evas_Object *view) { } -static String agentPlatform() -{ - notImplemented(); - return "Unknown"; -} - static String agentOS() { -#if PLATFORM(DARWIN) -#if PLATFORM(X86) +#if OS(DARWIN) +#if CPU(X86) return "Intel Mac OS X"; #else return "PPC Mac OS X"; #endif -#elif PLATFORM(UNIX) +#elif OS(UNIX) struct utsname name; if (uname(&name) != -1) return makeString(name.sysname, ' ', name.machine); return "Unknown"; -#elif PLATFORM(WIN_OS) - // FIXME: Compute the Windows version - return "Windows"; +#elif OS(WINDOWS) + return windowsVersionForUAString(); #else notImplemented(); return "Unknown"; @@ -106,35 +101,8 @@ static String agentOS() static String composeUserAgent() { - // This is a liberal interpretation of http://www.mozilla.org/build/revised-user-agent-strings.html - // See also http://developer.apple.com/internet/safari/faq.html#anchor2 - - String ua; - - // Product - ua += "Mozilla/5.0"; - - // Comment - ua += " ("; - ua += agentPlatform(); // Platform - ua += "; "; - ua += agentOS(); // OS-or-CPU - ua += ") "; - - // WebKit Product - // FIXME: The WebKit version is hardcoded - static const String webKitVersion = "525.1+"; - ua += "AppleWebKit/" + webKitVersion; - ua += " (KHTML, like Gecko, "; - // We mention Safari since many broken sites check for it (OmniWeb does this too) - // We re-use the WebKit version, though it doesn't seem to matter much in practice - ua += "Safari/" + webKitVersion; - ua += ") "; - - // Vendor Product - // ua += g_get_prgname(); - - return ua; + String webKitVersion = String::format("%d.%d", WEBKIT_MAJOR_VERSION, WEBKIT_MINOR_VERSION); + return makeString("Mozilla/5.0 (", agentOS(), ") AppleWebKit/", webKitVersion, " (KHTML, like Gecko) Safari/", webKitVersion); } void FrameLoaderClientEfl::setCustomUserAgent(const String &agent) @@ -399,8 +367,12 @@ PassRefPtr<Widget> FrameLoaderClientEfl::createJavaAppletWidget(const IntSize&, return 0; } -ObjectContentType FrameLoaderClientEfl::objectContentType(const KURL& url, const String& mimeType) +ObjectContentType FrameLoaderClientEfl::objectContentType(const KURL& url, const String& mimeType, bool shouldPreferPlugInsForImages) { + // FIXME: once plugin support is enabled, this method needs to correctly handle the 'shouldPreferPlugInsForImages' flag. See + // WebCore::FrameLoader::defaultObjectContentType() for an example. + UNUSED_PARAM(shouldPreferPlugInsForImages); + if (url.isEmpty() && mimeType.isEmpty()) return ObjectContentNone; @@ -626,9 +598,6 @@ void FrameLoaderClientEfl::dispatchDidCommitLoad() return; ewk_view_title_set(m_view, 0); ewk_view_uri_changed(m_view); - - ViewportArguments arguments; - ewk_view_viewport_attributes_set(m_view, arguments); } void FrameLoaderClientEfl::dispatchDidFinishDocumentLoad() diff --git a/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.h b/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.h index 424c66b..5ea4e8c 100644 --- a/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.h +++ b/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.h @@ -1,6 +1,6 @@ /* * Copyright (C) 2006 Zack Rusin <zack@kde.org> - * Copyright (C) 2006 Apple Computer, Inc. All rights reserved. + * Copyright (C) 2006, 2011 Apple Inc. All rights reserved. * Copyright (C) 2008 Collabora Ltd. All rights reserved. * Copyright (C) 2008 INdT - Instituto Nokia de Tecnologia * Copyright (C) 2009-2010 ProFUSION embedded systems @@ -149,7 +149,7 @@ class FrameLoaderClientEfl : public FrameLoaderClient { virtual void registerForIconNotification(bool); - virtual ObjectContentType objectContentType(const KURL& url, const String& mimeType); + virtual ObjectContentType objectContentType(const KURL&, const String& mimeType, bool shouldPreferPlugInsForImages); virtual void setMainFrameDocumentReady(bool); diff --git a/Source/WebKit/efl/ewk/ewk_contextmenu.cpp b/Source/WebKit/efl/ewk/ewk_contextmenu.cpp index 40bd2ba..128208d 100644 --- a/Source/WebKit/efl/ewk/ewk_contextmenu.cpp +++ b/Source/WebKit/efl/ewk/ewk_contextmenu.cpp @@ -31,33 +31,53 @@ #include <eina_safety_checks.h> #include <wtf/text/CString.h> +/** + * \struct _Ewk_Context_Menu + * @brief Contains the context menu data. + */ struct _Ewk_Context_Menu { - unsigned int __ref; + unsigned int __ref; /**< the reference count of the object */ #if ENABLE(CONTEXT_MENUS) - WebCore::ContextMenuController* controller; + WebCore::ContextMenuController* controller; /**< the WebCore's object which is responsible for the context menu */ #endif - Evas_Object* view; + Evas_Object* view; /**< the view object */ - Eina_List* items; + Eina_List* items; /**< the list of items */ }; +/** + * \struct _Ewk_Context_Menu_Item + * @brief Represents one item of the context menu object. + */ struct _Ewk_Context_Menu_Item { - Ewk_Context_Menu_Item_Type type; - Ewk_Context_Menu_Action action; + Ewk_Context_Menu_Item_Type type; /**< contains the type of the item */ + Ewk_Context_Menu_Action action; /**< contains the action of the item */ - const char* title; - Ewk_Context_Menu* submenu; + const char* title; /**< contains the title of the item */ + Ewk_Context_Menu* submenu; /**< contains the pointer to the submenu of the item */ Eina_Bool checked:1; Eina_Bool enabled:1; }; +/** + * Increases the reference count of the given object. + * + * @param menu the context menu object to increase the reference count + */ void ewk_context_menu_ref(Ewk_Context_Menu* menu) { EINA_SAFETY_ON_NULL_RETURN(menu); menu->__ref++; } +/** + * Decreases the reference count of the given object, possibly freeing it. + * + * When the reference count it's reached 0, the menu with all items are freed. + * + * @param menu the context menu object to decrease the reference count + */ void ewk_context_menu_unref(Ewk_Context_Menu* menu) { EINA_SAFETY_ON_NULL_RETURN(menu); @@ -72,6 +92,14 @@ void ewk_context_menu_unref(Ewk_Context_Menu* menu) free(menu); } +/** + * Destroys the context menu object. + * + * @param menu the context menu object to destroy + * @return @c EINA_TRUE on success, @c EINA_FALSE on failure + * + * @see ewk_context_menu_item_free + */ Eina_Bool ewk_context_menu_destroy(Ewk_Context_Menu* menu) { EINA_SAFETY_ON_NULL_RETURN_VAL(menu, EINA_FALSE); @@ -84,6 +112,12 @@ Eina_Bool ewk_context_menu_destroy(Ewk_Context_Menu* menu) return EINA_TRUE; } +/** + * Gets the list of items. + * + * @param o the context menu object to get list of the items + * @return the list of the items on success or @c 0 on failure + */ const Eina_List* ewk_context_menu_item_list_get(Ewk_Context_Menu* o) { EINA_SAFETY_ON_NULL_RETURN_VAL(o, 0); @@ -91,6 +125,19 @@ const Eina_List* ewk_context_menu_item_list_get(Ewk_Context_Menu* o) return o->items; } +/** + * Creates a new item of the context menu. + * + * @param type specifies a type of the item + * @param action specifies a action of the item + * @param submenu specifies a submenu of the item + * @param title specifies a title of the item + * @param checked + * @param enabled @c EINA_TRUE to enable the item or @c EINA_FALSE to disable + * @return the pointer to the new item on success or @c 0 on failure + * + * @note The return value @b should @b be freed after use. + */ Ewk_Context_Menu_Item* ewk_context_menu_item_new(Ewk_Context_Menu_Item_Type type, Ewk_Context_Menu_Action action, Ewk_Context_Menu* submenu, const char* title, Eina_Bool checked, Eina_Bool enabled) @@ -109,6 +156,13 @@ Ewk_Context_Menu_Item* ewk_context_menu_item_new(Ewk_Context_Menu_Item_Type type return item; } +/** + * Selects the item from the context menu object. + * + * @param menu the context menu object + * @param item the item is selected + * @return @c EINA_TRUE on success or @c EINA_FALSE on failure + */ Eina_Bool ewk_context_menu_item_select(Ewk_Context_Menu* menu, Ewk_Context_Menu_Item* item) { #if ENABLE(CONTEXT_MENUS) @@ -120,11 +174,20 @@ Eina_Bool ewk_context_menu_item_select(Ewk_Context_Menu* menu, Ewk_Context_Menu_ // Don't care about title and submenu as they're not used after this point. WebCore::ContextMenuItem core(type, action, WTF::String()); menu->controller->contextMenuItemSelected(&core); -#endif - return EINA_TRUE; +#else + return EINA_FALSE; +#endif } +/** + * Destroys the item of the context menu object. + * + * @param item the item to destroy + * + * @see ewk_context_menu_destroy + * @see ewk_context_menu_unref + */ void ewk_context_menu_item_free(Ewk_Context_Menu_Item* item) { EINA_SAFETY_ON_NULL_RETURN(item); @@ -133,12 +196,29 @@ void ewk_context_menu_item_free(Ewk_Context_Menu_Item* item) free(item); } +/** + * Gets type of the item. + * + * @param o the item to get the type + * @return type of the item on success or @c EWK_ACTION_TYPE on failure + * + * @see ewk_context_menu_item_type_set + */ Ewk_Context_Menu_Item_Type ewk_context_menu_item_type_get(Ewk_Context_Menu_Item* o) { EINA_SAFETY_ON_NULL_RETURN_VAL(o, EWK_ACTION_TYPE); return o->type; } +/** + * Sets the type of item. + * + * @param o the item to set the type + * @param type a new type for the item object + * @return @c EINA_TRUE on success, or @c EINA_FALSE on failure + * + * @see ewk_context_menu_item_type_get + */ Eina_Bool ewk_context_menu_item_type_set(Ewk_Context_Menu_Item* o, Ewk_Context_Menu_Item_Type type) { EINA_SAFETY_ON_NULL_RETURN_VAL(o, EINA_FALSE); @@ -146,12 +226,29 @@ Eina_Bool ewk_context_menu_item_type_set(Ewk_Context_Menu_Item* o, Ewk_Context_M return EINA_TRUE; } +/** + * Gets an action of the item. + * + * @param o the item to get the action + * @return an action of the item on success or @c EWK_CONTEXT_MENU_ITEM_TAG_NO_ACTION on failure + * + * @see ewk_context_menu_item_action_set + */ Ewk_Context_Menu_Action ewk_context_menu_item_action_get(Ewk_Context_Menu_Item* o) { EINA_SAFETY_ON_NULL_RETURN_VAL(o, EWK_CONTEXT_MENU_ITEM_TAG_NO_ACTION); return o->action; } +/** + * Sets an action of the item. + * + * @param o the item to set the action + * @param action a new action for the item object + * @return @c EINA_TRUE on success, or @c EINA_FALSE on failure + * + * @see ewk_context_menu_item_action_get + */ Eina_Bool ewk_context_menu_item_action_set(Ewk_Context_Menu_Item* o, Ewk_Context_Menu_Action action) { EINA_SAFETY_ON_NULL_RETURN_VAL(o, EINA_FALSE); @@ -159,12 +256,29 @@ Eina_Bool ewk_context_menu_item_action_set(Ewk_Context_Menu_Item* o, Ewk_Context return EINA_TRUE; } +/** + * Gets a title of the item. + * + * @param o the item to get the title + * @return a title of the item on success, or @c 0 on failure + * + * @see ewk_context_menu_item_title_set + */ const char* ewk_context_menu_item_title_get(Ewk_Context_Menu_Item* o) { EINA_SAFETY_ON_NULL_RETURN_VAL(o, 0); return o->title; } +/** + * Sets a title of the item. + * + * @param o the item to set the title + * @param title a new title for the item object + * @return a new title of the item on success or @c 0 on failure + * + * @see ewk_context_menu_item_title_get + */ const char* ewk_context_menu_item_title_set(Ewk_Context_Menu_Item* o, const char* title) { EINA_SAFETY_ON_NULL_RETURN_VAL(o, 0); @@ -185,12 +299,29 @@ Eina_Bool ewk_context_menu_item_checked_set(Ewk_Context_Menu_Item* o, Eina_Bool return EINA_TRUE; } +/** + * Gets if the item is enabled. + * + * @param o the item to get enabled state + * @return @c EINA_TRUE if it's enabled, @c EINA_FALSE if not or on failure + * + * @see ewk_context_menu_item_enabled_set + */ Eina_Bool ewk_context_menu_item_enabled_get(Ewk_Context_Menu_Item* o) { EINA_SAFETY_ON_NULL_RETURN_VAL(o, EINA_FALSE); return o->enabled; } +/** + * Enables/disables the item. + * + * @param o the item to enable/disable + * @param enabled @c EINA_TRUE to enable the item or @c EINA_FALSE to disable + * @return @c EINA_TRUE on success, or @c EINA_FALSE on failure + * + * @see ewk_context_menu_item_enabled_get + */ Eina_Bool ewk_context_menu_item_enabled_set(Ewk_Context_Menu_Item *o, Eina_Bool enabled) { EINA_SAFETY_ON_NULL_RETURN_VAL(o, EINA_FALSE); @@ -205,12 +336,13 @@ Eina_Bool ewk_context_menu_item_enabled_set(Ewk_Context_Menu_Item *o, Eina_Bool /** * @internal * - * Creates context on view. + * Creates an empty context menu on view. * - * @param view View. - * @param Controller Context Menu Controller. + * @param view the view object + * @param controller the WebCore's context menu controller + * @return newly allocated the context menu on success or @c 0 on errors * - * @return newly allocated context menu or @c 0 on errors. + * @note emits a signal "contextmenu,new" */ Ewk_Context_Menu* ewk_context_menu_new(Evas_Object* view, WebCore::ContextMenuController* controller) { @@ -233,6 +365,19 @@ Ewk_Context_Menu* ewk_context_menu_new(Evas_Object* view, WebCore::ContextMenuCo return menu; } +/** + * @internal + * + * Frees the context menu. + * + * @param o the view object + * @return @c EINA_TRUE on success, or @c EINA_FALSE on failure + * + * @note emits a signal "contextmenu,free" + * + * @see ewk_context_menu_unref + * @see ewk_context_menu_destroy + */ Eina_Bool ewk_context_menu_free(Ewk_Context_Menu* o) { EINA_SAFETY_ON_NULL_RETURN_VAL(o, EINA_FALSE); @@ -241,6 +386,17 @@ Eina_Bool ewk_context_menu_free(Ewk_Context_Menu* o) return EINA_TRUE; } +/** + * @internal + * + * Appends the WebCore's item to the context menu object. + * + * @param o the context menu object + * @param core the WebCore's context menu item that will be added to the context menu + * @note emits a signal "contextmenu,item,appended" + * + * @see ewk_context_menu_item_new + */ void ewk_context_menu_item_append(Ewk_Context_Menu* o, WebCore::ContextMenuItem& core) { Ewk_Context_Menu_Item_Type type = static_cast<Ewk_Context_Menu_Item_Type>(core.type()); @@ -255,6 +411,18 @@ void ewk_context_menu_item_append(Ewk_Context_Menu* o, WebCore::ContextMenuItem& evas_object_smart_callback_call(o->view, "contextmenu,item,appended", o); } +/** + * @internal + * + * Emits a signal with the items of the context menu. + * + * @param o the context menu object + * @return the same context menu object that was given through parameter + * + * @note emits a signal "contextmenu,customize" + * + * @see ewk_context_menu_item_list_get + */ Ewk_Context_Menu* ewk_context_menu_custom_get(Ewk_Context_Menu* o) { EINA_SAFETY_ON_NULL_RETURN_VAL(o, 0); @@ -263,6 +431,13 @@ Ewk_Context_Menu* ewk_context_menu_custom_get(Ewk_Context_Menu* o) return o; } +/** + * @internal + * + * Emits a signal "contextmenu,show" + * + * @param o the context menu object + */ void ewk_context_menu_show(Ewk_Context_Menu* o) { EINA_SAFETY_ON_NULL_RETURN(o); diff --git a/Source/WebKit/efl/ewk/ewk_contextmenu.h b/Source/WebKit/efl/ewk/ewk_contextmenu.h index c5adb48..7b60410 100644 --- a/Source/WebKit/efl/ewk/ewk_contextmenu.h +++ b/Source/WebKit/efl/ewk/ewk_contextmenu.h @@ -18,6 +18,11 @@ Boston, MA 02110-1301, USA. */ +/** + * @file ewk_contextmenu.h + * @brief Describes the context menu API. + */ + #ifndef ewk_contextmenu_h #define ewk_contextmenu_h @@ -30,7 +35,11 @@ extern "C" { #endif -// keep this in sync with ContextMenuItem.h +/** + * \enum _Ewk_Context_Menu_Action + * @brief Provides the actions of items for the context menu. + * @info Keep this in sync with ContextMenuItem.h + */ enum _Ewk_Context_Menu_Action { EWK_CONTEXT_MENU_ITEM_TAG_NO_ACTION = 0, // this item is not actually in web_uidelegate.h EWK_CONTEXT_MENU_ITEM_TAG_OPEN_LINK_IN_NEW_WINDOW = 1, @@ -67,12 +76,12 @@ enum _Ewk_Context_Menu_Action { EWK_CONTEXT_MENU_ITEM_PDFPREVIOUS_PAGE, EWK_CONTEXT_MENU_ITEM_TAG_OPEN_LINK = 2000, EWK_CONTEXT_MENU_ITEM_TAG_IGNORE_GRAMMAR, - EWK_CONTEXT_MENU_ITEM_TAG_SPELLING_MENU, // spelling or spelling/grammar sub-menu + EWK_CONTEXT_MENU_ITEM_TAG_SPELLING_MENU, /**< spelling or spelling/grammar sub-menu */ EWK_CONTEXT_MENU_ITEM_TAG_SHOW_SPELLING_PANEL, EWK_CONTEXT_MENU_ITEM_TAG_CHECK_SPELLING, EWK_CONTEXT_MENU_ITEM_TAG_CHECK_SPELLING_WHILE_TYPING, EWK_CONTEXT_MENU_ITEM_TAG_CHECK_GRAMMAR_WITH_SPELLING, - EWK_CONTEXT_MENU_ITEM_TAG_FONT_MENU, // font sub-menu + EWK_CONTEXT_MENU_ITEM_TAG_FONT_MENU, /**< font sub-menu */ EWK_CONTEXT_MENU_ITEM_TAG_SHOW_FONTS, EWK_CONTEXT_MENU_ITEM_TAG_BOLD, EWK_CONTEXT_MENU_ITEM_TAG_ITALIC, @@ -80,41 +89,43 @@ enum _Ewk_Context_Menu_Action { EWK_CONTEXT_MENU_ITEM_TAG_OUTLINE, EWK_CONTEXT_MENU_ITEM_TAG_STYLES, EWK_CONTEXT_MENU_ITEM_TAG_SHOW_COLORS, - EWK_CONTEXT_MENU_ITEM_TAG_SPEECH_MENU, // speech sub-menu + EWK_CONTEXT_MENU_ITEM_TAG_SPEECH_MENU, /**< speech sub-menu */ EWK_CONTEXT_MENU_ITEM_TAG_START_SPEAKING, EWK_CONTEXT_MENU_ITEM_TAG_STOP_SPEAKING, - EWK_CONTEXT_MENU_ITEM_TAG_WRITING_DIRECTION_MENU, // writing direction sub-menu + EWK_CONTEXT_MENU_ITEM_TAG_WRITING_DIRECTION_MENU, /**< writing direction sub-menu */ EWK_CONTEXT_MENU_ITEM_TAG_DEFAULT_DIRECTION, EWK_CONTEXT_MENU_ITEM_TAG_LEFT_TO_RIGHT, EWK_CONTEXT_MENU_ITEM_TAG_RIGHT_TO_LEFT, EWK_CONTEXT_MENU_ITEM_TAG_PDFSINGLE_PAGE_SCROLLING, EWK_CONTEXT_MENU_ITEM_TAG_PDFFACING_PAGES_SCROLLING, - EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_MENU, // text direction sub-menu + EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_MENU, /**< text direction sub-menu */ EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_DEFAULT, EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_LEFT_TO_RIGHT, EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_RIGHT_TO_LEFT, EWK_CONTEXT_MENU_ITEM_BASE_CUSTOM_TAG = 5000, EWK_CONTEXT_MENU_ITEM_BASE_APPLICATION_TAG = 10000 }; +/** Creates a type name for _Ewk_Context_Menu_Action */ typedef enum _Ewk_Context_Menu_Action Ewk_Context_Menu_Action; -// keep this in sync with ContextMenuItem.h +/** + * \enum _Ewk_Context_Menu_Item_Type + * @brief Defines the types of the items for the context menu. + * @info Keep this in sync with ContextMenuItem.h + */ enum _Ewk_Context_Menu_Item_Type { EWK_ACTION_TYPE, EWK_CHECKABLE_ACTION_TYPE, EWK_SEPARATOR_TYPE, EWK_SUBMENU_TYPE }; +/** Creates a type name for _Ewk_Context_Menu_Item_Type */ typedef enum _Ewk_Context_Menu_Item_Type Ewk_Context_Menu_Item_Type; -/** - * The structure to contain Context Menu data - */ +/** Creates a type name for _Ewk_Context_Menu */ typedef struct _Ewk_Context_Menu Ewk_Context_Menu; -/** - * Represents one item from Ewk_Context_Menu - */ +/** Creates a type name for _Ewk_Context_Menu_Item */ typedef struct _Ewk_Context_Menu_Item Ewk_Context_Menu_Item; diff --git a/Source/WebKit/efl/ewk/ewk_cookies.cpp b/Source/WebKit/efl/ewk/ewk_cookies.cpp index 7558154..048886b 100644 --- a/Source/WebKit/efl/ewk/ewk_cookies.cpp +++ b/Source/WebKit/efl/ewk/ewk_cookies.cpp @@ -76,7 +76,7 @@ EAPI Eina_Bool ewk_cookies_file_set(const char *filename) /** * Clears all the cookies from the cookie jar. */ -EAPI void ewk_cookies_clear() +EAPI void ewk_cookies_clear(void) { #if USE(SOUP) GSList* l; @@ -207,7 +207,7 @@ EAPI void ewk_cookies_policy_set(Ewk_Cookie_Policy p) * @return the current acceptance policy * @see Ewk_Cookie_Policy */ -EAPI Ewk_Cookie_Policy ewk_cookies_policy_get() +EAPI Ewk_Cookie_Policy ewk_cookies_policy_get(void) { Ewk_Cookie_Policy ewk_policy = EWK_COOKIE_JAR_ACCEPT_ALWAYS; #if USE(SOUP) diff --git a/Source/WebKit/efl/ewk/ewk_cookies.h b/Source/WebKit/efl/ewk/ewk_cookies.h index 19eac0f..ec0e84f 100644 --- a/Source/WebKit/efl/ewk/ewk_cookies.h +++ b/Source/WebKit/efl/ewk/ewk_cookies.h @@ -76,12 +76,12 @@ typedef enum _Ewk_Cookie_Policy Ewk_Cookie_Policy; /************************** Exported functions ***********************/ EAPI Eina_Bool ewk_cookies_file_set(const char *filename); -EAPI void ewk_cookies_clear(); -EAPI Eina_List* ewk_cookies_get_all(); +EAPI void ewk_cookies_clear(void); +EAPI Eina_List* ewk_cookies_get_all(void); EAPI void ewk_cookies_cookie_del(Ewk_Cookie *cookie); EAPI void ewk_cookies_cookie_free(Ewk_Cookie *cookie); EAPI void ewk_cookies_policy_set(Ewk_Cookie_Policy p); -EAPI Ewk_Cookie_Policy ewk_cookies_policy_get(); +EAPI Ewk_Cookie_Policy ewk_cookies_policy_get(void); #ifdef __cplusplus } diff --git a/Source/WebKit/efl/ewk/ewk_frame.cpp b/Source/WebKit/efl/ewk/ewk_frame.cpp index 0e2f903..4e52b56 100644 --- a/Source/WebKit/efl/ewk/ewk_frame.cpp +++ b/Source/WebKit/efl/ewk/ewk_frame.cpp @@ -1484,9 +1484,14 @@ Eina_Bool ewk_frame_feed_touch_event(Evas_Object* o, Ewk_Touch_Event_Type action Eina_Bool ret = EINA_FALSE; #if ENABLE(TOUCH_EVENTS) - EWK_FRAME_SD_GET_OR_RETURN(o, sd, EINA_FALSE); - EINA_SAFETY_ON_NULL_RETURN_VAL(sd->frame, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(points, EINA_FALSE); + EWK_FRAME_SD_GET(o, sd); + + if (!sd || !sd->frame || !ewk_view_need_touch_events_get(sd->view)) { + void* point; + EINA_LIST_FREE(points, point); + return EINA_FALSE; + } Evas_Coord x, y; evas_object_geometry_get(sd->view, &x, &y, 0, 0); diff --git a/Source/WebKit/efl/ewk/ewk_history.cpp b/Source/WebKit/efl/ewk/ewk_history.cpp index 0a9d349..fb70903 100644 --- a/Source/WebKit/efl/ewk/ewk_history.cpp +++ b/Source/WebKit/efl/ewk/ewk_history.cpp @@ -24,7 +24,9 @@ #include "BackForwardListImpl.h" #include "EWebKit.h" #include "HistoryItem.h" +#include "IconDatabaseBase.h" #include "Image.h" +#include "IntSize.h" #include "ewk_private.h" #include <wtf/text/CString.h> @@ -578,7 +580,8 @@ double ewk_history_item_time_last_visited_get(const Ewk_History_Item* item) cairo_surface_t* ewk_history_item_icon_surface_get(const Ewk_History_Item* item) { EWK_HISTORY_ITEM_CORE_GET_OR_RETURN(item, core, 0); - WebCore::Image* icon = core->icon(); + + WebCore::Image* icon = WebCore::iconDatabase().synchronousIconForPageURL(core->url(), WebCore::IntSize(16, 16)); if (!icon) { ERR("icon is NULL."); return 0; @@ -606,7 +609,7 @@ Evas_Object* ewk_history_item_icon_object_add(const Ewk_History_Item* item, Evas { EWK_HISTORY_ITEM_CORE_GET_OR_RETURN(item, core, 0); EINA_SAFETY_ON_NULL_RETURN_VAL(canvas, 0); - WebCore::Image* icon = core->icon(); + WebCore::Image* icon = WebCore::iconDatabase().synchronousIconForPageURL(core->url(), WebCore::IntSize(16, 16)); cairo_surface_t* surface; if (!icon) { diff --git a/Source/WebKit/efl/ewk/ewk_main.cpp b/Source/WebKit/efl/ewk/ewk_main.cpp index c1c8e02..0c7cc70 100644 --- a/Source/WebKit/efl/ewk/ewk_main.cpp +++ b/Source/WebKit/efl/ewk/ewk_main.cpp @@ -26,7 +26,6 @@ #include "Logging.h" #include "PageCache.h" #include "PageGroup.h" -#include "appcache/ApplicationCacheStorage.h" #include "ewk_private.h" #include "ewk_settings.h" #include "runtime/InitializeThreading.h" @@ -175,7 +174,9 @@ Eina_Bool _ewk_init_body(void) ewk_settings_web_database_path_set(wkdir.utf8().data()); ewk_settings_icon_database_path_set(wkdir.utf8().data()); - WebCore::cacheStorage().setCacheDirectory(wkdir); +#if ENABLE(OFFLINE_WEB_APPLICATIONS) + ewk_settings_cache_directory_path_set(wkdir.utf8().data()); +#endif } // TODO: this should move to WebCore, already reported to webkit-gtk folks: diff --git a/Source/WebKit/efl/ewk/ewk_private.h b/Source/WebKit/efl/ewk/ewk_private.h index 496efdb..114c39e 100644 --- a/Source/WebKit/efl/ewk/ewk_private.h +++ b/Source/WebKit/efl/ewk/ewk_private.h @@ -106,7 +106,12 @@ void ewk_view_viewport_attributes_set(Evas_Object *o, const WebCore::ViewportArg void ewk_view_download_request(Evas_Object *o, Ewk_Download *download); -int ewk_view_dpi_get(); +int ewk_view_dpi_get(void); + +#if ENABLE(TOUCH_EVENTS) +void ewk_view_need_touch_events_set(Evas_Object*, bool needed); +Eina_Bool ewk_view_need_touch_events_get(Evas_Object*); +#endif Ewk_History *ewk_history_new(WebCore::BackForwardListImpl *history); void ewk_history_free(Ewk_History *history); @@ -160,7 +165,7 @@ void ewk_view_contents_size_changed(Evas_Object *o, Evas_Coord w, Evas_Coord h); WebCore::FloatRect ewk_view_page_rect_get(Evas_Object *o); -const char* ewk_settings_default_user_agent_get(); +const char* ewk_settings_default_user_agent_get(void); #ifdef __cplusplus diff --git a/Source/WebKit/efl/ewk/ewk_settings.cpp b/Source/WebKit/efl/ewk/ewk_settings.cpp index 69934c0..3a185d9 100644 --- a/Source/WebKit/efl/ewk/ewk_settings.cpp +++ b/Source/WebKit/efl/ewk/ewk_settings.cpp @@ -47,6 +47,12 @@ #include <libsoup/soup.h> #endif +#if ENABLE(OFFLINE_WEB_APPLICATIONS) +#include "appcache/ApplicationCacheStorage.h" + +static const char* _ewk_cache_directory_path = 0; +#endif + static const char* _ewk_default_web_database_path = 0; static const char* _ewk_icon_database_path = 0; static uint64_t _ewk_default_web_database_quota = 1 * 1024 * 1024; @@ -81,7 +87,7 @@ static WTF::String _ewk_settings_webkit_os_version_get() * * @return the current default database quota in bytes */ -uint64_t ewk_settings_web_database_default_quota_get() +uint64_t ewk_settings_web_database_default_quota_get(void) { return _ewk_default_web_database_quota; } @@ -114,7 +120,7 @@ void ewk_settings_web_database_path_set(const char *path) * * @return database path or @c 0 if none or web database is not supported */ -const char *ewk_settings_web_database_path_get() +const char *ewk_settings_web_database_path_get(void) { #if ENABLE(DATABASE) return _ewk_default_web_database_path; @@ -133,7 +139,7 @@ const char *ewk_settings_web_database_path_get() */ Eina_Bool ewk_settings_icon_database_path_set(const char *directory) { - WebCore::iconDatabase().delayDatabaseCleanup(); + WebCore::IconDatabase::delayDatabaseCleanup(); if (directory) { struct stat st; @@ -155,7 +161,7 @@ Eina_Bool ewk_settings_icon_database_path_set(const char *directory) } WebCore::iconDatabase().setEnabled(true); - WebCore::iconDatabase().open(WTF::String::fromUTF8(directory)); + WebCore::iconDatabase().open(WTF::String::fromUTF8(directory), WebCore::IconDatabase::defaultDatabaseFilename()); if (!_ewk_icon_database_path) _ewk_icon_database_path = eina_stringshare_add(directory); else @@ -225,7 +231,7 @@ cairo_surface_t* ewk_settings_icon_database_icon_surface_get(const char *url) EINA_SAFETY_ON_NULL_RETURN_VAL(url, 0); WebCore::KURL kurl(WebCore::KURL(), WTF::String::fromUTF8(url)); - WebCore::Image *icon = WebCore::iconDatabase().iconForPageURL(kurl.string(), WebCore::IntSize(16, 16)); + WebCore::Image *icon = WebCore::iconDatabase().synchronousIconForPageURL(kurl.string(), WebCore::IntSize(16, 16)); if (!icon) { ERR("no icon for url %s", url); @@ -257,7 +263,7 @@ Evas_Object* ewk_settings_icon_database_icon_object_add(const char* url, Evas* c EINA_SAFETY_ON_NULL_RETURN_VAL(canvas, 0); WebCore::KURL kurl(WebCore::KURL(), WTF::String::fromUTF8(url)); - WebCore::Image* icon = WebCore::iconDatabase().iconForPageURL(kurl.string(), WebCore::IntSize(16, 16)); + WebCore::Image* icon = WebCore::iconDatabase().synchronousIconForPageURL(kurl.string(), WebCore::IntSize(16, 16)); cairo_surface_t* surface; if (!icon) { @@ -300,7 +306,7 @@ void ewk_settings_proxy_uri_set(const char* proxy) * * @return current proxy URI or @c 0 if it's not set */ -const char* ewk_settings_proxy_uri_get() +const char* ewk_settings_proxy_uri_get(void) { #if USE(SOUP) SoupURI* uri; @@ -315,7 +321,7 @@ const char* ewk_settings_proxy_uri_get() WTF::String proxy = soup_uri_to_string(uri, EINA_FALSE); return eina_stringshare_add(proxy.utf8().data()); #elif USE(CURL) - EINA_SAFETY_ON_TRUE_RETURN_VAL(1, NULL); + EINA_SAFETY_ON_TRUE_RETURN_VAL(1, 0); #endif } @@ -326,10 +332,53 @@ const char* ewk_settings_proxy_uri_get() * * @return a pointer to an eina_stringshare containing the user agent string */ -const char* ewk_settings_default_user_agent_get() +const char* ewk_settings_default_user_agent_get(void) { WTF::String ua_version = makeString(String::number(WEBKIT_USER_AGENT_MAJOR_VERSION), '.', String::number(WEBKIT_USER_AGENT_MINOR_VERSION), '+'); WTF::String static_ua = makeString("Mozilla/5.0 (", _ewk_settings_webkit_platform_get(), "; ", _ewk_settings_webkit_os_version_get(), ") AppleWebKit/", ua_version) + makeString(" (KHTML, like Gecko) Version/5.0 Safari/", ua_version); return eina_stringshare_add(static_ua.utf8().data()); } + +/** + * Sets cache directory. + * + * @param path where to store cache, must be write-able. + * + * @return @c EINA_TRUE on success, @c EINA_FALSE if path is NULL or offline + * web application is not supported. + */ +Eina_Bool ewk_settings_cache_directory_path_set(const char *path) +{ +#if ENABLE(OFFLINE_WEB_APPLICATIONS) + if (!path) + return EINA_FALSE; + + WebCore::cacheStorage().setCacheDirectory(WTF::String::fromUTF8(path)); + if (!_ewk_cache_directory_path) + _ewk_cache_directory_path = eina_stringshare_add(path); + else + eina_stringshare_replace(&_ewk_cache_directory_path, path); + return EINA_TRUE; +#else + EINA_SAFETY_ON_TRUE_RETURN_VAL(1, EINA_FALSE); +#endif +} + +/** + * Return cache directory path. + * + * This is guaranteed to be eina_stringshare, so whenever possible + * save yourself some cpu cycles and use eina_stringshare_ref() + * instead of eina_stringshare_add() or strdup(). + * + * @return cache directory path. + */ +const char *ewk_settings_cache_directory_path_get() +{ +#if ENABLE(OFFLINE_WEB_APPLICATIONS) + return _ewk_cache_directory_path; +#else + EINA_SAFETY_ON_TRUE_RETURN_VAL(1, 0); +#endif +} diff --git a/Source/WebKit/efl/ewk/ewk_settings.h b/Source/WebKit/efl/ewk/ewk_settings.h index 0a495da..3e5ca47 100644 --- a/Source/WebKit/efl/ewk/ewk_settings.h +++ b/Source/WebKit/efl/ewk/ewk_settings.h @@ -37,9 +37,9 @@ extern "C" { * @brief General purpose settings, not tied to any view object. */ -EAPI uint64_t ewk_settings_web_database_default_quota_get(); +EAPI uint64_t ewk_settings_web_database_default_quota_get(void); EAPI void ewk_settings_web_database_path_set(const char *path); -EAPI const char *ewk_settings_web_database_path_get(); +EAPI const char *ewk_settings_web_database_path_get(void); EAPI Eina_Bool ewk_settings_icon_database_path_set(const char *path); EAPI const char *ewk_settings_icon_database_path_get(void); @@ -48,8 +48,11 @@ EAPI Eina_Bool ewk_settings_icon_database_clear(void); EAPI cairo_surface_t *ewk_settings_icon_database_icon_surface_get(const char *url); EAPI Evas_Object *ewk_settings_icon_database_icon_object_add(const char *url, Evas *canvas); -EAPI void ewk_settings_proxy_uri_set(const char* proxy); -EAPI const char* ewk_settings_proxy_uri_get(); +EAPI Eina_Bool ewk_settings_cache_directory_path_set(const char *path); +EAPI const char *ewk_settings_cache_directory_path_get(void); + +EAPI void ewk_settings_proxy_uri_set(const char* proxy); +EAPI const char* ewk_settings_proxy_uri_get(void); #ifdef __cplusplus } diff --git a/Source/WebKit/efl/ewk/ewk_view.cpp b/Source/WebKit/efl/ewk/ewk_view.cpp index ab0629a..8a3b04d 100644 --- a/Source/WebKit/efl/ewk/ewk_view.cpp +++ b/Source/WebKit/efl/ewk/ewk_view.cpp @@ -43,7 +43,6 @@ #include "PlatformMouseEvent.h" #include "PopupMenuClient.h" #include "ProgressTracker.h" -#include "appcache/ApplicationCacheStorage.h" #include "ewk_private.h" #include <Ecore.h> @@ -95,13 +94,13 @@ struct _Ewk_View_Private_Data { unsigned int imh; /**< input method hints */ struct { Eina_Bool view_cleared:1; + Eina_Bool need_touch_events:1; } flags; struct { const char* user_agent; const char* user_stylesheet; const char* encoding_default; const char* encoding_custom; - const char* cache_directory; const char* theme; const char* local_storage_database_path; int font_minimum_size; @@ -584,9 +583,6 @@ static Ewk_View_Private_Data* _ewk_view_priv_new(Ewk_View_Smart_Data* sd) (priv->page_settings->defaultTextEncodingName().utf8().data()); priv->settings.encoding_custom = 0; - priv->settings.cache_directory = eina_stringshare_add - (WebCore::cacheStorage().cacheDirectory().utf8().data()); - s = priv->page_settings->localStorageDatabasePath(); priv->settings.local_storage_database_path = eina_stringshare_add(s.string().utf8().data()); @@ -672,7 +668,6 @@ static void _ewk_view_priv_del(Ewk_View_Private_Data* priv) eina_stringshare_del(priv->settings.user_stylesheet); eina_stringshare_del(priv->settings.encoding_default); eina_stringshare_del(priv->settings.encoding_custom); - eina_stringshare_del(priv->settings.cache_directory); eina_stringshare_del(priv->settings.font_standard); eina_stringshare_del(priv->settings.font_cursive); eina_stringshare_del(priv->settings.font_monospace); @@ -2723,22 +2718,6 @@ Eina_Bool ewk_view_setting_encoding_detector_get(Evas_Object* o) return priv->settings.encoding_detector; } -const char* ewk_view_setting_cache_directory_get(const Evas_Object* o) -{ - EWK_VIEW_SD_GET_OR_RETURN(o, sd, 0); - EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv, 0); - return priv->settings.cache_directory; -} - -Eina_Bool ewk_view_setting_cache_directory_set(Evas_Object* o, const char* path) -{ - EWK_VIEW_SD_GET_OR_RETURN(o, sd, EINA_FALSE); - EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv, EINA_FALSE); - if (eina_stringshare_replace(&priv->settings.cache_directory, path)) - WebCore::cacheStorage().setCacheDirectory(String::fromUTF8(path)); - return EINA_TRUE; -} - int ewk_view_setting_font_minimum_size_get(const Evas_Object* o) { EWK_VIEW_SD_GET_OR_RETURN(o, sd, 0); @@ -4305,7 +4284,7 @@ void ewk_view_viewport_attributes_get(Evas_Object *o, float* w, float* h, float* if (device_pixel_ratio) *device_pixel_ratio = attributes.devicePixelRatio; if (user_scalable) - *user_scalable = attributes.userScalable; + *user_scalable = static_cast<bool>(attributes.userScalable); } /** @@ -4508,7 +4487,7 @@ WebCore::FloatRect ewk_view_page_rect_get(Evas_Object *o) * * @return device's dpi value. */ -int ewk_view_dpi_get() +int ewk_view_dpi_get(void) { #ifdef HAVE_ECORE_X return ecore_x_dpi_get(); @@ -4516,3 +4495,20 @@ int ewk_view_dpi_get() return 160; #endif } + +#if ENABLE(TOUCH_EVENTS) +void ewk_view_need_touch_events_set(Evas_Object* o, bool needed) +{ + EWK_VIEW_SD_GET(o, sd); + EWK_VIEW_PRIV_GET(sd, priv); + + priv->flags.need_touch_events = needed; +} + +Eina_Bool ewk_view_need_touch_events_get(Evas_Object* o) +{ + EWK_VIEW_SD_GET_OR_RETURN(o, sd, EINA_FALSE); + EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv, EINA_FALSE); + return priv->flags.need_touch_events; +} +#endif diff --git a/Source/WebKit/efl/ewk/ewk_view.h b/Source/WebKit/efl/ewk/ewk_view.h index e487f5e..84beecd 100644 --- a/Source/WebKit/efl/ewk/ewk_view.h +++ b/Source/WebKit/efl/ewk/ewk_view.h @@ -450,8 +450,6 @@ EAPI const char *ewk_view_setting_encoding_custom_get(const Evas_Object *o); EAPI Eina_Bool ewk_view_setting_encoding_custom_set(Evas_Object *o, const char *encoding); EAPI const char *ewk_view_setting_encoding_default_get(const Evas_Object *o); EAPI Eina_Bool ewk_view_setting_encoding_default_set(Evas_Object *o, const char *encoding); -EAPI const char *ewk_view_setting_cache_directory_get(const Evas_Object *o); -EAPI Eina_Bool ewk_view_setting_cache_directory_set(Evas_Object *o, const char *path); EAPI int ewk_view_setting_font_minimum_size_get(const Evas_Object *o); EAPI Eina_Bool ewk_view_setting_font_minimum_size_set(Evas_Object *o, int size); diff --git a/Source/WebKit/efl/ewk/ewk_window_features.cpp b/Source/WebKit/efl/ewk/ewk_window_features.cpp index 3855e89..4a311dc 100644 --- a/Source/WebKit/efl/ewk/ewk_window_features.cpp +++ b/Source/WebKit/efl/ewk/ewk_window_features.cpp @@ -26,17 +26,21 @@ #include <Eina.h> +/** + * \struct _Ewk_Window_Features + * @brief Contains the window features data. + */ struct _Ewk_Window_Features { unsigned int __ref; WebCore::WindowFeatures* core; }; /** - * Decrease the ref count of an Ewk_Window_Features, possibly freeing it. + * Decreases the referece count of an Ewk_Window_Features, possibly freeing it. * - * When its ref count reaches 0, @param window_features is freed. + * When the reference count of the object reaches 0, the one is freed. * - * @param window_features The window's features. + * @param window_features the object to decrease reference count */ EAPI void ewk_window_features_unref(Ewk_Window_Features* window_features) { @@ -52,9 +56,9 @@ EAPI void ewk_window_features_unref(Ewk_Window_Features* window_features) } /** - * Increase the ref count of an Ewk_Window_Features + * Increases the reference count of an Ewk_Window_Features. * - * @param window_features The window's features. + * @param window_features the object to increase reference count */ EAPI void ewk_window_features_ref(Ewk_Window_Features* window_features) { @@ -63,15 +67,20 @@ EAPI void ewk_window_features_ref(Ewk_Window_Features* window_features) } /** - * Get boolean properties + * Gets boolean properties of an Ewk_Window_Features. + * + * Properties are returned in the respective pointers. Passing @c 0 to any of + * these pointers will make that property to not be returned. * - * @param window_features A window_features. - * @param toolbar_visible pointer to store if toolbar is visible. - * @param statusbar_visible pointer to store if statusbar is visible. - * @param scrollbars_visible pointer to store if scrollbars is visible. - * @param menubar_visible pointer to store if menubar is visible. - * @param locationbar_visible pointer to store if locationbar is visible. - * @param fullscreen pointer to store if fullscreen is enabled. + * @param window_features the object to get boolean properties + * @param toolbar_visible the pointer to store if toolbar is visible + * @param statusbar_visible the pointer to store if statusbar is visible + * @param scrollbars_visible the pointer to store if scrollbars is visible + * @param menubar_visible the pointer to store if menubar is visible + * @param locationbar_visible the pointer to store if locationbar is visible + * @param fullscreen the pointer to store if fullscreen is enabled + * + * @see ewk_window_features_int_property_get */ EAPI void ewk_window_features_bool_property_get(Ewk_Window_Features* window_features, Eina_Bool* toolbar_visible, Eina_Bool* statusbar_visible, Eina_Bool* scrollbars_visible, Eina_Bool* menubar_visible, Eina_Bool* locationbar_visible, Eina_Bool* fullscreen) { @@ -98,18 +107,21 @@ EAPI void ewk_window_features_bool_property_get(Ewk_Window_Features* window_feat } /** - * Get int properties + * Gets int properties of an Ewk_Window_Features. + * + * Properties are returned in the respective pointers. Passing @c 0 to any of + * these pointers will make that property to not be returned. + * + * Make sure to check if the value returned is less than 0 before using it, since in + * that case it means that property was not set in winwdow_features object. * - * Properties are returned in the respective pointers. Passing NULL to any of - * these pointers will make that property to not be returned. Make sure to check - * if the value returned is less than 0 before using it, since in that case it - * means that property was not set in @param winwdow_features. + * @param window_features the window's features + * @param x the pointer to store x position + * @param y the pointer to store y position + * @param w the pointer to store width + * @param h the pointer to store height * - * @param window_features A window_features. - * @param x pointer to store x position or -1 if it's not set in window_features. - * @param y pointer to store y position or-1 if it's not set in window_features. - * @param w pointer to store width or-1 if it's not set in window_features. - * @param h pointer to store height or-1 if it's not set in window_features. + * @see ewk_window_features_bool_property_get */ EAPI void ewk_window_features_int_property_get(Ewk_Window_Features* window_features, int* x, int* y, int* w, int* h) { @@ -133,13 +145,12 @@ EAPI void ewk_window_features_int_property_get(Ewk_Window_Features* window_featu /** * @internal - * Create a new Ewk_Window_Features from a WebCore::WindowFeatures if @param - * core is not NULL or a new one with default features. * - * A new WebCore::WindowFeatures is allocated copying @param core features and - * it is embedded inside an Ewk_Window_Features whose ref count is initialized. + * Creates a new Ewk_Window_Features object. * - * @returns a new allocated Ewk_Window_Features + * @param core if not @c 0 a new WebCore::WindowFeatures is allocated copying core features and + * it is embedded inside the Ewk_Window_Features whose ref count is initialized, if core is @c 0 a new one is created with the default features. + * @returns a new allocated the Ewk_Window_Features object */ Ewk_Window_Features* ewk_window_features_new_from_core(const WebCore::WindowFeatures* core) { diff --git a/Source/WebKit/efl/ewk/ewk_window_features.h b/Source/WebKit/efl/ewk/ewk_window_features.h index b579dc4..0501881 100644 --- a/Source/WebKit/efl/ewk/ewk_window_features.h +++ b/Source/WebKit/efl/ewk/ewk_window_features.h @@ -18,6 +18,11 @@ Boston, MA 02110-1301, USA. */ +/** + * @file ewk_window_features.h + * @brief Access to the features of window. + */ + #ifndef ewk_window_features_h #define ewk_window_features_h @@ -29,6 +34,7 @@ extern "C" { #endif +/** Creates a type name for _Ewk_Window_Features. */ typedef struct _Ewk_Window_Features Ewk_Window_Features; EAPI void ewk_window_features_unref(Ewk_Window_Features* window_features); diff --git a/Source/WebKit/gtk/ChangeLog b/Source/WebKit/gtk/ChangeLog index d5cfb4d..88452c2 100644 --- a/Source/WebKit/gtk/ChangeLog +++ b/Source/WebKit/gtk/ChangeLog @@ -1,3 +1,337 @@ +2011-03-30 Martin Robinson <mrobinson@igalia.com> + + Reviewed by Dirk Schulze. + + [Cairo] Better separate the concerns of GraphicsContextCairo + https://bugs.webkit.org/show_bug.cgi?id=55150 + + Add a PlatformContextCairo which right now stores the cairo_t* for a + GraphicsContextCairo. Later patches will move logic for tracking ContextShadow + and image masking layers into this PlatformContextCairo class. + + * webkit/webkitwebframe.cpp: + (draw_page_callback): + * webkit/webkitwebview.cpp: + (webkit_web_view_expose_event): + (webkit_web_view_draw): + +2011-03-29 Philippe Normand <pnormand@igalia.com> + + Unreviewed, disable an assert in testwebview due to + https://bugs.webkit.org/show_bug.cgi?id=57315 + + * tests/testwebview.c: + +2011-03-28 Adele Peterson <adele@apple.com> + + Build fix. + + * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: + (DumpRenderTreeSupportGtk::webkitWebFrameSelectionHasSpellingMarker): + +2011-03-28 Sergio Villar Senin <svillar@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] Fullscreen tests failing after r82084 + https://bugs.webkit.org/show_bug.cgi?id=57219 + + Added the withKeyboard parameter to supportsFullScreenForElement + method in ChromeClient. Fullscreen will be disabled for keyboard + access by default. + + * WebCoreSupport/ChromeClientGtk.cpp: + (WebKit::ChromeClient::supportsFullScreenForElement): + * WebCoreSupport/ChromeClientGtk.h: + +2011-03-25 Andy Estes <aestes@apple.com> + + Reviewed by Adele Peterson. + + REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js + https://bugs.webkit.org/show_bug.cgi?id=49016 + + Update objectContentType() implementation to handle the + shouldPreferPlugInsForImages flag. + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::objectContentType): + * WebCoreSupport/FrameLoaderClientGtk.h: + +2011-03-25 Priit Laes <plaes@plaes.org> + + Reviewed by Martin Robinson. + + [GTK] [PATCH] Avoid critical warning when free-ing list of plugins + https://bugs.webkit.org/show_bug.cgi?id=57025 + + * webkit/webkitwebplugindatabase.cpp: + (webkit_web_plugin_database_plugins_list_free): + Use regular check and return instead of g_return_if_fail. + +2011-03-24 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r81916 and r81917. + http://trac.webkit.org/changeset/81916 + http://trac.webkit.org/changeset/81917 + https://bugs.webkit.org/show_bug.cgi?id=57071 + + broke a test on platforms that do not have QuickTime installed + (Requested by estes on #webkit). + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::objectContentType): + * WebCoreSupport/FrameLoaderClientGtk.h: + +2011-03-24 Andy Estes <aestes@apple.com> + + Reviewed by Darin Adler. + + REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js + https://bugs.webkit.org/show_bug.cgi?id=49016 + + Update objectContentType() implementation to handle the + shouldPreferPlugInsForImages flag. + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::objectContentType): + * WebCoreSupport/FrameLoaderClientGtk.h: + +2011-03-23 Brady Eidson <beidson@apple.com> + + Reviewed by Sam Weinig. + + Change IconDatabase opening to allow for arbitrary filenames + https://bugs.webkit.org/show_bug.cgi?id=56977 + + * webkit/webkiticondatabase.cpp: + (webkit_icon_database_set_path): + +2011-03-22 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Rubber-stamped by Xan Lopez. + + Applications that include WebKit headers fail to build when using strict warnings + because the signature for webkit_application_cache_get_maximum_size is missing a + 'void' to make it explicit it takes no arguments. + + * webkit/webkitapplicationcache.h: + +2011-03-21 Alejandro G. Castro <alex@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] 1.3.13 release bump + https://bugs.webkit.org/show_bug.cgi?id=56795 + + Version bump for 1.3.13 and updated NEWS file with release notes. + + * NEWS: + +2011-03-21 Chang Shu <cshu@webkit.org> + + Reviewed by Alexey Proskuryakov. + + REGRESSION (r79953): Can't type in MS Outlook 2011 + https://bugs.webkit.org/show_bug.cgi?id=56665 + + r79953 removed the WebView level editablity which is persistent no matter whether + underlying document itself is changed and editability gets lost. The resolution is to + set this WebView editable value to WebCore. This avoids the callback from WebCore to + WebKit which was the main goal in r79953 to improve performance. + + * webkit/webkitwebview.cpp: + (webkit_web_view_get_editable): + (webkit_web_view_set_editable): + +2011-03-21 Mario Sanchez Prada <msanchez@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] [Stable] AtkHypertext exposes wrong offsets for links placed inside <span> nodes + https://bugs.webkit.org/show_bug.cgi?id=56737 + + * tests/testatk.c: + (testWebkitAtkHypertextAndHyperlinks): Updated unit test to also + check offsets for hyperlinks inside <span> nodes. + +2011-03-18 David Keijser <keijser@gmail.com> and Xan Lopez <xlopez@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] On-demand event-listeners for DOM event signals + https://bugs.webkit.org/show_bug.cgi?id=49649 + + * tests/testdomdomwindow.c: update unit tests for new APIs. + (load_event_callback): ditto. + (test_dom_domview_signals): ditto. + (load_status_callback): ditto. + +2011-03-17 Brady Eidson <beidson@apple.com> + + Reviewed by Sam Weinig. + + https://bugs.webkit.org/show_bug.cgi?id=56425 + More groundwork for WebKit2 IconDatabase + + Update already-used function names: + * webkit/webkiticondatabase.cpp: + (webkit_icon_database_get_icon_uri): + (webkit_icon_database_get_icon_pixbuf): + * webkit/webkitwebview.cpp: + (webkit_web_view_get_icon_uri): + +2011-03-16 Joseph Pecoraro <joepeck@webkit.org> + + Reviewed by Kenneth Rohde Christiansen. + + Viewport no longer allows an auto value for "user-scalable" + https://bugs.webkit.org/show_bug.cgi?id=55416 + + Make the default value for userScalable be true. + + * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: + (DumpRenderTreeSupportGtk::dumpConfigurationForViewport): update test output to include userScalable. + * webkit/webkitviewportattributes.cpp: + (webkitViewportAttributesRecompute): + +2011-03-15 Ilya Sherman <isherman@chromium.org> + + Reviewed by Tony Chang. + + Autofilled form elements are assigned fixed background color but not text color + https://bugs.webkit.org/show_bug.cgi?id=48382 + + * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: + (DumpRenderTreeSupportGtk::setAutofilled): Added. + * WebCoreSupport/DumpRenderTreeSupportGtk.h: + +2011-03-14 Ryuan Choi <ryuan.choi@samsung.com> + + Reviewed by Martin Robinson. + + [GTK] Possible leaks after splitting TextCheckerClientEnchant. + https://bugs.webkit.org/show_bug.cgi?id=55989 + + Convert gchar* to GOwnPtr<gchar> and refactor the code. + + * WebCoreSupport/TextCheckerClientEnchant.cpp: + (WebKit::TextCheckerClientEnchant::checkSpellingOfString): + +2011-03-11 Marco Peereboom <marco@peereboom.us> + + Reviewed by Gustavo Noronha Silva. + + Provide a knob to enable/disable DNS prefetching. + DNS prefetching is enabled by default. + https://bugs.webkit.org/show_bug.cgi?id=55973 + + * webkit/webkitwebsettings.cpp: + (webkit_web_settings_class_init): + (webkit_web_settings_set_property): + (webkit_web_settings_get_property): + (webkit_web_settings_copy): + * webkit/webkitwebview.cpp: + (webkit_web_view_update_settings): + (webkit_web_view_settings_notify): + +2011-03-08 Philippe Normand <pnormand@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] close-web-view emitted on disposed WebView + https://bugs.webkit.org/show_bug.cgi?id=55932 + + * WebCoreSupport/ChromeClientGtk.cpp: + (ChromeClient::chromeDestroyed): Remove the closeSoonTimer glib + source before destruction of the ChromeClient. + +2011-03-11 Roland Steiner <rolandsteiner@chromium.org> + + Reviewed by Ryosuke Niwa. + + Bug 55570 - Remove dependency of dom/InputElement.cpp on html/ and wml/ + https://bugs.webkit.org/show_bug.cgi?id=55570 + + Add a virtual function toInputElement() to Node that has a default + implementation of returning 0. + For HTMLInputElement and WMLInputElement (which derive from InputElement) + override this to return the object. + Change all calling sites of the old toInputElement to use the new member + function. This also allows us to save some casts. + + No new tests (refactoring). + + * src/WebInputElement.cpp: + (WebKit::toWebInputElement): + + * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: + (DumpRenderTreeSupportGtk::setValueForUser): + +2011-03-10 Philippe Normand <pnormand@igalia.com> + + Reviewed by Xan Lopez. + + [GTK] unittests/testapplicationcache crashes + https://bugs.webkit.org/show_bug.cgi?id=56083 + + Removed the webkit_application_cache_get_database_directory_path + API as the underlying ApplicationCacheStorage doesn't allow + setting the cache path multiple times. + + * tests/testapplicationcache.c: + (main): + * webkit/webkitapplicationcache.cpp: + (webkit_application_cache_get_database_directory_path): + * webkit/webkitapplicationcache.h: + * webkit/webkitglobals.cpp: + (webkitInit): + +2011-03-09 Peter Kasting <pkasting@google.com> + + Reviewed by Mihai Parparita. + + Unify Windows version checks. + https://bugs.webkit.org/show_bug.cgi?id=55979 + + * webkit/webkitwebsettings.cpp: + (webkitOSVersion): + +2011-03-08 Christian Dywan <christian@lanedo.com> + + Reviewed by Martin Robinson. + + [GTK] provide an API to control the IconDatabase + https://bugs.webkit.org/show_bug.cgi?id=32510 + + * GNUmakefile.am: + * WebCoreSupport/FrameLoaderClientGtk.cpp: Emit signals on + the icon database for new icons. + * webkit/webkit.h: + * webkit/webkitdefines.h: + * webkit/webkitglobals.cpp: + * webkit/webkitglobals.h: Add a function to obtain the global + icon database. + * webkit/webkiticondatabase.cpp: + * webkit/webkiticondatabase.h: Implement public icon database + object with methods for obtaining icon URLs, pixbufs, clearing + waiting for new icons. + * webkit/webkitwebview.cpp: + * webkit/webkitwebview.h: Add a method to obtain an icon pixbuf + for the web view. +2011-03-08 Carlos Garcia Campos <cgarcia@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] Add layoutTestController.setValueForUser() after r80412 + https://bugs.webkit.org/show_bug.cgi?id=55862 + + Add setValueForUser method to DumpRenderTreeSupportGTK. + + * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: + (DumpRenderTreeSupportGtk::setValueForUser): + * WebCoreSupport/DumpRenderTreeSupportGtk.h: + 2011-03-07 Sam Weinig <sam@webkit.org> Reviewed by Anders Carlsson. diff --git a/Source/WebKit/gtk/GNUmakefile.am b/Source/WebKit/gtk/GNUmakefile.am index 42ac1e4..7030ea8 100644 --- a/Source/WebKit/gtk/GNUmakefile.am +++ b/Source/WebKit/gtk/GNUmakefile.am @@ -116,6 +116,7 @@ webkitgtk_static_h_api += \ $(srcdir)/Source/WebKit/gtk/webkit/webkitgeolocationpolicydecision.h \ $(srcdir)/Source/WebKit/gtk/webkit/webkitglobals.h \ $(srcdir)/Source/WebKit/gtk/webkit/webkithittestresult.h \ + $(srcdir)/Source/WebKit/gtk/webkit/webkiticondatabase.h \ $(srcdir)/Source/WebKit/gtk/webkit/webkitnetworkrequest.h \ $(srcdir)/Source/WebKit/gtk/webkit/webkitnetworkresponse.h \ $(srcdir)/Source/WebKit/gtk/webkit/webkitsecurityorigin.h \ @@ -203,6 +204,7 @@ webkitgtk_sources += \ Source/WebKit/gtk/webkit/webkitglobalsprivate.h \ Source/WebKit/gtk/webkit/webkithittestresult.cpp \ Source/WebKit/gtk/webkit/webkithittestresultprivate.h \ + Source/WebKit/gtk/webkit/webkiticondatabase.cpp \ Source/WebKit/gtk/webkit/webkitnetworkrequest.cpp \ Source/WebKit/gtk/webkit/webkitnetworkrequestprivate.h \ Source/WebKit/gtk/webkit/webkitnetworkresponse.cpp \ diff --git a/Source/WebKit/gtk/NEWS b/Source/WebKit/gtk/NEWS index a7e4581..c847f01 100644 --- a/Source/WebKit/gtk/NEWS +++ b/Source/WebKit/gtk/NEWS @@ -1,4 +1,55 @@ ================= +WebKitGTK+ 1.3.13 +================= + +What's new in WebKitGTK+ 1.3.13? + +In this release the GObject DOM Bindings contain a major change. Explicit +invocation of DOM objects' addEventListener methods has replaced the GObject +signal method of DOM event handling. For intance, where before a developer +would connect to the "click-event" signal, a developer must now call: +webkit_dom_event_target_add_event_listener. For a more illustrative example see: +http://trac.webkit.org/changeset/81486/trunk/Source/WebKit/gtk/tests/testdomdomwindow.c + +Added API to control the IconDatabase and the cache database APIs. + +WebKit bugs mostly relevant with the GTK+ port fixed since 1.3.12: + +Bug 23526 - [CAIRO] Support ImageBuffers clip operation on all Cairo ports (Martin Robinson) +Bug 56180 - [GTK] JSC crashes in 32bit Release bots after r80743 (Martin Robinson) +Bug 56180 - [GTK] JSC crashes in 32bit Release bots after r80743 (Geoffrey Garen) +Bug 49649 - [GTK] On-demand event-listeners for DOM event signals (David Keijser) +Bug 56333 - [GTK] [WebKit2] The UIProcess never changes the mouse cursor (Martin Robinson) +Bug 55989 - [GTK] Possible leaks after splitting TextCheckerClientEnchant. (Ryuan Choi) +Bug 50497 - Add all web audio auto-generated files to GTK make system (Chris Rogers) +Bug 56180 - [GTK] JSC crashes in 32bit Release bots after r80743 (Sergio Villar Senin) +Bug 55932 - [GTK] close-web-view emitted on disposed WebView (Philippe Normand) +Bug 53098 - [GTK] Implement spin buttons for GTK+ 2.x (Martin Robinson) +Bug 56125 - [GTK] [Webkit2] There are no scrollbars visible in the MiniBrowser (Martin Robinson) +Bug 41903 - [GTK] plugins/return-negative-one-from-write.html crashes (Martin Robinson) +Bug 32510 - [GTK] provide an API to control the IconDatabase (Christian Dywan) +Bug 55868 - [GTK] Do not set juntion sides on scrollbar stepper buttons (Carlos Garcia Campos) +Bug 55866 - [GTK] Use doubles instead of integers for coordinates when rendering arrows (Carlos Garcia Campos) +Bug 55878 - [Gtk] toDataURL uses incorrect quality value when saving GdkPixbuf to buffer (Zan Dobersek) +Bug 55531 - [GTK] Windowless plugins override the view cursor (Martin Robinson) +Bug 55136 - Enable Copy Image Address context menu item in the Gtk port (Christian Dywan) +Bug 53960 - [GTK] DRT needs implementation of EventSender.scheduleAsynchronousClick (Carlos Garcia Campos) +Bug 55335 - [GTK] Extended application cache database API and added unit tests file. (Lukasz Slachciak) +Bug 53146 - [GTK] Combo boxes should emit object:selection-changed even when collapsed (Mario Sanchez Prada) +Bug 55473 - [GTK] Add support for external protocol handlers (Sergio Villar Senin) +Bug 53228 - [Gtk] Resource size is incorrectly reported to WebCore (Sergio Villar Senin) +Bug 48510 - [GTK] Implement WebContext and NativeKeyboardEvent classes for WebKit2 (Amruth Raj) +Bug 48509 - [GTK] Implement WebView and WebKitWebView classes for WebKit2 (Amruth Raj) +Bug 48510 - [GTK] Implement WebEventFactory, WebErrors classes for WebKit2 ( Amruth Raj) +Bug 54658 - [gtk] Failing collinear arcTo canvas tests (Zan Dobersek) +Bug 37769 - [Gtk] Flash item placed on wrong location right after load (Martin Robinson) +Bug 54981 - [GTK] position:fixed elements flicker while scrolling after r74196 (Martin Robinson) +Bug 56180 - [GTK] JSC crashes in 32bit Release bots after r80743 (Oliver Hunt) +Bug 56737 - [GTK] [Stable] AtkHypertext exposes wrong offsets for links placed inside <span> nodes (Mario Sanchez Prada) +Bug 56201 - WebKitIconDatabase may trigger crash in cairoImageSurfaceToGdkPixbuf (Christian Dywan) +Bug 56690 - Stop inserting when the parent is removed (Justin Schuh) + +================= WebKitGTK+ 1.3.12 ================= diff --git a/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp index 8e828ac..9f21139 100644 --- a/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp +++ b/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp @@ -79,6 +79,9 @@ ChromeClient::ChromeClient(WebKitWebView* webView) void ChromeClient::chromeDestroyed() { + if (m_closeSoonTimer) + g_source_remove(m_closeSoonTimer); + delete this; } @@ -720,8 +723,11 @@ void ChromeClient::exitFullscreenForNode(Node* node) #endif #if ENABLE(FULLSCREEN_API) -bool ChromeClient::supportsFullScreenForElement(const WebCore::Element* element) +bool ChromeClient::supportsFullScreenForElement(const WebCore::Element* element, bool withKeyboard) { + if (withKeyboard) + return false; + return true; } diff --git a/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h b/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h index 462ddc4..2bf81eb 100644 --- a/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h +++ b/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h @@ -145,7 +145,7 @@ namespace WebKit { #endif #if ENABLE(FULLSCREEN_API) - virtual bool supportsFullScreenForElement(const WebCore::Element*); + virtual bool supportsFullScreenForElement(const WebCore::Element*, bool withKeyboard); virtual void enterFullScreenForElement(WebCore::Element*); virtual void exitFullScreenForElement(WebCore::Element*); #endif diff --git a/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp index 6db2c81..1336f11 100644 --- a/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp +++ b/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp @@ -34,6 +34,8 @@ #include "FrameView.h" #include "GCController.h" #include "GraphicsContext.h" +#include "HTMLInputElement.h" +#include "InputElement.h" #include "JSDOMWindow.h" #include "JSDocument.h" #include "JSElement.h" @@ -98,11 +100,6 @@ bool DumpRenderTreeSupportGtk::linksIncludedInFocusChain() return s_linksIncludedInTabChain; } -void DumpRenderTreeSupportGtk::setIconDatabaseEnabled(bool enabled) -{ - WebKit::setIconDatabaseEnabled(enabled); -} - void DumpRenderTreeSupportGtk::setSelectTrailingWhitespaceEnabled(bool enabled) { s_selectTrailingWhitespaceEnabled = enabled; @@ -629,7 +626,7 @@ void DumpRenderTreeSupportGtk::dumpConfigurationForViewport(WebKitWebView* webVi ViewportArguments arguments = webView->priv->corePage->mainFrame()->document()->viewportArguments(); ViewportAttributes attrs = computeViewportAttributes(arguments, /* default layout width for non-mobile pages */ 980, deviceWidth, deviceHeight, deviceDPI, IntSize(availableWidth, availableHeight)); - fprintf(stdout, "viewport size %dx%d scale %f with limits [%f, %f]\n", attrs.layoutSize.width(), attrs.layoutSize.height(), attrs.initialScale, attrs.minimumScale, attrs.maximumScale); + fprintf(stdout, "viewport size %dx%d scale %f with limits [%f, %f] and userScalable %f\n", attrs.layoutSize.width(), attrs.layoutSize.height(), attrs.initialScale, attrs.minimumScale, attrs.maximumScale, attrs.userScalable); } void DumpRenderTreeSupportGtk::clearOpener(WebKitWebFrame* frame) @@ -652,7 +649,7 @@ bool DumpRenderTreeSupportGtk::webkitWebFrameSelectionHasSpellingMarker(WebKitWe { g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), FALSE); - return core(frame)->editor()->selectionStartHasSpellingMarkerFor(from, length); + return core(frame)->editor()->selectionStartHasMarkerFor(DocumentMarker::Spelling, from, length); } bool DumpRenderTreeSupportGtk::findString(WebKitWebView* webView, const gchar* targetString, WebKitFindOptions findOptions) @@ -669,3 +666,32 @@ void DumpRenderTreeSupportGtk::setMinimumTimerInterval(WebKitWebView* webView, d { core(webView)->settings()->setMinDOMTimerInterval(interval); } + +void DumpRenderTreeSupportGtk::setAutofilled(JSContextRef context, JSValueRef nodeObject, bool autofilled) +{ + JSC::ExecState* exec = toJS(context); + Element* element = toElement(toJS(exec, nodeObject)); + if (!element) + return; + InputElement* inputElement = element->toInputElement(); + if (!inputElement) + return; + + static_cast<HTMLInputElement*>(inputElement)->setAutofilled(autofilled); +} + +void DumpRenderTreeSupportGtk::setValueForUser(JSContextRef context, JSValueRef nodeObject, JSStringRef value) +{ + JSC::ExecState* exec = toJS(context); + Element* element = toElement(toJS(exec, nodeObject)); + if (!element) + return; + InputElement* inputElement = element->toInputElement(); + if (!inputElement) + return; + + size_t bufferSize = JSStringGetMaximumUTF8CStringSize(value); + GOwnPtr<gchar> valueBuffer(static_cast<gchar*>(g_malloc(bufferSize))); + JSStringGetUTF8CString(value, valueBuffer.get(), bufferSize); + inputElement->setValueForUser(String::fromUTF8(valueBuffer.get())); +} diff --git a/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h b/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h index 595d6da..7ad5af6 100644 --- a/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h +++ b/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h @@ -53,7 +53,6 @@ public: static void setLinksIncludedInFocusChain(bool); static bool linksIncludedInFocusChain(); - static void setIconDatabaseEnabled(bool); static void setSelectTrailingWhitespaceEnabled(bool); static bool selectTrailingWhitespaceEnabled(); @@ -85,6 +84,8 @@ public: static AtkObject* getFocusedAccessibleElement(WebKitWebFrame*); static AtkObject* getRootAccessibleElement(WebKitWebFrame*); static void layoutFrame(WebKitWebFrame*); + static void setAutofilled(JSContextRef, JSValueRef, bool); + static void setValueForUser(JSContextRef, JSValueRef, JSStringRef); // WebKitWebView static void executeCoreCommandByName(WebKitWebView*, const gchar* name, const gchar* value); diff --git a/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp index d8ea90e..ca8bf9a 100644 --- a/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp +++ b/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp @@ -6,6 +6,7 @@ * Copyright (C) 2009, 2010 Gustavo Noronha Silva <gns@gnome.org> * Copyright (C) Research In Motion Limited 2009. All rights reserved. * Copyright (C) 2010 Igalia S.L. + * Copyright (C) 2011 Apple Inc. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -65,6 +66,7 @@ #include "webkiterror.h" #include "webkitglobals.h" #include "webkitglobalsprivate.h" +#include "webkiticondatabase.h" #include "webkitnetworkrequest.h" #include "webkitnetworkrequestprivate.h" #include "webkitnetworkresponse.h" @@ -710,9 +712,9 @@ PassRefPtr<Widget> FrameLoaderClient::createJavaAppletWidget(const IntSize& plug return FrameLoaderClient::createPlugin(pluginSize, element, baseURL, paramNames, paramValues, "application/x-java-applet", false); } -ObjectContentType FrameLoaderClient::objectContentType(const KURL& url, const String& mimeType) +ObjectContentType FrameLoaderClient::objectContentType(const KURL& url, const String& mimeType, bool shouldPreferPlugInsForImages) { - return FrameLoader::defaultObjectContentType(url, mimeType); + return FrameLoader::defaultObjectContentType(url, mimeType, shouldPreferPlugInsForImages); } String FrameLoaderClient::overrideMediaType() const @@ -925,6 +927,10 @@ void FrameLoaderClient::dispatchDidReceiveIcon() if (m_loadingErrorPage) return; + const gchar* frameURI = webkit_web_frame_get_uri(m_frame); + WebKitIconDatabase* database = webkit_get_icon_database(); + g_signal_emit_by_name(database, "icon-loaded", m_frame, frameURI); + WebKitWebView* webView = getViewFromFrame(m_frame); // Avoid reporting favicons for non-main frames. diff --git a/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h b/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h index 3340837..b7ead7a 100644 --- a/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h +++ b/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h @@ -1,6 +1,6 @@ /* * Copyright (C) 2006 Zack Rusin <zack@kde.org> - * Copyright (C) 2006 Apple Computer, Inc. All rights reserved. + * Copyright (C) 2006, 2011 Apple Inc. All rights reserved. * Copyright (C) 2008 Collabora Ltd. All rights reserved. * * All rights reserved. @@ -126,7 +126,7 @@ namespace WebKit { virtual void registerForIconNotification(bool); - virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL& url, const WTF::String& mimeType); + virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL&, const WTF::String& mimeType, bool shouldPreferPlugInsForImages); virtual void setMainFrameDocumentReady(bool); diff --git a/Source/WebKit/gtk/WebCoreSupport/TextCheckerClientEnchant.cpp b/Source/WebKit/gtk/WebCoreSupport/TextCheckerClientEnchant.cpp index 74e8132..460000b 100644 --- a/Source/WebKit/gtk/WebCoreSupport/TextCheckerClientEnchant.cpp +++ b/Source/WebKit/gtk/WebCoreSupport/TextCheckerClientEnchant.cpp @@ -77,16 +77,16 @@ void TextCheckerClientEnchant::checkSpellingOfString(const UChar* text, int leng if (!dicts) return; - gchar* ctext = g_utf16_to_utf8(const_cast<gunichar2*>(text), length, 0, 0, 0); - int utflen = g_utf8_strlen(ctext, -1); + GOwnPtr<gchar> utf8Text(g_utf16_to_utf8(const_cast<gunichar2*>(text), length, 0, 0, 0)); + int utf8Length = g_utf8_strlen(utf8Text.get(), -1); PangoLanguage* language(pango_language_get_default()); - GOwnPtr<PangoLogAttr> attrs(g_new(PangoLogAttr, utflen+1)); + GOwnPtr<PangoLogAttr> attrs(g_new(PangoLogAttr, utf8Length + 1)); // pango_get_log_attrs uses an aditional position at the end of the text. - pango_get_log_attrs(ctext, -1, -1, language, attrs.get(), utflen+1); + pango_get_log_attrs(utf8Text.get(), -1, -1, language, attrs.get(), utf8Length + 1); - for (int i = 0; i < length+1; i++) { + for (int i = 0; i < length + 1; i++) { // We go through each character until we find an is_word_start, // then we get into an inner loop to find the is_word_end corresponding // to it. @@ -103,18 +103,15 @@ void TextCheckerClientEnchant::checkSpellingOfString(const UChar* text, int leng // check characters twice. i = end; - for (; dicts; dicts = dicts->next) { - EnchantDict* dict = static_cast<EnchantDict*>(dicts->data); - gchar* cstart = g_utf8_offset_to_pointer(ctext, start); - gint bytes = static_cast<gint>(g_utf8_offset_to_pointer(ctext, end) - cstart); - gchar* word = g_new0(gchar, bytes+1); - int result; + gchar* cstart = g_utf8_offset_to_pointer(utf8Text.get(), start); + gint bytes = static_cast<gint>(g_utf8_offset_to_pointer(utf8Text.get(), end) - cstart); + GOwnPtr<gchar> word(g_new0(gchar, bytes + 1)); - g_utf8_strncpy(word, cstart, end - start); + g_utf8_strncpy(word.get(), cstart, wordLength); - result = enchant_dict_check(dict, word, -1); - g_free(word); - if (result) { + for (; dicts; dicts = dicts->next) { + EnchantDict* dict = static_cast<EnchantDict*>(dicts->data); + if (enchant_dict_check(dict, word.get(), wordLength)) { *misspellingLocation = start; *misspellingLength = wordLength; } else { diff --git a/Source/WebKit/gtk/po/ChangeLog b/Source/WebKit/gtk/po/ChangeLog index 2b4b385..8febef5 100644 --- a/Source/WebKit/gtk/po/ChangeLog +++ b/Source/WebKit/gtk/po/ChangeLog @@ -1,3 +1,11 @@ +2011-03-23 Luca Ferretti <lferrett@gnome.org> + + Rubber-stamped by Gustavo Noronha. + + Italian translation update. + + * it.po: Updated. + 2011-02-26 Christian Dywan <christian@lanedo.com> Reviewed by Andreas Kling. diff --git a/Source/WebKit/gtk/po/it.po b/Source/WebKit/gtk/po/it.po index 0112a44..d30665a 100644 --- a/Source/WebKit/gtk/po/it.po +++ b/Source/WebKit/gtk/po/it.po @@ -1,12 +1,13 @@ # This is the Italian locale translation for WebKitGtk # Copyright (C) 2009 Free Software Foundation, Inc. -# Luca Ferretti <lferrett@gnome.org>, 2009, 2010. +# Luca Ferretti <lferrett@gnome.org>, 2009, 2010, 2011. +# msgid "" msgstr "" "Project-Id-Version: WebKitGtk\n" -"Report-Msgid-Bugs-To: http://bugs.webkit.org/\n" -"POT-Creation-Date: 2010-02-25 15:53-0300\n" -"PO-Revision-Date: 2010-03-18 22:13+0100\n" +"Report-Msgid-Bugs-To: http://bugs.webkit.org\n" +"POT-Creation-Date: 2010-12-27 15:26+0000\n" +"PO-Revision-Date: 2011-03-23 13:44+0100\n" "Last-Translator: Luca Ferretti <lferrett@gnome.org>\n" "Language-Team: Italian <tp@lists.linux.it>\n" "MIME-Version: 1.0\n" @@ -14,321 +15,564 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:535 +#: ../WebCoreSupport/ChromeClientGtk.cpp:589 msgid "Upload File" msgstr "Carica file" -#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:61 -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:143 +# merge da gtk +#: ../WebCoreSupport/ContextMenuClientGtk.cpp:63 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:194 msgid "Input _Methods" msgstr "Met_odi di input" # merge da gtk -#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:78 +#: ../WebCoreSupport/ContextMenuClientGtk.cpp:80 msgid "LRM _Left-to-right mark" msgstr "LRM - Contrassegno _sinistra-destra" # merge da gtk -#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:79 +#: ../WebCoreSupport/ContextMenuClientGtk.cpp:81 msgid "RLM _Right-to-left mark" msgstr "RLM - Contrassegno _destra-sinistra" # merge da gtk -#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:80 +#: ../WebCoreSupport/ContextMenuClientGtk.cpp:82 msgid "LRE Left-to-right _embedding" msgstr "LRE - _Inserimento sinistra-destra" # merge da gtk -#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:81 +#: ../WebCoreSupport/ContextMenuClientGtk.cpp:83 msgid "RLE Right-to-left e_mbedding" msgstr "RLE - I_nserimento destra-sinistra" # merge da gtk -#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:82 +#: ../WebCoreSupport/ContextMenuClientGtk.cpp:84 msgid "LRO Left-to-right _override" msgstr "LRO - _Forza sinistra-destra" # merge da gtk -#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:83 +#: ../WebCoreSupport/ContextMenuClientGtk.cpp:85 msgid "RLO Right-to-left o_verride" msgstr "RLO - F_orza destra-sinistra" # merge da gtk -#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:84 +#: ../WebCoreSupport/ContextMenuClientGtk.cpp:86 msgid "PDF _Pop directional formatting" msgstr "PDF - Ca_ttura formattazione direzionale" # merge da gtk -#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:85 +#: ../WebCoreSupport/ContextMenuClientGtk.cpp:87 msgid "ZWS _Zero width space" msgstr "ZWS - Spa_zio a larghezza nulla" # merge da gtk -#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:86 +#: ../WebCoreSupport/ContextMenuClientGtk.cpp:88 msgid "ZWJ Zero width _joiner" msgstr "ZWJ - Spazio di _unione a larghezza nulla" # merge da gtk -#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:87 +#: ../WebCoreSupport/ContextMenuClientGtk.cpp:89 msgid "ZWNJ Zero width _non-joiner" msgstr "ZWNJ - Spazio non di unione a _larghezza nulla" # merge da gtk -#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:109 -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:138 +#: ../WebCoreSupport/ContextMenuClientGtk.cpp:111 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:189 msgid "_Insert Unicode Control Character" msgstr "Inserisci carattere di controllo _Unicode" -#: WebKit/gtk/webkit/webkitdownload.cpp:266 +#: ../WebCoreSupport/FrameLoaderClientGtk.cpp:1180 +msgid "Load request cancelled" +msgstr "Richiesta di caricamento annullata" + +# messo una perché, in base al codice, sono diverse porte. +# Grazie a Daniele Forsi +#: ../WebCoreSupport/FrameLoaderClientGtk.cpp:1186 +msgid "Not allowed to use restricted network port" +msgstr "Non è concesso usare una porta di rete con restrizioni" + +#: ../WebCoreSupport/FrameLoaderClientGtk.cpp:1192 +msgid "URL cannot be shown" +msgstr "Impossibile mostrare l'URL" + +#: ../WebCoreSupport/FrameLoaderClientGtk.cpp:1198 +msgid "Frame load was interrupted" +msgstr "Il caricamento del frame è stato interrotto" + +#: ../WebCoreSupport/FrameLoaderClientGtk.cpp:1204 +msgid "Content with the specified MIME type cannot be shown" +msgstr "Impossibile mostrare il contenuto con il tipo MIME specificato" + +#: ../WebCoreSupport/FrameLoaderClientGtk.cpp:1210 +msgid "File does not exist" +msgstr "Il file non esiste" + +#: ../WebCoreSupport/FrameLoaderClientGtk.cpp:1216 +msgid "Plugin will handle load" +msgstr "Il plugin gestirà il caricamento" + +#: ../WebCoreSupport/FullscreenVideoController.cpp:385 +msgid "Play" +msgstr "Riproduci" + +#: ../WebCoreSupport/FullscreenVideoController.cpp:387 +msgid "Pause" +msgstr "Pausa" + +#: ../WebCoreSupport/FullscreenVideoController.cpp:533 +msgid "Play / Pause" +msgstr "Riproduci / Pausa" + +#: ../WebCoreSupport/FullscreenVideoController.cpp:533 +msgid "Play or pause the media" +msgstr "Riproduce o mette in pausa il contenuto multimediale" + +#: ../WebCoreSupport/FullscreenVideoController.cpp:541 +msgid "Time:" +msgstr "Tempo:" + +#: ../WebCoreSupport/FullscreenVideoController.cpp:565 +msgid "Exit Fullscreen" +msgstr "Finestra normale" + +#: ../WebCoreSupport/FullscreenVideoController.cpp:565 +msgid "Exit from fullscreen mode" +msgstr "Esce dalla modalità schermo intero" + +#: ../webkit/webkitdownload.cpp:273 msgid "Network Request" msgstr "Richiesta di rete" -#: WebKit/gtk/webkit/webkitdownload.cpp:267 +#: ../webkit/webkitdownload.cpp:274 msgid "The network request for the URI that should be downloaded" msgstr "La richiesta di rete per l'URI che dovrebbe essere scaricato" -#: WebKit/gtk/webkit/webkitdownload.cpp:281 +#: ../webkit/webkitdownload.cpp:288 msgid "Network Response" msgstr "Risposta di rete" -#: WebKit/gtk/webkit/webkitdownload.cpp:282 +#: ../webkit/webkitdownload.cpp:289 msgid "The network response for the URI that should be downloaded" msgstr "La risposta di rete per l'URI che dovrebbe essere scaricato" -#: WebKit/gtk/webkit/webkitdownload.cpp:296 +#: ../webkit/webkitdownload.cpp:303 msgid "Destination URI" msgstr "URI di destinazione" -#: WebKit/gtk/webkit/webkitdownload.cpp:297 +#: ../webkit/webkitdownload.cpp:304 msgid "The destination URI where to save the file" msgstr "L'URI di destinazione in cui salvare il file" -#: WebKit/gtk/webkit/webkitdownload.cpp:311 +#: ../webkit/webkitdownload.cpp:318 msgid "Suggested Filename" msgstr "Nome file suggerito" -#: WebKit/gtk/webkit/webkitdownload.cpp:312 +#: ../webkit/webkitdownload.cpp:319 msgid "The filename suggested as default when saving" msgstr "Il nome di file suggerito come predefinito quando si salva" -#: WebKit/gtk/webkit/webkitdownload.cpp:329 +#: ../webkit/webkitdownload.cpp:336 msgid "Progress" msgstr "Avanzamento" -#: WebKit/gtk/webkit/webkitdownload.cpp:330 +#: ../webkit/webkitdownload.cpp:337 msgid "Determines the current progress of the download" msgstr "Determina l'avanzamento corrente dello scaricamento" -#: WebKit/gtk/webkit/webkitdownload.cpp:343 +#: ../webkit/webkitdownload.cpp:350 msgid "Status" msgstr "Stato" -#: WebKit/gtk/webkit/webkitdownload.cpp:344 +#: ../webkit/webkitdownload.cpp:351 msgid "Determines the current status of the download" msgstr "Determina lo stato corrente dello scaricamento" -#: WebKit/gtk/webkit/webkitdownload.cpp:359 +#: ../webkit/webkitdownload.cpp:366 msgid "Current Size" msgstr "Dimensione corrente" -#: WebKit/gtk/webkit/webkitdownload.cpp:360 +#: ../webkit/webkitdownload.cpp:367 msgid "The length of the data already downloaded" msgstr "La lunghezza dei dati già scaricati" -#: WebKit/gtk/webkit/webkitdownload.cpp:374 +#: ../webkit/webkitdownload.cpp:381 msgid "Total Size" msgstr "Dimensione totale" -#: WebKit/gtk/webkit/webkitdownload.cpp:375 +#: ../webkit/webkitdownload.cpp:382 msgid "The total size of the file" msgstr "La dimensione totale del file" -#: WebKit/gtk/webkit/webkitdownload.cpp:526 +#: ../webkit/webkitdownload.cpp:534 msgid "User cancelled the download" msgstr "L'utente ha annullato lo scaricamento" -#: WebKit/gtk/webkit/webkitsoupauthdialog.c:248 +#: ../webkit/webkithittestresult.cpp:156 +msgid "Context" +msgstr "Contesto" + +#: ../webkit/webkithittestresult.cpp:157 +msgid "Flags indicating the kind of target that received the event." +msgstr "Flag che indicano il tipo di destinazione che ha ricevuto l'evento." + +#: ../webkit/webkithittestresult.cpp:171 +msgid "Link URI" +msgstr "URI collegamento" + +#: ../webkit/webkithittestresult.cpp:172 +msgid "The URI to which the target that received the event points, if any." +msgstr "" +"L'URI a cui punta la destinazione che ha ricevuto l'evento, se presente." + +#: ../webkit/webkithittestresult.cpp:185 +msgid "Image URI" +msgstr "URI immagine" + +#: ../webkit/webkithittestresult.cpp:186 +msgid "" +"The URI of the image that is part of the target that received the event, if " +"any." +msgstr "" +"L'URI dell'immagine che è parte della destinazione che ha ricevuto l'evento, " +"se presente." + +#: ../webkit/webkithittestresult.cpp:199 +msgid "Media URI" +msgstr "URI contenuto multimediale" + +#: ../webkit/webkithittestresult.cpp:200 +msgid "" +"The URI of the media that is part of the target that received the event, if " +"any." +msgstr "" +"L'URI del contenuto multimediale che è parte della destinazione che ha " +"ricevuto l'evento, se presente." + +#: ../webkit/webkithittestresult.cpp:221 +msgid "Inner node" +msgstr "Nodo interno" + +#: ../webkit/webkithittestresult.cpp:222 +msgid "The inner DOM node associated with the hit test result." +msgstr "Il nodo DOM interno associato con il risultato dell'hit test." + +#: ../webkit/webkitnetworkrequest.cpp:134 +#: ../webkit/webkitnetworkresponse.cpp:134 ../webkit/webkitwebframe.cpp:323 +#: ../webkit/webkitwebhistoryitem.cpp:176 ../webkit/webkitwebresource.cpp:126 +#: ../webkit/webkitwebview.cpp:2997 +msgid "URI" +msgstr "URI" + +#: ../webkit/webkitnetworkrequest.cpp:135 +msgid "The URI to which the request will be made." +msgstr "L'URI a cui sarà fatta la richiesta." + +#: ../webkit/webkitnetworkrequest.cpp:148 +#: ../webkit/webkitnetworkresponse.cpp:148 +msgid "Message" +msgstr "Messaggio" + +#: ../webkit/webkitnetworkrequest.cpp:149 +msgid "The SoupMessage that backs the request." +msgstr "Il SoupMessage che accompagna la richesta." + +#: ../webkit/webkitnetworkresponse.cpp:135 +msgid "The URI to which the response will be made." +msgstr "L'URI a cui verrà data la risposta." + +#: ../webkit/webkitnetworkresponse.cpp:149 +msgid "The SoupMessage that backs the response." +msgstr "Il SoupMessage che accompagna la risposta." + +#: ../webkit/webkitsecurityorigin.cpp:150 +msgid "Protocol" +msgstr "Protocollo" + +# origine di sicurezza?????? +#: ../webkit/webkitsecurityorigin.cpp:151 +msgid "The protocol of the security origin" +msgstr "Il protocollo dell'origine della sicurezza" + +#: ../webkit/webkitsecurityorigin.cpp:164 +msgid "Host" +msgstr "Host" + +#: ../webkit/webkitsecurityorigin.cpp:165 +msgid "The host of the security origin" +msgstr "L'host dell'origine della sicurezza" + +#: ../webkit/webkitsecurityorigin.cpp:178 +msgid "Port" +msgstr "Porta" + +#: ../webkit/webkitsecurityorigin.cpp:179 +msgid "The port of the security origin" +msgstr "La porta dell'origine della sicurezza" + +#: ../webkit/webkitsecurityorigin.cpp:192 +msgid "Web Database Usage" +msgstr "Uso database web" + +#: ../webkit/webkitsecurityorigin.cpp:193 +msgid "The cumulative size of all web databases in the security origin" +msgstr "" +"La dimensione cumulativa di tutti i database web nell'origine della sicurezza" + +#: ../webkit/webkitsecurityorigin.cpp:205 +msgid "Web Database Quota" +msgstr "Quota database web" + +#: ../webkit/webkitsecurityorigin.cpp:206 +msgid "The web database quota of the security origin in bytes" +msgstr "La quota di database web dell'origine della sicurezza in byte" + +#: ../webkit/webkitsoupauthdialog.c:264 #, c-format msgid "A username and password are being requested by the site %s" msgstr "Il sito %s richiede un nome utente e una password" -#: WebKit/gtk/webkit/webkitsoupauthdialog.c:278 +#: ../webkit/webkitsoupauthdialog.c:294 msgid "Server message:" msgstr "Messaggio del server:" -#: WebKit/gtk/webkit/webkitsoupauthdialog.c:291 +#: ../webkit/webkitsoupauthdialog.c:307 msgid "Username:" msgstr "Nome utente:" -#: WebKit/gtk/webkit/webkitsoupauthdialog.c:293 +#: ../webkit/webkitsoupauthdialog.c:309 msgid "Password:" msgstr "Password:" # checkbox -#: WebKit/gtk/webkit/webkitsoupauthdialog.c:302 +#: ../webkit/webkitsoupauthdialog.c:318 msgid "_Remember password" msgstr "_Ricordare la password" -#: WebKit/gtk/webkit/webkitwebframe.cpp:298 +#: ../webkit/webkitwebdatabase.cpp:173 +msgid "Security Origin" +msgstr "Origine della sicurezza" + +#: ../webkit/webkitwebdatabase.cpp:174 +msgid "The security origin of the database" +msgstr "L'origine della sicurezza del database" + +#: ../webkit/webkitwebdatabase.cpp:187 ../webkit/webkitwebframe.cpp:309 msgid "Name" msgstr "Nome" -#: WebKit/gtk/webkit/webkitwebframe.cpp:299 +#: ../webkit/webkitwebdatabase.cpp:188 +msgid "The name of the Web Database database" +msgstr "Il nome del database Web Database" + +#: ../webkit/webkitwebdatabase.cpp:201 +msgid "Display Name" +msgstr "Nome visibile" + +#: ../webkit/webkitwebdatabase.cpp:202 +msgid "The display name of the Web Storage database" +msgstr "Il nome visibile del database Web Storage" + +#: ../webkit/webkitwebdatabase.cpp:215 +msgid "Expected Size" +msgstr "Dimensione attesa" + +#: ../webkit/webkitwebdatabase.cpp:216 +msgid "The expected size of the Web Database database" +msgstr "La dimensione attesa del database Web Database" + +#: ../webkit/webkitwebdatabase.cpp:228 +msgid "Size" +msgstr "Dimensione" + +#: ../webkit/webkitwebdatabase.cpp:229 +msgid "The current size of the Web Database database" +msgstr "La dimensione attuale del database Web Database" + +#: ../webkit/webkitwebdatabase.cpp:241 +msgid "Filename" +msgstr "Nome file" + +#: ../webkit/webkitwebdatabase.cpp:242 +msgid "The absolute filename of the Web Storage database" +msgstr "Il nome file assoluto del database Web Storage" + +#: ../webkit/webkitwebframe.cpp:310 msgid "The name of the frame" -msgstr "Il nome della cornice" +msgstr "Il nome del frame" -#: WebKit/gtk/webkit/webkitwebframe.cpp:305 -#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:146 -#: WebKit/gtk/webkit/webkitwebview.cpp:2318 +#: ../webkit/webkitwebframe.cpp:316 ../webkit/webkitwebhistoryitem.cpp:144 +#: ../webkit/webkitwebview.cpp:2983 msgid "Title" msgstr "Titolo" -#: WebKit/gtk/webkit/webkitwebframe.cpp:306 +#: ../webkit/webkitwebframe.cpp:317 msgid "The document title of the frame" -msgstr "Il titolo del documento nella cornice" - -#: WebKit/gtk/webkit/webkitwebframe.cpp:312 -#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:178 -#: WebKit/gtk/webkit/webkitwebview.cpp:2332 -msgid "URI" -msgstr "URI" +msgstr "Il titolo del documento nel frame" -#: WebKit/gtk/webkit/webkitwebframe.cpp:313 +#: ../webkit/webkitwebframe.cpp:324 msgid "The current URI of the contents displayed by the frame" -msgstr "L'URI corrente del contenuto mostrato dalla cornice" +msgstr "L'URI corrente del contenuto mostrato dal frame" -#: WebKit/gtk/webkit/webkitwebframe.cpp:344 +#: ../webkit/webkitwebframe.cpp:355 msgid "Horizontal Scrollbar Policy" msgstr "Politica barra scorrimento orizzontale" -#: WebKit/gtk/webkit/webkitwebframe.cpp:345 +#: ../webkit/webkitwebframe.cpp:356 msgid "" "Determines the current policy for the horizontal scrollbar of the frame." msgstr "" -"Determina la politica attuale per la barra di scorrimento orizzontale della " -"cornice." +"Determina la politica attuale per la barra di scorrimento orizzontale del " +"frame." -#: WebKit/gtk/webkit/webkitwebframe.cpp:362 +#: ../webkit/webkitwebframe.cpp:373 msgid "Vertical Scrollbar Policy" msgstr "Politica barra scorrimento verticale" -#: WebKit/gtk/webkit/webkitwebframe.cpp:363 +#: ../webkit/webkitwebframe.cpp:374 msgid "Determines the current policy for the vertical scrollbar of the frame." msgstr "" "Determina la politica attuale per la barra di scorrimento verticale del " -"cornice." +"frame." -#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:147 +#: ../webkit/webkitwebhistoryitem.cpp:145 msgid "The title of the history item" msgstr "Il titolo dell'elemento di cronologia" -#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:162 +#: ../webkit/webkitwebhistoryitem.cpp:160 msgid "Alternate Title" msgstr "Titolo alternativo" -#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:163 +#: ../webkit/webkitwebhistoryitem.cpp:161 msgid "The alternate title of the history item" msgstr "Il titolo alternativo dell'elemento di cronologia" -#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:179 +#: ../webkit/webkitwebhistoryitem.cpp:177 msgid "The URI of the history item" msgstr "L'URI dell'elemento di cronologia" -#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:194 -#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:173 +#: ../webkit/webkitwebhistoryitem.cpp:192 +#: ../webkit/webkitwebnavigationaction.cpp:171 msgid "Original URI" msgstr "URI originale" -#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:195 +#: ../webkit/webkitwebhistoryitem.cpp:193 msgid "The original URI of the history item" msgstr "L'URI originale dell'elemento di cronologia" -#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:210 +#: ../webkit/webkitwebhistoryitem.cpp:208 msgid "Last visited Time" msgstr "Data ultima visita" -#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:211 +#: ../webkit/webkitwebhistoryitem.cpp:209 msgid "The time at which the history item was last visited" msgstr "" "La data in cui l'elemento di cronologia è stato visitato l'ultima volta" # lasciato non tradotto perchè termine interno di WebKitGtk # cfr http://webkitgtk.org/reference/webkitgtk-WebKitWebInspector.html#WebKitWebInspector--web-view -#: WebKit/gtk/webkit/webkitwebinspector.cpp:268 +#: ../webkit/webkitwebinspector.cpp:270 msgid "Web View" -msgstr "Web View" +msgstr "Web view" -#: WebKit/gtk/webkit/webkitwebinspector.cpp:269 +#: ../webkit/webkitwebinspector.cpp:271 msgid "The Web View that renders the Web Inspector itself" -msgstr "La Web View che esegue il rendering dell'Ispettore web stesso" +msgstr "La Web view che esegue il rendering dell'Ispettore web stesso" -#: WebKit/gtk/webkit/webkitwebinspector.cpp:282 +#: ../webkit/webkitwebinspector.cpp:284 msgid "Inspected URI" msgstr "URI ispezionato" -#: WebKit/gtk/webkit/webkitwebinspector.cpp:283 +#: ../webkit/webkitwebinspector.cpp:285 msgid "The URI that is currently being inspected" msgstr "L'URI che attualmente è ispezionato" -#: WebKit/gtk/webkit/webkitwebinspector.cpp:299 +#: ../webkit/webkitwebinspector.cpp:301 msgid "Enable JavaScript profiling" msgstr "Abilita profiling JavaScript" # FIXME # oppure Esegue il profiling? -#: WebKit/gtk/webkit/webkitwebinspector.cpp:300 +#: ../webkit/webkitwebinspector.cpp:302 msgid "Profile the executed JavaScript." msgstr "Traccia un profilo del codice JavaScript eseguito." -#: WebKit/gtk/webkit/webkitwebinspector.cpp:315 +#: ../webkit/webkitwebinspector.cpp:317 msgid "Enable Timeline profiling" msgstr "Abilita profiling Timeline" -#: WebKit/gtk/webkit/webkitwebinspector.cpp:316 +#: ../webkit/webkitwebinspector.cpp:318 msgid "Profile the WebCore instrumentation." msgstr "Traccia un profilo della strumentazione WebCore." -#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:158 +#: ../webkit/webkitwebnavigationaction.cpp:156 msgid "Reason" msgstr "Motivo" -#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:159 +#: ../webkit/webkitwebnavigationaction.cpp:157 msgid "The reason why this navigation is occurring" msgstr "Il motivo per cui questa navigazione si sta verificando" -#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:174 +#: ../webkit/webkitwebnavigationaction.cpp:172 msgid "The URI that was requested as the target for the navigation" -msgstr "L'URI che è stata richiesta come destinazione della navigazione" +msgstr "L'URI che è stato richiesto come destinazione della navigazione" -#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:188 +#: ../webkit/webkitwebnavigationaction.cpp:186 msgid "Button" msgstr "Pulsante" -#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:189 +#: ../webkit/webkitwebnavigationaction.cpp:187 msgid "The button used to click" msgstr "Il pulsante usato per fare clic" -#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:204 +#: ../webkit/webkitwebnavigationaction.cpp:202 msgid "Modifier state" msgstr "Stato modificatori" -#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:205 +#: ../webkit/webkitwebnavigationaction.cpp:203 msgid "A bitmask representing the state of the modifier keys" msgstr "Una maschera di bit che rappresenta lo stato dei tasti modificatori" -#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:220 +#: ../webkit/webkitwebnavigationaction.cpp:218 msgid "Target frame" -msgstr "Cornice destinazione" +msgstr "Frame destinazione" -#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:221 +#: ../webkit/webkitwebnavigationaction.cpp:219 msgid "The target frame for the navigation" -msgstr "La cornice di destinazione per la navigazione" +msgstr "Il frame di destinazione per la navigazione" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:237 +#: ../webkit/webkitwebresource.cpp:127 +msgid "The uri of the resource" +msgstr "L'URI della risorsa" + +#: ../webkit/webkitwebresource.cpp:141 +msgid "MIME Type" +msgstr "Tipo MIME" + +#: ../webkit/webkitwebresource.cpp:142 +msgid "The MIME type of the resource" +msgstr "Il tipo MIME della risorsa" + +#: ../webkit/webkitwebresource.cpp:156 ../webkit/webkitwebview.cpp:3132 +msgid "Encoding" +msgstr "Codifica" + +#: ../webkit/webkitwebresource.cpp:157 +msgid "The text encoding name of the resource" +msgstr "Il nome di codifica del testo della risorsa" + +#: ../webkit/webkitwebresource.cpp:172 +msgid "Frame Name" +msgstr "Nome frame" + +#: ../webkit/webkitwebresource.cpp:173 +msgid "The frame name of the resource" +msgstr "Il nome frame della risorsa" + +#: ../webkit/webkitwebsettings.cpp:252 msgid "Default Encoding" msgstr "Codifica predefinita" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:238 +#: ../webkit/webkitwebsettings.cpp:253 msgid "The default encoding used to display text." msgstr "La codifica predefinita usata per mostrare il testo." @@ -337,90 +581,90 @@ msgstr "La codifica predefinita usata per mostrare il testo." # * nella "breve" si lascia la forma inglese (es. sans serif) nella lunga # si mette la forma italiana (es. senza grazie) # Ciò per mantenere corte le "brevi" e per permettere che entrambe le diciture siano presenti -#: WebKit/gtk/webkit/webkitwebsettings.cpp:246 +#: ../webkit/webkitwebsettings.cpp:261 msgid "Cursive Font Family" msgstr "Famiglia carattere corsivo" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:247 +#: ../webkit/webkitwebsettings.cpp:262 msgid "The default Cursive font family used to display text." msgstr "" "La famiglia del tipo di carattere \"corsivo\" predefinito usata per mostrare " "il testo." -#: WebKit/gtk/webkit/webkitwebsettings.cpp:255 +#: ../webkit/webkitwebsettings.cpp:270 msgid "Default Font Family" msgstr "Famiglia carattere predefinita" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:256 +#: ../webkit/webkitwebsettings.cpp:271 msgid "The default font family used to display text." msgstr "" "La famiglia del tipo di carattere predefinito usata per mostrare il testo." -#: WebKit/gtk/webkit/webkitwebsettings.cpp:264 +#: ../webkit/webkitwebsettings.cpp:279 msgid "Fantasy Font Family" msgstr "Famiglia carattere fantasia" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:265 +#: ../webkit/webkitwebsettings.cpp:280 msgid "The default Fantasy font family used to display text." msgstr "" "La famiglia del tipo di carattere \"fantasia\" predefinito usata per " "mostrare il testo." -#: WebKit/gtk/webkit/webkitwebsettings.cpp:273 +#: ../webkit/webkitwebsettings.cpp:288 msgid "Monospace Font Family" msgstr "Famiglia carattere monospace" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:274 +#: ../webkit/webkitwebsettings.cpp:289 msgid "The default font family used to display monospace text." msgstr "" "La famiglia del tipo di carattere predefinito usata per mostrare il testo a " "spaziatura fissa." -#: WebKit/gtk/webkit/webkitwebsettings.cpp:282 +#: ../webkit/webkitwebsettings.cpp:297 msgid "Sans Serif Font Family" msgstr "Famiglia carattere sans serif" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:283 +#: ../webkit/webkitwebsettings.cpp:298 msgid "The default Sans Serif font family used to display text." msgstr "" "La famiglia del tipo di carattere \"senza grazie\" predefinito usata per " "mostrare il testo." -#: WebKit/gtk/webkit/webkitwebsettings.cpp:291 +#: ../webkit/webkitwebsettings.cpp:306 msgid "Serif Font Family" msgstr "Famiglia carattere serif" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:292 +#: ../webkit/webkitwebsettings.cpp:307 msgid "The default Serif font family used to display text." msgstr "" "La famiglia del tipo di carattere \"con grazie\" predefinito usata per " "mostrare il testo." -#: WebKit/gtk/webkit/webkitwebsettings.cpp:300 +#: ../webkit/webkitwebsettings.cpp:315 msgid "Default Font Size" msgstr "Dimensione predefinita carattere" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:301 +#: ../webkit/webkitwebsettings.cpp:316 msgid "The default font size used to display text." msgstr "" "La dimensione predefinita per il tipo di carattere usato per mostrare il " "testo." -#: WebKit/gtk/webkit/webkitwebsettings.cpp:309 +#: ../webkit/webkitwebsettings.cpp:324 msgid "Default Monospace Font Size" msgstr "Dimensione predefinita carattere monospace" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:310 +#: ../webkit/webkitwebsettings.cpp:325 msgid "The default font size used to display monospace text." msgstr "" "La dimensione predefinita per il tipo di carattere usato per mostrare il " "testo a larghezza fissa." -#: WebKit/gtk/webkit/webkitwebsettings.cpp:318 +#: ../webkit/webkitwebsettings.cpp:333 msgid "Minimum Font Size" msgstr "Dimensione minima carattere" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:319 +#: ../webkit/webkitwebsettings.cpp:334 msgid "The minimum font size used to display text." msgstr "" "La dimensione minima per il tipo di carattere usato per mostrare il testo." @@ -437,221 +681,245 @@ msgstr "" # size alone. This will assure that your content will never display at sizes less than 12 points, # but the functional font size boundary of the web view will remain at 9 points to prevent any # chance of displaying unnecessarily small text. -#: WebKit/gtk/webkit/webkitwebsettings.cpp:327 +#: ../webkit/webkitwebsettings.cpp:342 msgid "Minimum Logical Font Size" msgstr "Dimensione minima naturale carattere" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:328 +#: ../webkit/webkitwebsettings.cpp:343 msgid "The minimum logical font size used to display text." msgstr "" "La dimensione minima naturale per il tipo di carattere usato per mostrare il " "testo." -#: WebKit/gtk/webkit/webkitwebsettings.cpp:347 +#: ../webkit/webkitwebsettings.cpp:362 msgid "Enforce 96 DPI" msgstr "Forza 96 DPI" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:348 +#: ../webkit/webkitwebsettings.cpp:363 msgid "Enforce a resolution of 96 DPI" msgstr "Forza la risoluzione a 96 DPI" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:356 +#: ../webkit/webkitwebsettings.cpp:371 msgid "Auto Load Images" msgstr "Caricamento automatico immagini" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:357 +#: ../webkit/webkitwebsettings.cpp:372 msgid "Load images automatically." msgstr "Carica le immagini in modo automatico." -#: WebKit/gtk/webkit/webkitwebsettings.cpp:365 +#: ../webkit/webkitwebsettings.cpp:380 msgid "Auto Shrink Images" msgstr "Restringimento automatico immagini" # assolutamente libertario -#: WebKit/gtk/webkit/webkitwebsettings.cpp:366 +#: ../webkit/webkitwebsettings.cpp:381 msgid "Automatically shrink standalone images to fit." msgstr "Restringe automaticamente le immagini singole alla dimensione adatta." -#: WebKit/gtk/webkit/webkitwebsettings.cpp:374 +#: ../webkit/webkitwebsettings.cpp:389 msgid "Print Backgrounds" msgstr "Stampa sfondi" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:375 +#: ../webkit/webkitwebsettings.cpp:390 msgid "Whether background images should be printed." msgstr "Indica se le immagini di sfondo devono essere stampate." -#: WebKit/gtk/webkit/webkitwebsettings.cpp:383 +#: ../webkit/webkitwebsettings.cpp:398 msgid "Enable Scripts" msgstr "Abilita script" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:384 +#: ../webkit/webkitwebsettings.cpp:399 msgid "Enable embedded scripting languages." msgstr "Abilita i linguaggi di scripting incorporati." -#: WebKit/gtk/webkit/webkitwebsettings.cpp:392 +#: ../webkit/webkitwebsettings.cpp:407 msgid "Enable Plugins" msgstr "Abilita plugin" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:393 +#: ../webkit/webkitwebsettings.cpp:408 msgid "Enable embedded plugin objects." msgstr "Abilita gli oggetti plugin incorporati." -#: WebKit/gtk/webkit/webkitwebsettings.cpp:401 +#: ../webkit/webkitwebsettings.cpp:416 msgid "Resizable Text Areas" msgstr "Aree testo ridimensionabili" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:402 +#: ../webkit/webkitwebsettings.cpp:417 msgid "Whether text areas are resizable." msgstr "Indica se le aree di testo sono ridimensionabili." -#: WebKit/gtk/webkit/webkitwebsettings.cpp:409 +#: ../webkit/webkitwebsettings.cpp:424 msgid "User Stylesheet URI" msgstr "URI foglio stile utente" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:410 +#: ../webkit/webkitwebsettings.cpp:425 msgid "The URI of a stylesheet that is applied to every page." msgstr "L'URI di un foglio di stile che è applicato a ogni pagina." -#: WebKit/gtk/webkit/webkitwebsettings.cpp:425 +#: ../webkit/webkitwebsettings.cpp:440 msgid "Zoom Stepping Value" msgstr "Valore passo ingrandimento" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:426 +#: ../webkit/webkitwebsettings.cpp:441 msgid "The value by which the zoom level is changed when zooming in or out." msgstr "" "Il valore di variazione del livello di ingrandimento quando si aumenta o " "riduce l'ingrandimento." -#: WebKit/gtk/webkit/webkitwebsettings.cpp:444 +#: ../webkit/webkitwebsettings.cpp:459 msgid "Enable Developer Extras" msgstr "Abilita extra per sviluppatori" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:445 +#: ../webkit/webkitwebsettings.cpp:460 msgid "Enables special extensions that help developers" msgstr "Abilita estensioni speciali che sono d'aiuto per gli sviluppatori" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:465 +#: ../webkit/webkitwebsettings.cpp:480 msgid "Enable Private Browsing" msgstr "Abilita navigazione privata" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:466 +#: ../webkit/webkitwebsettings.cpp:481 msgid "Enables private browsing mode" msgstr "Abilita la modalità di navigazione privata" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:481 +#: ../webkit/webkitwebsettings.cpp:496 msgid "Enable Spell Checking" msgstr "Abilita controllo ortografico" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:482 +#: ../webkit/webkitwebsettings.cpp:497 msgid "Enables spell checking while typing" msgstr "Abilita il controllo ortografico durante la digitazione" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:505 +#: ../webkit/webkitwebsettings.cpp:520 msgid "Languages to use for spell checking" msgstr "Lingue da usare per controllo ortografico" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:506 +#: ../webkit/webkitwebsettings.cpp:521 msgid "Comma separated list of languages to use for spell checking" msgstr "" "Elenco separato da virgole delle lingue da usare per il controllo ortografico" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:520 +#: ../webkit/webkitwebsettings.cpp:535 msgid "Enable Caret Browsing" msgstr "Abilita navigazione con cursore" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:521 -msgid "Whether to enable accessibility enhanced keyboard navigation" +#: ../webkit/webkitwebsettings.cpp:536 +msgid "Whether to enable accesibility enhanced keyboard navigation" msgstr "" "Indica se abilitare la navigazione da tastiera ottimizzata per " "l'accessibilità" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:536 +#: ../webkit/webkitwebsettings.cpp:551 msgid "Enable HTML5 Database" -msgstr "Abilita Database HTML5" +msgstr "Abilita database HTML5" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:537 +#: ../webkit/webkitwebsettings.cpp:552 msgid "Whether to enable HTML5 database support" msgstr "Indica se abilitare il supporto ai database di HTML5" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:552 +#: ../webkit/webkitwebsettings.cpp:567 msgid "Enable HTML5 Local Storage" -msgstr "Abilita Local Storage HTML5" +msgstr "Abilita local storage HTML5" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:553 +#: ../webkit/webkitwebsettings.cpp:568 msgid "Whether to enable HTML5 Local Storage support" msgstr "Indica se abilitare il supporto a local storage di HTML5" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:567 +#: ../webkit/webkitwebsettings.cpp:582 msgid "Enable XSS Auditor" msgstr "Abilita auditor XSS" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:568 -msgid "Whether to enable teh XSS auditor" +#: ../webkit/webkitwebsettings.cpp:583 +msgid "Whether to enable the XSS auditor" msgstr "Indica se abilitare l'auditor XSS" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:586 +#: ../webkit/webkitwebsettings.cpp:601 +msgid "Enable Spatial Navigation" +msgstr "Abilita navigazione spaziale" + +#: ../webkit/webkitwebsettings.cpp:602 +msgid "Whether to enable Spatial Navigation" +msgstr "Indica se abilitare la navigazione spaziale" + +#: ../webkit/webkitwebsettings.cpp:620 +msgid "Enable Frame Flattening" +msgstr "Abilita appiattimento frame" + +#: ../webkit/webkitwebsettings.cpp:621 +msgid "Whether to enable Frame Flattening" +msgstr "Indica se abilitare l'appiattimento dei frame" + +#: ../webkit/webkitwebsettings.cpp:638 msgid "User Agent" -msgstr "User Agent" +msgstr "User agent" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:587 +#: ../webkit/webkitwebsettings.cpp:639 msgid "The User-Agent string used by WebKitGtk" msgstr "La stringa User-Agent usata da WebKitGtk" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:602 +#: ../webkit/webkitwebsettings.cpp:654 msgid "JavaScript can open windows automatically" -msgstr "JavaScript può aprire automatamente le fineste" +msgstr "JavaScript può aprire automaticamente le finestre" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:603 +#: ../webkit/webkitwebsettings.cpp:655 msgid "Whether JavaScript can open windows automatically" -msgstr "Indica se JavaScript può aprire automatamente le fineste" +msgstr "Indica se JavaScript può aprire automaticamente le finestre" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:618 +#: ../webkit/webkitwebsettings.cpp:669 +msgid "JavaScript can access Clipboard" +msgstr "JavaScript può accedere agli appunti" + +#: ../webkit/webkitwebsettings.cpp:670 +msgid "Whether JavaScript can access Clipboard" +msgstr "Indica se JavaScript può accedere agli appunti" + +#: ../webkit/webkitwebsettings.cpp:686 msgid "Enable offline web application cache" msgstr "Abilita cache per applicazioni web fuori rete" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:619 +#: ../webkit/webkitwebsettings.cpp:687 msgid "Whether to enable offline web application cache" msgstr "Indica se abilitare la cache per le applicazioni web fuori rete" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:646 +#: ../webkit/webkitwebsettings.cpp:715 msgid "Editing behavior" msgstr "Comportamento editing" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:647 +#: ../webkit/webkitwebsettings.cpp:716 msgid "The behavior mode to use in editing mode" msgstr "La modalità di comportamento da usare in modalità editing" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:663 +#: ../webkit/webkitwebsettings.cpp:732 msgid "Enable universal access from file URIs" -msgstr "Abilita accesso univesale dagli URI di file" +msgstr "Abilita accesso universale dagli URI di file" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:664 +#: ../webkit/webkitwebsettings.cpp:733 msgid "Whether to allow universal access from file URIs" -msgstr "Indica se abilitare l'accesso univesale dagli URI di file" +msgstr "Indica se abilitare l'accesso universale dagli URI di file" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:679 +#: ../webkit/webkitwebsettings.cpp:748 msgid "Enable DOM paste" msgstr "Abilita DOM pasting" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:680 +#: ../webkit/webkitwebsettings.cpp:749 msgid "Whether to enable DOM paste" msgstr "Indica se abilitare il DOM pasting" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:698 +#: ../webkit/webkitwebsettings.cpp:767 msgid "Tab key cycles through elements" msgstr "Tasto TAB per passare tra gli elementi" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:699 +#: ../webkit/webkitwebsettings.cpp:768 msgid "Whether the tab key cycles through elements on the page." msgstr "" "Indica se il tasto TAB permette di passare ciclicamente tra gli elementi " "della pagina." -#: WebKit/gtk/webkit/webkitwebsettings.cpp:719 +#: ../webkit/webkitwebsettings.cpp:788 msgid "Enable Default Context Menu" msgstr "Abilita menù contestuale predefinito" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:720 +#: ../webkit/webkitwebsettings.cpp:789 msgid "" "Enables the handling of right-clicks for the creation of the default context " "menu" @@ -659,251 +927,311 @@ msgstr "" "Abilita la gestione dei clic destri per la creazione del menù contestuale " "predefinito" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:740 +#: ../webkit/webkitwebsettings.cpp:809 msgid "Enable Site Specific Quirks" msgstr "Abilita scappatoie specifiche per siti" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:741 +#: ../webkit/webkitwebsettings.cpp:810 msgid "Enables the site-specific compatibility workarounds" msgstr "" "Abilita delle correzioni di compatibilità specifiche per determinati siti" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:763 +#: ../webkit/webkitwebsettings.cpp:832 msgid "Enable page cache" msgstr "Abilita la cache di pagina" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:764 +#: ../webkit/webkitwebsettings.cpp:833 msgid "Whether the page cache should be used" msgstr "Indica se usare la cache delle pagine" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:784 +#: ../webkit/webkitwebsettings.cpp:853 msgid "Auto Resize Window" msgstr "Ridimensionamento automatico finestra" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:785 +#: ../webkit/webkitwebsettings.cpp:854 msgid "Automatically resize the toplevel window when a page requests it" msgstr "" "Ridimensiona automaticamente la finestra di livello principale quando " "richiesto da una pagina" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:817 +#: ../webkit/webkitwebsettings.cpp:886 msgid "Enable Java Applet" msgstr "Abilita applet Java" -#: WebKit/gtk/webkit/webkitwebsettings.cpp:818 +#: ../webkit/webkitwebsettings.cpp:887 msgid "Whether Java Applet support through <applet> should be enabled" msgstr "Indica se abilitare il supporto alle applet Java attraverso <applet>" -#: WebKit/gtk/webkit/webkitwebview.cpp:2319 +#: ../webkit/webkitwebsettings.cpp:901 +msgid "Enable Hyperlink Auditing" +msgstr "Abilita auditing hyperlink" + +#: ../webkit/webkitwebsettings.cpp:902 +msgid "Whether <a ping> should be able to send pings" +msgstr "Indica se <a ping> sia in grado di inviare ping" + +#: ../webkit/webkitwebsettings.cpp:910 +msgid "Enable Fullscreen" +msgstr "Abilita schermo intero" + +#: ../webkit/webkitwebsettings.cpp:911 +msgid "Whether the Mozilla style API should be enabled." +msgstr "Indica se abilitare le API in stile Mozilla." + +#: ../webkit/webkitwebview.cpp:2984 msgid "Returns the @web_view's document title" msgstr "Restituisce il titolo del documento di @web_view" -#: WebKit/gtk/webkit/webkitwebview.cpp:2333 +#: ../webkit/webkitwebview.cpp:2998 msgid "Returns the current URI of the contents displayed by the @web_view" msgstr "Restituisce l'URI attuale del contenuto mostrato dalla @web_view" -#: WebKit/gtk/webkit/webkitwebview.cpp:2346 +#: ../webkit/webkitwebview.cpp:3011 msgid "Copy target list" msgstr "Copia elenco destinazioni" # ma ha senso?? -#: WebKit/gtk/webkit/webkitwebview.cpp:2347 +#: ../webkit/webkitwebview.cpp:3012 msgid "The list of targets this web view supports for clipboard copying" msgstr "" "L'elenco di destinazioni che questa vista web supporta per copiare negli " "appunti" -#: WebKit/gtk/webkit/webkitwebview.cpp:2360 +#: ../webkit/webkitwebview.cpp:3025 msgid "Paste target list" msgstr "Incolla elenco destinazioni" # ma ha senso?? -#: WebKit/gtk/webkit/webkitwebview.cpp:2361 +#: ../webkit/webkitwebview.cpp:3026 msgid "The list of targets this web view supports for clipboard pasting" msgstr "" "L'elenco di destinazioni che questa vista web supporta per incollare dagli " "appunti" -#: WebKit/gtk/webkit/webkitwebview.cpp:2367 +#: ../webkit/webkitwebview.cpp:3032 msgid "Settings" msgstr "Impostazioni" -#: WebKit/gtk/webkit/webkitwebview.cpp:2368 +#: ../webkit/webkitwebview.cpp:3033 msgid "An associated WebKitWebSettings instance" msgstr "Un'istanza WebKitWebSettings associata" -#: WebKit/gtk/webkit/webkitwebview.cpp:2381 +#: ../webkit/webkitwebview.cpp:3046 msgid "Web Inspector" msgstr "Ispettore web" -#: WebKit/gtk/webkit/webkitwebview.cpp:2382 +#: ../webkit/webkitwebview.cpp:3047 msgid "The associated WebKitWebInspector instance" msgstr "L'istanza WebKitWebInspector associata" -#: WebKit/gtk/webkit/webkitwebview.cpp:2402 +#: ../webkit/webkitwebview.cpp:3060 +msgid "Viewport Attributes" +msgstr "Attributi viewport" + +#: ../webkit/webkitwebview.cpp:3061 +msgid "The associated WebKitViewportAttributes instance" +msgstr "L'istanza WebKitViewportAttributes associata" + +#: ../webkit/webkitwebview.cpp:3081 msgid "Editable" msgstr "Modificabile" -#: WebKit/gtk/webkit/webkitwebview.cpp:2403 +#: ../webkit/webkitwebview.cpp:3082 msgid "Whether content can be modified by the user" msgstr "Indica se il contenuto può essere modificato dall'utente" -#: WebKit/gtk/webkit/webkitwebview.cpp:2409 +#: ../webkit/webkitwebview.cpp:3088 msgid "Transparent" msgstr "Trasparente" -#: WebKit/gtk/webkit/webkitwebview.cpp:2410 +#: ../webkit/webkitwebview.cpp:3089 msgid "Whether content has a transparent background" msgstr "Indica se il contenuto ha uno sfondo trasparente" -#: WebKit/gtk/webkit/webkitwebview.cpp:2423 +#: ../webkit/webkitwebview.cpp:3102 msgid "Zoom level" msgstr "Livello ingrandimento" -#: WebKit/gtk/webkit/webkitwebview.cpp:2424 +#: ../webkit/webkitwebview.cpp:3103 msgid "The level of zoom of the content" msgstr "Il livello di ingrandimento del contenuto" -#: WebKit/gtk/webkit/webkitwebview.cpp:2439 +#: ../webkit/webkitwebview.cpp:3118 msgid "Full content zoom" msgstr "Ingrandimento intero contenuto" -#: WebKit/gtk/webkit/webkitwebview.cpp:2440 +#: ../webkit/webkitwebview.cpp:3119 msgid "Whether the full content is scaled when zooming" msgstr "Indica se all'ingrandimento viene scalato l'intero contenuto" -#: WebKit/gtk/webkit/webkitwebview.cpp:2453 -msgid "Encoding" -msgstr "Codifica" - -#: WebKit/gtk/webkit/webkitwebview.cpp:2454 +#: ../webkit/webkitwebview.cpp:3133 msgid "The default encoding of the web view" msgstr "La codifica predefinita della vista web" -#: WebKit/gtk/webkit/webkitwebview.cpp:2467 +#: ../webkit/webkitwebview.cpp:3146 msgid "Custom Encoding" msgstr "Codifica personalizzata" -#: WebKit/gtk/webkit/webkitwebview.cpp:2468 +#: ../webkit/webkitwebview.cpp:3147 msgid "The custom encoding of the web view" msgstr "La codifica personalizzata della vista web" -#: WebKit/gtk/webkit/webkitwebview.cpp:2520 +#: ../webkit/webkitwebview.cpp:3199 msgid "Icon URI" msgstr "URI di icona" -#: WebKit/gtk/webkit/webkitwebview.cpp:2521 +#: ../webkit/webkitwebview.cpp:3200 msgid "The URI for the favicon for the #WebKitWebView." msgstr "L'URI per la favicon della #WebKitWebView." -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:55 -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:60 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:56 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:61 msgid "Submit" msgstr "Invia" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:65 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:66 msgid "Reset" msgstr "Azzera" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:70 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:71 msgid "This is a searchable index. Enter search keywords: " msgstr "" -"Questo indice consente ricerche. Inserire la parole chiave da cercare: " +"Questo indice consente ricerche. Inserire le parole chiave da cercare: " -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:75 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:76 msgid "Choose File" msgstr "Scelta file" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:80 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:81 msgid "(None)" msgstr "(Nessuno)" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:85 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:86 msgid "Open Link in New _Window" msgstr "Apri collegamento in nuova _finestra" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:90 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:91 msgid "_Download Linked File" msgstr "_Scarica file collegato" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:95 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:96 msgid "Copy Link Loc_ation" msgstr "Copia _posizione collegamento" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:100 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:101 msgid "Open _Image in New Window" msgstr "Apri _immagine in nuova finestra" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:105 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:106 msgid "Sa_ve Image As" msgstr "Sal_va immagine come" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:110 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:111 msgid "Cop_y Image" msgstr "Copia i_mmagine" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:115 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:116 +msgid "Open _Video in New Window" +msgstr "Apri _video in nuova finestra" + +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:121 +msgid "Open _Audio in New Window" +msgstr "Apri _audio in nuova finestra" + +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:126 +msgid "Cop_y Video Link Location" +msgstr "Copia _posizione collegamento video" + +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:131 +msgid "Cop_y Audio Link Location" +msgstr "Copia _posizione collegamento audio" + +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:136 +msgid "_Toggle Media Controls" +msgstr "Commu_ta controlli multimediali" + +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:141 +msgid "Toggle Media _Loop Playback" +msgstr "Commuta _ripetizione multimediale" + +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:146 +msgid "Switch Video to _Fullscreen" +msgstr "Mostra video a sc_hermo intero" + +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:151 +msgid "_Play" +msgstr "_Riproduci" + +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:156 +msgid "_Pause" +msgstr "_Pausa" + +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:161 +msgid "_Mute" +msgstr "_Escludi audio" + +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:166 msgid "Open _Frame in New Window" -msgstr "Apri c_ornice in nuova finestra" +msgstr "Apri _frame in nuova finestra" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:166 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:217 msgid "_Reload" msgstr "A_ggiorna" # omesso Found -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:183 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:234 msgid "No Guesses Found" msgstr "Nessun suggerimento" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:188 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:239 msgid "_Ignore Spelling" msgstr "_Ignora ortografia" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:193 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:244 msgid "_Learn Spelling" msgstr "A_pprendi ortografia" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:198 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:249 msgid "_Search the Web" msgstr "_Cerca nel web" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:203 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:254 msgid "_Look Up in Dictionary" msgstr "Consu_lta dizionario" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:208 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:259 msgid "_Open Link" msgstr "_Apri collegamento" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:213 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:264 msgid "Ignore _Grammar" msgstr "Ignora _grammatica" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:218 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:269 msgid "Spelling and _Grammar" msgstr "Ortografia e _grammatica" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:223 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:274 msgid "_Show Spelling and Grammar" msgstr "_Mostra ortografia e grammatica" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:223 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:274 msgid "_Hide Spelling and Grammar" msgstr "_Nascondi ortografia e grammatica" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:228 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:279 msgid "_Check Document Now" msgstr "_Controlla documento ora" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:233 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:284 msgid "Check Spelling While _Typing" msgstr "Controlla ortografia durante _digitazione" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:238 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:289 msgid "Check _Grammar With Spelling" msgstr "Controlla _grammatica con ortografia" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:243 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:294 msgid "_Font" msgstr "_Tipo di carattere" @@ -912,260 +1240,275 @@ msgstr "_Tipo di carattere" # Le traduzioni di questi ultimi tre effetti per i font è presa # dalle GTK_STOCK (_Grassetto, _Corsivo, _Sottolineato) # Usato Co_ntorno come in OpenOffice.org -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:266 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:317 msgid "_Outline" msgstr "Co_ntorno" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:271 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:322 msgid "Inspect _Element" msgstr "Ispeziona _elemento" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:276 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:327 msgid "No recent searches" msgstr "Nessuna ricerca recente" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:281 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:332 msgid "Recent searches" msgstr "Ricerche recenti" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:286 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:337 msgid "_Clear recent searches" msgstr "Pu_lisci ricerche recenti" # String AXDefinitionListTermText() -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:291 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:342 msgid "term" msgstr "termine" # String AXDefinitionListDefinitionText() -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:296 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:347 msgid "definition" msgstr "definizione" # String AXButtonActionVerb() -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:301 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:352 msgid "press" msgstr "premi" # String AXRadioButtonActionVerb() -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:306 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:357 msgid "select" msgstr "seleziona" # String AXTextFieldActionVerb() -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:311 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:362 msgid "activate" msgstr "attiva" # String AXCheckedCheckBoxActionVerb() -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:316 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:367 msgid "uncheck" msgstr "togli spunta" # String AXUncheckedCheckBoxActionVerb() -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:321 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:372 msgid "check" msgstr "metti spunta" # String AXLinkActionVerb() -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:326 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:377 msgid "jump" msgstr "salta" +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:392 +msgid "Missing Plug-in" +msgstr "Plugin mancante" + +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:398 +msgid "Plug-in Failure" +msgstr "Fallimento plugin" + # String multipleFileUploadText(unsigned numberOfFiles) -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:342 +#. FIXME: If this file gets localized, this should really be localized as one string with a wildcard for the number. +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:404 msgid " files" msgstr " file" # String unknownFileSizeText() -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:347 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:409 msgid "Unknown" msgstr "Sconosciuta" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:364 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:414 +#, c-format +msgctxt "Title string for images" +msgid "%s (%dx%d pixels)" +msgstr "%s (%d×%d pixel)" + +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:426 msgid "Loading..." msgstr "Caricamento..." -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:369 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:431 msgid "Live Broadcast" msgstr "Diffusione live" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:375 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:437 msgid "audio element controller" msgstr "controllore elemento audio" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:377 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:439 msgid "video element controller" msgstr "controllore elemento video" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:379 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:441 msgid "mute" msgstr "escludi audio" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:381 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:443 msgid "unmute" msgstr "abilita audio" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:383 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:445 msgid "play" msgstr "riproduci" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:385 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:447 msgid "pause" msgstr "pausa" # name == "Slider" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:387 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:449 msgid "movie time" msgstr "tempo filmato" # name == "SliderThumb" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:389 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:451 msgid "timeline slider thumb" msgstr "cursore dello scorrevole per linea temporale" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:391 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:453 msgid "back 30 seconds" msgstr "indietro 30 secondi" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:393 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:455 msgid "return to realtime" msgstr "ritorna a tempo effettivo" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:395 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:457 msgid "elapsed time" msgstr "tempo trascorso" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:397 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:459 msgid "remaining time" msgstr "tempo rimanente" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:399 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:461 msgid "status" msgstr "stato" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:401 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:463 msgid "fullscreen" msgstr "schermo intero" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:403 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:465 msgid "fast forward" msgstr "avanti veloce" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:405 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:467 msgid "fast reverse" msgstr "indietro veloce" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:407 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:469 msgid "show closed captions" msgstr "mostra sottotitoli" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:409 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:471 msgid "hide closed captions" msgstr "nascondi sottotitoli" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:418 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:480 msgid "audio element playback controls and status display" msgstr "controlli di riproduzione e visualizzazione stato di elementi audio" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:420 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:482 msgid "video element playback controls and status display" msgstr "controlli di riproduzione e visualizzazione stato di elementi video" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:422 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:484 msgid "mute audio tracks" msgstr "escludi tracce audio" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:424 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:486 msgid "unmute audio tracks" msgstr "abilita tracce audio" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:426 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:488 msgid "begin playback" msgstr "inizia la riproduzione" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:428 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:490 msgid "pause playback" msgstr "mette in pausa la riproduzione" # non so se è corretto... per induzione dovrebbe -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:430 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:492 msgid "movie time scrubber" msgstr "cambia con trascinamento il tempo del filmato" # non so se è corretto... per induzione dovrebbe -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:432 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:494 msgid "movie time scrubber thumb" msgstr "cursore per cambiare con trascinamento il tempo del filmato" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:434 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:496 msgid "seek movie back 30 seconds" msgstr "posiziona il filmato indietro di 30 secondi" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:436 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:498 msgid "return streaming movie to real time" msgstr "riporta il filmato in streaming al tempo reale" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:438 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:500 msgid "current movie time in seconds" msgstr "tempo corrente del filmato in secondi" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:440 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:502 msgid "number of seconds of movie remaining" msgstr "numero di secondi rimanenti del filmato" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:442 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:504 msgid "current movie status" msgstr "stato attuale del filmato" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:444 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:506 msgid "seek quickly back" msgstr "posiziona indietro rapidamente" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:446 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:508 msgid "seek quickly forward" msgstr "posiziona avanti rapidamente" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:448 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:510 msgid "Play movie in fullscreen mode" msgstr "Riproduce il filmato in modalità schermo intero" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:450 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:512 msgid "start displaying closed captions" msgstr "avvia la visualizzazione dei sottotitoli" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:452 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:514 msgid "stop displaying closed captions" msgstr "interrompe la visualizzazione dei sottotitoli" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:461 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:523 msgid "indefinite time" msgstr "tempo indefinito" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:491 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:553 msgid "value missing" msgstr "valore mancante" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:497 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:589 msgid "type mismatch" msgstr "discrepanza di tipo" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:502 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:612 msgid "pattern mismatch" msgstr "discrepanza di modello" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:507 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:617 msgid "too long" msgstr "troppo lungo" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:512 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:622 msgid "range underflow" msgstr "superamento limite inferiore dell'intervallo" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:517 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:627 msgid "range overflow" msgstr "superamento limite superiore dell'intervallo" -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:522 +#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:632 msgid "step mismatch" msgstr "discrepanza di passo" diff --git a/Source/WebKit/gtk/tests/testapplicationcache.c b/Source/WebKit/gtk/tests/testapplicationcache.c index 55e360c..2b022fc 100644 --- a/Source/WebKit/gtk/tests/testapplicationcache.c +++ b/Source/WebKit/gtk/tests/testapplicationcache.c @@ -37,25 +37,6 @@ static void test_application_cache_maximum_size() g_assert(maxSize == webkit_application_cache_get_maximum_size()); } -static void test_application_cache_database_directory_path() -{ - unsigned long long maxSize = 8192; - webkit_application_cache_set_maximum_size(maxSize); - - gchar* databaseDirectorySet = g_build_filename(g_get_user_data_dir(), "webkit", "databases", NULL); - webkit_application_cache_set_database_directory_path(databaseDirectorySet); - - // Creating a WebView - make sure that it didn't change anything - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - g_object_unref(webView); - - const gchar* databaseDirectoryGet = webkit_application_cache_get_database_directory_path(); - g_assert_cmpstr(databaseDirectorySet, ==, databaseDirectoryGet); - - g_free(databaseDirectorySet); -} - int main(int argc, char** argv) { g_thread_init(NULL); @@ -64,8 +45,6 @@ int main(int argc, char** argv) g_test_bug_base("https://bugs.webkit.org/"); g_test_add_func("/webkit/application_cache/maximum_size", test_application_cache_maximum_size); - g_test_add_func("/webkit/application_cache/database_directory_path", - test_application_cache_database_directory_path); return g_test_run(); } diff --git a/Source/WebKit/gtk/tests/testatk.c b/Source/WebKit/gtk/tests/testatk.c index 79ca67d..161b4b8 100644 --- a/Source/WebKit/gtk/tests/testatk.c +++ b/Source/WebKit/gtk/tests/testatk.c @@ -52,7 +52,7 @@ static const char* comboBoxSelector = "<html><body><select><option selected valu 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>"; +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><ol><li>List item with a <span><a href='http://foo.bar.baz/'>link inside a span node</a></span></li></ol></body></html>"; static const char* layoutAndDataTables = "<html><body><table><tr><th>Odd</th><th>Even</th></tr><tr><td>1</td><td>2</td></tr></table><table><tr><td>foo</td><td>bar</td></tr></table></body></html>"; @@ -1405,6 +1405,25 @@ static void testWebkitAtkHypertextAndHyperlinks() g_assert_cmpint(atk_hyperlink_get_n_anchors(hLink3), ==, 1); g_assert_cmpstr(atk_hyperlink_get_uri(hLink3, 0), ==, "http://baz.foo.bar/"); + AtkObject* list = atk_object_ref_accessible_child(object, 2); + g_assert(ATK_OBJECT(list)); + g_assert(atk_object_get_role(list) == ATK_ROLE_LIST); + g_assert_cmpint(atk_object_get_n_accessible_children(list), ==, 1); + + AtkObject* listItem = atk_object_ref_accessible_child(list, 0); + g_assert(ATK_IS_TEXT(listItem)); + g_assert(ATK_IS_HYPERTEXT(listItem)); + + AtkHyperlink* hLinkInListItem = atk_hypertext_get_link(ATK_HYPERTEXT(listItem), 0); + g_assert(ATK_HYPERLINK(hLinkInListItem)); + AtkObject* hLinkObject = atk_hyperlink_get_object(hLinkInListItem, 0); + g_assert(ATK_OBJECT(hLinkObject)); + g_assert(atk_object_get_role(hLinkObject) == ATK_ROLE_LINK); + g_assert_cmpint(atk_hyperlink_get_start_index(hLinkInListItem), ==, 20); + g_assert_cmpint(atk_hyperlink_get_end_index(hLinkInListItem), ==, 43); + g_assert_cmpint(atk_hyperlink_get_n_anchors(hLinkInListItem), ==, 1); + g_assert_cmpstr(atk_hyperlink_get_uri(hLinkInListItem, 0), ==, "http://foo.bar.baz/"); + /* Finally check the AtkAction interface for a given AtkHyperlink. */ g_assert(ATK_IS_ACTION(hLink1)); g_assert_cmpint(atk_action_get_n_actions(ATK_ACTION(hLink1)), ==, 1); @@ -1414,6 +1433,8 @@ static void testWebkitAtkHypertextAndHyperlinks() g_object_unref(paragraph1); g_object_unref(paragraph2); + g_object_unref(list); + g_object_unref(listItem); g_object_unref(webView); } diff --git a/Source/WebKit/gtk/tests/testdomdomwindow.c b/Source/WebKit/gtk/tests/testdomdomwindow.c index b15558e..0d93408 100644 --- a/Source/WebKit/gtk/tests/testdomdomwindow.c +++ b/Source/WebKit/gtk/tests/testdomdomwindow.c @@ -105,7 +105,7 @@ static void load_event_callback(WebKitWebView* webView, GParamSpec* spec, DomDom { WebKitLoadStatus status = webkit_web_view_get_load_status(webView); if (status == WEBKIT_LOAD_FINISHED) { - g_signal_connect(fixture->domWindow, "click-event", G_CALLBACK(clickedCallback), fixture); + webkit_dom_event_target_add_event_listener(WEBKIT_DOM_EVENT_TARGET(fixture->domWindow), "click", G_CALLBACK(clickedCallback), false, fixture); g_assert(fixture->clicked == FALSE); gtk_test_widget_click(GTK_WIDGET(fixture->webView), 1, 0); @@ -125,7 +125,7 @@ static void test_dom_domview_signals(DomDomviewFixture* fixture, gconstpointer d fixture->domWindow = domWindow; - g_signal_connect(fixture->domWindow, "load-event", G_CALLBACK(loadedCallback), fixture); + webkit_dom_event_target_add_event_listener(WEBKIT_DOM_EVENT_TARGET(fixture->domWindow), "load", G_CALLBACK(loadedCallback), false, fixture); g_signal_connect(fixture->window, "map-event", G_CALLBACK(map_event_cb), fixture); g_signal_connect(fixture->webView, "notify::load-status", G_CALLBACK(load_event_callback), fixture); @@ -176,7 +176,7 @@ static void load_status_callback(WebKitWebView* webView, GParamSpec* spec, DomDo fixture->domWindow, 0, 0, 0, clientX, clientY, FALSE, FALSE, FALSE, FALSE, 1, WEBKIT_DOM_EVENT_TARGET(element)); - g_signal_connect(element, "click-event", G_CALLBACK(clicked_cb), fixture); + webkit_dom_event_target_add_event_listener(WEBKIT_DOM_EVENT_TARGET(element), "click", G_CALLBACK(clicked_cb), false, fixture); g_assert(fixture->clicked == FALSE); webkit_dom_event_target_dispatch_event(WEBKIT_DOM_EVENT_TARGET(element), event, NULL); } diff --git a/Source/WebKit/gtk/tests/testwebview.c b/Source/WebKit/gtk/tests/testwebview.c index 778235d..97e8a50 100644 --- a/Source/WebKit/gtk/tests/testwebview.c +++ b/Source/WebKit/gtk/tests/testwebview.c @@ -266,7 +266,10 @@ static void do_test_webkit_web_view_adjustments(gboolean with_page_cache) g_assert_cmpfloat(lower, ==, gtk_adjustment_get_lower(adjustment)); g_assert_cmpfloat(upper, ==, gtk_adjustment_get_upper(adjustment)); - g_assert_cmpfloat(gtk_adjustment_get_value(adjustment), ==, 100.0); + /* This assert is temporarily disabled until we fix the following bug: */ + /* https://bugs.webkit.org/show_bug.cgi?id=57315 */ + /* It should be re-enabled ASAP. */ + /* g_assert_cmpfloat(gtk_adjustment_get_value(adjustment), ==, 100.0); */ g_free(effective_uri); g_free(second_uri); diff --git a/Source/WebKit/gtk/webkit/webkit.h b/Source/WebKit/gtk/webkit/webkit.h index d85d698..77e96bc 100644 --- a/Source/WebKit/gtk/webkit/webkit.h +++ b/Source/WebKit/gtk/webkit/webkit.h @@ -30,6 +30,7 @@ #include <webkit/webkitgeolocationpolicydecision.h> #include <webkit/webkitglobals.h> #include <webkit/webkithittestresult.h> +#include <webkit/webkiticondatabase.h> #include <webkit/webkitnetworkrequest.h> #include <webkit/webkitnetworkresponse.h> #include <webkit/webkitsecurityorigin.h> diff --git a/Source/WebKit/gtk/webkit/webkitapplicationcache.cpp b/Source/WebKit/gtk/webkit/webkitapplicationcache.cpp index ab179b5..0b65d04 100644 --- a/Source/WebKit/gtk/webkit/webkitapplicationcache.cpp +++ b/Source/WebKit/gtk/webkit/webkitapplicationcache.cpp @@ -26,8 +26,6 @@ #include <wtf/UnusedParam.h> #include <wtf/text/CString.h> -// keeps current directory path to offline web applications cache database -static WTF::CString cacheDirectoryPath = ""; // web application cache maximum storage size static unsigned long long cacheMaxSize = UINT_MAX; @@ -89,33 +87,9 @@ G_CONST_RETURN gchar* webkit_application_cache_get_database_directory_path() { #if ENABLE(OFFLINE_WEB_APPLICATIONS) CString path = WebCore::fileSystemRepresentation(WebCore::cacheStorage().cacheDirectory()); - - if (path != cacheDirectoryPath) - cacheDirectoryPath = path; - - return cacheDirectoryPath.data(); + return path.data(); #else return ""; #endif } -/** - * webkit_application_cache_set_database_directory_path: - * @path: the new web application cache database path - * - * Sets the current path to the directory WebKit will write web aplication cache - * databases. - * - * Since: 1.3.13 - **/ -void webkit_application_cache_set_database_directory_path(const gchar* path) -{ -#if ENABLE(OFFLINE_WEB_APPLICATIONS) - WTF::CString pathString(path); - if (pathString != cacheDirectoryPath) - cacheDirectoryPath = pathString; - - WebCore::cacheStorage().setCacheDirectory(WebCore::filenameToString(cacheDirectoryPath.data())); -#endif -} - diff --git a/Source/WebKit/gtk/webkit/webkitapplicationcache.h b/Source/WebKit/gtk/webkit/webkitapplicationcache.h index 810a5d6..bb0f867 100644 --- a/Source/WebKit/gtk/webkit/webkitapplicationcache.h +++ b/Source/WebKit/gtk/webkit/webkitapplicationcache.h @@ -25,16 +25,13 @@ G_BEGIN_DECLS WEBKIT_API unsigned long long -webkit_application_cache_get_maximum_size(); +webkit_application_cache_get_maximum_size(void); WEBKIT_API void webkit_application_cache_set_maximum_size(unsigned long long size); WEBKIT_API G_CONST_RETURN gchar* -webkit_application_cache_get_database_directory_path (void); - -WEBKIT_API void -webkit_application_cache_set_database_directory_path (const gchar* path); +webkit_application_cache_get_database_directory_path(void); G_END_DECLS diff --git a/Source/WebKit/gtk/webkit/webkitdefines.h b/Source/WebKit/gtk/webkit/webkitdefines.h index b0b607b..0b88084 100644 --- a/Source/WebKit/gtk/webkit/webkitdefines.h +++ b/Source/WebKit/gtk/webkit/webkitdefines.h @@ -41,6 +41,9 @@ G_BEGIN_DECLS +typedef struct _WebKitIconDatabase WebKitIconDatabase; +typedef struct _WebKitIconDatabaseClass WebKitIconDatabaseClass; + typedef struct _WebKitNetworkRequest WebKitNetworkRequest; typedef struct _WebKitNetworkRequestClass WebKitNetworkRequestClass; diff --git a/Source/WebKit/gtk/webkit/webkitglobals.cpp b/Source/WebKit/gtk/webkit/webkitglobals.cpp index 4d07ceb..b8d8b1f 100644 --- a/Source/WebKit/gtk/webkit/webkitglobals.cpp +++ b/Source/WebKit/gtk/webkit/webkitglobals.cpp @@ -40,6 +40,7 @@ #include "ResourceResponse.h" #include "webkitapplicationcache.h" #include "webkitglobalsprivate.h" +#include "webkiticondatabase.h" #include "webkitsoupauthdialog.h" #include "webkitwebdatabase.h" #include "webkitwebplugindatabaseprivate.h" @@ -223,9 +224,24 @@ static GtkWidget* currentToplevelCallback(WebKitSoupAuthDialog* feature, SoupMes return NULL; } -static void closeIconDatabaseOnExit() +/** + * webkit_get_icon_database: + * + * Returns the #WebKitIconDatabase providing access to website icons. + * + * Return value: (transfer none): the current #WebKitIconDatabase + * + * Since: 1.3.13 + */ +WebKitIconDatabase* webkit_get_icon_database() { - iconDatabase().close(); + webkitInit(); + + static WebKitIconDatabase* database = 0; + if (!database) + database = WEBKIT_ICON_DATABASE(g_object_new(WEBKIT_TYPE_ICON_DATABASE, NULL)); + + return database; } void webkitInit() @@ -249,14 +265,15 @@ void webkitInit() gchar* databaseDirectory = g_build_filename(g_get_user_data_dir(), "webkit", "databases", NULL); webkit_set_web_database_directory_path(databaseDirectory); - webkit_application_cache_set_database_directory_path(databaseDirectory); + WebCore::cacheStorage().setCacheDirectory(databaseDirectory); g_free(databaseDirectory); PageGroup::setShouldTrackVisitedLinks(true); Pasteboard::generalPasteboard()->setHelper(WebKit::pasteboardHelperInstance()); - WebKit::setIconDatabaseEnabled(true); + GOwnPtr<gchar> iconDatabasePath(g_build_filename(g_get_user_data_dir(), "webkit", "icondatabase", NULL)); + webkit_icon_database_set_path(webkit_get_icon_database(), iconDatabasePath.get()); SoupSession* session = webkit_get_default_session(); @@ -280,25 +297,5 @@ PasteboardHelperGtk* pasteboardHelperInstance() return helper; } -void setIconDatabaseEnabled(bool enabled) -{ - static bool initialized = false; - if (enabled && !initialized) { - initialized = true; - atexit(closeIconDatabaseOnExit); - } - - if (enabled) { - iconDatabase().setEnabled(true); - GOwnPtr<gchar> iconDatabasePath(g_build_filename(g_get_user_data_dir(), "webkit", "icondatabase", NULL)); - iconDatabase().open(iconDatabasePath.get()); - return; - } - - iconDatabase().setEnabled(false); - iconDatabase().close(); -} - - } /** end namespace WebKit */ diff --git a/Source/WebKit/gtk/webkit/webkitglobals.h b/Source/WebKit/gtk/webkit/webkitglobals.h index 612c195..33d2b8b 100644 --- a/Source/WebKit/gtk/webkit/webkitglobals.h +++ b/Source/WebKit/gtk/webkit/webkitglobals.h @@ -58,6 +58,9 @@ webkit_get_default_session (void); WEBKIT_API WebKitWebPluginDatabase * webkit_get_web_plugin_database (void); +WEBKIT_API WebKitIconDatabase * +webkit_get_icon_database (void); + WEBKIT_API void webkit_set_cache_model (WebKitCacheModel cache_model); diff --git a/Source/WebKit/gtk/webkit/webkitglobalsprivate.h b/Source/WebKit/gtk/webkit/webkitglobalsprivate.h index 7eb3aae..5923f2e 100644 --- a/Source/WebKit/gtk/webkit/webkitglobalsprivate.h +++ b/Source/WebKit/gtk/webkit/webkitglobalsprivate.h @@ -33,7 +33,6 @@ namespace WebKit { class PasteboardHelperGtk; PasteboardHelperGtk* pasteboardHelperInstance(); -void setIconDatabaseEnabled(bool); } extern "C" { diff --git a/Source/WebKit/gtk/webkit/webkiticondatabase.cpp b/Source/WebKit/gtk/webkit/webkiticondatabase.cpp new file mode 100644 index 0000000..397bd51 --- /dev/null +++ b/Source/WebKit/gtk/webkit/webkiticondatabase.cpp @@ -0,0 +1,317 @@ +/* + * Copyright (C) 2011 Christian Dywan <christian@lanedo.com> + * + * 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 "webkiticondatabase.h" + +#include "DatabaseDetails.h" +#include "DatabaseTracker.h" +#include "FileSystem.h" +#include "IconDatabase.h" +#include "Image.h" +#include "IntSize.h" +#include "webkitglobalsprivate.h" +#include "webkitmarshal.h" +#include "webkitsecurityoriginprivate.h" +#include "webkitwebframe.h" +#include <glib/gi18n-lib.h> +#include <wtf/gobject/GOwnPtr.h> +#include <wtf/text/CString.h> + +/** + * SECTION:webkitwebdatabase + * @short_description: A WebKit web application database + * + * #WebKitIconDatabase provides access to website icons, as shown + * in tab labels, window captions or bookmarks. All views share + * the same icon database. + * + * The icon database is enabled by default and stored in + * ~/.local/share/webkit/icondatabase, depending on XDG_DATA_HOME. + * + * WebKit will automatically look for available icons in link elements + * on opened pages as well as an existing favicon.ico and load the + * images found into the memory cache if possible. The signal "icon-loaded" + * will be emitted when any icon is found and loaded. + * Old Icons are automatically cleaned up after 4 days. + * + * webkit_icon_database_set_path() can be used to change the location + * of the database and also to disable it by passing %NULL. + * + * If WebKitWebSettings::enable-private-browsing is %TRUE new icons + * won't be added to the database on disk and no existing icons will + * be deleted from it. + * + * Since: 1.3.13 + */ + +using namespace WebKit; + +enum { + PROP_0, + + PROP_PATH, +}; + +enum { + ICON_LOADED, + + LAST_SIGNAL +}; + +static guint webkit_icon_database_signals[LAST_SIGNAL] = { 0, }; + +G_DEFINE_TYPE(WebKitIconDatabase, webkit_icon_database, G_TYPE_OBJECT); + +struct _WebKitIconDatabasePrivate { + GOwnPtr<gchar> path; +}; + +static void webkit_icon_database_finalize(GObject* object) +{ + // Call C++ destructors, the reverse of 'placement new syntax' + WEBKIT_ICON_DATABASE(object)->priv->~WebKitIconDatabasePrivate(); + + G_OBJECT_CLASS(webkit_icon_database_parent_class)->finalize(object); +} + +static void webkit_icon_database_dispose(GObject* object) +{ + G_OBJECT_CLASS(webkit_icon_database_parent_class)->dispose(object); +} + +static void webkit_icon_database_set_property(GObject* object, guint propId, const GValue* value, GParamSpec* pspec) +{ + WebKitIconDatabase* database = WEBKIT_ICON_DATABASE(object); + + switch (propId) { + case PROP_PATH: + webkit_icon_database_set_path(database, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, pspec); + break; + } +} + +static void webkit_icon_database_get_property(GObject* object, guint propId, GValue* value, GParamSpec* pspec) +{ + WebKitIconDatabase* database = WEBKIT_ICON_DATABASE(object); + + switch (propId) { + case PROP_PATH: + g_value_set_string(value, webkit_icon_database_get_path(database)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, pspec); + break; + } +} + +static void webkit_icon_database_class_init(WebKitIconDatabaseClass* klass) +{ + webkitInit(); + + GObjectClass* gobjectClass = G_OBJECT_CLASS(klass); + gobjectClass->dispose = webkit_icon_database_dispose; + gobjectClass->finalize = webkit_icon_database_finalize; + gobjectClass->set_property = webkit_icon_database_set_property; + gobjectClass->get_property = webkit_icon_database_get_property; + + /** + * WebKitIconDatabase:path: + * + * The absolute path of the icon database folder. + * + * Since: 1.3.13 + */ + g_object_class_install_property(gobjectClass, PROP_PATH, + g_param_spec_string("path", + _("Path"), + _("The absolute path of the icon database folder"), + NULL, + WEBKIT_PARAM_READWRITE)); + + /** + * WebKitIconDatabase::icon-loaded: + * @database: the object on which the signal is emitted + * @frame: the frame containing the icon + * @frame_uri: the URI of the frame containing the icon + * + * This signal is emitted when a favicon is available for a page, + * or a child frame. + * See WebKitWebView::icon-loaded if you only need the favicon for + * the main frame of a particular #WebKitWebView. + * + * Since: 1.3.13 + */ + webkit_icon_database_signals[ICON_LOADED] = g_signal_new("icon-loaded", + G_TYPE_FROM_CLASS(klass), + (GSignalFlags)G_SIGNAL_RUN_LAST, + 0, + NULL, + NULL, + webkit_marshal_VOID__OBJECT_STRING, + G_TYPE_NONE, 2, + WEBKIT_TYPE_WEB_FRAME, + G_TYPE_STRING); + + g_type_class_add_private(klass, sizeof(WebKitIconDatabasePrivate)); +} + +static void webkit_icon_database_init(WebKitIconDatabase* database) +{ + database->priv = G_TYPE_INSTANCE_GET_PRIVATE(database, WEBKIT_TYPE_ICON_DATABASE, WebKitIconDatabasePrivate); + // 'placement new syntax', see webkitwebview.cpp + new (database->priv) WebKitIconDatabasePrivate(); +} + +/** + * webkit_icon_database_get_path: + * @database: a #WebKitIconDatabase + * + * Determines the absolute path to the database folder on disk. + * + * Returns: the absolute path of the database folder, or %NULL + * + * Since: 1.3.13 + **/ +G_CONST_RETURN gchar* webkit_icon_database_get_path(WebKitIconDatabase* database) +{ + g_return_val_if_fail(WEBKIT_IS_ICON_DATABASE(database), 0); + + return database->priv->path.get(); +} + +static void closeIconDatabaseOnExit() +{ + if (WebCore::iconDatabase().isEnabled()) { + WebCore::iconDatabase().setEnabled(false); + WebCore::iconDatabase().close(); + } +} + +/** + * webkit_icon_database_set_path: + * @database: a #WebKitIconDatabase + * @path: an absolute path to the icon database folder + * + * Specifies the absolute path to the database folder on disk. + * + * Passing %NULL or "" disables the icon database. + * + * Since: 1.3.13 + **/ +void webkit_icon_database_set_path(WebKitIconDatabase* database, const gchar* path) +{ + g_return_if_fail(WEBKIT_IS_ICON_DATABASE(database)); + + if (database->priv->path.get()) + WebCore::iconDatabase().close(); + + if (!(path && path[0])) { + database->priv->path.set(0); + WebCore::iconDatabase().setEnabled(false); + return; + } + + database->priv->path.set(g_strdup(path)); + + WebCore::iconDatabase().setEnabled(true); + WebCore::iconDatabase().open(WebCore::filenameToString(database->priv->path.get()), WebCore::IconDatabase::defaultDatabaseFilename()); + + static bool initialized = false; + if (!initialized) { + atexit(closeIconDatabaseOnExit); + initialized = true; + } +} + +/** + * webkit_icon_database_get_icon_uri: + * @database: a #WebKitIconDatabase + * @page_uri: URI of the page containing the icon + * + * Obtains the URI for the favicon for the given page URI. + * See also webkit_web_view_get_icon_uri(). + * + * Returns: a newly allocated URI for the favicon, or %NULL + * + * Since: 1.3.13 + **/ +gchar* webkit_icon_database_get_icon_uri(WebKitIconDatabase* database, const gchar* pageURI) +{ + g_return_val_if_fail(WEBKIT_IS_ICON_DATABASE(database), 0); + g_return_val_if_fail(pageURI, 0); + + String pageURL = String::fromUTF8(pageURI); + return g_strdup(WebCore::iconDatabase().synchronousIconURLForPageURL(pageURL).utf8().data()); +} + +/** + * webkit_icon_database_get_icon_pixbuf: + * @database: a #WebKitIconDatabase + * @page_uri: URI of the page containing the icon + * + * Obtains a #GdkPixbuf of the favicon for the given page URI, or + * a default icon if there is no icon for the given page. Use + * webkit_icon_database_get_icon_uri() if you need to distinguish these cases. + * Usually you want to connect to WebKitIconDatabase::icon-loaded and call this + * method in the callback. + * + * The pixbuf will have the largest size provided by the server and should + * be resized before it is displayed. + * See also webkit_web_view_get_icon_pixbuf(). + * + * Returns: (transfer full): a new reference to a #GdkPixbuf, or %NULL + * + * Since: 1.3.13 + **/ +GdkPixbuf* webkit_icon_database_get_icon_pixbuf(WebKitIconDatabase* database, const gchar* pageURI) +{ + g_return_val_if_fail(WEBKIT_IS_ICON_DATABASE(database), 0); + g_return_val_if_fail(pageURI, 0); + + String pageURL = String::fromUTF8(pageURI); + // The exact size we pass is irrelevant to the WebCore::iconDatabase code. + // We must pass something greater than 0, 0 to get a pixbuf. + WebCore::Image* icon = WebCore::iconDatabase().synchronousIconForPageURL(pageURL, WebCore::IntSize(16, 16)); + if (!icon) + return 0; + GdkPixbuf* pixbuf = icon->getGdkPixbuf(); + if (!pixbuf) + return 0; + return static_cast<GdkPixbuf*>(g_object_ref(pixbuf)); +} + +/** + * webkit_icon_database_clear(): + * @database: a #WebKitIconDatabase + * + * Clears all icons from the database. + * + * Since: 1.3.13 + **/ +void webkit_icon_database_clear(WebKitIconDatabase* database) +{ + g_return_if_fail(WEBKIT_IS_ICON_DATABASE(database)); + + WebCore::iconDatabase().removeAllIcons(); +} + diff --git a/Source/WebKit/gtk/webkit/webkiticondatabase.h b/Source/WebKit/gtk/webkit/webkiticondatabase.h new file mode 100644 index 0000000..7fe5acd --- /dev/null +++ b/Source/WebKit/gtk/webkit/webkiticondatabase.h @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2011 Christian Dywan <christian@lanedo.com> + * + * 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 webkiticondatabase_h +#define webkiticondatabase_h + +#include <gdk-pixbuf/gdk-pixbuf.h> +#include <glib-object.h> +#include <webkit/webkitdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_TYPE_ICON_DATABASE (webkit_icon_database_get_type()) +#define WEBKIT_ICON_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_ICON_DATABASE, WebKitIconDatabase)) +#define WEBKIT_ICON_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_ICON_DATABASE, WebKitIconDatabaseClass)) +#define WEBKIT_IS_ICON_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_ICON_DATABASE)) +#define WEBKIT_IS_ICON_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_ICON_DATABASE)) +#define WEBKIT_ICON_DATABASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_ICON_DATABASE, WebKitIconDatabaseClass)) + +typedef struct _WebKitIconDatabasePrivate WebKitIconDatabasePrivate; + +struct _WebKitIconDatabase { + GObject parent_instance; + + /*< private >*/ + WebKitIconDatabasePrivate* priv; +}; + +struct _WebKitIconDatabaseClass { + GObjectClass parent_class; + + /* Padding for future expansion */ + void (*_webkit_reserved1) (void); + void (*_webkit_reserved2) (void); + void (*_webkit_reserved3) (void); + void (*_webkit_reserved4) (void); +}; + +WEBKIT_API GType +webkit_icon_database_get_type (void); + +WEBKIT_API G_CONST_RETURN gchar* +webkit_icon_database_get_path (WebKitIconDatabase* database); + +WEBKIT_API void +webkit_icon_database_set_path (WebKitIconDatabase* database, + const gchar* path); + +WEBKIT_API gchar* +webkit_icon_database_get_icon_uri (WebKitIconDatabase* database, + const gchar* page_uri); + +WEBKIT_API GdkPixbuf* +webkit_icon_database_get_icon_pixbuf (WebKitIconDatabase* database, + const gchar* page_uri); + +WEBKIT_API void +webkit_icon_database_clear (WebKitIconDatabase* database); + +G_END_DECLS + +#endif /* webkiticondatabase_h */ diff --git a/Source/WebKit/gtk/webkit/webkitviewportattributes.cpp b/Source/WebKit/gtk/webkit/webkitviewportattributes.cpp index 9a98e44..742cddd 100644 --- a/Source/WebKit/gtk/webkit/webkitviewportattributes.cpp +++ b/Source/WebKit/gtk/webkit/webkitviewportattributes.cpp @@ -542,7 +542,7 @@ void webkitViewportAttributesRecompute(WebKitViewportAttributes* viewportAttribu priv->minimumScaleFactor = attributes.minimumScale; priv->maximumScaleFactor = attributes.maximumScale; priv->devicePixelRatio = attributes.devicePixelRatio; - priv->userScalable = arguments.userScalable; + priv->userScalable = static_cast<bool>(arguments.userScalable); if (!priv->isValid) { priv->isValid = TRUE; diff --git a/Source/WebKit/gtk/webkit/webkitwebframe.cpp b/Source/WebKit/gtk/webkit/webkitwebframe.cpp index fd90a6c..a0e40b3 100644 --- a/Source/WebKit/gtk/webkit/webkitwebframe.cpp +++ b/Source/WebKit/gtk/webkit/webkitwebframe.cpp @@ -44,6 +44,7 @@ #include "JSDOMBinding.h" #include "JSDOMWindow.h" #include "JSElement.h" +#include "PlatformContextCairo.h" #include "PrintContext.h" #include "RenderListItem.h" #include "RenderTreeAsText.h" @@ -765,17 +766,17 @@ static void begin_print_callback(GtkPrintOperation* op, GtkPrintContext* context gtk_print_operation_set_n_pages(op, printContext->pageCount()); } -static void draw_page_callback(GtkPrintOperation* op, GtkPrintContext* context, gint page_nr, gpointer user_data) +static void draw_page_callback(GtkPrintOperation*, GtkPrintContext* gtkPrintContext, gint pageNumber, PrintContext* corePrintContext) { - PrintContext* printContext = reinterpret_cast<PrintContext*>(user_data); - - if (page_nr >= static_cast<gint>(printContext->pageCount())) + if (pageNumber >= static_cast<gint>(corePrintContext->pageCount())) return; - cairo_t* cr = gtk_print_context_get_cairo_context(context); - GraphicsContext ctx(cr); - float width = gtk_print_context_get_width(context); - printContext->spoolPage(ctx, page_nr, width); + cairo_t* cr = gtk_print_context_get_cairo_context(gtkPrintContext); + float pageWidth = gtk_print_context_get_width(gtkPrintContext); + + PlatformContextCairo platformContext(cr); + GraphicsContext graphicsContext(&platformContext); + corePrintContext->spoolPage(graphicsContext, pageNumber, pageWidth); } static void end_print_callback(GtkPrintOperation* op, GtkPrintContext* context, gpointer user_data) diff --git a/Source/WebKit/gtk/webkit/webkitwebplugindatabase.cpp b/Source/WebKit/gtk/webkit/webkitwebplugindatabase.cpp index 2d36115..1ed5205 100644 --- a/Source/WebKit/gtk/webkit/webkitwebplugindatabase.cpp +++ b/Source/WebKit/gtk/webkit/webkitwebplugindatabase.cpp @@ -74,7 +74,8 @@ static void webkit_web_plugin_database_init(WebKitWebPluginDatabase* database) */ void webkit_web_plugin_database_plugins_list_free(GSList* list) { - g_return_if_fail(list); + if (!list) + return; for (GSList* p = list; p; p = p->next) g_object_unref(p->data); diff --git a/Source/WebKit/gtk/webkit/webkitwebsettings.cpp b/Source/WebKit/gtk/webkit/webkitwebsettings.cpp index 7e7a506..3b4cf57 100644 --- a/Source/WebKit/gtk/webkit/webkitwebsettings.cpp +++ b/Source/WebKit/gtk/webkit/webkitwebsettings.cpp @@ -39,6 +39,8 @@ #if OS(UNIX) #include <sys/utsname.h> +#elif OS(WINDOWS) +#include "SystemInfo.h" #endif /** @@ -110,6 +112,7 @@ struct _WebKitWebSettingsPrivate { gboolean enable_java_applet; gboolean enable_hyperlink_auditing; gboolean enable_fullscreen; + gboolean enable_dns_prefetching; }; #define WEBKIT_WEB_SETTINGS_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), WEBKIT_TYPE_WEB_SETTINGS, WebKitWebSettingsPrivate)) @@ -162,7 +165,8 @@ enum { PROP_AUTO_RESIZE_WINDOW, PROP_ENABLE_JAVA_APPLET, PROP_ENABLE_HYPERLINK_AUDITING, - PROP_ENABLE_FULLSCREEN + PROP_ENABLE_FULLSCREEN, + PROP_ENABLE_DNS_PREFETCHING }; // Create a default user agent string @@ -208,7 +212,7 @@ static String webkitOSVersion() else uaOSVersion = String("Unknown"); #elif OS(WINDOWS) - DEFINE_STATIC_LOCAL(const String, uaOSVersion, (String("Windows"))); + DEFINE_STATIC_LOCAL(const String, uaOSVersion, (windowsVersionForUAString())); #else DEFINE_STATIC_LOCAL(const String, uaOSVersion, (String("Unknown"))); #endif @@ -909,6 +913,22 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass) FALSE, flags)); + /** + * WebKitWebSettings:enable-dns-prefetching + * + * Whether webkit prefetches domain names. This is a separate knob from private browsing. + * Whether private browsing should set this or not is up for debate, for now it doesn't. + * + * Since: 1.3.13. + */ + g_object_class_install_property(gobject_class, + PROP_ENABLE_DNS_PREFETCHING, + g_param_spec_boolean("enable-dns-prefetching", + _("WebKit prefetches domain names"), + _("Whether WebKit prefetches domain names"), + TRUE, + flags)); + g_type_class_add_private(klass, sizeof(WebKitWebSettingsPrivate)); } @@ -1094,6 +1114,9 @@ static void webkit_web_settings_set_property(GObject* object, guint prop_id, con case PROP_ENABLE_FULLSCREEN: priv->enable_fullscreen = g_value_get_boolean(value); break; + case PROP_ENABLE_DNS_PREFETCHING: + priv->enable_dns_prefetching = g_value_get_boolean(value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); break; @@ -1244,6 +1267,9 @@ static void webkit_web_settings_get_property(GObject* object, guint prop_id, GVa case PROP_ENABLE_FULLSCREEN: g_value_set_boolean(value, priv->enable_fullscreen); break; + case PROP_ENABLE_DNS_PREFETCHING: + g_value_set_boolean(value, priv->enable_dns_prefetching); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); break; @@ -1320,6 +1346,7 @@ WebKitWebSettings* webkit_web_settings_copy(WebKitWebSettings* web_settings) "enable-java-applet", priv->enable_java_applet, "enable-hyperlink-auditing", priv->enable_hyperlink_auditing, "enable-fullscreen", priv->enable_fullscreen, + "enable-dns-prefetching", priv->enable_dns_prefetching, NULL)); return copy; diff --git a/Source/WebKit/gtk/webkit/webkitwebview.cpp b/Source/WebKit/gtk/webkit/webkitwebview.cpp index 0ffc9d9..bf74d7b 100644 --- a/Source/WebKit/gtk/webkit/webkitwebview.cpp +++ b/Source/WebKit/gtk/webkit/webkitwebview.cpp @@ -85,6 +85,7 @@ #include "webkitgeolocationpolicydecision.h" #include "webkitglobalsprivate.h" #include "webkithittestresultprivate.h" +#include "webkiticondatabase.h" #include "webkitmarshal.h" #include "webkitnetworkrequest.h" #include "webkitnetworkresponse.h" @@ -709,8 +710,8 @@ static gboolean webkit_web_view_expose_event(GtkWidget* widget, GdkEventExpose* frame->view()->updateLayoutAndStyleIfNeededRecursive(); RefPtr<cairo_t> cr = adoptRef(gdk_cairo_create(event->window)); - GraphicsContext ctx(cr.get()); - ctx.setGdkExposeEvent(event); + GraphicsContext gc(cr.get()); + gc.setGdkExposeEvent(event); int rectCount; GOwnPtr<GdkRectangle> rects; @@ -719,7 +720,7 @@ static gboolean webkit_web_view_expose_event(GtkWidget* widget, GdkEventExpose* for (int i = 0; i < rectCount; i++) paintRects.append(IntRect(rects.get()[i])); - paintWebView(frame, priv->transparent, ctx, static_cast<IntRect>(event->area), paintRects); + paintWebView(frame, priv->transparent, gc, static_cast<IntRect>(event->area), paintRects); } return FALSE; @@ -736,7 +737,7 @@ static gboolean webkit_web_view_draw(GtkWidget* widget, cairo_t* cr) Frame* frame = core(webView)->mainFrame(); if (frame->contentRenderer() && frame->view()) { - GraphicsContext ctx(cr); + GraphicsContext gc(cr); IntRect rect = clipRect; cairo_rectangle_list_t* rectList = cairo_copy_clip_rectangle_list(cr); @@ -747,7 +748,7 @@ static gboolean webkit_web_view_draw(GtkWidget* widget, cairo_t* cr) for (int i = 0; i < rectList->num_rectangles; i++) rects.append(enclosingIntRect(FloatRect(rectList->rectangles[i]))); } - paintWebView(frame, priv->transparent, ctx, rect, rects); + paintWebView(frame, priv->transparent, gc, rect, rects); cairo_rectangle_list_destroy(rectList); } @@ -2315,6 +2316,8 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) * @icon_uri: the URI for the icon * * This signal is emitted when the main frame has got a favicon. + * See WebKitIconDatabase::icon-loaded if you want to keep track of + * icons for child frames. * * Since: 1.1.18 */ @@ -3290,7 +3293,8 @@ static void webkit_web_view_update_settings(WebKitWebView* webView) javaScriptCanAccessClipboard, enableOfflineWebAppCache, enableUniversalAccessFromFileURI, enableFileAccessFromFileURI, enableDOMPaste, tabKeyCyclesThroughElements, - enableSiteSpecificQuirks, usePageCache, enableJavaApplet, enableHyperlinkAuditing, enableFullscreen; + enableSiteSpecificQuirks, usePageCache, enableJavaApplet, + enableHyperlinkAuditing, enableFullscreen, enableDNSPrefetching; WebKitEditingBehavior editingBehavior; @@ -3331,6 +3335,7 @@ static void webkit_web_view_update_settings(WebKitWebView* webView) "enable-hyperlink-auditing", &enableHyperlinkAuditing, "spell-checking-languages", &defaultSpellCheckingLanguages, "enable-fullscreen", &enableFullscreen, + "enable-dns-prefetching", &enableDNSPrefetching, NULL); settings->setDefaultTextEncodingName(defaultEncoding); @@ -3375,6 +3380,7 @@ static void webkit_web_view_update_settings(WebKitWebView* webView) WebKit::EditorClient* client = static_cast<WebKit::EditorClient*>(core(webView)->editorClient()); static_cast<WebKit::TextCheckerClientEnchant*>(client->textChecker())->updateSpellCheckingLanguage(defaultSpellCheckingLanguages); #endif + settings->setDNSPrefetchingEnabled(enableDNSPrefetching); Page* page = core(webView); if (page) @@ -3441,6 +3447,8 @@ static void webkit_web_view_settings_notify(WebKitWebSettings* webSettings, GPar settings->setJavaScriptEnabled(g_value_get_boolean(&value)); else if (name == g_intern_string("enable-plugins")) settings->setPluginsEnabled(g_value_get_boolean(&value)); + else if (name == g_intern_string("enable-dns-prefetching")) + settings->setDNSPrefetchingEnabled(g_value_get_boolean(&value)); else if (name == g_intern_string("resizable-text-areas")) settings->setTextAreasAreResizable(g_value_get_boolean(&value)); else if (name == g_intern_string("user-stylesheet-uri")) @@ -4337,8 +4345,7 @@ gboolean webkit_web_view_get_editable(WebKitWebView* webView) { g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE); - Frame* frame = core(webView)->mainFrame(); - return frame && frame->document()->inDesignMode(); + return core(webView)->isEditable(); } /** @@ -4363,15 +4370,14 @@ void webkit_web_view_set_editable(WebKitWebView* webView, gboolean flag) { g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - Frame* frame = core(webView)->mainFrame(); - g_return_if_fail(frame); - - // TODO: What happens when the frame is replaced? flag = flag != FALSE; if (flag == webkit_web_view_get_editable(webView)) return; - frame->document()->setDesignMode(flag ? WebCore::Document::on : WebCore::Document::off); + core(webView)->setEditable(flag); + + Frame* frame = core(webView)->mainFrame(); + g_return_if_fail(frame); if (flag) { frame->editor()->applyEditingStyleToBodyElement(); @@ -5058,12 +5064,41 @@ WebKitHitTestResult* webkit_web_view_get_hit_test_result(WebKitWebView* webView, G_CONST_RETURN gchar* webkit_web_view_get_icon_uri(WebKitWebView* webView) { g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0); - String iconURL = iconDatabase().iconURLForPageURL(core(webView)->mainFrame()->document()->url().prettyURL()); + String iconURL = iconDatabase().synchronousIconURLForPageURL(core(webView)->mainFrame()->document()->url().prettyURL()); webView->priv->iconURI = iconURL.utf8(); return webView->priv->iconURI.data(); } /** + * webkit_web_view_get_icon_pixbuf: + * @webView: the #WebKitWebView object + * + * Obtains a #GdkPixbuf of the favicon for the given #WebKitWebView, or + * a default icon if there is no icon for the given page. Use + * webkit_web_view_get_icon_uri() if you need to distinguish these cases. + * Usually you want to connect to WebKitWebView::icon-loaded and call this + * method in the callback. + * + * The pixbuf will have the largest size provided by the server and should + * be resized before it is displayed. + * See also webkit_icon_database_get_icon_pixbuf(). + * + * Returns: (transfer full): a new reference to a #GdkPixbuf, or %NULL + * + * Since: 1.3.13 + */ +GdkPixbuf* webkit_web_view_get_icon_pixbuf(WebKitWebView* webView) +{ + g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0); + + const gchar* pageURI = webkit_web_view_get_uri(webView); + WebKitIconDatabase* database = webkit_get_icon_database(); + return webkit_icon_database_get_icon_pixbuf(database, pageURI); +} + + + +/** * webkit_web_view_get_dom_document: * @webView: a #WebKitWebView * diff --git a/Source/WebKit/gtk/webkit/webkitwebview.h b/Source/WebKit/gtk/webkit/webkitwebview.h index 1838bfe..38c9a70 100644 --- a/Source/WebKit/gtk/webkit/webkitwebview.h +++ b/Source/WebKit/gtk/webkit/webkitwebview.h @@ -397,6 +397,9 @@ webkit_web_view_get_hit_test_result (WebKitWebView *webView, WEBKIT_API G_CONST_RETURN gchar * webkit_web_view_get_icon_uri (WebKitWebView *webView); +WEBKIT_API GdkPixbuf * +webkit_web_view_get_icon_pixbuf (WebKitWebView *webView); + WEBKIT_API WebKitDOMDocument * webkit_web_view_get_dom_document (WebKitWebView *webView); diff --git a/Source/WebKit/haiku/ChangeLog b/Source/WebKit/haiku/ChangeLog index b2aefce..7757fe7 100644 --- a/Source/WebKit/haiku/ChangeLog +++ b/Source/WebKit/haiku/ChangeLog @@ -1,3 +1,58 @@ +2011-03-25 Andy Estes <aestes@apple.com> + + Reviewed by Adele Peterson. + + REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js + https://bugs.webkit.org/show_bug.cgi?id=49016 + + Update objectContentType() implementation to handle the + shouldPreferPlugInsForImages flag. + + * WebCoreSupport/FrameLoaderClientHaiku.cpp: + (WebCore::FrameLoaderClientHaiku::objectContentType): + * WebCoreSupport/FrameLoaderClientHaiku.h: + +2011-03-25 Chang Shu <cshu@webkit.org> + + Reviewed by Ryosuke Niwa. + + rename Node::isContentEditable and all call sites to rendererIsEditable + https://bugs.webkit.org/show_bug.cgi?id=54290 + + This is part of the effort to separate JS API HTMLElement isContentEditable from + internal Node::rendererIsEditable. + + * WebCoreSupport/EditorClientHaiku.cpp: + (WebCore::EditorClientHaiku::handleKeyboardEvent): + +2011-03-24 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r81916 and r81917. + http://trac.webkit.org/changeset/81916 + http://trac.webkit.org/changeset/81917 + https://bugs.webkit.org/show_bug.cgi?id=57071 + + broke a test on platforms that do not have QuickTime installed + (Requested by estes on #webkit). + + * WebCoreSupport/FrameLoaderClientHaiku.cpp: + (WebCore::FrameLoaderClientHaiku::objectContentType): + * WebCoreSupport/FrameLoaderClientHaiku.h: + +2011-03-24 Andy Estes <aestes@apple.com> + + Reviewed by Darin Adler. + + REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js + https://bugs.webkit.org/show_bug.cgi?id=49016 + + Update objectContentType() implementation to handle the + shouldPreferPlugInsForImages flag. + + * WebCoreSupport/FrameLoaderClientHaiku.cpp: + (WebCore::FrameLoaderClientHaiku::objectContentType): + * WebCoreSupport/FrameLoaderClientHaiku.h: + 2011-03-07 Sam Weinig <sam@webkit.org> Reviewed by Anders Carlsson. diff --git a/Source/WebKit/haiku/WebCoreSupport/EditorClientHaiku.cpp b/Source/WebKit/haiku/WebCoreSupport/EditorClientHaiku.cpp index 5c1b13f..1a84dab 100644 --- a/Source/WebKit/haiku/WebCoreSupport/EditorClientHaiku.cpp +++ b/Source/WebKit/haiku/WebCoreSupport/EditorClientHaiku.cpp @@ -254,7 +254,7 @@ void EditorClientHaiku::handleKeyboardEvent(KeyboardEvent* event) if (!start) return; - if (start->isContentEditable()) { + if (start->rendererIsEditable()) { switch (kevent->windowsVirtualKeyCode()) { case VK_BACK: frame->editor()->deleteWithDirection(DirectionBackward, diff --git a/Source/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.cpp b/Source/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.cpp index 8c42132..24a98d5 100644 --- a/Source/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.cpp +++ b/Source/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.cpp @@ -1,7 +1,7 @@ /* * Copyright (C) 2006 Don Gibson <dgibson77@gmail.com> * Copyright (C) 2006 Zack Rusin <zack@kde.org> - * Copyright (C) 2006 Apple Computer, Inc. All rights reserved. + * Copyright (C) 2006, 2011 Apple Inc. All rights reserved. * Copyright (C) 2007 Trolltech ASA * Copyright (C) 2007 Ryan Leavengood <leavengood@gmail.com> All rights reserved. * Copyright (C) 2009 Maxime Simon <simon.maxime@gmail.com> All rights reserved. @@ -754,7 +754,7 @@ void FrameLoaderClientHaiku::transferLoadingResourceFromPage(unsigned long, Docu { } -ObjectContentType FrameLoaderClientHaiku::objectContentType(const KURL& url, const String& mimeType) +ObjectContentType FrameLoaderClientHaiku::objectContentType(const KURL& url, const String& mimeType, bool shouldPreferPlugInsForImages) { notImplemented(); return ObjectContentType(); diff --git a/Source/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.h b/Source/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.h index 3e995a1..dbd3084 100644 --- a/Source/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.h +++ b/Source/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.h @@ -1,6 +1,6 @@ /* * Copyright (C) 2006 Zack Rusin <zack@kde.org> - * Copyright (C) 2006 Apple Computer, Inc. All rights reserved. + * Copyright (C) 2006, 2011 Apple Inc. All rights reserved. * Copyright (C) 2007 Ryan Leavengood <leavengood@gmail.com> All rights reserved. * * @@ -239,7 +239,7 @@ namespace WebCore { const KURL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues); - virtual ObjectContentType objectContentType(const KURL& url, const String& mimeType); + virtual ObjectContentType objectContentType(const KURL&, const String& mimeType, bool shouldPreferPlugInsForImages); virtual String overrideMediaType() const; virtual void dispatchDidClearWindowObjectInWorld(DOMWrapperWorld*); diff --git a/Source/WebKit/mac/Carbon/CarbonWindowAdapter.mm b/Source/WebKit/mac/Carbon/CarbonWindowAdapter.mm index 9747350..7348304 100644 --- a/Source/WebKit/mac/Carbon/CarbonWindowAdapter.mm +++ b/Source/WebKit/mac/Carbon/CarbonWindowAdapter.mm @@ -179,7 +179,7 @@ static OSStatus NSCarbonWindowHandleEvent(EventHandlerCallRef inEventHandlerCall osStatus = GetWindowModality(_windowRef, &windowModality, NULL); if (osStatus != noErr) { - NSLog(@"Couldn't get window modality: error=%d", osStatus); + NSLog(@"Couldn't get window modality: error=%ld", osStatus); return nil; } @@ -334,7 +334,7 @@ static OSStatus NSCarbonWindowHandleEvent(EventHandlerCallRef inEventHandlerCall if ([self _hasWindowRef]) { osStatus = GetWindowClass([self windowRef], &windowClass); if (osStatus != noErr) { - NSLog(@"Couldn't get window class: error=%d", osStatus); + NSLog(@"Couldn't get window class: error=%ld", osStatus); } } return windowClass; diff --git a/Source/WebKit/mac/ChangeLog b/Source/WebKit/mac/ChangeLog index 32f8e50..afaa1e3 100644 --- a/Source/WebKit/mac/ChangeLog +++ b/Source/WebKit/mac/ChangeLog @@ -1,3 +1,791 @@ +2011-03-30 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Darin Adler. + + REGRESSION (r82320): Spacebar no longer pages down + https://bugs.webkit.org/show_bug.cgi?id=57423 + <rdar://problem/9207702> + + Also includes some unrelated cleanup that I had in my tree. + + * WebView/WebHTMLView.mm: + (-[WebHTMLView _interpretKeyEvent:savingCommands:]): Added an assertion that the event is + being dispatched to the right frame. + (-[WebHTMLView setMarkedText:selectedRange:]): Use 0 for a pointer, not NULL. + (-[WebHTMLView doCommandBySelector:]): Update eventInterpretationHadSideEffects with "|=". + Even if this specific command hasn't been handled, that doesn't nullify side effects from + previous commands. + (-[WebHTMLView insertText:]): Besides looking at the return value of insertText() to fix the + bug, removed setting _private->interpretKeyEventsParameters to 0. I don't see any way for + another WebHTMLView NSTextInput method to be called from within insertText:, so no one is + going to look at it. + +2011-03-30 Sam Weinig <sam@webkit.org> + + Reviewed by Brady Eidson. + + WebKit2: Attempting to view css file from url causes it to download + <rdar://problem/9102611> + https://bugs.webkit.org/show_bug.cgi?id=57501 + + * WebView/WebHTMLRepresentation.h: + * WebView/WebHTMLRepresentation.mm: + (+[WebHTMLRepresentation unsupportedTextMIMETypes]): + * WebView/WebHTMLView.mm: + (+[WebHTMLView unsupportedTextMIMETypes]): + Re-factor unsupportedTextMIMETypes to pull from WebCore's + MIMETypeRegistry, so that the list can be shared with WebKit2. + +2011-03-29 Beth Dakin <bdakin@apple.com> + + Reviewed by Maciej Stachowiak. + + Fix for https://bugs.webkit.org/show_bug.cgi?id=57408 + webkit-min-device-pixel-ratio media query doesn't work post-SnowLeopard + -and corresponding- + <rdar://problem/8665411> + + * Misc/WebNSControlExtras.m: + (-[NSControl sizeToFitAndAdjustWindowHeight]): + * WebCoreSupport/WebChromeClient.mm: + (WebChromeClient::scaleFactor): + * WebView/WebHTMLView.mm: + (-[WebHTMLView viewDidMoveToWindow]): + (-[WebHTMLView attachRootLayer:]): + +2011-03-29 Kent Tamura <tkent@chromium.org> + + Reviewed by Dimitri Glazkov. + + Make validation message bubble testable + https://bugs.webkit.org/show_bug.cgi?id=57290 + + * WebView/WebView.mm: + (-[WebView _preferencesChangedNotification:]): Copy the private value of + the timer magnification to WebCore::Settings. + (-[WebView validationMessageTimerMagnification]): Added. + (-[WebView setValidationMessageTimerMagnification:]): Added. + * WebView/WebViewData.h: Declare a member for the timer magnification. + * WebView/WebViewData.mm: + (-[WebViewPrivate init]): Initialize the timer magnification. + * WebView/WebViewPrivate.h: + Declare a setter and a getter for the timer magnification. + +2011-03-29 Kent Tamura <tkent@chromium.org> + + Reviewed by Dimitri Glazkov. + + [Mac] Enable interactive-validation tests on Mac DRT + https://bugs.webkit.org/show_bug.cgi?id=57308 + + * WebView/WebView.mm: + (-[WebView _preferencesChangedNotification:]): + Convey a WebView flag for interactive validation to WebCore::Settings. + (-[WebView interactiveFormValidationEnabled]): Added. + (-[WebView setInteractiveFormValidationEnabled:]): Added. + * WebView/WebViewData.h: Add interactiveFormValidationEnabled. + * WebView/WebViewData.mm: + (-[WebViewPrivate init]): Initialize interactiveFormValidationEnabled. + * WebView/WebViewPrivate.h: Add setter and getter for interactiveFormValidationEnabled. + +2011-03-29 Timothy Hatcher <timothy@apple.com> + + Update the order of the context menu to better match AppKit on Mac. + + <rdar://problem/9054893> + + Reviewed by John Sullivan. + + * DefaultDelegates/WebDefaultContextMenuDelegate.mm: + (-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]): Update the order of items. + * WebCoreSupport/WebPlatformStrategies.h: + * WebCoreSupport/WebPlatformStrategies.mm: + (WebPlatformStrategies::contextMenuItemTagLookUpInDictionary): Added argument for selected string. + +2011-03-29 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=57379 + Clean up WK1 key event handling logic + + No bugs knowingly fixed, but this makes the code more consistent. + + * WebView/WebHTMLView.mm: + (struct WebHTMLViewInterpretKeyEventsParameters): Renamed eventWasHandled to + eventInterpretationHadSideEffects, because "handled" doesn't really mean much. + (-[WebHTMLView _executeSavedEditingCommands]): Factored out from _interpretKeyEvent for use + from other functions. We need to execute saved commands when an input method asks for current + state, because providing stale state could confuse it. + (-[WebHTMLView _interpretKeyEvent:savingCommands:]): Heavily commented, and updated for other + changes. + (-[WebHTMLView characterIndexForPoint:]): Call _executeSavedEditingCommands, because otherwise, + the answer would be stale. + (-[WebHTMLView firstRectForCharacterRange:]): Ditto. + (-[WebHTMLView selectedRange]): Ditto. + (-[WebHTMLView markedRange]): Ditto. + (-[WebHTMLView attributedSubstringFromRange:]): Ditto. + (-[WebHTMLView hasMarkedText]): Ditto. + (-[WebHTMLView unmarkText]): Call _executeSavedEditingCommands, because otherwise, we'd be + operating on stale data. Also, updated for eventWasHandled renaming. + (-[WebHTMLView setMarkedText:selectedRange:]): Ditto. + (-[WebHTMLView doCommandBySelector:]): Removed special handling for noop:. I verified that + it's no longer needed for bug 14522, presumably due to WebCore level changes. It was also + fragile, because there is no guarantee about when noop: is sent (also, a custom key binding + could have a noop: as one of its commands, although that's hardly practical). + Added the same "from input method" logic that we have in insertText: - I don't know of any + IMs that call this method, but we clearly need to execute it as part of IM processing when + there is marked text. + (-[WebHTMLView insertText:]): Removed a confusing check for [text length]. Always set + eventInterpretationHadSideEffects to true, becasue there is no reason to try multiple times + if current selection isn't editable. This is different from doCommandBySelector:, where we + need to give super class a chance to handle the event if our processing fails. + Removed a nonsense "consumedByIM = true" assignment - we no longer need it now that the + return value of _interpretKeyEvent is computed differently. + +2011-03-28 Adele Peterson <adele@apple.com> + + Reviewed by Eric Seidel. + + Fix for <rdar://problem/9112694> REGRESSION (r79411): "Check grammar with spelling" context menu doesn't check as you type + https://bugs.webkit.org/show_bug.cgi?id=57173 + + * WebView/WebFrame.mm: + (-[WebFrame hasSpellingMarker:length:]): Call new selectionStartHasMarkerFor method instead of selectionStartHasSpellingMarkerFor. + (-[WebFrame hasGrammarMarker:length:]): Call new selectionStartHasMarkerFor method. + * WebView/WebFramePrivate.h: Add hasGrammarMarker so grammar marking can be tested. + +2011-03-28 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=57260 + Clean up text input code a little + + * WebCoreSupport/WebEditorClient.mm: + (WebEditorClient::handleKeyboardEvent): + (WebEditorClient::handleInputMethodKeydown): + * WebView/WebHTMLViewInternal.h: + Renamed _interceptEditingKeyEvent:shouldSaveCommand:, becasue it doesn't really intercept + anything. It's just a version it interpretKeyEvents: that tells us whether it was handled, + and also possibly saves resulting commands for later execution. + + * WebView/WebHTMLView.mm: + (-[WebHTMLView _interpretKeyEvent:savingCommands:]): Changed to use early return. Changed + return value in case platformEvent is null to be less mysterious. Moved receivedNOOP from + WebHTMLViewPrivate to WebHTMLViewInterpretKeyEventsParameters, as this is just part of event + handling state, like the other booleans there. Don't call interpretKeyEvents: again simply + because the first call resulted in no saved commands, becasue it's confusing and apparently + useless (I couldn't find any broken behavior). + (-[WebHTMLView unmarkText]): Cleaned upo BOOL vs. bool constants. + (-[WebHTMLView setMarkedText:selectedRange:]): Ditto. + (-[WebHTMLView doCommandBySelector:]): Ditto. + (-[WebHTMLView insertText:]): Ditto. + + * WebView/WebViewInternal.h: There was no _interceptEditingKeyEvent:shouldSaveCommand: + method on WebView. + +2011-03-27 Jer Noble <jer.noble@apple.com> + + Reviewed by Maciej Stachowiak. + + Full Screen: disable keyboard access by default + https://bugs.webkit.org/show_bug.cgi?id=56684 + + Take into account whether keyboard access was requested when deciding whether full + screen mode is supported. + + * WebCoreSupport/WebChromeClient.h: + * WebCoreSupport/WebChromeClient.mm: + (WebChromeClient::supportsFullScreenForElement): + * WebView/WebView.mm: + (-[WebView _supportsFullScreenForElement:WebCore::withKeyboard:]): + * WebView/WebViewInternal.h: + +2011-03-26 Jer Noble <jer.noble@apple.com> + + Reviewed by Eric Carlson. + + Enable the Full Screen API by default in WebKit/mac and WebKit2 + https://bugs.webkit.org/show_bug.cgi?id=56956 + + * WebView/WebPreferences.mm: + (+[WebPreferences initialize]): Default the WebKitFullScreenEnabled preference to true. + +2011-03-25 Andy Estes <aestes@apple.com> + + Reviewed by Adele Peterson. + + REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js + https://bugs.webkit.org/show_bug.cgi?id=49016 + + Update objectContentType() implementation to handle the + shouldPreferPlugInsForImages flag. + + * WebCoreSupport/WebFrameLoaderClient.h: + * WebCoreSupport/WebFrameLoaderClient.mm: + (WebFrameLoaderClient::objectContentType): + +2011-03-24 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r81939. + http://trac.webkit.org/changeset/81939 + https://bugs.webkit.org/show_bug.cgi?id=57084 + + Rolling out 81939, as it's causing a number of app cache test + failures. (Requested by jernoble on #webkit). + + * WebView/WebView.mm: + (-[WebView _preferencesChangedNotification:]): + +2011-03-23 Jer Noble <jer.noble@apple.com> + + Reviewed by Maciej Stachowiak. + + Application Cache should save audio/ and video/ mime types as flat files + https://bugs.webkit.org/show_bug.cgi?id=53784 + <rdar://problem/8932473> + + No new tests. + + Initialize the AppCache Total size quotas with the values for WebKitPreferences + upon startup. + + * WebView/WebView.mm: + (-[WebView _preferencesChangedNotification:]): + +2011-03-24 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r81916 and r81917. + http://trac.webkit.org/changeset/81916 + http://trac.webkit.org/changeset/81917 + https://bugs.webkit.org/show_bug.cgi?id=57071 + + broke a test on platforms that do not have QuickTime installed + (Requested by estes on #webkit). + + * WebCoreSupport/WebFrameLoaderClient.h: + * WebCoreSupport/WebFrameLoaderClient.mm: + (WebFrameLoaderClient::objectContentType): + +2011-03-24 Andy Estes <aestes@apple.com> + + Reviewed by Darin Adler. + + REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js + https://bugs.webkit.org/show_bug.cgi?id=49016 + + Update objectContentType() implementation to handle the + shouldPreferPlugInsForImages flag. + + * WebCoreSupport/WebFrameLoaderClient.h: + * WebCoreSupport/WebFrameLoaderClient.mm: + (WebFrameLoaderClient::objectContentType): + +2011-03-24 Geoffrey Garen <ggaren@apple.com> + + Reviewed by Oliver Hunt. + + Ensure that all compilation takes place within a dynamic global object scope + https://bugs.webkit.org/show_bug.cgi?id=57054 + + * WebView/WebScriptDebugDelegate.mm: + (-[WebScriptCallFrame evaluateWebScript:]): Updated for signature change. + +2011-03-24 Jia Pu <jpu@apple.com> + + Reviewed by Darin Adler. + + Dismissed reversion suggestion is incorrectly learned. + https://bugs.webkit.org/show_bug.cgi?id=57039 + + CorrectionPanel should always use [NSSpellChecker dismissCorrectionBubbleForView]. + [NSSpellChecker cancelCorrectionBubbleForView] is reserved for situation where correction panel + is dismissed explicitly by ESC key or clicking the dimiss button. Misusing these causes + incorrect automatic learning. + + * WebCoreSupport/CorrectionPanel.mm: + (CorrectionPanel::dismissInternal): + +2011-03-24 David Kilzer <ddkilzer@apple.com> + + <http://webkit.org/b/56993> ENABLE_PLUGIN_PROXY_FOR_VIDEO should be defined to 0 on Mac OS X + + Reviewed by Joseph Pecoraro. + + * Plugins/WebPluginContainerPrivate.h: Changed value of + ENABLE_PLUGIN_PROXY_FOR_VIDEO from 1 to 0. + +2011-03-23 Jia Pu <jpu@apple.com> + + Reviewed by Darin Adler. + + Hook up new AppKit autocorrection UI with WK2. + https://bugs.webkit.org/show_bug.cgi?id=56055 + <rdar://problem/8947463> + + Please see WebCore/ChangeLog for detail. + + * WebCoreSupport/CorrectionPanel.h: Added. + (CorrectionPanel::isShowing): + * WebCoreSupport/CorrectionPanel.mm: Added. + (correctionBubbleType): + (CorrectionPanel::CorrectionPanel): + (CorrectionPanel::~CorrectionPanel): + (CorrectionPanel::show): + (CorrectionPanel::dismiss): + (CorrectionPanel::dismissSoon): + (CorrectionPanel::dismissInternal): + (CorrectionPanel::recordAutocorrectionResponse): + * WebCoreSupport/WebEditorClient.h: + * WebCoreSupport/WebEditorClient.mm: + (WebEditorClient::WebEditorClient): + (WebEditorClient::showCorrectionPanel): + (WebEditorClient::dismissCorrectionPanel): + (WebEditorClient::dismissCorrectionPanelSoon): + (WebEditorClient::recordAutocorrectionResponse): + * WebView/WebView.mm: + (-[WebView handleCorrectionPanelResult:]): + * WebView/WebViewPrivate.h: + +2011-03-23 Enrica Casucci <enrica@apple.com> + + Reviewed by Alexey Proskuryakov. + + Services menu item to convert selected Simplified/Traditional Chinese Text is not working. + https://bugs.webkit.org/show_bug.cgi?id=56974 + <rdar://problem/8284642> + + This fixes a regression introduced by http://trac.webkit.org/changeset/61794 + where readSelectionFromPasteboard was accidentally removed. + This method and writeSelectionToPasteboard are needed to support Mac OS X + services. + + * WebView/WebHTMLView.mm: + (-[WebHTMLView _pasteAsPlainTextWithPasteboard:]): Added. + (-[WebHTMLView readSelectionFromPasteboard:]): Added. + +2011-03-23 Brady Eidson <beidson@apple.com> + + Reviewed by Sam Weinig. + + Change IconDatabase opening to allow for arbitrary filenames + https://bugs.webkit.org/show_bug.cgi?id=56977 + + * Misc/WebIconDatabase.mm: + (-[WebIconDatabase _startUpIconDatabase]): + +2011-03-22 Anton D'Auria <adauria@apple.com> + + Reviewed by Alexey Proskuryakov. + + Add +[WebApplicationCache getOriginsWithCache] + https://bugs.webkit.org/show_bug.cgi?id=56722 + + Call existing WebCore::ApplicationCacheStorage::getOriginsWithCache API. + + * WebCoreSupport/WebApplicationCache.h: + * WebCoreSupport/WebApplicationCache.mm: + (+[WebApplicationCache originsWithCache]): + +2011-03-22 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + OBJECT element with DivX source is always downloaded + https://bugs.webkit.org/show_bug.cgi?id=56879 + + * Plugins/WebBasePluginPackage.mm: + (-[WebBasePluginPackage getPluginInfoFromPLists]): + Always try to split every element in the "WebPluginExtensions" array, since the DivX plug-in + specifies multiple file extensions in a single element. + +2011-03-22 Brady Eidson <beidson@apple.com> + + Reviewed by Sam Weinig. + + <rdar://problem/8648311> and https://bugs.webkit.org/show_bug.cgi?id=56876 + WK2 Icon DB: Expand IconDatabaseClient interface and move it to the main thread + + Note that while the new client calls always come through on the main thread, our mechanisms to + route dispatches to the main thread are still valid and will still work. + + Update to the new IconDatabaseClient interface: + * WebCoreSupport/WebIconDatabaseClient.h: + * WebCoreSupport/WebIconDatabaseClient.mm: + (WebIconDatabaseClient::didRemoveAllIcons): + (WebIconDatabaseClient::didImportIconURLForPageURL): + (WebIconDatabaseClient::didImportIconDataForPageURL): + (WebIconDatabaseClient::didChangeIconForPageURL): + (WebIconDatabaseClient::didFinishURLImport): + +2011-03-22 Matthew Delaney <mdelaney@apple.com> + + Reviewed by Simon Fraser. + + Have WebKit push acceleratedDrawing preferences to settings + https://bugs.webkit.org/show_bug.cgi?id=56792 + + * WebView/WebView.mm: + +2011-03-21 Nate Chapin <japhet@chromium.org> + + Reviewed by Brady Eidson. + + Expose a preference to use caching quirks for QuickLook, + and use it if the QuickLook framework is loaded. + + https://bugs.webkit.org/show_bug.cgi?id=38690 + + * WebView/WebPreferenceKeysPrivate.h: + * WebView/WebPreferences.mm: + (useQuickLookQuirks): + (+[WebPreferences initialize]): + (-[WebPreferences useQuickLookResourceCachingQuirks]): + * WebView/WebPreferencesPrivate.h: + * WebView/WebView.mm: + (-[WebView _preferencesChangedNotification:]): + +2011-03-21 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Darin Adler. + + AX: showContextMenu not working in WK2 + https://bugs.webkit.org/show_bug.cgi?id=56734 + + Implement showContextMenu() so accessibility related code can call this + independent of whether WK1 or WK2 is running. + + * WebCoreSupport/WebChromeClient.h: + * WebCoreSupport/WebChromeClient.mm: + (WebChromeClient::showContextMenu): + +2011-03-21 Chang Shu <cshu@webkit.org> + + Reviewed by Alexey Proskuryakov. + + REGRESSION (r79953): Can't type in MS Outlook 2011 + https://bugs.webkit.org/show_bug.cgi?id=56665 + + r79953 removed the WebView level editablity which is persistent no matter whether + underlying document itself is changed and editability gets lost. The resolution is to + set this WebView editable value to WebCore. This avoids the callback from WebCore to + WebKit which was the main goal in r79953 to improve performance. + + * WebView/WebView.mm: + (-[WebView setEditable:]): + (-[WebView isEditable]): + +2011-03-19 Anton D'Auria <adauria@apple.com> + + Reviewed by Alexey Proskuryakov. + + ApplicationCacheGroup is not obsolete after being deleted via ApplicationCacheStorage::deleteEntriesForOrigin + https://bugs.webkit.org/show_bug.cgi?id=56415 + + Use new ApplicationCache API to delete all cache for an origin. + + * WebCoreSupport/WebApplicationCache.h: + * WebCoreSupport/WebApplicationCache.mm: + (+[WebApplicationCache deleteOrigin:]): + +2011-03-17 Brady Eidson <beidson@apple.com> + + Reviewed by Sam Weinig. + + https://bugs.webkit.org/show_bug.cgi?id=56425 + More groundwork for WebKit2 IconDatabase + + Update already-used function names: + * Misc/WebIconDatabase.mm: + (-[WebIconDatabase iconForURL:withSize:cache:]): + (-[WebIconDatabase iconURLForURL:]): + * WebView/WebView.mm: + (-[WebView _dispatchDidReceiveIconFromWebFrame:]): + +2011-03-18 Pavel Podivilov <podivilov@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: implement inspector session storage. + https://bugs.webkit.org/show_bug.cgi?id=56643 + + * WebCoreSupport/WebInspectorClient.h: + * WebCoreSupport/WebInspectorClient.mm: + (WebInspectorClient::saveSessionSetting): + (WebInspectorClient::loadSessionSetting): + (WebInspectorFrontendClient::saveSessionSetting): + (WebInspectorFrontendClient::loadSessionSetting): + (-[WebInspectorWindowController inspectorClient]): + +2011-03-17 Geoffrey Garen <ggaren@apple.com> + + Reviewed by Oliver Hunt. + + Fixed a leak seen on the buildbot. + + * WebCoreSupport/WebInspectorClient.mm: + (WebInspectorClient::openInspectorFrontend): Smart pointers are smart. + +2011-03-16 Jeff Johnson <github@lapcatsoftware.com> + + Reviewed by Alexey Proskuryakov. + + Logic error in -[WebHTMLView close] + https://bugs.webkit.org/show_bug.cgi?id=56445 + + Page is always nil at this point, because [self _webView] is nil, + so the conditional code is never run. + + * WebView/WebHTMLView.mm: + (-[WebHTMLView close]): + +2011-03-16 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Darin Adler. + + WK2: Need to propagate enhanced accessibility flag from UI -> web process + https://bugs.webkit.org/show_bug.cgi?id=56379 + + * WebView/WebFrame.mm: + (-[WebFrame accessibilityRoot]): + +2011-03-15 Oliver Hunt <oliver@apple.com> + + Reviewed by Geoffrey Garen. + + Make Structure creation require a JSGlobalData + https://bugs.webkit.org/show_bug.cgi?id=56438 + + Mechanical change to make all Structure creation use a JSGlobalData& + + * Plugins/Hosted/ProxyInstance.mm: + (WebKit::ProxyRuntimeMethod::createStructure): + * Plugins/Hosted/ProxyRuntimeObject.h: + (WebKit::ProxyRuntimeObject::createStructure): + +2011-03-15 Alexey Proskuryakov <ap@apple.com> + + Forgot to save a modification to this file when committing. + + * WebCoreSupport/WebKeyGenerator.mm: Changed "Apple Computer" to "Apple" in copyright header. + +2011-03-15 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Darin Adler. + + REGRESSION (WebKit2): keygen element doesn't work + https://bugs.webkit.org/show_bug.cgi?id=56402 + <rdar://problem/9006545> + + * WebCoreSupport/WebKeyGenerator.h: + * WebCoreSupport/WebKeyGenerator.m: Removed. + * WebCoreSupport/WebKeyGenerator.mm: Copied from Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.m. + (+[WebKeyGenerator sharedGenerator]): + (toWebCertificateParseResult): + WebCore no longer needs WebKeyGenerator. Safari still does need a part of it, so keeping + this misnamed and misplaced code for now. + + * WebCoreSupport/WebPlatformStrategies.h: + * WebCoreSupport/WebPlatformStrategies.mm: + (WebPlatformStrategies::keygenMenuItem512): + (WebPlatformStrategies::keygenMenuItem1024): + (WebPlatformStrategies::keygenMenuItem2048): + (WebPlatformStrategies::keygenKeychainItemName): + Added strings used by keygen. + + * WebCoreSupport/WebSystemInterface.mm: (InitWebCoreSystemInterface): Initialize a WebCore + pointer to a function used by keygen. + + * WebView/WebFrameView.mm: (-[WebFrameView initWithFrame:]): WebKeyGenerator can be lazily + initialized now. + +2011-03-15 Beth Dakin <bdakin@apple.com> + + Reviewed by Simon Fraser. + + WebKit part of <rdar://problem/9075624> Overlay scrollbars slow down PLT by 6% + + New WebKitystemInterface function to force the scrollbars to flash + * WebCoreSupport/WebSystemInterface.mm: + (InitWebCoreSystemInterface): + +2011-03-15 Ilya Sherman <isherman@chromium.org> + + Reviewed by Tony Chang. + + Autofilled form elements are assigned fixed background color but not text color + https://bugs.webkit.org/show_bug.cgi?id=48382 + + * DOM/WebDOMOperations.mm: + (-[DOMHTMLInputElement _setAutofilled:]): Added (wrapper). + * DOM/WebDOMOperationsPrivate.h: + +2011-03-15 Adam Roben <aroben@apple.com> + + Fix a leak in WebStorageTrackerClient::dispatchDidModifyOrigin + + Fixes <http://webkit.org/b/56385> SecurityOrigin leaks seen in + WebStorageTrackerClient::dispatchDidModifyOrigin + + Reviewed by Antti Koivisto. + + * Storage/WebStorageTrackerClient.mm: + (WebStorageTrackerClient::dispatchDidModifyOriginOnMainThread): Adopt the reference passed + to us by dispatchDidModifyOrigin. + (WebStorageTrackerClient::dispatchDidModifyOrigin): Added a comment and removed an + unnecessary cast. + +2011-03-15 Kevin Ollivier <kevino@theolliviers.com> + + Reviewed by Darin Adler. + + Introduce WTF_USE_EXPORT_MACROS, which will allow us to put shared library import/export + info into the headers rather than in export symbol definition files, but disable it on + all platforms initially so we can deal with port build issues one port at a time. + + https://bugs.webkit.org/show_bug.cgi?id=27551 + + * WebKitPrefix.h: + +2011-03-14 Brady Eidson <beidson@apple.com> + + Reviewed by Anders Carlsson. + + https://bugs.webkit.org/show_bug.cgi?id=56320 + Remove HistoryItem::icon() and the WebCore dependency on "IconDatabaseBase::defaultIcon()" + + * History/WebHistoryItem.mm: + (-[WebHistoryItem icon]): This far-future FIXME is now irrelevant. + +2011-03-13 Pratik Solanki <psolanki@apple.com> + + Reviewed by Brady Eidson. + + Make adjustMIMETypeIfNecessary use CFNetwork directly + https://bugs.webkit.org/show_bug.cgi?id=55912 + + * WebCoreSupport/WebSystemInterface.mm: + (InitWebCoreSystemInterface): Support for new WKSI functions. + +2011-03-12 Mark Rowe <mrowe@apple.com> + + Fix the 32-bit build. + + * Carbon/CarbonWindowAdapter.mm: + (-[CarbonWindowAdapter initWithCarbonWindowRef:takingOwnership:disableOrdering:carbon:]): Use a more appropriate format specifier. + (-[CarbonWindowAdapter _carbonWindowClass]): Ditto. + +2011-03-11 Brady Eidson <beidson@apple.com> + + Reviewed by Anders Carlsson + + <rdar://problem/8648311> and https://bugs.webkit.org/show_bug.cgi?id=56216 + Rework disabled IconDatabase builds while allowing for a pluggable icon database implementation. + + * Misc/WebIconDatabase.mm: + (+[WebIconDatabase _checkIntegrityBeforeOpening]): Call these static methods on IconDatabase::, not iconDatabase(). + (-[WebIconDatabase _startUpIconDatabase]): Ditto. + (importToWebCoreFormat): + +2011-03-11 Anton D'Auria <adauria@apple.com> + + Reviewed and landed by Brady Eidson. + + https://bugs.webkit.org/show_bug.cgi?id=51878 + Add WebKit1 API to view and delete local storage + + * Storage/WebStorageManager.mm: Added. + (+[WebStorageManager sharedWebStorageManager]): + (-[WebStorageManager origins]): + (-[WebStorageManager deleteAllOrigins]): + (-[WebStorageManager deleteOrigin:]): + (-[WebStorageManager syncLocalStorage]): + (-[WebStorageManager syncFileSystemAndTrackerDatabase]): + (storageDirectoryPath): + (WebKitInitializeStorageIfNecessary): + * Storage/WebStorageManagerInternal.h: Added. + * Storage/WebStorageManagerPrivate.h: Added. + * Storage/WebStorageTrackerClient.h: Added. + * Storage/WebStorageTrackerClient.mm: Added. + (WebStorageTrackerClient::sharedWebStorageTrackerClient): + (WebStorageTrackerClient::WebStorageTrackerClient): + (WebStorageTrackerClient::~WebStorageTrackerClient): + (WebStorageTrackerClient::dispatchDidModifyOriginOnMainThread): + (WebStorageTrackerClient::dispatchDidModifyOrigin): + * WebCoreSupport/WebSecurityOrigin.mm: + (-[WebSecurityOrigin protocol]): + (-[WebSecurityOrigin host]): + (-[WebSecurityOrigin databaseIdentifier]): + (-[WebSecurityOrigin domain]): + (-[WebSecurityOrigin _initWithWebCoreSecurityOrigin:]): + * WebCoreSupport/WebSecurityOriginPrivate.h: + * WebKit.exp: + * WebView/WebView.mm: + (-[WebView _commonInitializationWithFrameName:groupName:usesDocumentViews:]): + +2011-03-10 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + <rdar://problem/9117047> + Don't paint more than 60 times per second even when scrolling + + * WebView/WebClipView.mm: + (-[WebClipView _immediateScrollToPoint:]): + +2011-03-09 Matthew Delaney <mdelaney@apple.com> + + Reviewed by Simon Fraser. + + Plumb through settings for accelerated drawing for canvas + https://bugs.webkit.org/show_bug.cgi?id=56039 + + * WebView/WebPreferenceKeysPrivate.h: + * WebView/WebPreferences.mm: + * WebView/WebPreferencesPrivate.h: + +2011-03-10 Ryosuke Niwa <rniwa@webkit.org> + + Reviewed by Tony Chang. + + VisiblePosition's next and previous should take an enum instead of a boolean + https://bugs.webkit.org/show_bug.cgi?id=56135 + + SelectionController::isAll now takes EditingBoundaryCrossingRule instead of + StayInEditableContent. + + * WebView/WebView.mm: + (-[WebView _selectionIsAll]): + +2011-03-09 Jessie Berlin <jberlin@apple.com> + + Reviewed by Adam Roben. + + Use the Cookie Storage from the Private Browsing Storage Session directly + https://bugs.webkit.org/show_bug.cgi?id=55986 + + * WebCoreSupport/WebSystemInterface.mm: + (InitWebCoreSystemInterface): + +2011-03-08 Darin Adler <darin@apple.com> + + Reviewed by Timothy Hatcher. + + Promote a method used outside WebKit from internal to private + https://bugs.webkit.org/show_bug.cgi?id=55949 + + * Misc/WebNSPasteboardExtras.mm: Removed an unused category declaration. + Minor tweak, not directly related to the rest of this patch. + + * WebView/WebFrame.mm: + (-[WebFrame _computePageRectsWithPrintScaleFactor:pageSize:]): Moved + this method from the internal category into the private category. + Streamlined the code a bit. + + * WebView/WebFrameInternal.h: Removed _computePageRects method. + * WebView/WebFramePrivate.h: Added _computePageRects method. + 2011-03-07 Ryosuke Niwa <rniwa@webkit.org> Reviewed by Darin Adler. diff --git a/Source/WebKit/mac/Configurations/Base.xcconfig b/Source/WebKit/mac/Configurations/Base.xcconfig index 0e84791..0cf0f7a 100644 --- a/Source/WebKit/mac/Configurations/Base.xcconfig +++ b/Source/WebKit/mac/Configurations/Base.xcconfig @@ -25,7 +25,6 @@ DEBUG_INFORMATION_FORMAT = dwarf; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DEBUGGING_SYMBOLS = default; GCC_DYNAMIC_NO_PIC = NO; -GCC_ENABLE_CPP_EXCEPTIONS = NO; GCC_ENABLE_CPP_RTTI = NO; GCC_ENABLE_OBJC_EXCEPTIONS = YES; GCC_ENABLE_OBJC_GC = $(GCC_ENABLE_OBJC_GC_$(REAL_PLATFORM_NAME)); @@ -104,12 +103,23 @@ TARGET_GCC_VERSION_macosx_1050_ = $(TARGET_GCC_VERSION_macosx_1050_$(XCODE_VERSI TARGET_GCC_VERSION_macosx_1050_0310 = GCC_42; TARGET_GCC_VERSION_macosx_1050_0320 = GCC_42; TARGET_GCC_VERSION_macosx_1060 = GCC_42; -TARGET_GCC_VERSION_macosx_1070 = LLVM_GCC_42; +TARGET_GCC_VERSION_macosx_1070 = $(TARGET_GCC_VERSION_macosx_1070_$(CONFIGURATION)); +TARGET_GCC_VERSION_macosx_1070_Debug = LLVM_COMPILER; +TARGET_GCC_VERSION_macosx_1070_Release = LLVM_GCC_42; +TARGET_GCC_VERSION_macosx_1070_Production = LLVM_GCC_42; GCC_VERSION = $(GCC_VERSION_$(TARGET_GCC_VERSION)); GCC_VERSION_GCC_40 = 4.0; GCC_VERSION_GCC_42 = 4.2; GCC_VERSION_LLVM_GCC_42 = com.apple.compilers.llvmgcc42; +GCC_VERSION_LLVM_COMPILER = com.apple.compilers.llvm.clang.1_0; + +// FIXME: Disable C++ exceptions in the LLVM Compiler once it supports enabling Obj-C exceptions without C++ exceptions. +GCC_ENABLE_CPP_EXCEPTIONS = $(GCC_ENABLE_CPP_EXCEPTIONS_$(TARGET_GCC_VERSION)); +GCC_ENABLE_CPP_EXCEPTIONS_GCC_40 = NO; +GCC_ENABLE_CPP_EXCEPTIONS_GCC_42 = NO; +GCC_ENABLE_CPP_EXCEPTIONS_LLVM_GCC = NO; +GCC_ENABLE_CPP_EXCEPTIONS_LLVM_COMPILER = YES; // If the target Mac OS X version does not match the current Mac OS X version then we'll want to build using the target version's SDK. SDKROOT = $(SDKROOT_$(MAC_OS_X_VERSION_MAJOR)_$(TARGET_MAC_OS_X_VERSION_MAJOR)); diff --git a/Source/WebKit/mac/Configurations/Version.xcconfig b/Source/WebKit/mac/Configurations/Version.xcconfig index b6a6045..5e8e50b 100644 --- a/Source/WebKit/mac/Configurations/Version.xcconfig +++ b/Source/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 = 24; +MINOR_VERSION = 27; TINY_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION); diff --git a/Source/WebKit/mac/DOM/WebDOMOperations.mm b/Source/WebKit/mac/DOM/WebDOMOperations.mm index eee4919..979433d 100644 --- a/Source/WebKit/mac/DOM/WebDOMOperations.mm +++ b/Source/WebKit/mac/DOM/WebDOMOperations.mm @@ -197,6 +197,11 @@ using namespace JSC; @implementation DOMHTMLInputElement (WebDOMHTMLInputElementOperationsPrivate) +- (void)_setAutofilled:(BOOL)autofilled +{ + static_cast<HTMLInputElement*>(core((DOMElement *)self))->setAutofilled(autofilled); +} + - (void)_setValueForUser:(NSString *)value { static_cast<HTMLInputElement*>(core((DOMElement *)self))->setValueForUser(value); diff --git a/Source/WebKit/mac/DOM/WebDOMOperationsPrivate.h b/Source/WebKit/mac/DOM/WebDOMOperationsPrivate.h index dc1aaf8..b579a6f 100644 --- a/Source/WebKit/mac/DOM/WebDOMOperationsPrivate.h +++ b/Source/WebKit/mac/DOM/WebDOMOperationsPrivate.h @@ -39,6 +39,7 @@ @end @interface DOMHTMLInputElement (WebDOMHTMLInputElementOperationsPrivate) +- (void)_setAutofilled:(BOOL)autofilled; - (void)_setValueForUser:(NSString *)value; @end diff --git a/Source/WebKit/mac/DefaultDelegates/WebDefaultContextMenuDelegate.mm b/Source/WebKit/mac/DefaultDelegates/WebDefaultContextMenuDelegate.mm index a2f02e6..a6dd828 100644 --- a/Source/WebKit/mac/DefaultDelegates/WebDefaultContextMenuDelegate.mm +++ b/Source/WebKit/mac/DefaultDelegates/WebDefaultContextMenuDelegate.mm @@ -129,6 +129,12 @@ } } +#if defined(BUILDING_ON_TIGER) || defined(BUILDING_ON_LEOPARD) || defined(BUILDING_ON_SNOW_LEOPARD) +#define INCLUDE_SPOTLIGHT_CONTEXT_MENU_ITEM 1 +#else +#define INCLUDE_SPOTLIGHT_CONTEXT_MENU_ITEM 0 +#endif + - (NSArray *)webView:(WebView *)wv contextMenuItemsForElement:(NSDictionary *)element defaultMenuItems:(NSArray *)defaultMenuItems { // The defaultMenuItems here are ones supplied by the WebDocumentView protocol implementation. WebPDFView is @@ -141,16 +147,29 @@ // The Spotlight and Google items are implemented in WebView, and require that the // current document view conforms to WebDocumentText ASSERT([[[webFrame frameView] documentView] conformsToProtocol:@protocol(WebDocumentText)]); - [menuItems addObject:[self menuItemWithTag:WebMenuItemTagSearchInSpotlight target:nil representedObject:element]]; - [menuItems addObject:[self menuItemWithTag:WebMenuItemTagSearchWeb target:nil representedObject:element]]; - [menuItems addObject:[NSMenuItem separatorItem]]; // FIXME 4184640: The Look Up in Dictionary item is only implemented in WebHTMLView, and so is present but // dimmed for other cases where WebElementIsSelectedKey is present. It would probably // be better not to include it in the menu if the documentView isn't a WebHTMLView, but that could break // existing clients that have code that relies on it being present (unlikely for clients outside of Apple, // but Safari has such code). - [menuItems addObject:[self menuItemWithTag:WebMenuItemTagLookUpInDictionary target:nil representedObject:element]]; + +#if INCLUDE_SPOTLIGHT_CONTEXT_MENU_ITEM + [menuItems addObject:[self menuItemWithTag:WebMenuItemTagSearchInSpotlight target:nil representedObject:element]]; +#else + NSMenuItem *lookupMenuItem = [self menuItemWithTag:WebMenuItemTagLookUpInDictionary target:nil representedObject:element]; + NSString *selectedString = [(id <WebDocumentText>)[[webFrame frameView] documentView] selectedString]; + [lookupMenuItem setTitle:[NSString stringWithFormat:UI_STRING_INTERNAL("Look Up “%@”", "Look Up context menu item with selected word"), selectedString]]; + [menuItems addObject:lookupMenuItem]; +#endif + + [menuItems addObject:[self menuItemWithTag:WebMenuItemTagSearchWeb target:nil representedObject:element]]; + +#if INCLUDE_SPOTLIGHT_CONTEXT_MENU_ITEM + [menuItems addObject:[NSMenuItem separatorItem]]; + [menuItems addObject:[self menuItemWithTag:WebMenuItemTagLookUpInDictionary target:nil representedObject:element]]; +#endif + [menuItems addObject:[NSMenuItem separatorItem]]; [menuItems addObject:[self menuItemWithTag:WebMenuItemTagCopy target:nil representedObject:element]]; } else { diff --git a/Source/WebKit/mac/History/WebHistoryItem.mm b/Source/WebKit/mac/History/WebHistoryItem.mm index de56180..530b18a 100644 --- a/Source/WebKit/mac/History/WebHistoryItem.mm +++ b/Source/WebKit/mac/History/WebHistoryItem.mm @@ -185,12 +185,6 @@ void WKNotifyHistoryItemChanged(HistoryItem*) - (NSImage *)icon { return [[WebIconDatabase sharedIconDatabase] iconForURL:[self URLString] withSize:WebIconSmallSize]; - - // FIXME: Ideally, this code should simply be the following - - // return core(_private)->icon()->getNSImage(); - // Once radar - - // <rdar://problem/4906567> - NSImage returned from WebCore::Image may be incorrect size - // is resolved } - (NSTimeInterval)lastVisitedTimeInterval diff --git a/Source/WebKit/mac/Misc/WebIconDatabase.mm b/Source/WebKit/mac/Misc/WebIconDatabase.mm index 50bcd7e..f223f09 100644 --- a/Source/WebKit/mac/Misc/WebIconDatabase.mm +++ b/Source/WebKit/mac/Misc/WebIconDatabase.mm @@ -137,8 +137,8 @@ static WebIconDatabaseClient* defaultClient() // FIXME - <rdar://problem/4697934> - Move the handling of FileURLs to WebCore and implement in ObjC++ if ([URL _webkit_isFileURL]) return [self _iconForFileURL:URL withSize:size]; - - if (Image* image = iconDatabase().iconForPageURL(URL, IntSize(size))) + + if (Image* image = iconDatabase().synchronousIconForPageURL(URL, IntSize(size))) if (NSImage *icon = webGetNSImage(image, size)) return icon; return [self defaultIconForURL:URL withSize:size]; @@ -155,7 +155,7 @@ static WebIconDatabaseClient* defaultClient() return nil; ASSERT_MAIN_THREAD(); - return iconDatabase().iconURLForPageURL(URL); + return iconDatabase().synchronousIconURLForPageURL(URL); } - (NSImage *)defaultIconWithSize:(NSSize)size @@ -258,7 +258,7 @@ static WebIconDatabaseClient* defaultClient() + (void)_checkIntegrityBeforeOpening { - iconDatabase().checkIntegrityBeforeOpening(); + IconDatabase::checkIntegrityBeforeOpening(); } @end @@ -296,14 +296,14 @@ static WebIconDatabaseClient* defaultClient() NSString *legacyDB = [databaseDirectory stringByAppendingPathComponent:@"icon.db"]; NSFileManager *defaultManager = [NSFileManager defaultManager]; if ([defaultManager fileExistsAtPath:legacyDB isDirectory:&isDirectory] && !isDirectory) { - NSString *newDB = [databaseDirectory stringByAppendingPathComponent:iconDatabase().defaultDatabaseFilename()]; + NSString *newDB = [databaseDirectory stringByAppendingPathComponent:IconDatabase::defaultDatabaseFilename()]; if (![defaultManager fileExistsAtPath:newDB]) rename([legacyDB fileSystemRepresentation], [newDB fileSystemRepresentation]); } // Set the private browsing pref then open the WebCore icon database iconDatabase().setPrivateBrowsingEnabled([[WebPreferences standardPreferences] privateBrowsingEnabled]); - if (!iconDatabase().open(databaseDirectory)) + if (!iconDatabase().open(databaseDirectory, IconDatabase::defaultDatabaseFilename())) LOG_ERROR("Unable to open icon database"); // Register for important notifications @@ -656,7 +656,7 @@ bool importToWebCoreFormat() NSFileManager *fileManager = [NSFileManager defaultManager]; enumerator = [[fileManager contentsOfDirectoryAtPath:databaseDirectory error:NULL] objectEnumerator]; - NSString *databaseFilename = iconDatabase().defaultDatabaseFilename(); + NSString *databaseFilename = IconDatabase::defaultDatabaseFilename(); BOOL foundIconDB = NO; NSString *file; diff --git a/Source/WebKit/mac/Misc/WebNSControlExtras.m b/Source/WebKit/mac/Misc/WebNSControlExtras.m index b666131..dc91e23 100644 --- a/Source/WebKit/mac/Misc/WebNSControlExtras.m +++ b/Source/WebKit/mac/Misc/WebNSControlExtras.m @@ -44,7 +44,15 @@ NSWindow *window = [self window]; NSRect windowFrame = [window frame]; - windowFrame.size.height += heightDelta * [window userSpaceScaleFactor]; + + CGFloat userSpaceScaleFactor; +#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD) + userSpaceScaleFactor = [window backingScaleFactor]; +#else + userSpaceScaleFactor = [window userSpaceScaleFactor]; +#endif + + windowFrame.size.height += heightDelta * userSpaceScaleFactor; [window setFrame:windowFrame display:NO]; } diff --git a/Source/WebKit/mac/Misc/WebNSPasteboardExtras.mm b/Source/WebKit/mac/Misc/WebNSPasteboardExtras.mm index 7caa47a..f5c7436 100644 --- a/Source/WebKit/mac/Misc/WebNSPasteboardExtras.mm +++ b/Source/WebKit/mac/Misc/WebNSPasteboardExtras.mm @@ -47,11 +47,6 @@ #import <wtf/RetainPtr.h> #import <wtf/StdLibExtras.h> -@interface NSFilePromiseDragSource : NSObject -- (id)initWithSource:(id)draggingSource; -- (void)setTypes:(NSArray *)types onPasteboard:(NSPasteboard *)pboard; -@end - using namespace WebCore; NSString *WebURLPboardType = @"public.url"; diff --git a/Source/WebKit/mac/Plugins/Hosted/ProxyInstance.mm b/Source/WebKit/mac/Plugins/Hosted/ProxyInstance.mm index 8a413d4..f26b85d 100644 --- a/Source/WebKit/mac/Plugins/Hosted/ProxyInstance.mm +++ b/Source/WebKit/mac/Plugins/Hosted/ProxyInstance.mm @@ -187,9 +187,9 @@ public: ASSERT(inherits(&s_info)); } - static PassRefPtr<Structure> createStructure(JSValue prototype) + static PassRefPtr<Structure> createStructure(JSGlobalData& globalData, JSValue prototype) { - return Structure::create(prototype, TypeInfo(ObjectType, StructureFlags), AnonymousSlotCount, &s_info); + return Structure::create(globalData, prototype, TypeInfo(ObjectType, StructureFlags), AnonymousSlotCount, &s_info); } static const ClassInfo s_info; diff --git a/Source/WebKit/mac/Plugins/Hosted/ProxyRuntimeObject.h b/Source/WebKit/mac/Plugins/Hosted/ProxyRuntimeObject.h index fc77890..a07c86c 100644 --- a/Source/WebKit/mac/Plugins/Hosted/ProxyRuntimeObject.h +++ b/Source/WebKit/mac/Plugins/Hosted/ProxyRuntimeObject.h @@ -41,9 +41,9 @@ public: ProxyInstance* getInternalProxyInstance() const; - static PassRefPtr<JSC::Structure> createStructure(JSC::JSValue prototype) + static PassRefPtr<JSC::Structure> createStructure(JSC::JSGlobalData& globalData, JSC::JSValue prototype) { - return JSC::Structure::create(prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), AnonymousSlotCount, &s_info); + return JSC::Structure::create(globalData, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), AnonymousSlotCount, &s_info); } static const JSC::ClassInfo s_info; diff --git a/Source/WebKit/mac/Plugins/WebBasePluginPackage.mm b/Source/WebKit/mac/Plugins/WebBasePluginPackage.mm index 05b084a..3fb86cb 100644 --- a/Source/WebKit/mac/Plugins/WebBasePluginPackage.mm +++ b/Source/WebKit/mac/Plugins/WebBasePluginPackage.mm @@ -38,6 +38,7 @@ #import <wtf/Assertions.h> #import <wtf/Threading.h> #import <wtf/Vector.h> +#import <wtf/text/CString.h> #import <WebKitSystemInterface.h> @@ -222,8 +223,15 @@ static NSString *pathByResolvingSymlinksAndAliases(NSString *thePath) MimeClassInfo mimeClassInfo; extensions = [[MIMEDictionary objectForKey:WebPluginExtensionsKey] _web_lowercaseStrings]; - for (NSUInteger i = 0; i < [extensions count]; ++i) - mimeClassInfo.extensions.append((NSString *)[extensions objectAtIndex:i]); + for (NSUInteger i = 0; i < [extensions count]; ++i) { + // The DivX plug-in lists multiple extensions in a comma separated string instead of using + // multiple array elements in the property list. Work around this here by splitting the + // extension string into components. + NSArray *extensionComponents = [[extensions objectAtIndex:i] componentsSeparatedByString:@","]; + + for (NSString *extension in extensionComponents) + mimeClassInfo.extensions.append(extension); + } if ([extensions count] == 0) extensions = [NSArray arrayWithObject:@""]; diff --git a/Source/WebKit/mac/Plugins/WebPluginContainerPrivate.h b/Source/WebKit/mac/Plugins/WebPluginContainerPrivate.h index af7251d..1b8de41 100644 --- a/Source/WebKit/mac/Plugins/WebPluginContainerPrivate.h +++ b/Source/WebKit/mac/Plugins/WebPluginContainerPrivate.h @@ -29,7 +29,7 @@ #import <Cocoa/Cocoa.h> #if !defined(ENABLE_PLUGIN_PROXY_FOR_VIDEO) -#define ENABLE_PLUGIN_PROXY_FOR_VIDEO 1 +#define ENABLE_PLUGIN_PROXY_FOR_VIDEO 0 #endif #if ENABLE_PLUGIN_PROXY_FOR_VIDEO diff --git a/Source/WebKit/mac/Storage/WebStorageManager.mm b/Source/WebKit/mac/Storage/WebStorageManager.mm new file mode 100644 index 0000000..23f699f --- /dev/null +++ b/Source/WebKit/mac/Storage/WebStorageManager.mm @@ -0,0 +1,113 @@ +/* + * Copyright (C) 2011 Apple 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. + */ + +#if ENABLE(DOM_STORAGE) + +#import "WebSecurityOriginInternal.h" +#import "WebStorageManagerPrivate.h" +#import "WebStorageManagerInternal.h" +#import "WebStorageTrackerClient.h" + +#import <WebCore/SecurityOrigin.h> +#import <WebCore/StorageTracker.h> + +using namespace WebCore; + +NSString * const WebStorageDirectoryDefaultsKey = @"WebKitLocalStorageDatabasePathPreferenceKey"; +NSString * const WebStorageDidModifyOriginNotification = @"WebStorageDidModifyOriginNotification"; + +static NSString *storageDirectoryPath(); + +@implementation WebStorageManager + ++ (WebStorageManager *)sharedWebStorageManager +{ + static WebStorageManager *sharedManager = [[WebStorageManager alloc] init]; + return sharedManager; +} + +- (NSArray *)origins +{ + Vector<RefPtr<SecurityOrigin> > coreOrigins; + + StorageTracker::tracker().origins(coreOrigins); + + NSMutableArray *webOrigins = [[NSMutableArray alloc] initWithCapacity:coreOrigins.size()]; + + for (size_t i = 0; i < coreOrigins.size(); ++i) { + WebSecurityOrigin *webOrigin = [[WebSecurityOrigin alloc] _initWithWebCoreSecurityOrigin:coreOrigins[i].get()]; + [webOrigins addObject:webOrigin]; + [webOrigin release]; + } + + return [webOrigins autorelease]; +} + +- (void)deleteAllOrigins +{ + StorageTracker::tracker().deleteAllOrigins(); +} + +- (void)deleteOrigin:(WebSecurityOrigin *)origin +{ + StorageTracker::tracker().deleteOrigin([origin _core]); +} + +- (void)syncLocalStorage +{ + StorageTracker::tracker().syncLocalStorage(); +} + +- (void)syncFileSystemAndTrackerDatabase +{ + StorageTracker::tracker().syncFileSystemAndTrackerDatabase(); +} + +static NSString *storageDirectoryPath() +{ + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + NSString *storageDirectory = [defaults objectForKey:WebStorageDirectoryDefaultsKey]; + if (!storageDirectory || ![storageDirectory isKindOfClass:[NSString class]]) + storageDirectory = @"~/Library/WebKit/LocalStorage"; + + return [storageDirectory stringByStandardizingPath]; +} + +void WebKitInitializeStorageIfNecessary() +{ + static BOOL initialized = NO; + if (initialized) + return; + + StorageTracker::initializeTracker(storageDirectoryPath()); + + StorageTracker::tracker().setClient(WebStorageTrackerClient::sharedWebStorageTrackerClient()); + + initialized = YES; +} + +@end + +#endif diff --git a/Source/WebKit/mac/Storage/WebStorageManagerInternal.h b/Source/WebKit/mac/Storage/WebStorageManagerInternal.h new file mode 100644 index 0000000..d3d3604 --- /dev/null +++ b/Source/WebKit/mac/Storage/WebStorageManagerInternal.h @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2011 Apple 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. + */ + +#if ENABLE(DOM_STORAGE) + +void WebKitInitializeStorageIfNecessary(); + +#endif diff --git a/Source/WebKit/mac/Storage/WebStorageManagerPrivate.h b/Source/WebKit/mac/Storage/WebStorageManagerPrivate.h new file mode 100644 index 0000000..34db3f6 --- /dev/null +++ b/Source/WebKit/mac/Storage/WebStorageManagerPrivate.h @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2011 Apple 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. + */ + +extern NSString * const WebStorageDirectoryDefaultsKey; +extern NSString * const WebStorageDidModifyOriginNotification; + +@class WebSecurityOrigin; + +@interface WebStorageManager : NSObject + ++ (WebStorageManager *)sharedWebStorageManager; + +// Returns an array of WebSecurityOrigin objects that have LocalStorage. +- (NSArray *)origins; + +- (void)deleteAllOrigins; +- (void)deleteOrigin:(WebSecurityOrigin *)origin; + +- (void)syncLocalStorage; +- (void)syncFileSystemAndTrackerDatabase; + +@end + diff --git a/Source/WebKit/mac/Storage/WebStorageTrackerClient.h b/Source/WebKit/mac/Storage/WebStorageTrackerClient.h new file mode 100644 index 0000000..d3c190c --- /dev/null +++ b/Source/WebKit/mac/Storage/WebStorageTrackerClient.h @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2011 Apple 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. + */ + +#if ENABLE(DOM_STORAGE) + +#import <WebCore/SecurityOrigin.h> +#import <WebCore/StorageTrackerClient.h> + +using namespace WebCore; + +class WebStorageTrackerClient : public WebCore::StorageTrackerClient { +public: + static WebStorageTrackerClient* sharedWebStorageTrackerClient(); + static void dispatchDidModifyOriginOnMainThread(void* context); + + virtual ~WebStorageTrackerClient(); + virtual void dispatchDidModifyOrigin(const String& originIdentifier); + virtual void dispatchDidModifyOrigin(PassRefPtr<SecurityOrigin>); +private: + WebStorageTrackerClient(); +}; + +#endif diff --git a/Source/WebKit/mac/Storage/WebStorageTrackerClient.mm b/Source/WebKit/mac/Storage/WebStorageTrackerClient.mm new file mode 100644 index 0000000..01bb981 --- /dev/null +++ b/Source/WebKit/mac/Storage/WebStorageTrackerClient.mm @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2011 Apple 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. + */ + +#if ENABLE(DOM_STORAGE) + +#import "WebStorageTrackerClient.h" + +#import "WebSecurityOriginInternal.h" +#import "WebStorageManagerPrivate.h" +#import <WebCore/PlatformString.h> +#import <WebCore/SecurityOrigin.h> +#import <wtf/MainThread.h> +#import <wtf/RetainPtr.h> + +using namespace WebCore; + +WebStorageTrackerClient* WebStorageTrackerClient::sharedWebStorageTrackerClient() +{ + static WebStorageTrackerClient* sharedClient = new WebStorageTrackerClient(); + return sharedClient; +} + +WebStorageTrackerClient::WebStorageTrackerClient() +{ +} + +WebStorageTrackerClient::~WebStorageTrackerClient() +{ +} + +void WebStorageTrackerClient::dispatchDidModifyOriginOnMainThread(void* context) +{ + ASSERT(isMainThread()); + // adoptRef is balanced by leakRef in dispatchDidModifyOrigin. + RefPtr<SecurityOrigin> origin = adoptRef(static_cast<SecurityOrigin*>(context)); + WebStorageTrackerClient::sharedWebStorageTrackerClient()->dispatchDidModifyOrigin(origin.get()); +} + +void WebStorageTrackerClient::dispatchDidModifyOrigin(PassRefPtr<SecurityOrigin> origin) +{ + RetainPtr<WebSecurityOrigin> webSecurityOrigin(AdoptNS, [[WebSecurityOrigin alloc] _initWithWebCoreSecurityOrigin:origin.get()]); + + [[NSNotificationCenter defaultCenter] postNotificationName:WebStorageDidModifyOriginNotification + object:webSecurityOrigin.get()]; +} + +void WebStorageTrackerClient::dispatchDidModifyOrigin(const String& originIdentifier) +{ + PassRefPtr<SecurityOrigin> origin = SecurityOrigin::createFromDatabaseIdentifier(originIdentifier); + + if (!isMainThread()) { + // leakRef is balanced by adoptRef in dispatchDidModifyOriginOnMainThread. + callOnMainThread(dispatchDidModifyOriginOnMainThread, origin.leakRef()); + return; + } + + dispatchDidModifyOrigin(origin); +} + +#endif diff --git a/Source/WebKit/mac/WebCoreSupport/CorrectionPanel.h b/Source/WebKit/mac/WebCoreSupport/CorrectionPanel.h new file mode 100644 index 0000000..8adb79f --- /dev/null +++ b/Source/WebKit/mac/WebCoreSupport/CorrectionPanel.h @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2011 Apple 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 CorrectionPanel_h +#define CorrectionPanel_h + +#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD) +#import <AppKit/NSTextChecker.h> +#import <WebCore/CorrectionPanelInfo.h> +#import <wtf/RetainPtr.h> + +@class WebView; + +class CorrectionPanel { + WTF_MAKE_NONCOPYABLE(CorrectionPanel); +public: + CorrectionPanel(); + ~CorrectionPanel(); + void show(WebView*, WebCore::CorrectionPanelInfo::PanelType, const WebCore::FloatRect& boundingBoxOfReplacedString, const String& replacedString, const String& replacementString, const Vector<String>& alternativeReplacementStrings); + void dismiss(WebCore::ReasonForDismissingCorrectionPanel); + String dismissSoon(WebCore::ReasonForDismissingCorrectionPanel); + static void recordAutocorrectionResponse(WebView*, NSCorrectionResponse, const String& replacedString, const String& replacementString); + +private: + bool isShowing() const { return m_view; } + void dismissInternal(WebCore::ReasonForDismissingCorrectionPanel, bool dismissingExternally); + void handleAcceptedReplacement(NSString* acceptedReplacement, NSString* replaced, NSString* proposedReplacement, NSCorrectionBubbleType); + + bool m_wasDismissedExternally; + WebCore::ReasonForDismissingCorrectionPanel m_reasonForDismissing; + RetainPtr<WebView> m_view; + RetainPtr<NSString> m_resultForSynchronousDismissal; + RetainPtr<NSCondition> m_resultCondition; +}; + +#endif // !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD) + +#endif // CorrectionPanel_h diff --git a/Source/WebKit/mac/WebCoreSupport/CorrectionPanel.mm b/Source/WebKit/mac/WebCoreSupport/CorrectionPanel.mm new file mode 100644 index 0000000..05f3f69 --- /dev/null +++ b/Source/WebKit/mac/WebCoreSupport/CorrectionPanel.mm @@ -0,0 +1,157 @@ +/* + * Copyright (C) 2011 Apple 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. + */ +#import "CorrectionPanel.h" + +#import "WebViewPrivate.h" + +#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD) +using namespace WebCore; + +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; +} + +CorrectionPanel::CorrectionPanel() + : m_wasDismissedExternally(false) + , m_reasonForDismissing(ReasonForDismissingCorrectionPanelIgnored) + , m_resultCondition(AdoptNS, [[NSCondition alloc] init]) +{ +} + +CorrectionPanel::~CorrectionPanel() +{ + dismissInternal(ReasonForDismissingCorrectionPanelIgnored, false); +} + +void CorrectionPanel::show(WebView* view, CorrectionPanelInfo::PanelType type, const FloatRect& boundingBoxOfReplacedString, const String& replacedString, const String& replacementString, const Vector<String>& alternativeReplacementStrings) +{ + dismissInternal(ReasonForDismissingCorrectionPanelIgnored, false); + + if (!view) + return; + + NSString* replacedStringAsNSString = replacedString; + NSString* replacementStringAsNSString = replacementString; + m_view = view; + NSCorrectionBubbleType bubbleType = correctionBubbleType(type); + + NSMutableArray* alternativeStrings = 0; + 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:boundingBoxOfReplacedString view:m_view.get() completionHandler:^(NSString* acceptedString) { + handleAcceptedReplacement(acceptedString, replacedStringAsNSString, replacementStringAsNSString, bubbleType); + }]; +} + +void CorrectionPanel::dismiss(ReasonForDismissingCorrectionPanel reason) +{ + dismissInternal(reason, true); +} + +String CorrectionPanel::dismissSoon(ReasonForDismissingCorrectionPanel reason) +{ + if (!isShowing()) + return String(); + + dismissInternal(reason, true); + [m_resultCondition.get() lock]; + while (!m_resultForSynchronousDismissal) + [m_resultCondition.get() wait]; + [m_resultCondition.get() unlock]; + return m_resultForSynchronousDismissal.get(); +} + +void CorrectionPanel::dismissInternal(ReasonForDismissingCorrectionPanel reason, bool dismissingExternally) +{ + m_wasDismissedExternally = dismissingExternally; + if (!isShowing()) + return; + + m_reasonForDismissing = reason; + m_resultForSynchronousDismissal.clear(); + [[NSSpellChecker sharedSpellChecker] dismissCorrectionBubbleForView:m_view.get()]; + m_view.clear(); +} + +void CorrectionPanel::recordAutocorrectionResponse(WebView* view, NSCorrectionResponse response, const String& replacedString, const String& replacementString) +{ + [[NSSpellChecker sharedSpellChecker] recordResponse:response toCorrection:replacementString forWord:replacedString language:nil inSpellDocumentWithTag:[view spellCheckerDocumentTag]]; +} + +void CorrectionPanel::handleAcceptedReplacement(NSString* acceptedReplacement, NSString* replaced, NSString* proposedReplacement, NSCorrectionBubbleType correctionBubbleType) +{ + NSSpellChecker* spellChecker = [NSSpellChecker sharedSpellChecker]; + NSInteger documentTag = [m_view.get() spellCheckerDocumentTag]; + + switch (correctionBubbleType) { + case NSCorrectionBubbleTypeCorrection: + if (acceptedReplacement) + [spellChecker recordResponse:NSCorrectionResponseAccepted toCorrection:acceptedReplacement forWord:replaced language:nil inSpellDocumentWithTag:documentTag]; + else { + if (!m_wasDismissedExternally || m_reasonForDismissing == ReasonForDismissingCorrectionPanelCancelled) + [spellChecker recordResponse:NSCorrectionResponseRejected toCorrection:proposedReplacement forWord:replaced language:nil inSpellDocumentWithTag:documentTag]; + else + [spellChecker recordResponse:NSCorrectionResponseIgnored toCorrection:proposedReplacement forWord:replaced language:nil inSpellDocumentWithTag:documentTag]; + } + break; + case NSCorrectionBubbleTypeReversion: + if (acceptedReplacement) + [spellChecker recordResponse:NSCorrectionResponseReverted toCorrection:replaced forWord:acceptedReplacement language:nil inSpellDocumentWithTag:documentTag]; + break; + case NSCorrectionBubbleTypeGuesses: + if (acceptedReplacement) + [spellChecker recordResponse:NSCorrectionResponseAccepted toCorrection:acceptedReplacement forWord:replaced language:nil inSpellDocumentWithTag:documentTag]; + break; + } + + if (!m_wasDismissedExternally) { + [m_view.get() handleCorrectionPanelResult:acceptedReplacement]; + return; + } + + [m_resultCondition.get() lock]; + if (acceptedReplacement) + m_resultForSynchronousDismissal.adoptNS([acceptedReplacement copy]); + [m_resultCondition.get() signal]; + [m_resultCondition.get() unlock]; +} + +#endif // !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD) + diff --git a/Source/WebKit/mac/WebCoreSupport/WebApplicationCache.h b/Source/WebKit/mac/WebCoreSupport/WebApplicationCache.h index 976ce18..3d6c91e 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebApplicationCache.h +++ b/Source/WebKit/mac/WebCoreSupport/WebApplicationCache.h @@ -25,6 +25,8 @@ #import <Foundation/Foundation.h> +@class WebSecurityOrigin; + @interface WebApplicationCache: NSObject + (long long)maximumSize; @@ -34,5 +36,8 @@ + (void)setDefaultOriginQuota:(long long)size; + (void)deleteAllApplicationCaches; ++ (void)deleteCacheForOrigin:(WebSecurityOrigin *)origin; + ++ (NSArray *)originsWithCache; @end diff --git a/Source/WebKit/mac/WebCoreSupport/WebApplicationCache.mm b/Source/WebKit/mac/WebCoreSupport/WebApplicationCache.mm index bf517c1..131bb9c 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebApplicationCache.mm +++ b/Source/WebKit/mac/WebCoreSupport/WebApplicationCache.mm @@ -26,7 +26,12 @@ #if ENABLE(OFFLINE_WEB_APPLICATIONS) #import "WebApplicationCache.h" + +#import "WebSecurityOriginInternal.h" +#import <WebCore/ApplicationCache.h> #import <WebCore/ApplicationCacheStorage.h> +#import <WebCore/SecurityOrigin.h> +#import <wtf/RetainPtr.h> using namespace WebCore; @@ -58,6 +63,27 @@ using namespace WebCore; cacheStorage().deleteAllEntries(); } ++ (void)deleteCacheForOrigin:(WebSecurityOrigin *)origin +{ + ApplicationCache::deleteCacheForOrigin([origin _core]); +} + ++ (NSArray *)originsWithCache +{ + HashSet<RefPtr<SecurityOrigin>, SecurityOriginHash> coreOrigins; + cacheStorage().getOriginsWithCache(coreOrigins); + + NSMutableArray *webOrigins = [[[NSMutableArray alloc] initWithCapacity:coreOrigins.size()] autorelease]; + + HashSet<RefPtr<SecurityOrigin>, SecurityOriginHash>::const_iterator end = coreOrigins.end(); + for (HashSet<RefPtr<SecurityOrigin>, SecurityOriginHash>::const_iterator it = coreOrigins.begin(); it != end; ++it) { + RetainPtr<WebSecurityOrigin> webOrigin(AdoptNS, [[WebSecurityOrigin alloc] _initWithWebCoreSecurityOrigin:(*it).get()]); + [webOrigins addObject:webOrigin.get()]; + } + + return webOrigins; +} + @end #endif diff --git a/Source/WebKit/mac/WebCoreSupport/WebChromeClient.h b/Source/WebKit/mac/WebCoreSupport/WebChromeClient.h index 3129fae..004d49b 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebChromeClient.h +++ b/Source/WebKit/mac/WebCoreSupport/WebChromeClient.h @@ -164,7 +164,7 @@ public: #endif #if ENABLE(FULLSCREEN_API) - virtual bool supportsFullScreenForElement(const WebCore::Element*); + virtual bool supportsFullScreenForElement(const WebCore::Element*, bool withKeyboard); virtual void enterFullScreenForElement(WebCore::Element*); virtual void exitFullScreenForElement(WebCore::Element*); #endif @@ -180,7 +180,7 @@ public: virtual PassRefPtr<WebCore::SearchPopupMenu> createSearchPopupMenu(WebCore::PopupMenuClient*) const; #if ENABLE(CONTEXT_MENUS) - virtual void showContextMenu() { } + virtual void showContextMenu(); #endif private: WebView *m_webView; diff --git a/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm b/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm index 99b817b..6bf116b 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm +++ b/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm @@ -51,14 +51,18 @@ #import <WebCore/BlockExceptions.h> #import <WebCore/Console.h> #import <WebCore/Cursor.h> +#import <WebCore/ContextMenu.h> +#import <WebCore/ContextMenuController.h> #import <WebCore/Element.h> #import <WebCore/FileChooser.h> #import <WebCore/FloatRect.h> #import <WebCore/Frame.h> #import <WebCore/FrameLoadRequest.h> +#import <WebCore/FrameView.h> #import <WebCore/HTMLNames.h> #import <WebCore/HitTestResult.h> #import <WebCore/Icon.h> +#import <WebCore/IntPoint.h> #import <WebCore/IntRect.h> #import <WebCore/NavigationAction.h> #import <WebCore/Page.h> @@ -174,9 +178,16 @@ FloatRect WebChromeClient::pageRect() float WebChromeClient::scaleFactor() { - if (NSWindow *window = [m_webView window]) - return [window userSpaceScaleFactor]; + NSWindow *window = [m_webView window]; +#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD) + if (window) + return [window backingScaleFactor]; + return [[NSScreen mainScreen] backingScaleFactor]; +#else + if (window) + return [window userSpaceScaleFactor]; return [[NSScreen mainScreen] userSpaceScaleFactor]; +#endif } void WebChromeClient::focus() @@ -876,6 +887,35 @@ PassRefPtr<WebCore::SearchPopupMenu> WebChromeClient::createSearchPopupMenu(WebC return adoptRef(new SearchPopupMenuMac(client)); } +#if ENABLE(CONTEXT_MENUS) +void WebChromeClient::showContextMenu() +{ + Page* page = [m_webView page]; + if (!page) + return; + + ContextMenuController* controller = page->contextMenuController(); + Node* node = controller->hitTestResult().innerNonSharedNode(); + if (!node) + return; + Frame* frame = node->document()->frame(); + if (!frame) + return; + FrameView* frameView = frame->view(); + if (!frameView) + return; + NSView* view = frameView->documentView(); + + IntPoint point = frameView->contentsToWindow(controller->hitTestResult().point()); + NSPoint nsScreenPoint = [view convertPoint:point toView:nil]; + // Show the contextual menu for this event. + NSEvent* event = [NSEvent mouseEventWithType:NSRightMouseDown location:nsScreenPoint modifierFlags:0 timestamp:0 windowNumber:[[view window] windowNumber] context:0 eventNumber:0 clickCount:1 pressure:1]; + NSMenu* nsMenu = [view menuForEvent:event]; + if (nsMenu) + [NSMenu popUpContextMenu:nsMenu withEvent:event forView:view]; +} +#endif + #if USE(ACCELERATED_COMPOSITING) void WebChromeClient::attachRootGraphicsLayer(Frame* frame, GraphicsLayer* graphicsLayer) @@ -938,12 +978,12 @@ void WebChromeClient::exitFullscreenForNode(Node*) #if ENABLE(FULLSCREEN_API) -bool WebChromeClient::supportsFullScreenForElement(const Element* element) +bool WebChromeClient::supportsFullScreenForElement(const Element* element, bool withKeyboard) { - SEL selector = @selector(webView:supportsFullScreenForElement:); + SEL selector = @selector(webView:supportsFullScreenForElement:withKeyboard:); if ([[m_webView UIDelegate] respondsToSelector:selector]) - return CallUIDelegateReturningBoolean(false, m_webView, selector, kit(const_cast<WebCore::Element*>(element))); - return [m_webView _supportsFullScreenForElement:const_cast<WebCore::Element*>(element)]; + return CallUIDelegateReturningBoolean(false, m_webView, selector, kit(const_cast<WebCore::Element*>(element)), withKeyboard); + return [m_webView _supportsFullScreenForElement:const_cast<WebCore::Element*>(element) withKeyboard:withKeyboard]; } void WebChromeClient::enterFullScreenForElement(Element* element) diff --git a/Source/WebKit/mac/WebCoreSupport/WebEditorClient.h b/Source/WebKit/mac/WebCoreSupport/WebEditorClient.h index 1fa132a..412cb45 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebEditorClient.h +++ b/Source/WebKit/mac/WebCoreSupport/WebEditorClient.h @@ -27,11 +27,11 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#import <WebCore/Editor.h> +#import "CorrectionPanel.h" #import <WebCore/EditorClient.h> #import <WebCore/TextCheckerClient.h> -#import <wtf/RetainPtr.h> #import <wtf/Forward.h> +#import <wtf/RetainPtr.h> #import <wtf/Vector.h> @class WebView; @@ -140,10 +140,10 @@ public: virtual void setInputMethodState(bool enabled); virtual void requestCheckingOfString(WebCore::SpellChecker*, int, const WTF::String&); #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, const WTF::Vector<WTF::String>& alternativeReplacementStrings, WebCore::Editor*); + virtual void showCorrectionPanel(WebCore::CorrectionPanelInfo::PanelType, const WebCore::FloatRect& boundingBoxOfReplacedString, const String& replacedString, const String& replacementString, const Vector<String>& alternativeReplacementStrings); virtual void dismissCorrectionPanel(WebCore::ReasonForDismissingCorrectionPanel); - virtual bool isShowingCorrectionPanel(); - virtual void recordAutocorrectionResponse(AutocorrectionResponseType, const WTF::String& replacedString, const WTF::String& replacementString); + virtual String dismissCorrectionPanelSoon(WebCore::ReasonForDismissingCorrectionPanel); + virtual void recordAutocorrectionResponse(AutocorrectionResponseType, const String& replacedString, const String& replacementString); #endif private: void registerCommandForUndoOrRedo(PassRefPtr<WebCore::EditCommand>, bool isRedo); @@ -154,8 +154,6 @@ private: bool m_haveUndoRedoOperations; #if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD) - BOOL m_correctionPanelIsShown; - BOOL m_correctionPanelIsDismissedExternally; - WebCore::ReasonForDismissingCorrectionPanel m_reasonForDismissingCorrectionPanel; + CorrectionPanel m_correctionPanel; #endif }; diff --git a/Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm b/Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm index 69dd574..c205ef6 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm +++ b/Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm @@ -74,7 +74,6 @@ #endif using namespace WebCore; -using namespace WTF; using namespace HTMLNames; @@ -202,9 +201,6 @@ WebEditorClient::WebEditorClient(WebView *webView) : m_webView(webView) , m_undoTarget([[[WebEditorUndoTarget alloc] init] autorelease]) , m_haveUndoRedoOperations(false) -#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD) - , m_correctionPanelIsShown(false) -#endif { } @@ -625,7 +621,7 @@ void WebEditorClient::handleKeyboardEvent(KeyboardEvent* event) { Frame* frame = event->target()->toNode()->document()->frame(); WebHTMLView *webHTMLView = [[kit(frame) frameView] documentView]; - if ([webHTMLView _interceptEditingKeyEvent:event shouldSaveCommand:NO]) + if ([webHTMLView _interpretKeyEvent:event savingCommands:NO]) event->setDefaultHandled(); } @@ -633,7 +629,7 @@ void WebEditorClient::handleInputMethodKeydown(KeyboardEvent* event) { Frame* frame = event->target()->toNode()->document()->frame(); WebHTMLView *webHTMLView = [[kit(frame) frameView] documentView]; - if ([webHTMLView _interceptEditingKeyEvent:event shouldSaveCommand:YES]) + if ([webHTMLView _interpretKeyEvent:event savingCommands:YES]) event->setDefaultHandled(); } @@ -891,73 +887,25 @@ 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, const Vector<String>& alternativeReplacementStrings, Editor* editor) { - dismissCorrectionPanel(ReasonForDismissingCorrectionPanelIgnored); - - // Need to explicitly use these local NSString objects, because the C++ references may be invalidated by the time the block below is executed. - NSString *replacedStringAsNSString = replacedString; - NSString *replacementStringAsNSString = replacementString; - - m_correctionPanelIsShown = YES; - m_correctionPanelIsDismissedExternally = NO; - m_reasonForDismissingCorrectionPanel = ReasonForDismissingCorrectionPanelIgnored; - - 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 *spellChecker = [NSSpellChecker sharedSpellChecker]; - [[NSSpellChecker sharedSpellChecker] showCorrectionBubbleOfType:bubbleType primaryString:replacementStringAsNSString alternativeStrings:alternativeStrings forStringInRect:boundingBoxOfReplacedString view:m_webView completionHandler:^(NSString *acceptedString) { - switch (bubbleType) { - case NSCorrectionBubbleTypeCorrection: - if (acceptedString) - [spellChecker recordResponse:NSCorrectionResponseAccepted toCorrection:acceptedString forWord:replacedStringAsNSString language:nil inSpellDocumentWithTag:spellCheckerDocumentTag()]; - else { - if (!m_correctionPanelIsDismissedExternally || m_reasonForDismissingCorrectionPanel == ReasonForDismissingCorrectionPanelCancelled) - [spellChecker recordResponse:NSCorrectionResponseRejected toCorrection:replacementStringAsNSString forWord:replacedStringAsNSString language:nil inSpellDocumentWithTag:spellCheckerDocumentTag()]; - else - [spellChecker recordResponse:NSCorrectionResponseIgnored toCorrection:replacementStringAsNSString forWord:replacedStringAsNSString language:nil inSpellDocumentWithTag:spellCheckerDocumentTag()]; - } - break; - case NSCorrectionBubbleTypeReversion: - if (acceptedString) - [spellChecker recordResponse:NSCorrectionResponseReverted toCorrection:replacedStringAsNSString forWord:acceptedString language:nil inSpellDocumentWithTag:spellCheckerDocumentTag()]; - break; - case NSCorrectionBubbleTypeGuesses: - if (acceptedString) - [[NSSpellChecker sharedSpellChecker] recordResponse:NSCorrectionResponseAccepted toCorrection:acceptedString forWord:replacedStringAsNSString language:nil inSpellDocumentWithTag:[m_webView spellCheckerDocumentTag]]; - break; - } - editor->handleCorrectionPanelResult(String(acceptedString)); - }]; +void WebEditorClient::showCorrectionPanel(CorrectionPanelInfo::PanelType panelType, const FloatRect& boundingBoxOfReplacedString, const String& replacedString, const String& replacementString, const Vector<String>& alternativeReplacementStrings) +{ + m_correctionPanel.show(m_webView, panelType, boundingBoxOfReplacedString, replacedString, replacementString, alternativeReplacementStrings); } void WebEditorClient::dismissCorrectionPanel(ReasonForDismissingCorrectionPanel reasonForDismissing) { - if (isShowingCorrectionPanel()) { - m_correctionPanelIsDismissedExternally = YES; - m_reasonForDismissingCorrectionPanel = reasonForDismissing; - if (reasonForDismissing == ReasonForDismissingCorrectionPanelAccepted) - [[NSSpellChecker sharedSpellChecker] dismissCorrectionBubbleForView:m_webView]; - else - [[NSSpellChecker sharedSpellChecker] cancelCorrectionBubbleForView:m_webView]; - m_correctionPanelIsShown = NO; - } + m_correctionPanel.dismiss(reasonForDismissing); } -bool WebEditorClient::isShowingCorrectionPanel() +String WebEditorClient::dismissCorrectionPanelSoon(ReasonForDismissingCorrectionPanel reasonForDismissing) { - return m_correctionPanelIsShown; + return m_correctionPanel.dismissSoon(reasonForDismissing); } void WebEditorClient::recordAutocorrectionResponse(EditorClient::AutocorrectionResponseType responseType, const String& replacedString, const String& replacementString) { - NSCorrectionResponse spellCheckerResponse = responseType == EditorClient::AutocorrectionReverted ? NSCorrectionResponseReverted : NSCorrectionResponseEdited; - [[NSSpellChecker sharedSpellChecker] recordResponse:spellCheckerResponse toCorrection:replacementString forWord:replacedString language:nil inSpellDocumentWithTag:[m_webView spellCheckerDocumentTag]]; + NSCorrectionResponse response = responseType == EditorClient::AutocorrectionReverted ? NSCorrectionResponseReverted : NSCorrectionResponseEdited; + CorrectionPanel::recordAutocorrectionResponse(m_webView, response, replacedString, replacementString); } #endif diff --git a/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h b/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h index c484729..4fe5664 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h +++ b/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. + * Copyright (C) 2006, 2007, 2008, 2011 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -216,7 +216,7 @@ private: virtual void showMediaPlayerProxyPlugin(WebCore::Widget*); #endif - virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL& url, const WTF::String& mimeType); + virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL&, const WTF::String& mimeType, bool shouldPreferPlugInsForImages); virtual WTF::String overrideMediaType() const; virtual void dispatchDidClearWindowObjectInWorld(WebCore::DOMWrapperWorld*); diff --git a/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm b/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm index a558d83..92c2b03 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm +++ b/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm @@ -1,5 +1,5 @@ /* - * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. + * Copyright (C) 2006, 2007, 2008, 2009, 2011 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -1454,7 +1454,7 @@ void WebFrameLoaderClient::transferLoadingResourceFromPage(unsigned long identif [kit(oldPage) _removeObjectForIdentifier:identifier]; } -ObjectContentType WebFrameLoaderClient::objectContentType(const KURL& url, const String& mimeType) +ObjectContentType WebFrameLoaderClient::objectContentType(const KURL& url, const String& mimeType, bool shouldPreferPlugInsForImages) { BEGIN_BLOCK_OBJC_EXCEPTIONS; @@ -1491,18 +1491,25 @@ ObjectContentType WebFrameLoaderClient::objectContentType(const KURL& url, const if (type.isEmpty()) return ObjectContentFrame; // Go ahead and hope that we can display the content. - if (MIMETypeRegistry::isSupportedImageMIMEType(type)) - return ObjectContentImage; - WebBasePluginPackage *package = [getWebView(m_webFrame.get()) _pluginForMIMEType:type]; + ObjectContentType plugInType = ObjectContentNone; if (package) { #if ENABLE(NETSCAPE_PLUGIN_API) if ([package isKindOfClass:[WebNetscapePluginPackage class]]) - return ObjectContentNetscapePlugin; + plugInType = ObjectContentNetscapePlugin; + else #endif - ASSERT([package isKindOfClass:[WebPluginPackage class]]); - return ObjectContentOtherPlugin; + { + ASSERT([package isKindOfClass:[WebPluginPackage class]]); + plugInType = ObjectContentOtherPlugin; + } } + + if (MIMETypeRegistry::isSupportedImageMIMEType(type)) + return shouldPreferPlugInsForImages && plugInType != ObjectContentNone ? plugInType : ObjectContentImage; + + if (plugInType != ObjectContentNone) + return plugInType; if ([m_webFrame->_private->webFrameView _viewClassForMIMEType:type]) return ObjectContentFrame; diff --git a/Source/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.h b/Source/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.h index 3f9df13..a557ab5 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.h +++ b/Source/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.h @@ -32,6 +32,9 @@ class WebIconDatabaseClient : public WebCore::IconDatabaseClient { public: virtual bool performImport(); - virtual void dispatchDidRemoveAllIcons(); - virtual void dispatchDidAddIconForPageURL(const WTF::String& pageURL); + virtual void didRemoveAllIcons(); + virtual void didImportIconURLForPageURL(const String&); + virtual void didImportIconDataForPageURL(const String&); + virtual void didChangeIconForPageURL(const String&); + virtual void didFinishURLImport(); }; diff --git a/Source/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.mm b/Source/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.mm index 3651dea..8214d02 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.mm +++ b/Source/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.mm @@ -41,14 +41,14 @@ bool WebIconDatabaseClient::performImport() return result; } -void WebIconDatabaseClient::dispatchDidRemoveAllIcons() +void WebIconDatabaseClient::didRemoveAllIcons() { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; [[WebIconDatabase sharedIconDatabase] _sendDidRemoveAllIconsNotification]; [pool drain]; } -void WebIconDatabaseClient::dispatchDidAddIconForPageURL(const WTF::String& pageURL) +void WebIconDatabaseClient::didImportIconURLForPageURL(const String& pageURL) { // This is a quick notification that is likely to fire in a rapidly iterating loop // Therefore we let WebCore handle autorelease by draining its pool "from time to time" @@ -56,4 +56,19 @@ void WebIconDatabaseClient::dispatchDidAddIconForPageURL(const WTF::String& page [[WebIconDatabase sharedIconDatabase] _sendNotificationForURL:pageURL]; } +void WebIconDatabaseClient::didImportIconDataForPageURL(const String& pageURL) +{ + // WebKit1 only has a single "icon did change" notification. + didImportIconURLForPageURL(pageURL); +} +void WebIconDatabaseClient::didChangeIconForPageURL(const String& pageURL) +{ + // WebKit1 only has a single "icon did change" notification. + didImportIconURLForPageURL(pageURL); +} + +void WebIconDatabaseClient::didFinishURLImport() +{ +} + #endif // ENABLE(ICONDATABASE) diff --git a/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.h b/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.h index 108c2cc..7d09109 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.h +++ b/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.h @@ -31,7 +31,9 @@ #import <WebCore/PlatformString.h> #import <wtf/Forward.h> +#import <wtf/HashMap.h> #import <wtf/RetainPtr.h> +#import <wtf/text/StringHash.h> #ifdef __OBJC__ @class WebInspectorWindowController; @@ -67,12 +69,17 @@ public: void releaseFrontendPage(); + void saveSessionSetting(const String& key, const String& value); + void loadSessionSetting(const String& key, String* value); + private: WTF::PassOwnPtr<WebCore::InspectorFrontendClientLocal::Settings> createFrontendSettings(); WebView *m_webView; RetainPtr<WebNodeHighlighter> m_highlighter; WebCore::Page* m_frontendPage; + + WTF::HashMap<WTF::String, WTF::String> m_sessionSettings; }; @@ -95,6 +102,9 @@ public: virtual void setAttachedWindowHeight(unsigned height); virtual void inspectedURLChanged(const WTF::String& newURL); + virtual void saveSessionSetting(const String& key, const String& value); + virtual void loadSessionSetting(const String& key, String* value); + private: void updateWindowTitle() const; diff --git a/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm b/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm index d5a1d95..9b0c893 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm +++ b/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm @@ -65,6 +65,7 @@ using namespace WebCore; - (BOOL)attached; - (void)setFrontendClient:(WebInspectorFrontendClient*)frontendClient; - (void)setInspectorClient:(WebInspectorClient*)inspectorClient; +- (WebInspectorClient*)inspectorClient; - (void)setAttachedWindowHeight:(unsigned)height; - (void)destroyInspectorView:(bool)notifyInspectorController; @end @@ -102,10 +103,10 @@ void WebInspectorClient::openInspectorFrontend(InspectorController* inspectorCon [windowController.get() setInspectorClient:this]; m_frontendPage = core([windowController.get() webView]); - WebInspectorFrontendClient* frontendClient = new WebInspectorFrontendClient(m_webView, windowController.get(), inspectorController, m_frontendPage, createFrontendSettings()); - m_frontendPage->inspectorController()->setInspectorFrontendClient(frontendClient); - - [[m_webView inspector] setFrontend:[[WebInspectorFrontend alloc] initWithFrontendClient:frontendClient]]; + OwnPtr<WebInspectorFrontendClient> frontendClient = adoptPtr(new WebInspectorFrontendClient(m_webView, windowController.get(), inspectorController, m_frontendPage, createFrontendSettings())); + RetainPtr<WebInspectorFrontend> webInspectorFrontend(AdoptNS, [[WebInspectorFrontend alloc] initWithFrontendClient:frontendClient.get()]); + [[m_webView inspector] setFrontend:webInspectorFrontend.get()]; + m_frontendPage->inspectorController()->setInspectorFrontendClient(frontendClient.release()); } void WebInspectorClient::highlight(Node* node) @@ -201,6 +202,20 @@ void WebInspectorFrontendClient::inspectedURLChanged(const String& newURL) updateWindowTitle(); } +void WebInspectorFrontendClient::saveSessionSetting(const String& key, const String& value) +{ + WebInspectorClient* client = [m_windowController.get() inspectorClient]; + if (client) + client->saveSessionSetting(key, value); +} + +void WebInspectorFrontendClient::loadSessionSetting(const String& key, String* value) +{ + WebInspectorClient* client = [m_windowController.get() inspectorClient]; + if (client) + client->loadSessionSetting(key, value); +} + void WebInspectorFrontendClient::updateWindowTitle() const { NSString *title = [NSString stringWithFormat:UI_STRING_INTERNAL("Web Inspector — %@", "Web Inspector window title"), (NSString *)m_inspectedURL]; @@ -422,6 +437,11 @@ void WebInspectorFrontendClient::updateWindowTitle() const _inspectorClient = inspectorClient; } +- (WebInspectorClient*)inspectorClient +{ + return _inspectorClient; +} + - (void)setAttachedWindowHeight:(unsigned)height { if (!_attachedToInspectedWebView) diff --git a/Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.h b/Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.h index ed2ff77..7728699 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.h +++ b/Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.h @@ -1,29 +1,26 @@ /* - * Copyright (C) 2005 Apple Computer, Inc. All rights reserved. + * Copyright (C) 2005, 2011 Apple 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. * - * 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. + * 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. */ typedef enum { @@ -34,14 +31,11 @@ typedef enum { #ifdef __OBJC__ -#import <WebCore/WebCoreKeyGenerator.h> +@interface WebKeyGenerator : NSObject -@interface WebKeyGenerator : WebCoreKeyGenerator -{ - NSArray *strengthMenuItemTitles; -} -+ (void)createSharedGenerator; ++ (WebKeyGenerator *)sharedGenerator; - (WebCertificateParseResult)addCertificatesToKeychainFromData:(NSData *)data; + @end #endif diff --git a/Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.m b/Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.m deleted file mode 100644 index ea1526f..0000000 --- a/Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.m +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright (C) 2005 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. - */ - -#import <WebKit/WebKeyGenerator.h> - -#import "WebLocalizableStringsInternal.h" -#import <WebKitSystemInterface.h> -#import <wtf/Assertions.h> - -@implementation WebKeyGenerator - -+ (void)createSharedGenerator -{ - if (![self sharedGenerator]) { - [[[self alloc] init] release]; - } - ASSERT([[self sharedGenerator] isKindOfClass:self]); -} - -- (void)dealloc -{ - [strengthMenuItemTitles release]; - [super dealloc]; -} - -- (NSArray *)strengthMenuItemTitles -{ - if (!strengthMenuItemTitles) { - strengthMenuItemTitles = [[NSArray alloc] initWithObjects: - UI_STRING_INTERNAL("2048 (High Grade)", "Menu item title for KEYGEN pop-up menu"), - UI_STRING_INTERNAL("1024 (Medium Grade)", "Menu item title for KEYGEN pop-up menu"), - UI_STRING_INTERNAL("512 (Low Grade)", "Menu item title for KEYGEN pop-up menu"), nil]; - } - return strengthMenuItemTitles; -} - -- (NSString *)signedPublicKeyAndChallengeStringWithStrengthIndex:(unsigned)index challenge:(NSString *)challenge pageURL:(NSURL *)pageURL -{ - // This switch statement must always be synced with the UI strings returned by strengthMenuItemTitles. - UInt32 keySize; - switch (index) { - case 0: - keySize = 2048; - break; - case 1: - keySize = 1024; - break; - case 2: - keySize = 512; - break; - default: - return nil; - } - - NSString *keyDescription = [NSString stringWithFormat:UI_STRING_INTERNAL("Key from %@", "name of keychain key generated by the KEYGEN tag"), [pageURL host]]; - return [(NSString *)WKSignedPublicKeyAndChallengeString(keySize, (CFStringRef)challenge, (CFStringRef)keyDescription) autorelease]; -} - -static inline WebCertificateParseResult toWebCertificateParseResult(WKCertificateParseResult result) -{ - switch (result) { - case WKCertificateParseResultSucceeded: - return WebCertificateParseResultSucceeded; - case WKCertificateParseResultFailed: - return WebCertificateParseResultFailed; - case WKCertificateParseResultPKCS7: - return WebCertificateParseResultPKCS7; - } - - ASSERT_NOT_REACHED(); - return WebCertificateParseResultFailed; -} - -- (WebCertificateParseResult)addCertificatesToKeychainFromData:(NSData *)data -{ - return toWebCertificateParseResult(WKAddCertificatesToKeychainFromData([data bytes], [data length])); -} - -@end diff --git a/Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.mm b/Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.mm new file mode 100644 index 0000000..3e535ea --- /dev/null +++ b/Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.mm @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2005, 2011 Apple 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. + */ + +#import <WebKit/WebKeyGenerator.h> + +#import <WebKitSystemInterface.h> +#import <wtf/Assertions.h> + +@implementation WebKeyGenerator + ++ (WebKeyGenerator *)sharedGenerator +{ + static WebKeyGenerator *sharedGenerator = [[WebKeyGenerator alloc] init]; + return sharedGenerator; +} + +static inline WebCertificateParseResult toWebCertificateParseResult(WKCertificateParseResult result) +{ + // FIXME: WebKeyGenerator is not used in WebKit, and this code should be moved to Safari. + + switch (result) { + case WKCertificateParseResultSucceeded: + return WebCertificateParseResultSucceeded; + case WKCertificateParseResultFailed: + return WebCertificateParseResultFailed; + case WKCertificateParseResultPKCS7: + return WebCertificateParseResultPKCS7; + } + + ASSERT_NOT_REACHED(); + return WebCertificateParseResultFailed; +} + +- (WebCertificateParseResult)addCertificatesToKeychainFromData:(NSData *)data +{ + return toWebCertificateParseResult(WKAddCertificatesToKeychainFromData([data bytes], [data length])); +} + +@end diff --git a/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h b/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h index 30cadcf..29bdb8a 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h +++ b/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h @@ -80,7 +80,7 @@ private: virtual WTF::String contextMenuItemTagIgnoreSpelling(); virtual WTF::String contextMenuItemTagLearnSpelling(); virtual WTF::String contextMenuItemTagSearchWeb(); - virtual WTF::String contextMenuItemTagLookUpInDictionary(); + virtual WTF::String contextMenuItemTagLookUpInDictionary(const WTF::String& selectedString); virtual WTF::String contextMenuItemTagOpenLink(); virtual WTF::String contextMenuItemTagIgnoreGrammar(); virtual WTF::String contextMenuItemTagSpellingMenu(); @@ -153,6 +153,10 @@ private: virtual WTF::String crashedPluginText(); virtual WTF::String multipleFileUploadText(unsigned numberOfFiles); virtual WTF::String unknownFileSizeText(); + virtual WTF::String keygenMenuItem512(); + virtual WTF::String keygenMenuItem1024(); + virtual WTF::String keygenMenuItem2048(); + virtual WTF::String keygenKeychainItemName(const WTF::String& host); virtual WTF::String imageTitle(const WTF::String& filename, const WebCore::IntSize& size); virtual WTF::String mediaElementLoadingStateText(); virtual WTF::String mediaElementLiveBroadcastStateText(); diff --git a/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm b/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm index 94fc572..59ba436 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm +++ b/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm @@ -274,9 +274,13 @@ String WebPlatformStrategies::contextMenuItemTagSearchWeb() return UI_STRING_INTERNAL("Search in Google", "Search in Google context menu item"); } -String WebPlatformStrategies::contextMenuItemTagLookUpInDictionary() +String WebPlatformStrategies::contextMenuItemTagLookUpInDictionary(const String& selectedString) { +#if defined(BUILDING_ON_TIGER) || defined(BUILDING_ON_LEOPARD) || defined(BUILDING_ON_SNOW_LEOPARD) return UI_STRING_INTERNAL("Look Up in Dictionary", "Look Up in Dictionary context menu item"); +#else + return [NSString stringWithFormat:UI_STRING_INTERNAL("Look Up “%@”", "Look Up context menu item with selected word"), (NSString *)selectedString]; +#endif } String WebPlatformStrategies::contextMenuItemTagOpenLink() @@ -666,6 +670,26 @@ String WebPlatformStrategies::unknownFileSizeText() return UI_STRING_INTERNAL("Unknown", "Unknown filesize FTP directory listing item"); } +String WebPlatformStrategies::keygenMenuItem512() +{ + return UI_STRING_INTERNAL("512 (Low Grade)", "Menu item title for KEYGEN pop-up menu"); +} + +String WebPlatformStrategies::keygenMenuItem1024() +{ + return UI_STRING_INTERNAL("1024 (Medium Grade)", "Menu item title for KEYGEN pop-up menu"); +} + +String WebPlatformStrategies::keygenMenuItem2048() +{ + return UI_STRING_INTERNAL("2048 (High Grade)", "Menu item title for KEYGEN pop-up menu"); +} + +String WebPlatformStrategies::keygenKeychainItemName(const WTF::String& host) +{ + return [NSString stringWithFormat:UI_STRING_INTERNAL("Key from %@", "Name of keychain key generated by the KEYGEN tag"), (NSString *)host]; +} + String WebPlatformStrategies::imageTitle(const String& filename, const IntSize& size) { #if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) diff --git a/Source/WebKit/mac/WebCoreSupport/WebSecurityOrigin.mm b/Source/WebKit/mac/WebCoreSupport/WebSecurityOrigin.mm index 385d869..131a1ac 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebSecurityOrigin.mm +++ b/Source/WebKit/mac/WebCoreSupport/WebSecurityOrigin.mm @@ -46,23 +46,28 @@ using namespace WebCore; RefPtr<SecurityOrigin> origin = SecurityOrigin::create(KURL([url absoluteURL])); origin->ref(); - _private = reinterpret_cast<WebSecurityOriginPrivate*>(origin.get()); + _private = reinterpret_cast<WebSecurityOriginPrivate *>(origin.get()); return self; } -- (NSString*)protocol +- (NSString *)protocol { return reinterpret_cast<SecurityOrigin*>(_private)->protocol(); } -- (NSString*)host +- (NSString *)host { return reinterpret_cast<SecurityOrigin*>(_private)->host(); } +- (NSString *)databaseIdentifier +{ + return reinterpret_cast<SecurityOrigin*>(_private)->databaseIdentifier(); +} + // Deprecated. Use host instead. This needs to stay here until we ship a new Safari. -- (NSString*)domain +- (NSString *)domain { return [self host]; } @@ -111,7 +116,7 @@ using namespace WebCore; return nil; origin->ref(); - _private = reinterpret_cast<WebSecurityOriginPrivate*>(origin); + _private = reinterpret_cast<WebSecurityOriginPrivate *>(origin); return self; } diff --git a/Source/WebKit/mac/WebCoreSupport/WebSecurityOriginPrivate.h b/Source/WebKit/mac/WebCoreSupport/WebSecurityOriginPrivate.h index 2973d92..a784aba 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebSecurityOriginPrivate.h +++ b/Source/WebKit/mac/WebCoreSupport/WebSecurityOriginPrivate.h @@ -37,8 +37,10 @@ - (id)initWithURL:(NSURL *)url; -- (NSString*)protocol; -- (NSString*)host; +- (NSString *)protocol; +- (NSString *)host; + +- (NSString *)databaseIdentifier; // Returns zero if the port is the default port for the protocol, non-zero otherwise. - (unsigned short)port; diff --git a/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm b/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm index 6504f17..1b212a7 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm +++ b/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm @@ -63,6 +63,7 @@ void InitWebCoreSystemInterface(void) INIT(GetHTTPPipeliningPriority); INIT(GetMIMETypeForExtension); INIT(GetNSURLResponseLastModifiedDate); + INIT(SignedPublicKeyAndChallengeString); INIT(GetPreferredExtensionForMIMEType); INIT(GetWheelEventDeltas); INIT(HitTestMediaUIPart); @@ -128,6 +129,7 @@ void InitWebCoreSystemInterface(void) INIT(MakeScrollbarPainter); INIT(ScrollbarPainterSetDelegate); INIT(ScrollbarPainterPaint); + INIT(ScrollbarPainterForceFlashScrollers); INIT(ScrollbarThickness); INIT(ScrollbarMinimumThumbLength); INIT(ScrollbarMinimumTotalLengthNeededForThumb); @@ -168,11 +170,17 @@ void InitWebCoreSystemInterface(void) INIT(UnregisterUniqueIdForElement); INIT(CreatePrivateStorageSession); INIT(CopyRequestWithStorageSession); - INIT(CreatePrivateInMemoryHTTPCookieStorage); + INIT(CopyHTTPCookieStorage); INIT(GetHTTPCookieAcceptPolicy); INIT(HTTPCookiesForURL); INIT(SetHTTPCookiesForURL); INIT(DeleteHTTPCookie); + INIT(GetCFURLResponseMIMEType); + INIT(GetCFURLResponseURL); + INIT(GetCFURLResponseHTTPResponse); + INIT(CopyCFURLResponseSuggestedFilename); + INIT(SetCFURLResponseMIMEType); + didInit = true; } diff --git a/Source/WebKit/mac/WebKit.exp b/Source/WebKit/mac/WebKit.exp index 7c20307..ec8f74b 100644 --- a/Source/WebKit/mac/WebKit.exp +++ b/Source/WebKit/mac/WebKit.exp @@ -6,6 +6,7 @@ .objc_class_name_WebCoreStatistics .objc_class_name_WebDataSource .objc_class_name_WebDatabaseManager +.objc_class_name_WebStorageManager .objc_class_name_WebDefaultPolicyDelegate .objc_class_name_WebDeviceOrientation .objc_class_name_WebDeviceOrientationProviderMock @@ -114,6 +115,8 @@ _WebReportError _WebScriptErrorDescriptionKey _WebScriptErrorDomain _WebScriptErrorLineNumberKey +_WebStorageDirectoryDefaultsKey +_WebStorageDidModifyOriginNotification _WebURLNamePboardType _WebURLPboardType _WebViewDidBeginEditingNotification diff --git a/Source/WebKit/mac/WebKitPrefix.h b/Source/WebKit/mac/WebKitPrefix.h index fe0f214..6d57815 100644 --- a/Source/WebKit/mac/WebKitPrefix.h +++ b/Source/WebKit/mac/WebKitPrefix.h @@ -79,12 +79,6 @@ typedef float CGFloat; #define WTF_USE_JSC 1 #define WTF_USE_V8 0 -#ifdef __cplusplus -#include <wtf/FastMalloc.h> -#endif - -#include <wtf/DisallowCType.h> - /* Work around bug with C++ library that screws up Objective-C++ when exception support is disabled. */ #undef try #undef catch @@ -92,3 +86,11 @@ typedef float CGFloat; #define JS_EXPORTDATA #define JS_EXPORTCLASS #define WEBKIT_EXPORTDATA +#define WTF_EXPORT_PRIVATE +#define JS_EXPORT_PRIVATE + +#ifdef __cplusplus +#include <wtf/FastMalloc.h> +#endif + +#include <wtf/DisallowCType.h> diff --git a/Source/WebKit/mac/WebView/WebClipView.mm b/Source/WebKit/mac/WebView/WebClipView.mm index ced5d8d..280695e 100644 --- a/Source/WebKit/mac/WebView/WebClipView.mm +++ b/Source/WebKit/mac/WebView/WebClipView.mm @@ -51,6 +51,13 @@ using namespace WebCore; - (void)_immediateScrollToPoint:(NSPoint)newOrigin; @end +#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) +@interface NSWindow (WebNSWindowDetails) +- (void)_disableDelayedWindowDisplay; +- (void)_enableDelayedWindowDisplay; +@end +#endif + @implementation WebClipView - (id)initWithFrame:(NSRect)frame @@ -96,7 +103,17 @@ using namespace WebCore; - (void)_immediateScrollToPoint:(NSPoint)newOrigin { _isScrolling = YES; + +#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) + [[self window] _disableDelayedWindowDisplay]; +#endif + [super _immediateScrollToPoint:newOrigin]; + +#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) + [[self window] _enableDelayedWindowDisplay]; +#endif + _isScrolling = NO; } #endif diff --git a/Source/WebKit/mac/WebView/WebFrame.mm b/Source/WebKit/mac/WebView/WebFrame.mm index e792539..584b09e 100644 --- a/Source/WebKit/mac/WebView/WebFrame.mm +++ b/Source/WebKit/mac/WebView/WebFrame.mm @@ -579,51 +579,14 @@ static inline WebDataSource *dataSource(DocumentLoader* loader) } if (contentsOnly) - _private->coreFrame->view()->paintContents(&context, enclosingIntRect(rect)); + view->paintContents(&context, enclosingIntRect(rect)); else - _private->coreFrame->view()->paint(&context, enclosingIntRect(rect)); + view->paint(&context, enclosingIntRect(rect)); if (shouldFlatten) view->setPaintBehavior(oldBehavior); } -// Used by pagination code called from AppKit when a standalone web page is printed. -- (NSArray*)_computePageRectsWithPrintScaleFactor:(float)printScaleFactor pageSize:(NSSize)pageSize -{ - NSMutableArray* pages = [NSMutableArray arrayWithCapacity:5]; - if (printScaleFactor <= 0) { - LOG_ERROR("printScaleFactor has bad value %.2f", printScaleFactor); - return pages; - } - - if (!_private->coreFrame || !_private->coreFrame->document() || !_private->coreFrame->view()) return pages; - RenderView* root = toRenderView(_private->coreFrame->document()->renderer()); - if (!root) return pages; - - FrameView* view = _private->coreFrame->view(); - if (!view) - return pages; - - NSView* documentView = view->documentView(); - if (!documentView) - return pages; - - float docWidth = root->docWidth(); - float docHeight = root->docHeight(); - - float printWidth = root->style()->isHorizontalWritingMode() ? docWidth / printScaleFactor : pageSize.width; - float printHeight = root->style()->isHorizontalWritingMode() ? pageSize.height : docHeight / printScaleFactor; - - PrintContext printContext(_private->coreFrame); - printContext.computePageRectsWithPageSize(FloatSize(printWidth, printHeight), true); - - const Vector<IntRect>& pageRects = printContext.pageRects(); - const size_t pageCount = pageRects.size(); - for (size_t pageNumber = 0; pageNumber < pageCount; ++pageNumber) - [pages addObject: [NSValue valueWithRect: NSRect(pageRects[pageNumber])]]; - return pages; -} - - (BOOL)_getVisibleRect:(NSRect*)rect { ASSERT_ARG(rect, rect); @@ -1347,10 +1310,18 @@ static inline WebDataSource *dataSource(DocumentLoader* loader) - (BOOL)hasSpellingMarker:(int)from length:(int)length { - Frame* coreFrame = _private->coreFrame; + Frame* coreFrame = core(self); + if (!coreFrame) + return NO; + return coreFrame->editor()->selectionStartHasMarkerFor(DocumentMarker::Spelling, from, length); +} + +- (BOOL)hasGrammarMarker:(int)from length:(int)length +{ + Frame* coreFrame = core(self); if (!coreFrame) return NO; - return coreFrame->editor()->selectionStartHasSpellingMarkerFor(from, length); + return coreFrame->editor()->selectionStartHasMarkerFor(DocumentMarker::Grammar, from, length); } - (id)accessibilityRoot @@ -1358,8 +1329,7 @@ static inline WebDataSource *dataSource(DocumentLoader* loader) #if HAVE(ACCESSIBILITY) if (!AXObjectCache::accessibilityEnabled()) { AXObjectCache::enableAccessibility(); - if ([[NSApp accessibilityAttributeValue:NSAccessibilityEnhancedUserInterfaceAttribute] boolValue]) - AXObjectCache::enableEnhancedUserInterfaceAccessibility(); + AXObjectCache::setEnhancedUserInterfaceAccessibility([[NSApp accessibilityAttributeValue:NSAccessibilityEnhancedUserInterfaceAttribute] boolValue]); } if (!_private->coreFrame || !_private->coreFrame->document()) @@ -1387,6 +1357,41 @@ static inline WebDataSource *dataSource(DocumentLoader* loader) coreFrame->loader()->setOpener(0); } +// Used by pagination code called from AppKit when a standalone web page is printed. +- (NSArray *)_computePageRectsWithPrintScaleFactor:(float)printScaleFactor pageSize:(NSSize)pageSize +{ + if (printScaleFactor <= 0) { + LOG_ERROR("printScaleFactor has bad value %.2f", printScaleFactor); + return [NSArray array]; + } + + if (!_private->coreFrame) + return [NSArray array]; + if (!_private->coreFrame->document()) + return [NSArray array]; + if (!_private->coreFrame->view()) + return [NSArray array]; + if (!_private->coreFrame->view()->documentView()) + return [NSArray array]; + + RenderView* root = toRenderView(_private->coreFrame->document()->renderer()); + if (!root) + return [NSArray array]; + + float printWidth = root->style()->isHorizontalWritingMode() ? root->docWidth() / printScaleFactor : pageSize.width; + float printHeight = root->style()->isHorizontalWritingMode() ? pageSize.height : root->docHeight() / printScaleFactor; + + PrintContext printContext(_private->coreFrame); + printContext.computePageRectsWithPageSize(FloatSize(printWidth, printHeight), true); + const Vector<IntRect>& pageRects = printContext.pageRects(); + + size_t size = pageRects.size(); + NSMutableArray *pages = [NSMutableArray arrayWithCapacity:size]; + for (size_t i = 0; i < size; ++i) + [pages addObject:[NSValue valueWithRect:NSRect(pageRects[i])]]; + return pages; +} + @end @implementation WebFrame diff --git a/Source/WebKit/mac/WebView/WebFrameInternal.h b/Source/WebKit/mac/WebView/WebFrameInternal.h index 7e8016a..c13b721 100644 --- a/Source/WebKit/mac/WebView/WebFrameInternal.h +++ b/Source/WebKit/mac/WebView/WebFrameInternal.h @@ -125,7 +125,6 @@ WebView *getWebView(WebFrame *webFrame); - (BOOL)_needsLayout; - (void)_drawRect:(NSRect)rect contentsOnly:(BOOL)contentsOnly; - (BOOL)_getVisibleRect:(NSRect*)rect; -- (NSArray*)_computePageRectsWithPrintScaleFactor:(float)printWidthScaleFactor pageSize:(NSSize)pageSize; - (NSString *)_stringByEvaluatingJavaScriptFromString:(NSString *)string; - (NSString *)_stringByEvaluatingJavaScriptFromString:(NSString *)string forceUserGesture:(BOOL)forceUserGesture; diff --git a/Source/WebKit/mac/WebView/WebFramePrivate.h b/Source/WebKit/mac/WebView/WebFramePrivate.h index 75b57c7..82b3c4a 100644 --- a/Source/WebKit/mac/WebView/WebFramePrivate.h +++ b/Source/WebKit/mac/WebView/WebFramePrivate.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Computer, Inc. All rights reserved. + * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -69,8 +69,9 @@ typedef enum { } WebFrameLoadType; @interface WebFrame (WebPrivate) + - (BOOL)_isDescendantOfFrame:(WebFrame *)frame; -- (void)_setShouldCreateRenderers:(BOOL)f; +- (void)_setShouldCreateRenderers:(BOOL)shouldCreateRenderers; - (NSColor *)_bodyBackgroundColor; - (BOOL)_isFrameSet; - (BOOL)_firstLayoutDone; @@ -142,11 +143,15 @@ typedef enum { // Returns whether there is a spelling marker in the specified range of the focused node. - (BOOL)hasSpellingMarker:(int)location length:(int)length; +- (BOOL)hasGrammarMarker:(int)from length:(int)length; + // The top of the accessibility tree. - (id)accessibilityRoot; // Clears frame opener. This is executed between layout tests runs - (void)_clearOpener; +// Printing. +- (NSArray *)_computePageRectsWithPrintScaleFactor:(float)printWidthScaleFactor pageSize:(NSSize)pageSize; @end diff --git a/Source/WebKit/mac/WebView/WebFrameView.mm b/Source/WebKit/mac/WebView/WebFrameView.mm index 801c1f4..c42738c 100644 --- a/Source/WebKit/mac/WebView/WebFrameView.mm +++ b/Source/WebKit/mac/WebView/WebFrameView.mm @@ -308,7 +308,6 @@ static inline void addTypesFromClass(NSMutableDictionary *allTypes, Class objCCl WebCore::notifyHistoryItemChanged = WKNotifyHistoryItemChanged; [WebViewFactory createSharedFactory]; - [WebKeyGenerator createSharedGenerator]; // FIXME: Remove the NSAppKitVersionNumberWithDeferredWindowDisplaySupport check once // once AppKit's Deferred Window Display support is available. diff --git a/Source/WebKit/mac/WebView/WebFullScreenController.h b/Source/WebKit/mac/WebView/WebFullScreenController.h index f867dc2..0f55bd0 100644 --- a/Source/WebKit/mac/WebView/WebFullScreenController.h +++ b/Source/WebKit/mac/WebView/WebFullScreenController.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Apple Inc. All rights reserved. + * Copyright (C) 2010, 2011 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions diff --git a/Source/WebKit/mac/WebView/WebFullScreenController.mm b/Source/WebKit/mac/WebView/WebFullScreenController.mm index 5b8b496..3cc8355 100644 --- a/Source/WebKit/mac/WebView/WebFullScreenController.mm +++ b/Source/WebKit/mac/WebView/WebFullScreenController.mm @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009, 2010, 2011 Apple Inc. All rights reserved. + * Copyright (C) 2010, 2011 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions diff --git a/Source/WebKit/mac/WebView/WebHTMLRepresentation.h b/Source/WebKit/mac/WebView/WebHTMLRepresentation.h index 68f9bde..b714bf6 100644 --- a/Source/WebKit/mac/WebView/WebHTMLRepresentation.h +++ b/Source/WebKit/mac/WebView/WebHTMLRepresentation.h @@ -57,6 +57,7 @@ + (NSArray *)supportedMIMETypes; + (NSArray *)supportedNonImageMIMETypes; + (NSArray *)supportedImageMIMETypes; ++ (NSArray *)unsupportedTextMIMETypes; - (NSAttributedString *)attributedStringFrom:(DOMNode *)startNode startOffset:(int)startOffset to:(DOMNode *)endNode endOffset:(int)endOffset; diff --git a/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm b/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm index fad0a4a..03edd5d 100644 --- a/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm +++ b/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm @@ -113,6 +113,12 @@ static NSArray *concatenateArrays(NSArray *first, NSArray *second) return staticSupportedImageMIMETypes.get(); } ++ (NSArray *)unsupportedTextMIMETypes +{ + DEFINE_STATIC_LOCAL(RetainPtr<NSArray>, staticUnsupportedTextMIMETypes, (stringArray(MIMETypeRegistry::getUnsupportedTextMIMETypes()))); + return staticUnsupportedTextMIMETypes.get(); +} + - (id)init { self = [super init]; diff --git a/Source/WebKit/mac/WebView/WebHTMLView.mm b/Source/WebKit/mac/WebView/WebHTMLView.mm index 00f65bd..e611e2b 100644 --- a/Source/WebKit/mac/WebView/WebHTMLView.mm +++ b/Source/WebKit/mac/WebView/WebHTMLView.mm @@ -383,6 +383,7 @@ static CachedResourceClient* promisedDataClient() - (DOMDocumentFragment *)_documentFragmentFromPasteboard:(NSPasteboard *)pasteboard inContext:(DOMRange *)context allowPlainText:(BOOL)allowPlainText; - (NSString *)_plainTextFromPasteboard:(NSPasteboard *)pasteboard; - (void)_pasteWithPasteboard:(NSPasteboard *)pasteboard allowPlainText:(BOOL)allowPlainText; +- (void)_pasteAsPlainTextWithPasteboard:(NSPasteboard *)pasteboard; - (void)_removeMouseMovedObserverUnconditionally; - (void)_removeSuperviewObservers; - (void)_removeWindowObservers; @@ -461,11 +462,9 @@ static CachedResourceClient* promisedDataClient() struct WebHTMLViewInterpretKeyEventsParameters { KeyboardEvent* event; - BOOL eventWasHandled; - BOOL shouldSaveCommand; - // The Input Method may consume an event and not tell us, in - // which case we should not bubble the event up the DOM - BOOL consumedByIM; + bool eventInterpretationHadSideEffects; + bool shouldSaveCommands; + bool consumedByIM; }; @interface WebHTMLViewPrivate : NSObject { @@ -522,7 +521,6 @@ struct WebHTMLViewInterpretKeyEventsParameters { BOOL transparentBackground; WebHTMLViewInterpretKeyEventsParameters* interpretKeyEventsParameters; - BOOL receivedNOOP; WebDataSource *dataSource; WebCore::CachedImage* promisedDragTIFFDataSource; @@ -914,6 +912,32 @@ static NSURL* uniqueURLWithRelativePart(NSString *relativePart) [webView release]; } +- (void)_pasteAsPlainTextWithPasteboard:(NSPasteboard *)pasteboard +{ + WebView *webView = [[self _webView] retain]; + [webView _setInsertionPasteboard:pasteboard]; + + NSString *text = [self _plainTextFromPasteboard:pasteboard]; + if ([self _shouldReplaceSelectionWithText:text givenAction:WebViewInsertActionPasted]) + [[self _frame] _replaceSelectionWithText:text selectReplacement:NO smartReplace:[self _canSmartReplaceWithPasteboard:pasteboard]]; + + [webView _setInsertionPasteboard:nil]; + [webView release]; +} + +// This method is needed to support Mac OS X services. +- (BOOL)readSelectionFromPasteboard:(NSPasteboard *)pasteboard +{ + Frame* coreFrame = core([self _frame]); + if (!coreFrame) + return NO; + if (coreFrame->selection()->isContentRichlyEditable()) + [self _pasteWithPasteboard:pasteboard allowPlainText:YES]; + else + [self _pasteAsPlainTextWithPasteboard:pasteboard]; + return YES; +} + - (void)_removeMouseMovedObserverUnconditionally { if (!_private || !_private->observingMouseMovedNotifications) @@ -1169,21 +1193,7 @@ static NSURL* uniqueURLWithRelativePart(NSString *relativePart) + (NSArray *)unsupportedTextMIMETypes { - return [NSArray arrayWithObjects: - @"text/calendar", // iCal - @"text/x-calendar", - @"text/x-vcalendar", - @"text/vcalendar", - @"text/vcard", // vCard - @"text/x-vcard", - @"text/directory", - @"text/ldif", // Netscape Address Book - @"text/qif", // Quicken - @"text/x-qif", - @"text/x-csv", // CSV (for Address Book and Microsoft Outlook) - @"text/x-vcf", // vCard type used in Sun affinity app - @"text/rtf", // Rich Text Format - nil]; + return [WebHTMLRepresentation unsupportedTextMIMETypes]; } + (void)_postFlagsChangedEvent:(NSEvent *)flagsChangedEvent @@ -1985,10 +1995,6 @@ static void _updateMouseoverTimerCallback(CFRunLoopTimerRef timer, void *info) [self removeAllToolTips]; [_private clear]; - - Page* page = core([self _webView]); - if (page) - page->dragController()->setDraggingImageURL(KURL()); } - (BOOL)_hasHTMLDocument @@ -2608,6 +2614,7 @@ WEBCORE_COMMAND(yankAndSelect) [NSPasteboard _web_setFindPasteboardString:[self selectedString] withOwner:self]; } +// This method is needed to support Mac OS X services. - (BOOL)writeSelectionToPasteboard:(NSPasteboard *)pasteboard types:(NSArray *)types { [pasteboard declareTypes:types owner:[self _topHTMLView]]; @@ -3036,7 +3043,12 @@ WEBCORE_COMMAND(yankAndSelect) // We may have created the layer hosting view while outside the window. Update the scale factor // now that we have a window to get it from. if (_private->layerHostingView) { - CGFloat scaleFactor = [[self window] userSpaceScaleFactor]; + CGFloat scaleFactor; +#if !defined(BUILDING_ON_SNOW_LEOPARD) + scaleFactor = [[self window] backingScaleFactor]; +#else + scaleFactor = [[self window] userSpaceScaleFactor]; +#endif [[_private->layerHostingView layer] setTransform:CATransform3DMakeScale(scaleFactor, scaleFactor, 1)]; } #endif @@ -5416,59 +5428,96 @@ static CGPoint coreGraphicsScreenPointForAppKitScreenPoint(NSPoint point) [self _updateMouseoverWithFakeEvent]; } -- (BOOL)_interceptEditingKeyEvent:(KeyboardEvent*)event shouldSaveCommand:(BOOL)shouldSave +- (void)_executeSavedEditingCommands +{ + WebHTMLViewInterpretKeyEventsParameters* parameters = _private->interpretKeyEventsParameters; + if (!parameters || parameters->event->keypressCommands().isEmpty()) + return; + + // Avoid an infinite loop that would occur if executing a command appended it to event->keypressCommands() again. + bool wasSavingCommands = parameters->shouldSaveCommands; + parameters->shouldSaveCommands = false; + + const Vector<KeypressCommand>& commands = parameters->event->keypressCommands(); + + for (size_t i = 0; i < commands.size(); ++i) { + if (commands[i].commandName == "insertText:") + [self insertText:commands[i].text]; + else + [self doCommandBySelector:NSSelectorFromString(commands[i].commandName)]; + } + parameters->event->keypressCommands().clear(); + parameters->shouldSaveCommands = wasSavingCommands; +} + +- (BOOL)_interpretKeyEvent:(KeyboardEvent*)event savingCommands:(BOOL)savingCommands { - // Ask AppKit to process the key event -- it will call back with either insertText or doCommandBySelector. + ASSERT(core([self _frame]) == event->target()->toNode()->document()->frame()); + ASSERT(!savingCommands || event->keypressCommands().isEmpty()); // Save commands once for each event. + WebHTMLViewInterpretKeyEventsParameters parameters; - parameters.eventWasHandled = false; - parameters.shouldSaveCommand = shouldSave; + parameters.eventInterpretationHadSideEffects = false; + parameters.shouldSaveCommands = savingCommands; // If we're intercepting the initial IM call we assume that the IM has consumed the event, // and only change this assumption if one of the NSTextInput/Responder callbacks is used. // We assume the IM will *not* consume hotkey sequences - parameters.consumedByIM = !event->metaKey() && shouldSave; + parameters.consumedByIM = savingCommands && !event->metaKey(); - if (const PlatformKeyboardEvent* platformEvent = event->keyEvent()) { - NSEvent *macEvent = platformEvent->macEvent(); - if ([macEvent type] == NSKeyDown && [_private->completionController filterKeyDown:macEvent]) - return true; - - if ([macEvent type] == NSFlagsChanged) - return false; - - parameters.event = event; - _private->interpretKeyEventsParameters = ¶meters; - _private->receivedNOOP = NO; - const Vector<KeypressCommand>& commands = event->keypressCommands(); - bool hasKeypressCommand = !commands.isEmpty(); - - // FIXME: interpretKeyEvents doesn't match application key equivalents (such as Cmd+A), - // and sends noop: for those. As a result, we don't handle those from within WebCore, - // but send a full sequence of DOM events, including an unneeded keypress. - if (parameters.shouldSaveCommand || !hasKeypressCommand) - [self interpretKeyEvents:[NSArray arrayWithObject:macEvent]]; - else { - size_t size = commands.size(); - // Are there commands that would just cause text insertion if executed via Editor? - // WebKit doesn't have enough information about mode to decide how they should be treated, so we leave it upon WebCore - // to either handle them immediately (e.g. Tab that changes focus) or let a keypress event be generated - // (e.g. Tab that inserts a Tab character, or Enter). - bool haveTextInsertionCommands = false; - for (size_t i = 0; i < size; ++i) { - if ([self coreCommandBySelector:NSSelectorFromString(commands[i].commandName)].isTextInsertion()) - haveTextInsertionCommands = true; - } - if (!haveTextInsertionCommands || platformEvent->type() == PlatformKeyboardEvent::Char) { - for (size_t i = 0; i < size; ++i) { - if (commands[i].commandName == "insertText:") - [self insertText:commands[i].text]; - else - [self doCommandBySelector:NSSelectorFromString(commands[i].commandName)]; - } - } + const PlatformKeyboardEvent* platformEvent = event->keyEvent(); + if (!platformEvent) + return NO; + + NSEvent *macEvent = platformEvent->macEvent(); + if ([macEvent type] == NSKeyDown && [_private->completionController filterKeyDown:macEvent]) + return YES; + + if ([macEvent type] == NSFlagsChanged) + return NO; + + parameters.event = event; + _private->interpretKeyEventsParameters = ¶meters; + const Vector<KeypressCommand>& commands = event->keypressCommands(); + + if (savingCommands) { + // AppKit will respond with a series of NSTextInput protocol method calls. There are three groups that we heuristically differentiate: + // 1. Key Bindings. Only doCommandBySelector: and insertText: calls will be made, which we save in the event for execution + // after DOM dispatch. This is safe, because neither returns a result, so there is no branching on AppKit side. + // 2. Plain text input. Here as well, we need to dispatch DOM events prior to inserting text, so we save the insertText: command. + // 3. Input method processing. An IM can make any NSTextInput calls, and can base its decisions on results it gets, so we must + // execute the calls immediately. DOM events like keydown are tweaked to have keyCode of 229, and canceling them has no effect. + // Unfortunately, there is no real difference between plain text input and IM processing - for example, AppKit queries hasMarkedText + // when typing with U.S. keyboard, and inserts marked text for dead keys. + [self interpretKeyEvents:[NSArray arrayWithObject:macEvent]]; + } else { + // Are there commands that could just cause text insertion if executed via Editor? + // WebKit doesn't have enough information about mode to decide how they should be treated, so we leave it upon WebCore + // to either handle them immediately (e.g. Tab that changes focus) or let a keypress event be generated + // (e.g. Tab that inserts a Tab character, or Enter). + bool haveTextInsertionCommands = false; + for (size_t i = 0; i < commands.size(); ++i) { + if ([self coreCommandBySelector:NSSelectorFromString(commands[i].commandName)].isTextInsertion()) + haveTextInsertionCommands = true; } - _private->interpretKeyEventsParameters = 0; + // If there are no text insertion commands, default keydown handler is the right time to execute the commands. + // Keypress (Char event) handler is the latest opportunity to execute. + if (!haveTextInsertionCommands || platformEvent->type() == PlatformKeyboardEvent::Char) + [self _executeSavedEditingCommands]; } - return (!_private->receivedNOOP && parameters.eventWasHandled) || parameters.consumedByIM; + _private->interpretKeyEventsParameters = 0; + + // An input method may make several actions per keypress. For example, pressing Return with Korean IM both confirms it and sends a newline. + // IM-like actions are handled immediately (so parameters.eventInterpretationHadSideEffects is true), but there are saved commands that + // should be handled like normal text input after DOM event dispatch. + if (!event->keypressCommands().isEmpty()) + return NO; + + // An input method may consume an event and not tell us (e.g. when displaying a candidate window), + // in which case we should not bubble the event up the DOM. + if (parameters.consumedByIM) + return YES; + + // If we have already executed all commands, don't do it again. + return parameters.eventInterpretationHadSideEffects; } - (WebCore::CachedImage*)promisedDragTIFFDataSource @@ -5551,7 +5600,20 @@ static CGPoint coreGraphicsScreenPointForAppKitScreenPoint(NSPoint point) #if !defined(BUILDING_ON_LEOPARD) // If we aren't in the window yet, we'll use the screen's scale factor now, and reset the scale // via -viewDidMoveToWindow. - CGFloat scaleFactor = [self window] ? [[self window] userSpaceScaleFactor] : [[NSScreen mainScreen] userSpaceScaleFactor]; + NSWindow *window = [self window]; + CGFloat scaleFactor; +#if !defined(BUILDING_ON_SNOW_LEOPARD) + if (window) + scaleFactor = [window backingScaleFactor]; + else + scaleFactor = [[NSScreen mainScreen] backingScaleFactor]; +#else + if (window) + scaleFactor = [window userSpaceScaleFactor]; + else + scaleFactor = [[NSScreen mainScreen] userSpaceScaleFactor]; +#endif + [viewLayer setTransform:CATransform3DMakeScale(scaleFactor, scaleFactor, 1)]; #endif @@ -5684,6 +5746,8 @@ static CGPoint coreGraphicsScreenPointForAppKitScreenPoint(NSPoint point) - (NSUInteger)characterIndexForPoint:(NSPoint)thePoint { + [self _executeSavedEditingCommands]; + NSWindow *window = [self window]; WebFrame *frame = [self _frame]; @@ -5703,7 +5767,9 @@ static CGPoint coreGraphicsScreenPointForAppKitScreenPoint(NSPoint point) } - (NSRect)firstRectForCharacterRange:(NSRange)theRange -{ +{ + [self _executeSavedEditingCommands]; + WebFrame *frame = [self _frame]; // Just to match NSTextView's behavior. Regression tests cannot detect this; @@ -5734,6 +5800,8 @@ static CGPoint coreGraphicsScreenPointForAppKitScreenPoint(NSPoint point) - (NSRange)selectedRange { + [self _executeSavedEditingCommands]; + if (!isTextInput(core([self _frame]))) { LOG(TextInput, "selectedRange -> (NSNotFound, 0)"); return NSMakeRange(NSNotFound, 0); @@ -5746,6 +5814,8 @@ static CGPoint coreGraphicsScreenPointForAppKitScreenPoint(NSPoint point) - (NSRange)markedRange { + [self _executeSavedEditingCommands]; + WebFrame *webFrame = [self _frame]; Frame* coreFrame = core(webFrame); if (!coreFrame) @@ -5758,6 +5828,8 @@ static CGPoint coreGraphicsScreenPointForAppKitScreenPoint(NSPoint point) - (NSAttributedString *)attributedSubstringFromRange:(NSRange)nsRange { + [self _executeSavedEditingCommands]; + WebFrame *frame = [self _frame]; Frame* coreFrame = core(frame); if (!isTextInput(coreFrame) || isInPasswordField(coreFrame)) { @@ -5799,6 +5871,8 @@ static CGPoint coreGraphicsScreenPointForAppKitScreenPoint(NSPoint point) - (BOOL)hasMarkedText { + [self _executeSavedEditingCommands]; + Frame* coreFrame = core([self _frame]); BOOL result = coreFrame && coreFrame->editor()->hasComposition(); LOG(TextInput, "hasMarkedText -> %u", result); @@ -5807,6 +5881,8 @@ static CGPoint coreGraphicsScreenPointForAppKitScreenPoint(NSPoint point) - (void)unmarkText { + [self _executeSavedEditingCommands]; + LOG(TextInput, "unmarkText"); // Use pointer to get parameters passed to us by the caller of interpretKeyEvents. @@ -5814,8 +5890,8 @@ static CGPoint coreGraphicsScreenPointForAppKitScreenPoint(NSPoint point) _private->interpretKeyEventsParameters = 0; if (parameters) { - parameters->eventWasHandled = YES; - parameters->consumedByIM = NO; + parameters->eventInterpretationHadSideEffects = true; + parameters->consumedByIM = false; } if (Frame* coreFrame = core([self _frame])) @@ -5844,6 +5920,8 @@ static void extractUnderlines(NSAttributedString *string, Vector<CompositionUnde - (void)setMarkedText:(id)string selectedRange:(NSRange)newSelRange { + [self _executeSavedEditingCommands]; + BOOL isAttributedString = [string isKindOfClass:[NSAttributedString class]]; // Otherwise, NSString LOG(TextInput, "setMarkedText:\"%@\" selectedRange:(%u, %u)", isAttributedString ? [string string] : string, newSelRange.location, newSelRange.length); @@ -5853,8 +5931,8 @@ static void extractUnderlines(NSAttributedString *string, Vector<CompositionUnde _private->interpretKeyEventsParameters = 0; if (parameters) { - parameters->eventWasHandled = YES; - parameters->consumedByIM = NO; + parameters->eventInterpretationHadSideEffects = true; + parameters->consumedByIM = false; } Frame* coreFrame = core([self _frame]); @@ -5869,7 +5947,7 @@ static void extractUnderlines(NSAttributedString *string, Vector<CompositionUnde if (isAttributedString) { unsigned markedTextLength = [(NSString *)string length]; - NSString *rangeString = [string attribute:NSTextInputReplacementRangeAttributeName atIndex:0 longestEffectiveRange:NULL inRange:NSMakeRange(0, markedTextLength)]; + NSString *rangeString = [string attribute:NSTextInputReplacementRangeAttributeName atIndex:0 longestEffectiveRange:0 inRange:NSMakeRange(0, markedTextLength)]; LOG(TextInput, " ReplacementRange: %@", rangeString); // The AppKit adds a 'secret' property to the string that contains the replacement range. // The replacement range is the range of the the text that should be replaced with the new string. @@ -5891,17 +5969,16 @@ static void extractUnderlines(NSAttributedString *string, Vector<CompositionUnde // The same call to interpretKeyEvents can do more than one command. WebHTMLViewInterpretKeyEventsParameters* parameters = _private->interpretKeyEventsParameters; if (parameters) - parameters->consumedByIM = NO; - - if (selector == @selector(noop:)) { - _private->receivedNOOP = YES; - return; - } + parameters->consumedByIM = false; KeyboardEvent* event = parameters ? parameters->event : 0; - bool shouldSaveCommand = parameters && parameters->shouldSaveCommand; + bool shouldSaveCommand = parameters && parameters->shouldSaveCommands; + + // As in insertText:, we assume that the call comes from an input method if there is marked text. + RefPtr<Frame> coreFrame = core([self _frame]); + bool isFromInputMethod = coreFrame && coreFrame->editor()->hasComposition(); - if (event && shouldSaveCommand) + if (event && shouldSaveCommand && !isFromInputMethod) event->keypressCommands().append(KeypressCommand(NSStringFromSelector(selector))); else { // Make sure that only direct calls to doCommandBySelector: see the parameters by setting to 0. @@ -5933,10 +6010,8 @@ static void extractUnderlines(NSAttributedString *string, Vector<CompositionUnde } if (parameters) - parameters->eventWasHandled = eventWasHandled; + parameters->eventInterpretationHadSideEffects |= eventWasHandled; - // Restore the parameters so that other calls to doCommandBySelector: see them, - // and other commands can participate in setting the "eventWasHandled" flag. _private->interpretKeyEventsParameters = parameters; } } @@ -5948,9 +6023,8 @@ static void extractUnderlines(NSAttributedString *string, Vector<CompositionUnde LOG(TextInput, "insertText:\"%@\"", isAttributedString ? [string string] : string); WebHTMLViewInterpretKeyEventsParameters* parameters = _private->interpretKeyEventsParameters; - _private->interpretKeyEventsParameters = 0; if (parameters) - parameters->consumedByIM = NO; + parameters->consumedByIM = false; // We don't support inserting an attributed string but input methods don't appear to require this. RefPtr<Frame> coreFrame = core([self _frame]); @@ -5960,57 +6034,48 @@ static void extractUnderlines(NSAttributedString *string, Vector<CompositionUnde text = [string string]; // We deal with the NSTextInputReplacementRangeAttributeName attribute from NSAttributedString here // simply because it is used by at least one Input Method -- it corresonds to the kEventParamTextInputSendReplaceRange - // event in TSM. This behaviour matches that of -[WebHTMLView setMarkedText:selectedRange:] when it receives an + // event in TSM. This behavior matches that of -[WebHTMLView setMarkedText:selectedRange:] when it receives an // NSAttributedString - NSString *rangeString = [string attribute:NSTextInputReplacementRangeAttributeName atIndex:0 longestEffectiveRange:NULL inRange:NSMakeRange(0, [text length])]; + NSString *rangeString = [string attribute:NSTextInputReplacementRangeAttributeName atIndex:0 longestEffectiveRange:0 inRange:NSMakeRange(0, [text length])]; LOG(TextInput, " ReplacementRange: %@", rangeString); if (rangeString) { [[self _frame] _selectNSRange:NSRangeFromString(rangeString)]; - isFromInputMethod = YES; + isFromInputMethod = true; } } else text = string; - bool eventHandled = false; - if ([text length]) { - KeyboardEvent* event = parameters ? parameters->event : 0; - - // insertText can be called from an input method or from normal key event processing - // If its from normal key event processing, we may need to save the action to perform it later. - // If its from an input method, then we should go ahead and insert the text now. - // We assume it's from the input method if we have marked text. - // FIXME: In theory, this could be wrong for some input methods, so we should try to find - // another way to determine if the call is from the input method - bool shouldSaveCommand = parameters && parameters->shouldSaveCommand; - if (event && shouldSaveCommand && !isFromInputMethod) { - event->keypressCommands().append(KeypressCommand("insertText:", text)); - _private->interpretKeyEventsParameters = parameters; - return; - } - - String eventText = text; - eventText.replace(NSBackTabCharacter, NSTabCharacter); // same thing is done in KeyEventMac.mm in WebCore - if (coreFrame && coreFrame->editor()->canEdit()) { - if (!coreFrame->editor()->hasComposition()) - eventHandled = coreFrame->editor()->insertText(eventText, event); - else { - eventHandled = true; - coreFrame->editor()->confirmComposition(eventText); - } - } - } - - if (!parameters) + KeyboardEvent* event = parameters ? parameters->event : 0; + + // insertText can be called for several reasons: + // - If it's from normal key event processing (including key bindings), we may need to save the action to perform it later. + // - If it's from an input method, then we should go ahead and insert the text now. We assume it's from the input method if we have marked text. + // FIXME: In theory, this could be wrong for some input methods, so we should try to find another way to determine if the call is from the input method. + // - If it's sent outside of keyboard event processing (e.g. from Character Viewer, or when confirming an inline input area with a mouse), + // then we also execute it immediately, as there will be no other chance. + bool shouldSaveCommand = parameters && parameters->shouldSaveCommands; + if (event && shouldSaveCommand && !isFromInputMethod) { + event->keypressCommands().append(KeypressCommand("insertText:", text)); return; - - if (isFromInputMethod) { - // Allow doCommandBySelector: to be called after insertText: by resetting interpretKeyEventsParameters - _private->interpretKeyEventsParameters = parameters; - parameters->consumedByIM = YES; + } + + if (!coreFrame || !coreFrame->editor()->canEdit()) return; + + bool eventHandled = false; + String eventText = text; + eventText.replace(NSBackTabCharacter, NSTabCharacter); // same thing is done in KeyEventMac.mm in WebCore + if (!coreFrame->editor()->hasComposition()) { + // An insertText: might be handled by other responders in the chain if we don't handle it. + // One example is space bar that results in scrolling down the page. + eventHandled = coreFrame->editor()->insertText(eventText, event); + } else { + eventHandled = true; + coreFrame->editor()->confirmComposition(eventText); } - parameters->eventWasHandled = eventHandled; + if (parameters) + parameters->eventInterpretationHadSideEffects |= eventHandled; } - (void)_updateSelectionForInputManager diff --git a/Source/WebKit/mac/WebView/WebHTMLViewInternal.h b/Source/WebKit/mac/WebView/WebHTMLViewInternal.h index 07a782a..d38fded 100644 --- a/Source/WebKit/mac/WebView/WebHTMLViewInternal.h +++ b/Source/WebKit/mac/WebView/WebHTMLViewInternal.h @@ -49,7 +49,7 @@ namespace WebCore { - (WebFrame *)_frame; - (void)_lookUpInDictionaryFromMenu:(id)sender; - (void)_hoverFeedbackSuspendedChanged; -- (BOOL)_interceptEditingKeyEvent:(WebCore::KeyboardEvent *)event shouldSaveCommand:(BOOL)shouldSave; +- (BOOL)_interpretKeyEvent:(WebCore::KeyboardEvent *)event savingCommands:(BOOL)savingCommands; - (DOMDocumentFragment *)_documentFragmentFromPasteboard:(NSPasteboard *)pasteboard; - (NSEvent *)_mouseDownEvent; #ifndef BUILDING_ON_TIGER diff --git a/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h b/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h index b6ae03f..a2f176a 100644 --- a/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h +++ b/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h @@ -89,6 +89,7 @@ #define WebKitJavaScriptCanAccessClipboardPreferenceKey @"WebKitJavaScriptCanAccessClipboard" #define WebKitXSSAuditorEnabledPreferenceKey @"WebKitXSSAuditorEnabled" #define WebKitAcceleratedDrawingEnabledPreferenceKey @"WebKitAcceleratedDrawingEnabled" +#define WebKitCanvasUsesAcceleratedDrawingPreferenceKey @"WebKitCanvasUsesAcceleratedDrawing" #define WebKitAcceleratedCompositingEnabledPreferenceKey @"WebKitAcceleratedCompositingEnabled" #define WebKitShowDebugBordersPreferenceKey @"WebKitShowDebugBorders" #define WebKitShowRepaintCounterPreferenceKey @"WebKitShowRepaintCounter" @@ -104,6 +105,7 @@ #define WebKitAsynchronousSpellCheckingEnabledPreferenceKey @"WebKitAsynchronousSpellCheckingEnabled" #define WebKitMemoryInfoEnabledPreferenceKey @"WebKitMemoryInfoEnabled" #define WebKitHyperlinkAuditingEnabledPreferenceKey @"WebKitHyperlinkAuditingEnabled" +#define WebKitUseQuickLookResourceCachingQuirksPreferenceKey @"WebKitUseQuickLookResourceCachingQuirks" // These are private both because callers should be using the cover methods and because the // cover methods themselves are private. diff --git a/Source/WebKit/mac/WebView/WebPreferences.mm b/Source/WebKit/mac/WebView/WebPreferences.mm index 3fd41f6..a5f24e0 100644 --- a/Source/WebKit/mac/WebView/WebPreferences.mm +++ b/Source/WebKit/mac/WebView/WebPreferences.mm @@ -136,6 +136,22 @@ static WebCacheModel cacheModelForMainBundle(void) return cacheModel; } +static bool useQuickLookQuirks(void) +{ + NSArray* frameworks = [NSBundle allFrameworks]; + + if (!frameworks) + return false; + + for (unsigned int i = 0; i < [frameworks count]; i++) { + NSBundle* bundle = [frameworks objectAtIndex: i]; + const char* bundleID = [[bundle bundleIdentifier] UTF8String]; + if (bundleID && !strcasecmp(bundleID, "com.apple.QuickLookUIFramework")) + return true; + } + return false; +} + @interface WebPreferencesPrivate : NSObject { @public @@ -359,6 +375,7 @@ static WebCacheModel cacheModelForMainBundle(void) [NSNumber numberWithBool:YES], WebKitXSSAuditorEnabledPreferenceKey, [NSNumber numberWithBool:YES], WebKitAcceleratedCompositingEnabledPreferenceKey, [NSNumber numberWithBool:NO], WebKitAcceleratedDrawingEnabledPreferenceKey, + [NSNumber numberWithBool:YES], WebKitCanvasUsesAcceleratedDrawingPreferenceKey, [NSNumber numberWithBool:NO], WebKitShowDebugBordersPreferenceKey, [NSNumber numberWithBool:NO], WebKitShowRepaintCounterPreferenceKey, [NSNumber numberWithBool:NO], WebKitWebGLEnabledPreferenceKey, @@ -367,11 +384,12 @@ static WebCacheModel cacheModelForMainBundle(void) [NSNumber numberWithBool:NO], WebKitFrameFlatteningEnabledPreferenceKey, [NSNumber numberWithBool:NO], WebKitSpatialNavigationEnabledPreferenceKey, [NSNumber numberWithBool:NO], WebKitDNSPrefetchingEnabledPreferenceKey, - [NSNumber numberWithBool:NO], WebKitFullScreenEnabledPreferenceKey, + [NSNumber numberWithBool:YES], WebKitFullScreenEnabledPreferenceKey, [NSNumber numberWithBool:NO], WebKitAsynchronousSpellCheckingEnabledPreferenceKey, [NSNumber numberWithBool:NO], WebKitMemoryInfoEnabledPreferenceKey, [NSNumber numberWithBool:YES], WebKitHyperlinkAuditingEnabledPreferenceKey, [NSNumber numberWithBool:NO], WebKitUsePreHTML5ParserQuirksKey, + [NSNumber numberWithBool:useQuickLookQuirks()], WebKitUseQuickLookResourceCachingQuirksPreferenceKey, [NSNumber numberWithLongLong:WebCore::ApplicationCacheStorage::noQuota()], WebKitApplicationCacheTotalQuota, [NSNumber numberWithLongLong:WebCore::ApplicationCacheStorage::noQuota()], WebKitApplicationCacheDefaultOriginQuota, nil]; @@ -1245,6 +1263,16 @@ static NSString *classIBCreatorID = nil; [self _setBoolValue:enabled forKey:WebKitAcceleratedDrawingEnabledPreferenceKey]; } +- (BOOL)canvasUsesAcceleratedDrawing +{ + return [self _boolValueForKey:WebKitCanvasUsesAcceleratedDrawingPreferenceKey]; +} + +- (void)setCanvasUsesAcceleratedDrawing:(BOOL)enabled +{ + [self _setBoolValue:enabled forKey:WebKitCanvasUsesAcceleratedDrawingPreferenceKey]; +} + - (BOOL)acceleratedCompositingEnabled { return [self _boolValueForKey:WebKitAcceleratedCompositingEnabledPreferenceKey]; @@ -1385,6 +1413,11 @@ static NSString *classIBCreatorID = nil; [self _setBoolValue:flag forKey:WebKitUsePreHTML5ParserQuirksKey]; } +- (BOOL)useQuickLookResourceCachingQuirks +{ + return [self _boolValueForKey:WebKitUseQuickLookResourceCachingQuirksPreferenceKey]; +} + - (void)didRemoveFromWebView { ASSERT(_private->numWebViews); diff --git a/Source/WebKit/mac/WebView/WebPreferencesPrivate.h b/Source/WebKit/mac/WebView/WebPreferencesPrivate.h index 40d4b5b..7e1f6a2 100644 --- a/Source/WebKit/mac/WebView/WebPreferencesPrivate.h +++ b/Source/WebKit/mac/WebView/WebPreferencesPrivate.h @@ -179,6 +179,9 @@ extern NSString *WebPreferencesRemovedNotification; - (BOOL)acceleratedDrawingEnabled; - (void)setAcceleratedDrawingEnabled:(BOOL)enabled; +- (BOOL)canvasUsesAcceleratedDrawing; +- (void)setCanvasUsesAcceleratedDrawing:(BOOL)enabled; + - (BOOL)acceleratedCompositingEnabled; - (void)setAcceleratedCompositingEnabled:(BOOL)enabled; @@ -233,4 +236,6 @@ extern NSString *WebPreferencesRemovedNotification; - (void)setUsePreHTML5ParserQuirks:(BOOL)flag; - (BOOL)usePreHTML5ParserQuirks; +- (BOOL)useQuickLookResourceCachingQuirks; + @end diff --git a/Source/WebKit/mac/WebView/WebScriptDebugDelegate.mm b/Source/WebKit/mac/WebView/WebScriptDebugDelegate.mm index 270266b..738c4df 100644 --- a/Source/WebKit/mac/WebView/WebScriptDebugDelegate.mm +++ b/Source/WebKit/mac/WebView/WebScriptDebugDelegate.mm @@ -239,7 +239,7 @@ NSString * const WebScriptErrorLineNumberKey = @"WebScriptErrorLineNumber"; if (self == _private->debugger->globalCallFrame() && !globalObject->globalData().dynamicGlobalObject) { JSGlobalObject* globalObject = _private->debugger->globalObject(); - DynamicGlobalObjectScope globalObjectScope(globalObject->globalExec(), globalObject); + DynamicGlobalObjectScope globalObjectScope(globalObject->globalData(), globalObject); JSValue exception; JSValue result = evaluateInGlobalCallFrame(stringToUString(script), exception, globalObject); diff --git a/Source/WebKit/mac/WebView/WebView.mm b/Source/WebKit/mac/WebView/WebView.mm index 2f45ca4..3d42be0 100644 --- a/Source/WebKit/mac/WebView/WebView.mm +++ b/Source/WebKit/mac/WebView/WebView.mm @@ -97,6 +97,7 @@ #import "WebPreferencesPrivate.h" #import "WebScriptDebugDelegate.h" #import "WebScriptWorldInternal.h" +#import "WebStorageManagerInternal.h" #import "WebSystemInterface.h" #import "WebTextCompletionController.h" #import "WebTextIterator.h" @@ -687,6 +688,10 @@ static NSString *leakMailQuirksUserScriptPath() #if ENABLE(DATABASE) WebKitInitializeDatabasesIfNecessary(); #endif + +#if ENABLE(DOM_STORAGE) + WebKitInitializeStorageIfNecessary(); +#endif WebKitInitializeApplicationCachePathIfNecessary(); patchMailRemoveAttributesMethod(); @@ -1491,6 +1496,8 @@ static bool fastDocumentTeardownEnabled() // Until we fix that, I will comment out the test (CFM) settings->setAcceleratedCompositingEnabled((coreVideoHas7228836Fix() || [preferences webGLEnabled] || [preferences accelerated2dCanvasEnabled]) && [preferences acceleratedCompositingEnabled]); + settings->setAcceleratedDrawingEnabled([preferences acceleratedDrawingEnabled]); + settings->setCanvasUsesAcceleratedDrawing([preferences canvasUsesAcceleratedDrawing]); settings->setShowDebugBorders([preferences showDebugBorders]); settings->setShowRepaintCounter([preferences showRepaintCounter]); settings->setPluginAllowedRunTime([preferences pluginAllowedRunTime]); @@ -1511,7 +1518,10 @@ static bool fastDocumentTeardownEnabled() settings->setMemoryInfoEnabled([preferences memoryInfoEnabled]); settings->setHyperlinkAuditingEnabled([preferences hyperlinkAuditingEnabled]); settings->setUsePreHTML5ParserQuirks([self _needsPreHTML5ParserQuirks]); + settings->setUseQuickLookResourceCachingQuirks([preferences useQuickLookResourceCachingQuirks]); settings->setCrossOriginCheckInGetMatchedCSSRulesDisabled([self _needsUnrestrictedGetMatchedCSSRules]); + settings->setInteractiveFormValidationEnabled([self interactiveFormValidationEnabled]); + settings->setValidationMessageTimerMagnification([self validationMessageTimerMagnification]); // Application Cache Preferences are stored on the global cache storage manager, not in Settings. [WebApplicationCache setDefaultOriginQuota:[preferences applicationCacheDefaultOriginQuota]]; @@ -2396,6 +2406,26 @@ static inline IMP getMethod(id o, SEL s) return NO; } +- (BOOL)interactiveFormValidationEnabled +{ + return _private->interactiveFormValidationEnabled; +} + +- (void)setInteractiveFormValidationEnabled:(BOOL)enabled +{ + _private->interactiveFormValidationEnabled = enabled; +} + +- (int)validationMessageTimerMagnification +{ + return _private->validationMessageTimerMagnification; +} + +- (void)setValidationMessageTimerMagnification:(int)newValue +{ + _private->validationMessageTimerMagnification = newValue; +} + - (BOOL)_isSoftwareRenderable { #if USE(ACCELERATED_COMPOSITING) @@ -5000,12 +5030,12 @@ static NSAppleEventDescriptor* aeDescFromJSValue(ExecState* exec, JSValue jsValu - (void)setEditable:(BOOL)flag { - if ([self isEditable] != flag) { - if (!_private->tabKeyCyclesThroughElementsChanged && _private->page) + if ([self isEditable] != flag && _private->page) { + _private->page->setEditable(flag); + if (!_private->tabKeyCyclesThroughElementsChanged) _private->page->setTabKeyCyclesThroughElements(!flag); Frame* mainFrame = [self _mainCoreFrame]; if (mainFrame) { - mainFrame->document()->setDesignMode(flag ? WebCore::Document::on : WebCore::Document::off); if (flag) { mainFrame->editor()->applyEditingStyleToBodyElement(); // If the WebView is made editable and the selection is empty, set it to something. @@ -5018,10 +5048,7 @@ static NSAppleEventDescriptor* aeDescFromJSValue(ExecState* exec, JSValue jsValu - (BOOL)isEditable { - Frame* mainFrame = [self _mainCoreFrame]; - if (mainFrame) - return mainFrame->document()->inDesignMode(); - return false; + return _private->page && _private->page->isEditable(); } - (void)setTypingStyle:(DOMCSSStyleDeclaration *)style @@ -5306,6 +5333,16 @@ static NSAppleEventDescriptor* aeDescFromJSValue(ExecState* exec, JSValue jsValu #endif +#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD) +- (void)handleCorrectionPanelResult:(NSString*)result +{ + WebFrame *webFrame = [self _selectedOrMainFrame]; + Frame* coreFrame = core(webFrame); + if (coreFrame) + coreFrame->editor()->handleCorrectionPanelResult(result); +} +#endif + @end @implementation WebView (WebViewUndoableEditing) @@ -5415,7 +5452,7 @@ FOR_EACH_RESPONDER_SELECTOR(FORWARD) Frame* coreFrame = core([self _selectedOrMainFrame]); if (!coreFrame) return NO; - return coreFrame->selection()->isAll(MayLeaveEditableContent); + return coreFrame->selection()->isAll(CanCrossEditingBoundary); } @end @@ -5859,7 +5896,7 @@ static inline uint64_t roundUpToPowerOf2(uint64_t num) WebFrameLoadDelegateImplementationCache* cache = &_private->frameLoadDelegateImplementations; if (cache->didReceiveIconForFrameFunc) { - Image* image = iconDatabase().iconForPageURL(core(webFrame)->document()->url().string(), IntSize(16, 16)); + Image* image = iconDatabase().synchronousIconForPageURL(core(webFrame)->document()->url().string(), IntSize(16, 16)); if (NSImage *icon = webGetNSImage(image, NSMakeSize(16, 16))) CallFrameLoadDelegate(cache->didReceiveIconForFrameFunc, self, @selector(webView:didReceiveIcon:forFrame:), icon, webFrame); } @@ -6120,8 +6157,11 @@ static void layerSyncRunLoopObserverCallBack(CFRunLoopObserverRef, CFRunLoopActi #endif #if ENABLE(FULLSCREEN_API) -- (BOOL)_supportsFullScreenForElement:(const WebCore::Element*)element +- (BOOL)_supportsFullScreenForElement:(const WebCore::Element*)element withKeyboard:(BOOL)withKeyboard { + if (withKeyboard) + return NO; + if (![[WebPreferences standardPreferences] fullScreenEnabled]) return NO; diff --git a/Source/WebKit/mac/WebView/WebViewData.h b/Source/WebKit/mac/WebView/WebViewData.h index e8b9188..a6a5a07 100644 --- a/Source/WebKit/mac/WebView/WebViewData.h +++ b/Source/WebKit/mac/WebView/WebViewData.h @@ -186,5 +186,8 @@ extern int pluginDatabaseClientCount; id<WebDeviceOrientationProvider> m_deviceOrientationProvider; RefPtr<WebCore::HistoryItem> _globalHistoryItem; + + BOOL interactiveFormValidationEnabled; + int validationMessageTimerMagnification; } @end diff --git a/Source/WebKit/mac/WebView/WebViewData.mm b/Source/WebKit/mac/WebView/WebViewData.mm index df7563e..e74c7a1 100644 --- a/Source/WebKit/mac/WebView/WebViewData.mm +++ b/Source/WebKit/mac/WebView/WebViewData.mm @@ -65,6 +65,10 @@ int pluginDatabaseClientCount = 0; zoomMultiplier = 1; zoomsTextOnly = NO; + interactiveFormValidationEnabled = NO; + // The default value should be synchronized with WebCore/page/Settings.cpp. + validationMessageTimerMagnification = 50; + #if ENABLE(DASHBOARD_SUPPORT) dashboardBehaviorAllowWheelScrolling = YES; #endif diff --git a/Source/WebKit/mac/WebView/WebViewInternal.h b/Source/WebKit/mac/WebView/WebViewInternal.h index 9517104..65cb4d8 100644 --- a/Source/WebKit/mac/WebView/WebViewInternal.h +++ b/Source/WebKit/mac/WebView/WebViewInternal.h @@ -57,7 +57,6 @@ namespace WebCore { #ifdef __cplusplus @interface WebView (WebViewEditingExtras) -- (BOOL)_interceptEditingKeyEvent:(WebCore::KeyboardEvent*)event shouldSaveCommand:(BOOL)shouldSave; - (BOOL)_shouldChangeSelectedDOMRange:(DOMRange *)currentRange toDOMRange:(DOMRange *)proposedRange affinity:(NSSelectionAffinity)selectionAffinity stillSelecting:(BOOL)flag; @end @@ -190,7 +189,7 @@ namespace WebCore { #endif #if ENABLE(FULLSCREEN_API) && defined(__cplusplus) -- (BOOL)_supportsFullScreenForElement:(WebCore::Element*)element; +- (BOOL)_supportsFullScreenForElement:(WebCore::Element*)element withKeyboard:(BOOL)withKeyboard; - (void)_enterFullScreenForElement:(WebCore::Element*)element; - (void)_exitFullScreenForElement:(WebCore::Element*)element; - (void)_fullScreenRendererChanged:(WebCore::RenderBox*)renderer; diff --git a/Source/WebKit/mac/WebView/WebViewPrivate.h b/Source/WebKit/mac/WebView/WebViewPrivate.h index a4ea809..7d7537e 100644 --- a/Source/WebKit/mac/WebView/WebViewPrivate.h +++ b/Source/WebKit/mac/WebView/WebViewPrivate.h @@ -487,6 +487,12 @@ Could be worth adding to the API. - (void)_setPostsAcceleratedCompositingNotifications:(BOOL)flag; - (BOOL)_isUsingAcceleratedCompositing; +// For DumpRenderTree +- (BOOL)interactiveFormValidationEnabled; +- (void)setInteractiveFormValidationEnabled:(BOOL)enabled; +- (int)validationMessageTimerMagnification; +- (void)setValidationMessageTimerMagnification:(int)newValue; + // Returns YES if NSView -displayRectIgnoringOpacity:inContext: will produce a faithful representation of the content. - (BOOL)_isSoftwareRenderable; // When drawing into a bitmap context, we normally flatten compositing layers (and distort 3D transforms). @@ -644,7 +650,9 @@ Could be worth adding to the API. - (void)setAutomaticSpellingCorrectionEnabled:(BOOL)flag; - (void)toggleAutomaticSpellingCorrection:(id)sender; #endif - +#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD) +- (void)handleCorrectionPanelResult:(NSString*)result; +#endif @end @interface WebView (WebViewEditingInMail) diff --git a/Source/WebKit/qt/Api/DerivedSources.pro b/Source/WebKit/qt/Api/DerivedSources.pro index 8084242..8be6748 100644 --- a/Source/WebKit/qt/Api/DerivedSources.pro +++ b/Source/WebKit/qt/Api/DerivedSources.pro @@ -19,7 +19,6 @@ win32-msvc* | wince* { } else { QUOTE = "\'" DOUBLE_ESCAPED_QUOTE = "\\\'" - ESCAPE = "\\" } qtheader_module.target = $${DESTDIR}/QtWebKit diff --git a/Source/WebKit/qt/Api/qgraphicswebview.cpp b/Source/WebKit/qt/Api/qgraphicswebview.cpp index b1c9586..b7b28bc 100644 --- a/Source/WebKit/qt/Api/qgraphicswebview.cpp +++ b/Source/WebKit/qt/Api/qgraphicswebview.cpp @@ -55,7 +55,8 @@ public: QGraphicsWebViewPrivate(QGraphicsWebView* parent) : q(parent) , page(0) - , resizesToContents(false) {} + , resizesToContents(false) + , renderHints(QPainter::TextAntialiasing | QPainter::SmoothPixmapTransform) {} virtual ~QGraphicsWebViewPrivate(); @@ -74,6 +75,7 @@ public: QGraphicsWebView* q; QWebPage* page; bool resizesToContents; + QPainter::RenderHints renderHints; QGraphicsItemOverlay* overlay() const { @@ -279,6 +281,8 @@ QWebPage* QGraphicsWebView::page() const */ void QGraphicsWebView::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget*) { + QPainter::RenderHints oldHints = painter->renderHints(); + painter->setRenderHints(oldHints | d->renderHints); #if ENABLE(TILED_BACKING_STORE) if (WebCore::TiledBackingStore* backingStore = QWebFramePrivate::core(page()->mainFrame())->tiledBackingStore()) { // FIXME: We should set the backing store viewport earlier than in paint @@ -286,6 +290,7 @@ void QGraphicsWebView::paint(QPainter* painter, const QStyleOptionGraphicsItem* // QWebFrame::render is a public API, bypass it for tiled rendering so behavior does not need to change. WebCore::GraphicsContext context(painter); page()->mainFrame()->d->renderFromTiledBackingStore(&context, option->exposedRect.toAlignedRect()); + painter->setRenderHints(oldHints); return; } #endif @@ -294,6 +299,7 @@ void QGraphicsWebView::paint(QPainter* painter, const QStyleOptionGraphicsItem* #else page()->mainFrame()->render(painter, QWebFrame::AllLayers, option->exposedRect.toRect()); #endif + painter->setRenderHints(oldHints); } /*! \reimp @@ -357,6 +363,65 @@ QVariant QGraphicsWebView::inputMethodQuery(Qt::InputMethodQuery query) const return QVariant(); } +/*! + \property QGraphicsWebView::renderHints + \since 4.8 + \brief the default render hints for the view + + These hints are used to initialize QPainter before painting the Web page. + + QPainter::TextAntialiasing and QPainter::SmoothPixmapTransform are enabled by default and will be + used to render the item in addition of what has been set on the painter given by QGraphicsScene. + + \note This property is not available on Symbian. However, the getter and + setter functions can still be used directly. + + \sa QPainter::renderHints() +*/ + +/*! + \since 4.8 + Returns the render hints used by the view to render content. + + \sa QPainter::renderHints() +*/ +QPainter::RenderHints QGraphicsWebView::renderHints() const +{ + return d->renderHints; +} + +/*! + \since 4.8 + Sets the render hints used by the view to the specified \a hints. + + \sa QPainter::setRenderHints() +*/ +void QGraphicsWebView::setRenderHints(QPainter::RenderHints hints) +{ + if (hints == d->renderHints) + return; + d->renderHints = hints; + update(); +} + +/*! + \since 4.8 + If \a enabled is true, enables the specified render \a hint; otherwise + disables it. + + \sa renderHints, QPainter::renderHints() +*/ +void QGraphicsWebView::setRenderHint(QPainter::RenderHint hint, bool enabled) +{ + QPainter::RenderHints oldHints = d->renderHints; + if (enabled) + d->renderHints |= hint; + else + d->renderHints &= ~hint; + if (oldHints != d->renderHints) + update(); +} + /*! \reimp */ bool QGraphicsWebView::event(QEvent* event) diff --git a/Source/WebKit/qt/Api/qgraphicswebview.h b/Source/WebKit/qt/Api/qgraphicswebview.h index 733c224..ceb0ad8 100644 --- a/Source/WebKit/qt/Api/qgraphicswebview.h +++ b/Source/WebKit/qt/Api/qgraphicswebview.h @@ -50,6 +50,9 @@ class QWEBKIT_EXPORT QGraphicsWebView : public QGraphicsWidget { Q_PROPERTY(bool resizesToContents READ resizesToContents WRITE setResizesToContents) Q_PROPERTY(bool tiledBackingStoreFrozen READ isTiledBackingStoreFrozen WRITE setTiledBackingStoreFrozen) + Q_PROPERTY(QPainter::RenderHints renderHints READ renderHints WRITE setRenderHints) + Q_FLAGS(QPainter::RenderHints) + public: explicit QGraphicsWebView(QGraphicsItem* parent = 0); ~QGraphicsWebView(); @@ -99,6 +102,10 @@ public: virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; + QPainter::RenderHints renderHints() const; + void setRenderHints(QPainter::RenderHints); + void setRenderHint(QPainter::RenderHint, bool enabled = true); + public Q_SLOTS: void stop(); void back(); diff --git a/Source/WebKit/qt/Api/qwebframe.cpp b/Source/WebKit/qt/Api/qwebframe.cpp index 6f98bca..e5124bd 100644 --- a/Source/WebKit/qt/Api/qwebframe.cpp +++ b/Source/WebKit/qt/Api/qwebframe.cpp @@ -731,7 +731,7 @@ QMultiMap<QString, QString> QWebFrame::metaData() const static inline QUrl ensureAbsoluteUrl(const QUrl &url) { - if (!url.isRelative()) + if (!url.isValid() || !url.isRelative()) return url; // This contains the URL with absolute path but without @@ -780,26 +780,7 @@ QUrl QWebFrame::url() const */ QUrl QWebFrame::requestedUrl() const { - // There are some possible edge cases to be handled here, - // apart from checking if activeDocumentLoader is valid: - // - // * Method can be called while processing an unsucessful load. - // In this case, frameLoaderClient will hold the current error - // (m_loadError), and we will make use of it to recover the 'failingURL'. - // * If the 'failingURL' holds a null'ed string though, we fallback - // to 'outgoingReferrer' (it yet is safer than originalRequest). - FrameLoader* loader = d->frame->loader(); - FrameLoaderClientQt* loaderClient = d->frameLoaderClient; - - if (!loader->activeDocumentLoader() - || !loaderClient->m_loadError.isNull()) { - if (!loaderClient->m_loadError.failingURL().isNull()) - return QUrl(loaderClient->m_loadError.failingURL()); - else if (!loader->outgoingReferrer().isEmpty()) - return QUrl(loader->outgoingReferrer()); - } - - return loader->originalRequest().url(); + return d->frameLoaderClient->lastRequestedUrl(); } /*! \since 4.6 @@ -893,11 +874,9 @@ 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/Source/WebKit/qt/Api/qwebhistory.cpp b/Source/WebKit/qt/Api/qwebhistory.cpp index a9761de..33bad41 100644 --- a/Source/WebKit/qt/Api/qwebhistory.cpp +++ b/Source/WebKit/qt/Api/qwebhistory.cpp @@ -23,11 +23,13 @@ #include "qwebframe_p.h" #include "BackForwardListImpl.h" -#include "PlatformString.h" +#include "IconDatabaseBase.h" #include "Image.h" +#include "IntSize.h" #include "KURL.h" #include "Page.h" #include "PageGroup.h" +#include "PlatformString.h" #include <QSharedData> #include <QDebug> @@ -156,7 +158,8 @@ QDateTime QWebHistoryItem::lastVisited() const QIcon QWebHistoryItem::icon() const { if (d->item) - return *d->item->icon()->nativeImageForCurrentFrame(); + return *WebCore::iconDatabase().synchronousIconForPageURL(d->item->url(), WebCore::IntSize(16, 16))->nativeImageForCurrentFrame(); + return QIcon(); } diff --git a/Source/WebKit/qt/Api/qwebhistoryinterface.cpp b/Source/WebKit/qt/Api/qwebhistoryinterface.cpp index 61cf5af..40ff5c9 100644 --- a/Source/WebKit/qt/Api/qwebhistoryinterface.cpp +++ b/Source/WebKit/qt/Api/qwebhistoryinterface.cpp @@ -69,8 +69,8 @@ void QWebHistoryInterface::setDefaultInterface(QWebHistoryInterface* defaultInte /*! Returns the default interface that will be used by WebKit. If no default interface has been set, - Webkit will not keep track of visited links and a null pointer will be returned. - \sa setDefaultInterface + WebKit will not keep track of visited links and a null pointer will be returned. + \sa setDefaultInterface() */ QWebHistoryInterface* QWebHistoryInterface::defaultInterface() { diff --git a/Source/WebKit/qt/Api/qwebkitplatformplugin.h b/Source/WebKit/qt/Api/qwebkitplatformplugin.h index 2a94e0c..f274a0b 100644 --- a/Source/WebKit/qt/Api/qwebkitplatformplugin.h +++ b/Source/WebKit/qt/Api/qwebkitplatformplugin.h @@ -26,6 +26,7 @@ * and may be changed from version to version or even be completely removed. */ +#include <QColor> #include <QObject> #include <QUrl> #if defined(ENABLE_QT_MULTIMEDIA) && ENABLE_QT_MULTIMEDIA @@ -46,6 +47,10 @@ public: virtual bool itemIsSelected(int index) const = 0; virtual int itemCount() const = 0; virtual bool multiple() const = 0; + virtual QColor backgroundColor() const = 0; + virtual QColor foregroundColor() const = 0; + virtual QColor itemBackgroundColor(int index) const = 0; + virtual QColor itemForegroundColor(int index) const = 0; }; class QWebSelectMethod : public QObject diff --git a/Source/WebKit/qt/Api/qwebkitversion.cpp b/Source/WebKit/qt/Api/qwebkitversion.cpp index 181913b..1143f99 100644 --- a/Source/WebKit/qt/Api/qwebkitversion.cpp +++ b/Source/WebKit/qt/Api/qwebkitversion.cpp @@ -40,7 +40,7 @@ */ QString qWebKitVersion() { - return QString("%1.%2").arg(WEBKIT_MAJOR_VERSION).arg(WEBKIT_MINOR_VERSION); + return QString::fromLatin1("%1.%2").arg(WEBKIT_MAJOR_VERSION).arg(WEBKIT_MINOR_VERSION); } /*! diff --git a/Source/WebKit/qt/Api/qwebpage.cpp b/Source/WebKit/qt/Api/qwebpage.cpp index 5dd57f5..ac1d562 100644 --- a/Source/WebKit/qt/Api/qwebpage.cpp +++ b/Source/WebKit/qt/Api/qwebpage.cpp @@ -104,6 +104,9 @@ #include "Scrollbar.h" #include "SecurityOrigin.h" #include "Settings.h" +#if defined Q_OS_WIN32 +#include "SystemInfo.h" +#endif // Q_OS_WIN32 #include "TextIterator.h" #include "WebPlatformStrategies.h" #include "WindowFeatures.h" @@ -312,9 +315,6 @@ QWebPagePrivate::QWebPagePrivate(QWebPage *qq) ScriptController::initializeThreading(); WTF::initializeMainThread(); WebCore::SecurityOrigin::setLocalLoadPolicy(WebCore::SecurityOrigin::AllowLocalLoadsForLocalAndSubstituteData); -#if QT_VERSION < QT_VERSION_CHECK(4, 7, 0) - WebCore::Font::setCodePath(WebCore::Font::Complex); -#endif WebPlatformStrategies::initialize(); @@ -1168,7 +1168,7 @@ void QWebPagePrivate::dynamicPropertyChangeEvent(QDynamicPropertyChangeEvent* ev QString p = q->property("_q_RepaintThrottlingPreset").toString(); for(int i = 0; i < sizeof(presets) / sizeof(presets[0]); i++) { - if(p == presets[i].name) { + if (p == QLatin1String(presets[i].name)) { FrameView::setRepaintThrottlingDeferredRepaintDelay( presets[i].deferredRepaintDelay); FrameView::setRepaintThrottlingnInitialDeferredRepaintDelayDuringLoading( @@ -1219,6 +1219,9 @@ void QWebPagePrivate::dynamicPropertyChangeEvent(QDynamicPropertyChangeEvent* ev else if (event->propertyName() == "_q_webInspectorServerPort") { InspectorServerQt* inspectorServer = InspectorServerQt::server(); inspectorServer->listen(inspectorServerPort()); + } else if (event->propertyName() == "_q_deadDecodedDataDeletionInterval") { + double interval = q->property("_q_deadDecodedDataDeletionInterval").toDouble(); + memoryCache()->setDeadDecodedDataDeletionInterval(interval); } } #endif @@ -2070,7 +2073,7 @@ void QWebPage::javaScriptConsoleMessage(const QString& message, int lineNumber, // Catch plugin logDestroy message for LayoutTests/plugins/open-and-close-window-with-plugin.html // At this point DRT's WebPage has already been destroyed if (QWebPagePrivate::drtRun) { - if (message == "PLUGIN: NPP_Destroy") + if (message == QLatin1String("PLUGIN: NPP_Destroy")) fprintf (stdout, "CONSOLE MESSAGE: line %d: %s\n", lineNumber, message.toUtf8().constData()); } } @@ -2540,7 +2543,7 @@ QWebPage::ViewportAttributes QWebPage::viewportAttributesForSize(const QSize& av result.m_minimumScaleFactor = conf.minimumScale; result.m_maximumScaleFactor = conf.maximumScale; result.m_devicePixelRatio = conf.devicePixelRatio; - result.m_isUserScalable = conf.userScalable; + result.m_isUserScalable = static_cast<bool>(conf.userScalable); d->pixelRatio = conf.devicePixelRatio; @@ -3169,10 +3172,10 @@ bool QWebPage::focusNextPrevChild(bool next) void QWebPage::setContentEditable(bool editable) { if (isContentEditable() != editable) { + d->page->setEditable(editable); d->page->setTabKeyCyclesThroughElements(!editable); if (d->mainFrame) { WebCore::Frame* frame = d->mainFrame->d->frame; - frame->document()->setDesignMode(editable ? WebCore::Document::on : WebCore::Document::off); if (editable) { frame->editor()->applyEditingStyleToBodyElement(); // FIXME: mac port calls this if there is no selectedDOMRange @@ -3186,7 +3189,7 @@ void QWebPage::setContentEditable(bool editable) bool QWebPage::isContentEditable() const { - return d->mainFrame && d->mainFrame->d->frame->document()->inDesignMode(); + return d->page->isEditable(); } /*! @@ -3772,52 +3775,7 @@ QString QWebPage::userAgentForUrl(const QUrl&) const #ifdef Q_OS_AIX firstPartTemp += QString::fromLatin1("AIX"); #elif defined Q_OS_WIN32 - - switch (QSysInfo::WindowsVersion) { - case QSysInfo::WV_32s: - firstPartTemp += QString::fromLatin1("Windows 3.1"); - break; - case QSysInfo::WV_95: - firstPartTemp += QString::fromLatin1("Windows 95"); - break; - case QSysInfo::WV_98: - firstPartTemp += QString::fromLatin1("Windows 98"); - break; - case QSysInfo::WV_Me: - firstPartTemp += QString::fromLatin1("Windows 98; Win 9x 4.90"); - break; - case QSysInfo::WV_NT: - firstPartTemp += QString::fromLatin1("WinNT4.0"); - break; - case QSysInfo::WV_2000: - firstPartTemp += QString::fromLatin1("Windows NT 5.0"); - break; - case QSysInfo::WV_XP: - firstPartTemp += QString::fromLatin1("Windows NT 5.1"); - break; - case QSysInfo::WV_2003: - firstPartTemp += QString::fromLatin1("Windows NT 5.2"); - break; - case QSysInfo::WV_VISTA: - firstPartTemp += QString::fromLatin1("Windows NT 6.0"); - break; - case QSysInfo::WV_WINDOWS7: - firstPartTemp += QString::fromLatin1("Windows NT 6.1"); - break; - case QSysInfo::WV_CE: - firstPartTemp += QString::fromLatin1("Windows CE"); - break; - case QSysInfo::WV_CENET: - firstPartTemp += QString::fromLatin1("Windows CE .NET"); - break; - case QSysInfo::WV_CE_5: - firstPartTemp += QString::fromLatin1("Windows CE 5.x"); - break; - case QSysInfo::WV_CE_6: - firstPartTemp += QString::fromLatin1("Windows CE 6.x"); - break; - } - + firstPartTemp += windowsVersionForUAString(); #elif defined Q_OS_DARWIN #ifdef __i386__ || __x86_64__ firstPartTemp += QString::fromLatin1("Intel Mac OS X"); @@ -4086,7 +4044,8 @@ quint64 QWebPage::bytesReceived() const /*! \fn void QWebPage::repaintRequested(const QRect& dirtyRect) - This signal is emitted whenever this QWebPage should be updated and no view was set. + This signal is emitted whenever this QWebPage should be updated. It's useful + when rendering a QWebPage without a QWebView or QGraphicsWebView. \a dirtyRect contains the area that needs to be updated. To paint the QWebPage get the mainFrame() and call the render(QPainter*, const QRegion&) method with the \a dirtyRect as the second parameter. @@ -4131,6 +4090,8 @@ quint64 QWebPage::bytesReceived() const At signal emission time the meta-data of the QNetworkReply \a reply is available. + \note The receiving slot is responsible for deleting the QNetworkReply \a reply. + \note This signal is only emitted if the forwardUnsupportedContent property is set to true. \sa downloadRequested() diff --git a/Source/WebKit/qt/Api/qwebsettings.cpp b/Source/WebKit/qt/Api/qwebsettings.cpp index 3f0b436..f744e81 100644 --- a/Source/WebKit/qt/Api/qwebsettings.cpp +++ b/Source/WebKit/qt/Api/qwebsettings.cpp @@ -28,6 +28,9 @@ #include "MemoryCache.h" #include "CrossOriginPreflightResultCache.h" #include "FontCache.h" +#if ENABLE(ICONDATABASE) +#include "IconDatabaseClientQt.h" +#endif #include "Page.h" #include "PageCache.h" #include "Settings.h" @@ -477,25 +480,16 @@ QWebSettings::QWebSettings() d->fontFamilies.insert(QWebSettings::StandardFont, defaultFont.defaultFamily()); d->fontFamilies.insert(QWebSettings::SerifFont, defaultFont.defaultFamily()); -#if QT_VERSION >= QT_VERSION_CHECK(4, 7, 0) defaultFont.setStyleHint(QFont::Fantasy); d->fontFamilies.insert(QWebSettings::FantasyFont, defaultFont.defaultFamily()); defaultFont.setStyleHint(QFont::Cursive); d->fontFamilies.insert(QWebSettings::CursiveFont, defaultFont.defaultFamily()); -#else - d->fontFamilies.insert(QWebSettings::FantasyFont, defaultFont.defaultFamily()); - d->fontFamilies.insert(QWebSettings::CursiveFont, defaultFont.defaultFamily()); -#endif defaultFont.setStyleHint(QFont::SansSerif); d->fontFamilies.insert(QWebSettings::SansSerifFont, defaultFont.defaultFamily()); -#if QT_VERSION >= QT_VERSION_CHECK(4, 7, 0) defaultFont.setStyleHint(QFont::Monospace); -#else - defaultFont.setStyleHint(QFont::TypeWriter); -#endif d->fontFamilies.insert(QWebSettings::FixedFont, defaultFont.defaultFamily()); d->attributes.insert(QWebSettings::AutoLoadImages, true); @@ -645,13 +639,18 @@ QString QWebSettings::defaultTextEncoding() const */ void QWebSettings::setIconDatabasePath(const QString& path) { - WebCore::iconDatabase().delayDatabaseCleanup(); +#if ENABLE(ICONDATABASE) + // Make sure that IconDatabaseClientQt is instantiated. + WebCore::IconDatabaseClientQt::instance(); +#endif + + WebCore::IconDatabase::delayDatabaseCleanup(); if (!path.isEmpty()) { WebCore::iconDatabase().setEnabled(true); QFileInfo info(path); if (info.isDir() && info.isWritable()) - WebCore::iconDatabase().open(path); + WebCore::iconDatabase().open(path, WebCore::IconDatabase::defaultDatabaseFilename()); } else { WebCore::iconDatabase().setEnabled(false); WebCore::iconDatabase().close(); @@ -693,7 +692,7 @@ void QWebSettings::clearIconDatabase() */ QIcon QWebSettings::iconForUrl(const QUrl& url) { - WebCore::Image* image = WebCore::iconDatabase().iconForPageURL(WebCore::KURL(url).string(), + WebCore::Image* image = WebCore::iconDatabase().synchronousIconForPageURL(WebCore::KURL(url).string(), WebCore::IntSize(16, 16)); if (!image) return QPixmap(); diff --git a/Source/WebKit/qt/ChangeLog b/Source/WebKit/qt/ChangeLog index a28825c..1a922ad 100644 --- a/Source/WebKit/qt/ChangeLog +++ b/Source/WebKit/qt/ChangeLog @@ -1,3 +1,716 @@ +2011-03-30 Robert Hogan <robert@webkit.org> + + Reviewed by Antonio Gomes. + + [Qt] Fix LoadHTMLStringItem::invoke() after r75966 + + Add DRT support for loading an alternate HTML string + for error pages. This allows Qt to unskip + http/tests/navigation/go-back-to-error-page.html. + + https://bugs.webkit.org/show_bug.cgi?id=52614 + + * WebCoreSupport/DumpRenderTreeSupportQt.cpp: + (DumpRenderTreeSupportQt::setAlternateHtml): + * WebCoreSupport/DumpRenderTreeSupportQt.h: + +2011-03-29 Alexis Menard <alexis.menard@openbossa.org> + + Unreviewed build fix for build-webkit -minimal. + + Breakage introduced by http://trac.webkit.org/changeset/82238. + The minimal option has no support for shortcuts. + + * WebCoreSupport/EditorClientQt.cpp: + (WebCore::EditorClientQt::handleInputMethodKeydown): + +2011-03-29 Janne Koskinen <janne.p.koskinen@digia.com> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Enterkey to go to Newline does not work in the text area(in HTML form) + https://bugs.webkit.org/show_bug.cgi?id=33179 + + Fixed newline generation from Qt::Key_Enter when editting text area using InputMethods. + + * WebCoreSupport/EditorClientQt.cpp: + (WebCore::EditorClientQt::handleInputMethodKeydown): + * tests/qwebpage/tst_qwebpage.cpp: + (tst_QWebPage::inputMethods): + +2011-03-29 Andreas Kling <kling@webkit.org> + + Reviewed by Simon Hausmann. + + [Qt] Fix documentation for QWebPage::repaintRequested() + + This signal is always emitted when the page is dirtied, so remove + reference to old behavior where we would only emit the signal for + headless QWebPages. + + * Api/qwebpage.cpp: + +2011-03-28 Andreas Kling <kling@webkit.org> + + Reviewed by Benjamin Poulain. + + [Qt] Pass QString() instead of String() when emitting titleChanged() for new loads. + + * WebCoreSupport/FrameLoaderClientQt.cpp: + (WebCore::FrameLoaderClientQt::dispatchDidCommitLoad): + +2011-03-28 Andreas Kling <kling@webkit.org> + + Reviewed by Benjamin Poulain. + + [Qt] Crash when calling QWebFrame::render() in response to QWebPage::repaintRequested() + https://bugs.webkit.org/show_bug.cgi?id=52629 + + * WebCoreSupport/ChromeClientQt.cpp: + (WebCore::ChromeClientQt::invalidateContentsAndWindow): Make the emission of + QWebPage::repaintRequested() use a Qt::QueuedConnection. + + * tests/qwebpage/tst_qwebpage.cpp: + (RepaintRequestedRenderer::RepaintRequestedRenderer): + (RepaintRequestedRenderer::onRepaintRequested): + (tst_QWebPage::renderOnRepaintRequestedShouldNotRecurse): Test that calling + QWebFrame::render() in a slot connected to to QWebPage::repaintRequested() + doesn't cause recursive signal emissions. + +2011-03-28 Benjamin Poulain <benjamin.poulain@nokia.com> + + Reviewed by Andreas Kling. + + [Qt] QtWebKit will not compile with QT_ASCII_CAST_WARNINGS enabled + https://bugs.webkit.org/show_bug.cgi?id=57087 + + * QtWebKit.pro: we can now enable QT_ASCII_CAST_WARNINGS + * tests/tests.pri: we do not require QT_ASCII_CAST_WARNINGS for tests + since they are applications, not libraries. + +2011-03-28 Andras Becsi <abecsi@webkit.org> + + Reviewed by Csaba Osztrogonác. + + [Qt] QtWebKit does not link with --3d-canvas using MinGW + https://bugs.webkit.org/show_bug.cgi?id=57225 + + * QtWebKit.pro: Append the OpenGL libraries on MinGW so it can resolve symbols. + +2011-03-28 Csaba Osztrogonác <ossy@webkit.org> + + Reviewed by Andreas Kling. + + REGRESSION(r54712): [Qt] Installed QtWebKit header does not compile. + https://bugs.webkit.org/show_bug.cgi?id=57183 + + Windows buildfix after r82065. + + * Api/DerivedSources.pro: Readding escaping on Windows platforms. + +2011-03-27 Andreas Kling <kling@webkit.org> + + Fix build warning about IconDatabaseClient.h (wrong path.) + + * QtWebKit.pro: + +2011-03-27 Andreas Kling <kling@webkit.org> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Support for CSS color and background-color properties on select element's dropdown list + https://bugs.webkit.org/show_bug.cgi?id=51627 + + Extend the QWebSelectData interface with background and foreground colors + for the whole menu, as well as per-item. Hook it up to the PopupMenuStyle + getters in RenderMenuList. + + * Api/qwebkitplatformplugin.h: + * WebCoreSupport/PopupMenuQt.cpp: + (SelectData::backgroundColor): + (SelectData::foregroundColor): + (SelectData::itemBackgroundColor): + (SelectData::itemForegroundColor): + * WebCoreSupport/QtFallbackWebPopup.cpp: + (WebCore::QtFallbackWebPopup::show): + (WebCore::QtFallbackWebPopup::populate): + +2011-03-27 Yi Shen <yi.4.shen@nokia.com> + + Reviewed by Andreas Kling. + + [Qt][Symbian] Fix Api test failure -- microFocusCoordinates + https://bugs.webkit.org/show_bug.cgi?id=57108 + + Since the canvas is not self-closing tag, we need to add '</canvas>'. + + * tests/qgraphicswebview/tst_qgraphicswebview.cpp: + (tst_QGraphicsWebView::microFocusCoordinates): + * tests/qwebview/tst_qwebview.cpp: + (tst_QWebView::microFocusCoordinates): + +2011-03-27 Kwang Yul Seo <skyul@company100.net> + + Reviewed by Eric Seidel. + + [Qt] Build fix: Define WTF_USE_TEXTURE_MAPPER=1 when CONFIG contains texmap. + https://bugs.webkit.org/show_bug.cgi?id=57143 + + Qt WebKit uses USE(TEXTURE_MAPPER) guard. Check texmap in CONFIG and + define WTF_USE_TEXTURE_MAPPER=1. + + * QtWebKit.pro: + +2011-03-27 Andreas Kling <kling@webkit.org> + + Reviewed by Benjamin Poulain. + + REGRESSION(r54712): [Qt] Installed QtWebKit header does not compile. + https://bugs.webkit.org/show_bug.cgi?id=57183 + + The convenience <QtWebKit> header would include \<QtNetwork/QtNetwork\> + which was due to the outputting code previously being wrapped in eval(). + + * Api/DerivedSources.pro: + +2011-03-27 Benjamin Poulain <benjamin.poulain@nokia.com> + + Reviewed by Andreas Kling. + + [Qt] QtWebKit will not compile with QT_ASCII_CAST_WARNINGS enabled + https://bugs.webkit.org/show_bug.cgi?id=57087 + + Use explicit conversion for string to avoid depending on the default codec + installed by the user code. + + * Api/qwebkitversion.cpp: + (qWebKitVersion): + * Api/qwebpage.cpp: + (QWebPagePrivate::dynamicPropertyChangeEvent): + (QWebPage::javaScriptConsoleMessage): + * WebCoreSupport/DumpRenderTreeSupportQt.cpp: + (convertToPropertyName): + (DumpRenderTreeSupportQt::setEditingBehavior): + (DumpRenderTreeSupportQt::plainText): + * WebCoreSupport/EditorClientQt.cpp: + (dumpRange): + * WebCoreSupport/FrameLoaderClientQt.cpp: + (drtDescriptionSuitableForTestResult): + (WebCore::FrameLoaderClientQt::dispatchDecidePolicyForNavigationAction): + * WebCoreSupport/InspectorClientQt.cpp: + (WebCore::InspectorClientQt::openInspectorFrontend): + * WebCoreSupport/InspectorServerQt.cpp: + (WebCore::parseWebSocketChallengeNumber): + (WebCore::InspectorServerRequestHandlerQt::tcpReadyRead): + +2011-03-26 Andreas Kling <kling@webkit.org> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] QWebFrame::iconChanged() not emitted when icon is cached but not yet loaded + https://bugs.webkit.org/show_bug.cgi?id=57157 + + Add an IconDatabaseClient for the Qt port to ensure that QWebFrame::iconChanged() + is always emitted when appropriate. + + * QtWebKit.pro: Add new files. + + * WebCoreSupport/IconDatabaseClientQt.h: Added. + * WebCoreSupport/IconDatabaseClientQt.cpp: Added. + (WebCore::IconDatabaseClientQt::instance): + (WebCore::IconDatabaseClientQt::IconDatabaseClientQt): + (WebCore::IconDatabaseClientQt::~IconDatabaseClientQt): + (WebCore::IconDatabaseClientQt::performImport): + (WebCore::IconDatabaseClientQt::didRemoveAllIcons): + (WebCore::IconDatabaseClientQt::didImportIconURLForPageURL): + (WebCore::IconDatabaseClientQt::didImportIconDataForPageURL): + (WebCore::IconDatabaseClientQt::didChangeIconForPageURL): + (WebCore::IconDatabaseClientQt::didFinishURLImport): + + * WebCoreSupport/FrameLoaderClientQt.h: + * WebCoreSupport/FrameLoaderClientQt.cpp: + (WebCore::FrameLoaderClientQt::registerForIconNotification): + (WebCore::FrameLoaderClientQt::onIconLoadedForPageURL): New slot connected + to the IconDatabaseClientQt::iconLoadedForPageURL() signal. This emits the + QWebFrame::iconChanged() signal when the IconDatabases finishes loading + a cached favicon for the frame's URL. + + * Api/qwebsettings.cpp: + (QWebSettings::setIconDatabasePath): Make sure that IconDatabaseClientQt is + instantiated. An IconDatabaseClient has to be registered before the IconDatabase + spawns its reader thread. + +2011-03-25 Andy Estes <aestes@apple.com> + + Reviewed by Adele Peterson. + + REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js + https://bugs.webkit.org/show_bug.cgi?id=49016 + + Update objectContentType() implementation to handle the + shouldPreferPlugInsForImages flag. + + * WebCoreSupport/FrameLoaderClientQt.cpp: + (WebCore::FrameLoaderClientQt::objectContentType): + * WebCoreSupport/FrameLoaderClientQt.h: + +2011-03-25 Chang Shu <cshu@webkit.org> + + Reviewed by Ryosuke Niwa. + + rename Node::isContentEditable and all call sites to rendererIsEditable + https://bugs.webkit.org/show_bug.cgi?id=54290 + + This is part of the effort to separate JS API HTMLElement isContentEditable from + internal Node::rendererIsEditable. + + * WebCoreSupport/EditorClientQt.cpp: + (WebCore::EditorClientQt::handleKeyboardEvent): + +2011-03-25 Alexis Menard <alexis.menard@openbossa.org> + + Reviewed by Andreas Kling. + + [Qt] The keyboard shortcuts during fullscreen playback do not work. + https://bugs.webkit.org/show_bug.cgi?id=57095 + + We need to explicitely set the focus on the widget in order to receive the keyboard events. + + * WebCoreSupport/FullScreenVideoWidget.cpp: + (WebCore::FullScreenVideoWidget::show): + +2011-03-24 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r81916 and r81917. + http://trac.webkit.org/changeset/81916 + http://trac.webkit.org/changeset/81917 + https://bugs.webkit.org/show_bug.cgi?id=57071 + + broke a test on platforms that do not have QuickTime installed + (Requested by estes on #webkit). + + * WebCoreSupport/FrameLoaderClientQt.cpp: + (WebCore::FrameLoaderClientQt::objectContentType): + * WebCoreSupport/FrameLoaderClientQt.h: + +2011-03-24 Andy Estes <aestes@apple.com> + + Reviewed by Darin Adler. + + REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js + https://bugs.webkit.org/show_bug.cgi?id=49016 + + Update objectContentType() implementation to handle the + shouldPreferPlugInsForImages flag. + + * WebCoreSupport/FrameLoaderClientQt.cpp: + (WebCore::FrameLoaderClientQt::objectContentType): + * WebCoreSupport/FrameLoaderClientQt.h: + +2011-03-24 Benjamin Poulain <benjamin.poulain@nokia.com> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] When we render WebGL offscreen, color conversion cost a lot of CPU cycles + https://bugs.webkit.org/show_bug.cgi?id=40884 + + Add tests and benchmarks for the software fallback of WebGL. + + * tests/benchmarks/webgl/10000_triangles.html: Added. + * tests/benchmarks/webgl/tst_webgl.cpp: Added. + (GraphicsView::GraphicsView): + (GraphicsView::resizeEvent): + (tst_WebGlPerformance::init): + (tst_WebGlPerformance::cleanup): + (tst_WebGlPerformance::benchSoftwareFallbackRgb16): + (tst_WebGlPerformance::benchSoftwareFallbackRgb32): + (tst_WebGlPerformance::benchSoftwareFallbackArgb32): + (tst_WebGlPerformance::benchSoftwareFallbackArgb32Premultiplied): + (tst_WebGlPerformance::benchmarkFrameRenderingOnImage): + * tests/benchmarks/webgl/tst_webgl.qrc: Added. + * tests/benchmarks/webgl/webgl.pro: Added. + * tests/qgraphicswebview/qgraphicswebview.pro: + * tests/qgraphicswebview/resources/pointing_right.html: Added. + * tests/qgraphicswebview/resources/pointing_up.html: Added. + * tests/qgraphicswebview/tst_qgraphicswebview.cpp: + (compareImagesFuzzyPixelCount): + (GraphicsView::GraphicsView): + (tst_QGraphicsWebView::webglSoftwareFallbackVerticalOrientation): + (tst_QGraphicsWebView::webglSoftwareFallbackHorizontalOrientation): + (tst_QGraphicsWebView::compareCanvasToImage): + * tests/qgraphicswebview/tst_qgraphicswebview.qrc: + * tests/tests.pro: + +2011-03-24 Kristian Amlie <kristian.amlie@nokia.com> + + Reviewed by Benjamin Poulain. + + Avoided ASCII-cast warnings for WebKit. + + Normally they won't be enabled anyway, but if you build webkit from + within the Qt mother repository it will pick up Qt's default build + settings, which do enable it. We need to disable them because + warnings are treated as errors and there are way too many of them in + the WebKit code. + + [Qt] Avoid ASCII-cast warnings for WebKit. + https://bugs.webkit.org/show_bug.cgi?id=57016 + + * QtWebKit.pro: + +2011-03-24 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + Reviewed by Benjamin Poulain. + + [Qt] Resetting the URL property of a QWebView results in the current directory being set as file::-type URL + https://bugs.webkit.org/show_bug.cgi?id=29595 + + Qt Designer resets the URL by setting it to QUrl(). The bug was caused by + ensureAbsoluteUrl() helper function treating the empty URL as a relative URL, and + prepending the current directory. + + By fixing this, now we can pass QUrl() invalid and empty URLs to WebCore layer, which + will end up loading "about:blank", but keeping it as a requested URL. + + This patch also simplifies the logic for requestedUrl(), since m_lastRequestedUrl + is filled for the loaded URLs as well, we can use it in every case. + + Three new autotests were added, to better cover the expected behavior of setting + the QUrl() in a QWebFrame. + + * Api/qwebframe.cpp: + (ensureAbsoluteUrl): do not treat invalid URLs (empty included) as relative. + (QWebFrame::requestedUrl): always use m_lastRequestedUrl. + + * WebCoreSupport/FrameLoaderClientQt.cpp: + (WebCore::FrameLoaderClientQt::dispatchDidFinishLoad): do not clear m_lastRequestedUrl + anymore, since we always rely on it even for loaded frames. + + * tests/qwebframe/tst_qwebframe.cpp: + (tst_QWebFrame::setUrlToEmpty): verify the behavior of setting empty URLs. This includes + the reduction of the bug report. + (tst_QWebFrame::setUrlToInvalid): setting invalid, but not necessarily empty, URLs. + (tst_QWebFrame::setUrlHistory): to verify how setting empty URLs affect history. + +2011-03-23 Brady Eidson <beidson@apple.com> + + Reviewed by Sam Weinig. + + Change IconDatabase opening to allow for arbitrary filenames + https://bugs.webkit.org/show_bug.cgi?id=56977 + + * Api/qwebsettings.cpp: + (QWebSettings::setIconDatabasePath): + +2011-03-23 Aparna Nandyal <aparna.nand@wipro.com> + + Reviewed by Andreas Kling. + + [Qt] QtWebKit rendering problem when maximizing and doing a back + https://bugs.webkit.org/show_bug.cgi?id=56669 + + Added an auto test. + Patch by Alexis Menard < alexis.menard@nokia.com> on 2011-03-21 + + * tests/qwebview/tst_qwebview.cpp: + (tst_QWebView::rendering): + +2011-03-23 Yury Semikhatsky <yurys@chromium.org> + + Reviewed by Pavel Feldman. + + [V8] Web Inspector: compile DebuggerScript.js into DebuggerScriptSource.h + https://bugs.webkit.org/show_bug.cgi?id=56843 + + * WebCoreSupport/InspectorClientQt.cpp: + (WebCore::InspectorClientQt::openInspectorFrontend): + +2011-03-22 Andrew Wason <rectalogic@rectalogic.com> + + Reviewed by Benjamin Poulain. + + [Qt] QWebPage with WebGL content crashes when rendering if no QWebView parent + https://bugs.webkit.org/show_bug.cgi?id=54138 + + * tests/qwebpage/tst_qwebpage.cpp: + (webGLScreenshotWithoutView): + (tst_QWebPage::acceleratedWebGLScreenshotWithoutView): + (tst_QWebPage::unacceleratedWebGLScreenshotWithoutView): + Render a QWebPage (with and without accelerated compositing) + with a WebGL context that has no owning view. Shouldn't crash. + +2011-03-21 Chang Shu <cshu@webkit.org> + + Reviewed by Alexey Proskuryakov. + + REGRESSION (r79953): Can't type in MS Outlook 2011 + https://bugs.webkit.org/show_bug.cgi?id=56665 + + r79953 removed the WebView level editablity which is persistent no matter whether + underlying document itself is changed and editability gets lost. The resolution is to + set this WebView editable value to WebCore. This avoids the callback from WebCore to + WebKit which was the main goal in r79953 to improve performance. + + * Api/qwebpage.cpp: + (QWebPage::setContentEditable): + (QWebPage::isContentEditable): + +2011-03-19 Andreas Kling <kling@webkit.org> + + Reviewed by Benjamin Poulain. + + [Qt] Remove support for Qt 4.6 + https://bugs.webkit.org/show_bug.cgi?id=56712 + + * Api/qwebframe.cpp: + (QWebFrame::load): + * Api/qwebpage.cpp: + (QWebPagePrivate::QWebPagePrivate): + * Api/qwebsettings.cpp: + (QWebSettings::QWebSettings): + * WebCoreSupport/GeolocationClientQt.cpp: + (WebCore::GeolocationClientQt::positionUpdated): + +2011-03-19 Andreas Kling <kling@webkit.org> + + Reviewed by Antonio Gomes. + + [Qt][Doc] QWebPage::unsupportedContent() passes ownership of the QNetworkReply + https://bugs.webkit.org/show_bug.cgi?id=56711 + + Document the fact that when unsupportedContent(QNetworkReply*) is emitted, + ownership of the reply is transferred to the receiving slot. + + * Api/qwebpage.cpp: + +2011-03-17 Brady Eidson <beidson@apple.com> + + Reviewed by Sam Weinig. + + https://bugs.webkit.org/show_bug.cgi?id=56425 + More groundwork for WebKit2 IconDatabase + + Update already-used function names: + * Api/qwebhistory.cpp: + (QWebHistoryItem::icon): + * Api/qwebsettings.cpp: + (QWebSettings::iconForUrl): + +2011-03-18 Alexis Menard <alexis.menard@openbossa.org> + + Reviewed by Benjamin Poulain. + + [Qt] console.log not being exposed to QmlViewer + https://bugs.webkit.org/show_bug.cgi?id=56536 + + The documentation is bogus the feature does not exist. + + * declarative/qdeclarativewebview.cpp: + +2011-03-17 Andreas Kling <kling@webkit.org> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] QML WebView emits iconChanged() when the page title changes + https://bugs.webkit.org/show_bug.cgi?id=56570 + + * declarative/qdeclarativewebview.cpp: + (QDeclarativeWebView::setPage): Don't forward the frame's titleChanged + signal to the view's iconChanged signal. + +2011-03-17 Alexis Menard <alexis.menard@openbossa.org> + + Reviewed by Benjamin Poulain. + + [Qt] Videos look ugly when using QGraphicsWebView. + https://bugs.webkit.org/show_bug.cgi?id=56580 + + We need to set QPainter::SmoothPixmapTransform on the painter for a proper rendering of the video. + QWebView does it but not QGraphicsWebView because the API does not exist. This patch is fixing it + by introducing the same API as QWebView to control the renderHints of the item. Unlike QWebView + QGraphicsWebView inherits the painter from QGraphicsScene and those flags are not set. This patch + ensure that before rendering the item we add QPainter::SmoothPixmapTransform and QPainter::TextAntialiasing + in addition of what could be set on the painter. In order to not break the rendering of all the items in the + scene we set back the painter to its original state when QGraphicsWebView is rendered. + + * Api/qgraphicswebview.cpp: + (QGraphicsWebViewPrivate::QGraphicsWebViewPrivate): + (QGraphicsWebView::paint): + (QGraphicsWebView::renderHints): + (QGraphicsWebView::setRenderHints): + (QGraphicsWebView::setRenderHint): + * Api/qgraphicswebview.h: + * tests/qgraphicswebview/tst_qgraphicswebview.cpp: + (tst_QGraphicsWebView::renderHints): + +2011-03-16 Joseph Pecoraro <joepeck@webkit.org> + + Reviewed by Kenneth Rohde Christiansen. + + Viewport no longer allows an auto value for "user-scalable" + https://bugs.webkit.org/show_bug.cgi?id=55416 + + Make the default value for userScalable be true. + + * Api/qwebpage.cpp: + (QWebPage::viewportAttributesForSize): + * WebCoreSupport/DumpRenderTreeSupportQt.cpp: + (DumpRenderTreeSupportQt::viewportAsText): update test output to include userScalable. + +2011-03-15 Kevin Ollivier <kevino@theolliviers.com> + + Reviewed by Darin Adler. + + Introduce WTF_USE_EXPORT_MACROS, which will allow us to put shared library import/export + info into the headers rather than in export symbol definition files, but disable it on + all platforms initially so we can deal with port build issues one port at a time. + + https://bugs.webkit.org/show_bug.cgi?id=27551 + + * WebCoreSupport/GeolocationClientQt.cpp: + * WebCoreSupport/PopupMenuQt.cpp: + +2011-03-14 Brady Eidson <beidson@apple.com> + + Reviewed by Anders Carlsson. + + https://bugs.webkit.org/show_bug.cgi?id=56320 + Remove HistoryItem::icon() and the WebCore dependency on "IconDatabaseBase::defaultIcon()" + + * Api/qwebhistory.cpp: + (QWebHistoryItem::icon): Use IconDatabase directly. + +2011-03-11 Brady Eidson <beidson@apple.com> + + Reviewed by attempt at build fix! + + https://bugs.webkit.org/show_bug.cgi?id=56216 + Fix the Qt build following the same pattern of the patch. + + * Api/qwebsettings.cpp: + (QWebSettings::setIconDatabasePath): Call the static method via IconDatabase:: and not via iconDatabase() + +2011-03-11 Alexis Menard <alexis.menard@openbossa.org> + + Reviewed by Ariya Hidayat. + + [Qt] Entering fullscreen and leaving it may hide the cursor of the application. + https://bugs.webkit.org/show_bug.cgi?id=56181 + + We need to stop the auto hide cursor timer when closing the widget otherwise the timer + might get fired and therefore hide the cursor even when the fullscreen widget is closed. + + * WebCoreSupport/FullScreenVideoWidget.cpp: + (WebCore::FullScreenVideoWidget::closeEvent): + +2011-03-10 David Boddie <david.boddie@nokia.com> + + Reviewed by Andreas Kling. + + Fixed a qdoc warning and terminology (WebKit instead of Webkit). + https://bugs.webkit.org/show_bug.cgi?id=55756 + + * Api/qwebhistoryinterface.cpp: + +2011-03-10 Andreas Kling <kling@webkit.org> + + Unreviewed build fix after r80774. + + QML property versioning is introduced in Qt 4.7.3, not 4.7.2. + See also: http://bugreports.qt.nokia.com/browse/QTBUG-13451 + + * declarative/plugin.cpp: + (WebKitQmlPlugin::registerTypes): + * declarative/qdeclarativewebview.cpp: + * declarative/qdeclarativewebview_p.h: + * tests/qdeclarativewebview/tst_qdeclarativewebview.cpp: + +2011-03-10 Alexis Menard <alexis.menard@openbossa.org> + + Reviewed by Andreas Kling. + + [Qt] QtDeclarative Webview element has a fixed white background + https://bugs.webkit.org/show_bug.cgi?id=40918 + + Implement a way to change the background color of the WebView QML element. + This feature is activated for QtWebKit 1.1 version of the plugin. + + * declarative/plugin.cpp: + (WebKitQmlPlugin::registerTypes): + * declarative/qdeclarativewebview.cpp: + (QDeclarativeWebView::backgroundColor): + (QDeclarativeWebView::setBackgroundColor): + * declarative/qdeclarativewebview_p.h: + * tests/qdeclarativewebview/resources/webviewbackgroundcolor.qml: Added. + * tests/qdeclarativewebview/tst_qdeclarativewebview.cpp: + (tst_QDeclarativeWebView::backgroundColor): + * tests/qdeclarativewebview/tst_qdeclarativewebview.qrc: + +2011-03-10 Stanislav Paltis <Stanislav.Paltis@nokia.com> + + Reviewed by Laszlo Gombos. + + [Qt] MemoryCache deadDecodedDataDeletionInterval is not exposed for client's usage + https://bugs.webkit.org/show_bug.cgi?id=55945 + + Added handling of dynamic/runtime property _q_deadDecodedDataDeletionInterval to + set interval used to trigger when decoded data in dead list of object cache will + be purged from object cache. + + * Api/qwebpage.cpp: + (QWebPagePrivate::dynamicPropertyChangeEvent): + +2011-03-10 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + Reviewed by Antonio Gomes. + + Simplify how QWebFrame::requestedUrl() is obtained + https://bugs.webkit.org/show_bug.cgi?id=55842 + + When a load starts, store the requested URL until we know that it'll be + available for us in the document loader -- after load finished. + + The existing auto tests cover the three different code paths in + requestedUrl() and the new code passes the autotests. In each of those + cases, we looked for the information in a different place, but in all + of them, dispatchDidStartProvisionalLoad was called. + + This simplification will be useful to fix bug 32723. The way requestedUrl() + is implementent, we can't use it as a fallback for url() when the setUrl() + was called with an invalid URL. + + * Api/qwebframe.cpp: + (QWebFrame::requestedUrl): + * WebCoreSupport/FrameLoaderClientQt.cpp: + (WebCore::FrameLoaderClientQt::dispatchDidStartProvisionalLoad): + (WebCore::FrameLoaderClientQt::dispatchDidFinishLoad): + * WebCoreSupport/FrameLoaderClientQt.h: + (WebCore::FrameLoaderClientQt::lastRequestedUrl): + +2011-03-10 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Kenneth Rohde Christiansen. + + Tiled backing store's delegated scroll request uses incorrect convention + https://bugs.webkit.org/show_bug.cgi?id=56011 + + Adapt internal API to match the change from delta to point on the + WebCore side, and convert the point to a delta for the public API. + + * WebCoreSupport/ChromeClientQt.cpp: + (WebCore::ChromeClientQt::delegatedScrollRequested): + * WebCoreSupport/ChromeClientQt.h: + +2011-03-09 Peter Kasting <pkasting@google.com> + + Reviewed by Mihai Parparita. + + Unify Windows version checks. + https://bugs.webkit.org/show_bug.cgi?id=55979 + + * Api/qwebpage.cpp: + (QWebPage::userAgentForUrl): + 2011-03-07 Sam Weinig <sam@webkit.org> Reviewed by Anders Carlsson. diff --git a/Source/WebKit/qt/QtWebKit.pro b/Source/WebKit/qt/QtWebKit.pro index 4b7bb05..8836c4a 100644 --- a/Source/WebKit/qt/QtWebKit.pro +++ b/Source/WebKit/qt/QtWebKit.pro @@ -42,6 +42,11 @@ isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../.. contains(QT_CONFIG, embedded):CONFIG += embedded +win32*:!win32-msvc* { + # Make sure OpenGL libs are after the webcore lib so MinGW can resolve symbols + contains(DEFINES, ENABLE_WEBGL=1)|contains(CONFIG, texmap): LIBS += $$QMAKE_LIBS_OPENGL +} + moduleFile=$$PWD/qt_webkit_version.pri isEmpty(QT_BUILD_TREE):include($$moduleFile) VERSION = $${QT_WEBKIT_MAJOR_VERSION}.$${QT_WEBKIT_MINOR_VERSION}.$${QT_WEBKIT_PATCH_VERSION} @@ -82,6 +87,7 @@ CONFIG(QTDIR_build) { symbian: TARGET =$$TARGET$${QT_LIBINFIX} } + symbian { TARGET.EPOCALLOWDLLDATA=1 # DRM and Allfiles capabilites need to be audited to be signed on Symbian @@ -215,6 +221,15 @@ contains(DEFINES, ENABLE_VIDEO=1) { } } +contains(DEFINES, ENABLE_ICONDATABASE=1) { + HEADERS += \ + $$SOURCE_DIR/WebCore/loader/icon/IconDatabaseClient.h \ + $$PWD/WebCoreSupport/IconDatabaseClientQt.h + + SOURCES += \ + $$PWD/WebCoreSupport/IconDatabaseClientQt.cpp +} + contains(DEFINES, ENABLE_DEVICE_ORIENTATION=1) { HEADERS += \ $$PWD/WebCoreSupport/DeviceMotionClientQt.h \ @@ -238,6 +253,10 @@ contains(DEFINES, ENABLE_GEOLOCATION=1) { $$PWD/WebCoreSupport/GeolocationClientQt.cpp } +contains(CONFIG, texmap) { + DEFINES += WTF_USE_TEXTURE_MAPPER=1 +} + !symbian-abld:!symbian-sbsv2 { modfile.files = $$moduleFile modfile.path = $$[QMAKE_MKSPECS]/modules diff --git a/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp index c784375..bec4bc4 100644 --- a/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp +++ b/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp @@ -411,7 +411,7 @@ void ChromeClientQt::invalidateContentsAndWindow(const IntRect& windowRect, bool if (!rect.isEmpty()) platformPageClient()->update(rect); } - emit m_webPage->repaintRequested(windowRect); + QMetaObject::invokeMethod(m_webPage, "repaintRequested", Qt::QueuedConnection, Q_ARG(QRect, windowRect)); // FIXME: There is no "immediate" support for window painting. This should be done always whenever the flag // is set. @@ -430,9 +430,10 @@ void ChromeClientQt::scroll(const IntSize& delta, const IntRect& scrollViewRect, } #if ENABLE(TILED_BACKING_STORE) -void ChromeClientQt::delegatedScrollRequested(const IntSize& delta) +void ChromeClientQt::delegatedScrollRequested(const IntPoint& point) { - emit m_webPage->scrollRequested(delta.width(), delta.height(), QRect(QPoint(0, 0), m_webPage->viewportSize())); + QPoint currentPosition(m_webPage->mainFrame()->scrollPosition()); + emit m_webPage->scrollRequested(point.x() - currentPosition.x(), point.y() - currentPosition.y(), QRect(QPoint(0, 0), m_webPage->viewportSize())); } #endif diff --git a/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h b/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h index 27327ef..a12c2ec 100644 --- a/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h +++ b/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h @@ -120,7 +120,7 @@ namespace WebCore { virtual void invalidateContentsForSlowScroll(const IntRect&, bool); virtual void scroll(const IntSize& scrollDelta, const IntRect& rectToScroll, const IntRect& clipRect); #if ENABLE(TILED_BACKING_STORE) - virtual void delegatedScrollRequested(const IntSize& scrollDelta); + virtual void delegatedScrollRequested(const IntPoint& scrollPoint); #endif virtual IntPoint screenToWindow(const IntPoint&) const; diff --git a/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp b/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp index c0017a2..ba712d1 100644 --- a/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp +++ b/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp @@ -531,7 +531,7 @@ QString DumpRenderTreeSupportQt::markerTextForListItem(const QWebElement& listIt static QString convertToPropertyName(const QString& name) { - QStringList parts = name.split('-'); + QStringList parts = name.split(QLatin1Char('-')); QString camelCaseName; for (int j = 0; j < parts.count(); ++j) { QString part = parts.at(j); @@ -626,11 +626,11 @@ void DumpRenderTreeSupportQt::setEditingBehavior(QWebPage* page, const QString& { WebCore::EditingBehaviorType coreEditingBehavior; - if (editingBehavior == "win") + if (editingBehavior == QLatin1String("win")) coreEditingBehavior = EditingWindowsBehavior; - else if (editingBehavior == "mac") + else if (editingBehavior == QLatin1String("mac")) coreEditingBehavior = EditingMacBehavior; - else if (editingBehavior == "unix") + else if (editingBehavior == QLatin1String("unix")) coreEditingBehavior = EditingUnixBehavior; else { ASSERT_NOT_REACHED(); @@ -742,12 +742,13 @@ QString DumpRenderTreeSupportQt::viewportAsText(QWebPage* page, int deviceDPI, c availableSize); QString res; - res = res.sprintf("viewport size %dx%d scale %f with limits [%f, %f]\n", + res = res.sprintf("viewport size %dx%d scale %f with limits [%f, %f] and userScalable %f\n", conf.layoutSize.width(), conf.layoutSize.height(), conf.initialScale, conf.minimumScale, - conf.maximumScale); + conf.maximumScale, + conf.userScalable); return res; } @@ -922,10 +923,10 @@ void DumpRenderTreeSupportQt::simulateDesktopNotificationClick(const QString& ti QString DumpRenderTreeSupportQt::plainText(const QVariant& range) { QMap<QString, QVariant> map = range.toMap(); - QVariant startContainer = map.value("startContainer"); + QVariant startContainer = map.value(QLatin1String("startContainer")); map = startContainer.toMap(); - return map.value("innerText").toString(); + return map.value(QLatin1String("innerText")).toString(); } QVariantList DumpRenderTreeSupportQt::nodesFromRect(const QWebElement& document, int x, int y, unsigned top, unsigned right, unsigned bottom, unsigned left, bool ignoreClipping) @@ -949,6 +950,7 @@ QVariantList DumpRenderTreeSupportQt::nodesFromRect(const QWebElement& document, return res; } +// API Candidate? QString DumpRenderTreeSupportQt::responseMimeType(QWebFrame* frame) { WebCore::Frame* coreFrame = QWebFramePrivate::core(frame); @@ -1038,6 +1040,18 @@ QUrl DumpRenderTreeSupportQt::mediaContentUrlByElementId(QWebFrame* frame, const return res; } +// API Candidate? +void DumpRenderTreeSupportQt::setAlternateHtml(QWebFrame* frame, const QString& html, const QUrl& baseUrl, const QUrl& failingUrl) +{ + KURL kurl(baseUrl); + WebCore::Frame* coreFrame = QWebFramePrivate::core(frame); + WebCore::ResourceRequest request(kurl); + const QByteArray utf8 = html.toUtf8(); + WTF::RefPtr<WebCore::SharedBuffer> data = WebCore::SharedBuffer::create(utf8.constData(), utf8.length()); + WebCore::SubstituteData substituteData(data, WTF::String("text/html"), WTF::String("utf-8"), failingUrl); + coreFrame->loader()->load(request, substituteData, false); +} + // Provide a backward compatibility with previously exported private symbols as of QtWebKit 4.6 release void QWEBKIT_EXPORT qt_resumeActiveDOMObjects(QWebFrame* frame) diff --git a/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h b/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h index 1e7b275..78752d8 100644 --- a/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h +++ b/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h @@ -198,6 +198,7 @@ public: static void setMinimumTimerInterval(QWebPage*, double); static QUrl mediaContentUrlByElementId(QWebFrame*, const QString& elementId); + static void setAlternateHtml(QWebFrame*, const QString& html, const QUrl& baseUrl, const QUrl& failingUrl); }; #endif diff --git a/Source/WebKit/qt/WebCoreSupport/EditorClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/EditorClientQt.cpp index cf2fa41..e7bbd2c 100644 --- a/Source/WebKit/qt/WebCoreSupport/EditorClientQt.cpp +++ b/Source/WebKit/qt/WebCoreSupport/EditorClientQt.cpp @@ -76,9 +76,9 @@ static QString dumpRange(WebCore::Range *range) return QLatin1String("(null)"); WebCore::ExceptionCode code; - QString str = QString("range from %1 of %2 to %3 of %4") - .arg(range->startOffset(code)).arg(dumpPath(range->startContainer(code))) - .arg(range->endOffset(code)).arg(dumpPath(range->endContainer(code))); + QString str = QString::fromLatin1("range from %1 of %2 to %3 of %4") + .arg(range->startOffset(code)).arg(dumpPath(range->startContainer(code))) + .arg(range->endOffset(code)).arg(dumpPath(range->endContainer(code))); return str; } @@ -420,7 +420,7 @@ void EditorClientQt::handleKeyboardEvent(KeyboardEvent* event) return; // FIXME: refactor all of this to use Actions or something like them - if (start->isContentEditable()) { + if (start->rendererIsEditable()) { bool doSpatialNavigation = false; if (isSpatialNavigationEnabled(frame)) { if (!kevent->modifiers()) { @@ -530,8 +530,22 @@ void EditorClientQt::handleKeyboardEvent(KeyboardEvent* event) #endif // QT_NO_SHORTCUT } -void EditorClientQt::handleInputMethodKeydown(KeyboardEvent*) +void EditorClientQt::handleInputMethodKeydown(KeyboardEvent* event) { +#ifndef QT_NO_SHORTCUT + const PlatformKeyboardEvent* kevent = event->keyEvent(); + if (kevent->type() == PlatformKeyboardEvent::RawKeyDown) { + QWebPage::WebAction action = QWebPagePrivate::editorActionForKeyEvent(kevent->qtEvent()); + switch (action) { + case QWebPage::InsertParagraphSeparator: + case QWebPage::InsertLineSeparator: + m_page->triggerAction(action); + break; + default: + break; + } + } +#endif } EditorClientQt::EditorClientQt(QWebPage* page) diff --git a/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp index 5cab6a7..d318494 100644 --- a/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp +++ b/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp @@ -1,6 +1,6 @@ /* * Copyright (C) 2006 Zack Rusin <zack@kde.org> - * Copyright (C) 2006 Apple Computer, Inc. All rights reserved. + * Copyright (C) 2006, 2011 Apple Inc. All rights reserved. * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies) * Copyright (C) 2008 Collabora Ltd. All rights reserved. * Coypright (C) 2008 Holger Hans Peter Freyther @@ -40,6 +40,9 @@ #include "FrameView.h" #include "DocumentLoader.h" #include "HitTestResult.h" +#if ENABLE(ICONDATABASE) +#include "IconDatabaseClientQt.h" +#endif #if USE(JSC) #include "JSDOMWindowBase.h" #elif USE(V8) @@ -119,7 +122,7 @@ static QString drtDescriptionSuitableForTestResult(const WebCore::KURL& _url) if (_url.isEmpty() || !_url.isLocalFile()) return _url.string(); // Remove the leading path from file urls - return QString(_url.string()).replace(WebCore::FrameLoaderClientQt::dumpResourceLoadCallbacksPath, "").mid(1); + return QString(_url.string()).remove(WebCore::FrameLoaderClientQt::dumpResourceLoadCallbacksPath).mid(1); } static QString drtDescriptionSuitableForTestResult(const WebCore::ResourceError& error) @@ -147,17 +150,17 @@ static QString drtDescriptionSuitableForTestResult(const RefPtr<WebCore::Node> n { QString result; if (exception) { - result.append("ERROR"); + result.append(QLatin1String("ERROR")); return result; } if (!node) { - result.append("NULL"); + result.append(QLatin1String("NULL")); return result; } result.append(node->nodeName()); RefPtr<WebCore::Node> parent = node->parentNode(); if (parent) { - result.append(" > "); + result.append(QLatin1String(" > ")); result.append(drtDescriptionSuitableForTestResult(parent, 0)); } return result; @@ -437,6 +440,8 @@ void FrameLoaderClientQt::dispatchDidStartProvisionalLoad() if (dumpUserGestureInFrameLoaderCallbacks) printf("%s - in didStartProvisionalLoadForFrame\n", qPrintable(drtPrintFrameUserGestureStatus(m_frame))); + m_lastRequestedUrl = m_frame->loader()->activeDocumentLoader()->requestURL(); + if (m_webFrame) emit m_webFrame->provisionalLoad(); } @@ -481,7 +486,7 @@ void FrameLoaderClientQt::dispatchDidCommitLoad() // We should assume first the frame has no title. If it has, then the above dispatchDidReceiveTitle() // will be called very soon with the correct title. // This properly resets the title when we navigate to a URI without a title. - emit titleChanged(String()); + emit titleChanged(QString()); bool isMainFrame = (m_frame == m_frame->page()->mainFrame()); if (!isMainFrame) @@ -769,11 +774,25 @@ void FrameLoaderClientQt::didPerformFirstNavigation() const m_webFrame->page()->d->updateNavigationActions(); } -void FrameLoaderClientQt::registerForIconNotification(bool) +void FrameLoaderClientQt::registerForIconNotification(bool shouldRegister) { - notImplemented(); +#if ENABLE(ICONDATABASE) + if (shouldRegister) + connect(IconDatabaseClientQt::instance(), SIGNAL(iconLoadedForPageURL(QString)), this, SLOT(onIconLoadedForPageURL(QString)), Qt::UniqueConnection); + else + disconnect(IconDatabaseClientQt::instance(), SIGNAL(iconLoadedForPageURL(QString)), this, SLOT(onIconLoadedForPageURL(QString))); +#endif } +void FrameLoaderClientQt::onIconLoadedForPageURL(const QString& url) +{ +#if ENABLE(ICONDATABASE) + if (m_webFrame && m_webFrame->url() == url) + emit m_webFrame->iconChanged(); +#endif +} + + void FrameLoaderClientQt::updateGlobalHistory() { QWebHistoryInterface *history = QWebHistoryInterface::defaultInterface(); @@ -1210,7 +1229,7 @@ void FrameLoaderClientQt::dispatchDecidePolicyForNavigationAction(FramePolicyFun printf("Policy delegate: attempt to load %s with navigation type '%s'%s\n", qPrintable(drtDescriptionSuitableForTestResult(request.url())), navigationTypeToString(action.type()), - (node) ? qPrintable(QString(" originating from " + drtDescriptionSuitableForTestResult(node, 0))) : ""); + (node) ? qPrintable(QString::fromLatin1(" originating from ") + drtDescriptionSuitableForTestResult(node, 0)) : ""); if (policyDelegatePermissive) result = PolicyUse; @@ -1310,18 +1329,18 @@ void FrameLoaderClientQt::transferLoadingResourceFromPage(unsigned long, Documen { } -ObjectContentType FrameLoaderClientQt::objectContentType(const KURL& url, const String& _mimeType) +ObjectContentType FrameLoaderClientQt::objectContentType(const KURL& url, const String& mimeTypeIn, bool shouldPreferPlugInsForImages) { -// qDebug()<<" ++++++++++++++++ url is "<<url.prettyURL()<<", mime = "<<_mimeType; +// qDebug()<<" ++++++++++++++++ url is "<<url.prettyURL()<<", mime = "<<mimeTypeIn; QFileInfo fi(url.path()); String extension = fi.suffix(); - if (_mimeType == "application/x-qt-plugin" || _mimeType == "application/x-qt-styled-widget") + if (mimeTypeIn == "application/x-qt-plugin" || mimeTypeIn == "application/x-qt-styled-widget") return ObjectContentOtherPlugin; - if (url.isEmpty() && !_mimeType.length()) + if (url.isEmpty() && !mimeTypeIn.length()) return ObjectContentNone; - String mimeType = _mimeType; + String mimeType = mimeTypeIn; if (!mimeType.length()) mimeType = MIMETypeRegistry::getMIMETypeForExtension(extension); @@ -1331,14 +1350,17 @@ ObjectContentType FrameLoaderClientQt::objectContentType(const KURL& url, const if (!mimeType.length()) return ObjectContentFrame; - if (MIMETypeRegistry::isSupportedImageMIMEType(mimeType)) - return ObjectContentImage; - + ObjectContentType plugInType = ObjectContentNone; if (PluginDatabase::installedPlugins()->isMIMETypeRegistered(mimeType)) - return ObjectContentNetscapePlugin; - - if (m_frame->page() && m_frame->page()->pluginData() && m_frame->page()->pluginData()->supportsMimeType(mimeType)) - return ObjectContentOtherPlugin; + plugInType = ObjectContentNetscapePlugin; + else if (m_frame->page() && m_frame->page()->pluginData() && m_frame->page()->pluginData()->supportsMimeType(mimeType)) + plugInType = ObjectContentOtherPlugin; + + if (MIMETypeRegistry::isSupportedImageMIMEType(mimeType)) + return shouldPreferPlugInsForImages && plugInType != ObjectContentNone ? plugInType : ObjectContentImage; + + if (plugInType != ObjectContentNone) + return plugInType; if (MIMETypeRegistry::isSupportedNonImageMIMEType(mimeType)) return ObjectContentFrame; diff --git a/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h b/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h index e5be421..3ec5f20 100644 --- a/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h +++ b/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h @@ -1,6 +1,6 @@ /* * Copyright (C) 2006 Zack Rusin <zack@kde.org> - * Copyright (C) 2006 Apple Computer, Inc. All rights reserved. + * Copyright (C) 2006, 2011 Apple Inc. All rights reserved. * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) * Copyright (C) 2008 Collabora Ltd. All rights reserved. * @@ -211,7 +211,7 @@ public: virtual PassRefPtr<Widget> createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues); - virtual ObjectContentType objectContentType(const KURL& url, const String& mimeType); + virtual ObjectContentType objectContentType(const KURL&, const String& mimeTypeIn, bool shouldPreferPlugInsForImages); virtual String overrideMediaType() const; virtual void dispatchDidClearWindowObjectInWorld(DOMWrapperWorld*); @@ -239,6 +239,8 @@ public: virtual PassRefPtr<FrameNetworkingContext> createNetworkingContext(); + const KURL& lastRequestedUrl() const { return m_lastRequestedUrl; } + static bool dumpFrameLoaderCallbacks; static bool dumpUserGestureInFrameLoaderCallbacks; static bool dumpResourceLoadCallbacks; @@ -253,6 +255,9 @@ public: static bool dumpHistoryCallbacks; static QMap<QString, QString> URLsToRedirect; +private slots: + void onIconLoadedForPageURL(const QString&); + private: Frame *m_frame; QWebFrame *m_webFrame; @@ -267,6 +272,7 @@ private: // See finishedLoading(). bool m_hasRepresentation; + KURL m_lastRequestedUrl; ResourceError m_loadError; }; diff --git a/Source/WebKit/qt/WebCoreSupport/FullScreenVideoWidget.cpp b/Source/WebKit/qt/WebCoreSupport/FullScreenVideoWidget.cpp index 4922cd7..bb5e2b9 100644 --- a/Source/WebKit/qt/WebCoreSupport/FullScreenVideoWidget.cpp +++ b/Source/WebKit/qt/WebCoreSupport/FullScreenVideoWidget.cpp @@ -66,6 +66,7 @@ void FullScreenVideoWidget::show(QMediaPlayer* player) setMouseTracking(true); raise(); m_mediaPlayer->setVideoOutput(this); + setFocus(); grabMouse(); hideCursor(); } @@ -73,6 +74,7 @@ void FullScreenVideoWidget::show(QMediaPlayer* player) void FullScreenVideoWidget::closeEvent(QCloseEvent* event) { m_mediaPlayer = 0; + m_cursorTimer.stop(); setMouseTracking(false); releaseMouse(); QApplication::restoreOverrideCursor(); diff --git a/Source/WebKit/qt/WebCoreSupport/GeolocationClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/GeolocationClientQt.cpp index 68a2af5..3c382cf 100644 --- a/Source/WebKit/qt/WebCoreSupport/GeolocationClientQt.cpp +++ b/Source/WebKit/qt/WebCoreSupport/GeolocationClientQt.cpp @@ -82,12 +82,7 @@ void GeolocationClientQt::positionUpdated(const QGeoPositionInfo &geoPosition) bool providesSpeed = geoPosition.hasAttribute(QGeoPositionInfo::GroundSpeed); double speed = geoPosition.attribute(QGeoPositionInfo::GroundSpeed); -#if QT_VERSION >= QT_VERSION_CHECK(4, 7, 0) double timeStampInSeconds = geoPosition.timestamp().toMSecsSinceEpoch() / 1000; -#else - QDateTime datetime = geoPosition.timestamp(); - double timeStampInSeconds = (datetime.toTime_t() + datetime.time().msec()) / 1000; -#endif m_lastPosition = GeolocationPosition::create(timeStampInSeconds, latitude, longitude, accuracy, providesAltitude, altitude, @@ -140,3 +135,5 @@ void GeolocationClientQt::cancelPermissionRequest(Geolocation* geolocation) } } // namespace WebCore + +#include "moc_GeolocationClientQt.cpp" diff --git a/Source/WebKit/qt/WebCoreSupport/IconDatabaseClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/IconDatabaseClientQt.cpp new file mode 100644 index 0000000..77b41db --- /dev/null +++ b/Source/WebKit/qt/WebCoreSupport/IconDatabaseClientQt.cpp @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2011 Andreas Kling <kling@webkit.org> + * + * 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 COMPUTER, INC. ``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 COMPUTER, INC. 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 "IconDatabaseClientQt.h" + +#include "FrameLoaderClientQt.h" +#include "IconDatabaseBase.h" +#include <wtf/text/CString.h> + +namespace WebCore { + +IconDatabaseClientQt* IconDatabaseClientQt::instance() +{ + static IconDatabaseClientQt* client = 0; + if (!client) { + client = new IconDatabaseClientQt; + iconDatabase().setClient(client); + } + return client; +} + +IconDatabaseClientQt::IconDatabaseClientQt() +{ +} + +IconDatabaseClientQt::~IconDatabaseClientQt() +{ +} + +bool IconDatabaseClientQt::performImport() +{ + return true; +} + +void IconDatabaseClientQt::didRemoveAllIcons() +{ +} + +void IconDatabaseClientQt::didImportIconURLForPageURL(const String& url) +{ +} + +void IconDatabaseClientQt::didImportIconDataForPageURL(const String& url) +{ + emit iconLoadedForPageURL(url); +} + +void IconDatabaseClientQt::didChangeIconForPageURL(const String& url) +{ +} + +void IconDatabaseClientQt::didFinishURLImport() +{ +} + +} + +#include "moc_IconDatabaseClientQt.cpp" diff --git a/Source/WebKit/qt/WebCoreSupport/IconDatabaseClientQt.h b/Source/WebKit/qt/WebCoreSupport/IconDatabaseClientQt.h new file mode 100644 index 0000000..593fdd3 --- /dev/null +++ b/Source/WebKit/qt/WebCoreSupport/IconDatabaseClientQt.h @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2011 Andreas Kling <kling@webkit.org> + * + * 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 COMPUTER, INC. ``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 COMPUTER, INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef IconDatabaseClientQt_h +#define IconDatabaseClientQt_h + +#include "IconDatabaseClient.h" +#include <QtCore/QObject> + +namespace WebCore { + +class IconDatabaseClientQt : public QObject, public IconDatabaseClient { + Q_OBJECT +public: + static IconDatabaseClientQt* instance(); + + virtual bool performImport(); + virtual void didRemoveAllIcons(); + virtual void didImportIconURLForPageURL(const String&); + virtual void didImportIconDataForPageURL(const String&); + virtual void didChangeIconForPageURL(const String&); + virtual void didFinishURLImport(); + +signals: + void iconLoadedForPageURL(const QString&); + +private: + IconDatabaseClientQt(); + virtual ~IconDatabaseClientQt(); +}; + +} + +#endif diff --git a/Source/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp index 441add6..6b557db 100644 --- a/Source/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp +++ b/Source/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp @@ -140,7 +140,7 @@ public: QVariant valueToStore = settingToVariant(value); QString settingKey(settingStoragePrefix + QString(name)); qsettings.setValue(settingKey, valueToStore); - qsettings.setValue(settingKey + settingStorageTypeSuffix, QVariant::typeToName(valueToStore.type())); + qsettings.setValue(settingKey + settingStorageTypeSuffix, QLatin1String(QVariant::typeToName(valueToStore.type()))); #endif // QT_NO_SETTINGS } @@ -174,22 +174,6 @@ private: } -#if USE(V8) -static void ensureDebuggerScriptLoaded() -{ - static bool scriptLoaded = false; - if (scriptLoaded) - return; - - QFile debuggerScriptFile(":/webkit/inspector/DebuggerScript.js"); - if (debuggerScriptFile.open(QIODevice::ReadOnly)) { - QByteArray ba = debuggerScriptFile.readAll(); - ScriptDebugServer::shared().setDebuggerScriptSource(String(ba.constData(), ba.length())); - scriptLoaded = true; - } -} -#endif - InspectorClientQt::InspectorClientQt(QWebPage* page) : m_inspectedWebPage(page) , m_frontendWebPage(0) @@ -218,10 +202,6 @@ void InspectorClientQt::inspectorDestroyed() void InspectorClientQt::openInspectorFrontend(WebCore::InspectorController* inspectorController) { #if ENABLE(INSPECTOR) -#if USE(V8) - ensureDebuggerScriptLoaded(); -#endif - QWebView* inspectorView = new QWebView; InspectorClientWebPage* inspectorPage = new InspectorClientWebPage(inspectorView); inspectorView->setPage(inspectorPage); @@ -240,7 +220,7 @@ void InspectorClientQt::openInspectorFrontend(WebCore::InspectorController* insp inspectorUrl = inspector->property("_q_inspectorUrl").toUrl(); #endif if (!inspectorUrl.isValid()) - inspectorUrl = QUrl("qrc:/webkit/inspector/inspector.html"); + inspectorUrl = QUrl(QLatin1String("qrc:/webkit/inspector/inspector.html")); #ifndef QT_NO_PROPERTIES QVariant inspectorJavaScriptWindowObjects = inspector->property("_q_inspectorJavaScriptWindowObjects"); diff --git a/Source/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp b/Source/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp index f83deb2..92b7d5c 100644 --- a/Source/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp +++ b/Source/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp @@ -73,11 +73,10 @@ static quint32 parseWebSocketChallengeNumber(QString field) int numSpaces = 0; for (int i = 0; i < field.size(); i++) { QChar c = field[i]; - if (c == (QChar)' ') { + if (c == QLatin1Char(' ')) numSpaces++; - } else if ((c >= (QChar)'0') && (c <= (QChar)'9')) { - nString.append((QChar)c); - } + else if ((c >= QLatin1Char('0')) && (c <= QLatin1Char('9'))) + nString.append(c); } quint32 num = nString.toLong(); quint32 result = (numSpaces ? (num / numSpaces) : num); @@ -195,7 +194,7 @@ void InspectorServerRequestHandlerQt::tcpReadyRead() m_path = header.path(); m_contentType = header.contentType().toLatin1(); m_contentLength = header.contentLength(); - if (header.hasKey("Upgrade") && (header.value("Upgrade") == QLatin1String("WebSocket"))) + if (header.hasKey(QLatin1String("Upgrade")) && (header.value(QLatin1String("Upgrade")) == QLatin1String("WebSocket"))) isWebSocket = true; m_data.clear(); @@ -204,9 +203,9 @@ void InspectorServerRequestHandlerQt::tcpReadyRead() } if (m_endOfHeaders) { - QStringList pathAndQuery = m_path.split("?"); + QStringList pathAndQuery = m_path.split(QLatin1Char('?')); m_path = pathAndQuery[0]; - QStringList words = m_path.split(QString::fromLatin1("/")); + QStringList words = m_path.split(QLatin1Char('/')); if (isWebSocket) { // switch to websocket-style WebSocketService messaging @@ -216,18 +215,18 @@ void InspectorServerRequestHandlerQt::tcpReadyRead() QByteArray key3 = m_tcpConnection->read(8); - quint32 number1 = parseWebSocketChallengeNumber(header.value("Sec-WebSocket-Key1")); - quint32 number2 = parseWebSocketChallengeNumber(header.value("Sec-WebSocket-Key2")); + quint32 number1 = parseWebSocketChallengeNumber(header.value(QLatin1String("Sec-WebSocket-Key1"))); + quint32 number2 = parseWebSocketChallengeNumber(header.value(QLatin1String("Sec-WebSocket-Key2"))); char responseData[16]; generateWebSocketChallengeResponse(number1, number2, (unsigned char*)key3.data(), (unsigned char*)responseData); QByteArray response(responseData, sizeof(responseData)); - QHttpResponseHeader responseHeader(101, "WebSocket Protocol Handshake", 1, 1); - responseHeader.setValue("Upgrade", header.value("Upgrade")); - responseHeader.setValue("Connection", header.value("Connection")); - responseHeader.setValue("Sec-WebSocket-Origin", header.value("Origin")); - responseHeader.setValue("Sec-WebSocket-Location", ("ws://" + header.value("Host") + m_path)); + QHttpResponseHeader responseHeader(101, QLatin1String("WebSocket Protocol Handshake"), 1, 1); + responseHeader.setValue(QLatin1String("Upgrade"), header.value(QLatin1String("Upgrade"))); + responseHeader.setValue(QLatin1String("Connection"), header.value(QLatin1String("Connection"))); + responseHeader.setValue(QLatin1String("Sec-WebSocket-Origin"), header.value(QLatin1String("Origin"))); + responseHeader.setValue(QLatin1String("Sec-WebSocket-Location"), (QLatin1String("ws://") + header.value(QLatin1String("Host")) + m_path)); responseHeader.setContentLength(response.size()); m_tcpConnection->write(responseHeader.toString().toLatin1()); m_tcpConnection->write(response); @@ -259,19 +258,19 @@ void InspectorServerRequestHandlerQt::tcpReadyRead() QString text = QString::fromLatin1("OK"); // If no path is specified, generate an index page. - if ((m_path == "") || (m_path == "/")) { - QString indexHtml = "<html><head><title>Remote Web Inspector</title></head><body><ul>\n"; + if (m_path.isEmpty() || (m_path == QString(QLatin1Char('/')))) { + QString indexHtml = QLatin1String("<html><head><title>Remote Web Inspector</title></head><body><ul>\n"); for (QMap<int, InspectorClientQt* >::const_iterator it = m_server->m_inspectorClients.begin(); it != m_server->m_inspectorClients.end(); ++it) { - indexHtml.append(QString("<li><a href=\"/webkit/inspector/inspector.html?page=%1\">%2</li>\n") + indexHtml.append(QString::fromLatin1("<li><a href=\"/webkit/inspector/inspector.html?page=%1\">%2</li>\n") .arg(it.key()) .arg(it.value()->m_inspectedWebPage->mainFrame()->url().toString())); } - indexHtml.append("</ul></body></html>"); + indexHtml.append(QLatin1String("</ul></body></html>")); response = indexHtml.toLatin1(); } else { - QString path = QString(":%1").arg(m_path); + QString path = QString::fromLatin1(":%1").arg(m_path); QFile file(path); // It seems that there should be an enum or define for these status codes somewhere in Qt or WebKit, // but grep fails to turn one up. diff --git a/Source/WebKit/qt/WebCoreSupport/PopupMenuQt.cpp b/Source/WebKit/qt/WebCoreSupport/PopupMenuQt.cpp index f7c4edc..b662f5c 100644 --- a/Source/WebKit/qt/WebCoreSupport/PopupMenuQt.cpp +++ b/Source/WebKit/qt/WebCoreSupport/PopupMenuQt.cpp @@ -44,6 +44,10 @@ public: virtual int itemCount() const { return d ? d->listSize() : 0; } virtual bool itemIsSelected(int idx) const { return d ? d->itemIsSelected(idx) : false; } virtual bool multiple() const; + virtual QColor backgroundColor() const { return d ? QColor(d->menuStyle().backgroundColor()) : QColor(); } + virtual QColor foregroundColor() const { return d ? QColor(d->menuStyle().foregroundColor()) : QColor(); } + virtual QColor itemBackgroundColor(int idx) const { return d ? QColor(d->itemStyle(idx).backgroundColor()) : QColor(); } + virtual QColor itemForegroundColor(int idx) const { return d ? QColor(d->itemStyle(idx).foregroundColor()) : QColor(); } private: WebCore::PopupMenuClient*& d; @@ -157,4 +161,6 @@ void PopupMenuQt::selectItem(int index, bool ctrl, bool shift) } +#include "moc_PopupMenuQt.cpp" + // vim: ts=4 sw=4 et diff --git a/Source/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp b/Source/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp index afa6492..5e641de 100644 --- a/Source/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp +++ b/Source/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp @@ -124,6 +124,17 @@ void QtFallbackWebPopup::show(const QWebSelectData& data) populate(data); + QColor backgroundColor = data.backgroundColor(); + QColor foregroundColor = data.foregroundColor(); + + QPalette palette = m_combo->palette(); + if (backgroundColor.isValid()) + palette.setColor(QPalette::Background, backgroundColor); + if (foregroundColor.isValid()) + palette.setColor(QPalette::Foreground, foregroundColor); + m_combo->setPalette(palette); + + QRect rect = geometry(); if (QGraphicsWebView *webView = qobject_cast<QGraphicsWebView*>(pageClient()->pluginParent())) { QGraphicsProxyWidget* proxy = new QGraphicsProxyWidget(webView); @@ -235,6 +246,8 @@ void QtFallbackWebPopup::populate(const QWebSelectData& data) #ifndef QT_NO_TOOLTIP model->item(i)->setToolTip(data.itemToolTip(i)); #endif + model->item(i)->setBackground(data.itemBackgroundColor(i)); + model->item(i)->setForeground(data.itemForegroundColor(i)); if (data.itemIsSelected(i)) currentIndex = i; break; diff --git a/Source/WebKit/qt/WebCoreSupport/WebPlatformStrategies.cpp b/Source/WebKit/qt/WebCoreSupport/WebPlatformStrategies.cpp index fffb564..182fe38 100644 --- a/Source/WebKit/qt/WebCoreSupport/WebPlatformStrategies.cpp +++ b/Source/WebKit/qt/WebCoreSupport/WebPlatformStrategies.cpp @@ -332,7 +332,7 @@ String WebPlatformStrategies::contextMenuItemTagSearchWeb() return QCoreApplication::translate("QWebPage", "Search The Web", "Search The Web context menu item"); } -String WebPlatformStrategies::contextMenuItemTagLookUpInDictionary() +String WebPlatformStrategies::contextMenuItemTagLookUpInDictionary(const String&) { return QCoreApplication::translate("QWebPage", "Look Up In Dictionary", "Look Up in Dictionary context menu item"); } diff --git a/Source/WebKit/qt/WebCoreSupport/WebPlatformStrategies.h b/Source/WebKit/qt/WebCoreSupport/WebPlatformStrategies.h index fbcfd16..b74af39 100644 --- a/Source/WebKit/qt/WebCoreSupport/WebPlatformStrategies.h +++ b/Source/WebKit/qt/WebCoreSupport/WebPlatformStrategies.h @@ -86,7 +86,7 @@ private: virtual WTF::String contextMenuItemTagIgnoreSpelling(); virtual WTF::String contextMenuItemTagLearnSpelling(); virtual WTF::String contextMenuItemTagSearchWeb(); - virtual WTF::String contextMenuItemTagLookUpInDictionary(); + virtual WTF::String contextMenuItemTagLookUpInDictionary(const String&); virtual WTF::String contextMenuItemTagOpenLink(); virtual WTF::String contextMenuItemTagIgnoreGrammar(); virtual WTF::String contextMenuItemTagSpellingMenu(); diff --git a/Source/WebKit/qt/declarative/plugin.cpp b/Source/WebKit/qt/declarative/plugin.cpp index f1f165e..49af415 100644 --- a/Source/WebKit/qt/declarative/plugin.cpp +++ b/Source/WebKit/qt/declarative/plugin.cpp @@ -32,6 +32,11 @@ public: Q_ASSERT(QLatin1String(uri) == QLatin1String("QtWebKit")); qmlRegisterType<QDeclarativeWebSettings>(); qmlRegisterType<QDeclarativeWebView>(uri, 1, 0, "WebView"); +#if QT_VERSION >= 0x040703 + qmlRegisterType<QDeclarativeWebView>(uri, 1, 1, "WebView"); + qmlRegisterRevision<QDeclarativeWebView, 0>("QtWebKit", 1, 0); + qmlRegisterRevision<QDeclarativeWebView, 1>("QtWebKit", 1, 1); +#endif } }; diff --git a/Source/WebKit/qt/declarative/qdeclarativewebview.cpp b/Source/WebKit/qt/declarative/qdeclarativewebview.cpp index 9313d6c..83645aa 100644 --- a/Source/WebKit/qt/declarative/qdeclarativewebview.cpp +++ b/Source/WebKit/qt/declarative/qdeclarativewebview.cpp @@ -517,13 +517,12 @@ void QDeclarativeWebView::geometryChanged(const QRectF& newGeometry, const QRect } } - html: "<script>console.log(\"This is in WebKit!\"); window.qml.qmlCall();</script>" + html: "<script>window.qml.qmlCall();</script>" } \endqml The output of the example will be: \code - This is in WebKit! This call is in QML! \endcode @@ -772,7 +771,6 @@ void QDeclarativeWebView::setPage(QWebPage* page) page->mainFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff); connect(page->mainFrame(), SIGNAL(urlChanged(QUrl)), this, SLOT(pageUrlChanged())); connect(page->mainFrame(), SIGNAL(titleChanged(QString)), this, SIGNAL(titleChanged(QString))); - connect(page->mainFrame(), SIGNAL(titleChanged(QString)), this, SIGNAL(iconChanged())); connect(page->mainFrame(), SIGNAL(iconChanged()), this, SIGNAL(iconChanged())); connect(page->mainFrame(), SIGNAL(initialLayoutCompleted()), this, SLOT(initialLayout())); connect(page->mainFrame(), SIGNAL(contentsSizeChanged(QSize)), this, SIGNAL(contentsSizeChanged(QSize))); @@ -983,6 +981,29 @@ void QDeclarativeWebView::setContentsScale(qreal scale) emit contentsScaleChanged(); } +#if QT_VERSION >= 0x040703 +/*! + \qmlproperty color WebView::backgroundColor + \since QtWebKit 1.1 + This property holds the background color of the view. +*/ + +QColor QDeclarativeWebView::backgroundColor() const +{ + return d->view->palette().base().color(); +} + +void QDeclarativeWebView::setBackgroundColor(const QColor& color) +{ + QPalette palette = d->view->palette(); + if (palette.base().color() == color) + return; + palette.setBrush(QPalette::Base, color); + d->view->setPalette(palette); + emit backgroundColorChanged(); +} +#endif + /*! Returns the area of the largest element at position (\a x,\a y) that is no larger than \a maxWidth by \a maxHeight pixels. diff --git a/Source/WebKit/qt/declarative/qdeclarativewebview_p.h b/Source/WebKit/qt/declarative/qdeclarativewebview_p.h index ca15a1e..05f35f6 100644 --- a/Source/WebKit/qt/declarative/qdeclarativewebview_p.h +++ b/Source/WebKit/qt/declarative/qdeclarativewebview_p.h @@ -123,6 +123,9 @@ class QDeclarativeWebView : public QDeclarativeItem { Q_PROPERTY(QSize contentsSize READ contentsSize NOTIFY contentsSizeChanged) Q_PROPERTY(qreal contentsScale READ contentsScale WRITE setContentsScale NOTIFY contentsScaleChanged) +#if QT_VERSION >= 0x040703 + Q_PROPERTY(QColor backgroundColor READ backgroundColor WRITE setBackgroundColor NOTIFY backgroundColorChanged REVISION 1) +#endif public: QDeclarativeWebView(QDeclarativeItem *parent = 0); @@ -193,6 +196,11 @@ public: void setContentsScale(qreal scale); qreal contentsScale() const; +#if QT_VERSION >= 0x040703 + Q_REVISION(1) QColor backgroundColor() const; + Q_REVISION(1) void setBackgroundColor(const QColor&); +#endif + Q_SIGNALS: void preferredWidthChanged(); void preferredHeightChanged(); @@ -209,6 +217,9 @@ Q_SIGNALS: void renderingEnabledChanged(); void contentsSizeChanged(const QSize&); void contentsScaleChanged(); +#if QT_VERSION >= 0x040703 + void backgroundColorChanged(); +#endif void loadStarted(); void loadFinished(); diff --git a/Source/WebKit/qt/tests/benchmarks/webgl/10000_triangles.html b/Source/WebKit/qt/tests/benchmarks/webgl/10000_triangles.html new file mode 100644 index 0000000..fd061aa --- /dev/null +++ b/Source/WebKit/qt/tests/benchmarks/webgl/10000_triangles.html @@ -0,0 +1,59 @@ +<html> + <body style="margin: 0"> + <canvas width="1000" height="1000"></canvas> + </body> +</html> +<script> + var canvas = document.getElementsByTagName("canvas")[0]; + gl = canvas.getContext("experimental-webgl"); + gl.clearColor(0.0, 1.0, 0.0, 1.0); + gl.viewport(0, 0, canvas.width, canvas.height); + + var vertexShader = gl.createShader(gl.VERTEX_SHADER); + gl.shaderSource(vertexShader, "attribute vec4 vPosition;\nvoid main() { gl_Position = vPosition; }"); + gl.compileShader(vertexShader); + + var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER); + gl.shaderSource(fragmentShader, "void main() { gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); }"); + gl.compileShader(fragmentShader); + + var shaderProgram = gl.createProgram(); + gl.attachShader(shaderProgram, vertexShader); + gl.attachShader(shaderProgram, fragmentShader); + gl.bindAttribLocation(shaderProgram, 0, "vPosition"); + gl.linkProgram(shaderProgram); + + gl.useProgram(shaderProgram); + + var buffer = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, buffer); + + var vertices = []; + var seedX = -1.0; + var seedY = 1.0; + for (var i = 1; i <= 10000; ++i) { + vertices.push(seedX); + vertices.push(seedY); + vertices.push(0); + seedX += 0.01; + vertices.push(seedX); + vertices.push(seedY - 0.02); + vertices.push(0); + seedX += 0.01; + vertices.push(seedX); + vertices.push(seedY); + vertices.push(0); + if (!(i % 100)) { + seedX = -1.0; + seedY -= 0.02; + } + } + gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertices), gl.STATIC_DRAW); + + + gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0); + gl.enableVertexAttribArray(0); + gl.clear(gl.COLOR_BUFFER_BIT); + gl.drawArrays(gl.TRIANGLES, 0, 30000); + gl.flush(); +</script> diff --git a/Source/WebKit/qt/tests/benchmarks/webgl/tst_webgl.cpp b/Source/WebKit/qt/tests/benchmarks/webgl/tst_webgl.cpp new file mode 100644 index 0000000..bd865a2 --- /dev/null +++ b/Source/WebKit/qt/tests/benchmarks/webgl/tst_webgl.cpp @@ -0,0 +1,130 @@ +/* + Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies) + + 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 "../../util.h" +#include <QGLWidget> +#include <QGraphicsView> +#include <QGraphicsWebView> +#include <QScopedPointer> +#include <QWebFrame> +#include <QtTest/QtTest> + +class GraphicsView; + +class tst_WebGlPerformance : public QObject { + Q_OBJECT + +private slots: + void init(); + void cleanup(); + + void benchSoftwareFallbackRgb16(); + void benchSoftwareFallbackRgb32(); + void benchSoftwareFallbackArgb32(); + void benchSoftwareFallbackArgb32Premultiplied(); + +private: + void benchmarkFrameRenderingOnImage(QImage::Format); + + QScopedPointer<GraphicsView> m_view; +}; + +class GraphicsView : public QGraphicsView { +public: + GraphicsView(); + QGraphicsWebView* m_webView; + +protected: + void resizeEvent(QResizeEvent*); +}; + +GraphicsView::GraphicsView() +{ + QGraphicsScene* const scene = new QGraphicsScene(this); + setScene(scene); + + m_webView = new QGraphicsWebView; + scene->addItem(m_webView); + + m_webView->page()->settings()->setAttribute(QWebSettings::WebGLEnabled, true); + + resize(800, 600); + setFrameShape(QFrame::NoFrame); + setViewport(new QGLWidget); +} + +void GraphicsView::resizeEvent(QResizeEvent* event) +{ + QGraphicsView::resizeEvent(event); + QRectF rect(QPoint(0, 0), event->size()); + m_webView->setGeometry(rect); + scene()->setSceneRect(rect); +} + +void tst_WebGlPerformance::init() +{ + m_view.reset(new GraphicsView); + m_view->showMaximized(); + QTest::qWaitForWindowShown(m_view.data()); +} + +void tst_WebGlPerformance::cleanup() +{ + m_view.reset(); +} + +void tst_WebGlPerformance::benchSoftwareFallbackRgb16() +{ + benchmarkFrameRenderingOnImage(QImage::Format_RGB16); +} + +void tst_WebGlPerformance::benchSoftwareFallbackRgb32() +{ + benchmarkFrameRenderingOnImage(QImage::Format_RGB32); +} + +void tst_WebGlPerformance::benchSoftwareFallbackArgb32() +{ + benchmarkFrameRenderingOnImage(QImage::Format_ARGB32); +} + +void tst_WebGlPerformance::benchSoftwareFallbackArgb32Premultiplied() +{ + benchmarkFrameRenderingOnImage(QImage::Format_ARGB32_Premultiplied); +} + +void tst_WebGlPerformance::benchmarkFrameRenderingOnImage(QImage::Format format) +{ + m_view->m_webView->load(QUrl(QLatin1String("qrc:///testcases/10000_triangles.html"))); + const bool pageLoaded = waitForSignal(m_view->m_webView, SIGNAL(loadFinished(bool))); + Q_ASSERT(pageLoaded); + Q_UNUSED(pageLoaded); + + QImage target(m_view->size(), format); + QBENCHMARK { + QPainter painter(&target); + m_view->render(&painter); + painter.end(); + } +} + +QTEST_MAIN(tst_WebGlPerformance) + +#include "tst_webgl.moc" diff --git a/Source/WebKit/qt/tests/benchmarks/webgl/tst_webgl.qrc b/Source/WebKit/qt/tests/benchmarks/webgl/tst_webgl.qrc new file mode 100644 index 0000000..b849448 --- /dev/null +++ b/Source/WebKit/qt/tests/benchmarks/webgl/tst_webgl.qrc @@ -0,0 +1,5 @@ +<RCC> + <qresource prefix="/testcases"> + <file>10000_triangles.html</file> + </qresource> +</RCC> diff --git a/Source/WebKit/qt/tests/benchmarks/webgl/webgl.pro b/Source/WebKit/qt/tests/benchmarks/webgl/webgl.pro new file mode 100644 index 0000000..fb21bc8 --- /dev/null +++ b/Source/WebKit/qt/tests/benchmarks/webgl/webgl.pro @@ -0,0 +1,4 @@ +isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../../../../.. +include(../../tests.pri) +exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc +QT += opengl diff --git a/Source/WebKit/qt/tests/qdeclarativewebview/resources/webviewbackgroundcolor.qml b/Source/WebKit/qt/tests/qdeclarativewebview/resources/webviewbackgroundcolor.qml new file mode 100644 index 0000000..2edc794 --- /dev/null +++ b/Source/WebKit/qt/tests/qdeclarativewebview/resources/webviewbackgroundcolor.qml @@ -0,0 +1,10 @@ +import Qt 4.7 +import QtWebKit 1.1 + +WebView { + id: myweb + height: 300 + width: 300 + focus: true + backgroundColor : "red" +} diff --git a/Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.cpp b/Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.cpp index 0025d6c..8fcab71 100644 --- a/Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.cpp +++ b/Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.cpp @@ -1,4 +1,5 @@ #include "../util.h" +#include <QColor> #include <QDebug> #include <QDeclarativeComponent> #include <QDeclarativeEngine> @@ -22,6 +23,9 @@ private slots: void preferredHeightTest(); void preferredWidthDefaultTest(); void preferredHeightDefaultTest(); +#if QT_VERSION >= 0x040703 + void backgroundColor(); +#endif private: void checkNoErrors(const QDeclarativeComponent&); @@ -82,6 +86,36 @@ void tst_QDeclarativeWebView::preferredHeightDefaultTest() QCOMPARE(wv->property("prefHeight").toDouble(), view.preferredHeight()); } +#if QT_VERSION >= 0x040703 +void tst_QDeclarativeWebView::backgroundColor() +{ + // We test here the rendering of the background. + QDeclarativeEngine engine; + QDeclarativeComponent component(&engine, QUrl("qrc:///resources/webviewbackgroundcolor.qml")); + checkNoErrors(component); + QObject* wv = component.create(); + QVERIFY(wv); + QCOMPARE(wv->property("backgroundColor").value<QColor>(), QColor(Qt::red)); + QDeclarativeView view; + view.setSource(QUrl("qrc:///resources/webviewbackgroundcolor.qml")); + view.show(); + QTest::qWaitForWindowShown(&view); + QPixmap result(view.width(), view.height()); + QPainter painter(&result); + view.render(&painter); + QPixmap reference(view.width(), view.height()); + reference.fill(Qt::red); + QCOMPARE(reference, result); + + // We test the emission of the backgroundColorChanged signal. + QSignalSpy spyColorChanged(wv, SIGNAL(backgroundColorChanged())); + wv->setProperty("backgroundColor", Qt::red); + QCOMPARE(spyColorChanged.count(), 0); + wv->setProperty("backgroundColor", Qt::green); + QCOMPARE(spyColorChanged.count(), 1); +} +#endif + void tst_QDeclarativeWebView::checkNoErrors(const QDeclarativeComponent& component) { // Wait until the component is ready diff --git a/Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.qrc b/Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.qrc index 9c27409..e14c333 100644 --- a/Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.qrc +++ b/Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.qrc @@ -3,5 +3,6 @@ <file>resources/webviewtestdefault.qml</file> <file>resources/webviewtest.qml</file> <file>resources/sample.html</file> + <file>resources/webviewbackgroundcolor.qml</file> </qresource> </RCC> diff --git a/Source/WebKit/qt/tests/qgraphicswebview/qgraphicswebview.pro b/Source/WebKit/qt/tests/qgraphicswebview/qgraphicswebview.pro index e915d60..e5494ae 100644 --- a/Source/WebKit/qt/tests/qgraphicswebview/qgraphicswebview.pro +++ b/Source/WebKit/qt/tests/qgraphicswebview/qgraphicswebview.pro @@ -1,3 +1,6 @@ isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../../../.. include(../tests.pri) exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc +contains(DEFINES, ENABLE_WEBGL=1) { + QT += opengl +} diff --git a/Source/WebKit/qt/tests/qgraphicswebview/resources/pointing_right.html b/Source/WebKit/qt/tests/qgraphicswebview/resources/pointing_right.html new file mode 100644 index 0000000..bc592fb --- /dev/null +++ b/Source/WebKit/qt/tests/qgraphicswebview/resources/pointing_right.html @@ -0,0 +1,45 @@ +<html> + <body style="margin: 0"> + <canvas width="100" height="100"></canvas> + </body> +</html> +<script> + var canvas = document.getElementsByTagName("canvas")[0]; + gl = canvas.getContext("experimental-webgl"); + gl.clearColor(0.0, 1.0, 0.0, 1.0); + gl.viewport(0, 0, canvas.width, canvas.height); + + var vertexShader = gl.createShader(gl.VERTEX_SHADER); + gl.shaderSource(vertexShader, "attribute vec4 vPosition;\nvoid main() { gl_Position = vPosition; }"); + gl.compileShader(vertexShader); + + var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER); + gl.shaderSource(fragmentShader, "void main() { gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); }"); + gl.compileShader(fragmentShader); + + var shaderProgram = gl.createProgram(); + gl.attachShader(shaderProgram, vertexShader); + gl.attachShader(shaderProgram, fragmentShader); + gl.bindAttribLocation(shaderProgram, 0, "vPosition"); + gl.linkProgram(shaderProgram); + + gl.useProgram(shaderProgram); + + var buffer = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, buffer); + + var vertices = [-1.0, -1.0, + 0.0, 0.0, + -1.0, 1.0]; + var seedX = -1.0; + var seedY = 1.0; + vertices + gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertices), gl.STATIC_DRAW); + + + gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0); + gl.enableVertexAttribArray(0); + gl.clear(gl.COLOR_BUFFER_BIT); + gl.drawArrays(gl.TRIANGLES, 0, 3); + gl.flush(); +</script> diff --git a/Source/WebKit/qt/tests/qgraphicswebview/resources/pointing_up.html b/Source/WebKit/qt/tests/qgraphicswebview/resources/pointing_up.html new file mode 100644 index 0000000..474a56d --- /dev/null +++ b/Source/WebKit/qt/tests/qgraphicswebview/resources/pointing_up.html @@ -0,0 +1,46 @@ +<html> + <body style="margin: 0"> + <canvas width="100" height="100"></canvas> + </body> +</html> +<script> + var canvas = document.getElementsByTagName("canvas")[0]; + gl = canvas.getContext("experimental-webgl"); + gl.clearColor(0.0, 1.0, 0.0, 1.0); + gl.viewport(0, 0, canvas.width, canvas.height); + + var vertexShader = gl.createShader(gl.VERTEX_SHADER); + gl.shaderSource(vertexShader, "attribute vec4 vPosition;\nvoid main() { gl_Position = vPosition; }"); + gl.compileShader(vertexShader); + + var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER); + gl.shaderSource(fragmentShader, "void main() { gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); }"); + gl.compileShader(fragmentShader); + + var shaderProgram = gl.createProgram(); + gl.attachShader(shaderProgram, vertexShader); + gl.attachShader(shaderProgram, fragmentShader); + gl.bindAttribLocation(shaderProgram, 0, "vPosition"); + gl.linkProgram(shaderProgram); + + gl.useProgram(shaderProgram); + + var buffer = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, buffer); + + var vertices = [-1.0, -1.0, + 0.0, 0.0, + 1.0, -1.0]; + var seedX = -1.0; + var seedY = 1.0; + vertices + gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertices), gl.STATIC_DRAW); + + + gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0); + gl.enableVertexAttribArray(0); + gl.clear(gl.COLOR_BUFFER_BIT); + gl.drawArrays(gl.TRIANGLES, 0, 3); + gl.flush(); + gl.finish(); +</script> diff --git a/Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp b/Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp index f8a4359..7cc88db 100644 --- a/Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp +++ b/Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp @@ -25,6 +25,10 @@ #include <qwebpage.h> #include <qwebframe.h> +#if defined(ENABLE_WEBGL) && ENABLE_WEBGL +#include <QGLWidget> +#endif + class tst_QGraphicsWebView : public QObject { Q_OBJECT @@ -38,6 +42,15 @@ private slots: void widgetsRenderingThroughCache(); void setPalette_data(); void setPalette(); + void renderHints(); + +#if defined(ENABLE_WEBGL) && ENABLE_WEBGL + void webglSoftwareFallbackVerticalOrientation(); + void webglSoftwareFallbackHorizontalOrientation(); + +private: + void compareCanvasToImage(const QUrl&, const QImage&); +#endif }; void tst_QGraphicsWebView::qgraphicswebview() @@ -191,9 +204,9 @@ void tst_QGraphicsWebView::microFocusCoordinates() page->mainFrame()->setHtml("<html><body>" \ "<input type='text' id='input1' style='font--family: serif' value='' maxlength='20'/><br>" \ - "<canvas id='canvas1' width='500' height='500'/>" \ + "<canvas id='canvas1' width='500' height='500'></canvas>" \ "<input type='password'/><br>" \ - "<canvas id='canvas2' width='500' height='500'/>" \ + "<canvas id='canvas2' width='500' height='500'></canvas>" \ "</body></html>"); page->mainFrame()->setFocus(); @@ -409,6 +422,146 @@ void tst_QGraphicsWebView::setPalette() QVERIFY(img1 != img2); } +void tst_QGraphicsWebView::renderHints() +{ + QGraphicsWebView webView; + + // default is only text antialiasing + smooth pixmap transform + QVERIFY(!(webView.renderHints() & QPainter::Antialiasing)); + QVERIFY(webView.renderHints() & QPainter::TextAntialiasing); + QVERIFY(webView.renderHints() & QPainter::SmoothPixmapTransform); + QVERIFY(!(webView.renderHints() & QPainter::HighQualityAntialiasing)); + + webView.setRenderHint(QPainter::Antialiasing, true); + QVERIFY(webView.renderHints() & QPainter::Antialiasing); + QVERIFY(webView.renderHints() & QPainter::TextAntialiasing); + QVERIFY(webView.renderHints() & QPainter::SmoothPixmapTransform); + QVERIFY(!(webView.renderHints() & QPainter::HighQualityAntialiasing)); + + webView.setRenderHint(QPainter::Antialiasing, false); + QVERIFY(!(webView.renderHints() & QPainter::Antialiasing)); + QVERIFY(webView.renderHints() & QPainter::TextAntialiasing); + QVERIFY(webView.renderHints() & QPainter::SmoothPixmapTransform); + QVERIFY(!(webView.renderHints() & QPainter::HighQualityAntialiasing)); + + webView.setRenderHint(QPainter::SmoothPixmapTransform, true); + QVERIFY(!(webView.renderHints() & QPainter::Antialiasing)); + QVERIFY(webView.renderHints() & QPainter::TextAntialiasing); + QVERIFY(webView.renderHints() & QPainter::SmoothPixmapTransform); + QVERIFY(!(webView.renderHints() & QPainter::HighQualityAntialiasing)); + + webView.setRenderHint(QPainter::SmoothPixmapTransform, false); + QVERIFY(webView.renderHints() & QPainter::TextAntialiasing); + QVERIFY(!(webView.renderHints() & QPainter::SmoothPixmapTransform)); + QVERIFY(!(webView.renderHints() & QPainter::HighQualityAntialiasing)); +} + +class GraphicsView : public QGraphicsView { +public: + GraphicsView(); + QGraphicsWebView* m_webView; +}; + +#if defined(ENABLE_WEBGL) && ENABLE_WEBGL +bool compareImagesFuzzyPixelCount(const QImage& image1, const QImage& image2, qreal tolerance = 0.05) +{ + if (image1.size() != image2.size()) + return false; + + unsigned diffPixelCount = 0; + for (int row = 0; row < image1.size().width(); ++row) { + for (int column = 0; column < image1.size().height(); ++column) + if (image1.pixel(row, column) != image2.pixel(row, column)) + ++diffPixelCount; + } + + if (diffPixelCount > (image1.size().width() * image1.size().height()) * tolerance) + return false; + + return true; +} + +GraphicsView::GraphicsView() +{ + QGraphicsScene* const scene = new QGraphicsScene(this); + setScene(scene); + + m_webView = new QGraphicsWebView; + scene->addItem(m_webView); + + m_webView->page()->settings()->setAttribute(QWebSettings::WebGLEnabled, true); + m_webView->setResizesToContents(true); + + setFrameShape(QFrame::NoFrame); + setViewport(new QGLWidget); +} + +void tst_QGraphicsWebView::webglSoftwareFallbackVerticalOrientation() +{ + QSize canvasSize(100, 100); + QImage reference(canvasSize, QImage::Format_ARGB32); + reference.fill(0xFF00FF00); + { // Reference. + QPainter painter(&reference); + QPolygonF triangleUp; + triangleUp << QPointF(0, canvasSize.height()) + << QPointF(canvasSize.width(), canvasSize.height()) + << QPointF(canvasSize.width() / 2.0, canvasSize.height() / 2.0); + painter.setPen(Qt::NoPen); + painter.setBrush(Qt::red); + painter.drawPolygon(triangleUp); + } + + compareCanvasToImage(QUrl(QLatin1String("qrc:///resources/pointing_up.html")), reference); +} + +void tst_QGraphicsWebView::webglSoftwareFallbackHorizontalOrientation() +{ + QSize canvasSize(100, 100); + QImage reference(canvasSize, QImage::Format_ARGB32); + reference.fill(0xFF00FF00); + { // Reference. + QPainter painter(&reference); + QPolygonF triangleUp; + triangleUp << QPointF(0, 0) + << QPointF(0, canvasSize.height()) + << QPointF(canvasSize.width() / 2.0, canvasSize.height() / 2.0); + painter.setPen(Qt::NoPen); + painter.setBrush(Qt::red); + painter.drawPolygon(triangleUp); + } + + compareCanvasToImage(QUrl(QLatin1String("qrc:///resources/pointing_right.html")), reference); +} + +void tst_QGraphicsWebView::compareCanvasToImage(const QUrl& url, const QImage& reference) +{ + GraphicsView view; + view.show(); + QTest::qWaitForWindowShown(&view); + + QGraphicsWebView* const graphicsWebView = view.m_webView; + graphicsWebView->load(url); + QVERIFY(waitForSignal(graphicsWebView, SIGNAL(loadFinished(bool)))); + { // Force a render, to create the accelerated compositing tree. + QPixmap pixmap(view.size()); + QPainter painter(&pixmap); + view.render(&painter); + } + QApplication::syncX(); + + const QSize imageSize = reference.size(); + + QImage target(imageSize, QImage::Format_ARGB32); + { // Web page content. + QPainter painter(&target); + QRectF renderRect(0, 0, imageSize.width(), imageSize.height()); + view.scene()->render(&painter, renderRect, renderRect); + } + QVERIFY(compareImagesFuzzyPixelCount(target, reference, 0.01)); +} +#endif + QTEST_MAIN(tst_QGraphicsWebView) #include "tst_qgraphicswebview.moc" diff --git a/Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.qrc b/Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.qrc index c91bb9c..1488fcf 100644 --- a/Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.qrc +++ b/Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.qrc @@ -1,6 +1,7 @@ -<!DOCTYPE RCC><RCC version="1.0"> -<qresource> - <file>resources/input_types.html</file> -</qresource> +<RCC> + <qresource prefix="/"> + <file>resources/input_types.html</file> + <file>resources/pointing_right.html</file> + <file>resources/pointing_up.html</file> + </qresource> </RCC> - diff --git a/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp b/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp index bc1594a..2c44e4c 100644 --- a/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp +++ b/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp @@ -650,6 +650,9 @@ private slots: void setCacheLoadControlAttribute(); void setUrlWithPendingLoads(); void setUrlWithFragment(); + void setUrlToEmpty(); + void setUrlToInvalid(); + void setUrlHistory(); private: QString evalJS(const QString&s) { @@ -3340,5 +3343,148 @@ void tst_QWebFrame::setUrlWithFragment() QCOMPARE(page.mainFrame()->url(), url); } +void tst_QWebFrame::setUrlToEmpty() +{ + int expectedLoadFinishedCount = 0; + const QUrl aboutBlank("about:blank"); + const QUrl url("qrc:/test2.html"); + + QWebPage page; + QWebFrame* frame = page.mainFrame(); + QCOMPARE(frame->url(), QUrl()); + QCOMPARE(frame->requestedUrl(), QUrl()); + QCOMPARE(frame->baseUrl(), QUrl()); + + QSignalSpy spy(frame, SIGNAL(loadFinished(bool))); + + // Set existing url + frame->setUrl(url); + expectedLoadFinishedCount++; + ::waitForSignal(frame, SIGNAL(loadFinished(bool))); + + QCOMPARE(spy.count(), expectedLoadFinishedCount); + QCOMPARE(frame->url(), url); + QCOMPARE(frame->requestedUrl(), url); + QCOMPARE(frame->baseUrl(), url); + + // Set empty url + frame->setUrl(QUrl()); + expectedLoadFinishedCount++; + + QCOMPARE(spy.count(), expectedLoadFinishedCount); + QCOMPARE(frame->url(), aboutBlank); + QCOMPARE(frame->requestedUrl(), QUrl()); + QCOMPARE(frame->baseUrl(), aboutBlank); + + // Set existing url + frame->setUrl(url); + expectedLoadFinishedCount++; + ::waitForSignal(frame, SIGNAL(loadFinished(bool))); + + QCOMPARE(spy.count(), expectedLoadFinishedCount); + QCOMPARE(frame->url(), url); + QCOMPARE(frame->requestedUrl(), url); + QCOMPARE(frame->baseUrl(), url); + + // Load empty url + frame->load(QUrl()); + expectedLoadFinishedCount++; + + QCOMPARE(spy.count(), expectedLoadFinishedCount); + QCOMPARE(frame->url(), aboutBlank); + QCOMPARE(frame->requestedUrl(), QUrl()); + QCOMPARE(frame->baseUrl(), aboutBlank); +} + +void tst_QWebFrame::setUrlToInvalid() +{ + QWebPage page; + QWebFrame* frame = page.mainFrame(); + + const QUrl invalidUrl("http://strange;hostname/here"); + QVERIFY(!invalidUrl.isEmpty()); + QVERIFY(!invalidUrl.isValid()); + QVERIFY(invalidUrl != QUrl()); + + frame->setUrl(invalidUrl); + QCOMPARE(frame->url(), invalidUrl); + QCOMPARE(frame->requestedUrl(), invalidUrl); + QCOMPARE(frame->baseUrl(), invalidUrl); + + // QUrls equivalent to QUrl() will be treated as such. + const QUrl aboutBlank("about:blank"); + const QUrl anotherInvalidUrl("1http://bugs.webkit.org"); + QVERIFY(!anotherInvalidUrl.isEmpty()); // and they are not necessarily empty. + QVERIFY(!anotherInvalidUrl.isValid()); + QCOMPARE(anotherInvalidUrl, QUrl()); + + frame->setUrl(anotherInvalidUrl); + QCOMPARE(frame->url(), aboutBlank); + QCOMPARE(frame->requestedUrl(), anotherInvalidUrl); + QCOMPARE(frame->baseUrl(), aboutBlank); +} + +void tst_QWebFrame::setUrlHistory() +{ + const QUrl aboutBlank("about:blank"); + QUrl url; + int expectedLoadFinishedCount = 0; + QWebFrame* frame = m_page->mainFrame(); + QSignalSpy spy(frame, SIGNAL(loadFinished(bool))); + + QCOMPARE(m_page->history()->count(), 0); + + frame->setUrl(QUrl()); + expectedLoadFinishedCount++; + QCOMPARE(spy.count(), expectedLoadFinishedCount); + QCOMPARE(frame->url(), aboutBlank); + QCOMPARE(frame->requestedUrl(), QUrl()); + QCOMPARE(m_page->history()->count(), 0); + + url = QUrl("http://non.existant/"); + frame->setUrl(url); + ::waitForSignal(m_page, SIGNAL(loadFinished(bool))); + expectedLoadFinishedCount++; + QCOMPARE(spy.count(), expectedLoadFinishedCount); + QCOMPARE(frame->url(), url); + QCOMPARE(frame->requestedUrl(), url); + QCOMPARE(m_page->history()->count(), 0); + + url = QUrl("qrc:/test1.html"); + frame->setUrl(url); + ::waitForSignal(m_page, SIGNAL(loadFinished(bool))); + expectedLoadFinishedCount++; + QCOMPARE(spy.count(), expectedLoadFinishedCount); + QCOMPARE(frame->url(), url); + QCOMPARE(frame->requestedUrl(), url); + QCOMPARE(m_page->history()->count(), 1); + + frame->setUrl(QUrl()); + expectedLoadFinishedCount++; + QCOMPARE(spy.count(), expectedLoadFinishedCount); + QCOMPARE(frame->url(), aboutBlank); + QCOMPARE(frame->requestedUrl(), QUrl()); + QCOMPARE(m_page->history()->count(), 1); + + // Loading same page as current in history, so history count doesn't change. + url = QUrl("qrc:/test1.html"); + frame->setUrl(url); + ::waitForSignal(m_page, SIGNAL(loadFinished(bool))); + expectedLoadFinishedCount++; + QCOMPARE(spy.count(), expectedLoadFinishedCount); + QCOMPARE(frame->url(), url); + QCOMPARE(frame->requestedUrl(), url); + QCOMPARE(m_page->history()->count(), 1); + + url = QUrl("qrc:/test2.html"); + frame->setUrl(url); + ::waitForSignal(m_page, SIGNAL(loadFinished(bool))); + expectedLoadFinishedCount++; + QCOMPARE(spy.count(), expectedLoadFinishedCount); + QCOMPARE(frame->url(), url); + QCOMPARE(frame->requestedUrl(), url); + QCOMPARE(m_page->history()->count(), 2); +} + QTEST_MAIN(tst_QWebFrame) #include "tst_qwebframe.moc" diff --git a/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp b/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp index 4417ac5..d43b2de 100644 --- a/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp +++ b/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp @@ -126,6 +126,11 @@ private slots: void screenshot_data(); void screenshot(); +#if defined(ENABLE_WEBGL) && ENABLE_WEBGL + void acceleratedWebGLScreenshotWithoutView(); + void unacceleratedWebGLScreenshotWithoutView(); +#endif + void originatingObjectInNetworkRequests(); void testJSPrompt(); void showModalDialog(); @@ -135,6 +140,7 @@ private slots: void infiniteLoopJS(); void navigatorCookieEnabled(); void deleteQWebViewTwice(); + void renderOnRepaintRequestedShouldNotRecurse(); #ifdef Q_OS_MAC void macCopyUnicodeToClipboard(); @@ -2117,6 +2123,28 @@ void tst_QWebPage::inputMethods() clickOnPage(page, inputElement.geometry().center()); QVERIFY(!viewEventSpy.contains(QEvent::RequestSoftwareInputPanel)); + + // START - Newline test for textarea + qApp->processEvents(); + page->mainFrame()->setHtml("<html><body>" \ + "<textarea rows='5' cols='1' id='input5' value=''/>" \ + "</body></html>"); + page->mainFrame()->evaluateJavaScript("var inputEle = document.getElementById('input5'); inputEle.focus(); inputEle.select();"); + QKeyEvent keyEnter(QEvent::KeyPress, Qt::Key_Enter, Qt::NoModifier); + page->event(&keyEnter); + QList<QInputMethodEvent::Attribute> attribs; + + QInputMethodEvent eventText("\n", attribs); + page->event(&eventText); + + QInputMethodEvent eventText2("third line", attribs); + page->event(&eventText2); + qApp->processEvents(); + + QString inputValue2 = page->mainFrame()->evaluateJavaScript("document.getElementById('input5').value").toString(); + QCOMPARE(inputValue2, QString("\n\nthird line")); + // END - Newline test for textarea + delete container; } @@ -2473,6 +2501,33 @@ void tst_QWebPage::screenshot() QDir::setCurrent(QApplication::applicationDirPath()); } +#if defined(ENABLE_WEBGL) && ENABLE_WEBGL +// https://bugs.webkit.org/show_bug.cgi?id=54138 +static void webGLScreenshotWithoutView(bool accelerated) +{ + QWebPage page; + page.settings()->setAttribute(QWebSettings::WebGLEnabled, true); + page.settings()->setAttribute(QWebSettings::AcceleratedCompositingEnabled, accelerated); + QWebFrame* mainFrame = page.mainFrame(); + mainFrame->setHtml("<html><body>" + "<canvas id='webgl' width='300' height='300'></canvas>" + "<script>document.getElementById('webgl').getContext('experimental-webgl')</script>" + "</body></html>"); + + takeScreenshot(&page); +} + +void tst_QWebPage::acceleratedWebGLScreenshotWithoutView() +{ + webGLScreenshotWithoutView(true); +} + +void tst_QWebPage::unacceleratedWebGLScreenshotWithoutView() +{ + webGLScreenshotWithoutView(false); +} +#endif + void tst_QWebPage::originatingObjectInNetworkRequests() { TestNetworkManager* networkManager = new TestNetworkManager(m_page); @@ -2766,5 +2821,54 @@ void tst_QWebPage::deleteQWebViewTwice() } } +class RepaintRequestedRenderer : public QObject { + Q_OBJECT +public: + RepaintRequestedRenderer(QWebPage* page, QPainter* painter) + : m_page(page) + , m_painter(painter) + , m_recursionCount(0) + { + connect(m_page, SIGNAL(repaintRequested(QRect)), this, SLOT(onRepaintRequested(QRect))); + } + +signals: + void finished(); + +private slots: + void onRepaintRequested(const QRect& rect) + { + QCOMPARE(m_recursionCount, 0); + + m_recursionCount++; + m_page->mainFrame()->render(m_painter, rect); + m_recursionCount--; + + QMetaObject::invokeMethod(this, "finished", Qt::QueuedConnection); + } + +private: + QWebPage* m_page; + QPainter* m_painter; + int m_recursionCount; +}; + +void tst_QWebPage::renderOnRepaintRequestedShouldNotRecurse() +{ + QSize viewportSize(720, 576); + QWebPage page; + + QImage image(viewportSize, QImage::Format_ARGB32); + QPainter painter(&image); + + page.setPreferredContentsSize(viewportSize); + page.setViewportSize(viewportSize); + RepaintRequestedRenderer r(&page, &painter); + + page.mainFrame()->setHtml("zalan loves trunk", QUrl()); + + QVERIFY(::waitForSignal(&r, SIGNAL(finished()))); +} + QTEST_MAIN(tst_QWebPage) #include "tst_qwebpage.moc" diff --git a/Source/WebKit/qt/tests/qwebview/tst_qwebview.cpp b/Source/WebKit/qt/tests/qwebview/tst_qwebview.cpp index 533d4e5..c7600fc 100644 --- a/Source/WebKit/qt/tests/qwebview/tst_qwebview.cpp +++ b/Source/WebKit/qt/tests/qwebview/tst_qwebview.cpp @@ -42,6 +42,7 @@ public slots: void cleanup(); private slots: + void renderingAfterMaxAndBack(); void renderHints(); void getWebKitVersion(); @@ -207,9 +208,9 @@ void tst_QWebView::microFocusCoordinates() page->mainFrame()->setHtml("<html><body>" \ "<input type='text' id='input1' style='font--family: serif' value='' maxlength='20'/><br>" \ - "<canvas id='canvas1' width='500' height='500'/>" \ + "<canvas id='canvas1' width='500' height='500'></canvas>" \ "<input type='password'/><br>" \ - "<canvas id='canvas2' width='500' height='500'/>" \ + "<canvas id='canvas2' width='500' height='500'></canvas>" \ "</body></html>"); page->mainFrame()->setFocus(); @@ -438,6 +439,63 @@ void tst_QWebView::setPalette() QVERIFY(img1 != img2); } +void tst_QWebView::renderingAfterMaxAndBack() +{ + QUrl url = QUrl("data:text/html,<html><head></head>" + "<body width=1024 height=768 bgcolor=red>" + "</body>" + "</html>"); + + QWebView view; + view.page()->mainFrame()->load(url); + QVERIFY(waitForSignal(&view, SIGNAL(loadFinished(bool)))); + view.show(); + + view.page()->settings()->setMaximumPagesInCache(3); + + QTest::qWaitForWindowShown(&view); + + QPixmap reference(view.page()->viewportSize()); + reference.fill(Qt::red); + + QPixmap image(view.page()->viewportSize()); + QPainter painter(&image); + view.page()->currentFrame()->render(&painter); + + QCOMPARE(image, reference); + + QUrl url2 = QUrl("data:text/html,<html><head></head>" + "<body width=1024 height=768 bgcolor=blue>" + "</body>" + "</html>"); + view.page()->mainFrame()->load(url2); + + QVERIFY(waitForSignal(&view, SIGNAL(loadFinished(bool)))); + + view.showMaximized(); + + QTest::qWaitForWindowShown(&view); + + QPixmap reference2(view.page()->viewportSize()); + reference2.fill(Qt::blue); + + QPixmap image2(view.page()->viewportSize()); + QPainter painter2(&image2); + view.page()->currentFrame()->render(&painter2); + + QCOMPARE(image2, reference2); + + view.back(); + + QPixmap reference3(view.page()->viewportSize()); + reference3.fill(Qt::red); + QPixmap image3(view.page()->viewportSize()); + QPainter painter3(&image3); + view.page()->currentFrame()->render(&painter3); + + QCOMPARE(image3, reference3); +} + QTEST_MAIN(tst_QWebView) #include "tst_qwebview.moc" diff --git a/Source/WebKit/qt/tests/tests.pri b/Source/WebKit/qt/tests/tests.pri index bb519eb..ebb6f8e 100644 --- a/Source/WebKit/qt/tests/tests.pri +++ b/Source/WebKit/qt/tests/tests.pri @@ -32,3 +32,5 @@ symbian { # This define is used by some tests to look up resources in the source tree !symbian: DEFINES += TESTS_SOURCE_DIR=\\\"$$PWD/\\\" +DEFINES -= QT_ASCII_CAST_WARNINGS + diff --git a/Source/WebKit/qt/tests/tests.pro b/Source/WebKit/qt/tests/tests.pro index e5b7408..529fa04 100644 --- a/Source/WebKit/qt/tests/tests.pro +++ b/Source/WebKit/qt/tests/tests.pro @@ -3,3 +3,6 @@ TEMPLATE = subdirs SUBDIRS = qwebframe qwebpage qwebelement qgraphicswebview qwebhistoryinterface qwebview qwebhistory qwebinspector hybridPixmap contains(QT_CONFIG, declarative): SUBDIRS += qdeclarativewebview SUBDIRS += benchmarks/painting benchmarks/loading +contains(DEFINES, ENABLE_WEBGL=1) { + SUBDIRS += benchmarks/webgl +} diff --git a/Source/WebKit/win/AccessibleBase.h b/Source/WebKit/win/AccessibleBase.h index df2d927..008d580 100644 --- a/Source/WebKit/win/AccessibleBase.h +++ b/Source/WebKit/win/AccessibleBase.h @@ -26,10 +26,9 @@ #ifndef AccessibleBase_h #define AccessibleBase_h +#include "WebKit.h" #include <WebCore/AccessibilityObject.h> #include <WebCore/AccessibilityObjectWrapperWin.h> -#include <WebKit/WebKit.h> -#include <oleacc.h> class DECLSPEC_UUID("3dbd565b-db22-4d88-8e0e-778bde54524a") AccessibleBase : public IAccessibleComparable, public IServiceProvider, public WebCore::AccessibilityObjectWrapper { public: diff --git a/Source/WebKit/win/AccessibleDocument.h b/Source/WebKit/win/AccessibleDocument.h index aa38be8..bc13613 100644 --- a/Source/WebKit/win/AccessibleDocument.h +++ b/Source/WebKit/win/AccessibleDocument.h @@ -27,14 +27,11 @@ #define AccessibleDocument_h #include "AccessibleBase.h" -#include "WebKit.h" - -using WebCore::Document; class AccessibleDocument : public AccessibleBase { public: - AccessibleDocument(Document*); - Document* document() const; + AccessibleDocument(WebCore::Document*); + WebCore::Document* document() const; protected: virtual long role() const; diff --git a/Source/WebKit/win/CFDictionaryPropertyBag.h b/Source/WebKit/win/CFDictionaryPropertyBag.h index 3cac464..17964e5 100644 --- a/Source/WebKit/win/CFDictionaryPropertyBag.h +++ b/Source/WebKit/win/CFDictionaryPropertyBag.h @@ -26,6 +26,7 @@ #ifndef CFDictionaryPropertyBag_h #define CFDictionaryPropertyBag_h +#include "WebKit.h" #include <WebCore/COMPtr.h> #include <wtf/RetainPtr.h> diff --git a/Source/WebKit/win/COMPropertyBag.h b/Source/WebKit/win/COMPropertyBag.h index 620458e..dd0a8c4 100644 --- a/Source/WebKit/win/COMPropertyBag.h +++ b/Source/WebKit/win/COMPropertyBag.h @@ -1,234 +1,235 @@ -/*
- * Copyright (C) 2008 Apple 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. ``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
- * 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 COMPropertyBag_h
-#define COMPropertyBag_h
-
-#define NOMINMAX
-#include <unknwn.h>
-
-#include <wtf/Noncopyable.h>
-#include <wtf/HashMap.h>
-
-#include "COMVariantSetter.h"
-
-template<typename ValueType, typename KeyType = typename WTF::String, typename HashType = typename WTF::StringHash>
-class COMPropertyBag : public IPropertyBag, public IPropertyBag2 {
- WTF_MAKE_NONCOPYABLE(COMPropertyBag);
-public:
- typedef HashMap<KeyType, ValueType, HashType> HashMapType;
-
- static COMPropertyBag* createInstance(const HashMapType&);
- static COMPropertyBag* adopt(HashMapType&);
-
- // IUnknown
- virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
- virtual ULONG STDMETHODCALLTYPE AddRef();
- virtual ULONG STDMETHODCALLTYPE Release();
-
- // IPropertyBag
- virtual HRESULT STDMETHODCALLTYPE Read(LPCOLESTR pszPropName, VARIANT*, IErrorLog*);
- virtual HRESULT STDMETHODCALLTYPE Write(LPCOLESTR pszPropName, VARIANT*);
-
- // IPropertyBag2
- virtual HRESULT STDMETHODCALLTYPE Read(ULONG cProperties, PROPBAG2*, IErrorLog*, VARIANT* pvarValue, HRESULT* phrError);
- virtual HRESULT STDMETHODCALLTYPE Write(ULONG cProperties, PROPBAG2*, VARIANT*);
- virtual HRESULT STDMETHODCALLTYPE CountProperties(ULONG* pcProperties);
- virtual HRESULT STDMETHODCALLTYPE GetPropertyInfo(ULONG iProperty, ULONG cProperties, PROPBAG2* pPropBag, ULONG* pcProperties);
- virtual HRESULT STDMETHODCALLTYPE LoadObject(LPCOLESTR pstrName, DWORD dwHint, IUnknown*, IErrorLog*);
-
-private:
- COMPropertyBag()
- : m_refCount(0)
- {
- }
-
- COMPropertyBag(const HashMapType& hashMap)
- : m_refCount(0)
- , m_hashMap(hashMap)
- {
- }
-
- ~COMPropertyBag() {}
-
- ULONG m_refCount;
- HashMapType m_hashMap;
-};
-
-// COMPropertyBag ------------------------------------------------------------------
-template<typename ValueType, typename KeyType, typename HashType>
-COMPropertyBag<ValueType, KeyType, HashType>* COMPropertyBag<typename ValueType, typename KeyType, HashType>::createInstance(const HashMapType& hashMap)
-{
- COMPropertyBag* instance = new COMPropertyBag(hashMap);
- instance->AddRef();
- return instance;
-}
-
-template<typename ValueType, typename KeyType, typename HashType>
-COMPropertyBag<ValueType, KeyType, HashType>* COMPropertyBag<typename ValueType, typename KeyType, HashType>::adopt(HashMapType& hashMap)
-{
- COMPropertyBag* instance = new COMPropertyBag;
- instance->m_hashMap.swap(hashMap);
- instance->AddRef();
- return instance;
-}
-
-// IUnknown ------------------------------------------------------------------------
-template<typename ValueType, typename KeyType, typename HashType>
-HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::QueryInterface(REFIID riid, void** ppvObject)
-{
- *ppvObject = 0;
- if (IsEqualGUID(riid, IID_IUnknown))
- *ppvObject = static_cast<IPropertyBag*>(this);
- else if (IsEqualGUID(riid, IID_IPropertyBag))
- *ppvObject = static_cast<IPropertyBag*>(this);
- else if (IsEqualGUID(riid, IID_IPropertyBag2))
- *ppvObject = static_cast<IPropertyBag2*>(this);
- else
- return E_NOINTERFACE;
-
- AddRef();
- return S_OK;
-}
-
-template<typename ValueType, typename KeyType, typename HashType>
-ULONG STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::AddRef()
-{
- return ++m_refCount;
-}
-
-template<typename ValueType, typename KeyType, typename HashType>
-ULONG STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::Release()
-{
- ULONG newRef = --m_refCount;
- if (!newRef)
- delete this;
-
- return newRef;
-}
-
-// IPropertyBag --------------------------------------------------------------------
-
-template<typename ValueType, typename KeyType, typename HashType>
-HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::Read(LPCOLESTR pszPropName, VARIANT* pVar, IErrorLog* pErrorLog)
-{
- if (!pszPropName)
- return E_POINTER;
-
- HashMapType::const_iterator it = m_hashMap.find(String(pszPropName));
- HashMapType::const_iterator end = m_hashMap.end();
- if (it == end)
- return E_INVALIDARG;
-
- VARTYPE requestedType = V_VT(pVar);
- V_VT(pVar) = VT_EMPTY;
- COMVariantSetter<ValueType>::setVariant(pVar, it->second);
-
- if (requestedType != COMVariantSetter<ValueType>::variantType(it->second) && requestedType != VT_EMPTY)
- return ::VariantChangeType(pVar, pVar, VARIANT_NOUSEROVERRIDE | VARIANT_ALPHABOOL, requestedType);
-
- return S_OK;
-}
-
-template<typename ValueType, typename KeyType, typename HashType>
-HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::Write(LPCOLESTR pszPropName, VARIANT* pVar)
-{
- return E_FAIL;
-}
-
-template<typename ValueType, typename KeyType, typename HashType>
-HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::Read(ULONG cProperties, PROPBAG2* pPropBag, IErrorLog* pErrorLog, VARIANT* pvarValue, HRESULT* phrError)
-{
- if (!pPropBag || !pvarValue || !phrError)
- return E_POINTER;
-
- HRESULT hr = S_OK;
-
- for (ULONG i = 0; i < cProperties; ++i) {
- VariantInit(&pvarValue[i]);
- pvarValue[i].vt = pPropBag[i].vt;
- phrError[i] = Read(pPropBag[i].pstrName, &pvarValue[i], pErrorLog);
- if (FAILED(phrError[i]))
- hr = E_FAIL;
- }
-
- return hr;
-}
-
-template<typename ValueType, typename KeyType, typename HashType>
-HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::Write(ULONG cProperties, PROPBAG2*, VARIANT*)
-{
- return E_NOTIMPL;
-}
-
-template<typename ValueType, typename KeyType, typename HashType>
-HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::CountProperties(ULONG* pcProperties)
-{
- if (!pcProperties)
- return E_POINTER;
-
- *pcProperties = m_hashMap.size();
- return S_OK;
-}
-
-template<typename ValueType, typename KeyType, typename HashType>
-HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::GetPropertyInfo(ULONG iProperty, ULONG cProperties, PROPBAG2* pPropBag, ULONG* pcProperties)
-{
- if (!pPropBag || !pcProperties)
- return E_POINTER;
-
- if (m_hashMap.size() <= iProperty)
- return E_INVALIDARG;
-
- *pcProperties = 0;
- typedef HashMapType::const_iterator Iterator;
- Iterator current = m_hashMap.begin();
- Iterator end = m_hashMap.end();
- for (ULONG i = 0; i < iProperty; ++i, ++current)
- ;
- for (ULONG j = 0; j < cProperties && current != end; ++j, ++current) {
- // FIXME: the following fields aren't filled in
- //pPropBag[j].cfType; // (CLIPFORMAT) Clipboard format or MIME type of the property.
- //pPropBag[j].clsid; // (CLSID) CLSID of the object. This member is valid only if dwType is PROPBAG2_TYPE_OBJECT.
-
- pPropBag[j].dwType = PROPBAG2_TYPE_DATA;
- pPropBag[j].vt = COMVariantSetter<ValueType>::variantType(current->second);
- pPropBag[j].dwHint = iProperty + j;
- pPropBag[j].pstrName = (LPOLESTR)CoTaskMemAlloc(sizeof(wchar_t)*(current->first.length()+1));
- if (!pPropBag[j].pstrName)
- return E_OUTOFMEMORY;
- wcscpy_s(pPropBag[j].pstrName, current->first.length()+1, static_cast<String>(current->first).charactersWithNullTermination());
- ++*pcProperties;
- }
- return S_OK;
-}
-
-template<typename ValueType, typename KeyType, typename HashType>
-HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::LoadObject(LPCOLESTR pstrName, DWORD dwHint, IUnknown*, IErrorLog*)
-{
- return E_NOTIMPL;
-}
-
-#endif // COMPropertyBag_h
+/* + * Copyright (C) 2008 Apple 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. ``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 + * 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 COMPropertyBag_h +#define COMPropertyBag_h + +#define NOMINMAX +#include <ocidl.h> +#include <unknwn.h> + +#include <wtf/Noncopyable.h> +#include <wtf/HashMap.h> + +#include "COMVariantSetter.h" + +template<typename ValueType, typename KeyType = typename WTF::String, typename HashType = typename WTF::StringHash> +class COMPropertyBag : public IPropertyBag, public IPropertyBag2 { + WTF_MAKE_NONCOPYABLE(COMPropertyBag); +public: + typedef HashMap<KeyType, ValueType, HashType> HashMapType; + + static COMPropertyBag* createInstance(const HashMapType&); + static COMPropertyBag* adopt(HashMapType&); + + // IUnknown + virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject); + virtual ULONG STDMETHODCALLTYPE AddRef(); + virtual ULONG STDMETHODCALLTYPE Release(); + + // IPropertyBag + virtual HRESULT STDMETHODCALLTYPE Read(LPCOLESTR pszPropName, VARIANT*, IErrorLog*); + virtual HRESULT STDMETHODCALLTYPE Write(LPCOLESTR pszPropName, VARIANT*); + + // IPropertyBag2 + virtual HRESULT STDMETHODCALLTYPE Read(ULONG cProperties, PROPBAG2*, IErrorLog*, VARIANT* pvarValue, HRESULT* phrError); + virtual HRESULT STDMETHODCALLTYPE Write(ULONG cProperties, PROPBAG2*, VARIANT*); + virtual HRESULT STDMETHODCALLTYPE CountProperties(ULONG* pcProperties); + virtual HRESULT STDMETHODCALLTYPE GetPropertyInfo(ULONG iProperty, ULONG cProperties, PROPBAG2* pPropBag, ULONG* pcProperties); + virtual HRESULT STDMETHODCALLTYPE LoadObject(LPCOLESTR pstrName, DWORD dwHint, IUnknown*, IErrorLog*); + +private: + COMPropertyBag() + : m_refCount(0) + { + } + + COMPropertyBag(const HashMapType& hashMap) + : m_refCount(0) + , m_hashMap(hashMap) + { + } + + ~COMPropertyBag() {} + + ULONG m_refCount; + HashMapType m_hashMap; +}; + +// COMPropertyBag ------------------------------------------------------------------ +template<typename ValueType, typename KeyType, typename HashType> +COMPropertyBag<ValueType, KeyType, HashType>* COMPropertyBag<typename ValueType, typename KeyType, HashType>::createInstance(const HashMapType& hashMap) +{ + COMPropertyBag* instance = new COMPropertyBag(hashMap); + instance->AddRef(); + return instance; +} + +template<typename ValueType, typename KeyType, typename HashType> +COMPropertyBag<ValueType, KeyType, HashType>* COMPropertyBag<typename ValueType, typename KeyType, HashType>::adopt(HashMapType& hashMap) +{ + COMPropertyBag* instance = new COMPropertyBag; + instance->m_hashMap.swap(hashMap); + instance->AddRef(); + return instance; +} + +// IUnknown ------------------------------------------------------------------------ +template<typename ValueType, typename KeyType, typename HashType> +HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::QueryInterface(REFIID riid, void** ppvObject) +{ + *ppvObject = 0; + if (IsEqualGUID(riid, IID_IUnknown)) + *ppvObject = static_cast<IPropertyBag*>(this); + else if (IsEqualGUID(riid, IID_IPropertyBag)) + *ppvObject = static_cast<IPropertyBag*>(this); + else if (IsEqualGUID(riid, IID_IPropertyBag2)) + *ppvObject = static_cast<IPropertyBag2*>(this); + else + return E_NOINTERFACE; + + AddRef(); + return S_OK; +} + +template<typename ValueType, typename KeyType, typename HashType> +ULONG STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::AddRef() +{ + return ++m_refCount; +} + +template<typename ValueType, typename KeyType, typename HashType> +ULONG STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::Release() +{ + ULONG newRef = --m_refCount; + if (!newRef) + delete this; + + return newRef; +} + +// IPropertyBag -------------------------------------------------------------------- + +template<typename ValueType, typename KeyType, typename HashType> +HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::Read(LPCOLESTR pszPropName, VARIANT* pVar, IErrorLog* pErrorLog) +{ + if (!pszPropName) + return E_POINTER; + + HashMapType::const_iterator it = m_hashMap.find(String(pszPropName)); + HashMapType::const_iterator end = m_hashMap.end(); + if (it == end) + return E_INVALIDARG; + + VARTYPE requestedType = V_VT(pVar); + V_VT(pVar) = VT_EMPTY; + COMVariantSetter<ValueType>::setVariant(pVar, it->second); + + if (requestedType != COMVariantSetter<ValueType>::variantType(it->second) && requestedType != VT_EMPTY) + return ::VariantChangeType(pVar, pVar, VARIANT_NOUSEROVERRIDE | VARIANT_ALPHABOOL, requestedType); + + return S_OK; +} + +template<typename ValueType, typename KeyType, typename HashType> +HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::Write(LPCOLESTR pszPropName, VARIANT* pVar) +{ + return E_FAIL; +} + +template<typename ValueType, typename KeyType, typename HashType> +HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::Read(ULONG cProperties, PROPBAG2* pPropBag, IErrorLog* pErrorLog, VARIANT* pvarValue, HRESULT* phrError) +{ + if (!pPropBag || !pvarValue || !phrError) + return E_POINTER; + + HRESULT hr = S_OK; + + for (ULONG i = 0; i < cProperties; ++i) { + VariantInit(&pvarValue[i]); + pvarValue[i].vt = pPropBag[i].vt; + phrError[i] = Read(pPropBag[i].pstrName, &pvarValue[i], pErrorLog); + if (FAILED(phrError[i])) + hr = E_FAIL; + } + + return hr; +} + +template<typename ValueType, typename KeyType, typename HashType> +HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::Write(ULONG cProperties, PROPBAG2*, VARIANT*) +{ + return E_NOTIMPL; +} + +template<typename ValueType, typename KeyType, typename HashType> +HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::CountProperties(ULONG* pcProperties) +{ + if (!pcProperties) + return E_POINTER; + + *pcProperties = m_hashMap.size(); + return S_OK; +} + +template<typename ValueType, typename KeyType, typename HashType> +HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::GetPropertyInfo(ULONG iProperty, ULONG cProperties, PROPBAG2* pPropBag, ULONG* pcProperties) +{ + if (!pPropBag || !pcProperties) + return E_POINTER; + + if (m_hashMap.size() <= iProperty) + return E_INVALIDARG; + + *pcProperties = 0; + typedef HashMapType::const_iterator Iterator; + Iterator current = m_hashMap.begin(); + Iterator end = m_hashMap.end(); + for (ULONG i = 0; i < iProperty; ++i, ++current) + ; + for (ULONG j = 0; j < cProperties && current != end; ++j, ++current) { + // FIXME: the following fields aren't filled in + //pPropBag[j].cfType; // (CLIPFORMAT) Clipboard format or MIME type of the property. + //pPropBag[j].clsid; // (CLSID) CLSID of the object. This member is valid only if dwType is PROPBAG2_TYPE_OBJECT. + + pPropBag[j].dwType = PROPBAG2_TYPE_DATA; + pPropBag[j].vt = COMVariantSetter<ValueType>::variantType(current->second); + pPropBag[j].dwHint = iProperty + j; + pPropBag[j].pstrName = (LPOLESTR)CoTaskMemAlloc(sizeof(wchar_t)*(current->first.length()+1)); + if (!pPropBag[j].pstrName) + return E_OUTOFMEMORY; + wcscpy_s(pPropBag[j].pstrName, current->first.length()+1, static_cast<String>(current->first).charactersWithNullTermination()); + ++*pcProperties; + } + return S_OK; +} + +template<typename ValueType, typename KeyType, typename HashType> +HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::LoadObject(LPCOLESTR pstrName, DWORD dwHint, IUnknown*, IErrorLog*) +{ + return E_NOTIMPL; +} + +#endif // COMPropertyBag_h diff --git a/Source/WebKit/win/COMVariantSetter.h b/Source/WebKit/win/COMVariantSetter.h index feb233c..e211dca 100644 --- a/Source/WebKit/win/COMVariantSetter.h +++ b/Source/WebKit/win/COMVariantSetter.h @@ -1,194 +1,194 @@ -/*
- * Copyright (C) 2007, 2008 Apple 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. ``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
- * 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 COMVariantSetter_h
-#define COMVariantSetter_h
-
-#include <WebCore/BString.h>
-#include <WebCore/COMPtr.h>
-#include <wtf/Assertions.h>
-#include <wtf/Forward.h>
-
-template<typename T> struct COMVariantSetter {};
-
-template<typename T> struct COMVariantSetterBase
-{
- static inline VARENUM variantType(const T&)
- {
- return COMVariantSetter<T>::VariantType;
- }
-};
-
-template<> struct COMVariantSetter<WTF::String> : COMVariantSetterBase<WTF::String>
-{
- static const VARENUM VariantType = VT_BSTR;
-
- static void setVariant(VARIANT* variant, const WTF::String& value)
- {
- ASSERT(V_VT(variant) == VT_EMPTY);
-
- V_VT(variant) = VariantType;
- V_BSTR(variant) = WebCore::BString(value).release();
- }
-};
-
-template<> struct COMVariantSetter<bool> : COMVariantSetterBase<bool>
-{
- static const VARENUM VariantType = VT_BOOL;
-
- static void setVariant(VARIANT* variant, bool value)
- {
- ASSERT(V_VT(variant) == VT_EMPTY);
-
- V_VT(variant) = VariantType;
- V_BOOL(variant) = value;
- }
-};
-
-template<> struct COMVariantSetter<unsigned long long> : COMVariantSetterBase<unsigned long long>
-{
- static const VARENUM VariantType = VT_UI8;
-
- static void setVariant(VARIANT* variant, unsigned long long value)
- {
- ASSERT(V_VT(variant) == VT_EMPTY);
-
- V_VT(variant) = VariantType;
- V_UI8(variant) = value;
- }
-};
-
-template<> struct COMVariantSetter<int> : COMVariantSetterBase<int>
-{
- static const VARENUM VariantType = VT_I4;
-
- static void setVariant(VARIANT* variant, int value)
- {
- ASSERT(V_VT(variant) == VT_EMPTY);
-
- V_VT(variant) = VariantType;
- V_I4(variant) = value;
- }
-};
-
-template<> struct COMVariantSetter<float> : COMVariantSetterBase<float>
-{
- static const VARENUM VariantType = VT_R4;
-
- static void setVariant(VARIANT* variant, float value)
- {
- ASSERT(V_VT(variant) == VT_EMPTY);
-
- V_VT(variant) = VariantType;
- V_R4(variant) = value;
- }
-};
-
-template<typename T> struct COMVariantSetter<COMPtr<T> > : COMVariantSetterBase<COMPtr<T> >
-{
- static const VARENUM VariantType = VT_UNKNOWN;
-
- static void setVariant(VARIANT* variant, const COMPtr<T>& value)
- {
- ASSERT(V_VT(variant) == VT_EMPTY);
-
- V_VT(variant) = VariantType;
- V_UNKNOWN(variant) = value.get();
- value->AddRef();
- }
-};
-
-template<typename COMType, typename UnderlyingType>
-struct COMIUnknownVariantSetter : COMVariantSetterBase<UnderlyingType>
-{
- static const VARENUM VariantType = VT_UNKNOWN;
-
- static void setVariant(VARIANT* variant, const UnderlyingType& value)
- {
- ASSERT(V_VT(variant) == VT_EMPTY);
-
- V_VT(variant) = VariantType;
- V_UNKNOWN(variant) = COMType::createInstance(value);
- }
-};
-
-class COMVariant {
-public:
- COMVariant()
- {
- ::VariantInit(&m_variant);
- }
-
- template<typename UnderlyingType>
- COMVariant(UnderlyingType value)
- {
- ::VariantInit(&m_variant);
- COMVariantSetter<UnderlyingType>::setVariant(&m_variant, value);
- }
-
- ~COMVariant()
- {
- ::VariantClear(&m_variant);
- }
-
- COMVariant(const COMVariant& other)
- {
- ::VariantInit(&m_variant);
- other.copyTo(&m_variant);
- }
-
- COMVariant& operator=(const COMVariant& other)
- {
- other.copyTo(&m_variant);
- return *this;
- }
-
- void copyTo(VARIANT* dest) const
- {
- ::VariantCopy(dest, const_cast<VARIANT*>(&m_variant));
- }
-
- VARENUM variantType() const { return static_cast<VARENUM>(V_VT(&m_variant)); }
-
-private:
- VARIANT m_variant;
-};
-
-template<> struct COMVariantSetter<COMVariant>
-{
- static inline VARENUM variantType(const COMVariant& value)
- {
- return value.variantType();
- }
-
- static void setVariant(VARIANT* variant, const COMVariant& value)
- {
- ASSERT(V_VT(variant) == VT_EMPTY);
-
- value.copyTo(variant);
- }
-};
-
-#endif // COMVariantSetter
+/* + * Copyright (C) 2007, 2008 Apple 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. ``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 + * 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 COMVariantSetter_h +#define COMVariantSetter_h + +#include <WebCore/BString.h> +#include <WebCore/COMPtr.h> +#include <wtf/Assertions.h> +#include <wtf/Forward.h> + +template<typename T> struct COMVariantSetter {}; + +template<typename T> struct COMVariantSetterBase +{ + static inline VARENUM variantType(const T&) + { + return COMVariantSetter<T>::VariantType; + } +}; + +template<> struct COMVariantSetter<WTF::String> : COMVariantSetterBase<WTF::String> +{ + static const VARENUM VariantType = VT_BSTR; + + static void setVariant(VARIANT* variant, const WTF::String& value) + { + ASSERT(V_VT(variant) == VT_EMPTY); + + V_VT(variant) = VariantType; + V_BSTR(variant) = WebCore::BString(value).release(); + } +}; + +template<> struct COMVariantSetter<bool> : COMVariantSetterBase<bool> +{ + static const VARENUM VariantType = VT_BOOL; + + static void setVariant(VARIANT* variant, bool value) + { + ASSERT(V_VT(variant) == VT_EMPTY); + + V_VT(variant) = VariantType; + V_BOOL(variant) = value; + } +}; + +template<> struct COMVariantSetter<unsigned long long> : COMVariantSetterBase<unsigned long long> +{ + static const VARENUM VariantType = VT_UI8; + + static void setVariant(VARIANT* variant, unsigned long long value) + { + ASSERT(V_VT(variant) == VT_EMPTY); + + V_VT(variant) = VariantType; + V_UI8(variant) = value; + } +}; + +template<> struct COMVariantSetter<int> : COMVariantSetterBase<int> +{ + static const VARENUM VariantType = VT_I4; + + static void setVariant(VARIANT* variant, int value) + { + ASSERT(V_VT(variant) == VT_EMPTY); + + V_VT(variant) = VariantType; + V_I4(variant) = value; + } +}; + +template<> struct COMVariantSetter<float> : COMVariantSetterBase<float> +{ + static const VARENUM VariantType = VT_R4; + + static void setVariant(VARIANT* variant, float value) + { + ASSERT(V_VT(variant) == VT_EMPTY); + + V_VT(variant) = VariantType; + V_R4(variant) = value; + } +}; + +template<typename T> struct COMVariantSetter<COMPtr<T> > : COMVariantSetterBase<COMPtr<T> > +{ + static const VARENUM VariantType = VT_UNKNOWN; + + static void setVariant(VARIANT* variant, const COMPtr<T>& value) + { + ASSERT(V_VT(variant) == VT_EMPTY); + + V_VT(variant) = VariantType; + V_UNKNOWN(variant) = value.get(); + value->AddRef(); + } +}; + +template<typename COMType, typename UnderlyingType> +struct COMIUnknownVariantSetter : COMVariantSetterBase<UnderlyingType> +{ + static const VARENUM VariantType = VT_UNKNOWN; + + static void setVariant(VARIANT* variant, const UnderlyingType& value) + { + ASSERT(V_VT(variant) == VT_EMPTY); + + V_VT(variant) = VariantType; + V_UNKNOWN(variant) = COMType::createInstance(value); + } +}; + +class COMVariant { +public: + COMVariant() + { + ::VariantInit(&m_variant); + } + + template<typename UnderlyingType> + COMVariant(UnderlyingType value) + { + ::VariantInit(&m_variant); + COMVariantSetter<UnderlyingType>::setVariant(&m_variant, value); + } + + ~COMVariant() + { + ::VariantClear(&m_variant); + } + + COMVariant(const COMVariant& other) + { + ::VariantInit(&m_variant); + other.copyTo(&m_variant); + } + + COMVariant& operator=(const COMVariant& other) + { + other.copyTo(&m_variant); + return *this; + } + + void copyTo(VARIANT* dest) const + { + ::VariantCopy(dest, const_cast<VARIANT*>(&m_variant)); + } + + VARENUM variantType() const { return static_cast<VARENUM>(V_VT(&m_variant)); } + +private: + VARIANT m_variant; +}; + +template<> struct COMVariantSetter<COMVariant> +{ + static inline VARENUM variantType(const COMVariant& value) + { + return value.variantType(); + } + + static void setVariant(VARIANT* variant, const COMVariant& value) + { + ASSERT(V_VT(variant) == VT_EMPTY); + + value.copyTo(variant); + } +}; + +#endif // COMVariantSetter diff --git a/Source/WebKit/win/ChangeLog b/Source/WebKit/win/ChangeLog index 5540ab3..870b692 100644 --- a/Source/WebKit/win/ChangeLog +++ b/Source/WebKit/win/ChangeLog @@ -1,3 +1,443 @@ +2011-03-30 Martin Robinson <mrobinson@igalia.com> + + Reviewed by Dirk Schulze. + + [Cairo] Better separate the concerns of GraphicsContextCairo + https://bugs.webkit.org/show_bug.cgi?id=55150 + + * WebFrame.cpp: + (hdcFromContext): Modify this method to take PlatformContextCairo + instead of a cairo_t. + (WebFrame::spoolPage): Update to reflect new platform context. + (WebFrame::spoolPages): Ditto. + * WebFrame.h: Ditto. + +2011-03-30 Steve Falkenburg <sfalken@apple.com> + + Reviewed by Adam Roben. + + Update Windows production build logic for new production configurations + https://bugs.webkit.org/show_bug.cgi?id=57494 + + * WebKit.vcproj/InterfacesProduction.vsprops: + * WebKit.vcproj/WebKit.make: + * WebKit.vcproj/WebKitGUIDProduction.vsprops: + * WebKit.vcproj/WebKitLibProduction.vsprops: + +2011-03-30 Steve Falkenburg <sfalken@apple.com> + + Reviewed by Adam Roben. + + Rename Windows configuration Release_LTCG to Production for clarity + https://bugs.webkit.org/show_bug.cgi?id=57465 + + * WebKit.vcproj/Interfaces.vcproj: + * WebKit.vcproj/InterfacesProduction.vsprops: Copied from Source/WebKit/win/WebKit.vcproj/InterfacesReleaseLTCG.vsprops. + * WebKit.vcproj/InterfacesReleaseLTCG.vsprops: Removed. + * WebKit.vcproj/WebKit.sln: + * WebKit.vcproj/WebKit.submit.sln: + * WebKit.vcproj/WebKit.vcproj: + * WebKit.vcproj/WebKitGUID.vcproj: + * WebKit.vcproj/WebKitGUIDProduction.vsprops: Copied from Source/WebKit/win/WebKit.vcproj/WebKitGUIDReleaseLTCG.vsprops. + * WebKit.vcproj/WebKitGUIDReleaseLTCG.vsprops: Removed. + * WebKit.vcproj/WebKitLibProduction.vsprops: Copied from Source/WebKit/win/WebKit.vcproj/WebKitLibReleaseLTCG.vsprops. + * WebKit.vcproj/WebKitLibReleaseLTCG.vsprops: Removed. + +2011-03-29 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Adam Roben. + + [WIN] Remove unused GEN_DOMObject files + https://bugs.webkit.org/show_bug.cgi?id=57370 + + * GEN_DOMObject.cpp: Removed. + * GEN_DOMObject.h: Removed. + +2011-03-29 Steve Falkenburg <sfalken@apple.com> + + More build fix. + + * WebCoreSupport/WebPlatformStrategies.h: + +2011-03-29 Steve Falkenburg <sfalken@apple.com> + + Build fix. + + * WebCoreSupport/WebPlatformStrategies.cpp: + (WebPlatformStrategies::contextMenuItemTagLookUpInDictionary): + +2011-03-29 Patrick Gansterer <paroga@webkit.org> + + Unreviewed. Try to fix Windows build. + + * DOMEventsClasses.cpp: Added initguid.h again. + +2011-03-29 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Adam Roben. + + [WIN] Cleanup includes in WebKit files + https://bugs.webkit.org/show_bug.cgi?id=57381 + + Add missing includes to fix build without precompiled header. + Also fix paths in #include statements (e.g. WTF -> wtf). + + * AccessibleBase.h: + * AccessibleDocument.h: Replace using statement with a qualified name. + * CFDictionaryPropertyBag.h: + * DOMEventsClasses.cpp: + * DOMHTMLClasses.h: + * DefaultDownloadDelegate.cpp: + * DefaultDownloadDelegate.h: + * DefaultPolicyDelegate.cpp: + * DefaultPolicyDelegate.h: + * WebCoreSupport/EmbeddedWidget.h: + * WebCoreSupport/WebInspectorDelegate.h: + * WebDataSource.h: + * WebDatabaseManager.h: + * WebElementPropertyBag.h: + * WebFramePolicyListener.h: + * WebGeolocationPolicyListener.h: + * WebHistory.h: + * WebKitClassFactory.h: + * WebScriptWorld.h: + * WebSerializedJSValue.h: + * WebUserContentURLPattern.h: + +2011-03-29 Steve Falkenburg <sfalken@apple.com> + + Reviewed by Darin Adler. + + Use per-configuration vsprops in WebKit to avoid WebKitVSPropsRedirectionDir removal by MSVC IDE + https://bugs.webkit.org/show_bug.cgi?id=57383 + + Visual Studio's IDE was removing instances of $(WebKitVSPropsRedirectionDir) from + InheritedPropertySheet rules in our vcproj files when the vcproj was edited from within + the IDE. To avoid this, add a separate vsprops file for each project configuration that + contains the required inherited property sheets. + + * WebKit.vcproj/Interfaces.vcproj: + * WebKit.vcproj/InterfacesDebug.vsprops: Added. + * WebKit.vcproj/InterfacesDebugAll.vsprops: Added. + * WebKit.vcproj/InterfacesDebugCairoCFLite.vsprops: Added. + * WebKit.vcproj/InterfacesRelease.vsprops: Added. + * WebKit.vcproj/InterfacesReleaseCairoCFLite.vsprops: Added. + * WebKit.vcproj/InterfacesReleaseLTCG.vsprops: Added. + * WebKit.vcproj/WebKit.vcproj: + * WebKit.vcproj/WebKitGUID.vcproj: + * WebKit.vcproj/WebKitGUIDDebug.vsprops: Added. + * WebKit.vcproj/WebKitGUIDDebugAll.vsprops: Added. + * WebKit.vcproj/WebKitGUIDDebugCairoCFLite.vsprops: Added. + * WebKit.vcproj/WebKitGUIDRelease.vsprops: Added. + * WebKit.vcproj/WebKitGUIDReleaseCairoCFLite.vsprops: Added. + * WebKit.vcproj/WebKitGUIDReleaseLTCG.vsprops: Added. + * WebKit.vcproj/WebKitLibDebug.vsprops: Added. + * WebKit.vcproj/WebKitLibDebugAll.vsprops: Added. + * WebKit.vcproj/WebKitLibDebugCairoCFLite.vsprops: Added. + * WebKit.vcproj/WebKitLibRelease.vsprops: Added. + * WebKit.vcproj/WebKitLibReleaseCairoCFLite.vsprops: Added. + * WebKit.vcproj/WebKitLibReleaseLTCG.vsprops: Added. + +2011-03-29 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Adam Roben. + + Remove #pragma warning push and pop statements + https://bugs.webkit.org/show_bug.cgi?id=57198 + + We do not need to disable warnings via #pragma since we started + compiling WebCore with the same compiler warnings flags as WebKit. + + * DOMCSSClasses.cpp: + * DOMCoreClasses.cpp: + * DOMEventsClasses.cpp: + * DOMHTMLClasses.cpp: + * DefaultDownloadDelegate.cpp: + * DefaultPolicyDelegate.cpp: + * MarshallingHelpers.cpp: + * WebActionPropertyBag.cpp: + * WebActionPropertyBag.h: + * WebCache.cpp: + * WebCoreSupport/WebDragClient.cpp: + * WebCoreSupport/WebEditorClient.cpp: + * WebCoreSupport/WebEditorClient.h: + * WebCoreSupport/WebFrameLoaderClient.cpp: + * WebCoreSupport/WebFrameLoaderClient.h: + * WebCoreSupport/WebInspectorClient.cpp: + * WebDocumentLoader.h: + * WebDownload.cpp: + * WebDownloadCFNet.cpp: + * WebDownloadCurl.cpp: + * WebElementPropertyBag.cpp: + * WebError.cpp: + * WebError.h: + * WebFrame.cpp: + * WebFrame.h: + * WebFramePolicyListener.cpp: + * WebFramePolicyListener.h: + * WebHistory.cpp: + * WebHistoryItem.cpp: + * WebIconDatabase.cpp: + * WebIconDatabase.h: + * WebInspector.cpp: + * WebJavaScriptCollector.cpp: + * WebKitGraphics.cpp: + * WebKitSystemBits.cpp: + * WebLocalizableStrings.cpp: + * WebMutableURLRequest.cpp: + * WebMutableURLRequest.h: + * WebNodeHighlight.cpp: + * WebNodeHighlight.h: + * WebNotificationCenter.cpp: + * WebResource.cpp: + * WebResource.h: + * WebScrollBar.cpp: + * WebScrollBar.h: + * WebURLAuthenticationChallenge.cpp: + * WebURLAuthenticationChallenge.h: + * WebURLAuthenticationChallengeSender.cpp: + * WebURLAuthenticationChallengeSenderCFNet.cpp: + * WebURLAuthenticationChallengeSenderCurl.cpp: + * WebURLCredential.cpp: + * WebURLCredential.h: + * WebURLProtectionSpace.cpp: + * WebURLProtectionSpace.h: + * WebURLResponse.cpp: + * WebURLResponse.h: + +2011-03-29 Brent Fulgham <bfulgham@webkit.org> + + Unreviewed build fix after r82247. + + * WebMutableURLRequest.cpp: The new CertificateCFWin routines + are not CFNetwork-specific. All CF-based ports can use them. + +2011-03-29 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Adam Roben. + + [WIN] Use WCHAR instead of TCHAR + https://bugs.webkit.org/show_bug.cgi?id=57191 + + We always use the UNICODE versions of windows functions, so + the usage of TCHAR makes no sense and mixing them is bad style. + + * DefaultDownloadDelegate.cpp: + * WebCoreSupport/WebChromeClient.cpp: + * WebCoreSupport/WebContextMenuClient.cpp: + * WebCoreSupport/WebInspectorClient.cpp: + * WebKitDLL.cpp: + * WebNotificationCenter.cpp: + * WebPreferences.cpp: + * WebURLResponse.cpp: + * WebView.cpp: + +2011-03-29 Jeff Miller <jeffm@apple.com> + + Reviewed by Jon Honeycutt. + + Add WebCore::copyCertificateToData() on Windows + https://bugs.webkit.org/show_bug.cgi?id=57296 + + Remove duplicate code that implemented this functionality in WebMutableURLRequest.cpp and use WebCore::copyCertificateToData() instead. + + * WebMutableURLRequest.cpp: + (WebMutableURLRequest::setClientCertificate): Use WebCore::copyCertificateToData(). + +2011-03-28 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Adam Roben. + + [WIN] Remove unused DOMCreateInstance files + https://bugs.webkit.org/show_bug.cgi?id=57193 + + * DOMCreateInstance.cpp: Removed. + * DOMCreateInstance.h: Removed. + +2011-03-28 Adele Peterson <adele@apple.com> + + Build fix. + + * WebFrame.cpp: (WebFrame::hasSpellingMarker): + Call new selectionStartHasMarkerFor method instead of selectionStartHasSpellingMarkerFor. + +2011-03-28 Jeff Miller <jeffm@apple.com> + + Reviewed by Adam Roben. + + Include certificate when sending a WebCore::ResourceError to UI process on Windows + https://bugs.webkit.org/show_bug.cgi?id=57195 + + Rename callers of wkGetSSLPeerCertificateData() to use wkGetSSLPeerCertificateDataBytePtr(), since it returns a void*. + + * WebError.cpp: + (WebError::sslPeerCertificate): + * WebURLResponse.cpp: + (WebURLResponse::sslPeerCertificate): + +2011-03-28 Darin Adler <darin@apple.com> + + Set eol-style to native on more files. I noticed the last check-in had an entire file + changing because of an EOL style change, and setting this property prevents that from + happening in future. We may want to do this systematically for more of WebKit later. + + * AccessibleBase.cpp: Added property svn:eol-style. + * AccessibleBase.h: Added property svn:eol-style. + * AccessibleDocument.cpp: Added property svn:eol-style. + * AccessibleDocument.h: Added property svn:eol-style. + * AccessibleImage.cpp: Added property svn:eol-style. + * AccessibleImage.h: Added property svn:eol-style. + * COMVariantSetter.h: Added property svn:eol-style. + * FullscreenVideoController.cpp: Added property svn:eol-style. + * FullscreenVideoController.h: Added property svn:eol-style. + * WebCoreSupport/EmbeddedWidget.cpp: Added property svn:eol-style. + * WebCoreSupport/EmbeddedWidget.h: Added property svn:eol-style. + * WebCoreSupport/WebDesktopNotificationsDelegate.cpp: Added property svn:eol-style. + * WebCoreSupport/WebDesktopNotificationsDelegate.h: Added property svn:eol-style. + * WebCoreSupport/WebFrameLoaderClient.cpp: Added property svn:eol-style. + * WebCoreSupport/WebInspectorDelegate.cpp: Added property svn:eol-style. + * WebCoreSupport/WebInspectorDelegate.h: Added property svn:eol-style. + * WebCoreSupport/WebPlatformStrategies.cpp: Added property svn:eol-style. + * WebCoreSupport/WebPlatformStrategies.h: Added property svn:eol-style. + * WebCoreSupport/WebPluginHalterClient.cpp: Added property svn:eol-style. + * WebCoreSupport/WebPluginHalterClient.h: Added property svn:eol-style. + +2011-03-28 Patrick Gansterer <paroga@webkit.org> + + Unreviewed build fix. + + * COMPropertyBag.h: Added missing include. + * WebKitCOMAPI.h: Ditto. + * WebCoreSupport/WebFrameLoaderClient.h: Added missing forward declaration. + +2011-03-25 Sam Weinig <sam@webkit.org> + + Reviewed by Jon Honeycutt. + + WebScrollBar not updating when calling WebScrollBar::setValue. + <rdar://problem/9143871> + + * WebScrollBar.cpp: + (WebScrollBar::setValue): + Call scrollToOffsetWithoutAnimation to actually update the scroll position. + +2011-03-25 Andy Estes <aestes@apple.com> + + Reviewed by Adele Peterson. + + REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js + https://bugs.webkit.org/show_bug.cgi?id=49016 + + Update objectContentType() implementation to handle the + shouldPreferPlugInsForImages flag. + + * WebFrame.cpp: + (WebFrame::objectContentType): + * WebFrame.h: + +2011-03-24 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r81916 and r81917. + http://trac.webkit.org/changeset/81916 + http://trac.webkit.org/changeset/81917 + https://bugs.webkit.org/show_bug.cgi?id=57071 + + broke a test on platforms that do not have QuickTime installed + (Requested by estes on #webkit). + + * WebFrame.cpp: + (WebFrame::objectContentType): + * WebFrame.h: + +2011-03-24 Andy Estes <aestes@apple.com> + + Reviewed by Darin Adler. + + REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js + https://bugs.webkit.org/show_bug.cgi?id=49016 + + Update objectContentType() implementation to handle the + shouldPreferPlugInsForImages flag. + + * WebFrame.cpp: + (WebFrame::objectContentType): + * WebFrame.h: + +2011-03-23 Brady Eidson <beidson@apple.com> + + Reviewed by Sam Weinig. + + Change IconDatabase opening to allow for arbitrary filenames + https://bugs.webkit.org/show_bug.cgi?id=56977 + + * WebIconDatabase.cpp: + (WebIconDatabase::startUpIconDatabase): + +2011-03-22 Brady Eidson <beidson@apple.com> + + Reviewed by Sam Weinig. + + <rdar://problem/8648311> and https://bugs.webkit.org/show_bug.cgi?id=56876 + WK2 Icon DB: Expand IconDatabaseClient interface and move it to the main thread + + Note that while the new client calls always come through on the main thread, our mechanisms to + route dispatches to the main thread are still valid and will still work. + + Update to the new IconDatabaseClient interface: + * WebIconDatabase.cpp: + (WebIconDatabase::performImport): + (WebIconDatabase::didRemoveAllIcons): + (WebIconDatabase::didImportIconURLForPageURL): + (WebIconDatabase::didImportIconDataForPageURL): + (WebIconDatabase::didChangeIconForPageURL): + (WebIconDatabase::didFinishURLImport): + * WebIconDatabase.h: + +2011-03-17 Brady Eidson <beidson@apple.com> + + Reviewed by Sam Weinig. + + https://bugs.webkit.org/show_bug.cgi?id=56425 + More groundwork for WebKit2 IconDatabase + + Update already-used function names: + * WebIconDatabase.cpp: + (WebIconDatabase::iconForURL): + (WebIconDatabase::iconURLForURL): + (WebIconDatabase::hasIconForURL): + +2011-03-18 Pavel Podivilov <podivilov@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: implement inspector session storage. + https://bugs.webkit.org/show_bug.cgi?id=56643 + + * WebCoreSupport/WebInspectorClient.cpp: + (WebInspectorClient::saveSessionSetting): + (WebInspectorClient::loadSessionSetting): + (WebInspectorFrontendClient::saveSessionSetting): + (WebInspectorFrontendClient::loadSessionSetting): + * WebCoreSupport/WebInspectorClient.h: + +2011-03-11 Brady Eidson <beidson@apple.com> + + More Windows build fix for https://bugs.webkit.org/show_bug.cgi?id=56216 + + * WebCoreStatistics.cpp: + * WebIconDatabase.cpp: + +2011-03-09 Peter Kasting <pkasting@google.com> + + Reviewed by Mihai Parparita. + + Unify Windows version checks. + https://bugs.webkit.org/show_bug.cgi?id=55979 + + * WebView.cpp: + (WebView::standardUserAgentWithApplicationName): + (webKitVersionString): + 2011-03-07 Sam Weinig <sam@webkit.org> Reviewed by Anders Carlsson. diff --git a/Source/WebKit/win/DOMCSSClasses.cpp b/Source/WebKit/win/DOMCSSClasses.cpp index b89053b..0220031 100644 --- a/Source/WebKit/win/DOMCSSClasses.cpp +++ b/Source/WebKit/win/DOMCSSClasses.cpp @@ -27,9 +27,7 @@ #include "WebKitDLL.h" #include "DOMCSSClasses.h" -#pragma warning(push, 0) #include <WebCore/PlatformString.h> -#pragma warning(pop) // DOMCSSStyleDeclaration - DOMCSSStyleDeclaration ---------------------------- diff --git a/Source/WebKit/win/DOMCoreClasses.cpp b/Source/WebKit/win/DOMCoreClasses.cpp index c6b8823..b0a6031 100644 --- a/Source/WebKit/win/DOMCoreClasses.cpp +++ b/Source/WebKit/win/DOMCoreClasses.cpp @@ -33,7 +33,6 @@ #include "DOMHTMLClasses.h" #include "WebKitGraphics.h" -#pragma warning(push, 0) #include <WebCore/BString.h> #include <WebCore/DOMWindow.h> #include <WebCore/Document.h> @@ -49,7 +48,6 @@ #include <WebCore/NodeList.h> #include <WebCore/RenderObject.h> #include <WebCore/RenderTreeAsText.h> -#pragma warning(pop) #include <initguid.h> // {3B0C0EFF-478B-4b0b-8290-D2321E08E23E} diff --git a/Source/WebKit/win/DOMCreateInstance.cpp b/Source/WebKit/win/DOMCreateInstance.cpp deleted file mode 100644 index ebaa4ce..0000000 --- a/Source/WebKit/win/DOMCreateInstance.cpp +++ /dev/null @@ -1,357 +0,0 @@ -/* - * Copyright (C) 2007 Apple 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. - */ - -// This file is a temporary hack to implement the createInstance methods for -// the COM DOM bindings. - -#include "config.h" -#include "DOMCreateInstance.h" - -#include "GEN_DOMNode.h" -#include "GEN_DOMElement.h" -#include "GEN_DOMDocument.h" -#include "GEN_DOMAttr.h" -#include "GEN_DOMText.h" -#include "GEN_DOMCDATASection.h" -#include "GEN_DOMEntityReference.h" -#include "GEN_DOMEntity.h" -#include "GEN_DOMProcessingInstruction.h" -#include "GEN_DOMComment.h" -#include "GEN_DOMHTMLElement.h" -#include "GEN_DOMHTMLDocument.h" -#include "GEN_DOMHTMLCollection.h" -#include "GEN_DOMDocumentType.h" -#include "GEN_DOMDocumentFragment.h" -#include "GEN_DOMNotation.h" -#include "GEN_DOMCSSCharsetRule.h" -#include "GEN_DOMCSSFontFaceRule.h" -#include "GEN_DOMCSSImportRule.h" -#include "GEN_DOMCSSMediaRule.h" -#include "GEN_DOMCSSPageRule.h" -#include "GEN_DOMCSSPrimitiveValue.h" -#include "GEN_DOMCSSRule.h" -#include "GEN_DOMCSSRuleList.h" -#include "GEN_DOMCSSStyleDeclaration.h" -#include "GEN_DOMCSSStyleRule.h" -#include "GEN_DOMCSSStyleSheet.h" -#include "GEN_DOMCSSValueList.h" -#include "GEN_DOMStyleSheet.h" -#include "GEN_DOMDOMImplementation.h" -#include "GEN_DOMNamedNodeMap.h" -#include "GEN_DOMNodeList.h" -#include "GEN_DOMCounter.h" -#include "GEN_DOMCSSRuleList.h" -#include "GEN_DOMCSSStyleDeclaration.h" -#include "GEN_DOMMediaList.h" -#include "GEN_DOMRect.h" -#include "GEN_DOMStyleSheet.h" -#include "GEN_DOMStyleSheetList.h" -#include "GEN_DOMEvent.h" -#include "GEN_DOMEvent.h" -#include <wtf/HashMap.h> - -#pragma warning(push, 0) -#include <WebCore/Node.h> -#include <WebCore/Element.h> -#include <WebCore/Document.h> -#include <WebCore/Attr.h> -#include <WebCore/Text.h> -#include <WebCore/COMPtr.h> -#include <WebCore/CDATASection.h> -#include <WebCore/EntityReference.h> -#include <WebCore/Entity.h> -#include <WebCore/ProcessingInstruction.h> -#include <WebCore/Comment.h> -#include <WebCore/HTMLDocument.h> -#include <WebCore/HTMLElement.h> -#include <WebCore/HTMLCollection.h> -#include <WebCore/DocumentType.h> -#include <WebCore/DocumentFragment.h> -#include <WebCore/Notation.h> -#include <WebCore/CSSCharsetRule.h> -#include <WebCore/CSSFontFaceRule.h> -#include <WebCore/CSSImportRule.h> -#include <WebCore/CSSMediaRule.h> -#include <WebCore/CSSPageRule.h> -#include <WebCore/CSSPrimitiveValue.h> -#include <WebCore/CSSRule.h> -#include <WebCore/CSSRuleList.h> -#include <WebCore/CSSStyleDeclaration.h> -#include <WebCore/CSSStyleRule.h> -#include <WebCore/CSSStyleSheet.h> -#include <WebCore/CSSValueList.h> -#include <WebCore/StyleSheet.h> -#include <WebCore/DOMImplementation.h> -#include <WebCore/NamedNodeMap.h> -#include <WebCore/NodeList.h> -#include <WebCore/Counter.h> -#include <WebCore/CSSRuleList.h> -#include <WebCore/CSSStyleDeclaration.h> -#include <WebCore/MediaList.h> -#include <WebCore/Rect.h> -#include <WebCore/StyleSheet.h> -#include <WebCore/StyleSheetList.h> -#include <WebCore/Event.h> -#include <WebCore/EventListener.h> -#pragma warning(pop) - -typedef HashMap<void*, GEN_DOMObject*> DOMWrapperCache; - -static DOMWrapperCache& domWrapperCache() -{ - static DOMWrapperCache cache; - return cache; -} - -GEN_DOMObject* getDOMWrapper(void* objectHandle) -{ - return domWrapperCache().get(objectHandle); -} - -void setDOMWrapper(void* objectHandle, GEN_DOMObject* wrapper) -{ - domWrapperCache().set(objectHandle, wrapper); -} - -void removeDOMWrapper(void* objectHandle) -{ - domWrapperCache().remove(objectHandle); -} - -#define COM_DOM_PREFIX(Type) GEN_DOM##Type -#define CREATE_ONLY_SELF(Type) \ - COM_DOM_PREFIX(Type)* COM_DOM_PREFIX(Type)::createInstance(WebCore::Type* impl) \ - { \ - if (!impl) \ - return 0; \ - if (GEN_DOMObject* cachedInstance = getDOMWrapper(impl)) { \ - cachedInstance->AddRef(); \ - return static_cast<COM_DOM_PREFIX(Type)*>(cachedInstance); \ - } \ - COMPtr<COM_DOM_PREFIX(Type)> comDOMObject = new COM_DOM_PREFIX(Type)(impl); \ - setDOMWrapper(impl, comDOMObject.get()); \ - return comDOMObject.releaseRef(); \ - } \ - -// Core - -GEN_DOMNode* GEN_DOMNode::createInstance(WebCore::Node* node) -{ - if (!node) - return 0; - - if (GEN_DOMObject* cachedInstance = getDOMWrapper(node)) { - cachedInstance->AddRef(); - return static_cast<GEN_DOMNode*>(cachedInstance); - } - - COMPtr<GEN_DOMNode> domNode; - switch (node->nodeType()) { - case WebCore::Node::ELEMENT_NODE: - // FIXME: add support for creating subclasses of HTMLElement. - // FIXME: add support for creating SVGElements and its subclasses. - if (node->isHTMLElement()) - domNode = new GEN_DOMHTMLElement(static_cast<WebCore::HTMLElement*>(node)); - else - domNode = new GEN_DOMElement(static_cast<WebCore::Element*>(node)); - break; - case WebCore::Node::ATTRIBUTE_NODE: - domNode = new GEN_DOMAttr(static_cast<WebCore::Attr*>(node)); - break; - case WebCore::Node::TEXT_NODE: - domNode = new GEN_DOMText(static_cast<WebCore::Text*>(node)); - break; - case WebCore::Node::CDATA_SECTION_NODE: - domNode = new GEN_DOMCDATASection(static_cast<WebCore::CDATASection*>(node)); - break; - case WebCore::Node::ENTITY_REFERENCE_NODE: - domNode = new GEN_DOMEntityReference(static_cast<WebCore::EntityReference*>(node)); - break; - case WebCore::Node::ENTITY_NODE: - domNode = new GEN_DOMEntity(static_cast<WebCore::Entity*>(node)); - break; - case WebCore::Node::PROCESSING_INSTRUCTION_NODE: - domNode = new GEN_DOMProcessingInstruction(static_cast<WebCore::ProcessingInstruction*>(node)); - break; - case WebCore::Node::COMMENT_NODE: - domNode = new GEN_DOMComment(static_cast<WebCore::Comment*>(node)); - break; - case WebCore::Node::DOCUMENT_NODE: - // FIXME: add support for SVGDocument. - if (static_cast<WebCore::Document*>(node)->isHTMLDocument()) - domNode = new GEN_DOMHTMLDocument(static_cast<WebCore::HTMLDocument*>(node)); - else - domNode = new GEN_DOMDocument(static_cast<WebCore::Document*>(node)); - break; - case WebCore::Node::DOCUMENT_TYPE_NODE: - domNode = new GEN_DOMDocumentType(static_cast<WebCore::DocumentType*>(node)); - break; - case WebCore::Node::DOCUMENT_FRAGMENT_NODE: - domNode = new GEN_DOMDocumentFragment(static_cast<WebCore::DocumentFragment*>(node)); - break; - case WebCore::Node::NOTATION_NODE: - domNode = new GEN_DOMNotation(static_cast<WebCore::Notation*>(node)); - break; - default: - domNode = new GEN_DOMNode(node); - break; - } - - setDOMWrapper(node, domNode.get()); - return domNode.releaseRef(); -} - -GEN_DOMImplementation* GEN_DOMImplementation::createInstance(WebCore::DOMImplementation* impl) -{ - if (!impl) - return 0; - - if (GEN_DOMObject* cachedInstance = getDOMWrapper(impl)) { - cachedInstance->AddRef(); - return static_cast<GEN_DOMImplementation*>(cachedInstance); - } - - COMPtr<GEN_DOMImplementation> comDOMObject = new GEN_DOMImplementation(impl); - setDOMWrapper(impl, comDOMObject.get()); - return comDOMObject.releaseRef(); -} - -CREATE_ONLY_SELF(NamedNodeMap) -CREATE_ONLY_SELF(NodeList) - -// Events - -// FIXME: Add the subclasses for Event when they get generated. -CREATE_ONLY_SELF(Event) - - -// CSS - -GEN_DOMCSSRule* GEN_DOMCSSRule::createInstance(WebCore::CSSRule* rule) -{ - if (!rule) - return 0; - - if (GEN_DOMObject* cachedInstance = getDOMWrapper(rule)) { - cachedInstance->AddRef(); - return static_cast<GEN_DOMCSSRule*>(cachedInstance); - } - - COMPtr<GEN_DOMCSSRule> domRule; - switch (rule->type()) { - case WebCore::CSSRule::STYLE_RULE: - domRule = new GEN_DOMCSSStyleRule(static_cast<WebCore::CSSStyleRule*>(rule)); - break; - case WebCore::CSSRule::CHARSET_RULE: - domRule = new GEN_DOMCSSCharsetRule(static_cast<WebCore::CSSCharsetRule*>(rule)); - break; - case WebCore::CSSRule::IMPORT_RULE: - domRule = new GEN_DOMCSSImportRule(static_cast<WebCore::CSSImportRule*>(rule)); - break; - case WebCore::CSSRule::MEDIA_RULE: - domRule = new GEN_DOMCSSMediaRule(static_cast<WebCore::CSSMediaRule*>(rule)); - break; - case WebCore::CSSRule::FONT_FACE_RULE: - domRule = new GEN_DOMCSSFontFaceRule(static_cast<WebCore::CSSFontFaceRule*>(rule)); - break; - case WebCore::CSSRule::PAGE_RULE: - domRule = new GEN_DOMCSSPageRule(static_cast<WebCore::CSSPageRule*>(rule)); - break; - case WebCore::CSSRule::UNKNOWN_RULE: - default: - domRule = new GEN_DOMCSSRule(rule); - break; - } - - setDOMWrapper(rule, domRule.get()); - return domRule.releaseRef(); -} - -GEN_DOMStyleSheet* GEN_DOMStyleSheet::createInstance(WebCore::StyleSheet* styleSheet) -{ - if (!styleSheet) - return 0; - - if (GEN_DOMObject* cachedInstance = getDOMWrapper(styleSheet)) { - cachedInstance->AddRef(); - return static_cast<GEN_DOMStyleSheet*>(cachedInstance); - } - - COMPtr<GEN_DOMStyleSheet> domStyleSheet; - if (styleSheet->isCSSStyleSheet()) - domStyleSheet = new GEN_DOMCSSStyleSheet(static_cast<WebCore::CSSStyleSheet*>(styleSheet)); - else - domStyleSheet = new GEN_DOMStyleSheet(styleSheet); - - setDOMWrapper(styleSheet, domStyleSheet.get()); - return domStyleSheet.releaseRef(); -} - - -GEN_DOMCSSValue* GEN_DOMCSSValue::createInstance(WebCore::CSSValue* value) -{ - if (!value) - return 0; - - if (GEN_DOMObject* cachedInstance = getDOMWrapper(value)) { - cachedInstance->AddRef(); - return static_cast<GEN_DOMCSSValue*>(cachedInstance); - } - - COMPtr<GEN_DOMCSSValue> domValue; - switch (value->cssValueType()) { - case WebCore::CSSValue::CSS_PRIMITIVE_VALUE: - domValue = new GEN_DOMCSSPrimitiveValue(static_cast<WebCore::CSSPrimitiveValue*>(value)); - break; - case WebCore::CSSValue::CSS_VALUE_LIST: - domValue = new GEN_DOMCSSValueList(static_cast<WebCore::CSSValueList*>(value)); - break; - case WebCore::CSSValue::CSS_INHERIT: - domValue = new GEN_DOMCSSValue(value); - break; - case WebCore::CSSValue::CSS_CUSTOM: - // FIXME: add support for SVGPaint and SVGColor - domValue = new GEN_DOMCSSValue(value); - break; - } - - setDOMWrapper(value, domValue.get()); - return domValue.releaseRef(); -} - -CREATE_ONLY_SELF(Counter) -CREATE_ONLY_SELF(CSSRuleList) -CREATE_ONLY_SELF(CSSStyleDeclaration) -CREATE_ONLY_SELF(MediaList) -CREATE_ONLY_SELF(Rect) -CREATE_ONLY_SELF(StyleSheetList) - - -// HTML - -CREATE_ONLY_SELF(HTMLCollection) diff --git a/Source/WebKit/win/DOMCreateInstance.h b/Source/WebKit/win/DOMCreateInstance.h deleted file mode 100644 index a733e84..0000000 --- a/Source/WebKit/win/DOMCreateInstance.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (C) 2007 Apple 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. - */ - -#ifndef DOMCreateInstance_h -#define DOMCreateInstance_h - -class GEN_DOMObject; - -GEN_DOMObject* getDOMWrapper(void* objectHandle); -void setDOMWrapper(void* objectHandle, GEN_DOMObject* wrapper); -void removeDOMWrapper(void* objectHandle); - -#endif // DOMCreateInstance_h diff --git a/Source/WebKit/win/DOMEventsClasses.cpp b/Source/WebKit/win/DOMEventsClasses.cpp index 11e14b3..9980734 100644 --- a/Source/WebKit/win/DOMEventsClasses.cpp +++ b/Source/WebKit/win/DOMEventsClasses.cpp @@ -28,12 +28,10 @@ #include <initguid.h> #include "DOMEventsClasses.h" -#pragma warning( push, 0 ) #include <WebCore/DOMWindow.h> #include <WebCore/Event.h> #include <WebCore/KeyboardEvent.h> #include <WebCore/MouseEvent.h> -#pragma warning( pop ) // DOMEventListener ----------------------------------------------------------- diff --git a/Source/WebKit/win/DOMHTMLClasses.cpp b/Source/WebKit/win/DOMHTMLClasses.cpp index 7fe2748..c163ec4 100644 --- a/Source/WebKit/win/DOMHTMLClasses.cpp +++ b/Source/WebKit/win/DOMHTMLClasses.cpp @@ -29,7 +29,6 @@ #include "COMPtr.h" #include "WebFrame.h" -#pragma warning(push, 0) #include <WebCore/BString.h> #include <WebCore/Document.h> #include <WebCore/Element.h> @@ -47,7 +46,6 @@ #include <WebCore/IntRect.h> #include <WebCore/RenderObject.h> #include <WebCore/RenderTextControl.h> -#pragma warning(pop) using namespace WebCore; using namespace HTMLNames; diff --git a/Source/WebKit/win/DOMHTMLClasses.h b/Source/WebKit/win/DOMHTMLClasses.h index baeecc9..34c7951 100644 --- a/Source/WebKit/win/DOMHTMLClasses.h +++ b/Source/WebKit/win/DOMHTMLClasses.h @@ -28,9 +28,7 @@ #include "WebKit.h" #include "DOMCoreClasses.h" -#include "WebScriptObject.h" - -#include <WTF/RefPtr.h> +#include <wtf/RefPtr.h> namespace WebCore { class HTMLCollection; diff --git a/Source/WebKit/win/DefaultDownloadDelegate.cpp b/Source/WebKit/win/DefaultDownloadDelegate.cpp index 29da6a4..d9cc71c 100644 --- a/Source/WebKit/win/DefaultDownloadDelegate.cpp +++ b/Source/WebKit/win/DefaultDownloadDelegate.cpp @@ -30,14 +30,13 @@ #include "WebKit.h" #include "WebKitLogging.h" #include "WebMutableURLRequest.h" +#include <WebCore/COMPtr.h> #include <wtf/text/CString.h> #include <shlobj.h> -#include <tchar.h> +#include <wchar.h> -#pragma warning(push, 0) #include <WebCore/BString.h> -#pragma warning(pop) using namespace WebCore; @@ -109,7 +108,7 @@ HRESULT STDMETHODCALLTYPE DefaultDownloadDelegate::decideDestinationWithSuggeste { LOG(Download, "DefaultDownloadDelegate %p - decideDestinationWithSuggestedFilename %s", download, String(filename, SysStringLen(filename)).ascii().data()); - TCHAR pathChars[MAX_PATH]; + WCHAR pathChars[MAX_PATH]; if (FAILED(SHGetFolderPath(0, CSIDL_DESKTOPDIRECTORY | CSIDL_FLAG_CREATE, 0, 0, pathChars))) { if (FAILED(download->setDestination(filename, true))) { LOG_ERROR("Failed to set destination on file"); @@ -118,14 +117,14 @@ HRESULT STDMETHODCALLTYPE DefaultDownloadDelegate::decideDestinationWithSuggeste return S_OK; } - size_t fullLength = _tcslen(pathChars) + SysStringLen(filename) + 2; + size_t fullLength = wcslen(pathChars) + SysStringLen(filename) + 2; BSTR full = SysAllocStringLen(0, (UINT)fullLength); if (!full) return E_OUTOFMEMORY; - _tcscpy_s(full, fullLength, pathChars); - _tcscat_s(full, fullLength, _T("\\")); - _tcscat_s(full, fullLength, filename); + wcscpy_s(full, fullLength, pathChars); + wcscat_s(full, fullLength, L"\\"); + wcscat_s(full, fullLength, filename); BString fullPath; fullPath.adoptBSTR(full); diff --git a/Source/WebKit/win/DefaultDownloadDelegate.h b/Source/WebKit/win/DefaultDownloadDelegate.h index b8fb8a7..b670381 100644 --- a/Source/WebKit/win/DefaultDownloadDelegate.h +++ b/Source/WebKit/win/DefaultDownloadDelegate.h @@ -25,7 +25,6 @@ #ifndef DefaultDownloadDelegate_h #define DefaultDownloadDelegate_h -#include "COMPtr.h" #include "WebKit.h" #include <wtf/HashSet.h> diff --git a/Source/WebKit/win/DefaultPolicyDelegate.cpp b/Source/WebKit/win/DefaultPolicyDelegate.cpp index 67fc556..02d7bdb 100644 --- a/Source/WebKit/win/DefaultPolicyDelegate.cpp +++ b/Source/WebKit/win/DefaultPolicyDelegate.cpp @@ -27,11 +27,8 @@ #include "WebKitDLL.h" #include "DefaultPolicyDelegate.h" -#include "WebKit.h" - -#pragma warning(push, 0) +#include <WebCore/COMPtr.h> #include <WebCore/PlatformString.h> -#pragma warning(pop) using namespace WebCore; diff --git a/Source/WebKit/win/DefaultPolicyDelegate.h b/Source/WebKit/win/DefaultPolicyDelegate.h index 443cf8a..f894b38 100644 --- a/Source/WebKit/win/DefaultPolicyDelegate.h +++ b/Source/WebKit/win/DefaultPolicyDelegate.h @@ -26,7 +26,6 @@ #ifndef DefaultPolicyDelegate_h #define DefaultPolicyDelegate_h -#include "COMPtr.h" #include "WebKit.h" class DefaultPolicyDelegate : public IWebPolicyDelegate { diff --git a/Source/WebKit/win/GEN_DOMObject.cpp b/Source/WebKit/win/GEN_DOMObject.cpp deleted file mode 100644 index c8d0e3c..0000000 --- a/Source/WebKit/win/GEN_DOMObject.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (C) 2007 Apple 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. - */ - -#include "config.h" -#include "GEN_DOMObject.h" - -#include "WebKitDLL.h" - -#include <wtf/Assertions.h> - -// DOMObject ------------------------------------------------------------ - -GEN_DOMObject::GEN_DOMObject() - : m_refCount(0) -{ - gClassCount++; - gClassNameCount.add("GEN_DOMObject"); -} - -GEN_DOMObject::~GEN_DOMObject() -{ - gClassCount--; - gClassNameCount.remove("GEN_DOMObject"); -} - -// IUnknown ------------------------------------------------------------------- - -HRESULT STDMETHODCALLTYPE GEN_DOMObject::QueryInterface(REFIID riid, void** ppvObject) -{ - *ppvObject = 0; - if (IsEqualGUID(riid, IID_IUnknown)) - *ppvObject = static_cast<IGEN_DOMObject*>(this); - else if (IsEqualGUID(riid, IID_IGEN_DOMObject)) - *ppvObject = static_cast<GEN_DOMObject*>(this); - else - return E_NOINTERFACE; - - AddRef(); - return S_OK; -} - -ULONG STDMETHODCALLTYPE GEN_DOMObject::AddRef() -{ - return ++m_refCount; -} - -ULONG STDMETHODCALLTYPE GEN_DOMObject::Release() -{ - ULONG newRef = --m_refCount; - if (!newRef) - delete this; - - return newRef; -} diff --git a/Source/WebKit/win/GEN_DOMObject.h b/Source/WebKit/win/GEN_DOMObject.h deleted file mode 100644 index bb654fb..0000000 --- a/Source/WebKit/win/GEN_DOMObject.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2007 Apple 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. - */ - -#ifndef GEN_DOMObject_h -#define GEN_DOMObject_h - -#include "WebKit.h" - -class GEN_DOMObject : public IGEN_DOMObject { -public: - // IUnknown - virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, void** ppvObject); - virtual ULONG STDMETHODCALLTYPE AddRef(); - virtual ULONG STDMETHODCALLTYPE Release(); - -protected: - GEN_DOMObject(); - virtual ~GEN_DOMObject(); - - ULONG m_refCount; -}; - -#endif // GEN_DOMObject_h diff --git a/Source/WebKit/win/MarshallingHelpers.cpp b/Source/WebKit/win/MarshallingHelpers.cpp index 0cec6de..b29804e 100644 --- a/Source/WebKit/win/MarshallingHelpers.cpp +++ b/Source/WebKit/win/MarshallingHelpers.cpp @@ -28,11 +28,9 @@ #include "MarshallingHelpers.h" #include "MathExtras.h" -#pragma warning(push, 0) #include <WebCore/IntRect.h> #include <WebCore/KURL.h> #include <WebCore/PlatformString.h> -#pragma warning(pop) using namespace WebCore; diff --git a/Source/WebKit/win/WebActionPropertyBag.cpp b/Source/WebKit/win/WebActionPropertyBag.cpp index c2b9e10..b20da91 100644 --- a/Source/WebKit/win/WebActionPropertyBag.cpp +++ b/Source/WebKit/win/WebActionPropertyBag.cpp @@ -31,13 +31,10 @@ #include "DOMCoreClasses.h" #include "WebElementPropertyBag.h" #include "WebKit.h" - -#pragma warning(push, 0) #include <WebCore/BString.h> #include <WebCore/EventHandler.h> -#include <WebCore/MouseEvent.h> #include <WebCore/HitTestResult.h> -#pragma warning(pop) +#include <WebCore/MouseEvent.h> using namespace WebCore; diff --git a/Source/WebKit/win/WebActionPropertyBag.h b/Source/WebKit/win/WebActionPropertyBag.h index 56f8f52..a32e9c5 100644 --- a/Source/WebKit/win/WebActionPropertyBag.h +++ b/Source/WebKit/win/WebActionPropertyBag.h @@ -27,12 +27,9 @@ #define WebActionPropertyBag_h #include "ocidl.h" - -#pragma warning(push, 0) #include <WebCore/Frame.h> #include <WebCore/HTMLFormElement.h> #include <WebCore/NavigationAction.h> -#pragma warning(pop) class WebActionPropertyBag : public IPropertyBag { public: diff --git a/Source/WebKit/win/WebCache.cpp b/Source/WebKit/win/WebCache.cpp index c7d0f31..dab1bcd 100644 --- a/Source/WebKit/win/WebCache.cpp +++ b/Source/WebKit/win/WebCache.cpp @@ -28,12 +28,9 @@ #include "WebCache.h" #include "CFDictionaryPropertyBag.h" - -#pragma warning(push, 0) #include <WebCore/ApplicationCacheStorage.h> #include <WebCore/MemoryCache.h> #include <WebCore/CrossOriginPreflightResultCache.h> -#pragma warning(pop) // WebCache --------------------------------------------------------------------------- diff --git a/Source/WebKit/win/WebCoreStatistics.cpp b/Source/WebKit/win/WebCoreStatistics.cpp index 7a9b126..0e30576 100644 --- a/Source/WebKit/win/WebCoreStatistics.cpp +++ b/Source/WebKit/win/WebCoreStatistics.cpp @@ -33,6 +33,7 @@ #include <WebCore/GlyphPageTreeNode.h> #include <WebCore/IconDatabase.h> #include <WebCore/JSDOMWindow.h> +#include <WebCore/SharedBuffer.h> using namespace JSC; using namespace WebCore; diff --git a/Source/WebKit/win/WebCoreSupport/EmbeddedWidget.h b/Source/WebKit/win/WebCoreSupport/EmbeddedWidget.h index ccd3451..abfe76e 100644 --- a/Source/WebKit/win/WebCoreSupport/EmbeddedWidget.h +++ b/Source/WebKit/win/WebCoreSupport/EmbeddedWidget.h @@ -26,6 +26,7 @@ #ifndef EmbeddedWidget_h #define EmbeddedWidget_h +#include "WebKit.h" #include <WebCore/COMPtr.h> #include <WebCore/IntRect.h> #include <WebCore/PluginView.h> diff --git a/Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp b/Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp index 65537f4..1935c5f 100644 --- a/Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp +++ b/Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp @@ -56,7 +56,7 @@ #include <WebCore/PopupMenuWin.h> #include <WebCore/SearchPopupMenuWin.h> #include <WebCore/WindowFeatures.h> -#include <tchar.h> +#include <wchar.h> #if USE(ACCELERATED_COMPOSITING) #include <WebCore/GraphicsLayer.h> @@ -591,8 +591,8 @@ void WebChromeClient::exceededDatabaseQuota(Frame* frame, const String& database uiDelegatePrivate->exceededDatabaseQuota(m_webView, kit(frame), origin.get(), BString(databaseIdentifier)); else { // FIXME: remove this workaround once shipping Safari has the necessary delegate implemented. - TCHAR path[MAX_PATH]; - HMODULE safariHandle = GetModuleHandle(TEXT("Safari.exe")); + WCHAR path[MAX_PATH]; + HMODULE safariHandle = GetModuleHandleW(L"Safari.exe"); if (!safariHandle) return; GetModuleFileName(safariHandle, path, WTF_ARRAY_LENGTH(path)); @@ -606,9 +606,9 @@ void WebChromeClient::exceededDatabaseQuota(Frame* frame, const String& database LPCTSTR productVersion; UINT productVersionLength; - if (!VerQueryValue(data.data(), TEXT("\\StringFileInfo\\040904b0\\ProductVersion"), (void**)&productVersion, &productVersionLength)) + if (!VerQueryValueW(data.data(), L"\\StringFileInfo\\040904b0\\ProductVersion", (void**)&productVersion, &productVersionLength)) return; - if (_tcsncmp(TEXT("3.1"), productVersion, productVersionLength) > 0) { + if (wcsncmp(L"3.1", productVersion, productVersionLength) > 0) { const unsigned long long defaultQuota = 5 * 1024 * 1024; // 5 megabytes should hopefully be enough to test storage support. origin->setQuota(defaultQuota); } @@ -738,7 +738,7 @@ void WebChromeClient::runOpenPanel(Frame*, PassRefPtr<FileChooser> prpFileChoose return; bool multiFile = fileChooser->allowsMultipleFiles(); - Vector<TCHAR> fileBuf(multiFile ? maxFilePathsListSize : MAX_PATH); + Vector<WCHAR> fileBuf(multiFile ? maxFilePathsListSize : MAX_PATH); OPENFILENAME ofn; @@ -750,7 +750,7 @@ void WebChromeClient::runOpenPanel(Frame*, PassRefPtr<FileChooser> prpFileChoose ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = viewWindow; String allFiles = allFilesText(); - allFiles.append(TEXT("\0*.*\0\0"), 6); + allFiles.append(L"\0*.*\0\0", 6); ofn.lpstrFilter = allFiles.charactersWithNullTermination(); ofn.lpstrFile = fileBuf.data(); ofn.nMaxFile = fileBuf.size(); @@ -761,7 +761,7 @@ void WebChromeClient::runOpenPanel(Frame*, PassRefPtr<FileChooser> prpFileChoose ofn.Flags = ofn.Flags | OFN_ALLOWMULTISELECT; if (GetOpenFileName(&ofn)) { - TCHAR* files = fileBuf.data(); + WCHAR* files = fileBuf.data(); Vector<String> fileList; String file(files); if (multiFile) { @@ -769,7 +769,7 @@ void WebChromeClient::runOpenPanel(Frame*, PassRefPtr<FileChooser> prpFileChoose // When using the OFN_EXPLORER flag, the file list is null delimited. // When you create a String from a ptr to this list, it will use strlen to look for the null character. // Then we find the next file path string by using the length of the string we just created. - TCHAR* nextFilePtr = files + file.length() + 1; + WCHAR* nextFilePtr = files + file.length() + 1; String nextFile(nextFilePtr); // If multiple files are selected, there will be a directory name first, which we don't want to add to the vector. // We know a single file was selected if there is only one filename in the list. diff --git a/Source/WebKit/win/WebCoreSupport/WebContextMenuClient.cpp b/Source/WebKit/win/WebCoreSupport/WebContextMenuClient.cpp index 9405fc8..80690c7 100644 --- a/Source/WebKit/win/WebCoreSupport/WebContextMenuClient.cpp +++ b/Source/WebKit/win/WebCoreSupport/WebContextMenuClient.cpp @@ -41,8 +41,6 @@ #include <WebCore/ResourceRequest.h> #include <WebCore/NotImplemented.h> -#include <tchar.h> - using namespace WebCore; WebContextMenuClient::WebContextMenuClient(WebView* webView) diff --git a/Source/WebKit/win/WebCoreSupport/WebDragClient.cpp b/Source/WebKit/win/WebCoreSupport/WebDragClient.cpp index c232867..5abcf6b 100644 --- a/Source/WebKit/win/WebCoreSupport/WebDragClient.cpp +++ b/Source/WebKit/win/WebCoreSupport/WebDragClient.cpp @@ -31,14 +31,12 @@ #include <shlobj.h> -#pragma warning(push, 0) #include <WebCore/ClipboardWin.h> #include <WebCore/DragController.h> #include <WebCore/DragData.h> #include <WebCore/FrameView.h> #include <WebCore/GraphicsContext.h> #include <WebCore/Page.h> -#pragma warning(pop) using namespace WebCore; diff --git a/Source/WebKit/win/WebCoreSupport/WebEditorClient.cpp b/Source/WebKit/win/WebCoreSupport/WebEditorClient.cpp index 9f08087..1105904 100644 --- a/Source/WebKit/win/WebCoreSupport/WebEditorClient.cpp +++ b/Source/WebKit/win/WebCoreSupport/WebEditorClient.cpp @@ -33,7 +33,6 @@ #include "WebNotificationCenter.h" #include "WebView.h" #include "DOMCoreClasses.h" -#pragma warning(push, 0) #include <WebCore/BString.h> #include <WebCore/Document.h> #include <WebCore/EditCommand.h> @@ -45,7 +44,6 @@ #include <WebCore/PlatformKeyboardEvent.h> #include <WebCore/Range.h> #include <WebCore/UserTypingGestureIndicator.h> -#pragma warning(pop) using namespace WebCore; using namespace HTMLNames; diff --git a/Source/WebKit/win/WebCoreSupport/WebEditorClient.h b/Source/WebKit/win/WebCoreSupport/WebEditorClient.h index 18be400..1d0a7d0 100644 --- a/Source/WebKit/win/WebCoreSupport/WebEditorClient.h +++ b/Source/WebKit/win/WebCoreSupport/WebEditorClient.h @@ -27,11 +27,9 @@ #define WebEditorClient_H #include "WebKit.h" -#pragma warning(push, 0) #include <WebCore/EditorClient.h> #include <WebCore/TextCheckerClient.h> #include <wtf/OwnPtr.h> -#pragma warning(pop) class WebView; class WebNotification; diff --git a/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp b/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp index 03041a6..10a3190 100644 --- a/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp +++ b/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp @@ -49,7 +49,6 @@ #include "WebURLAuthenticationChallenge.h" #include "WebURLResponse.h" #include "WebView.h" -#pragma warning(push, 0) #include <WebCore/BackForwardController.h> #include <WebCore/CachedFrame.h> #include <WebCore/DocumentLoader.h> @@ -69,7 +68,6 @@ #include <WebCore/RenderPart.h> #include <WebCore/ResourceHandle.h> #include <WebCore/Settings.h> -#pragma warning(pop) using namespace WebCore; using namespace HTMLNames; diff --git a/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.h b/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.h index 57de2ad..d864b23 100644 --- a/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.h +++ b/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.h @@ -29,9 +29,7 @@ #ifndef WebFrameLoaderClient_h #define WebFrameLoaderClient_h -#pragma warning(push, 0) #include <WebCore/FrameLoaderClient.h> -#pragma warning(pop) namespace WebCore { class PluginManualLoader; @@ -40,6 +38,7 @@ namespace WebCore { template <typename T> class COMPtr; class WebFrame; +class WebHistory; class WebFrameLoaderClient : public WebCore::FrameLoaderClient { public: diff --git a/Source/WebKit/win/WebCoreSupport/WebInspectorClient.cpp b/Source/WebKit/win/WebCoreSupport/WebInspectorClient.cpp index 2922485..a93765d 100644 --- a/Source/WebKit/win/WebCoreSupport/WebInspectorClient.cpp +++ b/Source/WebKit/win/WebCoreSupport/WebInspectorClient.cpp @@ -35,7 +35,6 @@ #include "WebNodeHighlight.h" #include "WebView.h" -#pragma warning(push, 0) #include <WebCore/BString.h> #include <WebCore/Element.h> #include <WebCore/FloatRect.h> @@ -45,9 +44,8 @@ #include <WebCore/Page.h> #include <WebCore/RenderObject.h> #include <WebCore/WindowMessageBroadcaster.h> -#pragma warning(pop) -#include <tchar.h> +#include <wchar.h> #include <wtf/RetainPtr.h> #include <wtf/text/StringConcatenate.h> @@ -322,6 +320,16 @@ void WebInspectorFrontendClient::inspectedURLChanged(const String& newURL) updateWindowTitle(); } +void WebInspectorFrontendClient::saveSessionSetting(const String& key, const String& value) +{ + m_inspectorClient->saveSessionSetting(key, value); +} + +void WebInspectorFrontendClient::loadSessionSetting(const String& key, String* value) +{ + m_inspectorClient->loadSessionSetting(key, value); +} + void WebInspectorFrontendClient::closeWindowWithoutNotifications() { if (!m_frontendHwnd) diff --git a/Source/WebKit/win/WebCoreSupport/WebInspectorClient.h b/Source/WebKit/win/WebCoreSupport/WebInspectorClient.h index a059559..e5ddbd5 100644 --- a/Source/WebKit/win/WebCoreSupport/WebInspectorClient.h +++ b/Source/WebKit/win/WebCoreSupport/WebInspectorClient.h @@ -35,7 +35,9 @@ #include <WebCore/PlatformString.h> #include <WebCore/WindowMessageListener.h> #include <wtf/Forward.h> +#include <wtf/HashMap.h> #include <wtf/OwnPtr.h> +#include <wtf/text/StringHash.h> #include <windows.h> namespace WebCore { @@ -73,6 +75,9 @@ public: releaseFrontendPage(); } + void saveSessionSetting(const WTF::String& key, const WTF::String& value); + void loadSessionSetting(const WTF::String& key, WTF::String* value); + private: ~WebInspectorClient(); WTF::PassOwnPtr<WebCore::InspectorFrontendClientLocal::Settings> createFrontendSettings(); @@ -83,6 +88,8 @@ private: HWND m_frontendHwnd; OwnPtr<WebNodeHighlight> m_highlight; + + WTF::HashMap<WTF::String, WTF::String> m_sessionSettings; }; class WebInspectorFrontendClient : public WebCore::InspectorFrontendClientLocal, WebCore::WindowMessageListener { @@ -104,6 +111,9 @@ public: virtual void setAttachedWindowHeight(unsigned height); virtual void inspectedURLChanged(const WTF::String& newURL); + virtual void saveSessionSetting(const WTF::String& key, const WTF::String& value); + virtual void loadSessionSetting(const WTF::String& key, WTF::String* value); + private: ~WebInspectorFrontendClient(); diff --git a/Source/WebKit/win/WebCoreSupport/WebInspectorDelegate.h b/Source/WebKit/win/WebCoreSupport/WebInspectorDelegate.h index 7561d5a..dce935a 100644 --- a/Source/WebKit/win/WebCoreSupport/WebInspectorDelegate.h +++ b/Source/WebKit/win/WebCoreSupport/WebInspectorDelegate.h @@ -1,336 +1,330 @@ -/*
- * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.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.
- * 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.
- */
-
-#ifndef WebInspectorDelegate_h
-#define WebInspectorDelegate_h
-
-struct IDataObject;
-struct IPropertyBag;
-struct IWebView;
-struct IWebFrame;
-struct IWebError;
-struct IWebURLRequest;
-struct IWebOpenPanelResultListener;
-
-class WebInspectorDelegate : public IWebUIDelegate {
-public:
- static WebInspectorDelegate* createInstance();
-
- // IUnknown
- virtual ULONG STDMETHODCALLTYPE AddRef();
- virtual ULONG STDMETHODCALLTYPE Release();
- virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, void**) { return E_NOTIMPL; };
-
- // IWebUIDelegate
- virtual HRESULT STDMETHODCALLTYPE dragDestinationActionMaskForDraggingInfo(
- /* [in] */ IWebView*,
- /* [in] */ IDataObject*,
- /* [retval][out] */ WebDragDestinationAction* action);
-
- // Not implemented
- virtual HRESULT STDMETHODCALLTYPE createWebViewWithRequest(
- /* [in] */ IWebView*,
- /* [in] */ IWebURLRequest*,
- /* [retval][out] */ IWebView**) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewShow(
- /* [in] */ IWebView*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewClose(
- /* [in] */ IWebView*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewFocus(
- /* [in] */ IWebView*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewUnfocus(
- /* [in] */ IWebView*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewFirstResponder(
- /* [in] */ IWebView*,
- /* [retval][out] */ OLE_HANDLE*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE makeFirstResponder(
- /* [in] */ IWebView*,
- /* [in] */ OLE_HANDLE) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE setStatusText(
- /* [in] */ IWebView*,
- /* [in] */ BSTR) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewStatusText(
- /* [in] */ IWebView*,
- /* [retval][out] */ BSTR*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewAreToolbarsVisible(
- /* [in] */ IWebView*,
- /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE setToolbarsVisible(
- /* [in] */ IWebView*,
- /* [in] */ BOOL) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewIsStatusBarVisible(
- /* [in] */ IWebView*,
- /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE setStatusBarVisible(
- /* [in] */ IWebView*,
- /* [in] */ BOOL) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewIsResizable(
- /* [in] */ IWebView*,
- /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE setResizable(
- /* [in] */ IWebView*,
- /* [in] */ BOOL) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE setFrame(
- /* [in] */ IWebView*,
- /* [in] */ RECT*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewFrame(
- /* [in] */ IWebView*,
- /* [retval][out] */ RECT*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE setContentRect(
- /* [in] */ IWebView*,
- /* [in] */ RECT*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewContentRect(
- /* [in] */ IWebView*,
- /* [retval][out] */ RECT*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE runJavaScriptAlertPanelWithMessage(
- /* [in] */ IWebView*,
- /* [in] */ BSTR) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE runJavaScriptConfirmPanelWithMessage(
- /* [in] */ IWebView*,
- /* [in] */ BSTR,
- /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE runJavaScriptTextInputPanelWithPrompt(
- /* [in] */ IWebView*,
- /* [in] */ BSTR /*message*/,
- /* [in] */ BSTR /*defaultText*/,
- /* [retval][out] */ BSTR*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE runBeforeUnloadConfirmPanelWithMessage(
- /* [in] */ IWebView*,
- /* [in] */ BSTR /*message*/,
- /* [in] */ IWebFrame* /*initiatedByFrame*/,
- /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE runOpenPanelForFileButtonWithResultListener(
- /* [in] */ IWebView*,
- /* [in] */ IWebOpenPanelResultListener*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE mouseDidMoveOverElement(
- /* [in] */ IWebView*,
- /* [in] */ IPropertyBag*,
- /* [in] */ UINT /*modifierFlags*/) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE contextMenuItemsForElement(
- /* [in] */ IWebView*,
- /* [in] */ IPropertyBag*,
- /* [in] */ OLE_HANDLE,
- /* [retval][out] */ OLE_HANDLE*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE validateUserInterfaceItem(
- /* [in] */ IWebView*,
- /* [in] */ UINT,
- /* [in] */ BOOL,
- /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE shouldPerformAction(
- /* [in] */ IWebView*,
- /* [in] */ UINT /*itemCommandID*/,
- /* [in] */ UINT /*sender*/) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE willPerformDragDestinationAction(
- /* [in] */ IWebView*,
- /* [in] */ WebDragDestinationAction,
- /* [in] */ IDataObject*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE dragSourceActionMaskForPoint(
- /* [in] */ IWebView*,
- /* [in] */ LPPOINT,
- /* [retval][out] */ WebDragSourceAction*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE willPerformDragSourceAction(
- /* [in] */ IWebView*,
- /* [in] */ WebDragSourceAction,
- /* [in] */ LPPOINT,
- /* [in] */ IDataObject*,
- /* [retval][out] */ IDataObject**) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE contextMenuItemSelected(
- /* [in] */ IWebView*,
- /* [in] */ void* /*item*/,
- /* [in] */ IPropertyBag*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE hasCustomMenuImplementation(
- /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE trackCustomPopupMenu(
- /* [in] */ IWebView*,
- /* [in] */ OLE_HANDLE,
- /* [in] */ LPPOINT) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE measureCustomMenuItem(
- /* [in] */ IWebView*,
- /* [in] */ void* /*measureItem*/) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE drawCustomMenuItem(
- /* [in] */ IWebView*,
- /* [in] */ void* /*drawItem*/) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE addCustomMenuDrawingData(
- /* [in] */ IWebView*,
- /* [in] */ OLE_HANDLE) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE cleanUpCustomMenuDrawingData(
- /* [in] */ IWebView*,
- /* [in] */ OLE_HANDLE) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE canTakeFocus(
- /* [in] */ IWebView*,
- /* [in] */ BOOL /*forward*/,
- /* [out] */ BOOL*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE takeFocus(
- /* [in] */ IWebView*,
- /* [in] */ BOOL /*forward*/) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE registerUndoWithTarget(
- /* [in] */ IWebUndoTarget*,
- /* [in] */ BSTR /*actionName*/,
- /* [in] */ IUnknown* /*actionArg*/) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE removeAllActionsWithTarget(
- /* [in] */ IWebUndoTarget*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE setActionTitle(
- /* [in] */ BSTR) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE undo() { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE redo() { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE canUndo(
- /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE canRedo(
- /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE printFrame(
- /* [in] */ IWebView *webView,
- /* [in] */ IWebFrame *frame) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE ftpDirectoryTemplatePath(
- /* [in] */ IWebView *webView,
- /* [retval][out] */ BSTR *path) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewHeaderHeight(
- /* [in] */ IWebView *webView,
- /* [retval][out] */ float *result) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewFooterHeight(
- /* [in] */ IWebView *webView,
- /* [retval][out] */ float *result) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE drawHeaderInRect(
- /* [in] */ IWebView *webView,
- /* [in] */ RECT *rect,
- /* [in] */ OLE_HANDLE drawingContext) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE drawFooterInRect(
- /* [in] */ IWebView *webView,
- /* [in] */ RECT *rect,
- /* [in] */ OLE_HANDLE drawingContext,
- /* [in] */ UINT pageIndex,
- /* [in] */ UINT pageCount) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewPrintingMarginRect(
- /* [in] */ IWebView *webView,
- /* [retval][out] */ RECT *rect) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE canRunModal(
- /* [in] */ IWebView *webView,
- /* [retval][out] */ BOOL *canRunBoolean) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE createModalDialog(
- /* [in] */ IWebView *sender,
- /* [in] */ IWebURLRequest *request,
- /* [retval][out] */ IWebView **newWebView) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE runModal(
- /* [in] */ IWebView *webView) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE isMenuBarVisible(
- /* [in] */ IWebView *webView,
- /* [retval][out] */ BOOL *visible) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE setMenuBarVisible(
- /* [in] */ IWebView *webView,
- /* [in] */ BOOL visible) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE runDatabaseSizeLimitPrompt(
- /* [in] */ IWebView *webView,
- /* [in] */ BSTR displayName,
- /* [in] */ IWebFrame *initiatedByFrame,
- /* [retval][out] */ BOOL *allowed) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE paintCustomScrollbar(
- /* [in] */ IWebView *webView,
- /* [in] */ HDC hDC,
- /* [in] */ RECT rect,
- /* [in] */ WebScrollBarControlSize size,
- /* [in] */ WebScrollbarControlState state,
- /* [in] */ WebScrollbarControlPart pressedPart,
- /* [in] */ BOOL vertical,
- /* [in] */ float value,
- /* [in] */ float proportion,
- /* [in] */ WebScrollbarControlPartMask parts) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE paintCustomScrollCorner(
- /* [in] */ IWebView *webView,
- /* [in] */ HDC hDC,
- /* [in] */ RECT rect) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE desktopNotificationsDelegate(
- /* [retval][out] */ IWebDesktopNotificationsDelegate **result) { return E_NOTIMPL; }
-
-private:
- WebInspectorDelegate();
-
- ULONG m_refCount;
-};
-
-#endif // WebInspectorDelegate_h
+/* + * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.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. + * 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. + */ + +#ifndef WebInspectorDelegate_h +#define WebInspectorDelegate_h + +#include "WebKit.h" + +class WebInspectorDelegate : public IWebUIDelegate { +public: + static WebInspectorDelegate* createInstance(); + + // IUnknown + virtual ULONG STDMETHODCALLTYPE AddRef(); + virtual ULONG STDMETHODCALLTYPE Release(); + virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, void**) { return E_NOTIMPL; }; + + // IWebUIDelegate + virtual HRESULT STDMETHODCALLTYPE dragDestinationActionMaskForDraggingInfo( + /* [in] */ IWebView*, + /* [in] */ IDataObject*, + /* [retval][out] */ WebDragDestinationAction* action); + + // Not implemented + virtual HRESULT STDMETHODCALLTYPE createWebViewWithRequest( + /* [in] */ IWebView*, + /* [in] */ IWebURLRequest*, + /* [retval][out] */ IWebView**) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE webViewShow( + /* [in] */ IWebView*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE webViewClose( + /* [in] */ IWebView*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE webViewFocus( + /* [in] */ IWebView*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE webViewUnfocus( + /* [in] */ IWebView*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE webViewFirstResponder( + /* [in] */ IWebView*, + /* [retval][out] */ OLE_HANDLE*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE makeFirstResponder( + /* [in] */ IWebView*, + /* [in] */ OLE_HANDLE) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE setStatusText( + /* [in] */ IWebView*, + /* [in] */ BSTR) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE webViewStatusText( + /* [in] */ IWebView*, + /* [retval][out] */ BSTR*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE webViewAreToolbarsVisible( + /* [in] */ IWebView*, + /* [retval][out] */ BOOL*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE setToolbarsVisible( + /* [in] */ IWebView*, + /* [in] */ BOOL) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE webViewIsStatusBarVisible( + /* [in] */ IWebView*, + /* [retval][out] */ BOOL*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE setStatusBarVisible( + /* [in] */ IWebView*, + /* [in] */ BOOL) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE webViewIsResizable( + /* [in] */ IWebView*, + /* [retval][out] */ BOOL*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE setResizable( + /* [in] */ IWebView*, + /* [in] */ BOOL) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE setFrame( + /* [in] */ IWebView*, + /* [in] */ RECT*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE webViewFrame( + /* [in] */ IWebView*, + /* [retval][out] */ RECT*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE setContentRect( + /* [in] */ IWebView*, + /* [in] */ RECT*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE webViewContentRect( + /* [in] */ IWebView*, + /* [retval][out] */ RECT*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE runJavaScriptAlertPanelWithMessage( + /* [in] */ IWebView*, + /* [in] */ BSTR) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE runJavaScriptConfirmPanelWithMessage( + /* [in] */ IWebView*, + /* [in] */ BSTR, + /* [retval][out] */ BOOL*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE runJavaScriptTextInputPanelWithPrompt( + /* [in] */ IWebView*, + /* [in] */ BSTR /*message*/, + /* [in] */ BSTR /*defaultText*/, + /* [retval][out] */ BSTR*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE runBeforeUnloadConfirmPanelWithMessage( + /* [in] */ IWebView*, + /* [in] */ BSTR /*message*/, + /* [in] */ IWebFrame* /*initiatedByFrame*/, + /* [retval][out] */ BOOL*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE runOpenPanelForFileButtonWithResultListener( + /* [in] */ IWebView*, + /* [in] */ IWebOpenPanelResultListener*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE mouseDidMoveOverElement( + /* [in] */ IWebView*, + /* [in] */ IPropertyBag*, + /* [in] */ UINT /*modifierFlags*/) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE contextMenuItemsForElement( + /* [in] */ IWebView*, + /* [in] */ IPropertyBag*, + /* [in] */ OLE_HANDLE, + /* [retval][out] */ OLE_HANDLE*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE validateUserInterfaceItem( + /* [in] */ IWebView*, + /* [in] */ UINT, + /* [in] */ BOOL, + /* [retval][out] */ BOOL*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE shouldPerformAction( + /* [in] */ IWebView*, + /* [in] */ UINT /*itemCommandID*/, + /* [in] */ UINT /*sender*/) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE willPerformDragDestinationAction( + /* [in] */ IWebView*, + /* [in] */ WebDragDestinationAction, + /* [in] */ IDataObject*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE dragSourceActionMaskForPoint( + /* [in] */ IWebView*, + /* [in] */ LPPOINT, + /* [retval][out] */ WebDragSourceAction*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE willPerformDragSourceAction( + /* [in] */ IWebView*, + /* [in] */ WebDragSourceAction, + /* [in] */ LPPOINT, + /* [in] */ IDataObject*, + /* [retval][out] */ IDataObject**) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE contextMenuItemSelected( + /* [in] */ IWebView*, + /* [in] */ void* /*item*/, + /* [in] */ IPropertyBag*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE hasCustomMenuImplementation( + /* [retval][out] */ BOOL*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE trackCustomPopupMenu( + /* [in] */ IWebView*, + /* [in] */ OLE_HANDLE, + /* [in] */ LPPOINT) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE measureCustomMenuItem( + /* [in] */ IWebView*, + /* [in] */ void* /*measureItem*/) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE drawCustomMenuItem( + /* [in] */ IWebView*, + /* [in] */ void* /*drawItem*/) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE addCustomMenuDrawingData( + /* [in] */ IWebView*, + /* [in] */ OLE_HANDLE) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE cleanUpCustomMenuDrawingData( + /* [in] */ IWebView*, + /* [in] */ OLE_HANDLE) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE canTakeFocus( + /* [in] */ IWebView*, + /* [in] */ BOOL /*forward*/, + /* [out] */ BOOL*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE takeFocus( + /* [in] */ IWebView*, + /* [in] */ BOOL /*forward*/) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE registerUndoWithTarget( + /* [in] */ IWebUndoTarget*, + /* [in] */ BSTR /*actionName*/, + /* [in] */ IUnknown* /*actionArg*/) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE removeAllActionsWithTarget( + /* [in] */ IWebUndoTarget*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE setActionTitle( + /* [in] */ BSTR) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE undo() { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE redo() { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE canUndo( + /* [retval][out] */ BOOL*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE canRedo( + /* [retval][out] */ BOOL*) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE printFrame( + /* [in] */ IWebView *webView, + /* [in] */ IWebFrame *frame) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE ftpDirectoryTemplatePath( + /* [in] */ IWebView *webView, + /* [retval][out] */ BSTR *path) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE webViewHeaderHeight( + /* [in] */ IWebView *webView, + /* [retval][out] */ float *result) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE webViewFooterHeight( + /* [in] */ IWebView *webView, + /* [retval][out] */ float *result) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE drawHeaderInRect( + /* [in] */ IWebView *webView, + /* [in] */ RECT *rect, + /* [in] */ OLE_HANDLE drawingContext) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE drawFooterInRect( + /* [in] */ IWebView *webView, + /* [in] */ RECT *rect, + /* [in] */ OLE_HANDLE drawingContext, + /* [in] */ UINT pageIndex, + /* [in] */ UINT pageCount) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE webViewPrintingMarginRect( + /* [in] */ IWebView *webView, + /* [retval][out] */ RECT *rect) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE canRunModal( + /* [in] */ IWebView *webView, + /* [retval][out] */ BOOL *canRunBoolean) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE createModalDialog( + /* [in] */ IWebView *sender, + /* [in] */ IWebURLRequest *request, + /* [retval][out] */ IWebView **newWebView) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE runModal( + /* [in] */ IWebView *webView) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE isMenuBarVisible( + /* [in] */ IWebView *webView, + /* [retval][out] */ BOOL *visible) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE setMenuBarVisible( + /* [in] */ IWebView *webView, + /* [in] */ BOOL visible) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE runDatabaseSizeLimitPrompt( + /* [in] */ IWebView *webView, + /* [in] */ BSTR displayName, + /* [in] */ IWebFrame *initiatedByFrame, + /* [retval][out] */ BOOL *allowed) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE paintCustomScrollbar( + /* [in] */ IWebView *webView, + /* [in] */ HDC hDC, + /* [in] */ RECT rect, + /* [in] */ WebScrollBarControlSize size, + /* [in] */ WebScrollbarControlState state, + /* [in] */ WebScrollbarControlPart pressedPart, + /* [in] */ BOOL vertical, + /* [in] */ float value, + /* [in] */ float proportion, + /* [in] */ WebScrollbarControlPartMask parts) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE paintCustomScrollCorner( + /* [in] */ IWebView *webView, + /* [in] */ HDC hDC, + /* [in] */ RECT rect) { return E_NOTIMPL; } + + virtual HRESULT STDMETHODCALLTYPE desktopNotificationsDelegate( + /* [retval][out] */ IWebDesktopNotificationsDelegate **result) { return E_NOTIMPL; } + +private: + WebInspectorDelegate(); + + ULONG m_refCount; +}; + +#endif // WebInspectorDelegate_h diff --git a/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.cpp b/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.cpp index 9f5b20e..e87777e 100644 --- a/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.cpp +++ b/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.cpp @@ -285,7 +285,7 @@ String WebPlatformStrategies::contextMenuItemTagSearchWeb() return UI_STRING("Search with Google", "Search in Google context menu item"); } -String WebPlatformStrategies::contextMenuItemTagLookUpInDictionary() +String WebPlatformStrategies::contextMenuItemTagLookUpInDictionary(const String&) { return UI_STRING("Look Up in Dictionary", "Look Up in Dictionary context menu item"); } diff --git a/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.h b/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.h index 4e5bb18..6d2949d 100644 --- a/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.h +++ b/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.h @@ -79,7 +79,7 @@ private: virtual WTF::String contextMenuItemTagIgnoreSpelling(); virtual WTF::String contextMenuItemTagLearnSpelling(); virtual WTF::String contextMenuItemTagSearchWeb(); - virtual WTF::String contextMenuItemTagLookUpInDictionary(); + virtual WTF::String contextMenuItemTagLookUpInDictionary(const WTF::String&); virtual WTF::String contextMenuItemTagOpenLink(); virtual WTF::String contextMenuItemTagIgnoreGrammar(); virtual WTF::String contextMenuItemTagSpellingMenu(); diff --git a/Source/WebKit/win/WebDataSource.h b/Source/WebKit/win/WebDataSource.h index 3baa024..992e9dd 100644 --- a/Source/WebKit/win/WebDataSource.h +++ b/Source/WebKit/win/WebDataSource.h @@ -27,8 +27,8 @@ #define WebDataSource_H #include "WebKit.h" -#include "COMPtr.h" -#include <WTF/RefPtr.h> +#include <WebCore/COMPtr.h> +#include <wtf/RefPtr.h> class WebDocumentLoader; class WebMutableURLRequest; diff --git a/Source/WebKit/win/WebDatabaseManager.h b/Source/WebKit/win/WebDatabaseManager.h index a8ca523..b52cbd5 100644 --- a/Source/WebKit/win/WebDatabaseManager.h +++ b/Source/WebKit/win/WebDatabaseManager.h @@ -31,9 +31,8 @@ #if ENABLE(DATABASE) -#include <WebCore/DatabaseTrackerClient.h> - #include "WebKit.h" +#include <WebCore/DatabaseTrackerClient.h> class WebDatabaseManager : public IWebDatabaseManager, private WebCore::DatabaseTrackerClient { public: diff --git a/Source/WebKit/win/WebDocumentLoader.h b/Source/WebKit/win/WebDocumentLoader.h index ad0544e..93b2a86 100644 --- a/Source/WebKit/win/WebDocumentLoader.h +++ b/Source/WebKit/win/WebDocumentLoader.h @@ -24,10 +24,7 @@ */ #include "WebDataSource.h" - -#pragma warning(push, 0) #include <WebCore/DocumentLoader.h> -#pragma warning(pop) using namespace WebCore; diff --git a/Source/WebKit/win/WebDownload.cpp b/Source/WebKit/win/WebDownload.cpp index 45e36cc..cb5e2c3 100644 --- a/Source/WebKit/win/WebDownload.cpp +++ b/Source/WebKit/win/WebDownload.cpp @@ -38,7 +38,6 @@ #include "WebURLResponse.h" #include <wtf/text/CString.h> -#pragma warning(push, 0) #include <WebCore/BString.h> #include <WebCore/DownloadBundle.h> #include <WebCore/NotImplemented.h> @@ -48,7 +47,6 @@ #include <WebCore/ResourceResponse.h> #include <wtf/CurrentTime.h> #include <wtf/StdLibExtras.h> -#pragma warning(pop) using namespace WebCore; diff --git a/Source/WebKit/win/WebDownloadCFNet.cpp b/Source/WebKit/win/WebDownloadCFNet.cpp index 5a1f1bc..7398a2a 100644 --- a/Source/WebKit/win/WebDownloadCFNet.cpp +++ b/Source/WebKit/win/WebDownloadCFNet.cpp @@ -44,7 +44,6 @@ #include <sys/stat.h> #include <sys/types.h> -#pragma warning(push, 0) #include <WebCore/AuthenticationCF.h> #include <WebCore/BString.h> #include <WebCore/CredentialStorage.h> @@ -55,7 +54,6 @@ #include <WebCore/ResourceRequest.h> #include <WebCore/ResourceResponse.h> #include <wtf/CurrentTime.h> -#pragma warning(pop) using namespace WebCore; diff --git a/Source/WebKit/win/WebDownloadCurl.cpp b/Source/WebKit/win/WebDownloadCurl.cpp index 2025922..5eab2bb 100644 --- a/Source/WebKit/win/WebDownloadCurl.cpp +++ b/Source/WebKit/win/WebDownloadCurl.cpp @@ -44,7 +44,6 @@ #include <sys/stat.h> #include <sys/types.h> -#pragma warning(push, 0) #include <WebCore/BString.h> #include <WebCore/NotImplemented.h> #include <WebCore/ResourceError.h> @@ -52,7 +51,6 @@ #include <WebCore/ResourceRequest.h> #include <WebCore/ResourceResponse.h> #include <WebCore/SystemTime.h> -#pragma warning(pop) using namespace WebCore; diff --git a/Source/WebKit/win/WebElementPropertyBag.cpp b/Source/WebKit/win/WebElementPropertyBag.cpp index e68360c..4ca0a71 100644 --- a/Source/WebKit/win/WebElementPropertyBag.cpp +++ b/Source/WebKit/win/WebElementPropertyBag.cpp @@ -30,7 +30,6 @@ #include "MarshallingHelpers.h" #include "DOMCoreClasses.h" #include "WebFrame.h" -#pragma warning(push, 0) #include <WebCore/Document.h> #include <WebCore/Frame.h> #include <WebCore/HitTestResult.h> @@ -38,7 +37,6 @@ #include <WebCore/Image.h> #include <WebCore/KURL.h> #include <WebCore/RenderObject.h> -#pragma warning(pop) using namespace WebCore; diff --git a/Source/WebKit/win/WebElementPropertyBag.h b/Source/WebKit/win/WebElementPropertyBag.h index 3d96a65..7c2a565 100644 --- a/Source/WebKit/win/WebElementPropertyBag.h +++ b/Source/WebKit/win/WebElementPropertyBag.h @@ -26,9 +26,8 @@ #ifndef WebElementPropertyBag_H #define WebElementPropertyBag_H -#include "ocidl.h" - -#include <WTF/OwnPtr.h> +#include <ocidl.h> +#include <wtf/OwnPtr.h> namespace WebCore { class HitTestResult; diff --git a/Source/WebKit/win/WebError.cpp b/Source/WebKit/win/WebError.cpp index c9f1dff..16006ff 100644 --- a/Source/WebKit/win/WebError.cpp +++ b/Source/WebKit/win/WebError.cpp @@ -28,9 +28,7 @@ #include "WebError.h" #include "WebKit.h" -#pragma warning(push, 0) #include <WebCore/BString.h> -#pragma warning(pop) #if USE(CFNETWORK) #include <WebKitSystemInterface/WebKitSystemInterface.h> @@ -227,7 +225,7 @@ HRESULT STDMETHODCALLTYPE WebError::sslPeerCertificate( if (!m_cfErrorUserInfoDict) return E_FAIL; - void* data = wkGetSSLPeerCertificateData(m_cfErrorUserInfoDict.get()); + void* data = wkGetSSLPeerCertificateDataBytePtr(m_cfErrorUserInfoDict.get()); if (!data) return E_FAIL; *result = (OLE_HANDLE)(ULONG64)data; diff --git a/Source/WebKit/win/WebError.h b/Source/WebKit/win/WebError.h index ff0625d..0e78cf2 100644 --- a/Source/WebKit/win/WebError.h +++ b/Source/WebKit/win/WebError.h @@ -27,12 +27,8 @@ #define WebError_h #include "WebKit.h" - -#pragma warning(push, 0) #include <WebCore/COMPtr.h> #include <WebCore/ResourceError.h> -#pragma warning(pop) - #include <wtf/RetainPtr.h> class WebError : public IWebError, IWebErrorPrivate { diff --git a/Source/WebKit/win/WebFrame.cpp b/Source/WebKit/win/WebFrame.cpp index e412543..4b9e35d 100644 --- a/Source/WebKit/win/WebFrame.cpp +++ b/Source/WebKit/win/WebFrame.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. + * Copyright (C) 2006, 2007, 2008, 2009, 2011 Apple Inc. All rights reserved. * Copyright (C) Research In Motion Limited 2009. All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -53,7 +53,6 @@ #include "WebScriptWorld.h" #include "WebURLResponse.h" #include "WebView.h" -#pragma warning( push, 0 ) #include <WebCore/BString.h> #include <WebCore/MemoryCache.h> #include <WebCore/Document.h> @@ -104,11 +103,11 @@ #include <JavaScriptCore/JSObject.h> #include <JavaScriptCore/JSValue.h> #include <wtf/MathExtras.h> -#pragma warning(pop) #if PLATFORM(CG) #include <CoreGraphics/CoreGraphics.h> #elif PLATFORM(CAIRO) +#include "PlatformContextCairo.h" #include <cairo-win32.h> #endif @@ -1029,7 +1028,7 @@ HRESULT STDMETHODCALLTYPE WebFrame::hasSpellingMarker( Frame* coreFrame = core(this); if (!coreFrame) return E_FAIL; - *result = coreFrame->editor()->selectionStartHasSpellingMarkerFor(from, length); + *result = coreFrame->editor()->selectionStartHasMarkerFor(DocumentMarker::Spelling, from, length); return S_OK; } @@ -1899,9 +1898,9 @@ PassRefPtr<Widget> WebFrame::createJavaAppletWidget(const IntSize& pluginSize, H return pluginView; } -ObjectContentType WebFrame::objectContentType(const KURL& url, const String& mimeType) +ObjectContentType WebFrame::objectContentType(const KURL& url, const String& mimeType, bool shouldPreferPlugInsForImages) { - return WebCore::FrameLoader::defaultObjectContentType(url, mimeType); + return WebCore::FrameLoader::defaultObjectContentType(url, mimeType, shouldPreferPlugInsForImages); } String WebFrame::overrideMediaType() const @@ -2188,8 +2187,7 @@ static float scaleFactor(HDC printDC, const IntRect& marginRect, const IntRect& static HDC hdcFromContext(PlatformGraphicsContext* pctx) { - cairo_surface_t* surface = cairo_get_target(pctx); - return cairo_win32_surface_get_dc(surface); + return cairo_win32_surface_get_dc(cairo_get_target(pctx->cr())); } void WebFrame::drawHeader(PlatformGraphicsContext* pctx, IWebUIDelegate* ui, const IntRect& pageRect, float headerHeight) @@ -2244,13 +2242,14 @@ void WebFrame::spoolPage(PlatformGraphicsContext* pctx, GraphicsContext* spoolCt XFORM original, scaled; GetWorldTransform(hdc, &original); + cairo_t* cr = pctx->cr(); bool preview = (hdc != printDC); if (preview) { // If this is a preview, the Windows HDC was set to a non-scaled state so that Cairo will // draw correctly. We need to retain the correct preview scale here for use when the Cairo // drawing completes so that we can scale our GDI-based header/footer calls. This is a // workaround for a bug in Cairo (see https://bugs.freedesktop.org/show_bug.cgi?id=28161) - scaled = buildXFORMFromCairo(hdc, pctx); + scaled = buildXFORMFromCairo(hdc, cr); } float scale = scaleFactor(printDC, marginRect, pageRect); @@ -2260,13 +2259,13 @@ void WebFrame::spoolPage(PlatformGraphicsContext* pctx, GraphicsContext* spoolCt // We cannot scale the display HDC because the print surface also scales fonts, // resulting in invalid printing (and print preview) - cairo_scale(pctx, scale, scale); - cairo_translate(pctx, cairoMarginRect.x(), cairoMarginRect.y() + headerHeight); + cairo_scale(cr, scale, scale); + cairo_translate(cr, cairoMarginRect.x(), cairoMarginRect.y() + headerHeight); // Modify Cairo (only) to account for page position. - cairo_translate(pctx, -pageRect.x(), -pageRect.y()); + cairo_translate(cr, -pageRect.x(), -pageRect.y()); coreFrame->view()->paintContents(spoolCtx, pageRect); - cairo_translate(pctx, pageRect.x(), pageRect.y()); + cairo_translate(cr, pageRect.x(), pageRect.y()); if (preview) { // If this is a preview, the Windows HDC was set to a non-scaled state so that Cairo would @@ -2287,8 +2286,8 @@ void WebFrame::spoolPage(PlatformGraphicsContext* pctx, GraphicsContext* spoolCt SetWorldTransform(hdc, &original); - cairo_show_page(pctx); - ASSERT(!cairo_status(pctx)); + cairo_show_page(cr); + ASSERT(!cairo_status(cr)); spoolCtx->restore(); } @@ -2340,17 +2339,21 @@ HRESULT STDMETHODCALLTYPE WebFrame::spoolPages( else printSurface = cairo_win32_printing_surface_create(targetDC); // metafile - PlatformGraphicsContext* pctx = (PlatformGraphicsContext*)cairo_create(printSurface); - if (!pctx) { + cairo_t* cr = cairo_create(printSurface); + if (!cr) { cairo_surface_destroy(printSurface); return E_FAIL; } - + + PlatformContextCairo platformContext(cr); + PlatformGraphicsContext* pctx = &platformContext; + cairo_destroy(cr); + if (ctx) { // If this is a preview, the Windows HDC was sent with scaling information. // Retrieve it and reset it so that it draws properly. This is a workaround // for a bug in Cairo (see https://bugs.freedesktop.org/show_bug.cgi?id=28161) - setCairoTransformToPreviewHDC(pctx, targetDC); + setCairoTransformToPreviewHDC(cr, targetDC); } cairo_surface_set_fallback_resolution(printSurface, 72.0, 72.0); @@ -2394,7 +2397,6 @@ HRESULT STDMETHODCALLTYPE WebFrame::spoolPages( spoolPage(pctx, &spoolCtx, printDC, ui.get(), headerHeight, footerHeight, ii, pageCount); #if PLATFORM(CAIRO) - cairo_destroy(pctx); cairo_surface_finish(printSurface); ASSERT(!cairo_surface_status(printSurface)); cairo_surface_destroy(printSurface); diff --git a/Source/WebKit/win/WebFrame.h b/Source/WebKit/win/WebFrame.h index 59c0aec..9158fb3 100644 --- a/Source/WebKit/win/WebFrame.h +++ b/Source/WebKit/win/WebFrame.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. + * Copyright (C) 2006, 2007, 2011 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -33,13 +33,11 @@ #include "AccessibleDocument.h" -#pragma warning(push, 0) #include <WebCore/FrameWin.h> #include <WebCore/GraphicsContext.h> #include <WebCore/KURL.h> #include <WebCore/PlatformString.h> #include <WebCore/ResourceHandleClient.h> -#pragma warning(pop) #include <WTF/RefPtr.h> #include <WTF/HashMap.h> @@ -64,7 +62,10 @@ typedef struct OpaqueJSValue* JSObjectRef; #if PLATFORM(CG) typedef struct CGContext PlatformGraphicsContext; #elif PLATFORM(CAIRO) -typedef struct _cairo PlatformGraphicsContext; +namespace WebCore { +class PlatformContextCairo; +} +typedef class WebCore::PlatformContextCairo PlatformGraphicsContext; #endif class WebFrame; @@ -341,7 +342,7 @@ public: virtual PassRefPtr<WebCore::Widget> createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement*, const WebCore::KURL& baseURL, const Vector<WTF::String>& paramNames, const Vector<WTF::String>& paramValues); - virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL& url, const WTF::String& mimeType); + virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL&, const WTF::String& mimeType, bool shouldPreferPlugInsForImages); virtual WTF::String overrideMediaType() const; virtual void dispatchDidClearWindowObjectInWorld(WebCore::DOMWrapperWorld*); diff --git a/Source/WebKit/win/WebFramePolicyListener.cpp b/Source/WebKit/win/WebFramePolicyListener.cpp index e82043d..4d19e1a 100644 --- a/Source/WebKit/win/WebFramePolicyListener.cpp +++ b/Source/WebKit/win/WebFramePolicyListener.cpp @@ -28,12 +28,9 @@ #include "WebFramePolicyListener.h" #include "WebFrame.h" - -#pragma warning(push, 0) #include <WebCore/Frame.h> #include <WebCore/FrameLoader.h> #include <WebCore/FrameLoaderClient.h> -#pragma warning(pop) using namespace WebCore; diff --git a/Source/WebKit/win/WebFramePolicyListener.h b/Source/WebKit/win/WebFramePolicyListener.h index 42f6d94..f1663e7 100644 --- a/Source/WebKit/win/WebFramePolicyListener.h +++ b/Source/WebKit/win/WebFramePolicyListener.h @@ -27,13 +27,10 @@ #define WebFramePolicyListener_h #include "WebKit.h" +#include <wtf/PassRefPtr.h> +#include <wtf/RefPtr.h> -#include <WTF/PassRefPtr.h> -#include <WTF/RefPtr.h> - -#pragma warning(push, 0) #include <WebCore/FrameLoaderTypes.h> -#pragma warning(pop) namespace WebCore { class Frame; diff --git a/Source/WebKit/win/WebGeolocationPolicyListener.h b/Source/WebKit/win/WebGeolocationPolicyListener.h index 636c5f5..17d3d58 100644 --- a/Source/WebKit/win/WebGeolocationPolicyListener.h +++ b/Source/WebKit/win/WebGeolocationPolicyListener.h @@ -27,11 +27,9 @@ #define WebGeolocationPolicyListener_h #include "WebKit.h" - #include <WebCore/COMPtr.h> - -#include <WTF/PassRefPtr.h> -#include <WTF/RefPtr.h> +#include <wtf/PassRefPtr.h> +#include <wtf/RefPtr.h> namespace WebCore { class Geolocation; diff --git a/Source/WebKit/win/WebHistory.cpp b/Source/WebKit/win/WebHistory.cpp index 4caa554..efd6494 100644 --- a/Source/WebKit/win/WebHistory.cpp +++ b/Source/WebKit/win/WebHistory.cpp @@ -36,13 +36,11 @@ #include "WebNotificationCenter.h" #include "WebPreferences.h" #include <CoreFoundation/CoreFoundation.h> -#pragma warning( push, 0 ) #include <WebCore/HistoryItem.h> #include <WebCore/HistoryPropertyList.h> #include <WebCore/KURL.h> #include <WebCore/PageGroup.h> #include <WebCore/SharedBuffer.h> -#pragma warning( pop ) #include <functional> #include <wtf/StdLibExtras.h> #include <wtf/Vector.h> diff --git a/Source/WebKit/win/WebHistory.h b/Source/WebKit/win/WebHistory.h index 17cd3a7..ec7a7a9 100644 --- a/Source/WebKit/win/WebHistory.h +++ b/Source/WebKit/win/WebHistory.h @@ -27,9 +27,8 @@ #define WebHistory_H #include "WebKit.h" - -#include "COMPtr.h" #include <CoreFoundation/CoreFoundation.h> +#include <WebCore/COMPtr.h> #include <wtf/Forward.h> #include <wtf/OwnArrayPtr.h> #include <wtf/RetainPtr.h> diff --git a/Source/WebKit/win/WebHistoryItem.cpp b/Source/WebKit/win/WebHistoryItem.cpp index 098eb86..031f8ab 100644 --- a/Source/WebKit/win/WebHistoryItem.cpp +++ b/Source/WebKit/win/WebHistoryItem.cpp @@ -31,13 +31,9 @@ #include "COMPtr.h" #include "MarshallingHelpers.h" #include "WebKit.h" - -#pragma warning(push, 0) #include <WebCore/BString.h> #include <WebCore/HistoryItem.h> #include <WebCore/KURL.h> -#pragma warning(pop) - #include <wtf/PassOwnPtr.h> #include <wtf/RetainPtr.h> #include <wtf/text/CString.h> diff --git a/Source/WebKit/win/WebIconDatabase.cpp b/Source/WebKit/win/WebIconDatabase.cpp index 5ccf0b7..24e8f41 100644 --- a/Source/WebKit/win/WebIconDatabase.cpp +++ b/Source/WebKit/win/WebIconDatabase.cpp @@ -31,14 +31,13 @@ #include "COMPtr.h" #include "WebPreferences.h" #include "WebNotificationCenter.h" -#pragma warning(push, 0) #include <WebCore/BitmapInfo.h> #include <WebCore/BString.h> #include <WebCore/FileSystem.h> #include <WebCore/IconDatabase.h> #include <WebCore/Image.h> #include <WebCore/PlatformString.h> -#pragma warning(pop) +#include <WebCore/SharedBuffer.h> #include <wtf/MainThread.h> #include "shlobj.h" @@ -97,7 +96,7 @@ void WebIconDatabase::startUpIconDatabase() LOG_ERROR("Failed to construct default icon database path"); } - if (!iconDatabase().open(databasePath)) + if (!iconDatabase().open(databasePath, WebCore::IconDatabase::defaultDatabaseFilename())) LOG_ERROR("Failed to open icon database path"); } @@ -172,7 +171,7 @@ HRESULT STDMETHODCALLTYPE WebIconDatabase::iconForURL( Image* icon = 0; if (url) - icon = iconDatabase().iconForPageURL(String(url, SysStringLen(url)), intSize); + icon = iconDatabase().synchronousIconForPageURL(String(url, SysStringLen(url)), intSize); // Make sure we check for the case of an "empty image" if (icon && icon->width()) { @@ -234,7 +233,7 @@ HRESULT STDMETHODCALLTYPE WebIconDatabase::iconURLForURL( { if (!url || !iconURL) return E_POINTER; - BString iconURLBSTR(iconDatabase().iconURLForPageURL(String(url, SysStringLen(url)))); + BString iconURLBSTR(iconDatabase().synchronousIconURLForPageURL(String(url, SysStringLen(url)))); *iconURL = iconURLBSTR.release(); return S_OK; } @@ -272,11 +271,11 @@ HRESULT STDMETHODCALLTYPE WebIconDatabase::hasIconForURL( // Passing a size parameter of 0, 0 means we don't care about the result of the image, we just // want to make sure the read from disk to load the icon is kicked off. - iconDatabase().iconForPageURL(urlString, IntSize(0, 0)); + iconDatabase().synchronousIconForPageURL(urlString, IntSize(0, 0)); // Check to see if we have a non-empty icon URL for the page, and if we do, we have an icon for // the page. - *result = !(iconDatabase().iconURLForPageURL(urlString).isEmpty()); + *result = !(iconDatabase().synchronousIconURLForPageURL(urlString).isEmpty()); return S_OK; } @@ -320,7 +319,13 @@ HBITMAP WebIconDatabase::getOrCreateDefaultIconBitmap(LPSIZE size) // IconDatabaseClient -void WebIconDatabase::dispatchDidRemoveAllIcons() +bool WebIconDatabase::performImport() +{ + // Windows doesn't do any old-style database importing. + return true; +} + +void WebIconDatabase::didRemoveAllIcons() { // Queueing the empty string is a special way of saying "this queued notification is the didRemoveAllIcons notification" MutexLocker locker(m_notificationMutex); @@ -328,13 +333,29 @@ void WebIconDatabase::dispatchDidRemoveAllIcons() scheduleNotificationDelivery(); } -void WebIconDatabase::dispatchDidAddIconForPageURL(const String& pageURL) -{ +void WebIconDatabase::didImportIconURLForPageURL(const WTF::String& pageURL) +{ MutexLocker locker(m_notificationMutex); m_notificationQueue.append(pageURL.threadsafeCopy()); scheduleNotificationDelivery(); } +void WebIconDatabase::didImportIconDataForPageURL(const WTF::String& pageURL) +{ + // WebKit1 only has a single "icon did change" notification. + didImportIconURLForPageURL(pageURL); +} + +void WebIconDatabase::didChangeIconForPageURL(const WTF::String& pageURL) +{ + // WebKit1 only has a single "icon did change" notification. + didImportIconURLForPageURL(pageURL); +} + +void WebIconDatabase::didFinishURLImport() +{ +} + void WebIconDatabase::scheduleNotificationDelivery() { // Caller of this method must hold the m_notificationQueue lock diff --git a/Source/WebKit/win/WebIconDatabase.h b/Source/WebKit/win/WebIconDatabase.h index 178fff8..a895b81 100644 --- a/Source/WebKit/win/WebIconDatabase.h +++ b/Source/WebKit/win/WebIconDatabase.h @@ -28,12 +28,9 @@ #include "WebKit.h" -#pragma warning(push, 0) #include <WebCore/IconDatabaseClient.h> #include <WebCore/IntSize.h> #include <WebCore/IntSizeHash.h> -#pragma warning(pop) - #include <wtf/Vector.h> #include <wtf/Threading.h> @@ -107,8 +104,12 @@ public: /* [retval][out] */ BOOL* result); // IconDatabaseClient - virtual void dispatchDidRemoveAllIcons(); - virtual void dispatchDidAddIconForPageURL(const WTF::String&); + virtual bool performImport(); + virtual void didRemoveAllIcons(); + virtual void didImportIconURLForPageURL(const WTF::String&); + virtual void didImportIconDataForPageURL(const WTF::String&); + virtual void didChangeIconForPageURL(const WTF::String&); + virtual void didFinishURLImport(); static BSTR iconDatabaseDidAddIconNotification(); static BSTR iconDatabaseDidRemoveAllIconsNotification(); diff --git a/Source/WebKit/win/WebInspector.cpp b/Source/WebKit/win/WebInspector.cpp index ec35099..976391d 100644 --- a/Source/WebKit/win/WebInspector.cpp +++ b/Source/WebKit/win/WebInspector.cpp @@ -31,10 +31,8 @@ #include "WebKitDLL.h" #include "WebView.h" -#pragma warning(push, 0) #include <WebCore/InspectorController.h> #include <WebCore/Page.h> -#pragma warning(pop) #include <wtf/Assertions.h> using namespace WebCore; diff --git a/Source/WebKit/win/WebJavaScriptCollector.cpp b/Source/WebKit/win/WebJavaScriptCollector.cpp index 42a9da1..cb56b27 100644 --- a/Source/WebKit/win/WebJavaScriptCollector.cpp +++ b/Source/WebKit/win/WebJavaScriptCollector.cpp @@ -27,13 +27,11 @@ #include "WebKitDLL.h" #include "WebJavaScriptCollector.h" -#pragma warning(push, 0) #include <JavaScriptCore/Heap.h> #include <JavaScriptCore/JSGlobalData.h> #include <WebCore/GCController.h> #include <WebCore/JSDOMWindow.h> #include <runtime/JSLock.h> -#pragma warning(pop) using namespace JSC; using namespace WebCore; diff --git a/Source/WebKit/win/WebKit.vcproj/Interfaces.vcproj b/Source/WebKit/win/WebKit.vcproj/Interfaces.vcproj index 555a477..724f98d 100644 --- a/Source/WebKit/win/WebKit.vcproj/Interfaces.vcproj +++ b/Source/WebKit/win/WebKit.vcproj/Interfaces.vcproj @@ -18,7 +18,7 @@ <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" + InheritedPropertySheets=".\InterfacesDebug.vsprops" CharacterSet="1" > <Tool @@ -70,7 +70,7 @@ <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" + InheritedPropertySheets=".\InterfacesRelease.vsprops" CharacterSet="1" > <Tool @@ -120,9 +120,9 @@ /> </Configuration> <Configuration - Name="Release_LTCG|Win32" + Name="Production|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" + InheritedPropertySheets=".\InterfacesProduction.vsprops" CharacterSet="1" WholeProgramOptimization="1" > @@ -175,7 +175,7 @@ <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" + InheritedPropertySheets=".\InterfacesDebugAll.vsprops" CharacterSet="1" > <Tool @@ -227,7 +227,7 @@ <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" + InheritedPropertySheets=".\InterfacesReleaseCairoCFLite.vsprops" CharacterSet="1" > <Tool @@ -279,7 +279,7 @@ <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" + InheritedPropertySheets=".\InterfacesDebugCairoCFLite.vsprops" CharacterSet="1" > <Tool @@ -352,7 +352,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -404,7 +404,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -456,7 +456,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -508,7 +508,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -560,7 +560,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -612,7 +612,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -664,7 +664,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -716,7 +716,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -768,7 +768,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -820,7 +820,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -872,7 +872,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -924,7 +924,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -976,7 +976,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -1028,7 +1028,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -1080,7 +1080,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -1132,7 +1132,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -1184,7 +1184,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -1236,7 +1236,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -1316,7 +1316,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -1368,7 +1368,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -1420,7 +1420,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -1472,7 +1472,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -1524,7 +1524,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -1576,7 +1576,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -1628,7 +1628,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -1680,7 +1680,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -1732,7 +1732,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -1784,7 +1784,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -1836,7 +1836,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -1888,7 +1888,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -1940,7 +1940,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -1992,7 +1992,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -2044,7 +2044,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -2096,7 +2096,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -2148,7 +2148,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -2200,7 +2200,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -2252,7 +2252,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -2304,7 +2304,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -2356,7 +2356,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -2408,7 +2408,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -2460,7 +2460,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -2512,7 +2512,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -2564,7 +2564,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -2616,7 +2616,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -2668,7 +2668,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -2720,7 +2720,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -2772,7 +2772,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -2824,7 +2824,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -2876,7 +2876,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -2928,7 +2928,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -2980,7 +2980,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -3032,7 +3032,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -3084,7 +3084,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -3136,7 +3136,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -3188,7 +3188,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -3240,7 +3240,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -3292,7 +3292,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -3344,7 +3344,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -3396,7 +3396,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -3448,7 +3448,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -3500,7 +3500,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -3552,7 +3552,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -3604,7 +3604,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -3656,7 +3656,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -3708,7 +3708,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -3760,7 +3760,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -3812,7 +3812,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -3864,7 +3864,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -3916,7 +3916,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -3968,7 +3968,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -4020,7 +4020,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -4072,7 +4072,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -4124,7 +4124,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -4176,7 +4176,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -4228,7 +4228,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -4280,7 +4280,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -4332,7 +4332,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -4384,7 +4384,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -4436,7 +4436,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -4488,7 +4488,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -4540,7 +4540,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -4592,7 +4592,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" > <Tool Name="VCMIDLTool" @@ -4644,7 +4644,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool diff --git a/Source/WebKit/win/WebKit.vcproj/InterfacesDebug.vsprops b/Source/WebKit/win/WebKit.vcproj/InterfacesDebug.vsprops new file mode 100644 index 0000000..263dcb6 --- /dev/null +++ b/Source/WebKit/win/WebKit.vcproj/InterfacesDebug.vsprops @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="InterfacesDebug" + InheritedPropertySheets=" + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops; + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops; + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops; + .\InterfacesCommon.vsprops" + > +</VisualStudioPropertySheet> diff --git a/Source/WebKit/win/WebKit.vcproj/InterfacesDebugAll.vsprops b/Source/WebKit/win/WebKit.vcproj/InterfacesDebugAll.vsprops new file mode 100644 index 0000000..045b788 --- /dev/null +++ b/Source/WebKit/win/WebKit.vcproj/InterfacesDebugAll.vsprops @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="InterfacesDebugAll" + InheritedPropertySheets=" + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops; + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops; + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops; + .\InterfacesCommon.vsprops" + > +</VisualStudioPropertySheet> diff --git a/Source/WebKit/win/WebKit.vcproj/InterfacesDebugCairoCFLite.vsprops b/Source/WebKit/win/WebKit.vcproj/InterfacesDebugCairoCFLite.vsprops new file mode 100644 index 0000000..36fcc5a --- /dev/null +++ b/Source/WebKit/win/WebKit.vcproj/InterfacesDebugCairoCFLite.vsprops @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="InterfacesDebugCairoCFLite" + 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" + > +</VisualStudioPropertySheet> diff --git a/Source/WebKit/win/WebKit.vcproj/InterfacesProduction.vsprops b/Source/WebKit/win/WebKit.vcproj/InterfacesProduction.vsprops new file mode 100644 index 0000000..5e71307 --- /dev/null +++ b/Source/WebKit/win/WebKit.vcproj/InterfacesProduction.vsprops @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="InterfacesProduction" + InheritedPropertySheets=" + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops; + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops; + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops; + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\production.vsprops; + .\InterfacesCommon.vsprops" + > +</VisualStudioPropertySheet> diff --git a/Source/WebKit/win/WebKit.vcproj/InterfacesRelease.vsprops b/Source/WebKit/win/WebKit.vcproj/InterfacesRelease.vsprops new file mode 100644 index 0000000..77c4b1f --- /dev/null +++ b/Source/WebKit/win/WebKit.vcproj/InterfacesRelease.vsprops @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="InterfacesRelease" + InheritedPropertySheets=" + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops; + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops; + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops; + .\InterfacesCommon.vsprops" + > +</VisualStudioPropertySheet> diff --git a/Source/WebKit/win/WebKit.vcproj/InterfacesReleaseCairoCFLite.vsprops b/Source/WebKit/win/WebKit.vcproj/InterfacesReleaseCairoCFLite.vsprops new file mode 100644 index 0000000..5e17aee --- /dev/null +++ b/Source/WebKit/win/WebKit.vcproj/InterfacesReleaseCairoCFLite.vsprops @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="InterfacesReleaseCairoCFLite" + 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" + > +</VisualStudioPropertySheet> diff --git a/Source/WebKit/win/WebKit.vcproj/WebKit.make b/Source/WebKit/win/WebKit.vcproj/WebKit.make index b777d2f..59bd412 100755 --- a/Source/WebKit/win/WebKit.vcproj/WebKit.make +++ b/Source/WebKit/win/WebKit.vcproj/WebKit.make @@ -1,7 +1,7 @@ !IF "$(BUILDSTYLE)"=="DEBUG" BUILDSTYLE=Debug_All !ELSE -BUILDSTYLE=Release_LTCG +BUILDSTYLE=Production !ENDIF install: @@ -9,7 +9,6 @@ install: set WebKitOutputDir=$(OBJROOT) set ConfigurationBuildDir=$(OBJROOT)\$(BUILDSTYLE) set WebKitVSPropsRedirectionDir=$(SRCROOT)\AppleInternal\tools\vsprops\OpenSource\1\2\3\4\ - set PRODUCTION=1 devenv "WebKit.submit.sln" /rebuild $(BUILDSTYLE) -xcopy "%ConfigurationBuildDir%\bin\*.exe" "$(DSTROOT)\AppleInternal\bin\" /e/v/i/h/y xcopy "%ConfigurationBuildDir%\bin\*.pdb" "$(DSTROOT)\AppleInternal\bin\" /e/v/i/h/y diff --git a/Source/WebKit/win/WebKit.vcproj/WebKit.sln b/Source/WebKit/win/WebKit.vcproj/WebKit.sln index 3b578c5..b2b8d92 100644 --- a/Source/WebKit/win/WebKit.vcproj/WebKit.sln +++ b/Source/WebKit/win/WebKit.vcproj/WebKit.sln @@ -159,7 +159,7 @@ Global Debug_Cairo_CFLite|Win32 = Debug_Cairo_CFLite|Win32 Debug|Win32 = Debug|Win32 Release_Cairo_CFLite|Win32 = Release_Cairo_CFLite|Win32 - Release_LTCG|Win32 = Release_LTCG|Win32 + Production|Win32 = Production|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution @@ -171,8 +171,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Production|Win32.ActiveCfg = Production|Win32 + {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -183,8 +183,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Production|Win32.ActiveCfg = Production|Win32 + {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -195,8 +195,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Production|Win32.ActiveCfg = Production|Win32 + {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -207,8 +207,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {C59E5129-B453-49B7-A52B-1E104715F76E}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {C59E5129-B453-49B7-A52B-1E104715F76E}.Production|Win32.ActiveCfg = Production|Win32 + {C59E5129-B453-49B7-A52B-1E104715F76E}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -219,8 +219,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Production|Win32.ActiveCfg = Production|Win32 + {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -231,8 +231,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Production|Win32.ActiveCfg = Production|Win32 + {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -241,8 +241,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Production|Win32.ActiveCfg = Production|Win32 + {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -253,8 +253,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Production|Win32.ActiveCfg = Production|Win32 + {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -265,8 +265,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Production|Win32.ActiveCfg = Production|Win32 + {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -277,8 +277,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Production|Win32.ActiveCfg = Production|Win32 + {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -289,8 +289,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {AAE88FEF-509E-4D49-870B-7357922C276F}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {AAE88FEF-509E-4D49-870B-7357922C276F}.Production|Win32.ActiveCfg = Production|Win32 + {AAE88FEF-509E-4D49-870B-7357922C276F}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -301,8 +301,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Production|Win32.ActiveCfg = Production|Win32 + {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -313,8 +313,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Production|Win32.ActiveCfg = Production|Win32 + {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Production|Win32.Build.0 = Production|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 @@ -325,8 +325,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {B8437A41-67BC-4769-9452-45203827F821}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {B8437A41-67BC-4769-9452-45203827F821}.Production|Win32.ActiveCfg = Production|Win32 + {B8437A41-67BC-4769-9452-45203827F821}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -337,8 +337,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Production|Win32.ActiveCfg = Production|Win32 + {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -349,8 +349,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {59CC0547-70AC-499C-9B19-EC01C6F61137}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {59CC0547-70AC-499C-9B19-EC01C6F61137}.Production|Win32.ActiveCfg = Production|Win32 + {59CC0547-70AC-499C-9B19-EC01C6F61137}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -361,8 +361,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {DA31DA52-6675-48D4-89E0-333A7144397C}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {DA31DA52-6675-48D4-89E0-333A7144397C}.Production|Win32.ActiveCfg = Production|Win32 + {DA31DA52-6675-48D4-89E0-333A7144397C}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -373,8 +373,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {44B9C152-1870-4035-B94D-7B3285AA0C12}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {44B9C152-1870-4035-B94D-7B3285AA0C12}.Production|Win32.ActiveCfg = Production|Win32 + {44B9C152-1870-4035-B94D-7B3285AA0C12}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -385,8 +385,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Production|Win32.ActiveCfg = Production|Win32 + {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -397,8 +397,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {626089A3-25D3-4883-A96C-B8C66E036397}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {626089A3-25D3-4883-A96C-B8C66E036397}.Production|Win32.ActiveCfg = Production|Win32 + {626089A3-25D3-4883-A96C-B8C66E036397}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -409,8 +409,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {D09806DB-E58B-4646-8C9B-61101906C1E2}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {D09806DB-E58B-4646-8C9B-61101906C1E2}.Production|Win32.ActiveCfg = Production|Win32 + {D09806DB-E58B-4646-8C9B-61101906C1E2}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -421,8 +421,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {114FCA11-216B-4C8C-957E-30A75AE80443}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {114FCA11-216B-4C8C-957E-30A75AE80443}.Production|Win32.ActiveCfg = Production|Win32 + {114FCA11-216B-4C8C-957E-30A75AE80443}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -433,8 +433,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {CBC3391C-F060-4BF5-A66E-81404168816B}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {CBC3391C-F060-4BF5-A66E-81404168816B}.Production|Win32.ActiveCfg = Production|Win32 + {CBC3391C-F060-4BF5-A66E-81404168816B}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -445,8 +445,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Production|Win32.ActiveCfg = Production|Win32 + {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -457,8 +457,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {3B99669B-1817-443B-BCBE-835580146668}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {3B99669B-1817-443B-BCBE-835580146668}.Production|Win32.ActiveCfg = Production|Win32 + {3B99669B-1817-443B-BCBE-835580146668}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -469,8 +469,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Production|Win32.ActiveCfg = Production|Win32 + {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -481,8 +481,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Production|Win32.ActiveCfg = Production|Win32 + {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Production|Win32.Build.0 = Production|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_All|Win32.ActiveCfg = Debug_All|Win32 @@ -493,8 +493,8 @@ Global {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_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Production|Win32.ActiveCfg = Production|Win32 + {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Production|Win32.Build.0 = Production|Win32 {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Release|Win32.ActiveCfg = Release|Win32 {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Release|Win32.Build.0 = Release|Win32 {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 @@ -505,8 +505,8 @@ Global {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Debug|Win32.Build.0 = Debug|Win32 {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32 - {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32 + {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Production|Win32.ActiveCfg = Production|Win32 + {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Production|Win32.Build.0 = Production|Win32 {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Release|Win32.ActiveCfg = Release|Win32 {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection diff --git a/Source/WebKit/win/WebKit.vcproj/WebKit.submit.sln b/Source/WebKit/win/WebKit.vcproj/WebKit.submit.sln index 8f431f1..e873b11 100644 --- a/Source/WebKit/win/WebKit.vcproj/WebKit.submit.sln +++ b/Source/WebKit/win/WebKit.vcproj/WebKit.submit.sln @@ -18,7 +18,7 @@ Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug_All|Win32 = Debug_All|Win32 Debug|Win32 = Debug|Win32 - Release_LTCG|Win32 = Release_LTCG|Win32 + Production|Win32 = Production|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution @@ -26,24 +26,24 @@ Global {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}.Production|Win32.ActiveCfg = Production|Win32 + {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Production|Win32.Build.0 = Production|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}.Production|Win32.ActiveCfg = Production|Win32 + {B8437A41-67BC-4769-9452-45203827F821}.Production|Win32.Build.0 = Production|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_All|Win32 {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_All|Win32.Build.0 = Debug_All|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}.Production|Win32.ActiveCfg = Production|Win32 + {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Production|Win32.Build.0 = Production|Win32 {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release|Win32.ActiveCfg = Release|Win32 {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection diff --git a/Source/WebKit/win/WebKit.vcproj/WebKit.vcproj b/Source/WebKit/win/WebKit.vcproj/WebKit.vcproj index d1aa3c6..a8b9cc3 100644 --- a/Source/WebKit/win/WebKit.vcproj/WebKit.vcproj +++ b/Source/WebKit/win/WebKit.vcproj/WebKit.vcproj @@ -18,7 +18,7 @@ <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" + InheritedPropertySheets=".\WebKitLibDebug.vsprops" CharacterSet="1" > <Tool @@ -70,7 +70,7 @@ <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" + InheritedPropertySheets=".\WebKitLibRelease.vsprops" CharacterSet="1" > <Tool @@ -122,7 +122,7 @@ <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" + InheritedPropertySheets=".\WebKitLibDebugCairoCFLite.vsprops" CharacterSet="1" > <Tool @@ -174,7 +174,7 @@ <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" + InheritedPropertySheets=".\WebKitLibReleaseCairoCFLite.vsprops" CharacterSet="1" > <Tool @@ -226,7 +226,7 @@ <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" + InheritedPropertySheets=".\WebKitLibDebugAll.vsprops" CharacterSet="1" > <Tool @@ -276,9 +276,9 @@ /> </Configuration> <Configuration - Name="Release_LTCG|Win32" + Name="Production|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" + InheritedPropertySheets=".\WebKitLibProduction.vsprops" CharacterSet="1" WholeProgramOptimization="1" > @@ -827,7 +827,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -903,7 +903,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -1079,7 +1079,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" ExcludedFromBuild="true" > <Tool @@ -1301,7 +1301,7 @@ /> </FileConfiguration> <FileConfiguration - Name="Release_LTCG|Win32" + Name="Production|Win32" > <Tool Name="VCCLCompilerTool" diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitGUID.vcproj b/Source/WebKit/win/WebKit.vcproj/WebKitGUID.vcproj index 5d1abd2..f087413 100644 --- a/Source/WebKit/win/WebKit.vcproj/WebKitGUID.vcproj +++ b/Source/WebKit/win/WebKit.vcproj/WebKitGUID.vcproj @@ -18,7 +18,7 @@ <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" + InheritedPropertySheets=".\WebKitGUIDDebug.vsprops" CharacterSet="1" > <Tool @@ -71,7 +71,7 @@ <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" + InheritedPropertySheets=".\WebKitGUIDRelease.vsprops" CharacterSet="1" > <Tool @@ -124,7 +124,7 @@ <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" + InheritedPropertySheets=".\WebKitGUIDDebugAll.vsprops" CharacterSet="1" > <Tool @@ -175,9 +175,9 @@ /> </Configuration> <Configuration - Name="Release_LTCG|Win32" + Name="Production|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" + InheritedPropertySheets=".\WebKitGUIDProduction.vsprops" CharacterSet="1" WholeProgramOptimization="1" > @@ -231,7 +231,7 @@ <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" + InheritedPropertySheets=".\WebKitGUIDReleaseCairoCFLite.vsprops" CharacterSet="1" > <Tool @@ -284,7 +284,7 @@ <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" + InheritedPropertySheets=".\WebKitGUIDDebugCairoCFLite.vsprops" CharacterSet="1" > <Tool diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebug.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebug.vsprops new file mode 100644 index 0000000..2038998 --- /dev/null +++ b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebug.vsprops @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="WebKitGUIDDebug" + InheritedPropertySheets=" + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops; + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops; + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops; + .\WebKitGUIDCommon.vsprops" + > +</VisualStudioPropertySheet> diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebugAll.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebugAll.vsprops new file mode 100644 index 0000000..ccd2847 --- /dev/null +++ b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebugAll.vsprops @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="WebKitGUIDDebugAll" + 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" + > +</VisualStudioPropertySheet> diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebugCairoCFLite.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebugCairoCFLite.vsprops new file mode 100644 index 0000000..abbdd3e --- /dev/null +++ b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebugCairoCFLite.vsprops @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="WebKitGUIDDebugCairoCFLite" + 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" + > +</VisualStudioPropertySheet> diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDProduction.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDProduction.vsprops new file mode 100644 index 0000000..941bf46 --- /dev/null +++ b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDProduction.vsprops @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="WebKitGUIDProduction" + InheritedPropertySheets=" + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops; + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops; + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops; + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\production.vsprops; + .\WebKitGUIDCommon.vsprops" + > +</VisualStudioPropertySheet> diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDRelease.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDRelease.vsprops new file mode 100644 index 0000000..39566ea --- /dev/null +++ b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDRelease.vsprops @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="WebKitGUIDRelease" + InheritedPropertySheets=" + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops; + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops; + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops; + .\WebKitGUIDCommon.vsprops" + > +</VisualStudioPropertySheet> diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDReleaseCairoCFLite.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDReleaseCairoCFLite.vsprops new file mode 100644 index 0000000..bc0b7a1 --- /dev/null +++ b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDReleaseCairoCFLite.vsprops @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="WebKitGUIDReleaseCairoCFLite" + 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" + > +</VisualStudioPropertySheet> diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitLibDebug.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitLibDebug.vsprops new file mode 100644 index 0000000..0e003e5 --- /dev/null +++ b/Source/WebKit/win/WebKit.vcproj/WebKitLibDebug.vsprops @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="WebKitLibDebug" + InheritedPropertySheets=" + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops; + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops; + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops; + .\WebKitLibCommon.vsprops" + > +</VisualStudioPropertySheet> diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitLibDebugAll.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitLibDebugAll.vsprops new file mode 100644 index 0000000..005cee7 --- /dev/null +++ b/Source/WebKit/win/WebKit.vcproj/WebKitLibDebugAll.vsprops @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="WebKitLibDebugAll" + 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" + > +</VisualStudioPropertySheet> diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitLibDebugCairoCFLite.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitLibDebugCairoCFLite.vsprops new file mode 100644 index 0000000..355350d --- /dev/null +++ b/Source/WebKit/win/WebKit.vcproj/WebKitLibDebugCairoCFLite.vsprops @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="WebKitLibDebugCairoCFLite" + 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" + > +</VisualStudioPropertySheet> diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitLibProduction.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitLibProduction.vsprops new file mode 100644 index 0000000..127707e --- /dev/null +++ b/Source/WebKit/win/WebKit.vcproj/WebKitLibProduction.vsprops @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="WebKitProduction" + InheritedPropertySheets=" + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops; + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops; + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops; + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\production.vsprops; + .\WebKitLibCommon.vsprops" + > +</VisualStudioPropertySheet> diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitLibRelease.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitLibRelease.vsprops new file mode 100644 index 0000000..82f6dfd --- /dev/null +++ b/Source/WebKit/win/WebKit.vcproj/WebKitLibRelease.vsprops @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="WebKitLibRelease" + InheritedPropertySheets=" + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops; + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops; + $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops; + .\WebKitLibCommon.vsprops" + > +</VisualStudioPropertySheet> diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitLibReleaseCairoCFLite.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitLibReleaseCairoCFLite.vsprops new file mode 100644 index 0000000..692fdc0 --- /dev/null +++ b/Source/WebKit/win/WebKit.vcproj/WebKitLibReleaseCairoCFLite.vsprops @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="WebKitLibReleaseCairoCFLite" + 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" + > +</VisualStudioPropertySheet> diff --git a/Source/WebKit/win/WebKitCOMAPI.h b/Source/WebKit/win/WebKitCOMAPI.h index 598ac2d..a9e6dad 100644 --- a/Source/WebKit/win/WebKitCOMAPI.h +++ b/Source/WebKit/win/WebKitCOMAPI.h @@ -26,6 +26,8 @@ #ifndef WebKitCOMAPI_h #define WebKitCOMAPI_h +#include <unknwn.h> + extern "C" { // Callers should use this API instead of CoCreateInstance to instantiate WebKit COM classes. diff --git a/Source/WebKit/win/WebKitClassFactory.h b/Source/WebKit/win/WebKitClassFactory.h index 90a43c2..85ad843 100644 --- a/Source/WebKit/win/WebKitClassFactory.h +++ b/Source/WebKit/win/WebKitClassFactory.h @@ -26,6 +26,8 @@ #ifndef WebKitClassFactory_H #define WebKitClassFactory_H +#include <unknwn.h> + class WebKitClassFactory : public IClassFactory { public: diff --git a/Source/WebKit/win/WebKitDLL.cpp b/Source/WebKit/win/WebKitDLL.cpp index d6a5120..ef85608 100644 --- a/Source/WebKit/win/WebKitDLL.cpp +++ b/Source/WebKit/win/WebKitDLL.cpp @@ -38,9 +38,9 @@ #include <WebCore/SharedBuffer.h> #include <WebCore/WebCoreInstanceHandle.h> #include <WebCore/Widget.h> -#include <wtf/Vector.h> -#include <tchar.h> #include <olectl.h> +#include <wchar.h> +#include <wtf/Vector.h> using namespace WebCore; diff --git a/Source/WebKit/win/WebKitGraphics.cpp b/Source/WebKit/win/WebKitGraphics.cpp index b130002..216b7b7 100644 --- a/Source/WebKit/win/WebKitGraphics.cpp +++ b/Source/WebKit/win/WebKitGraphics.cpp @@ -31,7 +31,6 @@ #include "WebPreferences.h" -#pragma warning(push, 0) #include <WebCore/Font.h> #include <WebCore/FontDescription.h> #include <WebCore/FontSelector.h> @@ -42,7 +41,6 @@ #include <wtf/unicode/CharacterNames.h> #include <CoreGraphics/CoreGraphics.h> -#pragma warning(pop) #include <WebKitSystemInterface/WebKitSystemInterface.h> diff --git a/Source/WebKit/win/WebKitSystemBits.cpp b/Source/WebKit/win/WebKitSystemBits.cpp index eec6361..c77a78b 100644 --- a/Source/WebKit/win/WebKitSystemBits.cpp +++ b/Source/WebKit/win/WebKitSystemBits.cpp @@ -29,12 +29,9 @@ #include "config.h" #include "WebKitSystemBits.h" -#pragma warning(push, 0) +#include <CoreFoundation/CoreFoundation.h> #include <WebCore/PlatformString.h> -#pragma warning(pop) - #include <windows.h> -#include <CoreFoundation/CoreFoundation.h> unsigned long long WebMemorySize() { diff --git a/Source/WebKit/win/WebLocalizableStrings.cpp b/Source/WebKit/win/WebLocalizableStrings.cpp index e9b99ad..b05c55e 100644 --- a/Source/WebKit/win/WebLocalizableStrings.cpp +++ b/Source/WebKit/win/WebLocalizableStrings.cpp @@ -28,11 +28,9 @@ #include "WebLocalizableStrings.h" -#pragma warning(push, 0) #include <WebCore/PlatformString.h> #include <wtf/text/CString.h> #include <wtf/text/StringHash.h> -#pragma warning(pop) #include <wtf/Assertions.h> #include <wtf/HashMap.h> diff --git a/Source/WebKit/win/WebMutableURLRequest.cpp b/Source/WebKit/win/WebMutableURLRequest.cpp index 02829d7..5aac756 100644 --- a/Source/WebKit/win/WebMutableURLRequest.cpp +++ b/Source/WebKit/win/WebMutableURLRequest.cpp @@ -30,17 +30,18 @@ #include "WebKit.h" #include "MarshallingHelpers.h" #include "WebKit.h" -#pragma warning(push, 0) #include <WebCore/BString.h> #include <WebCore/COMPtr.h> #include <WebCore/FormData.h> #include <WebCore/NotImplemented.h> #include <WebCore/ResourceHandle.h> #include <wtf/text/CString.h> -#pragma warning(pop) - #include <wtf/RetainPtr.h> +#if USE(CF) +#include <WebCore/CertificateCFWin.h> +#endif + #if USE(CFNETWORK) #include <CFNetwork/CFURLRequestPriv.h> #endif @@ -350,26 +351,6 @@ HRESULT STDMETHODCALLTYPE WebMutableURLRequest::setAllowsAnyHTTPSCertificate(voi return S_OK; } -static void deallocCertContext(void* ptr, void* info) -{ - if (ptr) - CertFreeCertificateContext(reinterpret_cast<PCCERT_CONTEXT>(ptr)); -} - -static CFDataRef copyCert(PCCERT_CONTEXT cert) -{ - static CFAllocatorRef certDealloc; - PCCERT_CONTEXT certCopy = 0; - if (!certDealloc) { - CFAllocatorContext allocContext = { - 0, 0, 0, 0, 0, 0, 0, deallocCertContext, 0 - }; - certDealloc = CFAllocatorCreate(kCFAllocatorDefault, &allocContext); - } - certCopy = CertDuplicateCertificateContext(cert); - return CFDataCreateWithBytesNoCopy(kCFAllocatorDefault, reinterpret_cast<const UInt8*>(certCopy), sizeof(*certCopy), certDealloc); -} - HRESULT STDMETHODCALLTYPE WebMutableURLRequest::setClientCertificate( /* [in] */ OLE_HANDLE cert) { @@ -377,7 +358,7 @@ HRESULT STDMETHODCALLTYPE WebMutableURLRequest::setClientCertificate( return E_POINTER; PCCERT_CONTEXT certContext = reinterpret_cast<PCCERT_CONTEXT>((ULONG64)cert); - RetainPtr<CFDataRef> certData(AdoptCF, copyCert(certContext)); + RetainPtr<CFDataRef> certData = WebCore::copyCertificateToData(certContext); ResourceHandle::setClientCertificate(m_request.url().host(), certData.get()); return S_OK; } diff --git a/Source/WebKit/win/WebMutableURLRequest.h b/Source/WebKit/win/WebMutableURLRequest.h index 77dc1a0..0f89676 100644 --- a/Source/WebKit/win/WebMutableURLRequest.h +++ b/Source/WebKit/win/WebMutableURLRequest.h @@ -27,9 +27,7 @@ #define WebMutableURLRequest_H #include "WebKit.h" -#pragma warning(push, 0) #include <WebCore/ResourceRequest.h> -#pragma warning(pop) namespace WebCore { diff --git a/Source/WebKit/win/WebNodeHighlight.cpp b/Source/WebKit/win/WebNodeHighlight.cpp index c4bf181..0e51b1c 100644 --- a/Source/WebKit/win/WebNodeHighlight.cpp +++ b/Source/WebKit/win/WebNodeHighlight.cpp @@ -30,14 +30,12 @@ #include "WebNodeHighlight.h" #include "WebView.h" -#pragma warning(push, 0) #include <WebCore/BitmapInfo.h> #include <WebCore/Color.h> #include <WebCore/GraphicsContext.h> #include <WebCore/InspectorController.h> #include <WebCore/Page.h> #include <WebCore/WindowMessageBroadcaster.h> -#pragma warning(pop) #include <wtf/OwnPtr.h> #include <wtf/HashSet.h> diff --git a/Source/WebKit/win/WebNodeHighlight.h b/Source/WebKit/win/WebNodeHighlight.h index de347d3..1d154f9 100644 --- a/Source/WebKit/win/WebNodeHighlight.h +++ b/Source/WebKit/win/WebNodeHighlight.h @@ -29,10 +29,7 @@ #ifndef WebNodeHighlight_h #define WebNodeHighlight_h -#pragma warning(push, 0) #include <WebCore/WindowMessageListener.h> -#pragma warning(pop) - #include <windows.h> class WebView; diff --git a/Source/WebKit/win/WebNotificationCenter.cpp b/Source/WebKit/win/WebNotificationCenter.cpp index 6c22224..e30f066 100644 --- a/Source/WebKit/win/WebNotificationCenter.cpp +++ b/Source/WebKit/win/WebNotificationCenter.cpp @@ -28,16 +28,14 @@ #include "WebNotificationCenter.h" #include "WebNotification.h" -#pragma warning(push, 0) #include <WebCore/COMPtr.h> #include <WebCore/PlatformString.h> #include <wtf/HashMap.h> #include <wtf/HashTraits.h> #include <wtf/Vector.h> #include <wtf/text/StringHash.h> -#pragma warning(pop) -#include <tchar.h> #include <utility> +#include <wchar.h> using namespace WebCore; diff --git a/Source/WebKit/win/WebPreferences.cpp b/Source/WebKit/win/WebPreferences.cpp index 01cab2b..a4869b6 100644 --- a/Source/WebKit/win/WebPreferences.cpp +++ b/Source/WebKit/win/WebPreferences.cpp @@ -40,7 +40,7 @@ #include <WebCore/PlatformString.h> #include <limits> #include <shlobj.h> -#include <tchar.h> +#include <wchar.h> #include <wtf/HashMap.h> #include <wtf/OwnArrayPtr.h> #include <wtf/text/CString.h> @@ -340,12 +340,12 @@ LONGLONG WebPreferences::longlongValueForKey(CFStringRef key) void WebPreferences::setStringValue(CFStringRef key, LPCTSTR value) { BSTR val = stringValueForKey(key); - if (val && !_tcscmp(val, value)) + if (val && !wcscmp(val, value)) return; SysFreeString(val); RetainPtr<CFStringRef> valueRef(AdoptCF, - CFStringCreateWithCharactersNoCopy(0, (UniChar*)_wcsdup(value), (CFIndex)_tcslen(value), kCFAllocatorMalloc)); + CFStringCreateWithCharactersNoCopy(0, (UniChar*)_wcsdup(value), (CFIndex)wcslen(value), kCFAllocatorMalloc)); setValueForKey(key, valueRef.get()); postPreferencesChangesNotification(); diff --git a/Source/WebKit/win/WebResource.cpp b/Source/WebKit/win/WebResource.cpp index 506e55d..ccfd95d 100644 --- a/Source/WebKit/win/WebResource.cpp +++ b/Source/WebKit/win/WebResource.cpp @@ -29,10 +29,7 @@ #include "MarshallingHelpers.h" #include "MemoryStream.h" - -#pragma warning(push, 0) #include <WebCore/BString.h> -#pragma warning(pop) using namespace WebCore; diff --git a/Source/WebKit/win/WebResource.h b/Source/WebKit/win/WebResource.h index 7c6759a..611803e 100644 --- a/Source/WebKit/win/WebResource.h +++ b/Source/WebKit/win/WebResource.h @@ -28,14 +28,11 @@ #include "WebKit.h" #include "COMPtr.h" - -#pragma warning(push, 0) #include <WebCore/KURL.h> #include <WebCore/PlatformString.h> #include <WebCore/ResourceResponse.h> #include <WebCore/SharedBuffer.h> #include <wtf/PassRefPtr.h> -#pragma warning(pop) class WebResource : public IWebResource { public: diff --git a/Source/WebKit/win/WebScriptWorld.h b/Source/WebKit/win/WebScriptWorld.h index 01511de..4b0fa48 100644 --- a/Source/WebKit/win/WebScriptWorld.h +++ b/Source/WebKit/win/WebScriptWorld.h @@ -25,6 +25,7 @@ #ifndef WebScriptWorld_h #define WebScriptWorld_h +#include "WebKit.h" #include <WebCore/COMPtr.h> namespace WebCore { diff --git a/Source/WebKit/win/WebScrollBar.cpp b/Source/WebKit/win/WebScrollBar.cpp index 9f0131b..224a72a 100644 --- a/Source/WebKit/win/WebScrollBar.cpp +++ b/Source/WebKit/win/WebScrollBar.cpp @@ -28,12 +28,10 @@ #include "WebKit.h" #include "WebScrollBar.h" -#pragma warning(push, 0) #include <WebCore/GraphicsContext.h> #include <WebCore/PlatformMouseEvent.h> #include <WebCore/Scrollbar.h> #include <WebCore/ScrollbarTheme.h> -#pragma warning(pop) using namespace WebCore; @@ -145,6 +143,7 @@ HRESULT STDMETHODCALLTYPE WebScrollBar::setValue( /* [in] */ int value) { m_currentPosition = value; + ScrollableArea::scrollToOffsetWithoutAnimation(m_scrollBar->orientation(), m_currentPosition); return S_OK; } diff --git a/Source/WebKit/win/WebScrollBar.h b/Source/WebKit/win/WebScrollBar.h index 39457d4..0482419 100644 --- a/Source/WebKit/win/WebScrollBar.h +++ b/Source/WebKit/win/WebScrollBar.h @@ -31,11 +31,9 @@ #include <wtf/RefPtr.h> #include <wtf/OwnPtr.h> -#pragma warning(push, 0) #include <WebCore/COMPtr.h> #include <WebCore/Scrollbar.h> #include <WebCore/ScrollableArea.h> -#pragma warning(pop) namespace WebCore { class Scrollbar; diff --git a/Source/WebKit/win/WebSerializedJSValue.h b/Source/WebKit/win/WebSerializedJSValue.h index 6e3747d..61e5617 100644 --- a/Source/WebKit/win/WebSerializedJSValue.h +++ b/Source/WebKit/win/WebSerializedJSValue.h @@ -25,6 +25,7 @@ #ifndef WebSerializedJSValue_h #define WebSerializedJSValue_h +#include "WebKit.h" #include <WebCore/COMPtr.h> typedef const struct OpaqueJSContext* JSContextRef; diff --git a/Source/WebKit/win/WebURLAuthenticationChallenge.cpp b/Source/WebKit/win/WebURLAuthenticationChallenge.cpp index c711450..1663376 100644 --- a/Source/WebKit/win/WebURLAuthenticationChallenge.cpp +++ b/Source/WebKit/win/WebURLAuthenticationChallenge.cpp @@ -35,11 +35,8 @@ #include "WebURLProtectionSpace.h" #include "WebURLResponse.h" #include "WebKit.h" - -#pragma warning(push, 0) #include <WebCore/BString.h> #include <WebCore/ResourceHandle.h> -#pragma warning(pop) using namespace WebCore; diff --git a/Source/WebKit/win/WebURLAuthenticationChallenge.h b/Source/WebKit/win/WebURLAuthenticationChallenge.h index d0eba20..dfc5733 100644 --- a/Source/WebKit/win/WebURLAuthenticationChallenge.h +++ b/Source/WebKit/win/WebURLAuthenticationChallenge.h @@ -27,11 +27,8 @@ #define WebURLAuthenticationChallenge_h #include "WebKit.h" - -#pragma warning(push, 0) #include <WebCore/AuthenticationChallenge.h> #include <WebCore/COMPtr.h> -#pragma warning(pop) class DECLSPEC_UUID("FD3B2381-0BB6-4B59-AF09-0E599C8901CF") WebURLAuthenticationChallenge : public IWebURLAuthenticationChallenge { public: diff --git a/Source/WebKit/win/WebURLAuthenticationChallengeSender.cpp b/Source/WebKit/win/WebURLAuthenticationChallengeSender.cpp index 1257d41..0a9154f 100644 --- a/Source/WebKit/win/WebURLAuthenticationChallengeSender.cpp +++ b/Source/WebKit/win/WebURLAuthenticationChallengeSender.cpp @@ -32,10 +32,7 @@ #include "WebKit.h" #include "WebURLAuthenticationChallenge.h" #include "WebURLCredential.h" - -#pragma warning(push, 0) #include <WebCore/AuthenticationClient.h> -#pragma warning(pop) using namespace WebCore; diff --git a/Source/WebKit/win/WebURLAuthenticationChallengeSenderCFNet.cpp b/Source/WebKit/win/WebURLAuthenticationChallengeSenderCFNet.cpp index f756391..3d329d1 100644 --- a/Source/WebKit/win/WebURLAuthenticationChallengeSenderCFNet.cpp +++ b/Source/WebKit/win/WebURLAuthenticationChallengeSenderCFNet.cpp @@ -32,10 +32,7 @@ #include "WebKit.h" #include "WebURLAuthenticationChallenge.h" #include "WebURLCredential.h" - -#pragma warning(push, 0) #include <WebCore/AuthenticationClient.h> -#pragma warning(pop) using namespace WebCore; diff --git a/Source/WebKit/win/WebURLAuthenticationChallengeSenderCurl.cpp b/Source/WebKit/win/WebURLAuthenticationChallengeSenderCurl.cpp index 2cf9a75..2f49f67 100644 --- a/Source/WebKit/win/WebURLAuthenticationChallengeSenderCurl.cpp +++ b/Source/WebKit/win/WebURLAuthenticationChallengeSenderCurl.cpp @@ -33,10 +33,7 @@ #include "WebKit.h" #include "WebURLAuthenticationChallenge.h" #include "WebURLCredential.h" - -#pragma warning(push, 0) #include <WebCore/ResourceHandle.h> -#pragma warning(pop) using namespace WebCore; diff --git a/Source/WebKit/win/WebURLCredential.cpp b/Source/WebKit/win/WebURLCredential.cpp index 82cf78c..0d9ac34 100644 --- a/Source/WebKit/win/WebURLCredential.cpp +++ b/Source/WebKit/win/WebURLCredential.cpp @@ -28,9 +28,7 @@ #include "WebURLCredential.h" #include "WebKit.h" -#pragma warning(push, 0) #include <WebCore/BString.h> -#pragma warning(pop) using namespace WebCore; diff --git a/Source/WebKit/win/WebURLCredential.h b/Source/WebKit/win/WebURLCredential.h index 094c966..11f3755 100644 --- a/Source/WebKit/win/WebURLCredential.h +++ b/Source/WebKit/win/WebURLCredential.h @@ -27,10 +27,7 @@ #define WebURLCredential_h #include "WebKit.h" - -#pragma warning(push, 0) #include <WebCore/Credential.h> -#pragma warning(pop) class WebURLCredential : public IWebURLCredential { diff --git a/Source/WebKit/win/WebURLProtectionSpace.cpp b/Source/WebKit/win/WebURLProtectionSpace.cpp index 6086abb..98a727e 100644 --- a/Source/WebKit/win/WebURLProtectionSpace.cpp +++ b/Source/WebKit/win/WebURLProtectionSpace.cpp @@ -28,9 +28,7 @@ #include "WebKitDLL.h" #include "WebURLProtectionSpace.h" -#pragma warning(push, 0) #include <WebCore/BString.h> -#pragma warning(pop) using namespace WebCore; diff --git a/Source/WebKit/win/WebURLProtectionSpace.h b/Source/WebKit/win/WebURLProtectionSpace.h index 579d21b..c1f763f 100644 --- a/Source/WebKit/win/WebURLProtectionSpace.h +++ b/Source/WebKit/win/WebURLProtectionSpace.h @@ -27,10 +27,7 @@ #define WebURLProtectionSpace_h #include "WebKit.h" - -#pragma warning(push, 0) #include <WebCore/ProtectionSpace.h> -#pragma warning(pop) class WebURLProtectionSpace : public IWebURLProtectionSpace { diff --git a/Source/WebKit/win/WebURLResponse.cpp b/Source/WebKit/win/WebURLResponse.cpp index 644e1d8..b6c94dd 100644 --- a/Source/WebKit/win/WebURLResponse.cpp +++ b/Source/WebKit/win/WebURLResponse.cpp @@ -38,14 +38,12 @@ #endif #include <wtf/platform.h> -#pragma warning( push, 0 ) #include <WebCore/BString.h> #include <WebCore/KURL.h> #include <WebCore/ResourceHandle.h> -#pragma warning( pop ) #include <shlobj.h> #include <shlwapi.h> -#include <tchar.h> +#include <wchar.h> using namespace WebCore; @@ -410,7 +408,7 @@ HRESULT STDMETHODCALLTYPE WebURLResponse::sslPeerCertificate( CFDictionaryRef dict = certificateDictionary(); if (!dict) return E_FAIL; - void* data = wkGetSSLPeerCertificateData(dict); + void* data = wkGetSSLPeerCertificateDataBytePtr(dict); if (!data) return E_FAIL; *result = (OLE_HANDLE)(ULONG64)data; @@ -439,21 +437,21 @@ HRESULT WebURLResponse::suggestedFileExtension(BSTR *result) err = RegOpenKeyEx(key, mimeType, 0, KEY_QUERY_VALUE, &subKey); if (!err) { DWORD keyType = REG_SZ; - TCHAR extension[MAX_PATH]; + WCHAR extension[MAX_PATH]; DWORD keySize = sizeof(extension)/sizeof(extension[0]); err = RegQueryValueEx(subKey, TEXT("Extension"), 0, &keyType, (LPBYTE)extension, &keySize); if (!err && keyType != REG_SZ) err = ERROR_INVALID_DATA; if (err) { // fallback handlers - if (!_tcscmp(mimeType, TEXT("text/html"))) { - _tcscpy(extension, TEXT(".html")); + if (!wcscmp(mimeType, L"text/html")) { + wcscpy(extension, L".html"); err = 0; - } else if (!_tcscmp(mimeType, TEXT("application/xhtml+xml"))) { - _tcscpy(extension, TEXT(".xhtml")); + } else if (!wcscmp(mimeType, L"application/xhtml+xml")) { + wcscpy(extension, L".xhtml"); err = 0; - } else if (!_tcscmp(mimeType, TEXT("image/svg+xml"))) { - _tcscpy(extension, TEXT(".svg")); + } else if (!wcscmp(mimeType, L"image/svg+xml")) { + wcscpy(extension, L".svg"); err = 0; } } diff --git a/Source/WebKit/win/WebURLResponse.h b/Source/WebKit/win/WebURLResponse.h index 761ca8e..8e82a2b 100644 --- a/Source/WebKit/win/WebURLResponse.h +++ b/Source/WebKit/win/WebURLResponse.h @@ -27,10 +27,7 @@ #define WebURLResponse_H #include "WebKit.h" - -#pragma warning(push, 0) #include <WebCore/ResourceResponse.h> -#pragma warning(pop) class WebURLResponse : public IWebHTTPURLResponse, IWebURLResponsePrivate { diff --git a/Source/WebKit/win/WebUserContentURLPattern.h b/Source/WebKit/win/WebUserContentURLPattern.h index 42854b4..8864093 100644 --- a/Source/WebKit/win/WebUserContentURLPattern.h +++ b/Source/WebKit/win/WebUserContentURLPattern.h @@ -25,6 +25,7 @@ #ifndef WebUserContentURLPattern_h #define WebUserContentURLPattern_h +#include "WebKit.h" #include <WebCore/COMPtr.h> #include <WebCore/UserContentURLPattern.h> diff --git a/Source/WebKit/win/WebView.cpp b/Source/WebKit/win/WebView.cpp index 0fb8047..69f83de 100644 --- a/Source/WebKit/win/WebView.cpp +++ b/Source/WebKit/win/WebView.cpp @@ -128,6 +128,7 @@ #include <WebCore/SelectionController.h> #include <WebCore/Settings.h> #include <WebCore/SimpleFontData.h> +#include <WebCore/SystemInfo.h> #include <WebCore/TypingCommand.h> #include <WebCore/WindowMessageBroadcaster.h> #include <wtf/Threading.h> @@ -161,7 +162,7 @@ #include <comutil.h> #include <dimm.h> #include <oleacc.h> -#include <tchar.h> +#include <wchar.h> #include <windowsx.h> #include <wtf/HashSet.h> #include <wtf/text/CString.h> @@ -184,8 +185,7 @@ using JSC::JSLock; static HMODULE accessibilityLib; static HashSet<WebView*> pendingDeleteBackingStoreSet; -static String osVersion(); -static String webKitVersion(); +static String webKitVersionString(); WebView* kit(Page* page) { @@ -1244,9 +1244,10 @@ bool WebView::canHandleRequest(const WebCore::ResourceRequest& request) String WebView::standardUserAgentWithApplicationName(const String& applicationName) { - if (applicationName.isEmpty()) - return makeString("Mozilla/5.0 (", osVersion(), ") AppleWebKit/", webKitVersion(), " (KHTML, like Gecko)"); - return makeString("Mozilla/5.0 (", osVersion(), ") AppleWebKit/", webKitVersion(), " (KHTML, like Gecko) ", applicationName); + DEFINE_STATIC_LOCAL(String, osVersion, (windowsVersionForUAString())); + DEFINE_STATIC_LOCAL(String, webKitVersion, (webKitVersionString())); + + return makeString("Mozilla/5.0 (", osVersion, ") AppleWebKit/", webKitVersion, " (KHTML, like Gecko)", applicationName.isEmpty() ? "" : " ", applicationName); } Page* WebView::page() @@ -1675,12 +1676,12 @@ bool WebView::mouseWheel(WPARAM wParam, LPARAM lParam, bool isMouseHWheel) HWND focusedWindow = GetFocus(); if (focusedWindow && focusedWindow != m_viewWindow) { // Our focus is on a different hwnd, see if it's a PopupMenu and if so, set the focus back on us (which will hide the popup). - TCHAR className[256]; + WCHAR className[256]; // Make sure truncation won't affect the comparison. - ASSERT(WTF_ARRAY_LENGTH(className) > _tcslen(PopupMenuWin::popupClassName())); + ASSERT(WTF_ARRAY_LENGTH(className) > wcslen(PopupMenuWin::popupClassName())); - if (GetClassName(focusedWindow, className, WTF_ARRAY_LENGTH(className)) && !_tcscmp(className, PopupMenuWin::popupClassName())) { + if (GetClassNameW(focusedWindow, className, WTF_ARRAY_LENGTH(className)) && !wcscmp(className, PopupMenuWin::popupClassName())) { // We don't let the WebView scroll here for two reasons - 1) To match Firefox behavior, 2) If we do scroll, we lose the // focus ring around the select menu. SetFocus(m_viewWindow); @@ -2336,31 +2337,7 @@ bool WebView::developerExtrasEnabled() const #endif } -static String osVersion() -{ - String osVersion; - OSVERSIONINFO versionInfo = {0}; - versionInfo.dwOSVersionInfoSize = sizeof(versionInfo); - GetVersionEx(&versionInfo); - - if (versionInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) { - if (versionInfo.dwMajorVersion == 4) { - if (versionInfo.dwMinorVersion == 0) - osVersion = "Windows 95"; - else if (versionInfo.dwMinorVersion == 10) - osVersion = "Windows 98"; - else if (versionInfo.dwMinorVersion == 90) - osVersion = "Windows 98; Win 9x 4.90"; - } - } else if (versionInfo.dwPlatformId == VER_PLATFORM_WIN32_NT) - osVersion = makeString("Windows NT ", String::number(versionInfo.dwMajorVersion), '.', String::number(versionInfo.dwMinorVersion)); - - if (!osVersion.length()) - osVersion = makeString("Windows ", String::number(versionInfo.dwMajorVersion), '.', String::number(versionInfo.dwMinorVersion)); - return osVersion; -} - -static String webKitVersion() +static String webKitVersionString() { LPWSTR buildNumberStringPtr; if (!::LoadStringW(gInstance, BUILD_NUMBER, reinterpret_cast<LPWSTR>(&buildNumberStringPtr), 0) || !buildNumberStringPtr) @@ -2523,15 +2500,15 @@ bool WebView::shouldInitializeTrackPointHack() return shouldCreateScrollbars; hasRunTrackPointCheck = true; - const TCHAR trackPointKeys[][50] = { TEXT("Software\\Lenovo\\TrackPoint"), - TEXT("Software\\Lenovo\\UltraNav"), - TEXT("Software\\Alps\\Apoint\\TrackPoint"), - TEXT("Software\\Synaptics\\SynTPEnh\\UltraNavUSB"), - TEXT("Software\\Synaptics\\SynTPEnh\\UltraNavPS2") }; + const WCHAR trackPointKeys[][50] = { L"Software\\Lenovo\\TrackPoint", + L"Software\\Lenovo\\UltraNav", + L"Software\\Alps\\Apoint\\TrackPoint", + L"Software\\Synaptics\\SynTPEnh\\UltraNavUSB", + L"Software\\Synaptics\\SynTPEnh\\UltraNavPS2" }; for (int i = 0; i < 5; ++i) { HKEY trackPointKey; - int readKeyResult = ::RegOpenKeyEx(HKEY_CURRENT_USER, trackPointKeys[i], 0, KEY_READ, &trackPointKey); + int readKeyResult = ::RegOpenKeyExW(HKEY_CURRENT_USER, trackPointKeys[i], 0, KEY_READ, &trackPointKey); ::RegCloseKey(trackPointKey); if (readKeyResult == ERROR_SUCCESS) { shouldCreateScrollbars = true; @@ -2562,8 +2539,8 @@ HRESULT STDMETHODCALLTYPE WebView::initWithFrame( // If we detected a registry key belonging to a TrackPoint driver, then create fake trackpoint // scrollbars, so the WebView will receive WM_VSCROLL and WM_HSCROLL messages. We create one // vertical scrollbar and one horizontal to allow for receiving both types of messages. - ::CreateWindow(TEXT("SCROLLBAR"), TEXT("FAKETRACKPOINTHSCROLLBAR"), WS_CHILD | WS_VISIBLE | SBS_HORZ, 0, 0, 0, 0, m_viewWindow, 0, gInstance, 0); - ::CreateWindow(TEXT("SCROLLBAR"), TEXT("FAKETRACKPOINTVSCROLLBAR"), WS_CHILD | WS_VISIBLE | SBS_VERT, 0, 0, 0, 0, m_viewWindow, 0, gInstance, 0); + ::CreateWindowW(L"SCROLLBAR", L"FAKETRACKPOINTHSCROLLBAR", WS_CHILD | WS_VISIBLE | SBS_HORZ, 0, 0, 0, 0, m_viewWindow, 0, gInstance, 0); + ::CreateWindowW(L"SCROLLBAR", L"FAKETRACKPOINTVSCROLLBAR", WS_CHILD | WS_VISIBLE | SBS_VERT, 0, 0, 0, 0, m_viewWindow, 0, gInstance, 0); } hr = registerDragDrop(); @@ -3050,7 +3027,7 @@ HRESULT STDMETHODCALLTYPE WebView::setCustomTextEncodingName( if (FAILED(hr)) return hr; - if (oldEncoding != encodingName && (!oldEncoding || !encodingName || _tcscmp(oldEncoding, encodingName))) { + if (oldEncoding != encodingName && (!oldEncoding || !encodingName || wcscmp(oldEncoding, encodingName))) { if (Frame* coreFrame = core(m_mainFrame)) coreFrame->loader()->reloadWithOverrideEncoding(String(encodingName, SysStringLen(encodingName))); } @@ -5271,7 +5248,7 @@ const IMMDict& IMMDict::dict() IMMDict::IMMDict() { - m_instance = ::LoadLibrary(TEXT("IMM32.DLL")); + m_instance = ::LoadLibraryW(L"IMM32.DLL"); getContext = reinterpret_cast<getContextPtr>(::GetProcAddress(m_instance, "ImmGetContext")); ASSERT(getContext); releaseContext = reinterpret_cast<releaseContextPtr>(::GetProcAddress(m_instance, "ImmReleaseContext")); @@ -5928,7 +5905,7 @@ bool WebView::onGetObject(WPARAM wParam, LPARAM lParam, LRESULT& lResult) const return false; if (!accessibilityLib) { - if (!(accessibilityLib = ::LoadLibrary(TEXT("oleacc.dll")))) + if (!(accessibilityLib = ::LoadLibraryW(L"oleacc.dll"))) return false; } diff --git a/Source/WebKit/wince/CMakeListsWinCE.txt b/Source/WebKit/wince/CMakeListsWinCE.txt index 28feaf3..de6de60 100644 --- a/Source/WebKit/wince/CMakeListsWinCE.txt +++ b/Source/WebKit/wince/CMakeListsWinCE.txt @@ -1,6 +1,7 @@ LIST(APPEND WebKit_INCLUDE_DIRECTORIES "${WEBCORE_DIR}/page/win" "${WEBCORE_DIR}/platform/graphics/wince" + "${WEBCORE_DIR}/platform/graphics/win" "${WEBCORE_DIR}/platform/network/win" "${WEBCORE_DIR}/platform/win" diff --git a/Source/WebKit/wince/ChangeLog b/Source/WebKit/wince/ChangeLog index 724b92a..e595f25 100644 --- a/Source/WebKit/wince/ChangeLog +++ b/Source/WebKit/wince/ChangeLog @@ -1,3 +1,61 @@ +2011-03-27 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Andreas Kling. + + [WINCE] Use a appropriate user agent string + https://bugs.webkit.org/show_bug.cgi?id=57175 + + * WebCoreSupport/FrameLoaderClientWinCE.cpp: + (WebKit::FrameLoaderClientWinCE::userAgent): + +2011-03-26 Patrick Gansterer <paroga@webkit.org> + + Unreviewed WinCE build fix. + + * CMakeListsWinCE.txt: Added missing include directory. + +2011-03-25 Andy Estes <aestes@apple.com> + + Reviewed by Adele Peterson. + + REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js + https://bugs.webkit.org/show_bug.cgi?id=49016 + + Update objectContentType() implementation to handle the + shouldPreferPlugInsForImages flag. + + * WebCoreSupport/FrameLoaderClientWinCE.cpp: + (WebKit::FrameLoaderClientWinCE::objectContentType): + * WebCoreSupport/FrameLoaderClientWinCE.h: + +2011-03-24 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r81916 and r81917. + http://trac.webkit.org/changeset/81916 + http://trac.webkit.org/changeset/81917 + https://bugs.webkit.org/show_bug.cgi?id=57071 + + broke a test on platforms that do not have QuickTime installed + (Requested by estes on #webkit). + + * WebCoreSupport/FrameLoaderClientWinCE.cpp: + (WebKit::FrameLoaderClientWinCE::objectContentType): + * WebCoreSupport/FrameLoaderClientWinCE.h: + +2011-03-24 Andy Estes <aestes@apple.com> + + Reviewed by Darin Adler. + + REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js + https://bugs.webkit.org/show_bug.cgi?id=49016 + + Update objectContentType() implementation to handle the + shouldPreferPlugInsForImages flag. + + * WebCoreSupport/FrameLoaderClientWinCE.cpp: + (WebKit::FrameLoaderClientWinCE::objectContentType): + * WebCoreSupport/FrameLoaderClientWinCE.h: + 2011-03-07 Sam Weinig <sam@webkit.org> Reviewed by Anders Carlsson. diff --git a/Source/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.cpp b/Source/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.cpp index 3fbed2b..2d8812f 100644 --- a/Source/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.cpp +++ b/Source/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.cpp @@ -1,5 +1,6 @@ /* * Copyright (C) 2010 Patrick Gansterer <paroga@paroga.com> + * Copyright (C) 2011 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -35,7 +36,10 @@ #include "Page.h" #include "PluginDatabase.h" #include "RenderPart.h" +#include "SystemInfo.h" +#include "WebKitVersion.h" #include "WebView.h" +#include <wtf/text/StringConcatenate.h> using namespace WebCore; @@ -54,7 +58,14 @@ FrameLoaderClientWinCE::~FrameLoaderClientWinCE() String FrameLoaderClientWinCE::userAgent(const KURL&) { - return "WebKitWinCE"; + DEFINE_STATIC_LOCAL(String, userAgentString, ()); + + if (userAgentString.isNull()) { + String webKitVersion = String::format("%d.%d", WEBKIT_MAJOR_VERSION, WEBKIT_MINOR_VERSION); + userAgentString = makeString("Mozilla/5.0 (", windowsVersionForUAString(), ") AppleWebKit/", webKitVersion, " (KHTML, like Gecko) Mobile Safari/", webKitVersion); + } + + return userAgentString; } PassRefPtr<DocumentLoader> FrameLoaderClientWinCE::createDocumentLoader(const WebCore::ResourceRequest& request, const SubstituteData& substituteData) @@ -182,9 +193,9 @@ PassRefPtr<Widget> FrameLoaderClientWinCE::createJavaAppletWidget(const IntSize& return 0; } -ObjectContentType FrameLoaderClientWinCE::objectContentType(const KURL& url, const String& mimeType) +ObjectContentType FrameLoaderClientWinCE::objectContentType(const KURL& url, const String& mimeType, bool shouldPreferPlugInsForImages) { - return FrameLoader::defaultObjectContentType(url, mimeType); + return FrameLoader::defaultObjectContentType(url, mimeType, shouldPreferPlugInsForImages); } String FrameLoaderClientWinCE::overrideMediaType() const diff --git a/Source/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.h b/Source/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.h index ce3a620..401225d 100644 --- a/Source/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.h +++ b/Source/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.h @@ -1,5 +1,6 @@ /* * Copyright (C) 2010 Patrick Gansterer <paroga@paroga.com> + * Copyright (C) 2011 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -120,7 +121,7 @@ public: virtual void registerForIconNotification(bool); - virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL& url, const WTF::String& mimeType); + virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL&, const WTF::String& mimeType, bool shouldPreferPlugInsForImages); virtual void setMainFrameDocumentReady(bool); diff --git a/Source/WebKit/wince/WebCoreSupport/PlatformStrategiesWinCE.cpp b/Source/WebKit/wince/WebCoreSupport/PlatformStrategiesWinCE.cpp index fc447ab..455da71 100644 --- a/Source/WebKit/wince/WebCoreSupport/PlatformStrategiesWinCE.cpp +++ b/Source/WebKit/wince/WebCoreSupport/PlatformStrategiesWinCE.cpp @@ -289,7 +289,7 @@ String PlatformStrategiesWinCE::contextMenuItemTagSearchWeb() return UI_STRING("Search with Google", "Search in Google context menu item"); } -String PlatformStrategiesWinCE::contextMenuItemTagLookUpInDictionary() +String PlatformStrategiesWinCE::contextMenuItemTagLookUpInDictionary(const String&) { return UI_STRING("Look Up in Dictionary", "Look Up in Dictionary context menu item"); } diff --git a/Source/WebKit/wince/WebCoreSupport/PlatformStrategiesWinCE.h b/Source/WebKit/wince/WebCoreSupport/PlatformStrategiesWinCE.h index e5f87ea..6ed49ae 100644 --- a/Source/WebKit/wince/WebCoreSupport/PlatformStrategiesWinCE.h +++ b/Source/WebKit/wince/WebCoreSupport/PlatformStrategiesWinCE.h @@ -78,7 +78,7 @@ private: virtual WTF::String contextMenuItemTagIgnoreSpelling(); virtual WTF::String contextMenuItemTagLearnSpelling(); virtual WTF::String contextMenuItemTagSearchWeb(); - virtual WTF::String contextMenuItemTagLookUpInDictionary(); + virtual WTF::String contextMenuItemTagLookUpInDictionary(const String&); virtual WTF::String contextMenuItemTagOpenLink(); virtual WTF::String contextMenuItemTagIgnoreGrammar(); virtual WTF::String contextMenuItemTagSpellingMenu(); diff --git a/Source/WebKit/wx/ChangeLog b/Source/WebKit/wx/ChangeLog index 3e385b1..980fa8a 100644 --- a/Source/WebKit/wx/ChangeLog +++ b/Source/WebKit/wx/ChangeLog @@ -1,3 +1,80 @@ +2011-03-25 Andy Estes <aestes@apple.com> + + Reviewed by Adele Peterson. + + REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js + https://bugs.webkit.org/show_bug.cgi?id=49016 + + Update objectContentType() implementation to handle the + shouldPreferPlugInsForImages flag. + + * WebKitSupport/FrameLoaderClientWx.cpp: + (WebCore::FrameLoaderClientWx::objectContentType): + * WebKitSupport/FrameLoaderClientWx.h: + +2011-03-24 Kevin Ollivier <kevino@theolliviers.com> + + [wx] Build fix, remove old call and replace it with correct one. + + * WebView.cpp: + (wxWebView::Create): + +2011-03-24 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r81916 and r81917. + http://trac.webkit.org/changeset/81916 + http://trac.webkit.org/changeset/81917 + https://bugs.webkit.org/show_bug.cgi?id=57071 + + broke a test on platforms that do not have QuickTime installed + (Requested by estes on #webkit). + + * WebKitSupport/FrameLoaderClientWx.cpp: + (WebCore::FrameLoaderClientWx::objectContentType): + * WebKitSupport/FrameLoaderClientWx.h: + +2011-03-24 Andy Estes <aestes@apple.com> + + Reviewed by Darin Adler. + + REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js + https://bugs.webkit.org/show_bug.cgi?id=49016 + + Update objectContentType() implementation to handle the + shouldPreferPlugInsForImages flag. + + * WebKitSupport/FrameLoaderClientWx.cpp: + (WebCore::FrameLoaderClientWx::objectContentType): + * WebKitSupport/FrameLoaderClientWx.h: + +2011-03-21 Chang Shu <cshu@webkit.org> + + Reviewed by Alexey Proskuryakov. + + REGRESSION (r79953): Can't type in MS Outlook 2011 + https://bugs.webkit.org/show_bug.cgi?id=56665 + + r79953 removed the WebView level editablity which is persistent no matter whether + underlying document itself is changed and editability gets lost. The resolution is to + set this WebView editable value to WebCore. This avoids the callback from WebCore to + WebKit which was the main goal in r79953 to improve performance. + + * WebFrame.cpp: + (wxWebFrame::MakeEditable): + (wxWebFrame::IsEditable): + +2011-03-15 Kevin Ollivier <kevino@theolliviers.com> + + Reviewed by Darin Adler. + + Introduce WTF_USE_EXPORT_MACROS, which will allow us to put shared library import/export + info into the headers rather than in export symbol definition files, but disable it on + all platforms initially so we can deal with port build issues one port at a time. + + https://bugs.webkit.org/show_bug.cgi?id=27551 + + * bindings/python/webview.i: + 2011-03-07 Sam Weinig <sam@webkit.org> Reviewed by Anders Carlsson. diff --git a/Source/WebKit/wx/WebFrame.cpp b/Source/WebKit/wx/WebFrame.cpp index e32d300..86bf660 100644 --- a/Source/WebKit/wx/WebFrame.cpp +++ b/Source/WebKit/wx/WebFrame.cpp @@ -402,14 +402,14 @@ void wxWebFrame::ResetTextSize() void wxWebFrame::MakeEditable(bool enable) { - if (enable != IsEditable() && m_impl->frame && m_impl->frame->document()) - m_impl->frame->document()->setDesignMode(enable ? WebCore::Document::on : WebCore::Document::off); + if (enable != IsEditable() && m_impl->frame && m_impl->frame->page()) + m_impl->frame->page()->setEditable(enable); } bool wxWebFrame::IsEditable() const { - if (m_impl->frame && m_impl->frame->document()) - return m_impl->frame->document()->inDesignMode(); + if (m_impl->frame && m_impl->frame->page()) + return m_impl->frame->page()->isEditable(); return false; } diff --git a/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp b/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp index 68e1e70..afc255c 100644 --- a/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp +++ b/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp @@ -1,5 +1,6 @@ /* * Copyright (C) 2007 Kevin Ollivier <kevino@theolliviers.com> + * Copyright (C) 2011 Apple Inc. All rights reserved. * * All rights reserved. * @@ -870,7 +871,7 @@ void FrameLoaderClientWx::transferLoadingResourceFromPage(unsigned long, Documen { } -ObjectContentType FrameLoaderClientWx::objectContentType(const KURL& url, const String& mimeType) +ObjectContentType FrameLoaderClientWx::objectContentType(const KURL& url, const String& mimeType, bool shouldPreferPlugInsForImages) { notImplemented(); return ObjectContentType(); diff --git a/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h b/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h index 8f1e69e..254f95c 100644 --- a/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h +++ b/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h @@ -1,5 +1,6 @@ /* * Copyright (C) 2007 Kevin Ollivier <kevino@theolliviers.com> + * Copyright (C) 2011 Apple Inc. All rights reserved. * * All rights reserved. * @@ -217,7 +218,7 @@ namespace WebCore { virtual PassRefPtr<Widget> createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues); - virtual ObjectContentType objectContentType(const KURL& url, const String& mimeType); + virtual ObjectContentType objectContentType(const KURL&, const String& mimeType, bool shouldPreferPlugInsForImages); virtual String overrideMediaType() const; virtual void dispatchDidClearWindowObjectInWorld(DOMWrapperWorld*); diff --git a/Source/WebKit/wx/WebView.cpp b/Source/WebKit/wx/WebView.cpp index 3215b7a..dab3225 100644 --- a/Source/WebKit/wx/WebView.cpp +++ b/Source/WebKit/wx/WebView.cpp @@ -71,6 +71,7 @@ #include "ScriptController.h" #include "JSDOMBinding.h" +#include <runtime/initializeThreading.h> #include <runtime/JSValue.h> #include <runtime/UString.h> #include <wtf/text/CString.h> @@ -358,7 +359,7 @@ bool wxWebView::Create(wxWindow* parent, int id, const wxPoint& position, if (!wxWindow::Create(parent, id, position, size, style, name)) return false; - WTF::initializeThreading(); + JSC::initializeThreading(); WTF::initializeMainThread(); // This is necessary because we are using SharedTimerWin.cpp on Windows, diff --git a/Source/WebKit/wx/bindings/python/webview.i b/Source/WebKit/wx/bindings/python/webview.i index f1621b0..118aed1 100644 --- a/Source/WebKit/wx/bindings/python/webview.i +++ b/Source/WebKit/wx/bindings/python/webview.i @@ -49,6 +49,7 @@ #include "WebDOMNodeList.h" #include "WebDOMObject.h" #include "WebDOMRange.h" +#include "WebDOMWebKitAnimationList.h" #ifndef __WXMSW__ PyObject* createDOMNodeSubtype(WebDOMNode* ptr, bool setThisOwn, bool isValueObject) |