diff options
| author | Teng-Hui Zhu <ztenghui@google.com> | 2010-11-10 15:31:59 -0800 |
|---|---|---|
| committer | Teng-Hui Zhu <ztenghui@google.com> | 2010-11-17 13:35:59 -0800 |
| commit | 28040489d744e0c5d475a88663056c9040ed5320 (patch) | |
| tree | c463676791e4a63e452a95f0a12b2a8519730693 /WebKit/chromium | |
| parent | eff9be92c41913c92fb1d3b7983c071f3e718678 (diff) | |
| download | external_webkit-28040489d744e0c5d475a88663056c9040ed5320.zip external_webkit-28040489d744e0c5d475a88663056c9040ed5320.tar.gz external_webkit-28040489d744e0c5d475a88663056c9040ed5320.tar.bz2 | |
Merge WebKit at r71558: Initial merge by git.
Change-Id: Ib345578fa29df7e4bc72b4f00e4a6fddcb754c4c
Diffstat (limited to 'WebKit/chromium')
47 files changed, 865 insertions, 224 deletions
diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog index 9eeb48b..6867714 100644 --- a/WebKit/chromium/ChangeLog +++ b/WebKit/chromium/ChangeLog @@ -1,3 +1,479 @@ +2010-11-08 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=48685 + Notify UI process about focused frame + + Added an empty implementation of the new ChromeClient method. + + * src/ChromeClientImpl.cpp: + (WebKit::ChromeClientImpl::focusedFrameChanged): + * src/ChromeClientImpl.h: + +2010-11-08 Andrey Kosyakov <caseq@chromium.org> + + Reviewed by Yury Semikhatsky. + + Only call WebInspector_syncDispatch if it's actually a function. + https://bugs.webkit.org/show_bug.cgi?id=49180 + + * src/WebDevToolsFrontendImpl.cpp: + (WebKit::WebDevToolsFrontendImpl::WebDevToolsFrontendImpl): + (WebKit::WebDevToolsFrontendImpl::dispatchOnInspectorFrontend): + * src/WebDevToolsFrontendImpl.h: + +2010-11-07 Adam Barth <abarth@webkit.org> + + Reviewed by Eric Seidel. + + Rename Cache to MemoryCache + https://bugs.webkit.org/show_bug.cgi?id=49159 + + * public/WebCache.h: + * src/WebCache.cpp: + (WebKit::ToResourceTypeStat): + (WebKit::WebCache::setCapacities): + (WebKit::WebCache::clear): + (WebKit::WebCache::getUsageStats): + (WebKit::WebCache::getResourceTypeStats): + +2010-11-07 Jay Civelli <jcivelli@chromium.org> + + Reviewed by Kent Tamura. + + Fixing a crasher with the select popup on Mac that happens when a + page removes the select node when the select changes. + https://bugs.webkit.org/show_bug.cgi?id=49108 + + * src/ExternalPopupMenu.cpp: + (WebKit::ExternalPopupMenu::didAcceptIndex): + (WebKit::ExternalPopupMenu::didCancel): + +2010-11-06 Pavel Feldman <pfeldman@chromium.org> + + Not reviewed. Chromium DevTools: disable filesystem inspection + until polished. + https://bugs.webkit.org/show_bug.cgi?id=48963 + + * src/js/DevTools.js: + +2010-11-05 Ilya Sherman <isherman@chromium.org> + + Reviewed by Simon Fraser. + + Querying selection start and end should be const + https://bugs.webkit.org/show_bug.cgi?id=48786 + + * public/WebInputElement.h: + * src/WebInputElement.cpp: + (WebKit::WebInputElement::selectionStart): + (WebKit::WebInputElement::selectionEnd): + +2010-11-05 Chris Marrin <cmarrin@apple.com> + + Reviewed by Simon Fraser. + + Move resumeAnimations/suspendAnimations from Frame to AnimationController. + https://bugs.webkit.org/show_bug.cgi?id=49073 + + * src/WebAnimationControllerImpl.cpp: + (WebKit::WebAnimationControllerImpl::suspendAnimations): + (WebKit::WebAnimationControllerImpl::resumeAnimations): + +2010-11-04 Zhenyao Mo <zmo@google.com> + + Reviewed by Kenneth Russell. + + Need to simulate DEPTH_STENCIL in framebufferRenderbuffer / getFramebufferAttachmentParameter + https://bugs.webkit.org/show_bug.cgi?id=49020 + + * src/WebGraphicsContext3DDefaultImpl.cpp: Remove DEPTH_STENCIL_ATTACHMENT emulation at this level. + +2010-11-05 Darin Fisher <darin@chromium.org> + + Pull chromium@65229 to fix the build. + + * DEPS: + +2010-11-05 Darin Fisher <darin@chromium.org> + + Reviewed by Nate Chapin. + + Replace deprecated TargetIsSub{Frame,Resource} with TargetIsSub{frame,resource}. + https://bugs.webkit.org/show_bug.cgi?id=49074 + + * public/WebURLRequest.h: + * src/FrameLoaderClientImpl.cpp: + +2010-11-05 Charlie Reis <creis@chromium.org> + + Reviewed by Darin Fisher. + + WebFrame::previousHistoryItem() should return last committed item. + https://bugs.webkit.org/show_bug.cgi?id=48809 + + * src/WebFrameImpl.cpp: + +2010-10-27 Jeremy Orlow <jorlow@chromium.org> + + Reviewed by Steve Block. + + Clean up IDBTransactionBackend/Coordinator + https://bugs.webkit.org/show_bug.cgi?id=48425 + + Remove obsolete ::id() method. + + * public/WebIDBTransaction.h: + * src/IDBTransactionBackendProxy.cpp: + * src/IDBTransactionBackendProxy.h: + * src/WebIDBTransactionImpl.cpp: + * src/WebIDBTransactionImpl.h: + +2010-11-04 usaini <usaini08@gmail.com> + + Reviewed by Antonio Gomes. + + WebWindowFeatures has a faulty constructor for WebCore::WindowFeatures + https://bugs.webkit.org/show_bug.cgi?id=48035 + + * public/WebWindowFeatures.h: + (WebKit::WebWindowFeatures::WebWindowFeatures): updated the constructor + that takes in a WebCore::WindowFeature and had it copy all the variables + over properly so that after calling the constructor WebWindowFeatures is + always in a valid state. Before, the x,y,width,height booleans may be true, but + the corresponding int values would not be updated. + +2010-11-04 Zhenyao Mo <zmo@google.com> + + Reviewed by Kenneth Russell. + + Remove IMPLEMENTATION_COLOR_READ_FORMAT and TYPE + https://bugs.webkit.org/show_bug.cgi?id=48938 + + * src/WebGraphicsContext3DDefaultImpl.cpp: + (WebKit::WebGraphicsContext3DDefaultImpl::getIntegerv): + +2010-11-04 Kavita Kanetkar <kkanetkar@chromium.org> + + Reviewed by Adam Barth. + + Web Inspector: Enable files ystem UI for chromium + https://bugs.webkit.org/show_bug.cgi?id=48963 + + * src/js/DevTools.js: + +2010-11-03 Adam Barth <abarth@webkit.org> + + Roll Chromium DEPS + https://bugs.webkit.org/show_bug.cgi?id=48978 + + * DEPS: + +2010-11-03 Vincent Scheib <scheib@chromium.org> + + Reviewed by James Robinson. + + [chromium] GraphicsContext3D creation attributes include canRecoverFromContextLoss option + https://bugs.webkit.org/show_bug.cgi?id=48850 + + Implementations of GraphicsContext3D may respect the creation attribute + canRecoverFromContextLoss being false, and then only succeeding initialization if + the context can satisfy that request of never being lost. DX9 on XP can not satisfy + such a request. + + Test by use of accelerated canvas 2d in Chromium with ANGLE on XP machines. + + * public/WebGraphicsContext3D.h: + (WebKit::WebGraphicsContext3D::Attributes::Attributes): + * src/GraphicsContext3DChromium.cpp: + (WebCore::GraphicsContext3DInternal::initialize): + +2010-11-03 Jenn Braithwaite <jennb@chromium.org> + + Reviewed by Dmitry Titov. + + Chromium: Update resource tracking when moving a frame between documents + https://bugs.webkit.org/show_bug.cgi?id=48363 + + * public/WebFrameClient.h: + (WebKit::WebFrameClient::removeIdentifierForRequest): + Added + * src/FrameLoaderClientImpl.cpp: + (WebKit::FrameLoaderClientImpl::transferLoadingResourceFromPage): + Notify current WebFrameClient of the resource and remove from + former WebFrameClient. + +2010-11-03 Adam Barth <abarth@webkit.org> + + Roll Chromium DEPs + https://bugs.webkit.org/show_bug.cgi?id=48959 + + * DEPS: + +2010-11-03 Kenneth Russell <kbr@google.com> + + Reviewed by Chris Marrin. + + Redesign extension mechanism in GraphicsContext3D + https://bugs.webkit.org/show_bug.cgi?id=46894 + + Upon request, factored out extension support from GraphicsContext3D + into a new Extensions3D class. (The plural was chosen because the + class and subclasses hold multiple extensions.) + + Unlike GraphicsContext3D, Extensions3D contains only pure virtual + methods. This was done because Extensions3D's inheritance diagram + and usage pattern is very different from that of GraphicsContext3D, + and the concrete subclasses need to decide how to implement the + various entry points. Requiring them to be placed at the + Extensions3D level will cause implementation details to leak into + the base class, which is highly undesirable. Any virtual call + overhead to these entry points will be negligible. + + Changed call sites utilizing these extensions to call through the + Extensions3D object or its subclasses. + + Tested: + - Chromium on Linux with accelerated 2D canvas and HTML5 video + - Chromium on Mac OS X with WebGL and CSS 3D content + - Safari on Mac OS X with WebGL and CSS 3D content + + No new tests. Covered by existing tests. + + * WebKit.gyp: + * public/WebGraphicsContext3D.h: + * src/Extensions3DChromium.cpp: Added. + (WebCore::Extensions3DChromium::Extensions3DChromium): + (WebCore::Extensions3DChromium::~Extensions3DChromium): + (WebCore::Extensions3DChromium::supports): + (WebCore::Extensions3DChromium::getGraphicsResetStatusARB): + (WebCore::Extensions3DChromium::mapBufferSubDataCHROMIUM): + (WebCore::Extensions3DChromium::unmapBufferSubDataCHROMIUM): + (WebCore::Extensions3DChromium::mapTexSubImage2DCHROMIUM): + (WebCore::Extensions3DChromium::unmapTexSubImage2DCHROMIUM): + (WebCore::Extensions3DChromium::copyTextureToParentTextureCHROMIUM): + * src/GraphicsContext3DChromium.cpp: + (WebCore::GraphicsContext3DInternal::GraphicsContext3DInternal): + (WebCore::GraphicsContext3DInternal::getExtensions): + (WebCore::GraphicsContext3DInternal::supportsExtension): + * src/GraphicsContext3DInternal.h: + * src/WebGraphicsContext3DDefaultImpl.cpp: + (WebKit::WebGraphicsContext3DDefaultImpl::copyTextureToParentTextureCHROMIUM): + (WebKit::WebGraphicsContext3DDefaultImpl::getString): + * src/WebGraphicsContext3DDefaultImpl.h: + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::composite): + +2010-11-03 Daniel Bates <dbates@rim.com> + + For unnamed frames, window.name returns a generated name + https://bugs.webkit.org/show_bug.cgi?id=6751 + + Part 1 of 2. + + Substitute FrameTree::uniqueName() for FrameTree::name() in the Chromium port. + + * src/WebFrameImpl.cpp: + (WebKit::WebFrameImpl::name): + +2010-11-02 Al Patrick <apatrick@chromium.org> + + Reviewed by Kenneth Russell. + + [chromium] Plugin instances can propagate the ID of the OpenGL texture they render to. + + https://bugs.webkit.org/show_bug.cgi?id=48032 + + * public/WebPlugin.h: + (WebKit::WebPlugin::getBackingTextureId): + * public/WebPluginContainer.h: + (WebKit::WebPluginContainer::commitBackingTexture): + * src/WebPluginContainerImpl.cpp: + (WebKit::WebPluginContainerImpl::commitBackingTexture): + (WebKit::WebPluginContainerImpl::platformLayer): + (WebKit::WebPluginContainerImpl::WebPluginContainerImpl): + * src/WebPluginContainerImpl.h: + +2010-11-02 Kavita Kanetkar <kkanetkar@chromium.org> + + Reviewed by Dumitru Daniliuc. + + [FileSystem] Support not creating directories when queried by inspector. + https://bugs.webkit.org/show_bug.cgi?id=48169 + + * src/LocalFileSystemChromium.cpp: + (WebCore::LocalFileSystem::readFileSystem): + (WebCore::LocalFileSystem::requestFileSystem): + +2010-11-02 Chris Guillory <chris.guillory@google.com> + + Reviewed by Chris Fleizach. + + Chromium: Propagate a document value changed notification on scroll. + https://bugs.webkit.org/show_bug.cgi?id=48817 + + * src/WebAccessibilityObject.cpp: + (WebKit::WebAccessibilityObject::boundingBoxRect): + +2010-10-29 John Abd-El-Malek <jam@chromium.org> + + Reviewed by Darin Fisher. + + [chromium]: Allow plugins to use optimized scrolling + https://bugs.webkit.org/show_bug.cgi?id=48660 + + * public/WebPluginContainer.h: + * src/WebPluginContainerImpl.cpp: + (WebKit::WebPluginContainerImpl::scrollRect): + * src/WebPluginContainerImpl.h: + +2010-11-02 Marc-Antoine Ruel <maruel@chromium.org> + + Reviewed by Dimitri Glazkov. + + Disable incremental linking for webkit_unit_test and DumpRenderTRee on x86 Windows on chromium build. + https://bugs.webkit.org/show_bug.cgi?id=48836 + + It fails to link otherwise due to lack of virtual address space. + + * WebKit.gyp: + +2010-11-02 Ilya Sherman <isherman@chromium.org> + + Reviewed by Kent Tamura. + + Expose the sendChangeEvent parameter in WebInputElement::setValue() API, + primarily so that chromium form autofill can fire the onChange event. + https://bugs.webkit.org/show_bug.cgi?id=48177 + + * public/WebInputElement.h: + * src/WebInputElement.cpp: + (WebKit::WebInputElement::setValue): + +2010-11-02 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Timothy Hatcher. + + Web Inspector: make properties and event listeners look consistent with the styles section. + https://bugs.webkit.org/show_bug.cgi?id=48827 + + * src/js/devTools.css: + +2010-11-01 Tony Chang <tony@chromium.org> + + Reviewed by Kent Tamura. + + [chromium] Compile TestNetscapePlugin on chromium win + https://bugs.webkit.org/show_bug.cgi?id=48802 + + It creates npTestNetscapePlugin.dll in the build directory, so + it's not yet loaded by DRT or test_shell. + + * WebKit.gyp: + +2010-11-01 Brady Eidson <beidson@apple.com> + + Reviewed by Anders Carlsson. + + <rdar://problem/7660547> and https://bugs.webkit.org/show_bug.cgi?id=48699 + Context menu support for WebKit 2. + + * src/ChromeClientImpl.h: + (WebKit::ChromeClientImpl::showContextMenu): + +2010-11-01 Pavel Feldman <pfeldman@chromium.org> + + Not reviewed: Chromium build fix. + + * src/WebDevToolsAgentImpl.cpp: + (WebKit::WebDevToolsAgentImpl::WebDevToolsAgentImpl): + +2010-11-01 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Timothy Hatcher. + + Web Inspector: remove old resources panel. + https://bugs.webkit.org/show_bug.cgi?id=45657 + + * src/WebDevToolsAgentImpl.cpp: + (WebKit::WebDevToolsAgentImpl::setApuAgentEnabled): + * src/WebDevToolsAgentImpl.h: + +2010-11-01 Leandro Gracia Gil <leandrogracia@google.com> + + Reviewed by Jeremy Orlow. + + This is the last part of a 4-sided patch for the language attribute + in speech text buttons. This patch removes what now is dead code + and re-enables the layout test introduced by bug 47089. + https://bugs.webkit.org/show_bug.cgi?id=47420 + + * public/WebSpeechInputControllerMock.h: + * src/WebSpeechInputControllerMockImpl.cpp: + * src/WebSpeechInputControllerMockImpl.h: + +2010-10-31 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Timothy Hatcher. + + Web Inspector: unhide new network and resources panels. + https://bugs.webkit.org/show_bug.cgi?id=48725 + + * src/WebDevToolsAgentImpl.cpp: + (WebKit::WebDevToolsAgentImpl::setApuAgentEnabled): + +2010-10-29 Daniel Bates <dbates@rim.com> + + No review, rolling out 70971. + http://trac.webkit.org/changeset/70971 + https://bugs.webkit.org/show_bug.cgi?id=6751 + + Rolling out changeset 70971 <http://trac.webkit.org/changeset/70971> since + it caused layout test failures on all bots. In particular, the + child count in a generated frame name differs after this patch. We need + to look into this further. + + * src/WebFrameImpl.cpp: + (WebKit::WebFrameImpl::name): + +2010-10-28 Antonio Gomes <agomes@rim.com> + + Reviewed by Ojan Vafai. + + Needs a "LinuxEditingBehavior", perhaps with a better name + https://bugs.webkit.org/show_bug.cgi?id=36627 + + Added the corresponding Chromium setting to WebCore's EditingUnixBehavior: EditingBehaviorUnix. + + * public/WebSettings.h: + * src/AssertMatchingEnums.cpp: + +2010-10-29 Daniel Bates <dbates@rim.com> + + Reviewed by Adam Barth. + + For unnamed frames, window.name returns a generated name + https://bugs.webkit.org/show_bug.cgi?id=6751 + + Modified Chromium-port to use FrameTree::uniqueName(). + + * src/WebFrameImpl.cpp: + (WebKit::WebFrameImpl::name): + +2010-10-29 Kavita Kanetkar <kkanetkar@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: FileSystem integration + https://bugs.webkit.org/show_bug.cgi?id=45982 + + * public/WebFileUtilities.h: + (WebKit::WebFileUtilities::revealFolderInOS): + * src/ChromiumBridge.cpp: + (WebCore::ChromiumBridge::revealFolderInOS): + + 2010-10-29 Darin Adler <darin@apple.com> Reviewed by Sam Weinig. diff --git a/WebKit/chromium/DEPS b/WebKit/chromium/DEPS index aaf0b0a..4fc0372 100644 --- a/WebKit/chromium/DEPS +++ b/WebKit/chromium/DEPS @@ -32,7 +32,7 @@ vars = { 'chromium_svn': 'http://src.chromium.org/svn/trunk/src', - 'chromium_rev': '64214' + 'chromium_rev': '65229' } deps = { @@ -91,14 +91,12 @@ deps = { Var('chromium_svn')+'/media@'+Var('chromium_rev'), 'printing': Var('chromium_svn')+'/printing@'+Var('chromium_rev'), + 'ppapi': + Var('chromium_svn')+'/ppapi@'+Var('chromium_rev'), 'third_party/angle': # needed by the gpu process From('chromium_deps', 'src/third_party/angle'), 'third_party/ffmpeg': # needed by webkit/media From('chromium_deps', 'src/third_party/ffmpeg'), - 'third_party/libvpx/include': - From('chromium_deps', 'src/third_party/libvpx/include'), - 'third_party/libvpx/lib': - From('chromium_deps', 'src/third_party/libvpx/lib'), 'third_party/libwebp': Var('chromium_svn')+'/third_party/libwebp@'+Var('chromium_rev'), 'tools/grit': @@ -111,8 +109,6 @@ deps = { Var('chromium_svn')+'/third_party@'+Var('chromium_rev'), 'third_party/icu': From('chromium_deps', 'src/third_party/icu'), - 'third_party/ppapi': - From('chromium_deps', 'src/third_party/ppapi'), 'third_party/ots': From('chromium_deps', 'src/third_party/ots'), } diff --git a/WebKit/chromium/WebKit.gyp b/WebKit/chromium/WebKit.gyp index f121c5f..4dcc61a 100644 --- a/WebKit/chromium/WebKit.gyp +++ b/WebKit/chromium/WebKit.gyp @@ -328,6 +328,7 @@ 'src/EditorClientImpl.h', 'src/EventListenerWrapper.cpp', 'src/EventListenerWrapper.h', + 'src/Extensions3DChromium.cpp', 'src/ExternalPopupMenu.cpp', 'src/ExternalPopupMenu.h', 'src/FrameLoaderClientImpl.cpp', @@ -741,7 +742,6 @@ 'action': ['python', '<@(_script_name)', '<@(_input_page)', '<@(_search_path)', '<@(_outputs)'], }], }, - { 'target_name': 'webkit_unit_tests', 'type': 'executable', @@ -801,6 +801,17 @@ }], ], }], + ['inside_chromium_build==1 and OS=="win" and component!="shared_library"', { + 'configurations': { + 'Debug_Base': { + 'msvs_settings': { + 'VCLinkerTool': { + 'LinkIncremental': '<(msvs_large_module_debug_link_mode)', + }, + }, + }, + }, + }], ], }, { @@ -826,6 +837,7 @@ 'dependencies': [ 'ImageDiff', 'inspector_resources', + 'TestNetscapePlugIn', 'webkit', '../../JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:wtf_config', '<(chromium_src_dir)/third_party/icu/icu.gyp:icuuc', @@ -872,6 +884,17 @@ '../../JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:wtf', ], }], + ['inside_chromium_build==1', { + 'configurations': { + 'Debug_Base': { + 'msvs_settings': { + 'VCLinkerTool': { + 'LinkIncremental': '<(msvs_large_module_debug_link_mode)', + }, + }, + }, + }, + }], ], 'copies': [{ 'destination': '<(PRODUCT_DIR)', @@ -881,9 +904,6 @@ 'sources/': [ ['exclude', 'Win\\.cpp$'], ], - 'dependencies': [ - 'TestNetscapePlugIn', - ], 'actions': [ { 'action_name': 'repack_locale', @@ -972,6 +992,63 @@ }], ], }, + { + 'target_name': 'TestNetscapePlugIn', + 'type': 'loadable_module', + 'sources': [ '<@(test_plugin_files)' ], + 'dependencies': [ + '<(chromium_src_dir)/third_party/npapi/npapi.gyp:npapi', + ], + 'include_dirs': [ + '<(chromium_src_dir)', + '../../WebKitTools/DumpRenderTree/TestNetscapePlugIn', + '../../WebKitTools/DumpRenderTree/chromium/TestNetscapePlugIn/ForwardingHeaders', + ], + 'conditions': [ + ['OS=="mac"', { + 'mac_bundle': 1, + # It would be nice to name this + # TestNetscapePlugIn, but that name is already + # used by the fork of this plugin in Chromium. + 'product_name': 'WebKitTestNetscapePlugIn', + 'product_extension': 'plugin', + 'link_settings': { + 'libraries': [ + '$(SDKROOT)/System/Library/Frameworks/Carbon.framework', + '$(SDKROOT)/System/Library/Frameworks/Cocoa.framework', + '$(SDKROOT)/System/Library/Frameworks/QuartzCore.framework', + ] + }, + 'xcode_settings': { + 'GCC_SYMBOLS_PRIVATE_EXTERN': 'NO', + # This is a temporary fork of + # DRT/TestNetscapePlugIn/mac/Info.plist. Once + # we get rid of our forked plugin in the + # chromium repo, we can share the same + # Info.plist. + 'INFOPLIST_FILE': '../../WebKitTools/DumpRenderTree/chromium/TestNetscapePlugIn/Info.plist', + }, + }], + ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', { + 'cflags': [ + '-fvisibility=default', + ], + }], + ['OS=="win"', { + 'defines': [ + # This seems like a hack, but this is what Safari Win does. + 'snprintf=_snprintf', + ], + 'sources': [ + '../../WebKitTools/DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePlugin.def', + '../../WebKitTools/DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePlugin.rc', + ], + # The .rc file requires that the name of the dll is npTestNetscapePlugin.dll. + # This adds the 'np' to the dll name. + 'product_prefix': 'np', + }], + ], + }, ], # targets 'conditions': [ ['OS=="win"', { @@ -980,54 +1057,6 @@ 'type': 'executable', 'sources': ['../../WebKitTools/DumpRenderTree/chromium/LayoutTestHelperWin.cpp'], }], - }, { # OS!="win" - 'targets': [ - { - 'target_name': 'TestNetscapePlugIn', - 'type': 'loadable_module', - 'sources': [ '<@(test_plugin_files)' ], - 'dependencies': [ - '<(chromium_src_dir)/third_party/npapi/npapi.gyp:npapi', - ], - 'include_dirs': [ - '<(chromium_src_dir)', - '../../WebKitTools/DumpRenderTree/TestNetscapePlugIn', - '../../WebKitTools/DumpRenderTree/chromium/TestNetscapePlugIn/ForwardingHeaders', - ], - - 'conditions': [ - ['OS=="mac"', { - 'mac_bundle': 1, - # It would be nice to name this - # TestNetscapePlugIn, but that name is already - # used by the fork of this plugin in Chromium. - 'product_name': 'WebKitTestNetscapePlugIn', - 'product_extension': 'plugin', - 'link_settings': { - 'libraries': [ - '$(SDKROOT)/System/Library/Frameworks/Carbon.framework', - '$(SDKROOT)/System/Library/Frameworks/Cocoa.framework', - '$(SDKROOT)/System/Library/Frameworks/QuartzCore.framework', - ] - }, - 'xcode_settings': { - 'GCC_SYMBOLS_PRIVATE_EXTERN': 'NO', - # This is a temporary fork of - # DRT/TestNetscapePlugIn/mac/Info.plist. Once - # we get rid of our forked plugin in the - # chromium repo, we can share the same - # Info.plist. - 'INFOPLIST_FILE': '../../WebKitTools/DumpRenderTree/chromium/TestNetscapePlugIn/Info.plist', - }, - }], - ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', { - 'cflags': [ - '-fvisibility=default', - ], - }], - ], - }, - ], }], ['OS=="mac"', { 'targets': [ diff --git a/WebKit/chromium/public/WebCache.h b/WebKit/chromium/public/WebCache.h index 433eb1a..e8a18d3 100644 --- a/WebKit/chromium/public/WebCache.h +++ b/WebKit/chromium/public/WebCache.h @@ -48,7 +48,7 @@ public: size_t deadSize; }; - // A struct mirroring WebCore::Cache::TypeStatistic. + // A struct mirroring WebCore::MemoryCache::TypeStatistic. struct ResourceTypeStat { size_t count; size_t size; @@ -56,7 +56,7 @@ public: size_t decodedSize; }; - // A struct mirroring WebCore::Cache::Statistics. + // A struct mirroring WebCore::MemoryCache::Statistics. struct ResourceTypeStats { ResourceTypeStat images; ResourceTypeStat cssStyleSheets; diff --git a/WebKit/chromium/public/WebFileUtilities.h b/WebKit/chromium/public/WebFileUtilities.h index 456ba69..c8876f2 100644 --- a/WebKit/chromium/public/WebFileUtilities.h +++ b/WebKit/chromium/public/WebFileUtilities.h @@ -48,7 +48,7 @@ public: #else typedef int FileHandle; #endif - + virtual void revealFolderInOS(const WebString& path) { } virtual bool fileExists(const WebString& path) { return false; } virtual bool deleteFile(const WebString& path) { return false; } virtual bool deleteEmptyDirectory(const WebString& path) { return false; } diff --git a/WebKit/chromium/public/WebFrameClient.h b/WebKit/chromium/public/WebFrameClient.h index c5cfc21..9063350 100644 --- a/WebKit/chromium/public/WebFrameClient.h +++ b/WebKit/chromium/public/WebFrameClient.h @@ -240,6 +240,10 @@ public: virtual void assignIdentifierToRequest( WebFrame*, unsigned identifier, const WebURLRequest&) { } + // Remove the association between an identifier assigned to a request if + // the client keeps such an association. + virtual void removeIdentifierForRequest(unsigned identifier) { } + // A request is about to be sent out, and the client may modify it. Request // is writable, and changes to the URL, for example, will change the request // made. If this request is the result of a redirect, then redirectResponse diff --git a/WebKit/chromium/public/WebGraphicsContext3D.h b/WebKit/chromium/public/WebGraphicsContext3D.h index 15e6365..9656887 100644 --- a/WebKit/chromium/public/WebGraphicsContext3D.h +++ b/WebKit/chromium/public/WebGraphicsContext3D.h @@ -64,6 +64,7 @@ public: , stencil(true) , antialias(true) , premultipliedAlpha(true) + , canRecoverFromContextLoss(true) { } @@ -72,6 +73,7 @@ public: bool stencil; bool antialias; bool premultipliedAlpha; + bool canRecoverFromContextLoss; }; // This destructor needs to be public so that using classes can destroy instances if initialization fails. @@ -134,18 +136,13 @@ public: // getError in the order they were added. virtual void synthesizeGLError(unsigned long error) = 0; - // EXT_texture_format_BGRA8888 - virtual bool supportsBGRA() = 0; - // GL_CHROMIUM_map_sub - virtual bool supportsMapSubCHROMIUM() = 0; virtual void* mapBufferSubDataCHROMIUM(unsigned target, int offset, int size, unsigned access) = 0; virtual void unmapBufferSubDataCHROMIUM(const void*) = 0; virtual void* mapTexSubImage2DCHROMIUM(unsigned target, int level, int xoffset, int yoffset, int width, int height, unsigned format, unsigned type, unsigned access) = 0; virtual void unmapTexSubImage2DCHROMIUM(const void*) = 0; // GL_CHROMIUM_copy_texture_to_parent_texture - virtual bool supportsCopyTextureToParentTextureCHROMIUM() = 0; virtual void copyTextureToParentTextureCHROMIUM(unsigned texture, unsigned parentTexture) = 0; // The entry points below map directly to the OpenGL ES 2.0 API. diff --git a/WebKit/chromium/public/WebIDBTransaction.h b/WebKit/chromium/public/WebIDBTransaction.h index 385dd1e..cff7c67 100644 --- a/WebKit/chromium/public/WebIDBTransaction.h +++ b/WebKit/chromium/public/WebIDBTransaction.h @@ -52,11 +52,6 @@ public: } virtual void abort() { WEBKIT_ASSERT_NOT_REACHED(); } virtual void didCompleteTaskEvents() { WEBKIT_ASSERT_NOT_REACHED(); } - virtual int id() const - { - WEBKIT_ASSERT_NOT_REACHED(); - return 0; - } virtual void setCallbacks(WebIDBTransactionCallbacks*) { WEBKIT_ASSERT_NOT_REACHED(); } // FIXME: this is never called from WebCore. Find a cleaner solution. diff --git a/WebKit/chromium/public/WebInputElement.h b/WebKit/chromium/public/WebInputElement.h index 8fea4fa..0c0764c 100644 --- a/WebKit/chromium/public/WebInputElement.h +++ b/WebKit/chromium/public/WebInputElement.h @@ -66,7 +66,7 @@ namespace WebKit { WEBKIT_API bool isActivatedSubmit() const; WEBKIT_API void setActivatedSubmit(bool); WEBKIT_API int size() const; - WEBKIT_API void setValue(const WebString&); + WEBKIT_API void setValue(const WebString&, bool sendChangeEvent = false); WEBKIT_API WebString value() const; WEBKIT_API void setSuggestedValue(const WebString&); WEBKIT_API WebString suggestedValue() const; @@ -76,8 +76,8 @@ namespace WebKit { WEBKIT_API void setAutofilled(bool); WEBKIT_API void dispatchFormControlChangeEvent(); WEBKIT_API void setSelectionRange(int, int); - WEBKIT_API int selectionStart(); - WEBKIT_API int selectionEnd(); + WEBKIT_API int selectionStart() const; + WEBKIT_API int selectionEnd() const; WEBKIT_API bool isValidValue(const WebString&) const; #if WEBKIT_IMPLEMENTATION diff --git a/WebKit/chromium/public/WebPlugin.h b/WebKit/chromium/public/WebPlugin.h index 17e29e2..4a6f081 100644 --- a/WebKit/chromium/public/WebPlugin.h +++ b/WebKit/chromium/public/WebPlugin.h @@ -64,6 +64,10 @@ 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/WebKit/chromium/public/WebPluginContainer.h b/WebKit/chromium/public/WebPluginContainer.h index af20c66..c580f81 100644 --- a/WebKit/chromium/public/WebPluginContainer.h +++ b/WebKit/chromium/public/WebPluginContainer.h @@ -49,11 +49,15 @@ public: virtual void invalidate() = 0; virtual void invalidateRect(const WebRect&) = 0; + virtual void scrollRect(int dx, int dy, const WebRect&) = 0; // Causes the container to report its current geometry via // WebPlugin::updateGeometry. virtual void reportGeometry() = 0; - + + // Called when the backing texture is ready to be composited. + virtual void commitBackingTexture() {} + // Drop any references to script objects allocated by the plugin. // These are objects derived from WebPlugin::scriptableObject. This is // called when the plugin is being destroyed or if it needs to be diff --git a/WebKit/chromium/public/WebSettings.h b/WebKit/chromium/public/WebSettings.h index 6a37e08..469db05 100644 --- a/WebKit/chromium/public/WebSettings.h +++ b/WebKit/chromium/public/WebSettings.h @@ -45,7 +45,8 @@ class WebSettings { public: enum EditingBehavior { EditingBehaviorMac, - EditingBehaviorWin + EditingBehaviorWin, + EditingBehaviorUnix }; virtual void setStandardFontFamily(const WebString&) = 0; diff --git a/WebKit/chromium/public/WebSpeechInputControllerMock.h b/WebKit/chromium/public/WebSpeechInputControllerMock.h index b4c50a0..0a7f6f9 100644 --- a/WebKit/chromium/public/WebSpeechInputControllerMock.h +++ b/WebKit/chromium/public/WebSpeechInputControllerMock.h @@ -45,10 +45,6 @@ public: virtual ~WebSpeechInputControllerMock() { } virtual void setMockRecognitionResult(const WebString& result, const WebString& language) = 0; - - // FIXME: this is a fix for a two-sided patch. Delete as soon as the chromium side is patched. - // Chromium patch not uploaded yet, but will depend on http://codereview.chromium.org/3615005/show patch. - virtual void setMockRecognitionResult(const WebString& result) = 0; }; } // namespace WebKit diff --git a/WebKit/chromium/public/WebURLRequest.h b/WebKit/chromium/public/WebURLRequest.h index e64ce80..c800452 100644 --- a/WebKit/chromium/public/WebURLRequest.h +++ b/WebKit/chromium/public/WebURLRequest.h @@ -58,9 +58,7 @@ public: enum TargetType { TargetIsMainFrame = 0, - TargetIsSubFrame = 1, // Temporary for backward compatibility. TargetIsSubframe = 1, - TargetIsSubResource = 2, // Temporary for backward comptibility. TargetIsSubresource = 2, TargetIsStyleSheet = 3, TargetIsScript = 4, diff --git a/WebKit/chromium/public/WebWindowFeatures.h b/WebKit/chromium/public/WebWindowFeatures.h index 2e7278a..99d8580 100644 --- a/WebKit/chromium/public/WebWindowFeatures.h +++ b/WebKit/chromium/public/WebWindowFeatures.h @@ -81,9 +81,13 @@ struct WebWindowFeatures { #if WEBKIT_IMPLEMENTATION WebWindowFeatures(const WebCore::WindowFeatures& f) - : xSet(f.xSet) + : x(f.x) + , xSet(f.xSet) + , y(f.y) , ySet(f.ySet) + , width(f.width) , widthSet(f.widthSet) + , height(f.height) , heightSet(f.heightSet) , menuBarVisible(f.menuBarVisible) , statusBarVisible(f.statusBarVisible) diff --git a/WebKit/chromium/src/AssertMatchingEnums.cpp b/WebKit/chromium/src/AssertMatchingEnums.cpp index c6ab85a..3fffd60 100644 --- a/WebKit/chromium/src/AssertMatchingEnums.cpp +++ b/WebKit/chromium/src/AssertMatchingEnums.cpp @@ -344,6 +344,7 @@ COMPILE_ASSERT_MATCHING_ENUM(WebScrollbar::ScrollByPixel, ScrollByPixel); COMPILE_ASSERT_MATCHING_ENUM(WebSettings::EditingBehaviorMac, EditingMacBehavior); COMPILE_ASSERT_MATCHING_ENUM(WebSettings::EditingBehaviorWin, EditingWindowsBehavior); +COMPILE_ASSERT_MATCHING_ENUM(WebSettings::EditingBehaviorUnix, EditingUnixBehavior); COMPILE_ASSERT_MATCHING_ENUM(WebTextAffinityUpstream, UPSTREAM); COMPILE_ASSERT_MATCHING_ENUM(WebTextAffinityDownstream, DOWNSTREAM); diff --git a/WebKit/chromium/src/ChromeClientImpl.cpp b/WebKit/chromium/src/ChromeClientImpl.cpp index df13b29..18f7a02 100644 --- a/WebKit/chromium/src/ChromeClientImpl.cpp +++ b/WebKit/chromium/src/ChromeClientImpl.cpp @@ -252,6 +252,10 @@ void ChromeClientImpl::focusedNodeChanged(Node* node) m_webView->client()->setKeyboardFocusURL(focusURL); } +void ChromeClientImpl::focusedFrameChanged(Frame*) +{ +} + Page* ChromeClientImpl::createWindow( Frame* frame, const FrameLoadRequest& r, const WindowFeatures& features, const NavigationAction&) { diff --git a/WebKit/chromium/src/ChromeClientImpl.h b/WebKit/chromium/src/ChromeClientImpl.h index 039fc1b..87c1653 100644 --- a/WebKit/chromium/src/ChromeClientImpl.h +++ b/WebKit/chromium/src/ChromeClientImpl.h @@ -70,6 +70,7 @@ public: virtual bool canTakeFocus(WebCore::FocusDirection); virtual void takeFocus(WebCore::FocusDirection); virtual void focusedNodeChanged(WebCore::Node*); + virtual void focusedFrameChanged(WebCore::Frame*); virtual WebCore::Page* createWindow( WebCore::Frame*, const WebCore::FrameLoadRequest&, const WebCore::WindowFeatures&, const WebCore::NavigationAction&); virtual void show(); @@ -174,6 +175,10 @@ public: virtual PassRefPtr<WebCore::PopupMenu> createPopupMenu(WebCore::PopupMenuClient*) const; virtual PassRefPtr<WebCore::SearchPopupMenu> createSearchPopupMenu(WebCore::PopupMenuClient*) const; +#if ENABLE(CONTEXT_MENUS) + virtual void showContextMenu() { } +#endif + private: void getPopupMenuInfo(WebCore::PopupContainer*, WebPopupMenuInfo*); diff --git a/WebKit/chromium/src/ChromiumBridge.cpp b/WebKit/chromium/src/ChromiumBridge.cpp index 1af32cf..39d2566 100644 --- a/WebKit/chromium/src/ChromiumBridge.cpp +++ b/WebKit/chromium/src/ChromiumBridge.cpp @@ -345,6 +345,11 @@ bool ChromiumBridge::getFileSize(const String& path, long long& result) return webKitClient()->fileUtilities()->getFileSize(path, result); } +void ChromiumBridge::revealFolderInOS(const String& path) +{ + webKitClient()->fileUtilities()->revealFolderInOS(path); +} + bool ChromiumBridge::getFileModificationTime(const String& path, time_t& result) { double modificationTime; diff --git a/WebKit/chromium/src/Extensions3DChromium.cpp b/WebKit/chromium/src/Extensions3DChromium.cpp new file mode 100644 index 0000000..c36040b --- /dev/null +++ b/WebKit/chromium/src/Extensions3DChromium.cpp @@ -0,0 +1,84 @@ +/* + * Copyright (C) 2010 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" + +#if ENABLE(3D_CANVAS) + +#include "Extensions3DChromium.h" + +#include "GraphicsContext3D.h" +#include "GraphicsContext3DInternal.h" + +namespace WebCore { + +Extensions3DChromium::Extensions3DChromium(GraphicsContext3DInternal* internal) + : m_internal(internal) +{ +} + +Extensions3DChromium::~Extensions3DChromium() +{ +} + +bool Extensions3DChromium::supports(const String& name) +{ + return m_internal->supportsExtension(name); +} + +int Extensions3DChromium::getGraphicsResetStatusARB() +{ + // FIXME: implement this in GraphicsContext3DInternal / WebGraphicsContext3DInternal. + return GraphicsContext3D::NO_ERROR; +} + +void* Extensions3DChromium::mapBufferSubDataCHROMIUM(unsigned target, int offset, int size, unsigned access) +{ + return m_internal->mapBufferSubDataCHROMIUM(target, offset, size, access); +} + +void Extensions3DChromium::unmapBufferSubDataCHROMIUM(const void* data) +{ + m_internal->unmapBufferSubDataCHROMIUM(data); +} + +void* Extensions3DChromium::mapTexSubImage2DCHROMIUM(unsigned target, int level, int xoffset, int yoffset, int width, int height, unsigned format, unsigned type, unsigned access) +{ + return m_internal->mapTexSubImage2DCHROMIUM(target, level, xoffset, yoffset, width, height, format, type, access); +} + +void Extensions3DChromium::unmapTexSubImage2DCHROMIUM(const void* data) +{ + m_internal->unmapTexSubImage2DCHROMIUM(data); +} + +void Extensions3DChromium::copyTextureToParentTextureCHROMIUM(unsigned texture, unsigned parentTexture) +{ + m_internal->copyTextureToParentTextureCHROMIUM(texture, parentTexture); +} + +} // namespace WebCore + +#endif // ENABLE(3D_CANVAS) diff --git a/WebKit/chromium/src/ExternalPopupMenu.cpp b/WebKit/chromium/src/ExternalPopupMenu.cpp index a0243eb..0f208fb 100644 --- a/WebKit/chromium/src/ExternalPopupMenu.cpp +++ b/WebKit/chromium/src/ExternalPopupMenu.cpp @@ -98,15 +98,26 @@ void ExternalPopupMenu::didChangeSelection(int index) void ExternalPopupMenu::didAcceptIndex(int index) { + // Calling methods on the PopupMenuClient might lead to this object being + // derefed. This ensures it does not get deleted while we are running this + // method. + RefPtr<ExternalPopupMenu> guard(this); + if (m_popupMenuClient) { m_popupMenuClient->valueChanged(index); - m_popupMenuClient->popupDidHide(); + // The call to valueChanged above might have lead to a call to + // disconnectClient, so we might not have a PopupMenuClient anymore. + if (m_popupMenuClient) + m_popupMenuClient->popupDidHide(); } m_webExternalPopupMenu = 0; } void ExternalPopupMenu::didCancel() { + // See comment in didAcceptIndex on why we need this. + RefPtr<ExternalPopupMenu> guard(this); + if (m_popupMenuClient) m_popupMenuClient->popupDidHide(); m_webExternalPopupMenu = 0; diff --git a/WebKit/chromium/src/FrameLoaderClientImpl.cpp b/WebKit/chromium/src/FrameLoaderClientImpl.cpp index 29141ac..ef28981 100644 --- a/WebKit/chromium/src/FrameLoaderClientImpl.cpp +++ b/WebKit/chromium/src/FrameLoaderClientImpl.cpp @@ -288,7 +288,7 @@ void FrameLoaderClientImpl::assignIdentifierToInitialRequest( // this includes images and xmlhttp requests. It is important to note that a // subresource is NOT limited to stuff loaded through the frame's subresource // loader. Synchronous xmlhttp requests for example, do not go through the -// subresource loader, but we still label them as TargetIsSubResource. +// subresource loader, but we still label them as TargetIsSubresource. // // The important edge cases to consider when modifying this function are // how synchronous resource loads are treated during load/unload threshold. @@ -1389,9 +1389,13 @@ void FrameLoaderClientImpl::didTransferChildFrameToNewDocument(Page*) m_webFrame->setClient(newParent->client()); } -void FrameLoaderClientImpl::transferLoadingResourceFromPage(unsigned long, DocumentLoader*, const ResourceRequest&, Page*) +void FrameLoaderClientImpl::transferLoadingResourceFromPage(unsigned long identifier, DocumentLoader* loader, const ResourceRequest& request, Page* oldPage) { - notImplemented(); + assignIdentifierToInitialRequest(identifier, loader, request); + + WebFrameImpl* oldWebFrame = WebFrameImpl::fromFrame(oldPage->mainFrame()); + if (oldWebFrame && oldWebFrame->client()) + oldWebFrame->client()->removeIdentifierForRequest(identifier); } PassRefPtr<Widget> FrameLoaderClientImpl::createPlugin( diff --git a/WebKit/chromium/src/GraphicsContext3DChromium.cpp b/WebKit/chromium/src/GraphicsContext3DChromium.cpp index afc2707..4d9e40b 100644 --- a/WebKit/chromium/src/GraphicsContext3DChromium.cpp +++ b/WebKit/chromium/src/GraphicsContext3DChromium.cpp @@ -39,6 +39,7 @@ #include "CanvasRenderingContext.h" #include "Chrome.h" #include "ChromeClientImpl.h" +#include "Extensions3DChromium.h" #include "GraphicsContext3DInternal.h" #include "HTMLCanvasElement.h" #include "HTMLImageElement.h" @@ -83,6 +84,7 @@ namespace WebCore { GraphicsContext3DInternal::GraphicsContext3DInternal() : m_webViewImpl(0) + , m_initializedAvailableExtensions(false) #if PLATFORM(SKIA) #elif PLATFORM(CG) , m_renderOutput(0) @@ -108,6 +110,7 @@ bool GraphicsContext3DInternal::initialize(GraphicsContext3D::Attributes attrs, webAttributes.stencil = attrs.stencil; webAttributes.antialias = attrs.antialias; webAttributes.premultipliedAlpha = attrs.premultipliedAlpha; + webAttributes.canRecoverFromContextLoss = attrs.canRecoverFromContextLoss; WebKit::WebGraphicsContext3D* webContext = WebKit::webKitClient()->createGraphicsContext3D(); if (!webContext) return false; @@ -675,13 +678,31 @@ DELEGATE_TO_IMPL_1(deleteShader, unsigned) DELEGATE_TO_IMPL_1(deleteTexture, unsigned) DELEGATE_TO_IMPL_1(synthesizeGLError, unsigned long) -DELEGATE_TO_IMPL_R(supportsBGRA, bool) -DELEGATE_TO_IMPL_R(supportsMapSubCHROMIUM, bool) + +Extensions3D* GraphicsContext3DInternal::getExtensions() +{ + if (!m_extensions) + m_extensions = adoptPtr(new Extensions3DChromium(this)); + return m_extensions.get(); +} + +bool GraphicsContext3DInternal::supportsExtension(const String& name) +{ + if (!m_initializedAvailableExtensions) { + String extensionsString = getString(GraphicsContext3D::EXTENSIONS); + Vector<String> availableExtensions; + extensionsString.split(" ", availableExtensions); + for (size_t i = 0; i < availableExtensions.size(); ++i) + m_availableExtensions.add(availableExtensions[i]); + m_initializedAvailableExtensions = true; + } + return m_availableExtensions.contains(name); +} + DELEGATE_TO_IMPL_4R(mapBufferSubDataCHROMIUM, unsigned, int, int, unsigned, void*) DELEGATE_TO_IMPL_1(unmapBufferSubDataCHROMIUM, const void*) DELEGATE_TO_IMPL_9R(mapTexSubImage2DCHROMIUM, unsigned, int, int, int, int, int, unsigned, unsigned, unsigned, void*) DELEGATE_TO_IMPL_1(unmapTexSubImage2DCHROMIUM, const void*) -DELEGATE_TO_IMPL_R(supportsCopyTextureToParentTextureCHROMIUM, bool) DELEGATE_TO_IMPL_2(copyTextureToParentTextureCHROMIUM, unsigned, unsigned) //---------------------------------------------------------------------- @@ -1023,14 +1044,7 @@ DELEGATE_TO_INTERNAL_1(deleteShader, unsigned) DELEGATE_TO_INTERNAL_1(deleteTexture, unsigned) DELEGATE_TO_INTERNAL_1(synthesizeGLError, unsigned long) -DELEGATE_TO_INTERNAL_R(supportsBGRA, bool) -DELEGATE_TO_INTERNAL_R(supportsMapSubCHROMIUM, bool) -DELEGATE_TO_INTERNAL_4R(mapBufferSubDataCHROMIUM, unsigned, int, int, unsigned, void*) -DELEGATE_TO_INTERNAL_1(unmapBufferSubDataCHROMIUM, const void*) -DELEGATE_TO_INTERNAL_9R(mapTexSubImage2DCHROMIUM, unsigned, int, int, int, int, int, unsigned, unsigned, unsigned, void*) -DELEGATE_TO_INTERNAL_1(unmapTexSubImage2DCHROMIUM, const void*) -DELEGATE_TO_INTERNAL_R(supportsCopyTextureToParentTextureCHROMIUM, bool) -DELEGATE_TO_INTERNAL_2(copyTextureToParentTextureCHROMIUM, unsigned, unsigned) +DELEGATE_TO_INTERNAL_R(getExtensions, Extensions3D*) bool GraphicsContext3D::isGLES2Compliant() const { @@ -1047,11 +1061,6 @@ bool GraphicsContext3D::isErrorGeneratedOnOutOfBoundsAccesses() const return m_internal->isErrorGeneratedOnOutOfBoundsAccesses(); } -int GraphicsContext3D::getGraphicsResetStatusARB() -{ - return NO_ERROR; -} - } // namespace WebCore #endif // ENABLE(3D_CANVAS) diff --git a/WebKit/chromium/src/GraphicsContext3DInternal.h b/WebKit/chromium/src/GraphicsContext3DInternal.h index f12fff0..17163a4 100644 --- a/WebKit/chromium/src/GraphicsContext3DInternal.h +++ b/WebKit/chromium/src/GraphicsContext3DInternal.h @@ -27,6 +27,7 @@ #define GraphicsContext3DInternal_h #include "GraphicsContext3D.h" +#include <wtf/HashSet.h> #include <wtf/OwnPtr.h> #if PLATFORM(SKIA) #include "SkBitmap.h" @@ -39,6 +40,7 @@ class WebViewImpl; namespace WebCore { +class Extensions3DChromium; #if USE(ACCELERATED_COMPOSITING) class WebGLLayerChromium; #endif @@ -260,7 +262,9 @@ public: void synthesizeGLError(unsigned long error); - void swapBuffers(); + // Extensions3D support. + Extensions3D* getExtensions(); + bool supportsExtension(const String& name); // EXT_texture_format_BGRA8888 bool supportsBGRA(); @@ -278,7 +282,10 @@ public: private: OwnPtr<WebKit::WebGraphicsContext3D> m_impl; + OwnPtr<Extensions3DChromium> m_extensions; WebKit::WebViewImpl* m_webViewImpl; + bool m_initializedAvailableExtensions; + HashSet<String> m_availableExtensions; #if USE(ACCELERATED_COMPOSITING) RefPtr<WebGLLayerChromium> m_compositingLayer; #endif diff --git a/WebKit/chromium/src/IDBTransactionBackendProxy.cpp b/WebKit/chromium/src/IDBTransactionBackendProxy.cpp index 4b19ee4..7a88b13 100644 --- a/WebKit/chromium/src/IDBTransactionBackendProxy.cpp +++ b/WebKit/chromium/src/IDBTransactionBackendProxy.cpp @@ -84,11 +84,6 @@ void IDBTransactionBackendProxy::didCompleteTaskEvents() m_webIDBTransaction->didCompleteTaskEvents(); } -int IDBTransactionBackendProxy::id() const -{ - return m_webIDBTransaction->id(); -} - void IDBTransactionBackendProxy::setCallbacks(IDBTransactionCallbacks* callbacks) { m_webIDBTransaction->setCallbacks(new WebIDBTransactionCallbacksImpl(callbacks)); diff --git a/WebKit/chromium/src/IDBTransactionBackendProxy.h b/WebKit/chromium/src/IDBTransactionBackendProxy.h index 0c56f19..0bf84da 100644 --- a/WebKit/chromium/src/IDBTransactionBackendProxy.h +++ b/WebKit/chromium/src/IDBTransactionBackendProxy.h @@ -47,7 +47,6 @@ public: virtual void abort(); virtual bool scheduleTask(PassOwnPtr<ScriptExecutionContext::Task>, PassOwnPtr<ScriptExecutionContext::Task>); virtual void didCompleteTaskEvents(); - virtual int id() const; virtual void setCallbacks(IDBTransactionCallbacks*); WebKit::WebIDBTransaction* getWebIDBTransaction() const { return m_webIDBTransaction.get(); } diff --git a/WebKit/chromium/src/LocalFileSystemChromium.cpp b/WebKit/chromium/src/LocalFileSystemChromium.cpp index 25b1feb..a9c61d0 100644 --- a/WebKit/chromium/src/LocalFileSystemChromium.cpp +++ b/WebKit/chromium/src/LocalFileSystemChromium.cpp @@ -57,13 +57,21 @@ LocalFileSystem& LocalFileSystem::localFileSystem() return *localFileSystem; } +void LocalFileSystem::readFileSystem(ScriptExecutionContext* context, AsyncFileSystem::Type type, long long size, 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), size, false, new WebFileSystemCallbacksImpl(callbacks)); +} + void LocalFileSystem::requestFileSystem(ScriptExecutionContext* context, AsyncFileSystem::Type type, long long size, PassOwnPtr<AsyncFileSystemCallbacks> callbacks, bool synchronous) { 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, new WebFileSystemCallbacksImpl(callbacks)); + webFrame->client()->openFileSystem(webFrame, static_cast<WebFileSystem::Type>(type), size, true, new WebFileSystemCallbacksImpl(callbacks)); } else { WorkerContext* workerContext = static_cast<WorkerContext*>(context); WorkerLoaderProxy* workerLoaderProxy = &workerContext->thread()->workerLoaderProxy(); diff --git a/WebKit/chromium/src/WebAccessibilityObject.cpp b/WebKit/chromium/src/WebAccessibilityObject.cpp index 96a3173..9df69cf 100644 --- a/WebKit/chromium/src/WebAccessibilityObject.cpp +++ b/WebKit/chromium/src/WebAccessibilityObject.cpp @@ -351,7 +351,7 @@ WebRect WebAccessibilityObject::boundingBoxRect() const return WebRect(); m_private->updateBackingStore(); - return m_private->documentFrameView()->contentsToWindow(m_private->boundingBoxRect()); + return m_private->boundingBoxRect(); } WebString WebAccessibilityObject::helpText() const diff --git a/WebKit/chromium/src/WebAnimationControllerImpl.cpp b/WebKit/chromium/src/WebAnimationControllerImpl.cpp index 15df140..e6eb828 100644 --- a/WebKit/chromium/src/WebAnimationControllerImpl.cpp +++ b/WebKit/chromium/src/WebAnimationControllerImpl.cpp @@ -94,7 +94,7 @@ void WebAnimationControllerImpl::suspendAnimations() const return; if (!m_frameImpl->frame()) return; - controller->suspendAnimations(m_frameImpl->frame()->document()); + controller->suspendAnimations(); } void WebAnimationControllerImpl::resumeAnimations() const @@ -104,7 +104,7 @@ void WebAnimationControllerImpl::resumeAnimations() const return; if (!m_frameImpl->frame()) return; - controller->resumeAnimations(m_frameImpl->frame()->document()); + controller->resumeAnimations(); } } // namespace WebKit diff --git a/WebKit/chromium/src/WebCache.cpp b/WebKit/chromium/src/WebCache.cpp index c124bdf..2203498 100644 --- a/WebKit/chromium/src/WebCache.cpp +++ b/WebKit/chromium/src/WebCache.cpp @@ -31,20 +31,20 @@ #include "config.h" #include "WebCache.h" -// Instead of providing accessors, we make all members of Cache public. -// This will make it easier to track WebCore changes to the Cache class. -// FIXME: We should introduce public getters on the Cache class. +// Instead of providing accessors, we make all members of MemoryCache public. +// This will make it easier to track WebCore changes to the MemoryCache class. +// FIXME: We should introduce public getters on the MemoryCache class. #define private public -#include "Cache.h" +#include "MemoryCache.h" #undef private using namespace WebCore; namespace WebKit { -// A helper method for coverting a Cache::TypeStatistic to a +// A helper method for coverting a MemoryCache::TypeStatistic to a // WebCache::ResourceTypeStat. -static void ToResourceTypeStat(const Cache::TypeStatistic& from, +static void ToResourceTypeStat(const MemoryCache::TypeStatistic& from, WebCache::ResourceTypeStat& to) { to.count = static_cast<size_t>(from.count); @@ -56,7 +56,7 @@ static void ToResourceTypeStat(const Cache::TypeStatistic& from, void WebCache::setCapacities( size_t minDeadCapacity, size_t maxDeadCapacity, size_t capacity) { - Cache* cache = WebCore::cache(); + MemoryCache* cache = WebCore::cache(); if (cache) cache->setCapacities(static_cast<unsigned int>(minDeadCapacity), static_cast<unsigned int>(maxDeadCapacity), @@ -65,7 +65,7 @@ void WebCache::setCapacities( void WebCache::clear() { - Cache* cache = WebCore::cache(); + MemoryCache* cache = WebCore::cache(); if (cache && !cache->disabled()) { cache->setDisabled(true); cache->setDisabled(false); @@ -76,7 +76,7 @@ void WebCache::getUsageStats(UsageStats* result) { ASSERT(result); - Cache* cache = WebCore::cache(); + MemoryCache* cache = WebCore::cache(); if (cache) { result->minDeadCapacity = cache->m_minDeadCapacity; result->maxDeadCapacity = cache->m_maxDeadCapacity; @@ -89,9 +89,9 @@ void WebCache::getUsageStats(UsageStats* result) void WebCache::getResourceTypeStats(ResourceTypeStats* result) { - Cache* cache = WebCore::cache(); + MemoryCache* cache = WebCore::cache(); if (cache) { - Cache::Statistics stats = cache->getStatistics(); + MemoryCache::Statistics stats = cache->getStatistics(); ToResourceTypeStat(stats.images, result->images); ToResourceTypeStat(stats.cssStyleSheets, result->cssStyleSheets); ToResourceTypeStat(stats.scripts, result->scripts); diff --git a/WebKit/chromium/src/WebDevToolsAgentImpl.cpp b/WebKit/chromium/src/WebDevToolsAgentImpl.cpp index 9b7b2bd..880adb4 100644 --- a/WebKit/chromium/src/WebDevToolsAgentImpl.cpp +++ b/WebKit/chromium/src/WebDevToolsAgentImpl.cpp @@ -177,7 +177,6 @@ WebDevToolsAgentImpl::WebDevToolsAgentImpl( , m_client(client) , m_webViewImpl(webViewImpl) , m_apuAgentEnabled(false) - , m_resourceTrackingWasEnabled(false) , m_attached(false) { DebuggerAgentManager::setExposeV8DebuggerProtocol( @@ -264,20 +263,12 @@ void WebDevToolsAgentImpl::setApuAgentEnabled(bool enabled) if (enabled) { if (!ic->hasFrontend()) connectFrontend(true); - m_resourceTrackingWasEnabled = ic->resourceTrackingEnabled(); + ic->startTimelineProfiler(); - if (!m_resourceTrackingWasEnabled) { - // TODO(knorton): Introduce some kind of agents dependency here so that - // user could turn off resource tracking while apu agent is on. - ic->setResourceTrackingEnabled(true); - } m_debuggerAgentImpl->setAutoContinueOnException(true); - } else { + } else ic->stopTimelineProfiler(); - if (!m_resourceTrackingWasEnabled) - ic->setResourceTrackingEnabled(false); - m_resourceTrackingWasEnabled = false; - } + m_client->runtimePropertyChanged( kApuAgentFeatureName, enabled ? String("true") : String("false")); diff --git a/WebKit/chromium/src/WebDevToolsAgentImpl.h b/WebKit/chromium/src/WebDevToolsAgentImpl.h index 47c4ccf..feb4bdd 100644 --- a/WebKit/chromium/src/WebDevToolsAgentImpl.h +++ b/WebKit/chromium/src/WebDevToolsAgentImpl.h @@ -109,7 +109,6 @@ private: WebViewImpl* m_webViewImpl; OwnPtr<DebuggerAgentImpl> m_debuggerAgentImpl; bool m_apuAgentEnabled; - bool m_resourceTrackingWasEnabled; bool m_attached; }; diff --git a/WebKit/chromium/src/WebDevToolsFrontendImpl.cpp b/WebKit/chromium/src/WebDevToolsFrontendImpl.cpp index 905bc6d..ea59ab6 100644 --- a/WebKit/chromium/src/WebDevToolsFrontendImpl.cpp +++ b/WebKit/chromium/src/WebDevToolsFrontendImpl.cpp @@ -92,7 +92,6 @@ WebDevToolsFrontendImpl::WebDevToolsFrontendImpl( : m_webViewImpl(webViewImpl) , m_client(client) , m_applicationLocale(applicationLocale) - , m_loaded(false) { InspectorController* ic = m_webViewImpl->page()->inspectorController(); ic->setInspectorFrontendClient(new InspectorFrontendClientImpl(m_webViewImpl->page(), m_client, this)); @@ -113,7 +112,9 @@ void WebDevToolsFrontendImpl::dispatchOnInspectorFrontend(const WebString& messa v8::Handle<v8::Context> frameContext = V8Proxy::context(frame->frame()); v8::Context::Scope contextScope(frameContext); v8::Handle<v8::Value> dispatchFunction = frameContext->Global()->Get(v8::String::New("WebInspector_syncDispatch")); - ASSERT(dispatchFunction->IsFunction()); + // The frame might have navigated away from the front-end page (which is still weird). + if (!dispatchFunction->IsFunction()) + return; v8::Handle<v8::Function> function = v8::Handle<v8::Function>::Cast(dispatchFunction); Vector< v8::Handle<v8::Value> > args; args.append(ToV8String(message)); diff --git a/WebKit/chromium/src/WebDevToolsFrontendImpl.h b/WebKit/chromium/src/WebDevToolsFrontendImpl.h index bde906f..866a1cb 100644 --- a/WebKit/chromium/src/WebDevToolsFrontendImpl.h +++ b/WebKit/chromium/src/WebDevToolsFrontendImpl.h @@ -73,7 +73,6 @@ private: WebKit::WebViewImpl* m_webViewImpl; WebKit::WebDevToolsFrontendClient* m_client; String m_applicationLocale; - bool m_loaded; }; } // namespace WebKit diff --git a/WebKit/chromium/src/WebFrameImpl.cpp b/WebKit/chromium/src/WebFrameImpl.cpp index b4d23c0..41b8321 100644 --- a/WebKit/chromium/src/WebFrameImpl.cpp +++ b/WebKit/chromium/src/WebFrameImpl.cpp @@ -486,7 +486,7 @@ WebFrame* WebFrame::fromFrameOwnerElement(const WebElement& element) WebString WebFrameImpl::name() const { - return m_frame->tree()->name(); + return m_frame->tree()->uniqueName(); } void WebFrameImpl::setName(const WebString& name) @@ -986,7 +986,7 @@ WebHistoryItem WebFrameImpl::previousHistoryItem() const // only get saved to history when it becomes the previous item. The caller // is expected to query the history item after a navigation occurs, after // the desired history item has become the previous entry. - return WebHistoryItem(viewImpl()->previousHistoryItem()); + return WebHistoryItem(m_frame->loader()->history()->previousItem()); } WebHistoryItem WebFrameImpl::currentHistoryItem() const diff --git a/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.cpp b/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.cpp index e805c55..4cb701f 100644 --- a/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.cpp +++ b/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.cpp @@ -40,7 +40,8 @@ #include "WebView.h" #include <wtf/OwnArrayPtr.h> #include <wtf/PassOwnPtr.h> -#include <wtf/text/CString.h> +#include <wtf/text/StringBuilder.h> +#include <wtf/text/WTFString.h> #include <stdio.h> #include <string.h> @@ -48,8 +49,6 @@ namespace WebKit { enum { - IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B, - IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A, MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB, MAX_VARYING_VECTORS = 0x8DFC, MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD @@ -531,20 +530,6 @@ void WebGraphicsContext3DDefaultImpl::synthesizeGLError(unsigned long error) m_syntheticErrors.add(error); } -bool WebGraphicsContext3DDefaultImpl::supportsBGRA() -{ - // Supported since OpenGL 1.2. However, glTexImage2D() must be modified - // to translate the internalFormat from GL_BGRA to GL_RGBA, since the - // former is not accepted by desktop GL. Return false until this is done. - return false; -} - -bool WebGraphicsContext3DDefaultImpl::supportsMapSubCHROMIUM() -{ - // We don't claim support for this extension at this time - return false; -} - void* WebGraphicsContext3DDefaultImpl::mapBufferSubDataCHROMIUM(unsigned target, int offset, int size, unsigned access) { return 0; @@ -563,15 +548,11 @@ void WebGraphicsContext3DDefaultImpl::unmapTexSubImage2DCHROMIUM(const void* mem { } -bool WebGraphicsContext3DDefaultImpl::supportsCopyTextureToParentTextureCHROMIUM() -{ - // This extension requires this desktopGL-only function (GLES2 doesn't - // support it), so check for its existence here. - return glGetTexLevelParameteriv; -} - void WebGraphicsContext3DDefaultImpl::copyTextureToParentTextureCHROMIUM(unsigned id, unsigned id2) { + if (!glGetTexLevelParameteriv) + return; + makeContextCurrent(); glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_copyTextureToParentTextureFBO); glFramebufferTexture2DEXT(GL_FRAMEBUFFER, @@ -855,16 +836,7 @@ DELEGATE_TO_GL(finish, Finish) DELEGATE_TO_GL(flush, Flush) -void WebGraphicsContext3DDefaultImpl::framebufferRenderbuffer(unsigned long target, unsigned long attachment, - unsigned long renderbuffertarget, WebGLId buffer) -{ - makeContextCurrent(); - if (attachment == GL_DEPTH_STENCIL_ATTACHMENT) { - glFramebufferRenderbufferEXT(target, GL_DEPTH_ATTACHMENT, renderbuffertarget, buffer); - glFramebufferRenderbufferEXT(target, GL_STENCIL_ATTACHMENT, renderbuffertarget, buffer); - } else - glFramebufferRenderbufferEXT(target, attachment, renderbuffertarget, buffer); -} +DELEGATE_TO_GL_4(framebufferRenderbuffer, FramebufferRenderbufferEXT, unsigned long, unsigned long, unsigned long, WebGLId) DELEGATE_TO_GL_5(framebufferTexture2D, FramebufferTexture2DEXT, unsigned long, unsigned long, unsigned long, WebGLId, long) @@ -979,21 +951,12 @@ void WebGraphicsContext3DDefaultImpl::getFramebufferAttachmentParameteriv(unsign void WebGraphicsContext3DDefaultImpl::getIntegerv(unsigned long pname, int* value) { - // Need to emulate IMPLEMENTATION_COLOR_READ_FORMAT/TYPE for GL. Any valid - // combination should work, but GL_RGB/GL_UNSIGNED_BYTE might be the most - // useful for desktop WebGL users. // Need to emulate MAX_FRAGMENT/VERTEX_UNIFORM_VECTORS and MAX_VARYING_VECTORS // because desktop GL's corresponding queries return the number of components // whereas GLES2 return the number of vectors (each vector has 4 components). // Therefore, the value returned by desktop GL needs to be divided by 4. makeContextCurrent(); switch (pname) { - case IMPLEMENTATION_COLOR_READ_FORMAT: - *value = GL_RGB; - break; - case IMPLEMENTATION_COLOR_READ_TYPE: - *value = GL_UNSIGNED_BYTE; - break; case MAX_FRAGMENT_UNIFORM_VECTORS: glGetIntegerv(GL_MAX_FRAGMENT_UNIFORM_COMPONENTS, value); *value /= 4; @@ -1130,7 +1093,16 @@ WebString WebGraphicsContext3DDefaultImpl::getShaderSource(WebGLId shader) WebString WebGraphicsContext3DDefaultImpl::getString(unsigned long name) { makeContextCurrent(); - return WebString::fromUTF8(reinterpret_cast<const char*>(glGetString(name))); + StringBuilder result; + result.append(reinterpret_cast<const char*>(glGetString(name))); + if (name == GL_EXTENSIONS) { + // GL_CHROMIUM_copy_texture_to_parent_texture requires this + // desktopGL-only function (GLES2 doesn't support it), so + // check for its existence here. + if (glGetTexLevelParameteriv) + result.append(" GL_CHROMIUM_copy_texture_to_parent_texture"); + } + return WebString(result.toString()); } DELEGATE_TO_GL_3(getTexParameterfv, GetTexParameterfv, unsigned long, unsigned long, float*) diff --git a/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.h b/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.h index 5eebf12..c1de77c 100644 --- a/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.h +++ b/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.h @@ -81,13 +81,10 @@ public: virtual void prepareTexture(); virtual void synthesizeGLError(unsigned long error); - virtual bool supportsBGRA(); - virtual bool supportsMapSubCHROMIUM(); virtual void* mapBufferSubDataCHROMIUM(unsigned target, int offset, int size, unsigned access); virtual void unmapBufferSubDataCHROMIUM(const void*); virtual void* mapTexSubImage2DCHROMIUM(unsigned target, int level, int xoffset, int yoffset, int width, int height, unsigned format, unsigned type, unsigned access); virtual void unmapTexSubImage2DCHROMIUM(const void*); - virtual bool supportsCopyTextureToParentTextureCHROMIUM(); virtual void copyTextureToParentTextureCHROMIUM(unsigned texture, unsigned parentTexture); virtual void activeTexture(unsigned long texture); diff --git a/WebKit/chromium/src/WebIDBTransactionImpl.cpp b/WebKit/chromium/src/WebIDBTransactionImpl.cpp index f5d8748..4307cb5 100644 --- a/WebKit/chromium/src/WebIDBTransactionImpl.cpp +++ b/WebKit/chromium/src/WebIDBTransactionImpl.cpp @@ -69,11 +69,6 @@ void WebIDBTransactionImpl::didCompleteTaskEvents() m_backend->didCompleteTaskEvents(); } -int WebIDBTransactionImpl::id() const -{ - return m_backend->id(); -} - void WebIDBTransactionImpl::setCallbacks(WebIDBTransactionCallbacks* callbacks) { RefPtr<IDBTransactionCallbacks> idbCallbacks = IDBTransactionCallbacksProxy::create(callbacks); diff --git a/WebKit/chromium/src/WebIDBTransactionImpl.h b/WebKit/chromium/src/WebIDBTransactionImpl.h index 24bab91..b26b3ac 100644 --- a/WebKit/chromium/src/WebIDBTransactionImpl.h +++ b/WebKit/chromium/src/WebIDBTransactionImpl.h @@ -45,7 +45,6 @@ public: virtual WebIDBObjectStore* objectStore(const WebString& name); virtual void abort(); virtual void didCompleteTaskEvents(); - virtual int id() const; virtual void setCallbacks(WebIDBTransactionCallbacks*); virtual WebCore::IDBTransactionBackendInterface* getIDBTransactionBackendInterface() const; diff --git a/WebKit/chromium/src/WebInputElement.cpp b/WebKit/chromium/src/WebInputElement.cpp index 7779dbc..d032ef8 100644 --- a/WebKit/chromium/src/WebInputElement.cpp +++ b/WebKit/chromium/src/WebInputElement.cpp @@ -95,9 +95,9 @@ int WebInputElement::size() const return constUnwrap<HTMLInputElement>()->size(); } -void WebInputElement::setValue(const WebString& value) +void WebInputElement::setValue(const WebString& value, bool sendChangeEvent) { - unwrap<HTMLInputElement>()->setValue(value); + unwrap<HTMLInputElement>()->setValue(value, sendChangeEvent); } WebString WebInputElement::value() const @@ -145,14 +145,14 @@ void WebInputElement::setSelectionRange(int start, int end) unwrap<HTMLInputElement>()->setSelectionRange(start, end); } -int WebInputElement::selectionStart() +int WebInputElement::selectionStart() const { - return unwrap<HTMLInputElement>()->selectionStart(); + return constUnwrap<HTMLInputElement>()->selectionStart(); } -int WebInputElement::selectionEnd() +int WebInputElement::selectionEnd() const { - return unwrap<HTMLInputElement>()->selectionEnd(); + return constUnwrap<HTMLInputElement>()->selectionEnd(); } bool WebInputElement::isValidValue(const WebString& value) const diff --git a/WebKit/chromium/src/WebPluginContainerImpl.cpp b/WebKit/chromium/src/WebPluginContainerImpl.cpp index 58deecc..43d9757 100644 --- a/WebKit/chromium/src/WebPluginContainerImpl.cpp +++ b/WebKit/chromium/src/WebPluginContainerImpl.cpp @@ -33,6 +33,7 @@ #include "Chrome.h" #include "ChromeClientImpl.h" +#include "PluginLayerChromium.h" #include "WebClipboard.h" #include "WebCursorInfo.h" #include "WebDataSourceImpl.h" @@ -275,6 +276,25 @@ void WebPluginContainerImpl::invalidateRect(const WebRect& rect) invalidateRect(static_cast<IntRect>(rect)); } +void WebPluginContainerImpl::scrollRect(int dx, int dy, const WebRect& rect) +{ + Widget* parentWidget = parent(); + if (parentWidget->isFrameView()) { + FrameView* parentFrameView = static_cast<FrameView*>(parentWidget); + if (!parentFrameView->isOverlapped()) { + IntRect damageRect = convertToContainingWindow(static_cast<IntRect>(rect)); + IntSize scrollDelta(dx, dy); + // scroll() only uses the second rectangle, clipRect, and ignores the first + // rectangle. + parent()->hostWindow()->scroll(scrollDelta, damageRect, damageRect); + return; + } + } + + // Use slow scrolling instead. + invalidateRect(rect); +} + void WebPluginContainerImpl::reportGeometry() { if (!parent()) @@ -287,6 +307,14 @@ void WebPluginContainerImpl::reportGeometry() m_webPlugin->updateGeometry(windowRect, clipRect, cutOutRects, isVisible()); } +void WebPluginContainerImpl::commitBackingTexture() +{ +#if USE(ACCELERATED_COMPOSITING) + if (platformLayer()) + platformLayer()->setNeedsDisplay(); +#endif +} + void WebPluginContainerImpl::clearScriptObjects() { Frame* frame = m_element->document()->frame(); @@ -393,8 +421,33 @@ void WebPluginContainerImpl::willDestroyPluginLoadObserver(WebPluginLoadObserver m_pluginLoadObservers.remove(pos); } +#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(); +} +#endif + // Private methods ------------------------------------------------------------- +WebPluginContainerImpl::WebPluginContainerImpl(WebCore::HTMLPlugInElement* element, WebPlugin* webPlugin) + : WebCore::PluginViewBase(0) + , m_element(element) + , m_webPlugin(webPlugin) +#if USE(ACCELERATED_COMPOSITING) + , m_platformLayer(PluginLayerChromium::create(0)) +#endif +{ +} + WebPluginContainerImpl::~WebPluginContainerImpl() { for (size_t i = 0; i < m_pluginLoadObservers.size(); ++i) diff --git a/WebKit/chromium/src/WebPluginContainerImpl.h b/WebKit/chromium/src/WebPluginContainerImpl.h index 27f5f2e..ebe6983 100644 --- a/WebKit/chromium/src/WebPluginContainerImpl.h +++ b/WebKit/chromium/src/WebPluginContainerImpl.h @@ -31,9 +31,10 @@ #ifndef WebPluginContainerImpl_h #define WebPluginContainerImpl_h +#include "PluginViewBase.h" #include "WebPluginContainer.h" - #include "Widget.h" + #include <wtf/PassRefPtr.h> #include <wtf/Vector.h> @@ -43,7 +44,9 @@ namespace WebCore { class HTMLPlugInElement; class IntRect; class KeyboardEvent; +class LayerChromium; class MouseEvent; +class PluginLayerChromium; class ResourceError; class ResourceResponse; class WheelEvent; @@ -54,7 +57,7 @@ namespace WebKit { class WebPlugin; class WebPluginLoadObserver; -class WebPluginContainerImpl : public WebCore::Widget, public WebPluginContainer { +class WebPluginContainerImpl : public WebCore::PluginViewBase, public WebPluginContainer { public: static PassRefPtr<WebPluginContainerImpl> create(WebCore::HTMLPlugInElement* element, WebPlugin* webPlugin) { @@ -79,12 +82,14 @@ public: virtual WebElement element(); virtual void invalidate(); virtual void invalidateRect(const WebRect&); + virtual void scrollRect(int dx, int dy, const WebRect&); virtual void reportGeometry(); + virtual void commitBackingTexture(); virtual void clearScriptObjects(); virtual NPObject* scriptableObjectForElement(); virtual WebString executeScriptURL(const WebURL&, bool popupsAllowed); virtual void loadFrameRequest(const WebURLRequest&, const WebString& target, bool notifyNeeded, void* notifyData); - virtual void zoomLevelChanged(double zoomLevel); + virtual void zoomLevelChanged(double zoomLevel); // This cannot be null. WebPlugin* plugin() { return m_webPlugin; } @@ -117,10 +122,12 @@ public: void willDestroyPluginLoadObserver(WebPluginLoadObserver*); +#if USE(ACCELERATED_COMPOSITING) + virtual WebCore::LayerChromium* platformLayer() const; +#endif + private: - WebPluginContainerImpl(WebCore::HTMLPlugInElement* element, WebPlugin* webPlugin) - : m_element(element) - , m_webPlugin(webPlugin) { } + WebPluginContainerImpl(WebCore::HTMLPlugInElement* element, WebPlugin* webPlugin); ~WebPluginContainerImpl(); void handleMouseEvent(WebCore::MouseEvent*); @@ -138,6 +145,10 @@ private: WebCore::HTMLPlugInElement* m_element; WebPlugin* m_webPlugin; Vector<WebPluginLoadObserver*> m_pluginLoadObservers; + +#if USE(ACCELERATED_COMPOSITING) + RefPtr<WebCore::PluginLayerChromium> m_platformLayer; +#endif }; } // namespace WebKit diff --git a/WebKit/chromium/src/WebSpeechInputControllerMockImpl.cpp b/WebKit/chromium/src/WebSpeechInputControllerMockImpl.cpp index 3b56338..ce8eba6 100644 --- a/WebKit/chromium/src/WebSpeechInputControllerMockImpl.cpp +++ b/WebKit/chromium/src/WebSpeechInputControllerMockImpl.cpp @@ -55,11 +55,6 @@ WebSpeechInputControllerMockImpl::~WebSpeechInputControllerMockImpl() m_webcoreMock->setListener(0); } -void WebSpeechInputControllerMockImpl::setMockRecognitionResult(const WebString& result) -{ - m_webcoreMock->setRecognitionResult(result, WebString::fromUTF8("")); -} - void WebSpeechInputControllerMockImpl::setMockRecognitionResult(const WebString& result, const WebString &language) { m_webcoreMock->setRecognitionResult(result, language); diff --git a/WebKit/chromium/src/WebSpeechInputControllerMockImpl.h b/WebKit/chromium/src/WebSpeechInputControllerMockImpl.h index c98f92a..7b50a8b 100644 --- a/WebKit/chromium/src/WebSpeechInputControllerMockImpl.h +++ b/WebKit/chromium/src/WebSpeechInputControllerMockImpl.h @@ -64,10 +64,6 @@ public: // WebSpeechInputControllerMock methods. void setMockRecognitionResult(const WebString& result, const WebString& language); - // FIXME: this is a fix for a two-sided patch. Delete as soon as the chromium side is patched. - // Chromium patch not uploaded yet, but will depend on http://codereview.chromium.org/3615005/show patch. - void setMockRecognitionResult(const WebString& result); - private: OwnPtr<WebCore::SpeechInputClientMock> m_webcoreMock; WebSpeechInputListener* m_listener; diff --git a/WebKit/chromium/src/WebViewImpl.cpp b/WebKit/chromium/src/WebViewImpl.cpp index 57d0ca4..490c620 100644 --- a/WebKit/chromium/src/WebViewImpl.cpp +++ b/WebKit/chromium/src/WebViewImpl.cpp @@ -52,6 +52,7 @@ #include "DragData.h" #include "Editor.h" #include "EventHandler.h" +#include "Extensions3D.h" #include "FocusController.h" #include "FontDescription.h" #include "FrameLoader.h" @@ -1050,7 +1051,7 @@ void WebViewImpl::composite(bool finish) m_layerRenderer->present(); GraphicsContext3D* context = m_layerRenderer->context(); - if (context->getGraphicsResetStatusARB() != GraphicsContext3D::NO_ERROR) + if (context->getExtensions()->getGraphicsResetStatusARB() != GraphicsContext3D::NO_ERROR) reallocateRenderer(); #endif } diff --git a/WebKit/chromium/src/js/DevTools.js b/WebKit/chromium/src/js/DevTools.js index 4c23057..8b3aea0 100644 --- a/WebKit/chromium/src/js/DevTools.js +++ b/WebKit/chromium/src/js/DevTools.js @@ -46,6 +46,7 @@ var context = {}; // Used by WebCore's inspector routines. Preferences.canEditScriptSource = true; Preferences.onlineDetectionEnabled = false; Preferences.nativeInstrumentationEnabled = true; + Preferences.fileSystemEnabled = false; })(); var devtools = devtools || {}; diff --git a/WebKit/chromium/src/js/devTools.css b/WebKit/chromium/src/js/devTools.css index 9495fb8..64ea9d5 100644 --- a/WebKit/chromium/src/js/devTools.css +++ b/WebKit/chromium/src/js/devTools.css @@ -37,11 +37,6 @@ body.platform-linux #scripts-files { line-height: 12px; } -.section > .header { - border: 1px solid rgb(92, 116, 157); - background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(105, 133, 180)), to(rgb(92, 116, 157))); -} - .console-group-messages .section > .header { padding: 0 8px 0 0; background-image: none; |
