Changeset 96490 in webkit
- Timestamp:
- Oct 3, 2011 4:58:07 AM (13 years ago)
- Location:
- trunk/Source/WebKit/chromium
- Files:
-
- 1 deleted
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/chromium/ChangeLog
r96481 r96490 1 2011-10-03 Sheriff Bot <webkit.review.bot@gmail.com> 2 3 Unreviewed, rolling out r96481. 4 http://trac.webkit.org/changeset/96481 5 https://bugs.webkit.org/show_bug.cgi?id=69251 6 7 Breaks webkit_unit_tests on Linux(dbg) (Requested by hwennborg 8 on #webkit). 9 10 * WebKit.gypi: 11 * public/WebCompositor.h: 12 * public/WebWidgetClient.h: 13 * src/WebCompositorImpl.cpp: 14 (WebKit::WebCompositorImpl::WebCompositorImpl): 15 (WebKit::WebCompositorImpl::~WebCompositorImpl): 16 (WebKit::WebCompositorImpl::setClient): 17 (WebKit::WebCompositorImpl::handleInputEvent): 18 * src/WebCompositorImpl.h: 19 * src/WebViewImpl.cpp: 20 (WebKit::WebViewImpl::setIsAcceleratedCompositingActive): 21 * src/WebViewImpl.h: 22 * tests/CCLayerTreeHostTest.cpp: 23 (WTF::MockLayerTreeHost::MockLayerTreeHost): 24 * tests/WebCompositorImplTest.cpp: Removed. 25 1 26 2011-10-02 James Robinson <jamesr@chromium.org> 2 27 -
trunk/Source/WebKit/chromium/WebKit.gypi
r96481 r96490 77 77 'tests/TreeTestHelpers.cpp', 78 78 'tests/TreeTestHelpers.h', 79 'tests/WebCompositorImplTest.cpp',80 79 'tests/WebFrameTest.cpp', 81 80 'tests/WebURLRequestTest.cpp', -
trunk/Source/WebKit/chromium/public/WebCompositor.h
r96481 r96490 41 41 // This must be called once with a non-null WebThread before any compositors attempt to initialize. 42 42 WEBKIT_EXPORT static void setThread(WebThread*); 43 WEBKIT_EXPORT static WebCompositor* fromIdentifier(int);44 43 45 44 virtual void setClient(WebCompositorClient*) = 0; -
trunk/Source/WebKit/chromium/public/WebWidgetClient.h
r96481 r96490 53 53 54 54 // Called when the compositor enables or disables. 55 // FIXME: Remove when all implementations switch over to didEnable.../didDisable...56 55 virtual void didActivateAcceleratedCompositing(bool active) { } 57 58 // Called when the compositor is enabled or disabled.59 // The WebCompositor identifier can be used on the compositor thread to get access60 // to the WebCompositor instance associated with this WebWidget.61 virtual void didActivateCompositor(int compositorIdentifier) { }62 virtual void didDeactivateCompositor() { }63 56 64 57 // Called when a call to WebWidget::composite is required -
trunk/Source/WebKit/chromium/src/WebCompositorImpl.cpp
r96481 r96490 32 32 #include "WebInputEvent.h" 33 33 #include "cc/CCThreadProxy.h" 34 #include <wtf/ThreadingPrimitives.h>35 34 36 35 using namespace WebCore; … … 44 43 } 45 44 46 int WebCompositorImpl::s_nextAvailableIdentifier = 1;47 48 // These data structures are always allocated from the main thread, but may49 // be accessed and mutated on the main or compositor thread.50 // s_compositors is deleted when it has no elements. s_compositorsLock is never51 // deleted.52 HashSet<WebCompositorImpl*>* WebCompositorImpl::s_compositors = 0;53 Mutex* WebCompositorImpl::s_compositorsLock = 0;54 55 WebCompositor* WebCompositor::fromIdentifier(int identifier)56 {57 return WebCompositorImpl::fromIdentifier(identifier);58 }59 60 WebCompositor* WebCompositorImpl::fromIdentifier(int identifier)61 {62 ASSERT(CCProxy::isImplThread());63 if (!s_compositorsLock)64 return 0;65 66 MutexLocker lock(*s_compositorsLock);67 if (!s_compositors)68 return 0;69 70 for (HashSet<WebCompositorImpl*>::iterator it = s_compositors->begin(); it != s_compositors->end(); ++it) {71 if ((*it)->identifier() == identifier)72 return *it;73 }74 return 0;75 }76 77 45 WebCompositorImpl::WebCompositorImpl() 78 46 : m_client(0) 79 , m_identifier(s_nextAvailableIdentifier++)80 47 { 81 ASSERT(CCProxy::isMainThread());82 if (!s_compositorsLock)83 s_compositorsLock = new Mutex;84 MutexLocker lock(*s_compositorsLock);85 if (!s_compositors)86 s_compositors = new HashSet<WebCompositorImpl*>;87 s_compositors->add(this);88 48 } 89 49 90 50 WebCompositorImpl::~WebCompositorImpl() 91 51 { 92 ASSERT(s_compositorsLock);93 MutexLocker lock(*s_compositorsLock);94 ASSERT(s_compositors);95 s_compositors->remove(this);96 if (!s_compositors->size()) {97 delete s_compositors;98 s_compositors = 0;99 }100 52 } 101 53 102 54 void WebCompositorImpl::setClient(WebCompositorClient* client) 103 55 { 104 ASSERT(CCProxy::isImplThread());105 56 ASSERT(client); 106 57 m_client = client; … … 109 60 void WebCompositorImpl::handleInputEvent(const WebInputEvent& event) 110 61 { 111 ASSERT(CCProxy::isImplThread());112 62 // FIXME: Do something interesting with the event here. 113 63 m_client->didHandleInputEvent(false); -
trunk/Source/WebKit/chromium/src/WebCompositorImpl.h
r96481 r96490 28 28 29 29 #include "WebCompositor.h" 30 31 #include <wtf/HashSet.h>32 30 #include <wtf/Noncopyable.h> 33 31 #include <wtf/PassOwnPtr.h> 34 35 namespace WTF {36 class Mutex;37 }38 32 39 33 namespace WebKit { … … 44 38 WTF_MAKE_NONCOPYABLE(WebCompositorImpl); 45 39 public: 46 static WebCompositor* fromIdentifier(int identifier);47 48 40 static PassOwnPtr<WebCompositorImpl> create() 49 41 { … … 56 48 virtual void handleInputEvent(const WebInputEvent&); 57 49 58 int identifier() const { return m_identifier; }59 60 50 private: 61 51 WebCompositorImpl(); 62 52 63 53 WebCompositorClient* m_client; 64 int m_identifier;65 66 static HashSet<WebCompositorImpl*>* s_compositors;67 static Mutex* s_compositorsLock;68 69 static int s_nextAvailableIdentifier;70 54 }; 71 55 -
trunk/Source/WebKit/chromium/src/WebViewImpl.cpp
r96481 r96490 104 104 #include "WebAccessibilityObject.h" 105 105 #include "WebAutofillClient.h" 106 #include "WebCompositorImpl.h"107 106 #include "WebDevToolsAgentImpl.h" 108 107 #include "WebDevToolsAgentPrivate.h" … … 2647 2646 m_layerTreeHost->finishAllRendering(); 2648 2647 m_client->didActivateAcceleratedCompositing(false); 2649 m_client->didDeactivateCompositor();2650 2648 } else if (m_layerTreeHost) { 2651 2649 m_isAcceleratedCompositingActive = true; … … 2653 2651 2654 2652 m_client->didActivateAcceleratedCompositing(true); 2655 m_client->didActivateCompositor(m_webCompositorImpl->identifier());2656 2653 } else { 2657 2654 TRACE_EVENT("WebViewImpl::setIsAcceleratedCompositingActive(true)", this, 0); … … 2671 2668 m_layerTreeHost = CCLayerTreeHost::create(this, m_nonCompositedContentHost->topLevelRootLayer()->platformLayer(), ccSettings); 2672 2669 if (m_layerTreeHost) { 2673 m_webCompositorImpl = WebCompositorImpl::create();2674 // FIXME: Hook the m_webCompositorImpl up with the CCLayerTreeHost somehow.2675 2670 updateLayerTreeViewport(); 2676 2671 m_client->didActivateAcceleratedCompositing(true); 2677 m_client->didActivateCompositor(m_webCompositorImpl->identifier());2678 2672 m_isAcceleratedCompositingActive = true; 2679 2673 m_compositorCreationFailed = false; … … 2683 2677 m_isAcceleratedCompositingActive = false; 2684 2678 m_client->didActivateAcceleratedCompositing(false); 2685 m_client->didDeactivateCompositor();2686 2679 m_compositorCreationFailed = true; 2687 2680 } -
trunk/Source/WebKit/chromium/src/WebViewImpl.h
r96481 r96490 83 83 class SpeechInputClientImpl; 84 84 class WebAccessibilityObject; 85 class WebCompositorImpl;86 85 class WebDevToolsAgentClient; 87 86 class WebDevToolsAgentPrivate; … … 577 576 OwnPtr<WebCore::NonCompositedContentHost> m_nonCompositedContentHost; 578 577 RefPtr<WebCore::CCLayerTreeHost> m_layerTreeHost; 579 OwnPtr<WebCompositorImpl> m_webCompositorImpl;580 578 WebCore::GraphicsLayer* m_rootGraphicsLayer; 581 579 bool m_isAcceleratedCompositingActive; -
trunk/Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp
r96481 r96490 118 118 bool success = initialize(); 119 119 ASSERT(success); 120 UNUSED_PARAM(success);121 120 } 122 121
Note: See TracChangeset
for help on using the changeset viewer.