Changeset 165789 in webkit
- Timestamp:
- Mar 17, 2014, 6:52:15 PM (11 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r165777 r165789 1 2014-03-17 Anders Carlsson <andersca@apple.com> 2 3 Update the bundle parameters dictionary and send out KVO notifications 4 https://bugs.webkit.org/show_bug.cgi?id=130379 5 <rdar://problem/16213914> 6 7 Reviewed by Dan Bernstein. 8 9 * UIProcess/API/Cocoa/WKProcessPool.mm: 10 (-[WKProcessPool _setObject:forBundleParameter:]): 11 * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.h: 12 * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.mm: 13 (-[WKWebProcessBundleParameters setParameter:forKey:]): 14 * WebProcess/InjectedBundle/InjectedBundle.h: 15 * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm: 16 (WebKit::InjectedBundle::setBundleParameter): 17 * WebProcess/WebProcess.cpp: 18 (WebKit::WebProcess::setInjectedBundleParameter): 19 * WebProcess/WebProcess.h: 20 * WebProcess/WebProcess.messages.in: 21 1 22 2014-03-17 Tim Horton <timothy_horton@apple.com> 2 23 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPool.mm
r165660 r165789 37 37 #import "WebContext.h" 38 38 #import "WebCookieManagerProxy.h" 39 #import "WebProcessMessages.h" 39 40 #import <WebCore/CertificateInfo.h> 40 41 #import <wtf/RetainPtr.h> … … 50 51 NSHTTPCookieAcceptPolicyExclusivelyFromMainDocumentDomain = 3, 51 52 }; 53 #endif 54 55 #if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED == 1080 56 @interface NSKeyedArchiver (WKDetails) 57 - (void)setRequiresSecureCoding:(BOOL)b; 58 @end 52 59 #endif 53 60 … … 150 157 - (void)_setObject:(id <NSCopying, NSSecureCoding>)object forBundleParameter:(NSString *)parameter 151 158 { 152 [_context->ensureBundleParameters() setObject:adoptNS([(NSObject *)object copy]).get() forKey:parameter]; 159 auto copy = adoptNS([(NSObject *)object copy]); 160 161 auto data = adoptNS([[NSMutableData alloc] init]); 162 auto keyedArchiver = adoptNS([[NSKeyedArchiver alloc] initForWritingWithMutableData:data.get()]); 163 [keyedArchiver setRequiresSecureCoding:YES]; 164 165 @try { 166 [keyedArchiver encodeObject:copy.get() forKey:@"parameter"]; 167 [keyedArchiver finishEncoding]; 168 } @catch (NSException *exception) { 169 LOG_ERROR("Failed to encode bundle parameter: %@", exception); 170 } 171 172 [_context->ensureBundleParameters() setObject:copy.get() forKey:parameter]; 173 _context->sendToAllProcesses(Messages::WebProcess::SetInjectedBundleParameter(parameter, IPC::DataReference(static_cast<const uint8_t*>([data bytes]), [data length]))); 153 174 } 154 175 -
trunk/Source/WebKit2/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.h
r165766 r165789 32 32 - (instancetype)initWithDictionary:(NSDictionary *)dictionary; 33 33 34 - (void)setParameter:(id)parameter forKey:(NSString *)key; 35 34 36 @end 35 37 -
trunk/Source/WebKit2/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.mm
r165762 r165789 50 50 } 51 51 52 - (void)setParameter:(id)parameter forKey:(NSString *)key 53 { 54 [self willChangeValueForKey:key]; 55 [_parameters setValue:parameter forKey:key]; 56 [self didChangeValueForKey:key]; 57 } 58 52 59 @end 53 60 -
trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.h
r165762 r165789 59 59 class ArgumentDecoder; 60 60 class Connection; 61 class DataReference; 61 62 } 62 63 … … 89 90 bool load(API::Object* initializationUserData); 90 91 void setSandboxExtension(PassRefPtr<SandboxExtension> sandboxExtension) { m_sandboxExtension = sandboxExtension; } 92 93 void setBundleParameter(const String& key, const IPC::DataReference&); 91 94 92 95 // API -
trunk/Source/WebKit2/WebProcess/InjectedBundle/mac/InjectedBundleMac.mm
r165762 r165789 144 144 #endif 145 145 146 void InjectedBundle::setBundleParameter(const String& key, const IPC::DataReference& value) 147 { 148 #if WK_API_ENABLED 149 auto bundleParameterData = adoptNS([[NSData alloc] initWithBytesNoCopy:const_cast<void*>(static_cast<const void*>(value.data())) length:value.size() freeWhenDone:NO]); 150 151 auto unarchiver = adoptNS([[NSKeyedUnarchiver alloc] initForReadingWithData:bundleParameterData.get()]); 152 [unarchiver setRequiresSecureCoding:YES]; 153 154 id parameter = nil; 155 @try { 156 parameter = [unarchiver decodeObjectForKey:@"parameter"]; 157 } @catch (NSException *exception) { 158 LOG_ERROR("Failed to decode bundle parameter: %@", exception); 159 } 160 161 [m_bundleParameters setParameter:parameter forKey:key]; 162 #endif 163 } 164 165 146 166 void InjectedBundle::platformInitialize(const WebProcessCreationParameters& parameters) 147 167 { -
trunk/Source/WebKit2/WebProcess/WebProcess.cpp
r165755 r165789 949 949 } 950 950 951 void WebProcess::setInjectedBundleParameter(const String& key, const IPC::DataReference& value) 952 { 953 InjectedBundle* injectedBundle = WebProcess::shared().injectedBundle(); 954 if (!injectedBundle) 955 return; 956 957 injectedBundle->setBundleParameter(key, value); 958 } 959 951 960 bool WebProcess::usesNetworkProcess() const 952 961 { -
trunk/Source/WebKit2/WebProcess/WebProcess.h
r165619 r165789 244 244 245 245 void postInjectedBundleMessage(const IPC::DataReference& messageData); 246 void setInjectedBundleParameter(const String& key, const IPC::DataReference&); 246 247 247 248 // ChildProcess -
trunk/Source/WebKit2/WebProcess/WebProcess.messages.in
r165619 r165789 74 74 SetJavaScriptGarbageCollectorTimerEnabled(bool enable) 75 75 76 SetInjectedBundleParameter(String parameter, IPC::DataReference value); 76 77 PostInjectedBundleMessage(IPC::DataReference messageData); 77 78
Note:
See TracChangeset
for help on using the changeset viewer.