OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 #include "core/page/FrameView.h" | 49 #include "core/page/FrameView.h" |
50 #include "core/page/Page.h" | 50 #include "core/page/Page.h" |
51 #include "core/page/PagePopupClient.h" | 51 #include "core/page/PagePopupClient.h" |
52 #include "core/page/Settings.h" | 52 #include "core/page/Settings.h" |
53 | 53 |
54 using namespace WebCore; | 54 using namespace WebCore; |
55 using namespace std; | 55 using namespace std; |
56 | 56 |
57 namespace WebKit { | 57 namespace WebKit { |
58 | 58 |
59 #if ENABLE(PAGE_POPUP) | |
60 | |
61 class PagePopupChromeClient : public EmptyChromeClient, public WebCore::PageClie
ntChromium { | 59 class PagePopupChromeClient : public EmptyChromeClient, public WebCore::PageClie
ntChromium { |
62 WTF_MAKE_NONCOPYABLE(PagePopupChromeClient); | 60 WTF_MAKE_NONCOPYABLE(PagePopupChromeClient); |
63 WTF_MAKE_FAST_ALLOCATED; | 61 WTF_MAKE_FAST_ALLOCATED; |
64 | 62 |
65 public: | 63 public: |
66 explicit PagePopupChromeClient(WebPagePopupImpl* popup) | 64 explicit PagePopupChromeClient(WebPagePopupImpl* popup) |
67 : m_popup(popup) | 65 : m_popup(popup) |
68 { | 66 { |
69 ASSERT(m_popup->widgetClient()); | 67 ASSERT(m_popup->widgetClient()); |
70 } | 68 } |
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
340 | 338 |
341 // m_widgetClient might be 0 because this widget might be already closed. | 339 // m_widgetClient might be 0 because this widget might be already closed. |
342 if (m_widgetClient) { | 340 if (m_widgetClient) { |
343 // closeWidgetSoon() will call this->close() later. | 341 // closeWidgetSoon() will call this->close() later. |
344 m_widgetClient->closeWidgetSoon(); | 342 m_widgetClient->closeWidgetSoon(); |
345 } | 343 } |
346 | 344 |
347 m_popupClient->didClosePopup(); | 345 m_popupClient->didClosePopup(); |
348 } | 346 } |
349 | 347 |
350 #endif // ENABLE(PAGE_POPUP) | |
351 | |
352 // WebPagePopup ---------------------------------------------------------------- | 348 // WebPagePopup ---------------------------------------------------------------- |
353 | 349 |
354 WebPagePopup* WebPagePopup::create(WebWidgetClient* client) | 350 WebPagePopup* WebPagePopup::create(WebWidgetClient* client) |
355 { | 351 { |
356 #if ENABLE(PAGE_POPUP) | |
357 if (!client) | 352 if (!client) |
358 CRASH(); | 353 CRASH(); |
359 // A WebPagePopupImpl instance usually has two references. | 354 // A WebPagePopupImpl instance usually has two references. |
360 // - One owned by the instance itself. It represents the visible widget. | 355 // - One owned by the instance itself. It represents the visible widget. |
361 // - One owned by a WebViewImpl. It's released when the WebViewImpl ask the | 356 // - One owned by a WebViewImpl. It's released when the WebViewImpl ask the |
362 // WebPagePopupImpl to close. | 357 // WebPagePopupImpl to close. |
363 // We need them because the closing operation is asynchronous and the widget | 358 // We need them because the closing operation is asynchronous and the widget |
364 // can be closed while the WebViewImpl is unaware of it. | 359 // can be closed while the WebViewImpl is unaware of it. |
365 return adoptRef(new WebPagePopupImpl(client)).leakRef(); | 360 return adoptRef(new WebPagePopupImpl(client)).leakRef(); |
366 #else | |
367 UNUSED_PARAM(client); | |
368 return 0; | |
369 #endif | |
370 } | 361 } |
371 | 362 |
372 } // namespace WebKit | 363 } // namespace WebKit |
OLD | NEW |