Bug 93400

Summary: Improve RenderObject.h compile time - split CachedImage and CachedImageClient
Product: WebKit Reporter: nbhargava
Component: New BugsAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: cmarcelo, dglazkov, dino, eric, gustavo, japhet, macpherson, menard, philn, webkit.review.bot, xan.lopez
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
none
Patch for landing
none
Patch for landing
none
Patch for landing
none
Patch for landing
none
Patch for landing
none
Patch for landing none

Description nbhargava 2012-08-07 14:57:26 PDT
Improve RenderObject.h compile time - split CachedImage and CachedImageClient
Comment 1 nbhargava 2012-08-07 15:00:31 PDT
Created attachment 157016 [details]
Patch
Comment 2 Eric Seidel (no email) 2012-08-07 15:12:22 PDT
Comment on attachment 157016 [details]
Patch

HOT DAMN!  I look forward to more of these!
Comment 3 nbhargava 2012-08-07 15:31:48 PDT
Created attachment 157021 [details]
Patch for landing
Comment 4 WebKit Review Bot 2012-08-07 15:52:43 PDT
Comment on attachment 157021 [details]
Patch for landing

Attachment 157021 [details] did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13453383
Comment 5 nbhargava 2012-08-07 16:03:33 PDT
Created attachment 157033 [details]
Patch for landing
Comment 6 WebKit Review Bot 2012-08-07 16:08:16 PDT
Attachment 157033 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebCore/ChangeLog', u'Source/WebCor..." exit_code: 1
Source/WebCore/css/CSSImageSetValue.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 7 Nico Weber 2012-08-07 16:52:17 PDT
Comment on attachment 157033 [details]
Patch for landing

cq- for

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebCore/ChangeLog', u'Source/WebCor..." exit_code: 1
Source/WebCore/css/CSSImageSetValue.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 15 files

Easy to fix at least.
Comment 8 nbhargava 2012-08-07 16:55:13 PDT
Created attachment 157045 [details]
Patch for landing
Comment 9 nbhargava 2012-08-07 16:57:21 PDT
Created attachment 157046 [details]
Patch for landing
Comment 10 Build Bot 2012-08-07 17:31:12 PDT
Comment on attachment 157046 [details]
Patch for landing

Attachment 157046 [details] did not pass win-ews (win):
Output: http://queues.webkit.org/results/13459013
Comment 11 nbhargava 2012-08-07 17:32:51 PDT
Created attachment 157054 [details]
Patch for landing
Comment 12 Early Warning System Bot 2012-08-07 18:29:12 PDT
Comment on attachment 157054 [details]
Patch for landing

Attachment 157054 [details] did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13448791
Comment 13 Early Warning System Bot 2012-08-07 18:36:45 PDT
Comment on attachment 157054 [details]
Patch for landing

Attachment 157054 [details] did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13451616
Comment 14 nbhargava 2012-08-08 09:33:48 PDT
Created attachment 157237 [details]
Patch for landing
Comment 15 WebKit Review Bot 2012-08-08 10:54:44 PDT
Comment on attachment 157237 [details]
Patch for landing

Clearing flags on attachment: 157237

Committed r125051: <http://trac.webkit.org/changeset/125051>
Comment 16 WebKit Review Bot 2012-08-08 10:54:50 PDT
All reviewed patches have been landed.  Closing bug.
Comment 17 Dean Jackson 2012-08-08 11:35:33 PDT
This broke the Mac builds.


