OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006 Apple Computer, Inc. All rights reserved. | 2 * Copyright (C) 2006 Apple Computer, 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 | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 13 matching lines...) Expand all Loading... |
24 */ | 24 */ |
25 | 25 |
26 #ifndef WEBKIT_GLUE_WEBFRAME_IMPL_H_ | 26 #ifndef WEBKIT_GLUE_WEBFRAME_IMPL_H_ |
27 #define WEBKIT_GLUE_WEBFRAME_IMPL_H_ | 27 #define WEBKIT_GLUE_WEBFRAME_IMPL_H_ |
28 | 28 |
29 #include "Frame.h" | 29 #include "Frame.h" |
30 #include "PlatformString.h" | 30 #include "PlatformString.h" |
31 #include <wtf/OwnPtr.h> | 31 #include <wtf/OwnPtr.h> |
32 #include <wtf/RefCounted.h> | 32 #include <wtf/RefCounted.h> |
33 | 33 |
34 #include "base/task.h" | |
35 #include "webkit/api/public/WebFrame.h" | 34 #include "webkit/api/public/WebFrame.h" |
36 #include "webkit/glue/webframeloaderclient_impl.h" | 35 #include "webkit/glue/webframeloaderclient_impl.h" |
37 | 36 |
38 class ChromePrintContext; | 37 class ChromePrintContext; |
39 class WebViewImpl; | 38 class WebViewImpl; |
40 | 39 |
41 namespace gfx { | 40 namespace gfx { |
42 class BitmapPlatformDevice; | 41 class BitmapPlatformDevice; |
43 } | 42 } |
44 | 43 |
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
261 | 260 |
262 // Informs the WebFrame that the Frame is being closed, called by the | 261 // Informs the WebFrame that the Frame is being closed, called by the |
263 // WebFrameLoaderClient | 262 // WebFrameLoaderClient |
264 void Closing(); | 263 void Closing(); |
265 | 264 |
266 // Used to check for leaks of this object. | 265 // Used to check for leaks of this object. |
267 static int live_object_count_; | 266 static int live_object_count_; |
268 | 267 |
269 WebFrameLoaderClient frame_loader_client_; | 268 WebFrameLoaderClient frame_loader_client_; |
270 | 269 |
271 // This is a factory for creating cancelable tasks for this frame that run | |
272 // asynchronously in order to scope string matches during a find operation. | |
273 ScopedRunnableMethodFactory<WebFrameImpl> scope_matches_factory_; | |
274 | |
275 RefPtr<ClientHandle> client_handle_; | 270 RefPtr<ClientHandle> client_handle_; |
276 | 271 |
277 // This is a weak pointer to our corresponding WebCore frame. A reference to | 272 // This is a weak pointer to our corresponding WebCore frame. A reference to |
278 // ourselves is held while frame_ is valid. See our Closing method. | 273 // ourselves is held while frame_ is valid. See our Closing method. |
279 WebCore::Frame* frame_; | 274 WebCore::Frame* frame_; |
280 | 275 |
281 // A way for the main frame to keep track of which frame has an active | 276 // A way for the main frame to keep track of which frame has an active |
282 // match. Should be NULL for all other frames. | 277 // match. Should be NULL for all other frames. |
283 WebFrameImpl* active_match_frame_; | 278 WebFrameImpl* active_match_frame_; |
284 | 279 |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
321 | 316 |
322 // Keeps track of whether the scoping effort was completed (the user may | 317 // Keeps track of whether the scoping effort was completed (the user may |
323 // interrupt it before it completes by submitting a new search). | 318 // interrupt it before it completes by submitting a new search). |
324 bool scoping_complete_; | 319 bool scoping_complete_; |
325 | 320 |
326 // Keeps track of when the scoping effort should next invalidate the scrollbar | 321 // Keeps track of when the scoping effort should next invalidate the scrollbar |
327 // and the frame area. | 322 // and the frame area. |
328 int next_invalidate_after_; | 323 int next_invalidate_after_; |
329 | 324 |
330 private: | 325 private: |
| 326 class DeferredScopeStringMatches; |
| 327 friend class DeferredScopeStringMatches; |
| 328 |
331 // A bit mask specifying area of the frame to invalidate. | 329 // A bit mask specifying area of the frame to invalidate. |
332 enum AreaToInvalidate { | 330 enum AreaToInvalidate { |
333 INVALIDATE_NOTHING = 0, | 331 INVALIDATE_NOTHING = 0, |
334 INVALIDATE_CONTENT_AREA = 1, | 332 INVALIDATE_CONTENT_AREA = 1, |
335 INVALIDATE_SCROLLBAR = 2, // vertical scrollbar only. | 333 INVALIDATE_SCROLLBAR = 2, // vertical scrollbar only. |
336 INVALIDATE_ALL = 3 // both content area and the scrollbar. | 334 INVALIDATE_ALL = 3 // both content area and the scrollbar. |
337 }; | 335 }; |
338 | 336 |
339 // Notifies the delegate about a new selection rect. | 337 // Notifies the delegate about a new selection rect. |
340 void ReportFindInPageSelection( | 338 void ReportFindInPageSelection( |
(...skipping 14 matching lines...) Expand all Loading... |
355 // not including) the frame passed in as a parameter and counts how many | 353 // not including) the frame passed in as a parameter and counts how many |
356 // matches have been found. | 354 // matches have been found. |
357 int OrdinalOfFirstMatchForFrame(WebFrameImpl* frame) const; | 355 int OrdinalOfFirstMatchForFrame(WebFrameImpl* frame) const; |
358 | 356 |
359 // Determines whether the scoping effort is required for a particular frame. | 357 // Determines whether the scoping effort is required for a particular frame. |
360 // It is not necessary if the frame is invisible, for example, or if this | 358 // It is not necessary if the frame is invisible, for example, or if this |
361 // is a repeat search that already returned nothing last time the same prefix | 359 // is a repeat search that already returned nothing last time the same prefix |
362 // was searched. | 360 // was searched. |
363 bool ShouldScopeMatches(const string16& search_text); | 361 bool ShouldScopeMatches(const string16& search_text); |
364 | 362 |
| 363 // Queue up a deferred call to scopeStringMatches. |
| 364 void ScopeStringMatchesSoon( |
| 365 int identifier, const WebKit::WebString& search_text, |
| 366 const WebKit::WebFindOptions& options, bool reset); |
| 367 |
| 368 // Called by a DeferredScopeStringMatches instance. |
| 369 void CallScopeStringMatches( |
| 370 DeferredScopeStringMatches* deferred, |
| 371 int identifier, const WebKit::WebString& search_text, |
| 372 const WebKit::WebFindOptions& options, bool reset); |
| 373 |
365 // Determines whether to invalidate the content area and scrollbar. | 374 // Determines whether to invalidate the content area and scrollbar. |
366 void InvalidateIfNecessary(); | 375 void InvalidateIfNecessary(); |
367 | 376 |
368 // Clears the map of password listeners. | 377 // Clears the map of password listeners. |
369 void ClearPasswordListeners(); | 378 void ClearPasswordListeners(); |
370 | 379 |
371 void LoadJavaScriptURL(const WebCore::KURL& url); | 380 void LoadJavaScriptURL(const WebCore::KURL& url); |
372 | 381 |
| 382 // A list of all of the pending calls to scopeStringMatches. |
| 383 Vector<DeferredScopeStringMatches*> deferred_scoping_work_; |
| 384 |
373 // Valid between calls to BeginPrint() and EndPrint(). Containts the print | 385 // Valid between calls to BeginPrint() and EndPrint(). Containts the print |
374 // information. Is used by PrintPage(). | 386 // information. Is used by PrintPage(). |
375 OwnPtr<ChromePrintContext> print_context_; | 387 OwnPtr<ChromePrintContext> print_context_; |
376 | 388 |
377 // The input fields that are interested in edit events and their associated | 389 // The input fields that are interested in edit events and their associated |
378 // listeners. | 390 // listeners. |
379 typedef HashMap<RefPtr<WebCore::HTMLInputElement>, | 391 typedef HashMap<RefPtr<WebCore::HTMLInputElement>, |
380 WebKit::PasswordAutocompleteListener*> PasswordListenerMap; | 392 WebKit::PasswordAutocompleteListener*> PasswordListenerMap; |
381 PasswordListenerMap password_listeners_; | 393 PasswordListenerMap password_listeners_; |
382 }; | 394 }; |
383 | 395 |
384 #endif // WEBKIT_GLUE_WEBFRAME_IMPL_H_ | 396 #endif // WEBKIT_GLUE_WEBFRAME_IMPL_H_ |
OLD | NEW |