Changeset 190670 in webkit


Ignore:
Timestamp:
Oct 7, 2015, 9:39:49 AM (10 years ago)
Author:
andersca@apple.com
Message:

Expose the bundle parameter object on WKBundleRef
https://bugs.webkit.org/show_bug.cgi?id=149860

Reviewed by Tim Horton.

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.mm:

(-[WKWebProcessBundleParameters description]):
Add a description that includes the parameters.

  • WebProcess/InjectedBundle/API/c/mac/WKBundleMac.h:
  • WebProcess/InjectedBundle/API/c/mac/WKBundleMac.mm:

(WKBundleGetParameters):
Add getter.

  • WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:

(WebKit::InjectedBundle::initialize):
Make sure to decode the bundle parameters before calling out to the bundle.

Location:
trunk/Source/WebKit2
Files:
5 edited
2 copied

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r190660 r190670  
     12015-10-06  Anders Carlsson  <andersca@apple.com>
     2
     3        Expose the bundle parameter object on WKBundleRef
     4        https://bugs.webkit.org/show_bug.cgi?id=149860
     5
     6        Reviewed by Tim Horton.
     7
     8        * WebKit2.xcodeproj/project.pbxproj:
     9        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.mm:
     10        (-[WKWebProcessBundleParameters description]):
     11        Add a description that includes the parameters.
     12
     13        * WebProcess/InjectedBundle/API/c/mac/WKBundleMac.h:
     14        * WebProcess/InjectedBundle/API/c/mac/WKBundleMac.mm:
     15        (WKBundleGetParameters):
     16        Add getter.
     17
     18        * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
     19        (WebKit::InjectedBundle::initialize):
     20        Make sure to decode the bundle parameters before calling out to the bundle.
     21
    1222015-10-06  Michael Catanzaro  <mcatanzaro@igalia.com>
    223
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPoolPrivate.h

    r189547 r190670  
    4545- (id)_objectForBundleParameter:(NSString *)parameter;
    4646- (void)_setObject:(id <NSCopying, NSSecureCoding>)object forBundleParameter:(NSString *)parameter;
     47- (void)_setObjectsForBundleParametersWithDictionary:(NSDictionary *) WK_AVAILABLE(
    4748
    4849@property (nonatomic, weak, setter=_setDownloadDelegate:) id <_WKDownloadDelegate> _downloadDelegate;
  • trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj

    r190631 r190670  
    316316                1A81B38518BD673A0007FDAC /* _WKVisitedLinkStoreInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A81B38418BD673A0007FDAC /* _WKVisitedLinkStoreInternal.h */; };
    317317                1A8B66B01BC43C860082DF77 /* PageLoadStateObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A8B66AE1BC43C860082DF77 /* PageLoadStateObserver.h */; settings = {ASSET_TAGS = (); }; };
     318                1A8B66B31BC45B010082DF77 /* WKBundleMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A8B66B11BC45B010082DF77 /* WKBundleMac.mm */; settings = {ASSET_TAGS = (); }; };
     319                1A8B66B41BC45B010082DF77 /* WKBundleMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A8B66B21BC45B010082DF77 /* WKBundleMac.h */; settings = {ATTRIBUTES = (Private, ); }; };
    318320                1A8C728C1738477C000A6554 /* LocalStorageDatabaseTracker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A8C728A1738477C000A6554 /* LocalStorageDatabaseTracker.cpp */; };
    319321                1A8C728D1738477C000A6554 /* LocalStorageDatabaseTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A8C728B1738477C000A6554 /* LocalStorageDatabaseTracker.h */; };
     
    24222424                1A81B38418BD673A0007FDAC /* _WKVisitedLinkStoreInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKVisitedLinkStoreInternal.h; sourceTree = "<group>"; };
    24232425                1A8B66AE1BC43C860082DF77 /* PageLoadStateObserver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PageLoadStateObserver.h; sourceTree = "<group>"; };
     2426                1A8B66B11BC45B010082DF77 /* WKBundleMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKBundleMac.mm; sourceTree = "<group>"; };
     2427                1A8B66B21BC45B010082DF77 /* WKBundleMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBundleMac.h; sourceTree = "<group>"; };
    24242428                1A8C728A1738477C000A6554 /* LocalStorageDatabaseTracker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LocalStorageDatabaseTracker.cpp; sourceTree = "<group>"; };
    24252429                1A8C728B1738477C000A6554 /* LocalStorageDatabaseTracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocalStorageDatabaseTracker.h; sourceTree = "<group>"; };
     
    58715875                                7CF47FFD17276AE3008ACB91 /* WKBundlePageBannerMac.h */,
    58725876                                7CF47FFC17276AE3008ACB91 /* WKBundlePageBannerMac.mm */,
     5877                                1A8B66B11BC45B010082DF77 /* WKBundleMac.mm */,
     5878                                1A8B66B21BC45B010082DF77 /* WKBundleMac.h */,
    58735879                        );
    58745880                        path = mac;
     
    76427648                                C517388112DF8F4F00EE3F47 /* DragControllerAction.h in Headers */,
    76437649                                BC8452A81162C80900CAB9B5 /* DrawingArea.h in Headers */,
     7650                                1A8B66B41BC45B010082DF77 /* WKBundleMac.h in Headers */,
    76447651                                0FB659231208B4DB0044816C /* DrawingAreaInfo.h in Headers */,
    76457652                                1A64229A12DD029200CAAE2C /* DrawingAreaMessages.h in Headers */,
     
    97369743                                BCDE059C11CDA8AE00E41AF1 /* WebContextInjectedBundleClient.cpp in Sources */,
    97379744                                51871B5B127CB89D00F76232 /* WebContextMenu.cpp in Sources */,
     9745                                1A8B66B31BC45B010082DF77 /* WKBundleMac.mm in Sources */,
    97389746                                BC111A5B112F4FBB00337BAB /* WebContextMenuClient.cpp in Sources */,
    97399747                                51021E9C12B16788005C033C /* WebContextMenuClientMac.mm in Sources */,
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.mm

    r167573 r190670  
    4545}
    4646
     47- (NSString *)description
     48{
     49    return [NSString stringWithFormat:@"<%@: %p; parameters = %@>", NSStringFromClass(self.class), self, _parameters.get()];
     50}
     51
    4752- (NSString *)valueForKey:(NSString *)key
    4853{
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/mac/WKBundleMac.h

    r190669 r190670  
    11/*
    2  * Copyright (C) 2014 Apple Inc. All rights reserved.
     2 * Copyright (C) 2015 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2424 */
    2525
    26 #import "config.h"
    27 #import "WKWebProcessBundleParameters.h"
     26#ifndef WKBundleMac_h
     27#define WKBundleMac_h
    2828
    29 #if WK_API_ENABLED
     29#include <WebKit/WKBase.h>
    3030
    31 #import <wtf/RetainPtr.h>
     31#ifdef __cplusplus
     32extern "C" {
     33#endif
    3234
    33 @implementation WKWebProcessBundleParameters {
    34     RetainPtr<NSMutableDictionary> _parameters;
    35 }
     35#ifdef __OBJC__
    3636
    37 - (instancetype)initWithDictionary:(NSDictionary *)dictionary
    38 {
    39     if (!(self = [super init]))
    40         return nil;
    41 
    42     _parameters = adoptNS([[NSMutableDictionary alloc] initWithDictionary:dictionary]);
    43 
    44     return self;
    45 }
    46 
    47 - (NSString *)valueForKey:(NSString *)key
    48 {
    49     return [_parameters valueForKey:key];
    50 }
    51 
    52 - (void)setParameter:(id)parameter forKey:(NSString *)key
    53 {
    54     [self willChangeValueForKey:key];
    55     if (parameter)
    56         [_parameters setValue:parameter forKey:key];
    57     else
    58         [_parameters removeObjectForKey:key];
    59     [self didChangeValueForKey:key];
    60 }
    61 
    62 @end
     37WK_EXPORT id WKBundleGetParameters(WKBundleRef bundle);
    6338
    6439#endif
     40
     41#ifdef __cplusplus
     42}
     43#endif
     44
     45#endif // WKBundleMac_h
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/mac/WKBundleMac.mm

    r190669 r190670  
    11/*
    2  * Copyright (C) 2014 Apple Inc. All rights reserved.
     2 * Copyright (C) 2015 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2525
    2626#import "config.h"
    27 #import "WKWebProcessBundleParameters.h"
     27#import "WKBundleMac.h"
    2828
     29#import "InjectedBundle.h"
     30#import "WKBundleAPICast.h"
     31
     32id WKBundleGetParameters(WKBundleRef bundle)
     33{
    2934#if WK_API_ENABLED
    30 
    31 #import <wtf/RetainPtr.h>
    32 
    33 @implementation WKWebProcessBundleParameters {
    34     RetainPtr<NSMutableDictionary> _parameters;
     35    return WebKit::toImpl(bundle)->bundleParameters();
     36#else
     37    return nil;
     38#endif
    3539}
    36 
    37 - (instancetype)initWithDictionary:(NSDictionary *)dictionary
    38 {
    39     if (!(self = [super init]))
    40         return nil;
    41 
    42     _parameters = adoptNS([[NSMutableDictionary alloc] initWithDictionary:dictionary]);
    43 
    44     return self;
    45 }
    46 
    47 - (NSString *)valueForKey:(NSString *)key
    48 {
    49     return [_parameters valueForKey:key];
    50 }
    51 
    52 - (void)setParameter:(id)parameter forKey:(NSString *)key
    53 {
    54     [self willChangeValueForKey:key];
    55     if (parameter)
    56         [_parameters setValue:parameter forKey:key];
    57     else
    58         [_parameters removeObjectForKey:key];
    59     [self didChangeValueForKey:key];
    60 }
    61 
    62 @end
    63 
    64 #endif
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/mac/InjectedBundleMac.mm

    r186279 r190670  
    8282    }
    8383
    84     // First check to see if the bundle has a WKBundleInitialize function.
    85     WKBundleInitializeFunctionPtr initializeFunction = reinterpret_cast<WKBundleInitializeFunctionPtr>(CFBundleGetFunctionPointerForName([m_platformBundle _cfBundle], CFSTR("WKBundleInitialize")));
    86     if (initializeFunction) {
    87         initializeFunction(toAPI(this), toAPI(initializationUserData));
    88         return true;
    89     }
    90    
    9184#if WK_API_ENABLED
    9285    if (parameters.bundleParameterData) {
     
    10497        }
    10598
     99        ASSERT(!m_bundleParameters);
    106100        m_bundleParameters = adoptNS([[WKWebProcessBundleParameters alloc] initWithDictionary:dictionary]);
    107101    }
     102#endif
    108103
     104    // First check to see if the bundle has a WKBundleInitialize function.
     105    WKBundleInitializeFunctionPtr initializeFunction = reinterpret_cast<WKBundleInitializeFunctionPtr>(CFBundleGetFunctionPointerForName([m_platformBundle _cfBundle], CFSTR("WKBundleInitialize")));
     106    if (initializeFunction) {
     107        initializeFunction(toAPI(this), toAPI(initializationUserData));
     108        return true;
     109    }
     110
     111#if WK_API_ENABLED
    109112    // Otherwise, look to see if the bundle has a principal class
    110113    Class principalClass = [m_platformBundle principalClass];
Note: See TracChangeset for help on using the changeset viewer.