67d7bb473e71c959cd63daaab276822b6e31efa5
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-08-16  Marja Hölttä  <marja@chromium.org>
2
3         FormController, FileInputType: Enable reading selected file names from document state
4         https://bugs.webkit.org/show_bug.cgi?id=91231
5
6         Reviewed by Jochen Eisinger.
7
8         This change enables Chromium to set up file permissions properly when
9         the session restore feature restores a page with selected files.
10
11         Test: fast/forms/file/selected-files-from-history-state.html
12
13         * WebCore.exp.in: Exported FormController::getReferencedFilePaths.
14         * html/FileInputType.cpp:
15         (WebCore::FileInputType::filesFromFormControlState): Added. Extracts FileChooserFileInfos from a FormControlState.
16         (WebCore):
17         (WebCore::FileInputType::restoreFormControlState): Refactored to use filesFromFormControlState.
18         * html/FileInputType.h:
19         (FileInputType): Added filesFromFormControlState.
20         * html/FormController.cpp:
21         (SavedFormState): Added getReferencedFilePaths.
22         (WebCore::SavedFormState::getReferencedFilePaths): Added. Extracts selected file paths from SavedFormState.
23         (WebCore):
24         (WebCore::FormController::setStateForNewFormElements): Refactored to use formStatesFromStateVector.
25         (WebCore::FormController::formStatesFromStateVector):
26         (WebCore::FormController::getReferencedFilePaths): Added. Static. Extracts selected file paths from a document state.
27         * html/FormController.h:
28         (FormController): Added getReferencedFilePaths and formStatesFromStateVector.
29         * html/HTMLInputElement.cpp:
30         (WebCore::HTMLInputElement::filesFromFileInputFormControlState): Added. Delegates to FileInputType::filesFromFormControlState.
31         (WebCore):
32         * html/HTMLInputElement.h: Added filesFromFileInputFormControlState.
33         (HTMLInputElement):
34         * testing/Internals.cpp:
35         (WebCore::Internals::getReferencedFilePaths): Calls FormController::getReferencedFilePaths.
36         (WebCore):
37         * testing/Internals.h:
38         (Internals): Added getReferencedFilePaths.
39         * testing/Internals.idl: Added binding for getReferencedFilePaths.
40
41 2012-08-15  Shawn Singh  <shawnsingh@chromium.org>
42
43         [chromium] set scissorRect per quad so that quads are correctly clipped
44         https://bugs.webkit.org/show_bug.cgi?id=94050
45
46         Reviewed by Adrienne Walker.
47
48         Certain quad types rely on scissoring to do correct
49         clipping. Refactoring the quad types to remove this assumption
50         will be done in a later patch, but for now, we have to apply the
51         scissor rect to every quad to ensure that those quads are
52         correctly clipped.
53
54         Test: compositing/overflow/overflow-hidden-canvas-layer.html
55
56         Also updated two unit tests to reflect the change in semantics.
57
58         * platform/graphics/chromium/LayerRendererChromium.cpp:
59         (WebCore::LayerRendererChromium::drawRenderPass):
60         (WebCore::LayerRendererChromium::drawQuad):
61
62 2012-08-16  Yoshifumi Inoue  <yosin@chromium.org>
63
64         [Forms] Wheel event support in multiple fields time input UI
65         https://bugs.webkit.org/show_bug.cgi?id=94166
66
67         Reviewed by Kent Tamura.
68
69         This patch makes multiple fields time input UI to handle wheel event
70         on spin button.
71
72         This patch affects if ENABLE_INPUT_TYPE_TIME and ENABLE_INPUT_TYPE_MULTIPLE_FIELDS
73         are enabled.
74
75         Test: fast/forms/time-multiple-fields/time-multiple-fields-wheel-event.html
76
77         * html/shadow/DateTimeEditElement.cpp:
78         (WebCore::DateTimeEditElement::defaultEventHandler): Changed to forward
79         event to spin button if available.
80
81 2012-08-16  Zhigang Gong  <zhigang.gong@linux.intel.com>
82
83         TextureMapperGL::beginPainting has a duplicate call to get GL_FRAMEBUFFER_BINDING.
84         https://bugs.webkit.org/show_bug.cgi?id=94180
85
86         Reviewed by Noam Rosenthal.
87
88         * platform/graphics/texmap/TextureMapperGL.cpp:
89         (WebCore::TextureMapperGL::beginPainting):
90
91 2012-08-16  Sheriff Bot  <webkit.review.bot@gmail.com>
92
93         Unreviewed, rolling out r119705.
94         http://trac.webkit.org/changeset/119705
95         https://bugs.webkit.org/show_bug.cgi?id=94192
96
97         Causing crash on ClusterFuzz due to incorrect layout ordering
98         change (Requested by inferno-sec on #webkit).
99
100         * dom/CharacterData.cpp:
101         (WebCore::CharacterData::setDataAndUpdate):
102         * editing/FrameSelection.cpp:
103         (WebCore::updatePositionAfterAdoptingTextReplacement):
104         (WebCore::FrameSelection::textWillBeReplaced):
105         * editing/FrameSelection.h:
106         (FrameSelection):
107
108 2012-08-15  Kent Tamura  <tkent@chromium.org>
109
110         [Chromium] Refactoring: Introduce a new function for some part of PopupContainer::layoutAndCalculateWidgetRect()
111         https://bugs.webkit.org/show_bug.cgi?id=94087
112
113         Reviewed by Hajime Morita.
114
115         Move some part of PopupContainer::layoutAndCalculateWidgetRect() to a
116         new function which is not a member of PopupContainer because we'd like
117         to add a unit test for the position calculation code, and to reduce the
118         dependency.
119
120         No new tests. Popup positioning code is not testable in WebKit.
121
122         * platform/chromium/PopupContainer.cpp:
123         (WebCore::layoutAndCalculateWidgetRectInternal):
124         Added. Move the code from PopupContainer::layoutAndCalculateWidgetRect.
125         In order to avoid to call member functions of PopupContainer, we
126         don't call layoutAndGetRTLOffset() and height(). Use
127         PopupListBox::layout() to recalculate the popup content size, and use
128         PopupListBox::height() + kBorderSize * 2 instead of height(). We
129         resize the view after finishing layoutAndCalculateWidgetRectInternal
130         in PopupContainer::layoutAndCalculateWidgetRect.
131         (WebCore::PopupContainer::layoutAndCalculateWidgetRect):
132         Move some code to layoutAndCalculateWidgetRectInternal.
133         (WebCore::PopupContainer::fitToListBox):
134         Added. Move the code from PopupContainer::layoutAndGetRTLOffset.
135         (WebCore::PopupContainer::layoutAndGetRTLOffset):
136         Move some code to fitToListBox.
137         * platform/chromium/PopupContainer.h:
138         (PopupContainer): Added fitToListBox.
139
140 2012-08-15  Adam Barth  <abarth@webkit.org>
141
142         VoidCallback should not be a special snowflake
143         https://bugs.webkit.org/show_bug.cgi?id=94119
144
145         Reviewed by Eric Seidel.
146
147         VoidCallback is the oldest of the callbacks and it predates our ability
148         to autogenerate callback objects. The existing implementation of
149         VoidCallback is wrong because it doesn't call
150         ActiveDOMCallback::canInvokeCallback. The net result of that is that
151         void callbacks can race with navigations and occationally execute after
152         the Frame has navigated to a new Document, which was causing the
153         flakiness.
154
155         This patch changes VoidCallback to no longer be a unique snowflake.
156         Instead, we autogenerate the implementation, just like every other
157         callback in WebCore.
158
159         Tests: storage/websql/database-lock-after-reload.html is no longer flaky.
160
161         * DerivedSources.make:
162         * GNUmakefile.list.am:
163         * Modules/filesystem/SyncCallbackHelper.h:
164         (WebCore::SyncCallbackHelper::SuccessCallbackImpl::handleEvent):
165         * Target.pri:
166         * UseJSC.cmake:
167         * UseV8.cmake:
168         * WebCore.gyp/WebCore.gyp:
169         * WebCore.gypi:
170         * WebCore.vcproj/WebCore.vcproj:
171         * WebCore.xcodeproj/project.pbxproj:
172         * bindings/cpp/WebDOMCustomVoidCallback.cpp: Removed.
173         * bindings/cpp/WebDOMCustomVoidCallback.h: Removed.
174         * bindings/js/JSBindingsAllInOne.cpp:
175         * bindings/js/JSCustomVoidCallback.cpp: Removed.
176         * bindings/js/JSCustomVoidCallback.h: Removed.
177         * bindings/js/JSDesktopNotificationsCustom.cpp:
178         (WebCore::JSNotificationCenter::requestPermission):
179         * bindings/scripts/CodeGeneratorCPP.pm:
180         (GetClassName):
181         (AddIncludesForType):
182         * bindings/scripts/CodeGeneratorJS.pm:
183         (GetCallbackClassName):
184         (GenerateCallbackImplementation):
185         (JSValueToNative):
186         * bindings/scripts/CodeGeneratorV8.pm:
187         (GenerateCallbackImplementation):
188         (TypeCanFailConversion):
189         (GetCallbackClassName):
190         * bindings/scripts/test/JS/JSTestCallback.cpp:
191         (WebCore::JSTestCallback::callbackWithNoParam):
192         * bindings/scripts/test/V8/V8TestCallback.cpp:
193         * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
194         * bindings/v8/custom/V8CustomVoidCallback.cpp: Removed.
195         * bindings/v8/custom/V8CustomVoidCallback.h: Removed.
196         * bindings/v8/custom/V8MutationCallbackCustom.cpp:
197         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
198         (WebCore::V8NotificationCenter::requestPermissionCallback):
199         * html/VoidCallback.h:
200         (VoidCallback):
201         * html/VoidCallback.idl:
202         * inspector/InspectorDatabaseAgent.cpp:
203         (WebCore):
204
205 2012-08-15  Hayato Ito  <hayato@chromium.org>
206
207         [Shadow] Stop 'load' and 'error' events at shadow boundaries
208         https://bugs.webkit.org/show_bug.cgi?id=93425
209
210         Reviewed by Dimitri Glazkov.
211
212         The shadow DOM spec has added these events as 'always-be-stopped' events at shadow boundaries.
213         http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#events-that-are-always-stopped
214
215         Test: fast/dom/shadow/events-stopped-at-shadow-boundary.html
216
217         * dom/EventDispatcher.cpp:
218         (WebCore::EventDispatcher::determineDispatchBehavior):
219
220 2012-08-15  Kent Tamura  <tkent@chromium.org>
221
222         Calendar Picker: Localize numbers in a calendar picker
223         https://bugs.webkit.org/show_bug.cgi?id=93704
224
225         Reviewed by Hajime Morita.
226
227         Because Number.toLocaleString() of V8 returns no localized
228         numbers, we provide a localization function via
229         PagePopupController.
230
231         No new tests. We have no ways to change the locale in layout tests.
232
233         * Resources/pagepopups/calendarPicker.js:
234         (localizeNumber): Added. A wrapper for pagePopupController.localizeNumberString().
235         (formatJapaneseImperialEra): Use localizeNumber().
236         (formatYearMonth): ditto.
237         (DaysTable.prototype._renderMonth): ditto.
238         * page/PagePopupController.cpp:
239         (WebCore::PagePopupController::localizeNumberString):
240         Added. Just calls WebCore::convertToLocalizedNumber().
241         * page/PagePopupController.h:
242         (PagePopupController): Declare localizeNumberString().
243         * page/PagePopupController.idl: Add localizeNumberString().
244
245 2012-08-15  MORITA Hajime  <morrita@google.com>
246
247         Regression(121518) TextFieldDecorationElement formatting is broken.
248         https://bugs.webkit.org/show_bug.cgi?id=90913
249
250         Reviewed by Dimitri Glazkov.
251
252         NodeRenderingContext::nextRenderer() has a problem which cannot retrieve the renderer
253         across an insertion point in some case. That is because ad-hoc composed tree traversal on
254         NodeRenderingContext is broken. The problem is hidden before r121518 though.
255
256         This change rewrite nextRenderer() using ComposedShadowTreeWalker to eliminate the ad-hoc
257         traversal. previousRenderer() is also rewritten in the same way.
258
259         Test: fast/dom/shadow/shadow-div-reflow.html
260
261         * dom/NodeRenderingContext.cpp:
262         (WebCore):
263         (WebCore::NodeRenderingContext::nextRenderer):
264         (WebCore::NodeRenderingContext::previousRenderer):
265
266 2012-08-15  Julien Chaffraix  <jchaffraix@webkit.org>
267
268         Add a was-inserted-into-tree notification to RenderObject
269         https://bugs.webkit.org/show_bug.cgi?id=93874
270
271         Reviewed by Eric Seidel.
272
273         This change adds insertedIntoTree to RenderObject so that renderers
274         can now do their post-insertion task inside this function.
275
276         Our current architecture has 2 ways of doing post-insertion tasks:
277         - overriding RenderObject::addChild
278         - RenderObjectChildList::insertChildNode / appendChildNode
279
280         Because the former is not guaranteed to be called for each insertion
281         (on top of being called on the parent and not the inserted child), the
282         2 latter functions are the one that have been mostly used recently. This
283         led to code duplication between the functions but also doesn't scale as
284         other renderers need to hop on this notification and currently don't (for
285         example, table parts). The other renderer's migration will be done in
286         follow-up patches.
287
288         Refactoring covered by existing tests.
289
290         * rendering/RenderObjectChildList.cpp:
291         (WebCore::RenderObjectChildList::removeChildNode):
292         * rendering/RenderObject.cpp:
293         (WebCore::RenderObject::enclosingRenderNamedFlowThread):
294         Moved the code from renderNamedFlowThreadContainer to RenderObject::enclosingRenderNamedFlowThread.
295         This is needed as now 2 classes need to access the function.
296
297         * rendering/RenderObjectChildList.cpp:
298         (WebCore::RenderObjectChildList::appendChildNode):
299         (WebCore::RenderObjectChildList::insertChildNode):
300         Moved the code duplicated from those 2 functions into
301         the instances of insertedIntoTree below.
302
303         * rendering/RenderObject.cpp:
304         (WebCore::RenderObject::insertedIntoTree):
305         Base function that needs to be called from all the other
306         specialized functions below.
307
308         * rendering/RenderListItem.cpp:
309         (WebCore::RenderListItem::insertedIntoTree):
310         * rendering/RenderListItem.h:
311         * rendering/RenderObject.h:
312         * rendering/RenderObjectChildList.h:
313         * rendering/RenderRegion.cpp:
314         (WebCore::RenderRegion::insertedIntoTree):
315         * rendering/RenderRegion.h:
316         Added the overriden insertedIntoTree function.
317
318         * rendering/RenderQuote.h:
319         Moved the comment from RenderObjectChildList about RenderQuote here.
320
321 2012-08-14  Jeffrey Pfau  <jpfau@apple.com>
322
323         Allow blocking of Web SQL databases in third-party documents
324         https://bugs.webkit.org/show_bug.cgi?id=94057
325
326         Reviewed by Adam Barth.
327
328         Add a check for pages in third-party pages to allow third-party storage blocking of Web SQL databases.
329
330         Tests: http/tests/security/cross-origin-websql-allowed.html
331                http/tests/security/cross-origin-websql.html
332
333         * Modules/webdatabase/DOMWindowWebDatabase.cpp:
334         (WebCore::DOMWindowWebDatabase::openDatabase): Pass top origin to canAccessDatabase
335         * page/SecurityOrigin.cpp:
336         (WebCore::SecurityOrigin::canAccessStorage): Common method for various types of storage that use the same criteria
337         * page/SecurityOrigin.h:
338         (WebCore::SecurityOrigin::canAccessDatabase): Use canAccessStorage
339         (WebCore::SecurityOrigin::canAccessLocalStorage): Change to using canAccessStorage
340         (SecurityOrigin):
341
342 2012-08-15  Nikhil Bhargava  <nbhargava@google.com>
343
344         Improve Document.h compile time - reduce includes of ScriptCallStack.h
345         https://bugs.webkit.org/show_bug.cgi?id=94161
346
347         Reviewed by Eric Seidel.
348
349         ScriptCallStack.h no longer included from ScriptExecutionContext. It's
350         relatively expensive to compile and gets compiled a ton because
351         Document.h indirectly includes it.
352
353         No new tests. Functionality should remain the same
354
355         * Modules/indexeddb/IDBDatabase.cpp:
356         * Modules/indexeddb/IDBIndex.cpp:
357         * Modules/indexeddb/IDBObjectStore.cpp:
358         * bindings/js/ScriptController.cpp:
359         * dom/ScriptElement.cpp:
360         * dom/ScriptExecutionContext.h:
361         (WebCore):
362         * fileapi/Blob.cpp:
363         * fileapi/WebKitBlobBuilder.cpp:
364         * html/HTMLTrackElement.cpp:
365         * loader/TextTrackLoader.cpp:
366         * page/DOMSecurityPolicy.cpp:
367
368 2012-08-15  Alec Flett  <alecflett@chromium.org>
369
370         IndexedDB: IDB*::keyPath should return IDBKeyPath, not IDBAny
371         https://bugs.webkit.org/show_bug.cgi?id=92434
372
373         Reviewed by Tony Chang.
374
375         Clean up IDBKeyPath conversion to IDBAny objects. This gets rid of
376         some implicit conversion from IDBKeyPath to IDBAny.
377
378         No new tests, just changing method signatures.
379
380         * Modules/indexeddb/IDBAny.cpp:
381         (WebCore::IDBAny::set):
382         (WebCore):
383         * Modules/indexeddb/IDBAny.h:
384         (WebCore):
385         (WebCore::IDBAny::create):
386         (IDBAny):
387         * Modules/indexeddb/IDBIndex.h:
388         (WebCore::IDBIndex::keyPathAny):
389         (WebCore::IDBIndex::keyPath):
390         * Modules/indexeddb/IDBIndex.idl:
391         * Modules/indexeddb/IDBKeyPath.cpp:
392         * Modules/indexeddb/IDBKeyPath.h:
393         * Modules/indexeddb/IDBObjectStore.h:
394         (WebCore::IDBObjectStore::keyPathAny):
395         (WebCore::IDBObjectStore::keyPath):
396         * Modules/indexeddb/IDBObjectStore.idl:
397
398 2012-08-15  Ryosuke Niwa  <rniwa@webkit.org>
399
400         EFL build fix attempt after r125711. Touch an IDL file to regenerate derived sources.
401
402         * html/HTMLAllCollection.idl:
403
404 2012-08-15  Alec Flett  <alecflett@chromium.org>
405
406         IndexedDB: generate index keys for existing data in createIndex in front end
407         https://bugs.webkit.org/show_bug.cgi?id=91125
408
409         Reviewed by Tony Chang.
410
411         Make createIndex() do index key generation in the frontend, rather
412         than the backend. When an index is created, the frontend uses the
413         cursor API to iterate through the values in the backend to
414         generate keys, sending them back to the backend using
415         IDBObjectStore::setIndexKeys()
416
417         This confines all key injection/extraction to the frontend.
418
419         The new test verifies the implemented behavior with respect to
420         error handling in degenerate uses of put(), though that behavior
421         is still in discussion as the spec is vague on the proper error
422         behavior.
423
424         Test: storage/indexeddb/lazy-index-population.html
425
426         * Modules/indexeddb/IDBCursorBackendImpl.cpp: Make sure that the
427         TaskType propagates throught the cursor and all subsequent
428         continue() calls.
429         (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
430         (WebCore::IDBCursorBackendImpl::continueFunction):
431         (WebCore::IDBCursorBackendImpl::prefetchContinue):
432         * Modules/indexeddb/IDBCursorBackendImpl.h:
433         (WebCore::IDBCursorBackendImpl::create):
434         (IDBCursorBackendImpl):
435         * Modules/indexeddb/IDBObjectStore.cpp: Add an IndexPopulator
436         class to run a cursor from the frontend.
437         (WebCore):
438         (WebCore::IDBObjectStore::createIndex):
439         (WebCore::IDBObjectStore::openCursor):
440         * Modules/indexeddb/IDBObjectStore.h:
441         (WebCore::IDBObjectStore::openCursor):
442         (IDBObjectStore):
443         (WebCore::IDBObjectStore::createIndex):
444         * Modules/indexeddb/IDBObjectStore.idl: Pass along ScriptContext
445         so that openCursor can be called from createIndex.
446         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
447         (WebCore):
448         (WebCore::makeIndexWriters):
449         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
450         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
451         (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
452         (WebCore::IDBObjectStoreBackendImpl::putInternal):
453         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
454         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
455         (WebCore::IDBObjectStoreBackendImpl::openCursor):
456         (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
457         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
458         (IDBObjectStoreBackendImpl):
459         (WebCore::IDBObjectStoreBackendImpl::iterIndexesBegin):
460         (WebCore::IDBObjectStoreBackendImpl::iterIndexesEnd):
461         (WebCore::IDBObjectStoreBackendImpl::backingStore):
462         (WebCore::IDBObjectStoreBackendImpl::databaseId):
463         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
464         * Modules/indexeddb/IDBRequest.cpp:
465         Allow requests to keep their own TaskType, to give certain
466         requests priority over others.
467         (WebCore::IDBRequest::create):
468         (WebCore):
469         (WebCore::IDBRequest::IDBRequest):
470         (WebCore::IDBRequest::abort):
471         * Modules/indexeddb/IDBRequest.h:
472         (IDBRequest):
473         (WebCore::IDBRequest::taskType):
474         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
475         Introduce a second, higher priority event queue, m_preemptiveTaskQueue,
476         which takes priority over the regular task queue.
477         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
478         (WebCore::IDBTransactionBackendImpl::scheduleTask):
479         (WebCore::IDBTransactionBackendImpl::isTaskQueueEmpty):
480         (WebCore):
481         (WebCore::IDBTransactionBackendImpl::commit):
482         (WebCore::IDBTransactionBackendImpl::taskTimerFired):
483         (WebCore::IDBTransactionBackendImpl::taskEventTimerFired):
484         * Modules/indexeddb/IDBTransactionBackendImpl.h:
485         (WebCore::IDBTransactionBackendImpl::scheduleTask):
486         (IDBTransactionBackendImpl):
487         (WebCore::IDBTransactionBackendImpl::addEarlyEvent):
488         (WebCore::IDBTransactionBackendImpl::didCompleteEarlyEvent):
489         * Modules/indexeddb/IDBVersionChangeRequest.cpp:
490         (WebCore::IDBVersionChangeRequest::IDBVersionChangeRequest):
491
492 2012-08-15  Hayato Ito  <hayato@chromium.org>
493
494         A 'load' event should be fired on the shadow host directly, not on an inner image element of shadow dom subtree.
495         https://bugs.webkit.org/show_bug.cgi?id=93920
496
497         Reviewed by Dimitri Glazkov.
498
499         A 'load' event is a must-stoppable event at shadow boundary. So we
500         should fire a 'load' event on a shadow host directly, not on an
501         inner image element.
502
503         Test: fast/dom/shadow/shadowdom-for-image-event.html
504
505         * html/HTMLImageLoader.cpp:
506         (WebCore::HTMLImageLoader::dispatchLoadEvent):
507         * loader/ImageLoaderClient.h:
508         (WebCore::ImageLoaderClient::eventTarget):
509
510 2012-08-15  Otto Derek Cheung  <otcheung@rim.com>
511
512         [BlackBerry] Show custom error page when 407 is received
513         https://bugs.webkit.org/show_bug.cgi?id=94138
514
515          Reviewed by George Staikos.
516          Internally reviewed by Lianghui Chen
517
518          Adding a new custom error page when the browser receieves
519          a Wifi proxy authentication error. The previous behaviour
520          is to ask for user credentials everytime, and silently fails
521          when the username and password fields in the Wifi settings
522          are not empty. UX suggests modifying the behaviour to simply
523          asks the user to change their credentials in the Wifi settings
524          when we receive such an error.
525
526          The fix is to prevent notifyAuthReceived from sending another
527          networkjob when authCallbacks are called, and to listen to any 407
528          calls in notifyStatusReceived. Once we hit a 407, tell the frame we
529          failed and should load the custom error page.
530
531          Also removed checking functions in sendRequestWithCredentials because
532          proxy auth requests won't get into that function anymore.
533
534          #PR163400
535
536          Tested by loading on device and loading/reloading pages under
537          these scenarios:
538          - Connected to wifi (no proxy)
539          - Connected to wifi (proxy with no credentials)
540          - Connected to wifi (proxy with invalid credentials)
541          - Connected to wifi (proxy with valid credentials)
542
543          * platform/network/blackberry/NetworkJob.cpp:
544          (WebCore::NetworkJob::handleNotifyStatusReceived):
545          (WebCore::NetworkJob::notifyAuthReceived):
546          (WebCore::NetworkJob::sendRequestWithCredentials):
547
548 2012-08-15  Dan Carney  <dcarney@google.com>
549
550         Refactor away IsolatedWorld
551         https://bugs.webkit.org/show_bug.cgi?id=93971
552
553         Reviewed by Adam Barth.
554
555         Remove IsolatedWorld class as it was 1:1 with DOMWrapperWorld.
556         This paves the way towards a JSC-like use of DOMWrapperWorld.
557
558         No tests.  No change in functionality.
559
560         * UseV8.cmake:
561         * WebCore.gypi:
562         * bindings/v8/DOMWrapperWorld.cpp:
563         (WebCore):
564         (WebCore::mainThreadNormalWorld):
565         * bindings/v8/DOMWrapperWorld.h:
566         (WebCore):
567         (DOMWrapperWorld):
568         (WebCore::DOMWrapperWorld::create):
569         (WebCore::DOMWrapperWorld::~DOMWrapperWorld):
570         (WebCore::DOMWrapperWorld::count):
571         (WebCore::DOMWrapperWorld::worldId):
572         (WebCore::DOMWrapperWorld::domDataStore):
573         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
574         * bindings/v8/IsolatedWorld.cpp: Removed.
575         * bindings/v8/IsolatedWorld.h: Removed.
576         * bindings/v8/V8DOMWrapper.h:
577         (WebCore::V8DOMWrapper::getCachedWrapper):
578         * bindings/v8/V8IsolatedContext.cpp:
579         (WebCore::V8IsolatedContext::V8IsolatedContext):
580         (WebCore::V8IsolatedContext::destroy):
581         * bindings/v8/V8IsolatedContext.h:
582         (WebCore::V8IsolatedContext::getEntered):
583         (WebCore::V8IsolatedContext::world):
584         (V8IsolatedContext):
585
586 2012-08-15  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
587
588         [css3-text] Add CSS3 Text decoration compile flag
589         https://bugs.webkit.org/show_bug.cgi?id=93863
590
591         Reviewed by Julien Chaffraix.
592
593         This patch handles the compile flag implementation, which will come disabled by
594         default, thus not exposing the CSS3 text decoration features to the web, unless
595         when explicitly enabling it with "--css3-text-decoration" build parameter.
596
597         Changeset r125205 added "-webkit-text-decoration-line" support without proper
598         compile flag. I am fixing this on this patch by adding #ifdef's along the added
599         code and reverting getComputedStyle* layout test changes until further notice.
600         The text-decoration-line.html layout test is now moved to
601         fast/css3-text-decoration directory, which is skipped on all platforms until
602         feature is sound and ready to be exposed to web.
603
604         Test: fast/css3-text-decoration/text-decoration-line.html
605
606         * Configurations/FeatureDefines.xcconfig:
607         * GNUmakefile.am:
608         * css/CSSComputedStyleDeclaration.cpp:
609         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
610         * css/CSSParser.cpp:
611         (WebCore::CSSParser::parseValue):
612         (WebCore::CSSParser::addTextDecorationProperty):
613         (WebCore::CSSParser::parseTextDecoration):
614         * css/CSSProperty.cpp:
615         (WebCore::CSSProperty::isInheritedProperty):
616         * css/CSSPropertyNames.in:
617         * css/StyleBuilder.cpp:
618         (WebCore::StyleBuilder::StyleBuilder):
619         * css/StyleResolver.cpp:
620         (WebCore::StyleResolver::collectMatchingRulesForList):
621         Added #ifdefs to enable/disable CSS3 Text Decoration code implemented by r125205.
622
623 2012-08-15  Iain Merrick  <husky@chromium.org>
624
625         Refactoring: move EventHandler::targetNode into HitTestResult
626         https://bugs.webkit.org/show_bug.cgi?id=94107
627
628         Reviewed by Dimitri Glazkov.
629
630         This static helper method in EventHandler was made public so that
631         WebFrameImpl can call it. That's untidy because EventHandler isn't
632         really involved. This patch turns it into an instance method of
633         HitTestResult (with a wrapper in MouseEventWithHitTestResult for
634         convenience).
635     
636         Pure refactoring, no behavior change, no new test needed.
637
638         * page/EventHandler.cpp:
639         (WebCore::EventHandler::selectClosestWordFromMouseEvent):
640         (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent):
641         (WebCore::EventHandler::handleMousePressEventTripleClick):
642         (WebCore::EventHandler::handleMousePressEventSingleClick):
643         (WebCore::EventHandler::handleMousePressEvent):
644         (WebCore::EventHandler::handleMouseDraggedEvent):
645         (WebCore::EventHandler::updateSelectionForMouseDrag):
646         (WebCore::EventHandler::handleMouseReleaseEvent):
647         (WebCore::EventHandler::subframeForHitTestResult):
648         (WebCore::EventHandler::selectCursor):
649         (WebCore::EventHandler::handleMouseDoubleClickEvent):
650         (WebCore::EventHandler::handleMouseMoveEvent):
651         (WebCore::EventHandler::updateDragAndDrop):
652         (WebCore::EventHandler::handleGestureEvent):
653         (WebCore::EventHandler::sendContextMenuEvent):
654         * page/EventHandler.h:
655         (EventHandler):
656         * page/MouseEventWithHitTestResults.h:
657         (WebCore::MouseEventWithHitTestResults::targetNode):
658         * page/chromium/EventHandlerChromium.cpp:
659         (WebCore::EventHandler::passMousePressEventToSubframe):
660         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
661         * page/efl/EventHandlerEfl.cpp:
662         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
663         * page/gtk/EventHandlerGtk.cpp:
664         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
665         * page/mac/EventHandlerMac.mm:
666         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
667         (WebCore::EventHandler::passSubframeEventToSubframe):
668         * page/wx/EventHandlerWx.cpp:
669         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
670         * rendering/HitTestResult.cpp:
671         (WebCore::HitTestResult::targetNode):
672         (WebCore):
673         * rendering/HitTestResult.h:
674         (HitTestResult):
675
676 2012-08-15  David Grogan  <dgrogan@chromium.org>
677
678         IndexedDB: Add some ASSERTs
679         https://bugs.webkit.org/show_bug.cgi?id=94055
680
681         Reviewed by Ojan Vafai.
682
683         These are just some additional ASSERTS and some ASSERT_WITH_MESSAGE in
684         place of ASSERT. They are from the patch in
685         https://bugs.webkit.org/show_bug.cgi?id=92897
686
687         No new tests - we should never hit this behavior.
688
689         * Modules/indexeddb/IDBDatabase.cpp:
690         (WebCore::IDBDatabase::setVersion):
691         (WebCore::IDBDatabase::registerFrontendCallbacks):
692         * Modules/indexeddb/IDBRequest.cpp:
693         (WebCore::IDBRequest::dispatchEvent):
694         (WebCore::IDBRequest::enqueueEvent):
695         * Modules/indexeddb/IDBTransaction.cpp:
696         (WebCore::IDBTransaction::setActive):
697
698 2012-08-15  Sheriff Bot  <webkit.review.bot@gmail.com>
699
700         Unreviewed, rolling out r125687.
701         http://trac.webkit.org/changeset/125687
702         https://bugs.webkit.org/show_bug.cgi?id=94147
703
704         It broke the whole world (Requested by Ossy_night on #webkit).
705
706         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
707         (WebCore::JSSQLStatementErrorCallback::handleEvent):
708         * bindings/js/JSDOMWindowCustom.cpp:
709         (WebCore::JSDOMWindow::addEventListener):
710         (WebCore::JSDOMWindow::removeEventListener):
711         * bindings/js/JSDataViewCustom.cpp:
712         (WebCore::getDataViewMember):
713         * bindings/js/JSDeviceMotionEventCustom.cpp:
714         (WebCore::JSDeviceMotionEvent::initDeviceMotionEvent):
715         * bindings/js/JSDeviceOrientationEventCustom.cpp:
716         (WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):
717         * bindings/js/JSDictionary.cpp:
718         (WebCore::JSDictionary::convertValue):
719         * bindings/js/JSDirectoryEntryCustom.cpp:
720         (WebCore::JSDirectoryEntry::getFile):
721         (WebCore::JSDirectoryEntry::getDirectory):
722         * bindings/js/JSDirectoryEntrySyncCustom.cpp:
723         (WebCore::getFlags):
724         * bindings/js/JSHTMLCanvasElementCustom.cpp:
725         (WebCore::JSHTMLCanvasElement::getContext):
726         * bindings/js/JSInspectorFrontendHostCustom.cpp:
727         (WebCore::populateContextMenuItems):
728         * bindings/js/JSMessageEventCustom.cpp:
729         (WebCore::handleInitMessageEvent):
730         * bindings/js/JSWebGLRenderingContextCustom.cpp:
731         (WebCore::dataFunctionMatrix):
732         * bindings/js/JSXMLHttpRequestCustom.cpp:
733         (WebCore::JSXMLHttpRequest::open):
734         * bindings/js/JavaScriptCallFrame.cpp:
735         * bindings/js/JavaScriptCallFrame.h:
736         (JavaScriptCallFrame):
737         * bindings/js/ScriptDebugServer.cpp:
738         (WebCore::ScriptDebugServer::hasBreakpoint):
739         * bindings/scripts/CodeGeneratorJS.pm:
740         (GenerateEventListenerCall):
741         (GenerateHeader):
742         (JSValueToNative):
743         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
744         (WebCore::jsTestEventTargetPrototypeFunctionAddEventListener):
745         (WebCore::jsTestEventTargetPrototypeFunctionRemoveEventListener):
746         * bindings/scripts/test/JS/JSTestEventTarget.h:
747         (WebCore::JSTestEventTarget::create):
748         * bindings/scripts/test/JS/JSTestObj.cpp:
749         (WebCore::setJSTestObjCreate):
750         (WebCore::setJSTestObjReflectedBooleanAttr):
751         (WebCore::setJSTestObjReflectedCustomBooleanAttr):
752         (WebCore::jsTestObjPrototypeFunctionAddEventListener):
753         (WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
754         * bridge/c/c_utility.cpp:
755         (JSC::Bindings::convertValueToNPVariant):
756         * bridge/jni/jni_jsobject.mm:
757         (JavaJSObject::convertValueToJObject):
758         * bridge/qt/qt_runtime.cpp:
759         (JSC::Bindings::convertValueToQVariant):
760
761 2012-08-15  Dominic Mazzoni  <dmazzoni@google.com>
762
763         AX: Calls to AXObjectCache should prefer Node over Renderer
764         https://bugs.webkit.org/show_bug.cgi?id=91794
765
766         Reviewed by Chris Fleizach.
767
768         Now that it's possible for nodes inside a canvas subtree to be focused and
769         represent accessible content, accessibility notifications should be triggered
770         with a Node* rather than with a RenderObject* whenever possible.
771
772         Every public API in AXObjectCache that took a RenderObject* before now either
773         takes a Node* instead, or has a parallel method that takes a Node*.
774
775         Tests: accessibility/accessibility-node-memory-management.html
776                accessibility/accessibility-node-reparent.html
777                accessibility/canvas-fallback-content.html
778
779         * accessibility/AXObjectCache.cpp:
780         (WebCore::AXObjectCache::focusedImageMapUIElement):
781         (WebCore::AXObjectCache::focusedUIElementForPage):
782         (WebCore::AXObjectCache::get):
783         (WebCore::AXObjectCache::getOrCreate):
784         (WebCore::AXObjectCache::contentChanged):
785         (WebCore):
786         (WebCore::AXObjectCache::updateCacheAfterNodeIsAttached):
787         (WebCore::AXObjectCache::childrenChanged):
788         (WebCore::AXObjectCache::postNotification):
789         (WebCore::AXObjectCache::checkedStateChanged):
790         (WebCore::AXObjectCache::selectedChildrenChanged):
791         (WebCore::AXObjectCache::nodeTextChangeNotification):
792         (WebCore::AXObjectCache::handleAriaExpandedChange):
793         (WebCore::AXObjectCache::handleActiveDescendantChanged):
794         (WebCore::AXObjectCache::handleAriaRoleChanged):
795         (WebCore::AXObjectCache::textMarkerDataForVisiblePosition):
796         (WebCore::AXObjectCache::rootAXEditableElement):
797         (WebCore::AXObjectCache::nodeIsTextControl):
798         * accessibility/AXObjectCache.h:
799         (AXObjectCache):
800         (WebCore::AXObjectCache::setNodeInUse):
801         (WebCore::AXObjectCache::removeNodeForUse):
802         (WebCore::AXObjectCache::isNodeInUse):
803         (WebCore::AXObjectCache::checkedStateChanged):
804         (WebCore::AXObjectCache::childrenChanged):
805         (WebCore::AXObjectCache::contentChanged):
806         (WebCore::AXObjectCache::updateCacheAfterNodeIsAttached):
807         (WebCore::AXObjectCache::handleActiveDescendantChanged):
808         (WebCore::AXObjectCache::handleAriaExpandedChange):
809         (WebCore::AXObjectCache::handleAriaRoleChanged):
810         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
811         (WebCore::AXObjectCache::nodeTextChangeNotification):
812         (WebCore::AXObjectCache::postNotification):
813         (WebCore::AXObjectCache::selectedChildrenChanged):
814         * accessibility/AccessibilityListBoxOption.cpp:
815         (WebCore::AccessibilityListBoxOption::parentObject):
816         * accessibility/AccessibilityObject.cpp:
817         (WebCore::appendAccessibilityObject):
818         (WebCore::replacedNodeNeedsCharacter):
819         * accessibility/AccessibilityRenderObject.cpp:
820         (WebCore::AccessibilityRenderObject::menuForMenuButton):
821         (WebCore::AccessibilityRenderObject::menuButtonForMenu):
822         (WebCore::AccessibilityRenderObject::checkboxOrRadioRect):
823         (WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers):
824         (WebCore::AccessibilityRenderObject::titleUIElement):
825         (WebCore::AccessibilityRenderObject::isTabItemSelected):
826         (WebCore::AccessibilityRenderObject::accessibilityParentForImageMap):
827         (WebCore::AccessibilityRenderObject::nodeIsTextControl):
828         (WebCore::AccessibilityRenderObject::activeDescendant):
829         (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
830         (WebCore::AccessibilityRenderObject::correspondingLabelForControlElement):
831         * accessibility/AccessibilityRenderObject.h:
832         (AccessibilityRenderObject):
833         * accessibility/AccessibilityScrollView.cpp:
834         (WebCore::AccessibilityScrollView::webAreaObject):
835         (WebCore::AccessibilityScrollView::parentObject):
836         (WebCore::AccessibilityScrollView::parentObjectIfExists):
837         * accessibility/chromium/AXObjectCacheChromium.cpp:
838         (WebCore::AXObjectCache::postPlatformNotification):
839         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
840         * accessibility/gtk/AXObjectCacheAtk.cpp:
841         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
842         * accessibility/mac/AXObjectCacheMac.mm:
843         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
844         * accessibility/win/AXObjectCacheWin.cpp:
845         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
846         * bindings/cpp/WebDOMCustomVoidCallback.cpp:
847         (toWebCore):
848         * dom/Document.cpp:
849         (WebCore::Document::setFocusedNode):
850         * dom/Element.cpp:
851         (WebCore::Element::attributeChanged):
852         * dom/Node.cpp:
853         (WebCore::Node::~Node):
854         (WebCore::Node::attach):
855         * editing/AppendNodeCommand.cpp:
856         (WebCore::sendAXTextChangedIgnoringLineBreaks):
857         * editing/DeleteFromTextNodeCommand.cpp:
858         (WebCore::DeleteFromTextNodeCommand::doApply):
859         (WebCore::DeleteFromTextNodeCommand::doUnapply):
860         * editing/Editor.cpp:
861         (WebCore::Editor::respondToChangedContents):
862         (WebCore::Editor::markAndReplaceFor):
863         * editing/InsertIntoTextNodeCommand.cpp:
864         (WebCore::InsertIntoTextNodeCommand::doApply):
865         (WebCore::InsertIntoTextNodeCommand::doUnapply):
866         * editing/InsertNodeBeforeCommand.cpp:
867         (WebCore::InsertNodeBeforeCommand::doApply):
868         (WebCore::InsertNodeBeforeCommand::doUnapply):
869         * editing/chromium/FrameSelectionChromium.cpp:
870         (WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
871         * html/HTMLInputElement.cpp:
872         (WebCore::HTMLInputElement::setChecked):
873         * html/HTMLSelectElement.cpp:
874         (WebCore::HTMLSelectElement::childrenChanged):
875         (WebCore::HTMLSelectElement::optionElementChildrenChanged):
876         * html/HTMLTextFormControlElement.cpp:
877         (WebCore::HTMLTextFormControlElement::setInnerTextValue):
878         * html/InputType.cpp:
879         (WebCore::InputType::applyStep):
880         * html/RangeInputType.cpp:
881         (WebCore::RangeInputType::handleKeydownEvent):
882         * page/FocusController.cpp:
883         (WebCore::FocusController::setInitialFocus):
884
885 2012-08-15  Andreas Kling  <kling@webkit.org>
886
887         NinePieceImage: Avoid unnecessary duplication of default data in assignment operator.
888         <http://webkit.org/b/94046>
889
890         Reviewed by Geoffrey Garen.
891
892         If copying a NinePieceImage with a null m_data, don't create a copy of it's data()
893         as that will point to the default NinePieceImageData. ~200kB progression on Membuster.
894
895         * rendering/style/NinePieceImage.h:
896         (WebCore::NinePieceImage::operator=):
897
898 2012-08-15  Gregg Tavares  <gman@google.com>
899
900         Mark Skia and Compositor Contexts
901         https://bugs.webkit.org/show_bug.cgi?id=94129
902
903         Reviewed by James Robinson.
904
905         Marks the Skia and Compositor contexts to aid in debugging.
906
907         No new tests as no new functionality.
908
909         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
910         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
911         * platform/graphics/skia/ImageBufferSkia.cpp:
912         (WebCore::createAcceleratedCanvas):
913
914 2012-08-15  Ian Vollick  <vollick@chromium.org>
915
916         [chromium] Must account for empty transformation lists when checking for big rotations.
917         https://bugs.webkit.org/show_bug.cgi?id=93975
918
919         Reviewed by James Robinson.
920
921         AnimationTranslationUtil.cpp is supposed to reject large rotations 
922         (>= 180 degrees between keyframes). The current code assumes that if 
923         the lists of transforms at two consecutive keyframes do not match 
924         (i.e., are different types), then do not need to reject. The rationale
925         is that we will revert to matrix blending -- we will collapse the lists
926         of transform operations to matrices at each keyframe and blend those. 
927         Unfortunately, this is not true if a list is empty. It can be the case 
928         that we transition from no transform to a rotation about the z axis of 
929         360 degrees. In this case, the first list of transform operations will 
930         be empty and the second will have a single rotation of 360 degrees. An 
931         empty list should be treated as a rotation of zero degrees.
932
933         Unit tested in: GraphicsLayerChromiumTest.createTransformAnimationWithBigRotationAndEmptyTransformOperationList
934
935         * platform/graphics/chromium/AnimationTranslationUtil.cpp:
936         (WebCore::causesRotationOfAtLeast180Degrees):
937
938 2012-08-15  Beth Dakin  <bdakin@apple.com>
939
940         https://bugs.webkit.org/show_bug.cgi?id=93693
941         [WK2] REGRESSION(125091): pixel results don't sow scrollbars 
942         anymore
943
944         Reviewed by Sam Weinig.
945
946         This is a regression from http://trac.webkit.org/changeset/125091 
947         in which I failed to noticed that 
948         WKBundlePageCreateSnapshotInViewCoordinates() did actually do 
949         something different than 
950         WKBundlePageCreateSnapshotInDocumentCoordinates(). Specifically, 
951         it used ScrollView::paint() to paint instead of 
952         FrameView::paintContents(). So this patch restores that 
953         functionality by adding a value to SnapshotOptions indicating 
954         whether the snapshot should be taken in ViewCoordinates 
955         (otherwise it defaults to DocumentCoordinates).
956
957         FrameView:: paintContentsForSnapshot() now takes a new parameter 
958         that indicates whether to take the snapshot in document 
959         coordinates or view coordinates.
960         * WebCore.exp.in:
961         * page/FrameView.cpp:
962         (WebCore::FrameView::paintContentsForSnapshot):
963         * page/FrameView.h:
964
965 2012-08-15  Benjamin Poulain  <bpoulain@apple.com>
966
967         Use literal initialization for CSS's pseudo types
968         https://bugs.webkit.org/show_bug.cgi?id=94066
969
970         Reviewed by Kenneth Rohde Christiansen.
971
972         Initialize CSS pseudo type strings with the new initialization from literal.
973
974         The first invocation of nameToPseudoTypeMap() becomes 20% faster and we use
975         less memory to store the strings.
976
977         * css/CSSSelector.cpp:
978         (WebCore::nameToPseudoTypeMap):
979
980 2012-08-15  Brady Eidson  <beidson@apple.com>
981
982         Removing a plug-in element from a page opened in a background tab in Safari crashes
983         <rdar://problem/12057991> and https://bugs.webkit.org/show_bug.cgi?id=93913
984
985         Reviewed by Beth Dakin.
986
987         Expose Page::setCanStartMedia to regression tests so they can pretend to be in a non-windowed WebView.
988
989         Test: platform/mac-wk2/plugins/asynchronous-destroy-before-initialization.html
990
991         * testing/InternalSettings.cpp:
992         (WebCore::InternalSettings::Backup::Backup):
993         (WebCore::InternalSettings::Backup::restoreTo):
994         (WebCore::InternalSettings::setCanStartMedia):
995         (WebCore):
996         * testing/InternalSettings.h:
997         (Backup):
998         (InternalSettings):
999         * testing/InternalSettings.idl:
1000
1001 2012-08-15  Levi Weintraub  <leviw@chromium.org>
1002
1003         AutoTableLayout truncates preferred widths for cells when it needs to ceil them to contain the contents
1004         https://bugs.webkit.org/show_bug.cgi?id=93911
1005
1006         Reviewed by Eric Seidel.
1007
1008         Avoiding truncation of sub-pixel accumulated values when determining the preferred width of a table cell
1009         in AutoTableLayout. Since we continue to layout tables using integers, we need to ceil the contents to
1010         prevent premature wrapping of the contents.
1011
1012         This only affects ports with sub-pixel layout enabled, and fixes regressions of a handful of tests that
1013         were missed when updating expectations when sub-pixel was enabled.
1014
1015         Test: fast/sub-pixel/auto-table-layout-should-avoid-text-wrapping.html
1016
1017         * rendering/AutoTableLayout.cpp:
1018         (WebCore::AutoTableLayout::recalcColumn):
1019
1020 2012-08-10  Ojan Vafai  <ojan@chromium.org>
1021
1022         z-index should work without position on flexitems
1023         https://bugs.webkit.org/show_bug.cgi?id=91405
1024
1025         Reviewed by Tony Chang.
1026
1027         Require a layer on any RenderBox that has a non-auto z-index.
1028         Statically positioned, non-flex-item's have their z-index coerced to auto,
1029         so it's safe to check z-index unconditionally.
1030
1031         Test: css3/flexbox/z-index.html
1032
1033         * css/StyleResolver.cpp:
1034         (WebCore::StyleResolver::adjustRenderStyle):
1035         -Don't coerce z-index to auto on statically positioned flex-items.
1036         -Use the parentStyle to determine if the parent is a flexbox instead of
1037         looking at the element's parentNode's renderer.
1038         * rendering/RenderBox.h:
1039         -Add having a non-auto z-index to the list of things that require a layer.
1040
1041 2012-08-15  Joanmarie Diggs  <jdiggs@igalia.com>
1042
1043         [Gtk] atk_text_set_caret_offset() fails for table cells
1044         https://bugs.webkit.org/show_bug.cgi?id=83501
1045
1046         Reviewed by Chris Fleizach.
1047
1048         Allow using text ranges in accessible table cells.
1049
1050         * accessibility/gtk/AccessibilityObjectAtk.cpp:
1051         (WebCore::AccessibilityObject::allowsTextRanges):
1052         Add table cells to the list of accessibility objects supporting text ranges.
1053
1054 2012-08-15  Scott Graham  <scottmg@chromium.org>
1055
1056         Rename window.internals.fastMallocStatistics to mallocStatistics
1057         https://bugs.webkit.org/show_bug.cgi?id=94033
1058
1059         Reviewed by Adam Barth.
1060
1061         Mechanical rename. In preparation for plumbing allocation information
1062         from allocators that aren't "fastMalloc".
1063
1064         * CMakeLists.txt:
1065         * DerivedSources.make:
1066         * DerivedSources.pri:
1067         * GNUmakefile.list.am:
1068         * Target.pri:
1069         * WebCore.gyp/WebCore.gyp:
1070         * WebCore.gypi:
1071         * WebCore.vcproj/WebCoreTestSupport.vcproj:
1072         * WebCore.xcodeproj/project.pbxproj:
1073         * loader/DocumentLoader.h:
1074         (WebCore::DocumentLoader::didTellClientAboutLoad):
1075         * loader/cache/CachedResourceLoader.cpp:
1076         (WebCore::CachedResourceLoader::loadResource):
1077         * testing/FastMallocStatistics.h: Removed.
1078         * testing/FastMallocStatistics.idl: Removed.
1079         * testing/Internals.cpp:
1080         (WebCore::Internals::mallocStatistics):
1081         * testing/Internals.h:
1082         (WebCore):
1083         (Internals):
1084         * testing/Internals.idl:
1085         * testing/MallocStatistics.h: Added.
1086         * testing/MallocStatistics.idl: Added.
1087
1088 2012-08-15  Joshua Netterfield  <jnetterfield@rim.com>
1089
1090         [BlackBerry] Upstream BlackBerry build fixes
1091         https://bugs.webkit.org/show_bug.cgi?id=94121
1092
1093         Reviewed by Rob Buis.
1094
1095         This includes several build fixes due to incorrect upstream patches.
1096         These mistakes were never present downstream.
1097
1098         No new tests, because no new functionality is added.
1099
1100         * platform/graphics/GraphicsContext3D.cpp:
1101         (WebCore::GraphicsContext3D::computeFormatAndTypeParameters):
1102         * platform/graphics/GraphicsContext3D.h:
1103         (GraphicsContext3D):
1104         (WebCore::GraphicsContext3D::ShaderSourceEntry::ShaderSourceEntry):
1105         * platform/graphics/blackberry/LayerFilterRenderer.cpp:
1106         (WebCore::LayerFilterRendererAction::LayerFilterRendererAction):
1107         * platform/graphics/blackberry/LayerFilterRenderer.h:
1108         (LayerFilterRendererAction):
1109
1110 2012-08-15  Adam Barth  <abarth@webkit.org>
1111
1112         JSDOMWrapper should ASSERT that it has an associated ScriptExecutionContext
1113         https://bugs.webkit.org/show_bug.cgi?id=94053
1114
1115         Reviewed by Sam Weinig.
1116
1117         Previously we were unable have this ASSERT because DOMWindow needed a
1118         Frame to find Document. Now that we can find the Document without a
1119         Frame, we can include the ASSERT and sanity will rein across the land.
1120
1121         * bindings/js/JSDOMWrapper.h:
1122         (WebCore::JSDOMWrapper::globalObject):
1123         (WebCore::JSDOMWrapper::scriptExecutionContext):
1124         (WebCore::JSDOMWrapper::JSDOMWrapper):
1125
1126 2012-08-14  Mark Hahnenberg  <mhahnenberg@apple.com>
1127
1128         Change behavior of MasqueradesAsUndefined to better accommodate DFG changes
1129         https://bugs.webkit.org/show_bug.cgi?id=93884
1130
1131         Reviewed by Geoffrey Garen.
1132
1133         With some upcoming changes to the DFG to remove uses of ClassInfo, we will be changing the behavior of 
1134         MasqueradesAsUndefined. In order to make this change consistent across all of our execution engines, 
1135         we will make this change to MasqueradesAsUndefined as a separate patch. After this patch, MasqueradesAsUndefined 
1136         objects will only masquerade as undefined in their original context (i.e. their original JSGlobalObject). 
1137         For example, if an object that masquerades as undefined in frame A is passed to frame B, it will not 
1138         masquerade as undefined within frame B, but it will continue to masquerade in frame A.
1139
1140         Test: fast/js/document-all-between-frames.html
1141
1142         All of the changes in WebCore are simply passing the additional ExecState argument to JSValue::toBoolean.
1143
1144         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
1145         (WebCore::JSSQLStatementErrorCallback::handleEvent):
1146         * bindings/js/JSDOMWindowCustom.cpp:
1147         (WebCore::JSDOMWindow::addEventListener):
1148         (WebCore::JSDOMWindow::removeEventListener):
1149         * bindings/js/JSDataViewCustom.cpp:
1150         (WebCore::getDataViewMember):
1151         * bindings/js/JSDeviceMotionEventCustom.cpp:
1152         (WebCore::JSDeviceMotionEvent::initDeviceMotionEvent):
1153         * bindings/js/JSDeviceOrientationEventCustom.cpp:
1154         (WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):
1155         * bindings/js/JSDictionary.cpp:
1156         (WebCore::JSDictionary::convertValue):
1157         * bindings/js/JSDirectoryEntryCustom.cpp:
1158         (WebCore::JSDirectoryEntry::getFile):
1159         (WebCore::JSDirectoryEntry::getDirectory):
1160         * bindings/js/JSDirectoryEntrySyncCustom.cpp:
1161         (WebCore::getFlags):
1162         * bindings/js/JSHTMLCanvasElementCustom.cpp:
1163         (WebCore::JSHTMLCanvasElement::getContext):
1164         * bindings/js/JSInspectorFrontendHostCustom.cpp:
1165         (WebCore::populateContextMenuItems):
1166         * bindings/js/JSMessageEventCustom.cpp:
1167         (WebCore::handleInitMessageEvent):
1168         * bindings/js/JSWebGLRenderingContextCustom.cpp:
1169         (WebCore::dataFunctionMatrix):
1170         * bindings/js/JSXMLHttpRequestCustom.cpp:
1171         (WebCore::JSXMLHttpRequest::open):
1172         * bindings/js/JavaScriptCallFrame.cpp:
1173         (WebCore::JavaScriptCallFrame::exec):
1174         (WebCore):
1175         * bindings/js/JavaScriptCallFrame.h:
1176         (JavaScriptCallFrame):
1177         * bindings/js/ScriptDebugServer.cpp:
1178         (WebCore::ScriptDebugServer::hasBreakpoint):
1179         * bindings/scripts/CodeGeneratorJS.pm: Also add the custom create function for MasqueradesAsUndefined JS DOM wrappers.
1180         (GenerateEventListenerCall):
1181         (GenerateHeader):
1182         (JSValueToNative):
1183         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
1184         (WebCore::jsTestEventTargetPrototypeFunctionAddEventListener):
1185         (WebCore::jsTestEventTargetPrototypeFunctionRemoveEventListener):
1186         * bindings/scripts/test/JS/JSTestEventTarget.h:
1187         (WebCore::JSTestEventTarget::create):
1188         * bindings/scripts/test/JS/JSTestObj.cpp:
1189         (WebCore::setJSTestObjCreate):
1190         (WebCore::setJSTestObjReflectedBooleanAttr):
1191         (WebCore::setJSTestObjReflectedCustomBooleanAttr):
1192         (WebCore::jsTestObjPrototypeFunctionAddEventListener):
1193         (WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
1194         * bridge/c/c_utility.cpp:
1195         (JSC::Bindings::convertValueToNPVariant):
1196         * bridge/jni/jni_jsobject.mm:
1197         (JavaJSObject::convertValueToJObject):
1198         * bridge/qt/qt_runtime.cpp:
1199         (JSC::Bindings::convertValueToQVariant):
1200
1201 2012-08-15  Joanmarie Diggs  <jdiggs@igalia.com>
1202
1203         [Gtk] atk_text_get_text_at_offset() fails to provide the correct line for paragraphs in list items whose text wraps
1204         https://bugs.webkit.org/show_bug.cgi?id=83435
1205
1206         Reviewed by Chris Fleizach.
1207
1208         Fix a logic error when checking if an object is a list marker.
1209
1210         * accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
1211         (textForRenderer):
1212
1213 2012-08-15  Arpita Bahuguna  <arpitabahuguna@gmail.com>
1214
1215         There is additional space not belonged to a table between the table cells
1216         https://bugs.webkit.org/show_bug.cgi?id=74864
1217
1218         Reviewed by Julien Chaffraix.
1219
1220         Hittest for a point on the edge, i.e. between two table columns, currently
1221         does not return any matching underlying element.
1222
1223         A hittest on such a point (on the edge of two table columns) should return
1224         the column that lies either on the logical right/bottom of the said point.
1225
1226         Tests: fast/table/hittest-tablecell-bottom-edge.html
1227                fast/table/hittest-tablecell-right-edge.html
1228                fast/table/hittest-tablecell-with-borders-bottom-edge.html
1229                fast/table/hittest-tablecell-with-borders-right-edge.html
1230
1231         * rendering/RenderTableSection.cpp:
1232         (WebCore::RenderTableSection::spannedRows):
1233         Removed the FIXME regarding the correctness of the usage of the upper_bound algorithm
1234         since that is now verified by the testcases in this patch. Also, the comment
1235         regarding the inconsistency between the algorithms used in spannedRows and spannedColumns
1236         is no longer valid.
1237
1238         (WebCore::RenderTableSection::spannedColumns):
1239         Changed lower_bound() algorithm to upper_bound() for obtaining the next column.
1240         This is now similar to what is used for obtaining the next row in spannedRows().
1241
1242 2012-08-15  Anna Cavender  <annacc@chromium.org>
1243
1244         Add the timestampOffset attribute to SourceBuffer.
1245         https://bugs.webkit.org/show_bug.cgi?id=93303
1246
1247         Reviewed by Dimitri Glazkov.
1248
1249         On the 30 July 2012 version of the Media Source Extensions spec, a timestampOffset 
1250         attribute was added to the SourceBuffer object:
1251         http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html#dom-timestampoffset
1252
1253         Tests: additions to http/tests/media/media-source/video-media-source-objects.html
1254
1255         * Modules/mediasource/MediaSource.cpp:
1256         (WebCore::MediaSource::setTimestampOffset): Set the timestampOffset on MediaPlayer.
1257         (WebCore):
1258         * Modules/mediasource/MediaSource.h:
1259         (MediaSource):
1260         * Modules/mediasource/SourceBuffer.cpp:
1261         (WebCore::SourceBuffer::SourceBuffer): Let the timestampOffset be 0 initially
1262         (WebCore::SourceBuffer::timestampOffset): Return the last value set.
1263         (WebCore):
1264         (WebCore::SourceBuffer::setTimestampOffset): Forward the call onto MediaSouce.
1265         * Modules/mediasource/SourceBuffer.h:
1266         (SourceBuffer):
1267         * Modules/mediasource/SourceBuffer.idl: Create the new timestampOffset attr.
1268         * platform/graphics/MediaPlayer.cpp:
1269         (WebCore::NullMediaPlayerPrivate::sourceSetTimestampOffset): A null media player
1270             should just return false (nothing to set).
1271         (WebCore):
1272         (WebCore::MediaPlayer::sourceSetTimestampOffset):  Forward the call.
1273         * platform/graphics/MediaPlayer.h:
1274         * platform/graphics/MediaPlayerPrivate.h:
1275         (WebCore::MediaPlayerPrivateInterface::sourceSetTimestampOffset):
1276
1277 2012-08-15  Pavel Chadnov  <chadnov@google.com>
1278
1279         Web Inspector: Incorrect XHR responses when two async xhrs are sent synchronously
1280         https://bugs.webkit.org/show_bug.cgi?id=91630
1281         
1282         Reviewed by Vsevolod Vlasov.
1283
1284         CachedResource object for XHR response is now taken from ResourceLoader (if it's possible).
1285
1286         Test: http/tests/inspector/network/network-xhr-async-double.html
1287
1288         * inspector/InspectorInstrumentation.cpp:
1289         (WebCore):
1290         (WebCore::InspectorInstrumentation::didReceiveResourceResponseImpl):
1291         (WebCore::InspectorInstrumentation::didReceiveResourceResponseButCanceledImpl):
1292         * inspector/InspectorInstrumentation.h:
1293         (InspectorInstrumentation):
1294         (WebCore::InspectorInstrumentation::didReceiveResourceResponse):
1295         * inspector/InspectorResourceAgent.cpp:
1296         (WebCore::InspectorResourceAgent::willSendRequest):
1297         (WebCore::InspectorResourceAgent::didReceiveResponse):
1298         * inspector/InspectorResourceAgent.h:
1299         (WebCore):
1300         (InspectorResourceAgent):
1301         * loader/DocumentThreadableLoader.cpp:
1302         (WebCore::DocumentThreadableLoader::didReceiveResponse):
1303         * loader/ResourceLoadNotifier.cpp:
1304         (WebCore::ResourceLoadNotifier::didReceiveResponse):
1305         (WebCore::ResourceLoadNotifier::dispatchDidReceiveResponse):
1306         * loader/ResourceLoadNotifier.h:
1307         (ResourceLoadNotifier):
1308         * loader/ResourceLoader.cpp:
1309         (WebCore::ResourceLoader::isSubresourceLoader):
1310         (WebCore):
1311         * loader/ResourceLoader.h:
1312         (ResourceLoader):
1313         * loader/SubresourceLoader.cpp:
1314         (WebCore::SubresourceLoader::cachedResource):
1315         (WebCore):
1316         (WebCore::SubresourceLoader::isSubresourceLoader):
1317         * loader/SubresourceLoader.h:
1318         (SubresourceLoader):
1319         * loader/appcache/ApplicationCacheGroup.cpp:
1320         (WebCore::ApplicationCacheGroup::didReceiveResponse):
1321
1322 2012-08-15  Taiju Tsuiki  <tzik@chromium.org>
1323
1324         Web Inspector: Use default parameter on reportResult in InspectorFileSystemAgent
1325         https://bugs.webkit.org/show_bug.cgi?id=93930
1326
1327         Reviewed by Vsevolod Vlasov.
1328
1329         No functional change.
1330
1331         * inspector/InspectorFileSystemAgent.cpp:
1332         (WebCore):
1333
1334 2012-08-15  Vsevolod Vlasov  <vsevik@chromium.org>
1335
1336         Web Inspector: TabbedEditorContainer Doens't show '*' near modified file name sometimes.
1337         https://bugs.webkit.org/show_bug.cgi?id=94095
1338
1339         Reviewed by Pavel Feldman.
1340
1341         TabbedEditorContainer now correctly updates event listeners on UISourceCodeReplaced event.
1342
1343         * inspector/front-end/TabbedEditorContainer.js:
1344         (WebInspector.TabbedEditorContainer.prototype._appendFileTab):
1345         (WebInspector.TabbedEditorContainer.prototype._tabClosed):
1346         (WebInspector.TabbedEditorContainer.prototype._addUISourceCodeListeners):
1347         (WebInspector.TabbedEditorContainer.prototype._removeUISourceCodeListeners):
1348
1349 2012-08-15  Vsevolod Vlasov  <vsevik@chromium.org>
1350
1351         Web Inspector: Scroll/selection are not saved in sources panel editors sometimes.
1352         https://bugs.webkit.org/show_bug.cgi?id=94098
1353
1354         Reviewed by Pavel Feldman.
1355
1356         SourceFrame listeners and _currentFile field are now cleared only when currently open tab is closed.
1357
1358         * inspector/front-end/TabbedEditorContainer.js:
1359         (WebInspector.TabbedEditorContainer.prototype._tabClosed):
1360
1361 2012-08-15  Vsevolod Vlasov  <vsevik@chromium.org>
1362
1363         Web Inspector: [REGRESSION] "save as" of edited source in developer mode fails to update saved file
1364         https://bugs.webkit.org/show_bug.cgi?id=94074
1365
1366         Reviewed by Pavel Feldman.
1367
1368         Added dirty flag check when saving uiSourceCode to save working copy in this case.
1369
1370         * inspector/front-end/HandlerRegistry.js:
1371         (WebInspector.HandlerRegistry.prototype.appendApplicableItems.save):
1372         (WebInspector.HandlerRegistry.prototype.appendApplicableItems):
1373
1374 2012-08-15  Thiago Marcos P. Santos  <thiago.santos@intel.com>
1375
1376         Relative units are not set when the canvas has not parent
1377         https://bugs.webkit.org/show_bug.cgi?id=93840
1378
1379         Reviewed by Kenneth Rohde Christiansen.
1380
1381         Set the default font when no parent style is set. It will make
1382         possible to apply relative units when a parent is not set.
1383
1384         No new tests, unskipped the existing ones.
1385
1386         * css/StyleBuilder.cpp:
1387         (WebCore::ApplyPropertyFontSize::applyValue):
1388         Make it possible to apply relative units if a parent style exist but
1389         not a parent node. It works like this for em and ex, but not for
1390         percent units.
1391         * html/canvas/CanvasRenderingContext2D.cpp:
1392         (WebCore):
1393         (WebCore::CanvasRenderingContext2D::setFont):
1394
1395 2012-08-14  Pavel Feldman  <pfeldman@chromium.org>
1396
1397         Web Inspector: split standalone test runner, test scanner and test stub.
1398         https://bugs.webkit.org/show_bug.cgi?id=94001
1399
1400         Reviewed by Vsevolod Vlasov.
1401
1402         This change starts sending loacCompleted message to the embedder.
1403
1404         * inspector/front-end/InspectorFrontendAPI.js:
1405         (InspectorFrontendAPI.loadCompleted):
1406         * inspector/front-end/test-runner.html: Added.
1407
1408 2012-08-15  Shinya Kawanaka  <shinyak@chromium.org>
1409
1410         [Refactoring] The debug version and release version of toHTMLSelectElement can be merged without any penalty
1411         https://bugs.webkit.org/show_bug.cgi?id=94084
1412
1413         Reviewed by Kent Tamura.
1414
1415         We have two versions of toHTMLSelectElement. One has ASSERT() and the other one does not have ASSERT().
1416         We can merge them without any penalty.
1417
1418         No new tests, no change in behavior.
1419
1420         * html/HTMLSelectElement.cpp:
1421         * html/HTMLSelectElement.h:
1422         (WebCore::isHTMLSelectElement):
1423         (WebCore::toHTMLSelectElement):
1424         (WebCore):
1425
1426 2012-08-15  Shinya Kawanaka  <shinyak@chromium.org>
1427
1428         AuthorShadowDOM for meter element
1429         https://bugs.webkit.org/show_bug.cgi?id=91970
1430
1431         Reviewed by Hajime Morita.
1432
1433         We add support for AuthorShadowDOM for a meter element.
1434
1435         According to the Shadow DOM spec, a meter element should behave like having a UserAgentShadowRoot and
1436         an element in UserAgentShadowRoot draws a real 'meter' bar. In this patch, we change the inner structure
1437         of a meter element so that we can distribute an element having RenderMeter to AuthorShadowDOM.
1438
1439         Before this patch, a meter element has the following inner structure.
1440
1441             <meter>--UserAgentShadowRoot -- -- -- -- -- -- -- -- -- -- AuthorShadowRoot
1442                                |
1443                                +-- MeterBarElement
1444                                |
1445                                +-- MeterValueElement
1446
1447         After this patch, a meter element will have the following inner structure.
1448
1449             <meter>--UserAgentShadowRoot -- -- -- -- -- -- -- -- -- -- AuthorShadowRoot
1450                                |
1451                                +-- MeterInnerElement
1452                                            |
1453                                            +-- MeterBarElement
1454                                            |
1455                                            +-- MeterValueElement
1456
1457         However, if RenderTheme supports rendering meter, MeterInnerElement will not create a renderer
1458         unless an AuthorShadowDOM is attached to it so that we can keep the current rendering style.
1459
1460         Tests: fast/dom/shadow/shadowdom-for-meter-dynamic.html
1461                fast/dom/shadow/shadowdom-for-meter-multiple.html
1462                fast/dom/shadow/shadowdom-for-meter-with-style.html
1463                fast/dom/shadow/shadowdom-for-meter-without-appearance.html
1464                fast/dom/shadow/shadowdom-for-meter-without-shadow-element.html
1465                fast/dom/shadow/shadowdom-for-meter.html
1466
1467         * css/html.css:
1468         (meter): Changed the display type. inline-box is not supported WebKit. inline-block is true.
1469         (meter::-webkit-meter-inner-element):
1470         * html/HTMLMeterElement.cpp:
1471         (WebCore::HTMLMeterElement::HTMLMeterElement):
1472         (WebCore::HTMLMeterElement::createRenderer):
1473         (WebCore):
1474         (WebCore::HTMLMeterElement::attach): Added didElementStateChange.
1475         (WebCore::HTMLMeterElement::didElementStateChange):
1476         (WebCore::HTMLMeterElement::willAddAuthorShadowRoot):
1477         (WebCore::HTMLMeterElement::renderMeter):
1478         (WebCore::HTMLMeterElement::createShadowSubtree):
1479         * html/HTMLMeterElement.h:
1480         (WebCore):
1481         (WebCore::HTMLMeterElement::hasAuthorShadowRoot):
1482         (HTMLMeterElement):
1483         (WebCore::isHTMLMeterElement):
1484         (WebCore::toHTMLMeterElement):
1485         * html/shadow/MeterShadowElement.cpp:
1486         (WebCore::MeterShadowElement::meterElement):
1487         (WebCore::MeterShadowElement::rendererIsNeeded):
1488         (WebCore):
1489         (WebCore::MeterInnerElement::MeterInnerElement): We introduce a new element having RenderMeter
1490         so that we can distribute an element having RenderMeter to AuthorShadowDOM.
1491         (WebCore::MeterInnerElement::rendererIsNeeded): Different from a progress element, meter element will not be
1492         rendered using a theme. So we don't need to check the style appearance.
1493         (WebCore::MeterInnerElement::createRenderer):
1494         (WebCore::MeterInnerElement::shadowPseudoId):
1495         * html/shadow/MeterShadowElement.h:
1496         (WebCore):
1497         (MeterInnerElement):
1498         (WebCore::MeterInnerElement::create):
1499         * rendering/RenderMeter.cpp:
1500         (WebCore::RenderMeter::RenderMeter):
1501         (WebCore::RenderMeter::meterElement):
1502         (WebCore):
1503         (WebCore::RenderMeter::valueRatio):
1504         * rendering/RenderMeter.h:
1505         (RenderMeter):
1506         * rendering/RenderThemeMac.mm:
1507         (WebCore::RenderThemeMac::levelIndicatorFor):
1508
1509 2012-08-15  Adam Barth  <abarth@webkit.org>
1510
1511         [Chromium] fast/dom/Window/dom-access-from-closure-window.html is flaky on Linux
1512         https://bugs.webkit.org/show_bug.cgi?id=94060
1513
1514         Reviewed by Kentaro Hara.
1515
1516         Previously, the V8 garbage collector might have collected the Document
1517         wrapper before the DOMWindow wrapper because we overwrite the
1518         "document" property of the DOMWindow during navigation.
1519
1520         This patch adds a hidden document property on the global object to
1521         ensure that the Document wrapper lives at least as long as the
1522         DOMWindow wrapper, ensuring that DOMWindows that we obtain from V8
1523         always have non-null Document objects.
1524
1525         The JavaScriptCore bindings already have this behavior.
1526
1527         Test: fast/dom/Window/dom-access-from-closure-window-with-gc.html
1528
1529         * bindings/v8/V8DOMWindowShell.cpp:
1530         (WebCore::V8DOMWindowShell::updateDocumentWrapperCache):
1531         * bindings/v8/V8HiddenPropertyName.h:
1532         (WebCore):
1533
1534 2012-08-14  Andrey Kosyakov  <caseq@chromium.org>
1535
1536         Web Inspector: Calling getEventListeners() on element with malformed javascript event listeners crashes
1537         https://bugs.webkit.org/show_bug.cgi?id=93937
1538
1539         Reviewed by Pavel Feldman.
1540
1541         - check listener function to be non-null (happens upon an exception while compiling attribute listeners)
1542
1543         * bindings/js/JSInjectedScriptHostCustom.cpp:
1544         (WebCore::getJSListenerFunctions):
1545         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
1546         (WebCore::getJSListenerFunctions):
1547
1548 2012-08-14  Jan Keromnes  <janx@linux.com>
1549
1550         Web Inspector: CodeMirrorTextEditor doesn't clear execution line
1551         https://bugs.webkit.org/show_bug.cgi?id=94069
1552
1553         Reviewed by Pavel Feldman.
1554
1555         Make CodeMirrorTextEditor use line handles instead of numbers, remove
1556         typeof == "number" checks.
1557
1558         * inspector/front-end/CodeMirrorTextEditor.js:
1559         (WebInspector.CodeMirrorTextEditor.prototype.clearExecutionLine):
1560         (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
1561         (WebInspector.CodeMirrorTextEditor.prototype.clearLineHighlight):
1562
1563 2012-08-14  Yuta Kitamura  <yutak@google.com>
1564
1565         Unreviewed. Fix Chromium-Android builds.
1566
1567         * html/TimeInputType.cpp:
1568         (WebCore::TimeInputType::TimeInputType):
1569         Declare the function as a constructor.
1570
1571 2012-08-14  Sukolsak Sakshuwong  <sukolsak@google.com>
1572
1573         Text selection in text area in auto scroll mode goes wrong.
1574         https://bugs.webkit.org/show_bug.cgi?id=74346
1575
1576         Reviewed by Ojan Vafai.
1577
1578         WebKit triggers autoscroll in text area when the user drags the cursor from inside
1579         the text area to the outside. When that happens, it gets the local cursor position
1580         relative to the node under the cursor from hit-testing, converts it to
1581         the absolute position, and then converts it to the local position relative to the
1582         text area. However, the hit-testing method of text area did not take scrolling
1583         offset into account. This caused it to give an incorrect value of the local cursor
1584         position. Make the hit-testing take scrolling offset into account.
1585
1586         Test: fast/events/autoscroll-in-textarea.html
1587
1588         * html/shadow/TextControlInnerElements.cpp:
1589         (WebCore::TextControlInnerTextElement::createRenderer):
1590         * rendering/RenderTextControl.cpp:
1591         (WebCore::RenderTextControl::hitInnerTextElement):
1592         * rendering/RenderTextControlSingleLine.cpp:
1593         (WebCore):
1594         * rendering/RenderTextControlSingleLine.h:
1595         (WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
1596         (WebCore::RenderTextControlInnerBlock::hasLineIfEmpty):
1597
1598 2012-08-14  Shinya Kawanaka  <shinyak@chromium.org>
1599
1600         [Refactoring] RenderMenuList and RenderListBox should have a method to return HTMLSelectElement.
1601         https://bugs.webkit.org/show_bug.cgi?id=94061
1602
1603         Reviewed by Kent Tamura.
1604
1605         This is a preparation patch for Bug 91487. Since RenderMenuList::node() and RenderListBox::node()
1606         will not return HTMLSelectElement to fix Bug 91487, it would be good to have a method to HTMLSelectElement.
1607
1608         No new tests, no change in behavior.
1609
1610         * rendering/RenderListBox.cpp:
1611         (WebCore::RenderListBox::selectElement):
1612         (WebCore):
1613         (WebCore::RenderListBox::updateFromElement):
1614         (WebCore::RenderListBox::scrollToRevealSelection):
1615         (WebCore::RenderListBox::size):
1616         (WebCore::RenderListBox::numItems):
1617         (WebCore::RenderListBox::addFocusRingRects):
1618         (WebCore::RenderListBox::paintItemForeground):
1619         (WebCore::RenderListBox::paintItemBackground):
1620         (WebCore::RenderListBox::panScroll):
1621         (WebCore::RenderListBox::autoscroll):
1622         (WebCore::RenderListBox::stopAutoscroll):
1623         (WebCore::RenderListBox::valueChanged):
1624         (WebCore::RenderListBox::nodeAtPoint):
1625         * rendering/RenderListBox.h:
1626         (WebCore):
1627         (RenderListBox):
1628         * rendering/RenderMenuList.cpp:
1629         (WebCore::RenderMenuList::selectElement):
1630         (WebCore):
1631         (WebCore::RenderMenuList::updateOptionsWidth):
1632         (WebCore::RenderMenuList::updateFromElement):
1633         (WebCore::RenderMenuList::setTextFromOption):
1634         (WebCore::RenderMenuList::showPopup):
1635         (WebCore::RenderMenuList::valueChanged):
1636         (WebCore::RenderMenuList::listBoxSelectItem):
1637         (WebCore::RenderMenuList::multiple):
1638         (WebCore::RenderMenuList::didSetSelectedIndex):
1639         (WebCore::RenderMenuList::didUpdateActiveOption):
1640         (WebCore::RenderMenuList::itemText):
1641         (WebCore::RenderMenuList::itemAccessibilityText):
1642         (WebCore::RenderMenuList::itemToolTip):
1643         (WebCore::RenderMenuList::itemIsEnabled):
1644         (WebCore::RenderMenuList::itemStyle):
1645         (WebCore::RenderMenuList::itemBackgroundColor):
1646         (WebCore::RenderMenuList::listSize):
1647         (WebCore::RenderMenuList::selectedIndex):
1648         (WebCore::RenderMenuList::itemIsSeparator):
1649         (WebCore::RenderMenuList::itemIsLabel):
1650         (WebCore::RenderMenuList::itemIsSelected):
1651         (WebCore::RenderMenuList::setTextFromItem):
1652         * rendering/RenderMenuList.h:
1653         (WebCore):
1654         (RenderMenuList):
1655
1656 2012-08-10  Kinuko Yasuda  <kinuko@chromium.org>
1657
1658         FileWriter fails with assertion when trying to write empty Blob
1659         https://bugs.webkit.org/show_bug.cgi?id=93694
1660
1661         Reviewed by Kent Tamura.
1662
1663         if the given data size is zero (i.e. m_bytesToWrite is zero) the assertion 'bytes + m_bytesWritten > 0' should not be tested.
1664
1665         Tests: fast/filesystem/file-writer-empty-blob.html
1666                fast/filesystem/workers/file-writer-empty-blob.html
1667
1668         * Modules/filesystem/FileWriter.cpp:
1669         (WebCore::FileWriter::didWrite):
1670
1671 2012-08-14  Keishi Hattori  <keishi@webkit.org>
1672
1673         Share common code between calendar picker and color suggestion picker
1674         https://bugs.webkit.org/show_bug.cgi?id=93802
1675
1676         Reviewed by Kent Tamura.
1677
1678         We want to share common code like utility functions between picker page popups.
1679
1680         No new tests because no behavior change. Covered by existing tests, color-suggestion-picker-appearance.html and calendar-picker-apeparance.html.
1681
1682         * Resources/pagepopups/calendarPicker.js:
1683         (YearMonthController.prototype.attachTo):
1684         (YearMonthController.prototype._showPopup):
1685         * Resources/pagepopups/colorSuggestionPicker.js:
1686         (handleMessage):
1687         (handleArgumentsTimeout):
1688         * Resources/pagepopups/pickerCommon.css: Added.
1689         (body):
1690         * Resources/pagepopups/pickerCommon.js: Added.
1691         (createElement):
1692         (resizeWindow):
1693         (getScrollbarWidth):
1694         * WebCore.gyp/WebCore.gyp: Add actions for pickerCommon.{css,js}
1695         * html/shadow/CalendarPickerElement.cpp:
1696         (WebCore::CalendarPickerElement::writeDocument):
1697
1698 2012-08-14  Ojan Vafai  <ojan@chromium.org>
1699
1700         Fix access to m_markupBox in WebCore::EllipsisBox::paint
1701         https://bugs.webkit.org/show_bug.cgi?id=91138
1702
1703         Reviewed by Abhishek Arya.
1704
1705         EllipsisBox would hold on to m_markupBox, which would then get destroyed during
1706         the followup layoutIfNeeded in layoutVerticalBox. Instead, have EllipsisBox
1707         dynamically grab to pointer to the markup box during paint since there's no
1708         straightforward way to notify the EllipsisBox that the markupBox has been destroyed
1709         and/or point it at the new markupBox.
1710
1711         Test: fast/overflow/line-clamp-and-columns.html
1712
1713         * rendering/EllipsisBox.cpp:
1714         (WebCore::EllipsisBox::paint):
1715         (WebCore):
1716         (WebCore::EllipsisBox::paintMarkupBox):
1717         * rendering/EllipsisBox.h:
1718         (WebCore::EllipsisBox::EllipsisBox):
1719         Just store a boolean that we have a markup box that needs painting.
1720         * rendering/RenderDeprecatedFlexibleBox.cpp:
1721         (WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
1722         Clearing the override size right after setting it was incorrect because
1723         there are cases where we'll do a followup layout in layoutVerticalBox, at which
1724         point we'll still need the override size.
1725         (WebCore::RenderDeprecatedFlexibleBox::clearLineClamp):
1726         Clear the override size here to handle cases where line clamp is removed since
1727         we don't call applyLineClamp in those cases.
1728
1729 2012-08-14  Yoshifumi Inoue  <yosin@chromium.org>
1730
1731         [Forms] Make input type "time" to use multiple field time input UI
1732         https://bugs.webkit.org/show_bug.cgi?id=93929
1733
1734         Reviewed by Kent Tamura.
1735
1736         This patch changes input type "time" UI to use multiple field time
1737         input UI when build flag ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS
1738         enabled.
1739
1740         No new tests. This patch doesn't change behavior for users, however,
1741         this patch changes behavior on layout tests. Tests will be added
1742         in another patch with runtime enabled feature flag is enabled.
1743
1744         Test expectations for following tests are updated:
1745          - fast/forms/time/time-input-visible-string.html
1746          - fast/forms/time/time-stepup-stepdown-from-renderer.html
1747
1748         * html/BaseDateAndTimeInputType.h:
1749         (BaseDateAndTimeInputType): Exposed serialize() to derived classes.
1750         * html/TimeInputType.cpp:
1751         (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::DateTimeEditControlOwnerImpl):
1752         (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::~DateTimeEditControlOwnerImpl):
1753         (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::editControlMouseFocus):
1754         (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::editControlValueChanged):
1755         (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::isEditControlOwnerDisabled):
1756         (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::isEditControlOwnerReadOnly):
1757         (WebCore::TimeInputType::TimeInputType):
1758         (WebCore::TimeInputType::~TimeInputType):
1759         (WebCore::TimeInputType::createRenderer):
1760         (WebCore::TimeInputType::createShadowSubtree):
1761         (WebCore::TimeInputType::destroyShadowSubtree):
1762         (WebCore::TimeInputType::forwardEvent):
1763         (WebCore::TimeInputType::disabledAttributeChanged):
1764         (WebCore::TimeInputType::handleKeydownEvent):
1765         (WebCore::TimeInputType::handleDOMActivateEvent):
1766         (WebCore::TimeInputType::isKeyboardFocusable):
1767         (WebCore::TimeInputType::isMouseFocusable):
1768         (WebCore::TimeInputType::minOrMaxAttributeChanged):
1769         (WebCore::TimeInputType::readonlyAttributeChanged):
1770         (WebCore::TimeInputType::isTextField):
1771         (WebCore::TimeInputType::setValue):
1772         (WebCore::TimeInputType::shouldUseInputMethod):
1773         (WebCore::TimeInputType::stepAttributeChanged):
1774         (WebCore::TimeInputType::updateEditElementLayout):
1775         (WebCore::TimeInputType::updateInnerTextValue):
1776         (WebCore::TimeInputType):
1777         * html/TimeInputType.h:
1778         (TimeInputType):
1779         (DateTimeEditControlOwnerImpl):
1780
1781 2012-08-14  Dean Jackson  <dino@apple.com>
1782
1783         Initial call to webkitRequestAnimationFrame returns 0, Spec indicates the handle should always be > 0
1784         https://bugs.webkit.org/show_bug.cgi?id=85819
1785
1786         Reviewed by James Robinson.
1787
1788         The callback id returned by requestAnimationFrame was beginning at zero, when the spec
1789         says it should be above one. Use a pre-increment rather than a post-increment.
1790
1791         Test: fast/animation/request-animation-frame-callback-id.html
1792
1793         * dom/ScriptedAnimationController.cpp:
1794         (WebCore::ScriptedAnimationController::registerCallback): Pre-increment rather than post-increment.
1795
1796 2012-08-14  Levi Weintraub  <leviw@chromium.org>
1797
1798         r125591 broke tests with SUBPIXEL_LAYOUT disabled
1799         https://bugs.webkit.org/show_bug.cgi?id=94027
1800
1801         Reviewed by Eric Seidel.
1802
1803         The previous patch to fix block preferred widths for subpixel layout broke ports
1804         without the flag enabled. This patch adds a static inline function --
1805         adjustFloatForSubPixelLayout -- that truncates with sub-pixel layout disabled, and
1806         ceil's to the nearest FractionalLayoutUnit when sub-pixel layout is enabled.
1807
1808         A block's max preferred width should be enough to layout the entire line without
1809         wrapping. r125591 addressed a bug whereby converting floats to LayoutUnits with sub-
1810         pixel layout enabled lost precision in certain cases, and could result in a line
1811         being layed out to slightly over the max preferred width of the block.
1812
1813         This patch reverts the behavior when sub-pixel layout is disabled to truncating
1814         sub-pixel values (such as those that originate in Length) when assigning them to
1815         LayoutUnits, and ceiling the length of the entire line to the next largest integer.
1816
1817         Covered by existing tests.
1818
1819         * rendering/RenderBlock.cpp:
1820         (WebCore):
1821         (WebCore::adjustFloatForSubPixelLayout):
1822         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
1823
1824 2012-08-14  Chris Evans  <cevans@google.com>
1825
1826         Handle the XPath / (root) operator correctly for nodes that aren't attached to the document.
1827         https://bugs.webkit.org/show_bug.cgi?id=36427
1828
1829         Reviewed by Abhishek Arya.
1830
1831         We now behave the same as Firefox 14.
1832         The consensus seems to be that the XPath spec is ambiguous for the case of detached nodes, and that using the fragment root is more intuitive than the document root for the case of detached nodes.
1833         For example, http://www.w3.org/TR/xpath/ section 2 "Location Paths" is only clear for attached nodes: "A / by itself selects the root node of the document containing the context node. If it is followed by a relative location path, then the location path selects the set of nodes that would be selected by the relative location path relative to the root node of the document containing the context node."
1834
1835         Test: fast/xpath/xpath-detached-nodes.html
1836
1837         * xml/XPathPath.cpp:
1838         (WebCore::XPath::LocationPath::evaluate): Jump to the root of the detached subtree instead of the parent document if the node isn't attached to the document.
1839
1840 2012-08-14  Alexandru Chiculita  <achicu@adobe.com>
1841
1842         [CSS Shaders][Chromium] Filters area applied twice when CustomFilterOperation is in the list
1843         https://bugs.webkit.org/show_bug.cgi?id=93900
1844
1845         Reviewed by James Robinson.
1846
1847         Whenever the platform cannot render a shader in hardware it will fallback to software. 
1848         In such cases, the platform should remove any old filters applied, so that the filters do not apply twice.
1849         
1850         Test: css3/filters/custom/filter-fallback-to-software.html
1851
1852         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
1853         (WebCore::GraphicsLayerChromium::setFilters):
1854
1855 2012-08-14  Alec Flett  <alecflett@chromium.org>
1856
1857         IndexedDB: add tracing to IDBLevelDBBackingStore
1858         https://bugs.webkit.org/show_bug.cgi?id=93914
1859
1860         Reviewed by Tony Chang.
1861
1862         Add a bunch of trace events to the lower level
1863         database layer, to separate database slowness
1864         from core IDB slowness.
1865
1866         Also moving findKeyInIndex into IDBLevelDBBackingStore to
1867         eventually make it const.
1868
1869         No new tests, just adding debug logging.
1870
1871         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
1872         (WebCore::IDBLevelDBBackingStore::open):
1873         (WebCore::IDBLevelDBBackingStore::deleteDatabase):
1874         (WebCore::IDBLevelDBBackingStore::getObjectStores):
1875         (WebCore::IDBLevelDBBackingStore::createObjectStore):
1876         (WebCore::IDBLevelDBBackingStore::deleteObjectStore):
1877         (WebCore::IDBLevelDBBackingStore::getObjectStoreRecord):
1878         (WebCore):
1879         (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
1880         (WebCore::IDBLevelDBBackingStore::clearObjectStore):
1881         (WebCore::IDBLevelDBBackingStore::deleteObjectStoreRecord):
1882         (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
1883         (WebCore::IDBLevelDBBackingStore::getIndexes):
1884         (WebCore::IDBLevelDBBackingStore::createIndex):
1885         (WebCore::IDBLevelDBBackingStore::deleteIndex):
1886         (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
1887         (WebCore::IDBLevelDBBackingStore::findKeyInIndex):
1888         (WebCore::IDBLevelDBBackingStore::getPrimaryKeyViaIndex):
1889         (WebCore::IDBLevelDBBackingStore::keyExistsInIndex):
1890         (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor):
1891         (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor):
1892         (WebCore::IDBLevelDBBackingStore::openIndexCursor):
1893         (WebCore::IDBLevelDBBackingStore::Transaction::commit):
1894         (WebCore::IDBLevelDBBackingStore::Transaction::rollback):
1895         * Modules/indexeddb/IDBLevelDBBackingStore.h:
1896         (IDBLevelDBBackingStore):
1897         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
1898         (WebCore):
1899         * Modules/indexeddb/IDBTransaction.cpp:
1900         (WebCore::IDBTransaction::onAbort):
1901         (WebCore::IDBTransaction::onComplete):
1902
1903 2012-08-14  Hayato Ito  <hayato@chromium.org>
1904
1905         Refactor EventDispatcher, moving code to make actual changes easier to review later.
1906         https://bugs.webkit.org/show_bug.cgi?id=93959
1907
1908         Reviewed by Dimitri Glazkov.
1909
1910         No new tests - no new functionality.
1911
1912         * dom/EventDispatcher.cpp:
1913         (WebCore::EventDispatcher::dispatchScopedEvent):
1914         (WebCore):
1915         (WebCore::EventDispatcher::dispatchSimulatedClick):
1916
1917 2012-08-14  Kihong Kwon  <kihong.kwon@samsung.com>
1918
1919         Clear pattern to prevent timing problem between cancelVibration and vibrate
1920         https://bugs.webkit.org/show_bug.cgi?id=93957
1921
1922         Reviewed by Kentaro Hara.
1923
1924         There is a timing issue in the cancelVibration.
1925         Since vibrate works based on timer, cancelVibration might be called
1926         eariler than vibrate when cancelVibration is called just after vibrate call.
1927         It can be prevented from clearing m_pattern in the cancelVibration.
1928
1929         * Modules/vibration/Vibration.cpp:
1930         (WebCore::Vibration::cancelVibration):
1931
1932 2012-08-14  Alexandru Chiculita  <achicu@adobe.com>
1933
1934         Layout Test css3/filters/custom/custom-filter-animation.html is failing
1935         https://bugs.webkit.org/show_bug.cgi?id=91769
1936
1937         Reviewed by Dean Jackson.
1938
1939         Mountain Lion added support for accelerated filter animations, but CSS Shaders are still
1940         rendered in software mode. The setFilters method is using PlatformCALayer::filtersCanBeComposited to check
1941         if the filters can be handled in hardwawre, so I've reused that in the createFilterAnimationsFromKeyframes
1942         to check if the animations can also run in hardware.
1943
1944         Also the GraphicsContext3D doesn't update its own internal m_boundFBO when a framebuffer is deleted,
1945         so I've added that to the FECustomFilter. Otherwise, if the next framebuffer is created using the same
1946         identifier, bindFramebuffer will just return without calling the glBindFramebuffer because of this optimization.
1947
1948         The documentation for glDeleteFramebuffer says that the bound framebuffer is unbound before deleting it.
1949         This is not reproduceable from WebGL, because WebGLRenderingContext::deleteFramebuffer
1950         already knows to unbind the framebuffer when needed. However, I'm also adding that in GraphicsContext3DOpenGLCommon.cpp
1951         and efl/GraphicsContext3DPrivate.cpp, to make sure that m_boundFBO is not used for other purposes.
1952
1953         No new tests, this patch fixes a failing test.
1954
1955         * platform/graphics/ca/GraphicsLayerCA.cpp:
1956         (WebCore::GraphicsLayerCA::createFilterAnimationsFromKeyframes):
1957         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
1958         (WebCore::GraphicsContext3DPrivate::deleteFramebuffer):
1959         * platform/graphics/filters/FECustomFilter.cpp:
1960         (WebCore::FECustomFilter::deleteRenderBuffers):
1961         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
1962         (WebCore::GraphicsContext3D::deleteFramebuffer):
1963
1964 2012-08-14  Adam Barth  <abarth@webkit.org>
1965
1966         Delete Frame::domWindow() and Frame::existingDOMWindow()
1967         https://bugs.webkit.org/show_bug.cgi?id=93990
1968
1969         Reviewed by Eric Seidel.
1970
1971         These functions just call through to document()->domWindow(). This
1972         patch updates the callers so it's clearer what's going on.
1973
1974         * bindings/js/JSDOMBinding.cpp:
1975         (WebCore::shouldAllowAccessToFrame):
1976         (WebCore::printErrorMessageForFrame):
1977         * bindings/js/JSDocumentCustom.cpp:
1978         (WebCore::JSDocument::location):
1979         (WebCore::JSDocument::setLocation):
1980         * bindings/js/JSEventListener.cpp:
1981         (WebCore::JSEventListener::handleEvent):
1982         * bindings/js/ScriptCachedFrameData.cpp:
1983         (WebCore::ScriptCachedFrameData::restore):
1984         * bindings/js/ScriptController.cpp:
1985         (WebCore::ScriptController::createWindowShell):
1986         * bindings/objc/DOMAbstractView.mm:
1987         (core):
1988         * bindings/v8/NPV8Object.cpp:
1989         (WebCore::toV8Context):
1990         * bindings/v8/ScriptController.cpp:
1991         (WebCore::createScriptObject):
1992         (WebCore::ScriptController::createScriptObjectForPluginElement):
1993         * bindings/v8/V8DOMWindowShell.cpp:
1994         (WebCore::V8DOMWindowShell::initContextIfNeeded):
1995         * bindings/v8/V8IsolatedContext.cpp:
1996         (WebCore::V8IsolatedContext::V8IsolatedContext):
1997         * bindings/v8/V8Proxy.cpp:
1998         (WebCore::V8Proxy::retrieveFrame):
1999         * bindings/v8/custom/V8DOMWindowCustom.cpp:
2000         (WebCore::V8DOMWindow::indexedPropertyGetter):
2001         (WebCore::V8DOMWindow::namedPropertyGetter):
2002         * bindings/v8/custom/V8DocumentLocationCustom.cpp:
2003         (WebCore::V8Document::locationAccessorGetter):
2004         (WebCore::V8Document::locationAccessorSetter):
2005         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
2006         (WebCore::V8HTMLDocument::GetNamedProperty):
2007         * bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
2008         (WebCore::V8HTMLFrameSetElement::namedPropertyGetter):
2009         * dom/Document.cpp:
2010         (WebCore::printNavigationErrorMessage):
2011         * dom/ViewportArguments.cpp:
2012         (WebCore::reportViewportWarning):
2013         * editing/AlternativeTextController.cpp:
2014         (WebCore::AlternativeTextController::insertDictatedText):
2015         * editing/Editor.cpp:
2016         (WebCore::Editor::pasteAsPlainText):
2017         (WebCore::Editor::pasteAsFragment):
2018         (WebCore::Editor::setComposition):
2019         * history/PageCache.cpp:
2020         (WebCore::logCanCacheFrameDecision):
2021         (WebCore::PageCache::canCachePageContainingThisFrame):
2022         * html/HTMLFormElement.cpp:
2023         (WebCore::HTMLFormElement::validateInteractively):
2024         * html/HTMLFrameOwnerElement.cpp:
2025         (WebCore::HTMLFrameOwnerElement::contentWindow):
2026         * html/canvas/WebGLRenderingContext.cpp:
2027         (WebCore):
2028         (WebCore::WebGLRenderingContext::printWarningToConsole):
2029         * inspector/InspectorDOMStorageAgent.cpp:
2030         (WebCore::InspectorDOMStorageAgent::storageId):
2031         * loader/DocumentLoader.cpp:
2032         (WebCore::DocumentLoader::checkLoadComplete):
2033         * loader/DocumentWriter.cpp:
2034         (WebCore::DocumentWriter::begin):
2035         * loader/FrameLoader.cpp:
2036         (WebCore::FrameLoader::stopLoading):
2037         (WebCore::FrameLoader::didOpenURL):
2038         (WebCore::FrameLoader::checkIfDisplayInsecureContent):
2039         (WebCore::FrameLoader::checkIfRunInsecureContent):
2040         (WebCore::FrameLoader::reportLocalLoadFailed):
2041         (WebCore::FrameLoader::prepareForCachedPageRestore):
2042         (WebCore::FrameLoader::open):
2043         (WebCore::FrameLoader::fireBeforeUnloadEvent):
2044         * loader/MainResourceLoader.cpp:
2045         (WebCore::MainResourceLoader::didReceiveResponse):
2046         * loader/appcache/ApplicationCacheGroup.cpp:
2047         (WebCore::ApplicationCacheGroup::abort):
2048         (WebCore::ApplicationCacheGroup::didReceiveResponse):
2049         (WebCore::ApplicationCacheGroup::didFinishLoading):
2050         (WebCore::ApplicationCacheGroup::didFail):
2051         (WebCore::ApplicationCacheGroup::didReceiveManifestResponse):
2052         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
2053         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
2054         * loader/cache/CachedResourceLoader.cpp:
2055         (WebCore::CachedResourceLoader::printAccessDeniedMessage):
2056         * page/DOMWindow.cpp:
2057         (WebCore::DOMWindow::isCurrentlyDisplayedInFrame):
2058         (WebCore::DOMWindow::self):
2059         (WebCore::DOMWindow::opener):
2060         (WebCore::DOMWindow::parent):
2061         (WebCore::DOMWindow::top):
2062         (WebCore::DOMWindow::createWindow):
2063         (WebCore::DOMWindow::open):
2064         * page/DOMWindowProperty.cpp:
2065         (WebCore::DOMWindowProperty::DOMWindowProperty):
2066         (WebCore::DOMWindowProperty::reconnectFrameFromPageCache):
2067         * page/DragController.cpp:
2068         (WebCore::DragController::dispatchTextInputEventFor):
2069         * page/EventHandler.cpp:
2070         (WebCore::EventHandler::handleTextInputEvent):
2071         * page/Frame.cpp:
2072         * page/Frame.h:
2073         (Frame):
2074         * page/Location.cpp:
2075         (WebCore::Location::replace):
2076         (WebCore::Location::reload):
2077         (WebCore::Location::setLocation):
2078         * storage/StorageEventDispatcher.cpp:
2079         (WebCore::StorageEventDispatcher::dispatch):
2080         * svg/SVGDocumentExtensions.cpp:
2081         (WebCore::reportMessage):
2082         * xml/XSLStyleSheetLibxslt.cpp:
2083         (WebCore::XSLStyleSheet::parseString):
2084         * xml/XSLTProcessorLibxslt.cpp:
2085         (WebCore::docLoaderFunc):
2086         * xml/XSLTProcessorQt.cpp:
2087         (WebCore::XSLTMessageHandler::handleMessage):
2088
2089 2012-08-14  Mike West  <mkwst@chromium.org>
2090
2091         Tighten up parsing the 'script-nonce' CSP directive value.
2092         https://bugs.webkit.org/show_bug.cgi?id=93783
2093
2094         Reviewed by Adam Barth.
2095
2096         Currently we're accepting any non-whitespace character. This patch
2097         limits the valid characters to VCHAR minus ',' and ';', and pulls the
2098         validity check out into a named function for clarity.
2099
2100         Test: http/tests/security/contentSecurityPolicy/1.1/scriptnonce-separators-allowed.html
2101
2102         * page/ContentSecurityPolicy.cpp:
2103         (WebCore::CSPDirectiveList::parseScriptNonce):
2104
2105 2012-08-14  Adam Barth  <abarth@webkit.org>
2106
2107         Delete DOMWindow::m_url
2108         https://bugs.webkit.org/show_bug.cgi?id=93989
2109
2110         Reviewed by Eric Seidel.
2111
2112         There's no reason for DOMWindow to keep a separate copy of the
2113         Document's URL now that there is a predictable way to get a Document
2114         from a DOMWindow.
2115
2116         * loader/DocumentWriter.cpp:
2117         (WebCore::DocumentWriter::begin):
2118         * loader/FrameLoader.cpp:
2119         (WebCore::FrameLoader::open):
2120         * page/DOMWindow.cpp:
2121         (WebCore::DOMWindow::crossDomainAccessErrorMessage):
2122         * page/DOMWindow.h:
2123         (DOMWindow):
2124
2125 2012-08-14  Nikhil Bhargava  <nbhargava@google.com>
2126
2127         De-inline stuff from RenderStyle.h
2128         https://bugs.webkit.org/show_bug.cgi?id=94019
2129
2130         Reviewed by Eric Seidel.
2131
2132         De-inline things from RenderStyle.h in preparation of fixing a series of
2133         errant includes.
2134
2135         No new tests. Doesn't change functionality
2136
2137         * WebCore.exp.in:
2138         * rendering/style/RenderStyle.cpp:
2139         (WebCore::RenderStyle::listStyleImage):
2140         (WebCore::RenderStyle::setListStyleImage):
2141         (WebCore):
2142         (WebCore::RenderStyle::color):
2143         (WebCore::RenderStyle::visitedLinkColor):
2144         (WebCore::RenderStyle::setColor):
2145         (WebCore::RenderStyle::setVisitedLinkColor):
2146         (WebCore::RenderStyle::horizontalBorderSpacing):
2147         (WebCore::RenderStyle::verticalBorderSpacing):
2148         (WebCore::RenderStyle::setHorizontalBorderSpacing):
2149         (WebCore::RenderStyle::setVerticalBorderSpacing):
2150         (WebCore::RenderStyle::font):
2151         (WebCore::RenderStyle::fontMetrics):
2152         (WebCore::RenderStyle::fontDescription):
2153         (WebCore::RenderStyle::fontSize):
2154         (WebCore::RenderStyle::wordSpacing):
2155         (WebCore::RenderStyle::letterSpacing):
2156         (WebCore::RenderStyle::setFontDescription):
2157         (WebCore::RenderStyle::lineHeight):
2158         (WebCore::RenderStyle::setLineHeight):
2159         (WebCore::RenderStyle::computedLineHeight):
2160         (WebCore::RenderStyle::setWordSpacing):
2161         (WebCore::RenderStyle::setLetterSpacing):
2162         * rendering/style/RenderStyle.h:
2163
2164 2012-08-14  Andrei Onea  <onea@adobe.com>
2165
2166         [CSSRegions]Region overset property is incorectly computed when content has negative letter spacing and is flowed near to the edge of a region
2167         https://bugs.webkit.org/show_bug.cgi?id=92506
2168
2169         Reviewed by Eric Seidel.
2170
2171         When the content which is flowed inside a region creates visual overflow in
2172         the writing direction, the overflow rect is also extended in the other direction, and
2173         that forces regionOverset to become "fit" for all regions.
2174
2175         Tests: fast/regions/element-region-overset-state-negative-letter-spacing.html
2176                fast/regions/element-region-overset-state-vertical-rl-negative-letter-spacing.html
2177
2178         * rendering/RenderFlowThread.cpp:
2179         (WebCore::RenderFlowThread::computeOverflowStateForRegions):
2180
2181 2012-08-14  Florin Malita  <fmalita@chromium.org>
2182
2183         beginElement() does not observe updated animation attributes
2184         https://bugs.webkit.org/show_bug.cgi?id=93972
2185
2186         Reviewed by Dirk Schulze.
2187
2188         The SVG animation attributes 'from', 'to' and 'by' should be registered as supported
2189         SVGSMILElement attributes in order to trigger animationAttributeChanged() on dynamic
2190         updates.
2191
2192         Test: svg/animations/updated-attributes.html
2193
2194         * svg/SVGAnimationElement.cpp:
2195         (WebCore::SVGAnimationElement::updateAnimation):
2196         Minor optimization - avoid recalculating animationMode().
2197
2198         * svg/animation/SVGSMILElement.cpp:
2199         (WebCore::SVGSMILElement::isSupportedAttribute):
2200         Register 'from', 'to' and 'by' as supported SVGSMILElement attributes.
2201
2202 2012-08-14  Filip Spacek  <fspacek@rim.com>
2203
2204         [BlackBerry] Don't crash on OOM in AC
2205         https://bugs.webkit.org/show_bug.cgi?id=93999
2206
2207         Reviewed by George Staikos.
2208
2209         Internally reviewed by George Staikos.
2210
2211         Fail gracefully in case we fail to allocate the bitmap
2212         for the AC layer contents.
2213
2214         * platform/graphics/blackberry/InstrumentedPlatformCanvas.h:
2215         (WebCore::InstrumentedPlatformCanvas::InstrumentedPlatformCanvas):
2216         * platform/graphics/blackberry/LayerWebKitThread.cpp:
2217         (WebCore::LayerWebKitThread::paintContents):
2218
2219 2012-08-14  Lauro Neto  <lauro.neto@openbossa.org>
2220
2221         Convert signals/slots to Q_* macros.
2222
2223         [Qt] Use Q_SLOTS and Q_SIGNALS instead of slots and signals
2224         https://bugs.webkit.org/show_bug.cgi?id=93996
2225
2226         Reviewed by Kenneth Rohde Christiansen.
2227
2228         Change usage of keyword-conflicting 'signals' and 'slots' for
2229         Q_SIGNALS and Q_SLOTS macro.
2230
2231         * bridge/testqtbindings.cpp:
2232         (MyObject):
2233         * platform/graphics/gstreamer/PlatformVideoWindowPrivate.h:
2234         * platform/graphics/qt/MediaPlayerPrivateQt.h:
2235         (MediaPlayerPrivateQt):
2236         * platform/network/qt/DnsPrefetchHelper.h:
2237         (DnsPrefetchHelper):
2238         * platform/network/qt/NetworkStateNotifierPrivate.h:
2239         (NetworkStateNotifierPrivate):
2240         * platform/network/qt/QNetworkReplyHandler.h:
2241         (QNetworkReplyHandler):
2242         * platform/network/qt/QtMIMETypeSniffer.h:
2243         (QtMIMETypeSniffer):
2244         * platform/network/qt/SocketStreamHandlePrivate.h:
2245         (SocketStreamHandlePrivate):
2246         * platform/qt/GamepadsQt.cpp:
2247         (GamepadDeviceLinuxQt):
2248         (GamepadsQt):
2249         * platform/qt/SharedTimerQt.cpp:
2250         (SharedTimerQt):
2251
2252 2012-08-14  Andrei Onea  <onea@adobe.com>
2253
2254         [CSSRegions]regionOverset is computed as "overset" even though the region is not the last in the chain
2255         https://bugs.webkit.org/show_bug.cgi?id=93102
2256
2257         Reviewed by Eric Seidel.
2258
2259         Making Element.webkitRegionOverset return "overset" only for the last region in a region chain, 
2260         if the content cannot fit inside it, to reflect current spec. http://www.w3.org/TR/css3-regions/#dom-region-regionoverset
2261
2262         * rendering/RenderFlowThread.cpp:
2263         (WebCore::RenderFlowThread::computeOverflowStateForRegions):
2264
2265 2012-08-14  Jan Keromnes  <janx@linux.com>
2266
2267         Web Inspector: Render breakpoint gutter markers and execution line in CodeMirrorTextEditor
2268         https://bugs.webkit.org/show_bug.cgi?id=93686
2269
2270         Reviewed by Pavel Feldman.
2271
2272         Divided TextEditor.addDecoration into addBreakpoint, setExecutionLine
2273         and addDecoration. Same for removeDecoration. Render breakpoint
2274         markers and execution line in CodeMirrorTextEditor.
2275
2276         * inspector/front-end/CodeMirrorTextEditor.js:
2277         (WebInspector.CodeMirrorTextEditor):
2278         (WebInspector.CodeMirrorTextEditor.prototype._onGutterClick):
2279         (WebInspector.CodeMirrorTextEditor.prototype.addBreakpoint):
2280         (WebInspector.CodeMirrorTextEditor.prototype.removeBreakpoint):
2281         (WebInspector.CodeMirrorTextEditor.prototype.setExecutionLine):
2282         (WebInspector.CodeMirrorTextEditor.prototype.clearExecutionLine):
2283         (WebInspector.CodeMirrorTextEditor.prototype.addDecoration):
2284         (WebInspector.CodeMirrorTextEditor.prototype.removeDecoration):
2285         (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
2286         (WebInspector.CodeMirrorTextEditor.prototype.clearLineHighlight):
2287         (WebInspector.CodeMirrorTextEditor.prototype.removeAttribute):
2288         * inspector/front-end/DefaultTextEditor.js:
2289         (WebInspector.DefaultTextEditor.prototype._onMouseDown):
2290         (WebInspector.DefaultTextEditor.prototype.addBreakpoint):
2291         (WebInspector.DefaultTextEditor.prototype.removeBreakpoint):
2292         (WebInspector.DefaultTextEditor.prototype.setExecutionLine):
2293         (WebInspector.DefaultTextEditor.prototype.clearExecutionLine):
2294         (WebInspector.DefaultTextEditor.prototype.addDecoration):
2295         (WebInspector.DefaultTextEditor.prototype.removeDecoration):
2296         * inspector/front-end/JavaScriptSourceFrame.js:
2297         (WebInspector.JavaScriptSourceFrame):
2298         (WebInspector.JavaScriptSourceFrame.prototype._addBreakpointDecoration):
2299         (WebInspector.JavaScriptSourceFrame.prototype._removeBreakpointDecoration):
2300         (WebInspector.JavaScriptSourceFrame.prototype.setExecutionLine):
2301         (WebInspector.JavaScriptSourceFrame.prototype.clearExecutionLine):
2302         (WebInspector.JavaScriptSourceFrame.prototype._handleGutterClick):
2303         * inspector/front-end/TextEditor.js:
2304         (WebInspector.TextEditor.prototype.addBreakpoint):
2305         (WebInspector.TextEditor.prototype.removeBreakpoint):
2306         (WebInspector.TextEditor.prototype.setExecutionLine):
2307         (WebInspector.TextEditor.prototype.clearExecutionLine):
2308         (WebInspector.TextEditor.prototype.addDecoration):
2309         (WebInspector.TextEditor.prototype.removeDecoration):
2310         * inspector/front-end/cmdevtools.css:
2311         (.CodeMirror):
2312         (.cm-highlight):
2313         (@-webkit-keyframes fadeout):
2314         (to):
2315         (.cm-breakpoint):
2316         (.cm-breakpoint-disabled):
2317         (.cm-breakpoint-conditional):
2318         (.cm-execution-line):
2319         (.webkit-html-message-bubble):
2320         (.webkit-html-warning-message):
2321         (.webkit-html-error-message):
2322         (.webkit-html-message-line):
2323         (.webkit-html-message-line-hover):
2324
2325 2012-08-13  Adrienne Walker  <enne@google.com>
2326
2327         REGRESSION (r109851): Video controls do not render
2328         https://bugs.webkit.org/show_bug.cgi?id=93859
2329
2330         Reviewed by Simon Fraser.
2331
2332         Because video layers can't act as an ancestor composited layer whose
2333         backing can be shared by child layers, any child layer of a video
2334         layer needs to be put into its own composited layer. Because this is
2335         technically overlap, the "overlap" indirect compositing reason is
2336         reused for this case.
2337
2338         Test: compositing/video/video-controls-layer-creation.html
2339
2340         * rendering/RenderLayerCompositor.cpp:
2341         (WebCore::RenderLayerCompositor::computeCompositingRequirements):
2342
2343 2012-08-14  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
2344
2345         WebKitTestRunner needs layoutTestController.dumpResourceLoadCallbacks
2346         https://bugs.webkit.org/show_bug.cgi?id=42332
2347
2348         Reviewed by Kenneth Rohde Christiansen.
2349
2350         Provide build for mac.
2351
2352         * WebCore.exp.in: Added __ZNK7WebCore19ResourceRequestBase20firstPartyForCookiesEv.
2353
2354 2012-08-14  Adam Barth  <abarth@webkit.org>
2355
2356         DOMWindow::document() should not reach through Frame
2357         https://bugs.webkit.org/show_bug.cgi?id=27640
2358
2359         Reviewed by Eric Seidel.
2360
2361         Originally, the lifetime of DOMWindow was similar to that of Frame in
2362         that it was reused for each document that was displayed in the Frame.
2363         To fix some tricky security issues, all modern browsers use a "split
2364         window" architecture whereby the DOMWindow is not reused by each
2365         Document in a Frame. Instead a JavaScript "window shell" object
2366         redirects JavaScript references to the active Document's DOMWindow.
2367
2368         When we implemented split windows, we left DOMWindow attached to the
2369         Frame and attempted to keep it in sync with the Document via a lot of
2370         delicate code. One of the main problems with this approach is that
2371         finding the DOMWindow associated with a Document or the Document
2372         associated with a DOMWindow required traversing through the Frame.
2373         Because there is a many-to-one relationship between both Documents and
2374         Frames (as well as DOMWindows and Frames), this traversal is error
2375         prone and not always available (e.g., for inactive documents).
2376
2377         This patch moves the "owning" reference for DOMWindow to Document so
2378         that we can directly traverse from Document to DOMWindow. For
2379         traversing from DOMWindow to Document, each DOMWindow keeps a Document
2380         pointer via a ContextDestructionObserver base class.
2381
2382         The main sublties in this patch are related to situations in which
2383         there isn't precisely a one-to-one relationship between Documents and
2384         DOMWindows. Previously, these situations were handled implicitly by the
2385         "flex and slop" of having separate Document and DOMWindow pointers in
2386         Frame. In this patch, these sublties are made explicit via
2387         Document::takeDOMWindowFrom, which explicitly transfers the DOMWindow
2388         (as well as ASSERTs that all the relevant objects exist in a sensible
2389         constellation).
2390
2391         * WebCore.exp.in:
2392             - These functions are no longer exported because they're inline.
2393         * bindings/js/ScriptController.cpp:
2394         (WebCore::ScriptController::clearWindowShell):
2395         * bindings/js/ScriptController.h:
2396         (ScriptController):
2397             - clearWindowShell now explicitly takes the new DOMWindow that will
2398               be pointed to by the WindowShell. Previously, clearWindowShell
2399               would implicitly create the new DOMWindow by accessing
2400               Frame::domWindow (which used to lazily create the DOMWindow).
2401         * bindings/v8/BindingState.cpp:
2402         (WebCore::currentDocument):
2403         * bindings/v8/BindingState.h:
2404         (WebCore):
2405             - currentDocument provides a directly path from the current
2406               v8::Context to the Document (by way of DOMWindow). Previously,
2407               code transited via the Frame using currentFrame.
2408         * bindings/v8/ScriptController.cpp:
2409         (WebCore::ScriptController::clearWindowShell):
2410         * bindings/v8/ScriptController.h:
2411         (ScriptController):
2412             - Mirror JSC changes to clearWindowShell.
2413         * bindings/v8/V8Utilities.cpp:
2414         (WebCore::getScriptExecutionContext):
2415             - Update getScriptExecutionContext to transit directly from the
2416               DOMWindow to the Document rather than detouring via the Frame.
2417         * dom/ContextDestructionObserver.cpp:
2418         (WebCore::ContextDestructionObserver::ContextDestructionObserver):
2419         (WebCore::ContextDestructionObserver::~ContextDestructionObserver):
2420         (WebCore):
2421         (WebCore::ContextDestructionObserver::observeContext):
2422         * dom/ContextDestructionObserver.h:
2423         (ContextDestructionObserver):
2424             - When we transfer a DOMWindow from one Document to another, we
2425               need to update the Document pointer in the DOMWindow to point to
2426               the new Document. The DOMWindow holds the Document pointer via
2427               ContextDestructionObserver, so this patch teaches
2428               ContextDestructionObserver how to change which
2429               ScriptExecutionContext it is observing. This code mirrors similar
2430               code in FrameDestructionObserver.
2431         * dom/Document.cpp:
2432         (WebCore::Document::~Document):
2433         (WebCore::Document::detach):
2434         (WebCore::Document::createDOMWindow):
2435             - createDOMWindow now explicitly creates the DOMWindow. Previously,
2436               we created the DOMWindow implicitly in Frame::domWindow when it
2437               was first accessed.
2438         (WebCore::Document::takeDOMWindowFrom):
2439             - takeDOMWindowFrom explicitly transfers the DOMWindow from one
2440               Document to another. The main benefit of this function is the
2441               ASSERTs that ensure that the Document, DOMWindow, and Frame all
2442               point to each other the correct configuration.
2443         (WebCore::Document::didUpdateSecurityOrigin):
2444             - We no longer need to keep the SecurityOrigin pointer in DOMWindow
2445               in sync with the Document because DOMWindow no longer has a
2446               SecurityOrigin object.
2447         * dom/Document.h:
2448         (Document):
2449         (WebCore::Document::domWindow):
2450         * history/CachedFrame.cpp:
2451         (WebCore::CachedFrame::CachedFrame):
2452         (WebCore::CachedFrame::destroy):
2453         * history/CachedFrame.h:
2454         (CachedFrameBase):
2455             - Previously, CachedFrame held the Document and the DOMWindow with
2456               separate pointers. Now, the CachedFrame holds the DOMWnidow via
2457               the Document, which makes adding and removing Documents from the
2458               PageCache simpler because we don't need to keep the Frame's
2459               DOMWindow pointer synchronized.
2460         * loader/DocumentWriter.cpp:
2461         (WebCore::DocumentWriter::begin):
2462             - begin now explicitly creates the DOMWindow and transfers
2463               DOMWindow when performing a "secure transition." Previously, both
2464               of these processes were handled implicitly: the DOMWindow was
2465               created implicitly by Frame::domWindow, and the DOMWindow was
2466               reused during navigation by not clearing Frame::m_domWindow.
2467         * loader/FrameLoader.cpp:
2468         (WebCore::FrameLoader::cancelAndClear):
2469         (WebCore::FrameLoader::clear):
2470             - These functions now pass the new Document so that we have access
2471               to the new DOMWindow in clearDOMWindowShell.
2472         (WebCore::FrameLoader::setOpener):
2473             - We no longer need to keep the DOMWindow's SecurityOrigin in sync
2474               with the Document's SecurityOrigin because DOMWindow no longer
2475               has a duplicate SecurityOrigin pointer.
2476         (WebCore::FrameLoader::open):
2477             - We no longer need to keep the Frame::m_domWindow in sync with the
2478               Document because the Document carries its own DOMWindow.
2479         * loader/FrameLoader.h:
2480         (FrameLoader):
2481         * page/DOMWindow.cpp:
2482         (WebCore::DOMWindow::DOMWindow):
2483             - DOMWindow now uses Document as its primary context object. In a
2484               future patch, we should remove the FrameDestructionObserver base
2485               class and instead access the frame via DOMWindow::document().
2486         (WebCore::DOMWindow::didSecureTransitionTo):
2487             - Notify the DOMWindow that it is now associated with a new
2488               Document.
2489         (WebCore::DOMWindow::scriptExecutionContext):
2490         (WebCore::DOMWindow::document):
2491         (WebCore::DOMWindow::securityOrigin):
2492             - These functions now retrieve the Document directly rather than
2493               transiting via the Frame.
2494         * page/DOMWindow.h:
2495         (WebCore::DOMWindow::create):
2496         (DOMWindow):
2497         * page/Frame.cpp:
2498         (WebCore::Frame::setDocument):
2499             - Add more ASSERTs that the Document and its DOMWindow are properly
2500               wired up to this Frame.
2501         (WebCore::Frame::domWindow):
2502             - Rather than lazily creating the DOMWindow, this function now just
2503               accesses the already-created DOMWindow on Document. Eventually,
2504               all callers should retreive the DOMWindow from the Document
2505               directly.
2506         * page/Frame.h:
2507         (WebCore::Frame::existingDOMWindow):
2508             - The DOMWindow always exists, so there is no distinction between
2509               domWindow() and existingDOMWindow().
2510         * xml/XMLHttpRequest.cpp:
2511         (WebCore::XMLHttpRequest::open):
2512             - Previously, open would exit early if it was unable to find its
2513               ScriptExecutionContext (e.g., if the ScriptExecutionContext was
2514               inactive). Now we can always locate the ScriptExecutionContext
2515               and so we need to test whether the ScriptExecutionContext is
2516               still attached to the Page before accessing Settings. Tests
2517               verify that the platform-visible behaviors of XMLHttpRequest are
2518               unchanged, even for XMLHttpRequest constructors associated with
2519               inactive Documents.
2520         * xml/XSLTProcessor.cpp:
2521         (WebCore::XSLTProcessor::createDocumentFromSource):
2522             - Make it explicit that XSLT re-uses the DOMWindow from the source
2523               Document in the transformed Document.
2524
2525 2012-08-14  Levi Weintraub  <leviw@chromium.org>
2526
2527         Accumulating LayoutUnits with floats for determining block preferred width can lead to wrapping
2528         https://bugs.webkit.org/show_bug.cgi?id=93513
2529
2530         Reviewed by Eric Seidel.
2531
2532         Sub-pixel values from floats are subject to small losses in precision when accumulated with
2533         floating point values, as we do in RenderBlock. This patch adds a new method to FractionalLayoutUnit --
2534         ceilToFloat -- which guarantees us a floating point value at least as big as our original LayoutUnit
2535         value, and uses it along with ceiledLayoutUnit to avoid underprovisioning RenderBlock's preferred
2536         widths due to lost precision.
2537
2538         Test: fast/sub-pixel/block-preferred-widths-with-sub-pixel-floats.html
2539
2540         * platform/FractionalLayoutUnit.h:
2541         (WebCore::FractionalLayoutUnit::ceilToFloat): Returns a float value the same or larger than the
2542         FractionalLayoutUnit value.
2543         (FractionalLayoutUnit):
2544         (WebCore::FractionalLayoutUnit::epsilon): Now returns 0 when sub-pixel is disabled.
2545         * rendering/RenderBlock.cpp:
2546         (WebCore::RenderBlock::computeLogicalLocationForFloat): Adding a LayoutUnit::epsilon fudge factor
2547         for fitting floats. This is probably necessary due to precision being lost elsewhere.
2548         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths): Ensure no precision is lost due to conversion
2549         when accumulating our min/max width with floats.
2550
2551 2012-08-14  Jer Noble  <jer.noble@apple.com>
2552
2553         Fullscreen/normal volume sliders don't stay in sync
2554         https://bugs.webkit.org/show_bug.cgi?id=93867
2555
2556         Reviewed by Eric Carlson.
2557
2558         Change the full screen volume slider, if present, when the media element's volume
2559         changes.
2560
2561         Test: media/video-controls-fullscreen-volume.html
2562
2563         * html/shadow/MediaControlRootElement.cpp:
2564         (WebCore::MediaControlRootElement::changedVolume):
2565
2566 2012-08-14  Olivier Blin  <olivier.blin@softathome.com>
2567
2568         Remove unused yyparse method in CSSParser
2569         https://bugs.webkit.org/show_bug.cgi?id=93986
2570
2571         Reviewed by Darin Adler.
2572
2573         This method is unused and not even declared.
2574
2575         No new tests, it just removes unused code.
2576
2577         * css/CSSParser.h:
2578
2579 2012-08-14  Zan Dobersek  <zandobersek@gmail.com>
2580
2581         [Gtk] Include all files guarded by ENABLE_* guards in Source/WebCore/GNUmakefile.list.am into the build
2582         https://bugs.webkit.org/show_bug.cgi?id=90696
2583
2584         Reviewed by Philippe Normand.
2585
2586         Include all files in the Autotools build that are currently guarded by ENABLE_* guards in
2587         the WebCore GNUmakefile.list.am, regardless of the feature being enabled. Compilation should
2588         rely on proper use of guards inside source files and preprocessor work to keep the disabled
2589         features out.
2590
2591         The only exception left is the ENABLE_WEBGL guard that includes the ANGLE into compilation
2592         only if WebGL feature is enabled.
2593
2594         No new tests - no new functionality.
2595
2596         * GNUmakefile.am:
2597         * GNUmakefile.list.am:
2598         * bindings/gobject/GNUmakefile.am: Add StorageInfo to the DOM bindings, despite
2599         the feature being currently disabled.
2600
2601 2012-08-14  Gregg Tavares  <gman@google.com>
2602
2603         Plumb through EXT_debug_marker entry points
2604         https://bugs.webkit.org/show_bug.cgi?id=93860
2605
2606         Reviewed by Kenneth Russell.
2607
2608         insertEventMarkerEXT, pushGroupMarkerEXT, popGroupMarkerEXT,
2609         are all entry points exposed by the OpenGL ES
2610         EXT_debug_marker extension
2611
2612         No new tests as no new functionality exposed to web.
2613
2614         * html/canvas/WebGLRenderingContext.cpp:
2615         (WebCore):
2616         (WebCore::WebGLRenderingContext::create):
2617         * platform/chromium/support/Extensions3DChromium.cpp:
2618         (WebCore::Extensions3DChromium::insertEventMarkerEXT):
2619         (WebCore):
2620         (WebCore::Extensions3DChromium::pushGroupMarkerEXT):
2621         (WebCore::Extensions3DChromium::popGroupMarkerEXT):
2622         * platform/graphics/Extensions3D.h:
2623         (Extensions3D):
2624         * platform/graphics/chromium/Extensions3DChromium.h:
2625         (Extensions3DChromium):
2626         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
2627         (WebCore::Extensions3DOpenGL::insertEventMarkerEXT):
2628         (WebCore):
2629         (WebCore::Extensions3DOpenGL::pushGroupMarkerEXT):
2630         (WebCore::Extensions3DOpenGL::popGroupMarkerEXT):
2631         * platform/graphics/opengl/Extensions3DOpenGL.h:
2632         (Extensions3DOpenGL):
2633         * platform/graphics/opengl/Extensions3DOpenGLES.cpp:
2634         (WebCore::Extensions3DOpenGLES::insertEventMarkerEXT):
2635         (WebCore):
2636         (WebCore::Extensions3DOpenGLES::pushGroupMarkerEXT):
2637         (WebCore::Extensions3DOpenGLES::popGroupMarkerEXT):
2638         * platform/graphics/opengl/Extensions3DOpenGLES.h:
2639         (Extensions3DOpenGLES):
2640
2641 2012-06-24  Robert Hogan  <robert@webkit.org>
2642
2643         CSS 2.1 failure: Word-spacing affects each space and non-breaking space
2644         https://bugs.webkit.org/show_bug.cgi?id=89826
2645
2646         Reviewed by Eric Seidel.
2647
2648         Add word spacing to consecutive spaces in a run per http://www.w3.org/TR/CSS21/text.html#spacing-props.
2649
2650         Test: fast/css/word-spacing-characters.html
2651               fast/css/word-spacing-characters-complex-text.html
2652               fast/css/word-spacing-characters-linebreak.html
2653               css2.1/20110323/word-spacing-characters-002.htm
2654               css2.1/20110323/word-spacing-characters-003.htm
2655               css2.1/20110323/word-spacing-remove-space-001.htm
2656               css2.1/20110323/word-spacing-remove-space-002.htm
2657               css2.1/20110323/word-spacing-remove-space-003.htm
2658               css2.1/20110323/word-spacing-remove-space-004.htm
2659               css2.1/20110323/word-spacing-remove-space-005.htm
2660               css2.1/20110323/word-spacing-remove-space-006.htm
2661               css2.1/20110323/c541-word-sp-001.htm
2662               css2.1/20110323/c541-word-sp-000.htm
2663
2664         * platform/graphics/WidthIterator.cpp:
2665         (WebCore::WidthIterator::advance): All spaces (ordinary space or &nbsp;) get word-spacing added, even
2666           if they are consecutive.
2667         * platform/graphics/harfbuzz/HarfBuzzShaperBase.cpp:
2668         (WebCore::HarfBuzzShaperBase::isWordEnd): ditto, but for the complex text case on Chromium. Had to use
2669           m_run rather than m_normalizedBuffer here as m_normalizedBuffer turns tabs into spaces! Unlike the simple
2670           text path, '\n' gets word-spacing - I observed this from fast/text/atsui-spacing-features.html but can't
2671           find it specified anywhere.
2672         * platform/graphics/harfbuzz/HarfBuzzShaperBase.h:
2673         (WebCore::HarfBuzzShaperBase::isCodepointSpace):
2674         * rendering/RenderBlockLineLayout.cpp:
2675         (WebCore::RenderBlock::LineBreaker::nextLineBreak): Tested by word-spacing-linebreak.html
2676
2677 2012-08-14  Antoine Labour  <piman@chromium.org>
2678
2679         [chromium] race between CCLayerTreeHostImpl::releaseContentsTextures and CCThreadProxy::beginFrameCompleteOnImplThread
2680         https://bugs.webkit.org/show_bug.cgi?id=93684
2681
2682         Reviewed by James Robinson.
2683
2684         This keeps track of whether we're between the beginFrame post and the
2685         commit when releaseContentsTextures comes, and if that is the case, we
2686         prune the texture uploads, keep the "textures purged" flag on and kick a
2687         new commit.
2688
2689         Added CCLayerTreeHostTestEvictTextures test.
2690
2691         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2692         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
2693         (WebCore::CCLayerTreeHostImpl::beginFramePosted):
2694         (WebCore):
2695         (WebCore::CCLayerTreeHostImpl::commitComplete):
2696         (WebCore::CCLayerTreeHostImpl::canDraw):
2697         (WebCore::CCLayerTreeHostImpl::releaseContentsTextures):
2698         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2699         (CCLayerTreeHostImpl):
2700         (WebCore::CCLayerTreeHostImpl::contentsTexturesPurged):
2701         (WebCore::CCLayerTreeHostImpl::contentsTexturesWerePurgedSinceLastBeginFrame):
2702         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2703         (WebCore::CCSingleThreadProxy::stop):
2704         (WebCore::CCSingleThreadProxy::commitAndComposite):
2705         * platform/graphics/chromium/cc/CCTextureUpdateController.h:
2706         (CCTextureUpdateController):
2707         * platform/graphics/chromium/cc/CCTextureUpdateQueue.cpp:
2708         (WebCore::CCTextureUpdateQueue::clearUploads):
2709         (WebCore):
2710         * platform/graphics/chromium/cc/CCTextureUpdateQueue.h:
2711         (CCTextureUpdateQueue):
2712         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2713         (WebCore::CCThreadProxy::scheduledActionBeginFrame):
2714         (WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):
2715         (WebCore::CCThreadProxy::layerTreeHostClosedOnImplThread):
2716
2717 2012-08-14  Yong Li  <yoli@rim.com>
2718
2719         [BlackBerry] Pass URL String's 8-bit buffer directly to platform layer when possible
2720         https://bugs.webkit.org/show_bug.cgi?id=93861
2721
2722         Reviewed by Rob Buis.
2723
2724         PR# 187605.
2725         URL strings and HTTP header strings usually use 8-bit buffers internally. We can
2726         just pass the buffers to platform calls when only Latin1 strings are needed.
2727
2728         * platform/blackberry/ReadOnlyLatin1String.h: Added.
2729         (WebCore):
2730         (ReadOnlyLatin1String): A utility class that uses either WTF::CString or WTF::String's 8-bit buffer.
2731         (WebCore::ReadOnlyLatin1String::ReadOnlyLatin1String): Can only be constructed with WTF::String for now.
2732         (WebCore::ReadOnlyLatin1String::data):
2733         (WebCore::ReadOnlyLatin1String::length):
2734         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
2735         (WebCore::ResourceRequest::initializePlatformRequest):
2736         * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
2737         (WebCore::SocketStreamHandle::SocketStreamHandle):
2738
2739 2012-08-14  Christophe Dumez  <christophe.dumez@intel.com>
2740
2741         Fix  LayoutTests/canvas/philip/tests/2d.text.draw.space.collapse.nonspace.html
2742         https://bugs.webkit.org/show_bug.cgi?id=92974
2743
2744         Reviewed by Kenneth Rohde Christiansen.
2745
2746         Replace space characters by U+0020 SPACE characters in
2747         CanvasRenderingContext2D::drawTextInternal() in order to
2748         comply with the HTML Canvas 2D Context specification:
2749         - http://www.w3.org/TR/2dcontext/#drawing-text-to-the-canvas
2750
2751         No new tests, already tested by canvas/philip/tests/2d.text.draw.space.collapse.nonspace.html.
2752
2753         * html/canvas/CanvasRenderingContext2D.cpp:
2754         (WebCore::replaceCharacterInString):
2755         (WebCore):
2756         (WebCore::CanvasRenderingContext2D::drawTextInternal):
2757
2758 2012-08-14  George Staikos  <staikos@webkit.org>
2759
2760         [BlackBerry] Avoid assertion failure in App Cache.
2761         https://bugs.webkit.org/show_bug.cgi?id=93926
2762
2763         Reviewed by Rob Buis.
2764
2765         Short-circuit data url decoding if we know it's not a data URL to
2766         avoid an assertion failure in debug mode.  No functional change.
2767
2768         No new tests since this is just a debug mode assertion failure.
2769
2770         * loader/appcache/ApplicationCacheGroup.cpp:
2771         (WebCore::ApplicationCacheGroup::createResourceHandle):
2772
2773 2012-08-14  Thiago Marcos P. Santos  <thiago.santos@intel.com>
2774
2775         [EFL] Do not warn when the default theme is not found
2776         https://bugs.webkit.org/show_bug.cgi?id=93968
2777
2778         Reviewed by Kenneth Rohde Christiansen.
2779
2780         Even if you are using a custom theme, we always try to load first the
2781         theme at the default path (that may or may not exist). In the case it
2782         doesn't exist and you have a custom theme, we were always getting a
2783         misleading error message.
2784
2785         * platform/efl/RenderThemeEfl.cpp:
2786         (WebCore::RenderThemeEfl::createEdje):
2787
2788 2012-08-14  Joshua Bell  <jsbell@chromium.org>
2789
2790         IndexedDB: Pass cursor continue results back in callback
2791         https://bugs.webkit.org/show_bug.cgi?id=92278
2792
2793         Reviewed by Tony Chang.
2794
2795         Supply the updated cursor key/primaryKey/value in the success callback,
2796         rather than forcing the callee to make three calls into the back end to
2797         fetch them. Callbacks onSuccess(cursor) and onSuccessWithContinuation()
2798         are given the three new payload parameters (and the latter is renamed.)
2799
2800         No new tests - no behavioral changes.
2801
2802         * Modules/indexeddb/IDBCallbacks.h: Updated callbacks.
2803         (IDBCallbacks):
2804         * Modules/indexeddb/IDBCursor.cpp:
2805         (WebCore::IDBCursor::setValueReady): Takes values rather than fetching them.
2806         * Modules/indexeddb/IDBCursor.h:
2807         (IDBCursor):
2808         * Modules/indexeddb/IDBCursorBackendImpl.cpp: Delete accessors.
2809         (WebCore::IDBCursorBackendImpl::advanceInternal): Pass along updated cursor state.
2810         (WebCore::IDBCursorBackendImpl::continueFunctionInternal): Ditto.
2811         * Modules/indexeddb/IDBCursorBackendImpl.h:
2812         (IDBCursorBackendImpl): Delete accessors from interface...
2813         (WebCore::IDBCursorBackendImpl::key): ...but keep them for use within back-end.
2814         (WebCore::IDBCursorBackendImpl::primaryKey):
2815         (WebCore::IDBCursorBackendImpl::value):
2816         * Modules/indexeddb/IDBCursorBackendInterface.h: Delete accessors.
2817         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
2818         (WebCore::IDBIndexBackendImpl::openCursorInternal): Pass along new cursor state.
2819         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
2820         (WebCore::IDBObjectStoreBackendImpl::openCursorInternal): Ditto.
2821         * Modules/indexeddb/IDBRequest.cpp:
2822         (WebCore::IDBRequest::setResultCursor): Stash updated cursor state until dispatch.
2823         (WebCore::IDBRequest::onSuccess):
2824         (WebCore::IDBRequest::dispatchEvent): Update cursor with new state.
2825         * Modules/indexeddb/IDBRequest.h:
2826         (IDBRequest):
2827         * inspector/InspectorIndexedDBAgent.cpp: Update iteration code to use new callbacks.
2828         (WebCore):
2829
2830 2012-08-14  Arvid Nilsson  <anilsson@rim.com>
2831
2832         [BlackBerry] Get rid of glCopyTexImage2D in Canvas and WebGL code paths
2833         https://bugs.webkit.org/show_bug.cgi?id=93614
2834
2835         Reviewed by Antonio Gomes.
2836
2837         We used to set up resource sharing between the compositing thread
2838         context and the Canvas and WebGL contexts, and use glCopyTexImage2D to
2839         get a copy of the framebuffer to use as front buffer for compositing
2840         purposes.
2841
2842         Now we instead create an EGLImage and blit the Canvas/WebGL output to
2843         it. The compositing thread creates a texture from the EGLImage in order
2844         to composite the output.
2845
2846         Created a new EGLImageLayerWebKitThread base class that handles the
2847         EGLImage and does the blitting. CanvasLayerWebKitThread and
2848         WebGLLayerWebKitThread now inherit from this new base class.
2849
2850         However, we need to be careful to restore state after the blit because
2851         it's done using the Canvas/WebGL context.
2852
2853         The BlackBerry implementation of GraphicsContext3D::prepareTexture()
2854         was changed to no longer call glCopyTexImage, and
2855         GraphicsContext3D::platformLayer() now returns the target texture
2856         directly.
2857
2858         Reviewed internally by Filip Spacek.
2859
2860         PR 188472
2861
2862         No change in behavior, new tests.
2863
2864         * PlatformBlackBerry.cmake:
2865         * platform/graphics/blackberry/CanvasLayerWebKitThread.cpp:
2866         (WebCore::CanvasLayerWebKitThread::CanvasLayerWebKitThread):
2867         (WebCore::CanvasLayerWebKitThread::~CanvasLayerWebKitThread):
2868         (WebCore::CanvasLayerWebKitThread::setDevice):
2869         (WebCore::CanvasLayerWebKitThread::makeContextCurrent):
2870         (WebCore::CanvasLayerWebKitThread::textureSize):
2871         (WebCore):
2872         (WebCore::CanvasLayerWebKitThread::textureID):
2873         * platform/graphics/blackberry/CanvasLayerWebKitThread.h:
2874         (CanvasLayerWebKitThread):
2875         * platform/graphics/blackberry/EGLImageLayerCompositingThreadClient.cpp: Added.
2876         (WebCore):
2877         (WebCore::EGLImageLayerCompositingThreadClient::~EGLImageLayerCompositingThreadClient):
2878         (WebCore::EGLImageLayerCompositingThreadClient::uploadTexturesIfNeeded):
2879         (WebCore::EGLImageLayerCompositingThreadClient::drawTextures):
2880         (WebCore::EGLImageLayerCompositingThreadClient::deleteTextures):
2881         (WebCore::EGLImageLayerCompositingThreadClient::bindContentsTexture):
2882         (WebCore::EGLImageLayerCompositingThreadClient::setImage):
2883         * platform/graphics/blackberry/EGLImageLayerCompositingThreadClient.h: Added.
2884         (WebCore):
2885         (EGLImageLayerCompositingThreadClient):
2886         (WebCore::EGLImageLayerCompositingThreadClient::create):
2887         (WebCore::EGLImageLayerCompositingThreadClient::layerCompositingThreadDestroyed):
2888         (WebCore::EGLImageLayerCompositingThreadClient::layerVisibilityChanged):
2889         (WebCore::EGLImageLayerCompositingThreadClient::EGLImageLayerCompositingThreadClient):
2890         * platform/graphics/blackberry/EGLImageLayerWebKitThread.cpp: Added.
2891         (WebCore):
2892         (WebCore::EGLImageLayerWebKitThread::EGLImageLayerWebKitThread):
2893         (WebCore::EGLImageLayerWebKitThread::~EGLImageLayerWebKitThread):
2894         (WebCore::EGLImageLayerWebKitThread::setNeedsDisplay):
2895         (WebCore::EGLImageLayerWebKitThread::makeContextCurrent):
2896         (WebCore::EGLImageLayerWebKitThread::updateTextureContentsIfNeeded):
2897         (WebCore::EGLImageLayerWebKitThread::commitPendingTextureUploads):
2898         (WebCore::EGLImageLayerWebKitThread::createImageIfNeeded):
2899         (WebCore::EGLImageLayerWebKitThread::createShaderIfNeeded):
2900         (WebCore::EGLImageLayerWebKitThread::drawTexture):
2901         * platform/graphics/blackberry/EGLImageLayerWebKitThread.h: Copied from Source/WebCore/platform/graphics/blackberry/CanvasLayerWebKitThread.h.
2902         (WebCore):
2903         (EGLImageLayerWebKitThread):
2904         * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
2905         (WebCore::GraphicsContext3D::prepareTexture):
2906         (WebCore):
2907         (WebCore::GraphicsContext3D::platformTexture):
2908         * platform/graphics/blackberry/LayerCompositingThread.cpp:
2909         (WebCore::LayerCompositingThread::drawTextures):
2910         (WebCore::LayerCompositingThread::releaseTextureResources):
2911         * platform/graphics/blackberry/LayerCompositingThread.h:
2912         (WebCore::LayerCompositingThread::setClient):
2913         (LayerCompositingThread):
2914         * platform/graphics/blackberry/LayerData.h:
2915         (WebCore::LayerData::LayerData):
2916         (LayerData):
2917         * platform/graphics/blackberry/LayerWebKitThread.cpp:
2918         (WebCore::LayerWebKitThread::~LayerWebKitThread):
2919         (WebCore::LayerWebKitThread::updateTextureContentsIfNeeded):
2920         (WebCore::LayerWebKitThread::commitPendingTextureUploads):
2921         (WebCore::LayerWebKitThread::commitOnCompositingThread):
2922         * platform/graphics/blackberry/LayerWebKitThread.h:
2923         (LayerWebKitThread):
2924         * platform/graphics/blackberry/WebGLLayerWebKitThread.cpp:
2925         (WebCore::WebGLLayerWebKitThread::WebGLLayerWebKitThread):
2926         (WebCore::WebGLLayerWebKitThread::updateTextureContentsIfNeeded):
2927         (WebCore::WebGLLayerWebKitThread::makeContextCurrent):
2928         (WebCore):
2929         (WebCore::WebGLLayerWebKitThread::textureSize):
2930         (WebCore::WebGLLayerWebKitThread::textureID):
2931         * platform/graphics/blackberry/WebGLLayerWebKitThread.h:
2932         (WebGLLayerWebKitThread):
2933         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
2934         (WebCore):
2935         (WebCore::GraphicsContext3D::prepareTexture):
2936
2937 2012-08-14  Arvid Nilsson  <anilsson@rim.com>
2938
2939         [BlackBerry] Texture cache must adapt to HashMap changes
2940         https://bugs.webkit.org/show_bug.cgi?id=93955
2941
2942         Reviewed by Rob Buis.
2943
2944         This was fixed locally, but not upstreamed yet.
2945
2946         Based on an original patch by Konrad Piascik.
2947
2948         * platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
2949         (WebCore::TextureCacheCompositingThread::textureForTiledContents):
2950
2951 2012-08-14  Arvid Nilsson  <anilsson@rim.com>
2952
2953         [BlackBerry] LayerCompositingThread.h doesn't compile
2954         https://bugs.webkit.org/show_bug.cgi?id=93956
2955
2956         Reviewed by Rob Buis.
2957
2958         I forgot to upstream this local change.
2959
2960         * platform/graphics/blackberry/LayerCompositingThread.h:
2961         (WebCore::LayerOverride::setBounds):
2962         (WebCore::LayerOverride::setOpacity):
2963
2964 2012-08-14  Ed Baker  <edbaker@rim.com>
2965
2966         [BlackBerry] LayerAnimation is not immutable, which makes dereferencing an expensive operation
2967         https://bugs.webkit.org/show_bug.cgi?id=93946
2968
2969         Reviewed by Antonio Gomes.
2970
2971         Make LayerAnimation immutable so it can be dereferenced from the main
2972         WebKit thread without having to dispatch to the compositing thread,
2973         which is an expensive operation.
2974
2975         TransformOperation and TimingFunction need to be made thread safe as
2976         they are referenced in LayerAnimation, but that effort is being tracked
2977         by a separate bug, #86483.
2978
2979         Reviewed internally by Arvid Nilsson.
2980
2981         No change in behavior, no new tests.
2982
2983         * platform/graphics/blackberry/LayerAnimation.h:
2984         (WebCore::LayerAnimation::name):
2985         (LayerAnimation):
2986         (WebCore::LayerAnimation::LayerAnimation):
2987         (WebCore::LayerAnimation::setName):
2988         * platform/graphics/blackberry/LayerCompositingThread.cpp:
2989         (WebCore):
2990         * platform/graphics/blackberry/LayerCompositingThread.h:
2991         (LayerCompositingThread):
2992         * platform/graphics/blackberry/LayerWebKitThread.cpp:
2993         (WebCore::LayerWebKitThread::~LayerWebKitThread):
2994
2995 2012-08-14  Arvid Nilsson  <anilsson@rim.com>
2996
2997         [BlackBerry] GraphicsLayerBlackBerry::willBeDestroyed() must call superclass implementation
2998         https://bugs.webkit.org/show_bug.cgi?id=93947
2999
3000         Reviewed by Rob Buis.
3001
3002         This was fixed locally, but not upstreamed yet.
3003
3004         Based on an original patch by Konrad Piascik.
3005
3006         * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
3007         (WebCore::GraphicsLayerBlackBerry::willBeDestroyed):
3008
3009 2012-08-14  Vineet Chaudhary  <rgf748@motorola.com>
3010
3011         Remove custom JSC bindings from ConvolverNode.idl
3012         https://bugs.webkit.org/show_bug.cgi?id=93952
3013
3014         Reviewed by Kentaro Hara.
3015
3016         We should remove custom bindings as CodeGenerator uses UNUSED_PARAM macro.
3017
3018         No new tests. No behavioural changes.
3019         All tests under webaudio/* should behave same.
3020
3021         * GNUmakefile.list.am: Removed JSConvolverNodeCustom.cpp from builds.
3022         * Modules/webaudio/ConvolverNode.idl: Removed [JSCustomSetter].
3023         * UseJSC.cmake: Removed JSConvolverNodeCustom.cpp from builds.
3024         * WebCore.gypi: Ditto.
3025         * WebCore.xcodeproj/project.pbxproj: Ditto
3026         * bindings/js/JSConvolverNodeCustom.cpp: Removed.
3027
3028 2012-08-14  Pavel Feldman  <pfeldman@chromium.org>
3029
3030         Web Inspector: add external test runner for running inspector front-end tests with no TestRunner infrastructure.
3031         https://bugs.webkit.org/show_bug.cgi?id=93833
3032
3033         Reviewed by Yury Semikhatsky.
3034
3035         Added mock test runner that allows running front-end layout tests.
3036         InspectorFrontendAPI can now dispatch whatever it receives from its embedder (opener).
3037
3038         * inspector/front-end/InspectorFrontendAPI.js:
3039         (InspectorFrontendAPI.evaluateForTest):
3040         (InspectorFrontendAPI.dispatch):
3041         (InspectorFrontendAPI.loadCompleted):
3042         (.onMessageFromOpener):
3043
3044 2012-08-14  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
3045
3046         [Qt] Incomplete repaint of link underline
3047         https://bugs.webkit.org/show_bug.cgi?id=66034
3048
3049         Reviewed by Kenneth Rohde Christiansen.
3050
3051         When trying to point a line of width 30, we end up painting on of width 31, because Qt 
3052         interprets the line as end-inclusive. So adjust for end-include/exclusive difference 
3053         before requesting the draw from Qt.
3054
3055         * platform/graphics/qt/GraphicsContextQt.cpp:
3056         (WebCore::GraphicsContext::drawLine):
3057
3058 2012-08-14  Mike West  <mkwst@chromium.org>
3059
3060         Fix crash in http/tests/plugins/plugin-document-has-focus
3061         https://bugs.webkit.org/show_bug.cgi?id=93949
3062
3063         Reviewed by Jochen Eisinger.
3064
3065         Covered by http/tests/plugins/plugin-document-has-focus.html. If that
3066         doesn't crash, we're good!
3067
3068         * loader/SubframeLoader.cpp:
3069         (WebCore::SubframeLoader::pluginIsLoadable):
3070             Check the PluginDocument's ownerElement before derefing.
3071
3072 2012-08-14  KwangYong Choi  <ky0.choi@samsung.com>
3073
3074         [EFL] Fixed displaying buffering progress in the media control.
3075         https://bugs.webkit.org/show_bug.cgi?id=75681
3076
3077         Reviewed by Kenneth Rohde Christiansen.
3078
3079         It is required "rangeRect" instead of "rect" to display buffering
3080         progress properly.
3081
3082         * platform/efl/RenderThemeEfl.cpp:
3083         (WebCore::RenderThemeEfl::paintMediaSliderTrack):
3084
3085 2012-08-14  Yoshifumi Inoue  <yosin@chromium.org>
3086
3087         [Forms] Copy Source/WebCore/html/shadow/TextControlInnerElements.{cpp,h} to SpinButtonElement.{cpp,h}
3088         https://bugs.webkit.org/show_bug.cgi?id=93943
3089
3090         Reviewed by Kent Tamura.
3091
3092         This patch copys html/shadow/TextControlInnerElement.{cpp,h} to SpinButtonElement.{cpp,h} for
3093         preparation of bug 93941, Set SpinButtonElement free from HTMLInputElement.
3094
3095         No new tests. This patch doesn't change behavior.
3096
3097         * html/shadow/SpinButtonElement.cpp: Copied from Source/WebCore/html/shadow/TextControlInnerElements.cpp.
3098         * html/shadow/SpinButtonElement.h: Copied from Source/WebCore/html/shadow/TextControlInnerElements.h.
3099
3100 2012-08-14  Mike West  <mkwst@chromium.org>
3101
3102         Implement the plugin-types Content Security Policy directive.
3103         https://bugs.webkit.org/show_bug.cgi?id=91919
3104
3105         Reviewed by Adam Barth.
3106
3107         The CSP 1.1 editor's draft defines the 'plugin-types' directive as a
3108         mechanism for whitelisting only specific types of plugin content on a
3109         page. A protected resource might trust only Flash content, for instance,
3110         and could enforce that preference via a Content Security Policy of
3111         'plugin-types application/x-shockwave-flash'. Flash would load, no other
3112         plugin type would.
3113
3114         Specification details available at: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#plugin-types--experimental
3115
3116         This experimental directive is gated on the ENABLE_CSP_NEXT flag, which
3117         is currently only enabled in Chromium.
3118
3119         Tests: http/tests/security/contentSecurityPolicy/1.1/plugintypes-invalid.html
3120                http/tests/security/contentSecurityPolicy/1.1/plugintypes-mismatched-data.html
3121                http/tests/security/contentSecurityPolicy/1.1/plugintypes-mismatched-url.html
3122                http/tests/security/contentSecurityPolicy/1.1/plugintypes-notype-data.html
3123                http/tests/security/contentSecurityPolicy/1.1/plugintypes-notype-url.html
3124                http/tests/security/contentSecurityPolicy/1.1/plugintypes-nourl-allowed.html
3125                http/tests/security/contentSecurityPolicy/1.1/plugintypes-nourl-blocked.html
3126                http/tests/security/contentSecurityPolicy/1.1/plugintypes-url-01.html
3127                http/tests/security/contentSecurityPolicy/1.1/plugintypes-url-02.html
3128
3129         * loader/SubframeLoader.cpp:
3130         (WebCore::SubframeLoader::pluginIsLoadable):
3131             Adding a check against 'allowPluginType', and passing in both the
3132             MIME type of the plugin, as well as the declared MIME type from the
3133             object/embed element (ensuring that we do this correctly, even if
3134             we're inside a PluginDocument).
3135         (WebCore::SubframeLoader::createJavaAppletWidget):
3136             Same as 'pluginIsLoadable', but hard-coded to
3137             'application/x-java-applet'.
3138         * page/ContentSecurityPolicy.cpp:
3139         (CSPDirectiveList):
3140         (WebCore::CSPDirectiveList::logInvalidPluginTypes):
3141             Plugin types that don't match the grammar ('not/a/mime/type') are
3142             logged to the console, and ignored for purposes of matching.
3143         (WebCore):
3144         (WebCore::CSPDirectiveList::checkPluginType):
3145             Given both the plugin type and the declared type attribute, returns
3146             true if both types match, and are contained in the list of accepted
3147             plugin types.
3148         (WebCore::CSPDirectiveList::checkPluginTypeAndReportViolation):
3149             Calls out to checkPluginType, and reports a violation if that check
3150             fails.
3151         (WebCore::CSPDirectiveList::allowPluginType):
3152             Analog to the other 'CSPDirectiveList::allowXXX' methods, this
3153             branches between simply checking the type against the policy, and
3154             checking against the policy and then reporting violations.
3155         (WebCore::CSPDirectiveList::parsePluginTypes):
3156             Given a directive value, parse out the media types contained within
3157             by splitting on spaces, and validating each token. Valid tokens are
3158             added to 'm_pluginTypes' for use in 'checkPluginType'.
3159         (WebCore::CSPDirectiveList::addDirective):
3160             Wire up 'plugin-types' as a valid directive (if the ENABLE_CSP_NEXT
3161             flag is set). This has been combined with the other implemented 1.1
3162             header, 'script-nonce'.
3163         (WebCore::ContentSecurityPolicy::allowPluginType):
3164             The public interface to this set of functionality.
3165         * page/ContentSecurityPolicy.h:
3166
3167 2012-08-14  Charles Wei  <charles.wei@torchmobile.com.cn>
3168
3169         [BlackBerry] Enable DNS prefetch
3170         https://bugs.webkit.org/show_bug.cgi?id=93846
3171
3172         Reviewed by George Staikos.
3173
3174         No new tests.
3175
3176         * PlatformBlackBerry.cmake:
3177         * platform/blackberry/TemporaryLinkStubs.cpp:
3178         * platform/network/blackberry/DNSBlackBerry.cpp: Copied from Source/WebCore/platform/blackberry/TemporaryLinkStubs.cpp.
3179         (WebCore):
3180         (WebCore::prefetchDNS):
3181
3182 2012-08-14  Hans Wennborg  <hans@chromium.org>
3183
3184         Speech Input: wrong position was reported for scolled-down elements
3185         https://bugs.webkit.org/show_bug.cgi?id=93634
3186
3187         Reviewed by Kent Tamura.
3188
3189         When clicking on a speech-enabled input element, WebKit reports
3190         the position of the element to the embedder, so that it can show
3191         a bubble indicating that speech recognition is in progress for
3192         the element that the user clicked on.
3193
3194         On a page that was scrolled, this position was being reported
3195         erroneously: it was given relative to the frame content as opposed to
3196         the root view, and the in-progress bubble would be shown in the wrong
3197         place.
3198
3199         Test: fast/speech/bubble-position-scrolled.html
3200
3201         * html/shadow/TextControlInnerElements.cpp:
3202         (WebCore::InputFieldSpeechButtonElement::startSpeechInput):
3203
3204 2012-08-14  Taiju Tsuiki  <tzik@chromium.org>
3205
3206         Web Inspector: Drop "Loading..." message from FileContentView
3207         https://bugs.webkit.org/show_bug.cgi?id=91732
3208
3209         Reviewed by Vsevolod Vlasov.
3210
3211         * inspector/front-end/FileContentView.js:
3212         (WebInspector.FileContentView.prototype.wasShown):
3213
3214 2012-08-14  Sheriff Bot  <webkit.review.bot@gmail.com>
3215
3216         Unreviewed, rolling out r125519.
3217         http://trac.webkit.org/changeset/125519
3218         https://bugs.webkit.org/show_bug.cgi?id=93945
3219
3220         New ref-tests caused image failures on chromium-mac bots.
3221         (Requested by yutak on #webkit).
3222
3223         * css/html.css:
3224         (meter):
3225         * html/HTMLMeterElement.cpp:
3226         (WebCore::HTMLMeterElement::HTMLMeterElement):
3227         (WebCore::HTMLMeterElement::createRenderer):
3228         (WebCore::HTMLMeterElement::didElementStateChange):
3229         (WebCore::HTMLMeterElement::createShadowSubtree):
3230         * html/HTMLMeterElement.h:
3231         (WebCore):
3232         (HTMLMeterElement):
3233         * html/shadow/MeterShadowElement.cpp:
3234         (WebCore::MeterShadowElement::meterElement):
3235         (WebCore::MeterShadowElement::rendererIsNeeded):
3236         (WebCore):
3237         * html/shadow/MeterShadowElement.h:
3238         (WebCore):
3239         * rendering/RenderMeter.cpp:
3240         (WebCore::RenderMeter::RenderMeter):
3241         (WebCore::RenderMeter::valueRatio):
3242         * rendering/RenderMeter.h:
3243         (RenderMeter):
3244
3245 2012-08-14  Keishi Hattori  <keishi@webkit.org>
3246
3247         Move page popup resources to separate directory
3248         https://bugs.webkit.org/show_bug.cgi?id=93932
3249
3250         Reviewed by Kent Tamura.
3251
3252         Keeping the resources organized.
3253
3254         No new tests.
3255
3256         * Resources/pagepopups/calendarPicker.css: Renamed from Source/WebCore/Resources/calendarPicker.css.
3257         * Resources/pagepopups/calendarPicker.js: Renamed from Source/WebCore/Resources/calendarPicker.js.
3258         * Resources/pagepopups/calendarPickerMac.css: Renamed from Source/WebCore/Resources/calendarPickerMac.css.
3259         * Resources/pagepopups/colorSuggestionPicker.css: Renamed from Source/WebCore/Resources/colorSuggestionPicker.css.
3260         * Resources/pagepopups/colorSuggestionPicker.js: Renamed from Source/WebCore/Resources/colorSuggestionPicker.js.
3261         * WebCore.gyp/WebCore.gyp:
3262
3263 2012-08-14  Yoshifumi Inoue  <yosin@chromium.org>
3264
3265         [Forms] Move wheel event handler to spin button class
3266         https://bugs.webkit.org/show_bug.cgi?id=93928
3267
3268         Reviewed by Kent Tamura.
3269
3270         This patch moves implmentation of wheel event handling from TextFieldInput
3271         class to SpinButtonElement class to share implementation in TextFieldInput
3272         class, and DateTimeEditElement.
3273
3274         No new tests. This patch doesn't change behavior. fast/orms/number/number-wheel.html
3275         covers this change.
3276
3277         * html/BaseDateAndTimeInputType.cpp: Removed handleWheelEvent() implementation.
3278         * html/BaseDateAndTimeInputType.h:
3279         (BaseDateAndTimeInputType): Removed handleWheelEvent() declaration.
3280         * html/HTMLInputElement.cpp:
3281         (WebCore::HTMLInputElement::defaultEventHandler): Removed wheel event handling.
3282         * html/InputType.cpp: Removed handleWheelEvent() implementation.
3283         * html/InputType.h:
3284         (InputType): Removed handleWheelEvent() declaration.
3285         * html/NumberInputType.cpp: Removed handleWheelEvent() implementation.
3286         * html/NumberInputType.h:
3287         (NumberInputType): Removed handleWheelEvent() declaration.
3288         * html/TextFieldInputType.cpp: Removed handleWheelEventForSpinButton() declaration.
3289         (WebCore::TextFieldInputType::forwardEvent): Changed to call SpinButtonElement::forwardEvent().
3290         * html/TextFieldInputType.h:
3291         (TextFieldInputType): Removed handleWheelEventForSpinButton() declaration.
3292         * html/shadow/TextControlInnerElements.cpp:
3293         (WebCore::SpinButtonElement::forwardEvent): Moved implementation of wheel event handling code
3294         from TextFieldInputType::handleWheelEventForSpinButton().
3295         * html/shadow/TextControlInnerElements.h:
3296         (SpinButtonElement): Added forwardEvent() declaration.
3297
3298 2012-08-14  Shinya Kawanaka  <shinyak@chromium.org>
3299
3300         AuthorShadowDOM for meter element
3301         https://bugs.webkit.org/show_bug.cgi?id=91970
3302
3303         Reviewed by Hajime Morita.
3304
3305         We add support for AuthorShadowDOM for a meter element.
3306
3307         According to the Shadow DOM spec, a meter element should behave like having a UserAgentShadowRoot and
3308         an element in UserAgentShadowRoot draws a real 'meter' bar. In this patch, we change the inner structure
3309         of a meter element so that we can distribute an element having RenderMeter to AuthorShadowDOM.
3310
3311         Before this patch, a meter element has the following inner structure.
3312
3313             <meter>--UserAgentShadowRoot -- -- -- -- -- -- -- -- -- -- AuthorShadowRoot
3314                                |
3315                                +-- MeterBarElement
3316                                |
3317                                +-- MeterValueElement
3318
3319         After this patch, a meter element will have the following inner structure.
3320
3321             <meter>--UserAgentShadowRoot -- -- -- -- -- -- -- -- -- -- AuthorShadowRoot
3322                                |
3323                                +-- MeterInnerElement
3324                                            |
3325                                            +-- MeterBarElement
3326                                            |
3327                                            +-- MeterValueElement
3328
3329         However, if RenderTheme supports rendering meter, MeterInnerElement will not create a renderer
3330         unless an AuthorShadowDOM is attached to it so that we can keep the current rendering style.
3331
3332         Tests: fast/dom/shadow/shadowdom-for-meter-dynamic.html
3333                fast/dom/shadow/shadowdom-for-meter-multiple.html
3334                fast/dom/shadow/shadowdom-for-meter-with-style.html
3335                fast/dom/shadow/shadowdom-for-meter-without-appearance.html
3336                fast/dom/shadow/shadowdom-for-meter-without-shadow-element.html
3337                fast/dom/shadow/shadowdom-for-meter.html
3338
3339         * css/html.css:
3340         (meter): Changed the display type. inline-box is not supported WebKit. inline-block is true.
3341         (meter::-webkit-meter-inner-element):
3342         * html/HTMLMeterElement.cpp:
3343         (WebCore::HTMLMeterElement::HTMLMeterElement):
3344         (WebCore::HTMLMeterElement::createRenderer):
3345         (WebCore):
3346         (WebCore::HTMLMeterElement::didElementStateChange):
3347         (WebCore::HTMLMeterElement::willAddAuthorShadowRoot):
3348         (WebCore::HTMLMeterElement::renderMeter):
3349         (WebCore::HTMLMeterElement::createShadowSubtree):
3350         * html/HTMLMeterElement.h:
3351         (WebCore):
3352         (WebCore::HTMLMeterElement::hasAuthorShadowRoot):
3353         (HTMLMeterElement):
3354         (WebCore::isHTMLMeterElement):
3355         (WebCore::toHTMLMeterElement):
3356         * html/shadow/MeterShadowElement.cpp:
3357         (WebCore::MeterShadowElement::meterElement):
3358         (WebCore::MeterShadowElement::rendererIsNeeded):
3359         (WebCore):
3360         (WebCore::MeterInnerElement::MeterInnerElement): We introduce a new element having RenderMeter
3361         so that we can distribute an element having RenderMeter to AuthorShadowDOM.
3362         (WebCore::MeterInnerElement::rendererIsNeeded): Different from a progress element, meter element will not be
3363         rendered using a theme. So we don't need to check the style appearance.
3364         (WebCore::MeterInnerElement::createRenderer):
3365         (WebCore::MeterInnerElement::shadowPseudoId):
3366         * html/shadow/MeterShadowElement.h:
3367         (WebCore):
3368         (MeterInnerElement):
3369         (WebCore::MeterInnerElement::create):
3370         * rendering/RenderMeter.cpp:
3371         (WebCore::RenderMeter::RenderMeter):
3372         (WebCore::RenderMeter::meterElement):
3373         (WebCore):
3374         (WebCore::RenderMeter::valueRatio):
3375         * rendering/RenderMeter.h:
3376         (RenderMeter):
3377
3378 2012-08-14  Christophe Dumez  <christophe.dumez@intel.com>
3379
3380         regression(r124510) webintents/web-intents-obj-constructor.html is crashing
3381         https://bugs.webkit.org/show_bug.cgi?id=93096
3382
3383         Reviewed by Kentaro Hara.
3384
3385         Add null-check for JSC::ExecState pointer in JSDictionary constructor
3386         before using it. The exec may indeed be null, thus causing crashes.
3387
3388         No new test, already tested by webintents/web-intents-obj-constructor.html
3389
3390         * bindings/js/JSDictionary.cpp:
3391         (WebCore::JSDictionary::tryGetProperty):
3392         (WebCore::JSDictionary::getWithUndefinedOrNullCheck):
3393         * bindings/js/JSDictionary.h:
3394         (WebCore::JSDictionary::JSDictionary):
3395
3396 2012-08-13  Keishi Hattori  <keishi@webkit.org>
3397
3398         Remove fade in transition from calendar picker
3399         https://bugs.webkit.org/show_bug.cgi?id=93816
3400
3401         Reviewed by Kent Tamura.
3402
3403         The fade in transition was incomplete because it was only fading in the
3404         popup content and not the popup itself. Removing the effect for now.
3405
3406         No new tests. Can't test animation.
3407
3408         * Resources/calendarPicker.css:
3409         (#main):
3410         * Resources/calendarPicker.js:
3411         (initialize):
3412         (fixWindowSize):
3413
3414 2012-08-13  Alex Christensen  <alex.christensen@flexsim.com>
3415
3416         WPARAM and LPARAM are incorrectly defined for x64
3417         https://bugs.webkit.org/show_bug.cgi?id=89902
3418
3419         Reviewed by Brent Fulgham.
3420
3421         Include WindowsExtras.h for PLATFORM(WIN) to define WPARAM and LPARAM correctly
3422         * platform/PlatformKeyboardEvent.h:
3423         * platform/PlatformMouseEvent.h:
3424         * platform/PlatformWheelEvent.h:
3425         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h:
3426         * platform/win/WindowMessageListener.h:
3427
3428 2012-08-13  John Bates  <jbates@google.com>
3429
3430         [Chromium] Patch CCThreadProxy to call setTimebaseAndInterval on CCScheduler
3431         https://bugs.webkit.org/show_bug.cgi?id=93918
3432
3433         Reviewed by James Robinson.
3434
3435         Also, update some trace events.
3436
3437         * platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp:
3438         (WebCore::CCDelayBasedTimeSource::setActive):
3439         * platform/graphics/chromium/cc/CCFrameRateController.cpp:
3440         (WebCore::CCFrameRateController::setActive):
3441         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
3442         (WebCore::CCThreadProxy::onVSyncParametersChanged):
3443
3444 2012-08-13  Douglas Stockwell  <dstockwell@chromium.org>
3445
3446         Crash in WebCore::RenderBlock::LineBreaker::nextLineBreak
3447         https://bugs.webkit.org/show_bug.cgi?id=93806
3448
3449         Reviewed by Abhishek Arya.
3450
3451         When looking for line breaks on the first line, existing code was
3452         checking for text-combine only in the first-line style. Since
3453         text-combine isn't inherited this resulted in a line break being
3454         chosen before combineText was called. When this happened and then
3455         combineText was called subsequently, the position of the line break
3456         iterator would be invalid.
3457
3458         This patch changes the check to use the regular style as in
3459         skipLeadingWhitespace and textWidth.
3460
3461         Test: fast/text/text-combine-first-line-crash.html
3462
3463         * rendering/RenderBlockLineLayout.cpp:
3464         (WebCore::RenderBlock::LineBreaker::nextLineBreak): Don't use the
3465         first-line style when checking text-combine.
3466
3467 2012-08-13  Kwang Yul Seo  <skyul@company100.net>
3468
3469         Remove unused method HTMLDocumentParser::script()
3470         https://bugs.webkit.org/show_bug.cgi?id=93916
3471
3472         Reviewed by Eric Seidel.
3473
3474         The use of HTMLDocumentParser::script() was removed in r61640 and has never been used since then.
3475
3476         No behavior change, so no new tests.
3477
3478         * html/parser/HTMLDocumentParser.cpp:
3479         * html/parser/HTMLDocumentParser.h:
3480
3481 2012-08-13  Tom Sepez  <tsepez@chromium.org>
3482
3483         [chromium] release FrameLoaderClientImpl::m_pluginWidget refptr upon Plugin Document detach.
3484         https://bugs.webkit.org/show_bug.cgi?id=93283
3485
3486         Reviewed by Eric Seidel.
3487
3488         Chromium has a refptr that needs to be NULLed at this point.
3489         
3490         The approach is to change the client redirectDataToPlugin method(s) to expect
3491         the possibility of a NULL argument, and the use this to clear the refptr on
3492         the chromium platform.  Other platforms can merely ignore the NULL case, thereby
3493         maintaining the existing behaviour.
3494
3495         Formal testing is nearly impossible without some chrome-specific plugins.
3496
3497         * html/PluginDocument.cpp:
3498         (WebCore::PluginDocument::detach):
3499
3500 2012-08-13  Eric Penner  <epenner@google.com>
3501
3502         [chromium] Paint animated layers immediately to avoid animation hiccups.
3503         https://bugs.webkit.org/show_bug.cgi?id=93028
3504
3505         Reviewed by Adrienne Walker.
3506
3507         This is a technique used on Android, which is very prone
3508         to hiccups in animations. Paint the entire layer if it is
3509         of reasonable size such that there is no hiccups when the
3510         animation reaches unpainted content. The reasonable size
3511         is choosen for page-transitions specifically, as this was
3512         the problem case (animations would just jump to the end).
3513
3514         Since we already have a special case this just modifies it
3515         and replaces the unit test with a new one. This can be
3516         improved/simplified further when distances/directions are
3517         available for the animated layers.
3518
3519         Replaced one test.
3520         Fixed bugs in and improved idlePaintNonVisibleLayers test.
3521
3522         * platform/graphics/chromium/TiledLayerChromium.cpp:
3523         (UpdatableTile):
3524         (WebCore::UpdatableTile::resetUpdateState):
3525         (WebCore::UpdatableTile::markForUpdate):
3526         (WebCore::UpdatableTile::UpdatableTile):
3527         (WebCore::TiledLayerChromium::TiledLayerChromium):
3528         (WebCore::TiledLayerChromium::pushPropertiesTo):
3529         (WebCore):
3530         (WebCore::TiledLayerChromium::updateTiles):
3531         (WebCore::TiledLayerChromium::markOcclusionsAndRequestTextures):
3532         (WebCore::TiledLayerChromium::haveTexturesForTiles):
3533         (WebCore::TiledLayerChromium::markTilesForUpdate):
3534         (WebCore::TiledLayerChromium::updateTileTextures):
3535         (WebCore::TiledLayerChromium::setTexturePrioritiesInRect):
3536         (WebCore::TiledLayerChromium::resetUpdateState):
3537         (WebCore::TiledLayerChromium::updateContentRect):
3538         (WebCore::TiledLayerChromium::needsIdlePaint):
3539         (WebCore::TiledLayerChromium::idlePaintRect):
3540         * platform/graphics/chromium/TiledLayerChromium.h:
3541         (TiledLayerChromium):
3542         * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
3543         (WebCore::CCLayerTilingData::contentRectToTileIndices):
3544         * platform/graphics/chromium/cc/CCPriorityCalculator.h:
3545         (WebCore::CCPriorityCalculator::maxPriority):
3546
3547 2012-08-13  Kentaro Hara  <haraken@chromium.org>
3548
3549         Unreviewed. Simple refactoring that I forgot to apply in r125495.
3550
3551         * bindings/v8/V8ThrowException.cpp:
3552         (WebCore::domExceptionStackGetter):
3553         (WebCore::domExceptionStackSetter):
3554         (WebCore::V8ThrowException::setDOMException):
3555         * bindings/v8/V8ThrowException.h:
3556
3557 2012-08-13  Ryuan Choi  <ryuan.choi@samsung.com>
3558
3559         [CMAKE][EFL] Fix build break with --tiled-backing-store
3560         https://bugs.webkit.org/show_bug.cgi?id=93487
3561
3562         Unreviewed build fix for Efl with --tiled-backing-store.
3563
3564         * CMakeLists.txt:
3565         Checked bison version and selected proper glslang files.
3566
3567 2012-08-12  Kentaro Hara  <haraken@chromium.org>
3568
3569         [V8] Factor out exception related methods of V8Proxy
3570         https://bugs.webkit.org/show_bug.cgi?id=93792
3571
3572         Reviewed by Adam Barth.
3573
3574         To remove V8Proxy, this patch factors out exception related methods of V8Proxy
3575         to a separate file.
3576
3577         (1) Move exception related methods from V8Proxy.{h,cpp} to V8ThrowException.{h,cpp}.
3578         (2) To avoid writing V8ThrowException::throwError() here and there in V8 binding,
3579         implement WebCore::throwError() in V8Binding.{h,cpp}. Ideally, we want to list up
3580         all V8 binding APIs in V8Binding.h.
3581         (3) Replace all V8Proxy::throwError() with throwError().
3582
3583         Nit: I couldn't write the definition of WebCore::throwError() in V8BInding.h
3584         due to circular dependency issues. Either way, these methods wouldn't be
3585         performance-critical.
3586
3587         No tests. No change in behavior.
3588
3589         * UseV8.cmake:
3590         * WebCore.gypi:
3591         * bindings/scripts/CodeGeneratorV8.pm:
3592         (GenerateNormalAttrGetter):
3593         (GenerateNormalAttrSetter):
3594         (GenerateOverloadedFunctionCallback):
3595         (GenerateFunctionCallback):
3596         (GenerateArgumentsCountCheck):
3597         (GenerateParametersCheck):
3598         (GenerateConstructorCallback):
3599         (GenerateEventConstructorCallback):
3600         (GenerateNamedConstructorCallback):
3601         (GenerateFunctionCallString):
3602         * bindings/scripts/test/V8/V8Float64Array.cpp:
3603         (WebCore::Float64ArrayV8Internal::fooCallback):
3604         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
3605         (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback):
3606         (WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
3607         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
3608         (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
3609         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
3610         (WebCore::V8TestEventConstructor::constructorCallback):
3611         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
3612         (WebCore::TestEventTargetV8Internal::itemCallback):
3613         (WebCore::TestEventTargetV8Internal::dispatchEventCallback):
3614         * bindings/scripts/test/V8/V8TestInterface.cpp:
3615         (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
3616         (WebCore::V8TestInterface::constructorCallback):
3617         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
3618         (WebCore::TestMediaQueryListListenerV8Internal::methodCallback):
3619         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
3620         (WebCore::V8TestNamedConstructorConstructorCallback):
3621         * bindings/scripts/test/V8/V8TestNode.cpp:
3622         (WebCore::V8TestNode::constructorCallback):
3623         * bindings/scripts/test/V8/V8TestObj.cpp:
3624         (WebCore::TestObjV8Internal::attrWithGetterExceptionAttrGetter):
3625         (WebCore::TestObjV8Internal::attrWithGetterExceptionAttrSetter):
3626         (WebCore::TestObjV8Internal::attrWithSetterExceptionAttrSetter):
3627         (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrGetter):
3628         (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetter):
3629         (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetter):
3630         (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrGetter):
3631         (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetter):
3632         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrGetter):
3633         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetter):
3634         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetter):
3635         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetter):
3636         (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
3637         (WebCore::TestObjV8Internal::MethodWithArgsCallback):
3638         (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
3639         (WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
3640         (WebCore::TestObjV8Internal::methodReturningSequenceCallback):
3641         (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
3642         (WebCore::TestObjV8Internal::serializedValueCallback):
3643         (WebCore::TestObjV8Internal::idbKeyCallback):
3644         (WebCore::TestObjV8Internal::optionsObjectCallback):
3645         (WebCore::TestObjV8Internal::methodWithExceptionCallback):
3646         (WebCore::TestObjV8Internal::withScriptStateVoidExceptionCallback):
3647         (WebCore::TestObjV8Internal::withScriptStateObjExceptionCallback):
3648         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateObjExceptionCallback):
3649         (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgCallback):
3650         (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
3651         (WebCore::TestObjV8Internal::methodWithCallbackArgCallback):
3652         (WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgCallback):
3653         (WebCore::TestObjV8Internal::methodWithCallbackAndOptionalArgCallback):
3654         (WebCore::TestObjV8Internal::overloadedMethod1Callback):
3655         (WebCore::TestObjV8Internal::overloadedMethod2Callback):
3656         (WebCore::TestObjV8Internal::overloadedMethod3Callback):
3657         (WebCore::TestObjV8Internal::overloadedMethod4Callback):
3658         (WebCore::TestObjV8Internal::overloadedMethod5Callback):
3659         (WebCore::TestObjV8Internal::overloadedMethod6Callback):
3660         (WebCore::TestObjV8Internal::overloadedMethod7Callback):
3661         (WebCore::TestObjV8Internal::overloadedMethod8Callback):
3662         (WebCore::TestObjV8Internal::overloadedMethod9Callback):
3663         (WebCore::TestObjV8Internal::overloadedMethod10Callback):
3664         (WebCore::TestObjV8Internal::overloadedMethodCallback):
3665         (WebCore::TestObjV8Internal::overloadedMethod11Callback):
3666         (WebCore::TestObjV8Internal::overloadedMethod12Callback):
3667         (WebCore::TestObjV8Internal::classMethodWithClampCallback):
3668         (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback):
3669         (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback):
3670         (WebCore::TestObjV8Internal::enabledPerContextMethod1Callback):
3671         (WebCore::TestObjV8Internal::enabledPerContextMethod2Callback):
3672         (WebCore::TestObjV8Internal::stringArrayFunctionCallback):
3673         (WebCore::TestObjV8Internal::getSVGDocumentCallback):
3674         (WebCore::TestObjV8Internal::convert1Callback):
3675         (WebCore::TestObjV8Internal::convert2Callback):
3676         (WebCore::TestObjV8Internal::convert3Callback):
3677         (WebCore::TestObjV8Internal::convert4Callback):
3678         (WebCore::TestObjV8Internal::convert5Callback):
3679         (WebCore::TestObjV8Internal::strictFunctionCallback):
3680         (WebCore::V8TestObj::constructorCallback):
3681         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
3682         (WebCore::TestSerializedScriptValueInterfaceV8Internal::acceptTransferListCallback):
3683         (WebCore::TestSerializedScriptValueInterfaceV8Internal::multiTransferListCallback):
3684         (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
3685         * bindings/v8/DateExtension.cpp:
3686         (WebCore::DateExtension::OnSleepDetected):
3687         * bindings/v8/NPV8Object.cpp:
3688         (_NPN_SetException):
3689         * bindings/v8/SerializedScriptValue.cpp:
3690         (WebCore::SerializedScriptValue::transferArrayBuffers):
3691         (WebCore::SerializedScriptValue::SerializedScriptValue):
3692         * bindings/v8/V8Binding.cpp:
3693         (WebCore::setDOMException):
3694         (WebCore):
3695         (WebCore::throwError):
3696         (WebCore::throwTypeError):
3697         (WebCore::throwNotEnoughArgumentsError):
3698         * bindings/v8/V8Binding.h:
3699         (WebCore):
3700         (WebCore::toV8Sequence):
3701         * bindings/v8/V8Collection.cpp:
3702         (WebCore::toOptionsCollectionSetter):
3703         * bindings/v8/V8NPObject.cpp:
3704         (WebCore::npObjectInvokeImpl):
3705         (WebCore::npObjectGetProperty):
3706         (WebCore::npObjectSetProperty):
3707         (WebCore::npObjectPropertyEnumerator):
3708         * bindings/v8/V8NodeFilterCondition.cpp:
3709         (WebCore::V8NodeFilterCondition::acceptNode):
3710         * bindings/v8/V8Proxy.cpp:
3711         (WebCore::handleMaxRecursionDepthExceeded):
3712         (WebCore::V8Proxy::checkNewLegal):
3713         * bindings/v8/V8Proxy.h:
3714         (V8Proxy):
3715         (WebCore):
3716         * bindings/v8/V8ThrowException.cpp: Added.
3717         (WebCore):
3718         (WebCore::DOMExceptionStackGetter):
3719         (WebCore::DOMExceptionStackSetter):
3720         (WebCore::V8ThrowException::setDOMException):
3721         (WebCore::V8ThrowException::throwError):
3722         (WebCore::V8ThrowException::throwTypeError):
3723         (WebCore::V8ThrowException::throwNotEnoughArgumentsError):
3724         * bindings/v8/V8ThrowException.h: Added.
3725         (WebCore):
3726         (V8ThrowException):
3727         * bindings/v8/V8Utilities.cpp:
3728         (WebCore::extractTransferables):
3729         (WebCore::getMessagePortArray):
3730         (WebCore::setTypeMismatchException):
3731         * bindings/v8/WorkerContextExecutionProxy.cpp:
3732         (WebCore::WorkerContextExecutionProxy::evaluate):
3733         * bindings/v8/custom/V8ArrayBufferCustom.cpp:
3734         (WebCore::V8ArrayBuffer::constructorCallback):
3735         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
3736         (WebCore::constructWebGLArrayWithArrayBufferArgument):
3737         (WebCore::constructWebGLArray):
3738         (WebCore::setWebGLArrayHelper):
3739         * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
3740         (WebCore::V8AudioBufferSourceNode::bufferAccessorSetter):
3741         * bindings/v8/custom/V8AudioContextCustom.cpp:
3742         (WebCore::V8AudioContext::constructorCallback):
3743         * bindings/v8/custom/V8BlobCustom.cpp:
3744         (WebCore::V8Blob::constructorCallback):
3745         * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
3746         (WebCore::V8CSSStyleDeclaration::namedPropertySetter):
3747         * bindings/v8/custom/V8ClipboardCustom.cpp:
3748         (WebCore::V8Clipboard::clearDataCallback):
3749         (WebCore::V8Clipboard::setDragImageCallback):
3750         * bindings/v8/custom/V8DOMFormDataCustom.cpp:
3751         (WebCore::V8DOMFormData::constructorCallback):
3752         (WebCore::V8DOMFormData::appendCallback):
3753         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
3754         (WebCore::V8DOMStringMap::namedPropertySetter):
3755         * bindings/v8/custom/V8DOMWindowCustom.cpp:
3756         (WebCore::WindowSetTimeoutImpl):
3757         (WebCore::handlePostMessageCallback):
3758         * bindings/v8/custom/V8DataViewCustom.cpp:
3759         (WebCore::V8DataView::constructorCallback):
3760         (WebCore::V8DataView::getInt8Callback):
3761         (WebCore::V8DataView::getUint8Callback):
3762         (WebCore::V8DataView::setInt8Callback):
3763         (WebCore::V8DataView::setUint8Callback):
3764         * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
3765         (WebCore::handlePostMessageCallback):
3766         * bindings/v8/custom/V8DirectoryEntryCustom.cpp:
3767         (WebCore::V8DirectoryEntry::getDirectoryCallback):
3768         (WebCore::V8DirectoryEntry::getFileCallback):
3769         * bindings/v8/custom/V8DirectoryEntrySyncCustom.cpp:
3770         (WebCore::V8DirectoryEntrySync::getDirectoryCallback):
3771         (WebCore::V8DirectoryEntrySync::getFileCallback):
3772         * bindings/v8/custom/V8DocumentCustom.cpp:
3773         (WebCore::V8Document::evaluateCallback):
3774         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
3775         (WebCore::V8HTMLCanvasElement::toDataURLCallback):
3776         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
3777         (WebCore::V8HTMLDocument::openCallback):
3778         * bindings/v8/custom/V8HTMLElementCustom.cpp:
3779         (WebCore::V8HTMLElement::itemValueAccessorSetter):
3780         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
3781         (WebCore::v8HTMLImageElementConstructorCallback):
3782         * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
3783         (WebCore::V8HTMLInputElement::selectionStartAccessorGetter):
3784         (WebCore::V8HTMLInputElement::selectionStartAccessorSetter):
3785         (WebCore::V8HTMLInputElement::selectionEndAccessorGetter):
3786         (WebCore::V8HTMLInputElement::selectionEndAccessorSetter):
3787         (WebCore::V8HTMLInputElement::selectionDirectionAccessorGetter):
3788         (WebCore::V8HTMLInputElement::selectionDirectionAccessorSetter):
3789         (WebCore::V8HTMLInputElement::setSelectionRangeCallback):
3790         * bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
3791         (WebCore::V8HTMLMediaElement::controllerAccessorSetter):
3792         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
3793         (WebCore::V8HTMLOptionsCollection::addCallback):
3794         (WebCore::V8HTMLOptionsCollection::lengthAccessorSetter):
3795         * bindings/v8/custom/V8HistoryCustom.cpp:
3796         (WebCore::V8History::pushStateCallback):
3797         (WebCore::V8History::replaceStateCallback):
3798         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
3799         (WebCore::V8InjectedScriptHost::inspectedObjectCallback):
3800         * bindings/v8/custom/V8IntentConstructor.cpp:
3801         (WebCore::V8Intent::constructorCallback):
3802         * bindings/v8/custom/V8LocationCustom.cpp:
3803         (WebCore::V8Location::protocolAccessorSetter):
3804         * bindings/v8/custom/V8MessageChannelConstructor.cpp:
3805         (WebCore::V8MessageChannel::constructorCallback):
3806         * bindings/v8/custom/V8MessagePortCustom.cpp:
3807         (WebCore::handlePostMessageCallback):
3808         * bindings/v8/custom/V8MutationObserverCustom.cpp:
3809         (WebCore::V8MutationObserver::constructorCallback):
3810         * bindings/v8/custom/V8NodeCustom.cpp:
3811         (WebCore::V8Node::insertBeforeCallback):
3812         (WebCore::V8Node::replaceChildCallback):
3813         (WebCore::V8Node::removeChildCallback):
3814         (WebCore::V8Node::appendChildCallback):
3815         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
3816         (WebCore::V8NotificationCenter::createHTMLNotificationCallback):
3817         (WebCore::V8NotificationCenter::createNotificationCallback):
3818         (WebCore::V8NotificationCenter::requestPermissionCallback):
3819         * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
3820         (WebCore::V8SQLResultSetRowList::itemCallback):
3821         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
3822         (WebCore::V8SQLTransaction::executeSqlCallback):
3823         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
3824         (WebCore::V8SQLTransactionSync::executeSqlCallback):
3825         * bindings/v8/custom/V8SVGLengthCustom.cpp:
3826         (WebCore::V8SVGLength::valueAccessorGetter):
3827         (WebCore::V8SVGLength::valueAccessorSetter):
3828         (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback):
3829         * bindings/v8/custom/V8StorageCustom.cpp:
3830         (WebCore::storageSetter):
3831         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
3832         (WebCore::getObjectParameter):
3833         (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
3834         (WebCore::V8WebGLRenderingContext::getExtensionCallback):
3835         (WebCore::V8WebGLRenderingContext::getFramebufferAttachmentParameterCallback):
3836         (WebCore::V8WebGLRenderingContext::getParameterCallback):
3837         (WebCore::V8WebGLRenderingContext::getProgramParameterCallback):
3838         (WebCore::V8WebGLRenderingContext::getShaderParameterCallback):
3839         (WebCore::V8WebGLRenderingContext::getUniformCallback):
3840         (WebCore::vertexAttribAndUniformHelperf):
3841         (WebCore::uniformHelperi):
3842         (WebCore::uniformMatrixHelper):
3843         * bindings/v8/custom/V8WebKitPointConstructor.cpp:
3844         (WebCore::V8WebKitPoint::constructorCallback):
3845         * bindings/v8/custom/V8WebSocketCustom.cpp:
3846         (WebCore::V8WebSocket::constructorCallback):
3847         (WebCore::V8WebSocket::sendCallback):
3848         * bindings/v8/custom/V8WorkerContextCustom.cpp:
3849         (WebCore::V8WorkerContext::importScriptsCallback):
3850         * bindings/v8/custom/V8WorkerCustom.cpp:
3851         (WebCore::handlePostMessageCallback):
3852         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
3853         (WebCore::V8XMLHttpRequest::constructorCallback):
3854         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
3855         (WebCore::V8XMLHttpRequest::responseTextAccessorGetter):
3856         (WebCore::V8XMLHttpRequest::responseAccessorGetter):
3857         (WebCore::V8XMLHttpRequest::openCallback):
3858         (WebCore::V8XMLHttpRequest::sendCallback):
3859
3860 2012-08-13  Kentaro Hara  <haraken@chromium.org>
3861
3862         [V8] Move GCEventData class from V8Binding.h to ScriptGCEvent.h
3863         https://bugs.webkit.org/show_bug.cgi?id=93818
3864
3865         Reviewed by Adam Barth.
3866
3867         (1) This patch moves GCEventData class from V8Binding.h to ScriptGCEvent.h.
3868         (2) This patch makes GCEventData::startTime and GCEventData::usedHeapSize
3869         private members.
3870         (3) This patch removes unused forward declarations from V8Binding.h.
3871
3872         No tests. No change in behavior.
3873
3874         * bindings/v8/ScriptGCEvent.cpp:
3875         (WebCore::ScriptGCEvent::gcPrologueCallback):
3876         (WebCore::ScriptGCEvent::gcEpilogueCallback):
3877         * bindings/v8/ScriptGCEvent.h:
3878         (GCEventData):
3879         (WebCore::GCEventData::GCEventData):
3880         (WebCore::GCEventData::clear):
3881         (WebCore::GCEventData::listeners):
3882         (WebCore::GCEventData::startTime):
3883         (WebCore::GCEventData::setStartTime):
3884         (WebCore::GCEventData::usedHeapSize):
3885         (WebCore::GCEventData::setUsedHeapSize):
3886         (WebCore):
3887         * bindings/v8/V8Binding.h:
3888         (WebCore):
3889         * bindings/v8/V8PerIsolateData.cpp:
3890
3891 2012-08-13  Kentaro Hara  <haraken@chromium.org>
3892
3893         [V8] Move checkNewLegal() from V8Proxy.h to SafeAllocation.h
3894         https://bugs.webkit.org/show_bug.cgi?id=93830
3895
3896         Reviewed by Adam Barth.
3897
3898         This patch moves checkNewLegal() from V8Proxy.h to SafeAllocation.h.
3899         In addition, this patch renames checkNewLegal() to isValidConstructorMode()
3900         for clarification.
3901
3902         No tests. No change in behavior.
3903
3904         * UseV8.cmake:
3905         * WebCore.gypi:
3906         * bindings/v8/SafeAllocation.cpp: Added.
3907         * bindings/v8/SafeAllocation.h:
3908         (WebCore::SafeAllocation::newInstance):
3909         (WebCore):
3910         * bindings/v8/V8Binding.cpp:
3911         (WebCore::createRawTemplate):
3912         * bindings/v8/V8Proxy.cpp:
3913         * bindings/v8/V8Proxy.h:
3914         (V8Proxy):
3915
3916 2012-08-13  Kentaro Hara  <haraken@chromium.org>
3917
3918         [V8] Remove unused methods from V8Binding.h
3919         https://bugs.webkit.org/show_bug.cgi?id=93836
3920
3921         Reviewed by Adam Barth.
3922
3923         enableStringImplCache() and v8UndetectableString() are not used by anybody.
3924
3925         No tests. No change in behavior.
3926
3927         * bindings/v8/V8Binding.h:
3928
3929 2012-08-13  Kentaro Hara  <haraken@chromium.org>
3930
3931         [V8] Move hintForGCIfNecessary() from V8Proxy.h to V8GCController.h
3932         https://bugs.webkit.org/show_bug.cgi?id=93834
3933
3934         Reviewed by Adam Barth.
3935
3936         This patch moves hintForGCIfNecessary() from V8Proxy.h to V8GCController.h.
3937
3938         No tests. No change in behavior.
3939
3940         * bindings/v8/V8GCController.cpp:
3941         (WebCore::V8GCController::hintForGCIfNecessary):
3942         * bindings/v8/V8GCController.h:
3943         (V8GCController):
3944         * bindings/v8/V8Proxy.cpp:
3945         (WebCore::V8Proxy::clearForClose):
3946         (WebCore::V8Proxy::clearForNavigation):
3947         * bindings/v8/V8Proxy.h:
3948         (V8Proxy):
3949
3950 2012-08-13  Sheriff Bot  <webkit.review.bot@gmail.com>
3951
3952         Unreviewed, rolling out r124970.
3953         http://trac.webkit.org/changeset/124970
3954         https://bugs.webkit.org/show_bug.cgi?id=93495
3955
3956         Postponing the merge in a clearer context (Requested by
3957         Michelangelo on #webkit).
3958
3959         * css/CSSParser.cpp:
3960         (WebCore::CSSParser::parseValue):
3961         (WebCore::CSSParser::parseTransform):
3962         * css/CSSParser.h:
3963
3964 2012-08-12  Shawn Singh  <shawnsingh@chromium.org>
3965
3966         [chromium] renderSurface in incorrect space if owning layer has empty but non-zero bounds
3967         https://bugs.webkit.org/show_bug.cgi?id=93795
3968
3969         Reviewed by Adrienne Walker.
3970
3971         If a renderSurface is created by a layer that had zero
3972         area (empty) but non-zero bounds (either width or height was
3973         non-zero), then one translation transform was accidentally being
3974         skipped, causing the renderSurface drawTransform to be incorrect.
3975         The fix is simply to move that transform outside of the
3976         if-statement so it is not skipped.
3977
3978         Unit test added:
3979           CCLayerTreeHostCommonTest.verifyTransformsForDegenerateIntermediateLayer()
3980
3981         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
3982         (WebCore::calculateDrawTransformsInternal):
3983
3984 2012-08-13  Kentaro Hara  <haraken@chromium.org>
3985
3986         [V8] Remove [TreatReturnedNullAs=False]
3987         https://bugs.webkit.org/show_bug.cgi?id=93835
3988
3989         Reviewed by Adam Barth.
3990
3991         [TreatReturnedNullAs=False] is neither defined in the Web IDL spec
3992         nor used in any WebKit IDL file.
3993
3994         No tests. No change in behavior.
3995
3996         * WebCore.order:
3997         * bindings/js/JSDOMBinding.cpp:
3998         * bindings/js/JSDOMBinding.h:
3999         (WebCore):
4000         * bindings/scripts/CodeGeneratorJS.pm:
4001         (NativeToJSValue):
4002         * bindings/scripts/CodeGeneratorV8.pm:
4003         (NativeToJSValue):