CompileC "/Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore~obj/WebCore.build/WebCore.build/Objects-normal/i386/ClipboardMac.o" platform/mac/ClipboardMac.mm normal i386 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler
    cd /Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore
    setenv LANG en_US.US-ASCII
    /usr/bin/clang -x objective-c++ -arch i386 -fmessage-length=0 -fdiagnostics-print-source-range-info -fdiagnostics-show-category=id -fdiagnostics-parseable-fixits -stdlib=libc++ -fobjc-gc -Wno-trigraphs -fno-exceptions -fno-rtti -fpascal-strings -O2 -Werror -Wmissing-prototypes -Wno-return-type -Wnon-virtual-dtor -Wparentheses -Wswitch -Wno-unused-parameter -Wno-unused-variable -Wunused-value -Wsign-compare -Wno-shorten-64-to-32 -Wnewline-eof -Wno-arc-abi -Wno-c++0x-extensions -DNDEBUG -DENABLE_3D_RENDERING -DENABLE_BLOB -DENABLE_CHANNEL_MESSAGING -DENABLE_CSS_BOX_DECORATION_BREAK -DENABLE_CSS_EXCLUSIONS -DENABLE_CSS_FILTERS -DENABLE_CSS_REGIONS -DENABLE_CSS_SHADERS -DENABLE_CSS_STICKY_POSITION -DENABLE_CSS3_FLEXBOX -DENABLE_DASHBOARD_SUPPORT -DENABLE_DETAILS_ELEMENT -DENABLE_FILTERS -DENABLE_FULLSCREEN_API -DENABLE_GEOLOCATION -DENABLE_HIGH_DPI_CANVAS -DENABLE_ICONDATABASE -DENABLE_IFRAME_SEAMLESS -DENABLE_JAVASCRIPT_DEBUGGER -DENABLE_LEGACY_CSS_VENDOR_PREFIXES -DENABLE_MATHML -DENABLE_METER_ELEMENT -DENABLE_MUTATION_OBSERVERS -DENABLE_PROGRESS_ELEMENT -DENABLE_REQUEST_ANIMATION_FRAME -DENABLE_SHARED_WORKERS -DENABLE_SQL_DATABASE -DENABLE_SVG -DENABLE_SVG_DOM_OBJC_BINDINGS -DENABLE_SVG_FONTS -DENABLE_TEXT_NOTIFICATIONS_ONLY -DENABLE_VIDEO -DENABLE_VIDEO_TRACK -DENABLE_WEBGL -DENABLE_WEB_AUDIO -DENABLE_WEB_SOCKETS -DENABLE_WIDGET_REGION -DENABLE_WORKERS -DENABLE_XSLT -DWEBKIT_VERSION_MIN_REQUIRED=WEBKIT_VERSION_LATEST -fasm-blocks -Wno-deprecated-declarations -mmacosx-version-min=10.7 -gdwarf-2 -fvisibility-inlines-hidden -fno-threadsafe-statics -Wno-sign-conversion "-DIBOutlet=__attribute__((iboutlet))" "-DIBOutletCollection(ClassName)=__attribute__((iboutletcollection(ClassName)))" "-DIBAction=void)__attribute__((ibaction)" "-I/Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore~obj/WebCore.build/WebCore.build/WebCore.hmap" "-I/Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore~sym/BuiltProducts/include" -I/Volumes/Data/slave/lion-production-archive/build/build-Production/SafariRoot/usr/local/include -IForwardingHeaders -Iicu -I/usr/include/libxslt -I/usr/include/libxml2 "-I/Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore~sym/BuiltProducts/DerivedSources/WebCore" "-I/Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore~sym/BuiltProducts/usr/local/include" "-I/Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore~obj/WebCore.build/WebCore.build/DerivedSources/i386" "-I/Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore~obj/WebCore.build/WebCore.build/DerivedSources" -Wall -Wextra -Wcast-qual -Wchar-subscripts -Wextra-tokens -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wpacked -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings -Wshorten-64-to-32 -Wexit-time-destructors -Wglobal-constructors -Wtautological-compare "-F/Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore~sym/BuiltProducts" -F/Volumes/Data/slave/lion-production-archive/build/build-Production/SafariRoot/System/Library/Frameworks -F/Volumes/Data/slave/lion-production-archive/build/build-Production/SafariRoot/System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks -F/Volumes/Data/slave/lion-production-archive/build/build-Production/SafariRoot/System/Library/PrivateFrameworks -F/System/Library/Frameworks/Carbon.framework/Frameworks -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks -F/System/Library/Frameworks/CoreServices.framework/Frameworks -F/System/Library/PrivateFrameworks -isystem/Volumes/Data/slave/lion-production-archive/build/build-Production/builditSharedHdrDstroot/usr/include -isystem/Volumes/Data/slave/lion-production-archive/build/build-Production/builditSharedHdrDstroot/usr/lib/include -isystem/Volumes/Data/slave/lion-production-archive/build/build-Production/builditSharedHdrDstroot/usr/local/include -isystem/Volumes/Data/slave/lion-production-archive/build/build-Production/builditSharedHdrDstroot/usr/local/lib/include -include "/Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore~obj/Caches/SharedPrecompiledHeaders/WebCorePrefix-gcddgdqzvhfuuaduweovpratnmht/WebCorePrefix.h" -MMD -MT dependencies -MF "/Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore~obj/WebCore.build/WebCore.build/Objects-normal/i386/ClipboardMac.d" -c /Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore/platform/mac/ClipboardMac.mm -o "/Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore~obj/WebCore.build/WebCore.build/Objects-normal/i386/ClipboardMac.o"
