Changeset 61444 in webkit


Ignore:
Timestamp:
Jun 18, 2010 3:08:45 PM (14 years ago)
Author:
andersca@apple.com
Message:

2010-06-18 Anders Carlsson <andersca@apple.com>

Reviewed by Darin Adler.

Get rid of PluginDataMac.mm and use the plug-in strategy instead
https://bugs.webkit.org/show_bug.cgi?id=40860

  • Plugins/WebBasePluginPackage.h:
  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm: (WebPlatformStrategies::createPluginStrategy): (WebPlatformStrategies::refreshPlugins): (WebPlatformStrategies::getPluginInfo):
  • WebCoreSupport/WebViewFactory.mm:

2010-06-18 Anders Carlsson <andersca@apple.com>

Reviewed by Darin Adler.

Get rid of PluginDataMac.mm and use the plug-in strategy instead
https://bugs.webkit.org/show_bug.cgi?id=40860

  • WebCore.xcodeproj/project.pbxproj:
  • page/mac/WebCoreViewFactory.h:
  • plugins/PluginData.cpp: (WebCore::PluginData::refresh): (WebCore::PluginData::initPlugins):
  • plugins/PluginStrategy.h:
  • plugins/mac/PluginDataMac.mm: Removed.
Location:
trunk
Files:
1 deleted
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r61441 r61444  
     12010-06-18  Anders Carlsson  <andersca@apple.com>
     2
     3        Reviewed by Darin Adler.
     4
     5        Get rid of PluginDataMac.mm and use the plug-in strategy instead
     6        https://bugs.webkit.org/show_bug.cgi?id=40860
     7
     8        * WebCore.xcodeproj/project.pbxproj:
     9        * page/mac/WebCoreViewFactory.h:
     10        * plugins/PluginData.cpp:
     11        (WebCore::PluginData::refresh):
     12        (WebCore::PluginData::initPlugins):
     13        * plugins/PluginStrategy.h:
     14        * plugins/mac/PluginDataMac.mm: Removed.
     15
    1162010-06-18  Anders Carlsson  <andersca@apple.com>
    217
  • trunk/WebCore/WebCore.xcodeproj/project.pbxproj

    r61429 r61444  
    34613461                A9C6E4F30D745E48006442E9 /* PluginData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9C6E4F10D745E48006442E9 /* PluginData.cpp */; };
    34623462                A9C6E4F40D745E48006442E9 /* PluginData.h in Headers */ = {isa = PBXBuildFile; fileRef = A9C6E4F20D745E48006442E9 /* PluginData.h */; settings = {ATTRIBUTES = (Private, ); }; };
    3463                 A9C6E4F60D745E61006442E9 /* PluginDataMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = A9C6E4F50D745E61006442E9 /* PluginDataMac.mm */; };
    34643463                A9C6E5A50D746458006442E9 /* Navigator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9C6E5A30D746458006442E9 /* Navigator.cpp */; };
    34653464                A9C6E5A60D746458006442E9 /* Navigator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9C6E5A40D746458006442E9 /* Navigator.h */; };
     
    87958794                A9C6E4F10D745E48006442E9 /* PluginData.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = PluginData.cpp; sourceTree = "<group>"; };
    87968795                A9C6E4F20D745E48006442E9 /* PluginData.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PluginData.h; sourceTree = "<group>"; };
    8797                 A9C6E4F50D745E61006442E9 /* PluginDataMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; name = PluginDataMac.mm; path = mac/PluginDataMac.mm; sourceTree = "<group>"; };
    87988796                A9C6E5A30D746458006442E9 /* Navigator.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Navigator.cpp; sourceTree = "<group>"; };
    87998797                A9C6E5A40D746458006442E9 /* Navigator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Navigator.h; sourceTree = "<group>"; };
     
    1182411822                                A9C6E4F10D745E48006442E9 /* PluginData.cpp */,
    1182511823                                A9C6E4F20D745E48006442E9 /* PluginData.h */,
    11826                                 A9C6E4F50D745E61006442E9 /* PluginDataMac.mm */,
    1182711824                                1ADA140E0E1AE5D900023EE5 /* PluginMainThreadScheduler.cpp */,
    1182811825                                1ADA140F0E1AE5D900023EE5 /* PluginMainThreadScheduler.h */,
     
    2113721134                                A9C6E4EF0D745E38006442E9 /* PluginArray.cpp in Sources */,
    2113821135                                A9C6E4F30D745E48006442E9 /* PluginData.cpp in Sources */,
    21139                                 A9C6E4F60D745E61006442E9 /* PluginDataMac.mm in Sources */,
    2114021136                                1AC694C70A3B1676003F5049 /* PluginDocument.cpp in Sources */,
    2114121137                                7693BAD3106C2DCA007B0823 /* PluginHalter.cpp in Sources */,
  • trunk/WebCore/page/mac/WebCoreViewFactory.h

    r57095 r61444  
    2828
    2929@protocol WebCoreViewFactory
    30 
    31 - (NSArray *)pluginsInfo; // array of id <WebCorePluginInfo>
    32 - (void)refreshPlugins;
    3330
    3431- (NSString *)inputElementAltText;
     
    172169@interface WebCoreViewFactory (SubclassResponsibility) <WebCoreViewFactory>
    173170@end
    174 
    175 @protocol WebCorePluginInfo <NSObject>
    176 - (NSString *)name;
    177 - (NSString *)filename;
    178 - (NSString *)pluginDescription;
    179 - (NSEnumerator *)MIMETypeEnumerator;
    180 - (NSString *)descriptionForMIMEType:(NSString *)MIMEType;
    181 - (NSArray *)extensionsForMIMEType:(NSString *)MIMEType;
    182 @end
    183 
  • trunk/WebCore/plugins/PluginData.cpp

    r61429 r61444  
    2525#include "PluginData.h"
    2626
     27#if USE(PLATFORM_STRATEGIES)
    2728#include "PlatformStrategies.h"
    2829#include "PluginStrategy.h"
     30#endif
    2931
    3032namespace WebCore {
     
    6466}
    6567
     68#if USE(PLATFORM_STRATEGIES)
     69void PluginData::refresh()
     70{
     71    platformStrategies()->pluginStrategy()->refreshPlugins();
    6672}
     73
     74void PluginData::initPlugins()
     75{
     76    ASSERT(m_plugins.isEmpty());
     77   
     78    platformStrategies()->pluginStrategy()->getPluginInfo(m_plugins);
     79}
     80#endif
     81
     82}
  • trunk/WebCore/plugins/PluginStrategy.h

    r61429 r61444  
    3838    virtual void getPluginInfo(Vector<PluginInfo>&) = 0;
    3939
    40 private:
     40protected:
    4141    virtual ~PluginStrategy() { }
    4242};
  • trunk/WebKit/mac/ChangeLog

    r61438 r61444  
     12010-06-18  Anders Carlsson  <andersca@apple.com>
     2
     3        Reviewed by Darin Adler.
     4
     5        Get rid of PluginDataMac.mm and use the plug-in strategy instead
     6        https://bugs.webkit.org/show_bug.cgi?id=40860
     7
     8        * Plugins/WebBasePluginPackage.h:
     9        * WebCoreSupport/WebPlatformStrategies.h:
     10        * WebCoreSupport/WebPlatformStrategies.mm:
     11        (WebPlatformStrategies::createPluginStrategy):
     12        (WebPlatformStrategies::refreshPlugins):
     13        (WebPlatformStrategies::getPluginInfo):
     14        * WebCoreSupport/WebViewFactory.mm:
     15
    1162010-06-18  Anders Carlsson  <andersca@apple.com>
    217
  • trunk/WebKit/mac/Plugins/WebBasePluginPackage.h

    r31925 r61444  
    5353#define WebPluginTypeEnabledKey         @"WebPluginTypeEnabled"
    5454
    55 @interface WebBasePluginPackage : NSObject <WebCorePluginInfo>
     55@interface WebBasePluginPackage : NSObject
    5656{
    5757    NSMutableSet *pluginDatabases;
  • trunk/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h

    r61438 r61444  
    2828
    2929#include <WebCore/PlatformStrategies.h>
     30#include <WebCore/PluginStrategy.h>
    3031
    31 class WebPlatformStrategies : public WebCore::PlatformStrategies {
     32class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore::PluginStrategy {
    3233public:
    3334    static void initialize();
     
    3940    virtual WebCore::PluginStrategy* createPluginStrategy();
    4041
     42    // WebCore::PluginStrategy
     43    virtual void refreshPlugins();
     44    virtual void getPluginInfo(Vector<WebCore::PluginInfo>&);
    4145};
    4246
  • trunk/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm

    r61438 r61444  
    2626#import "WebPlatformStrategies.h"
    2727
     28#import "WebPluginDatabase.h"
     29#import "WebPluginPackage.h"
     30#import <WebCore/BlockExceptions.h>
    2831#import <wtf/StdLibExtras.h>
    2932
     
    4043}
    4144
     45// PluginStrategy
     46
    4247PluginStrategy* WebPlatformStrategies::createPluginStrategy()
    4348{
    44     return 0;
     49    return this;
    4550}
     51
     52void WebPlatformStrategies::refreshPlugins()
     53{
     54    [[WebPluginDatabase sharedDatabase] refresh];
     55}
     56
     57void WebPlatformStrategies::getPluginInfo(Vector<WebCore::PluginInfo>& plugins)
     58{
     59    BEGIN_BLOCK_OBJC_EXCEPTIONS;
     60
     61    NSArray* pluginsArray = [[WebPluginDatabase sharedDatabase] plugins];
     62    for (unsigned int i = 0; i < [pluginsArray count]; ++i) {
     63        PluginInfo pluginInfo;
     64
     65        WebPluginPackage *plugin = [pluginsArray objectAtIndex:i];
     66   
     67        pluginInfo.name = [plugin name];
     68        pluginInfo.file = [plugin filename];
     69        pluginInfo.desc = [plugin pluginDescription];
     70
     71        NSEnumerator* MIMETypeEnumerator = [plugin MIMETypeEnumerator];
     72        while (NSString* MIME = [MIMETypeEnumerator nextObject]) {
     73            MimeClassInfo mime;
     74
     75            mime.type = String(MIME).lower();
     76           
     77            NSArray *extensions = [plugin extensionsForMIMEType:MIME];
     78            for (NSUInteger i = 0; i < [extensions count]; ++i) {
     79                NSString *extension = [extensions objectAtIndex:i];
     80                mime.extensions.append(extension);
     81            }
     82
     83            mime.desc = [plugin descriptionForMIMEType:MIME];
     84           
     85            pluginInfo.mimes.append(mime);
     86        }
     87
     88        plugins.append(pluginInfo);
     89    }
     90   
     91    END_BLOCK_OBJC_EXCEPTIONS;
     92}
     93
     94
  • trunk/WebKit/mac/WebCoreSupport/WebViewFactory.mm

    r57095 r61444  
    3636#import <WebKit/WebNSObjectExtras.h>
    3737#import <WebKit/WebNSViewExtras.h>
    38 #import <WebKit/WebPluginDatabase.h>
    3938#import <WebKitSystemInterface.h>
    4039#import <wtf/Assertions.h>
     
    6463    }
    6564    ASSERT([[self sharedFactory] isKindOfClass:self]);
    66 }
    67 
    68 - (NSArray *)pluginsInfo
    69 {
    70     return [[WebPluginDatabase sharedDatabase] plugins];
    71 }
    72 
    73 - (void)refreshPlugins
    74 {
    75     [[WebPluginDatabase sharedDatabase] refresh];
    7665}
    7766
Note: See TracChangeset for help on using the changeset viewer.