⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 webframe.mm

📁 linux下开源浏览器WebKit的源码,市面上的很多商用浏览器都是移植自WebKit
💻 MM
📖 第 1 页 / 共 4 页
字号:
    return _private->coreFrame->loader()->firstLayoutDone();}- (WebFrameLoadType)_loadType{    return (WebFrameLoadType)_private->coreFrame->loader()->loadType();}- (NSRange)_selectedNSRange{    return [self _convertToNSRange:_private->coreFrame->selection()->toNormalizedRange().get()];}- (void)_selectNSRange:(NSRange)range{    RefPtr<Range> domRange = [self _convertToDOMRange:range];    if (domRange)        _private->coreFrame->selection()->setSelection(VisibleSelection(domRange.get(), SEL_DEFAULT_AFFINITY));}- (BOOL)_isDisplayingStandaloneImage{    Document* document = _private->coreFrame->document();    return document && document->isImageDocument();}- (unsigned)_pendingFrameUnloadEventCount{    return _private->coreFrame->eventHandler()->pendingFrameUnloadEventCount();}- (WebIconFetcher *)fetchApplicationIcon:(id)target                                selector:(SEL)selector{    return [WebIconFetcher _fetchApplicationIconForFrame:self                                                  target:target                                                selector:selector];}- (void)_setIsDisconnected:(bool)isDisconnected{    _private->coreFrame->setIsDisconnected(isDisconnected);}- (void)_setExcludeFromTextSearch:(bool)exclude{    _private->coreFrame->setExcludeFromTextSearch(exclude);}#if ENABLE(NETSCAPE_PLUGIN_API)- (void)_recursive_resumeNullEventsForAllNetscapePlugins{    Frame* coreFrame = core(self);    for (Frame* frame = coreFrame; frame; frame = frame->tree()->traverseNext(coreFrame)) {        NSView <WebDocumentView> *documentView = [[kit(frame) frameView] documentView];        if ([documentView isKindOfClass:[WebHTMLView class]])            [(WebHTMLView *)documentView _resumeNullEventsForAllNetscapePlugins];    }}- (void)_recursive_pauseNullEventsForAllNetscapePlugins{    Frame* coreFrame = core(self);    for (Frame* frame = coreFrame; frame; frame = frame->tree()->traverseNext(coreFrame)) {        NSView <WebDocumentView> *documentView = [[kit(frame) frameView] documentView];        if ([documentView isKindOfClass:[WebHTMLView class]])            [(WebHTMLView *)documentView _pauseNullEventsForAllNetscapePlugins];    }}#endif- (BOOL)_pauseAnimation:(NSString*)name onNode:(DOMNode *)node atTime:(NSTimeInterval)time{    Frame* frame = core(self);    if (!frame)        return false;    AnimationController* controller = frame->animation();    if (!controller)        return false;    Node* coreNode = [node _node];    if (!coreNode || !coreNode->renderer())        return false;    return controller->pauseAnimationAtTime(coreNode->renderer(), name, time);}- (BOOL)_pauseTransitionOfProperty:(NSString*)name onNode:(DOMNode*)node atTime:(NSTimeInterval)time{    Frame* frame = core(self);    if (!frame)        return false;    AnimationController* controller = frame->animation();    if (!controller)        return false;    Node* coreNode = [node _node];    if (!coreNode || !coreNode->renderer())        return false;    return controller->pauseTransitionAtTime(coreNode->renderer(), name, time);}- (unsigned) _numberOfActiveAnimations{    Frame* frame = core(self);    if (!frame)        return false;    AnimationController* controller = frame->animation();    if (!controller)        return false;    return controller->numberOfActiveAnimations();}- (void)_replaceSelectionWithFragment:(DOMDocumentFragment *)fragment selectReplacement:(BOOL)selectReplacement smartReplace:(BOOL)smartReplace matchStyle:(BOOL)matchStyle{    if (_private->coreFrame->selection()->isNone() || !fragment)        return;        applyCommand(ReplaceSelectionCommand::create(_private->coreFrame->document(), [fragment _documentFragment], selectReplacement, smartReplace, matchStyle));    _private->coreFrame->revealSelection(ScrollAlignment::alignToEdgeIfNeeded);}- (void)_replaceSelectionWithText:(NSString *)text selectReplacement:(BOOL)selectReplacement smartReplace:(BOOL)smartReplace{       DOMDocumentFragment* fragment = kit(createFragmentFromText(_private->coreFrame->selection()->toNormalizedRange().get(), text).get());    [self _replaceSelectionWithFragment:fragment selectReplacement:selectReplacement smartReplace:smartReplace matchStyle:YES];}- (void)_replaceSelectionWithMarkupString:(NSString *)markupString baseURLString:(NSString *)baseURLString selectReplacement:(BOOL)selectReplacement smartReplace:(BOOL)smartReplace{    DOMDocumentFragment *fragment = [self _documentFragmentWithMarkupString:markupString baseURLString:baseURLString];    [self _replaceSelectionWithFragment:fragment selectReplacement:selectReplacement smartReplace:smartReplace matchStyle:NO];}@end@implementation WebFrame- (id)init{    return nil;}// Should be deprecated.- (id)initWithName:(NSString *)name webFrameView:(WebFrameView *)view webView:(WebView *)webView{    return nil;}- (void)dealloc{    [_private release];    --WebFrameCount;    [super dealloc];}- (void)finalize{    --WebFrameCount;    [super finalize];}- (NSString *)name{    Frame* coreFrame = _private->coreFrame;    if (!coreFrame)        return nil;    return coreFrame->tree()->name();}- (WebFrameView *)frameView{    return _private->webFrameView;}- (WebView *)webView{    return getWebView(self);}- (DOMDocument *)DOMDocument{    Frame* coreFrame = _private->coreFrame;    if (!coreFrame)        return nil;        // FIXME: <rdar://problem/5145841> When loading a custom view/representation     // into a web frame, the old document can still be around. This makes sure that    // we'll return nil in those cases.    if (![[self _dataSource] _isDocumentHTML])         return nil;     Document* document = coreFrame->document();        // According to the documentation, we should return nil if the frame doesn't have a document.    // While full-frame images and plugins do have an underlying HTML document, we return nil here to be    // backwards compatible.    if (document && (document->isPluginDocument() || document->isImageDocument()))        return nil;        return kit(coreFrame->document());}- (DOMHTMLElement *)frameElement{    Frame* coreFrame = _private->coreFrame;    if (!coreFrame)        return nil;    return kit(coreFrame->ownerElement());}- (WebDataSource *)provisionalDataSource{    Frame* coreFrame = _private->coreFrame;    return coreFrame ? dataSource(coreFrame->loader()->provisionalDocumentLoader()) : nil;}- (WebDataSource *)dataSource{    Frame* coreFrame = _private->coreFrame;    return coreFrame && coreFrame->loader()->frameHasLoaded() ? [self _dataSource] : nil;}- (void)loadRequest:(NSURLRequest *)request{    _private->coreFrame->loader()->load(request, false);}static NSURL *createUniqueWebDataURL(){    CFUUIDRef UUIDRef = CFUUIDCreate(kCFAllocatorDefault);    NSString *UUIDString = (NSString *)CFUUIDCreateString(kCFAllocatorDefault, UUIDRef);    CFRelease(UUIDRef);    NSURL *URL = [NSURL URLWithString:[NSString stringWithFormat:@"applewebdata://%@", UUIDString]];    CFRelease(UUIDString);    return URL;}- (void)_loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)encodingName baseURL:(NSURL *)baseURL unreachableURL:(NSURL *)unreachableURL{    KURL responseURL;    if (!baseURL) {        baseURL = blankURL();        responseURL = createUniqueWebDataURL();    }        ResourceRequest request([baseURL absoluteURL]);    // hack because Mail checks for this property to detect data / archive loads    [NSURLProtocol setProperty:@"" forKey:@"WebDataRequest" inRequest:(NSMutableURLRequest *)request.nsURLRequest()];    SubstituteData substituteData(WebCore::SharedBuffer::wrapNSData(data), MIMEType, encodingName, [unreachableURL absoluteURL], responseURL);    _private->coreFrame->loader()->load(request, substituteData, false);}- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)encodingName baseURL:(NSURL *)baseURL{    if (!MIMEType)        MIMEType = @"text/html";    [self _loadData:data MIMEType:MIMEType textEncodingName:encodingName baseURL:baseURL unreachableURL:nil];}- (void)_loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL unreachableURL:(NSURL *)unreachableURL{    NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];    [self _loadData:data MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:baseURL unreachableURL:unreachableURL];}- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL{    [self _loadHTMLString:string baseURL:baseURL unreachableURL:nil];}- (void)loadAlternateHTMLString:(NSString *)string baseURL:(NSURL *)baseURL forUnreachableURL:(NSURL *)unreachableURL{    [self _loadHTMLString:string baseURL:baseURL unreachableURL:unreachableURL];}- (void)loadArchive:(WebArchive *)archive{    if (LegacyWebArchive* coreArchive = [archive _coreLegacyWebArchive])        _private->coreFrame->loader()->loadArchive(coreArchive);}- (void)stopLoading{    if (!_private->coreFrame)        return;    _private->coreFrame->loader()->stopForUserCancel();}- (void)reload{    if (!WebKitLinkedOnOrAfter(WEBKIT_FIRST_VERSION_WITH_RELOAD_FROM_ORIGIN) &&        [[[NSBundle mainBundle] bundleIdentifier] isEqualToString:@"com.apple.Safari"])        _private->coreFrame->loader()->reload(GetCurrentKeyModifiers() & shiftKey);    else        _private->coreFrame->loader()->reload(false);}- (void)reloadFromOrigin{    _private->coreFrame->loader()->reload(true);}- (WebFrame *)findFrameNamed:(NSString *)name{    Frame* coreFrame = _private->coreFrame;    if (!coreFrame)        return nil;    return kit(coreFrame->tree()->find(name));}- (WebFrame *)parentFrame{    Frame* coreFrame = _private->coreFrame;    if (!coreFrame)        return nil;    return [[kit(coreFrame->tree()->parent()) retain] autorelease];}- (NSArray *)childFrames{    Frame* coreFrame = _private->coreFrame;    if (!coreFrame)        return [NSArray array];    NSMutableArray *children = [NSMutableArray arrayWithCapacity:coreFrame->tree()->childCount()];    for (Frame* child = coreFrame->tree()->firstChild(); child; child = child->tree()->nextSibling())        [children addObject:kit(child)];    return children;}- (WebScriptObject *)windowObject{    Frame* coreFrame = _private->coreFrame;    if (!coreFrame)        return 0;    return coreFrame->script()->windowScriptObject();}- (JSGlobalContextRef)globalContext{    Frame* coreFrame = _private->coreFrame;    if (!coreFrame)        return 0;    return toGlobalRef(coreFrame->script()->globalObject()->globalExec());}@end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -