Skip to content

Commit aa05310

Browse files
committed
[NEW] Implement WebScripting Protocol for YouTube and Flash Block Detector. Bump our Flash version from 10.0 r22 to 10.0 r45.
1 parent 918c07c commit aa05310

File tree

2 files changed

+72
-1
lines changed

2 files changed

+72
-1
lines changed

Plugin/Info-Plugin.plist

+3-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<string>http://rentzsch.github.com/clicktoflash/release_notes/appcast.xml</string>
3131
<!--<string>http://rentzsch.github.com/clicktoflash/release_notes/appcast_distantfuture.xml</string>-->
3232
<key>WebPluginDescription</key>
33-
<string>Shockwave Flash 10.0 r22</string>
33+
<string>Shockwave Flash 10.0 r45</string>
3434
<key>WebPluginMIMETypes</key>
3535
<dict>
3636
<key>application/x-shockwave-flash</key>
@@ -45,5 +45,7 @@
4545
</dict>
4646
<key>WebPluginName</key>
4747
<string>Shockwave Flash</string>
48+
<key>CTFFlashVariableVersion</key>
49+
<string>MAC 10,0,45,2</string>
4850
</dict>
4951
</plist>

Plugin/Plugin.m

+69
Original file line numberDiff line numberDiff line change
@@ -1126,6 +1126,75 @@ - (void) _removeTrackingAreaForCTF
11261126
}
11271127

11281128

1129+
#pragma mark -
1130+
#pragma mark WebScripting Protocol
1131+
1132+
- (id)objectForWebScript {
1133+
//NSLog(@"objectForWebScript => %@", self);
1134+
return self;
1135+
}
1136+
1137+
+ (NSString *)webScriptNameForSelector:(SEL)aSelector {
1138+
// javascript may call GetVariable("$version") on us
1139+
1140+
NSString *result = nil;
1141+
1142+
if (aSelector == @selector(flashGetVariable:))
1143+
result = @"GetVariable";
1144+
1145+
//NSLog(@"webScriptNameForSelector:%@ => %@", NSStringFromSelector(aSelector), result);
1146+
return result;
1147+
}
1148+
1149+
+ (BOOL)isSelectorExcludedFromWebScript:(SEL)aSelector {
1150+
BOOL result = YES;
1151+
1152+
if (aSelector == @selector(flashGetVariable:))
1153+
result = NO;
1154+
1155+
//NSLog(@"isSelectorExcludedFromWebScript:%@ => %d", NSStringFromSelector(aSelector), result);
1156+
return result;
1157+
}
1158+
1159+
- (id)flashGetVariable:(id)flashVar {
1160+
static NSString *sFlashVersion = nil;
1161+
static NSString *sClickToFlashVersion = nil;
1162+
1163+
//NSLog(@"flashVar: %p %@", flashVar, flashVar);
1164+
1165+
if (flashVar && [flashVar isKindOfClass:[NSString class]]) {
1166+
if ([flashVar isEqualToString:@"$version"]) {
1167+
if (sFlashVersion == nil) {
1168+
NSBundle *bundle = [NSBundle bundleForClass:[self class]];
1169+
if (bundle) {
1170+
id version = [bundle objectForInfoDictionaryKey:@"CTFFlashVariableVersion"];
1171+
if (version && [version isKindOfClass:[NSString class]]) {
1172+
sFlashVersion = [(NSString *)version copy];
1173+
}
1174+
}
1175+
}
1176+
1177+
return sFlashVersion;
1178+
} else if ([flashVar isEqualToString:@"$ClickToFlashVersion"]) {
1179+
if (sClickToFlashVersion == nil) {
1180+
NSBundle *bundle = [NSBundle bundleForClass:[self class]];
1181+
if (bundle) {
1182+
id version = [bundle objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
1183+
if (version && [version isKindOfClass:[NSString class]]) {
1184+
sClickToFlashVersion = [(NSString *)version copy];
1185+
}
1186+
}
1187+
}
1188+
1189+
return sClickToFlashVersion;
1190+
} else {
1191+
return [self flashvarWithName:flashVar];
1192+
}
1193+
}
1194+
1195+
return nil;
1196+
}
1197+
11291198
#pragma mark -
11301199
#pragma mark YouTube H.264 support
11311200

0 commit comments

Comments
 (0)