In file included from /Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore/platform/mac/ClipboardMac.mm:27:
/Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore/platform/mac/ClipboardMac.h:40:47:{40:40-40:64}: error: base class has incomplete type [2]
 class ClipboardMac : public Clipboard, public CachedImageClient {
                                        ~~~~~~~^~~~~~~~~~~~~~~~~
/Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore/svg/graphics/SVGImageCache.h:34:7: note: forward declaration of 'WebCore::CachedImageClient'
 class CachedImageClient;
       ^
/Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore/platform/mac/ClipboardMac.mm:345:39:{345:39-345:43}: error: cannot initialize a parameter of type 'WebCore::CachedResourceClient *' with an rvalue of type 'WebCore::ClipboardMac *' [2]
             m_dragImage->removeClient(this);
                                       ^~~~
/Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore/loader/cache/CachedResource.h:117:44: note: passing argument to parameter here [2]
     void removeClient(CachedResourceClient*);
                                            ^
/Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore/platform/mac/ClipboardMac.mm:348:36:{348:36-348:40}: error: cannot initialize a parameter of type 'WebCore::CachedResourceClient *' with an rvalue of type 'WebCore::ClipboardMac *' [2]
             m_dragImage->addClient(this);
                                    ^~~~
/Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore/loader/cache/CachedResource.h:116:41: note: passing argument to parameter here [2]
     void addClient(CachedResourceClient*);
                                         ^
In file included from /Volumes/Data/slave/lion-production-archive/build/build-Production/SafariRoot/usr/local/include/wtf/RefPtr.h:28:
In file included from /Volumes/Data/slave/lion-production-archive/build/build-Production/SafariRoot/usr/local/include/wtf/VectorTraits.h:25:
In file included from /Volumes/Data/slave/lion-production-archive/build/build-Production/SafariRoot/usr/local/include/wtf/Vector.h:30:
In file included from /Volumes/Data/slave/lion-production-archive/build/build-Production/SafariRoot/usr/local/include/wtf/text/StringImpl.h:31:
In file included from /Volumes/Data/slave/lion-production-archive/build/build-Production/SafariRoot/usr/local/include/wtf/text/WTFString.h:29:
In file included from /Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore/platform/text/PlatformString.h:28:
In file included from /Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore/loader/cache/CachedResource.h:28:
In file included from /Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore/loader/cache/CachedImage.h:26:
In file included from /Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore/platform/mac/ClipboardMac.h:29:
In file included from /Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore/platform/mac/ClipboardMac.mm:27:
/Volumes/Data/slave/lion-production-archive/build/build-Production/SafariRoot/usr/local/include/wtf/PassRefPtr.h:65:67:{65:73-65:84}: error: cannot initialize a member subobject of type 'WebCore::Clipboard *' with an rvalue of type 'WebCore::ClipboardMac *' [2]
         template<typename U> PassRefPtr(const PassRefPtr<U>& o) : m_ptr(o.leakRef()) { }
                                                                   ^     ~~~~~~~~~~~
/Volumes/Data/slave/lion-production-archive/build/build-Production/WebCore.roots/WebCore/platform/mac/ClipboardMac.mm:52:12: note: in instantiation of function template specialization 'WTF::PassRefPtr<WebCore::Clipboard>::PassRefPtr<WebCore::ClipboardMac>' requested here [2]
     return ClipboardMac::create(DragAndDrop, dragData->pasteboardName(), policy, dragData->containsFiles() ? ClipboardMac::DragAndDropFiles : ClipboardMac::DragAndDropData, frame);
            ^
4 errors generated.
Comment 18 Dean Jackson 2012-08-08 11:36:59 PDT
http://trac.webkit.org/changeset/125057
Comment 19 Dean Jackson 2012-08-08 11:57:11 PDT
And http://trac.webkit.org/changeset/125063
Comment 20 Dean Jackson 2012-08-08 12:34:41 PDT
And one more http://trac.webkit.org/changeset/125074
Comment 21 Eric Seidel (no email) 2012-08-08 12:36:59 PDT
Thanks Dean!
Comment 22 Eric Seidel (no email) 2012-08-08 12:37:41 PDT
Sadly the mac-ews is veeeery behind atm.  We should ask Lucas to turn off running tests until he gets more hardware. :)