Проблема при отображении контента в WebView в Leopard - PullRequest
0 голосов
/ 21 июля 2010

Я сделал пример приложения, состоящего из: WebView (для отображения содержимого URL), текстового поля (для хранения URL), кнопки (для загрузки URL в WebView).

Я использовал этот метод для отображениясодержимое в WebView:

- (IBAction)displayAction:(id)sender{
    NSString *liveStreamLink = [[NSString alloc] initWithString:[livestreamLinkTextField stringValue]];
    [[livestreamDisplayView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:liveStreamLink]]];
}

Я сделал это приложение как в Leopard, так и в Snow Leopard.

Обычные ссылки, такие как - https://stackoverflow.com/, правильно открываются в обоих приложениях, нокогда я пробую ссылку, например, - http://www.xyz.com/tools/gauges/livestream.php?data=123456, (примечание: эта ссылка возвращает график), в приложении, разработанном в леопарде, происходит сбой.Приложение, разработанное в Snow Leopard, отлично работает для всех типов ссылок.

Может кто-нибудь подсказать мне, в чем может быть причина его возникновения и какое-то решение для его устранения?

Трассировка стека выглядит следующим образом:

0   0x928252e6 in Debugger
1   0x1b7e8c15 in dyld_stub_sprintf
2   0x1b7e8ecf in NP_Initialize
3   0x90f0599f in -[WebNetscapePluginPackage _tryLoad]
4   0x90f054d7 in -[WebNetscapePluginPackage load]
5   0x90f0a8af in -[WebNetscapePluginDocumentView initWithFrame:pluginPackage:URL:baseURL:MIMEType:attributeKeys:attributeValues:loadManually:element:]
6   0x90ef41da in WebFrameLoaderClient::createPlugin
7   0x930bd908 in WebCore::FrameLoader::loadPlugin
8   0x936ae0da in WebCore::FrameLoader::requestObject
9   0x930bc409 in WebCore::RenderEmbeddedObject::updateWidget
10  0x92f32e65 in WebCore::FrameView::updateWidgets
11  0x92f329c1 in WebCore::FrameView::performPostLayoutTasks
12  0x92f22e33 in WebCore::FrameView::layout
13  0x9306f72b in WebCore::Timer<WebCore::FrameView>::fired
14  0x92f9e94e in WebCore::ThreadTimers::sharedTimerFiredInternal
15  0x92f9e822 in WebCore::ThreadTimers::sharedTimerFired
16  0x93860624 in WebCore::timerFired
17  0x9621a70b in __CFRunLoopRun
18  0x96218094 in CFRunLoopRunSpecific
19  0x96217ec1 in CFRunLoopRunInMode
20  0x96e48f9c in RunCurrentEventLoopInMode
21  0x96e48d51 in ReceiveNextEventCommon
22  0x96e48bd6 in BlockUntilNextEventMatchingListInMode
23  0x902b0a89 in _DPSNextEvent
24  0x902b02ca in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
25  0x9027255b in -[NSApplication run]
26  0x9026a5ed in NSApplicationMain
27  0x000029ee in start at ESTableView.m:1278

Ответы [ 2 ]

0 голосов
/ 02 августа 2010

Я обнаружил, что всякий раз, когда происходит сбой, он отображает сообщение msg: вызывается Debugger ().Поэтому я проверил настройки запуска XCode и обнаружил, что выбрано Stop on Debugger () / DebugStr ().Когда я отменил выбор и повторно запустил приложение, оно работало и не зависало.

Может ли кто-нибудь проверить, что выключение: остановка при отладчике () / DebugStr () не вызывает никаких проблем?

Спасибо,

Monaj

0 голосов
/ 31 июля 2010

Я рискну предположить, что это не ваша вина, а вина более ранней версии WebKit. Причины такого предположения?

  1. Отлично работает на Snow Leopard, но не на Leopard.

  2. Ошибка полностью в WebCore, а не в вашем коде.

  3. В строках 3, 4 и 5 показано, что WebCore создает плагин для загружаемого URL-адреса, и именно здесь происходит сбой.

  4. WebKit, включенный в Snow Leopard, обрабатывает плагины по-разному (изолирует их, поэтому их сбои не устраняют все это), но это дополнительное внимание не было частью WebKit в Leopard.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...