OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. |
3 * Copyright (C) 2012 Google Inc. All rights reserved. | 3 * Copyright (C) 2012 Google Inc. All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * | 8 * |
9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
52 namespace WebCore { | 52 namespace WebCore { |
53 | 53 |
54 using namespace HTMLNames; | 54 using namespace HTMLNames; |
55 | 55 |
56 static const AtomicString& getMediaControlCurrentTimeDisplayElementShadowPseudoI d(); | 56 static const AtomicString& getMediaControlCurrentTimeDisplayElementShadowPseudoI d(); |
57 static const AtomicString& getMediaControlTimeRemainingDisplayElementShadowPseud oId(); | 57 static const AtomicString& getMediaControlTimeRemainingDisplayElementShadowPseud oId(); |
58 | 58 |
59 static const double fadeInDuration = 0.1; | 59 static const double fadeInDuration = 0.1; |
60 static const double fadeOutDuration = 0.3; | 60 static const double fadeOutDuration = 0.3; |
61 | 61 |
62 MediaControlPanelElement::MediaControlPanelElement(Document& document) | 62 MediaControlPanelElement::MediaControlPanelElement(HTMLMediaElement& mediaElemen t) |
63 : MediaControlDivElement(document, MediaControlsPanel) | 63 : MediaControlDivElement(mediaElement, MediaControlsPanel) |
64 , m_canBeDragged(false) | 64 , m_canBeDragged(false) |
65 , m_isBeingDragged(false) | 65 , m_isBeingDragged(false) |
66 , m_isDisplayed(false) | 66 , m_isDisplayed(false) |
67 , m_opaque(true) | 67 , m_opaque(true) |
68 , m_transitionTimer(this, &MediaControlPanelElement::transitionTimerFired) | 68 , m_transitionTimer(this, &MediaControlPanelElement::transitionTimerFired) |
69 { | 69 { |
70 } | 70 } |
71 | 71 |
72 PassRefPtr<MediaControlPanelElement> MediaControlPanelElement::create(Document& document) | 72 PassRefPtr<MediaControlPanelElement> MediaControlPanelElement::create(HTMLMediaE lement& mediaElement) |
73 { | 73 { |
74 return adoptRef(new MediaControlPanelElement(document)); | 74 return adoptRef(new MediaControlPanelElement(mediaElement)); |
75 } | 75 } |
76 | 76 |
77 const AtomicString& MediaControlPanelElement::shadowPseudoId() const | 77 const AtomicString& MediaControlPanelElement::shadowPseudoId() const |
78 { | 78 { |
79 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-panel", Atomi cString::ConstructFromLiteral)); | 79 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-panel", Atomi cString::ConstructFromLiteral)); |
80 return id; | 80 return id; |
81 } | 81 } |
82 | 82 |
83 void MediaControlPanelElement::startDrag(const LayoutPoint& eventLocation) | 83 void MediaControlPanelElement::startDrag(const LayoutPoint& eventLocation) |
84 { | 84 { |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
240 endDrag(); | 240 endDrag(); |
241 } | 241 } |
242 | 242 |
243 void MediaControlPanelElement::setIsDisplayed(bool isDisplayed) | 243 void MediaControlPanelElement::setIsDisplayed(bool isDisplayed) |
244 { | 244 { |
245 m_isDisplayed = isDisplayed; | 245 m_isDisplayed = isDisplayed; |
246 } | 246 } |
247 | 247 |
248 // ---------------------------- | 248 // ---------------------------- |
249 | 249 |
250 MediaControlPanelEnclosureElement::MediaControlPanelEnclosureElement(Document& d ocument) | 250 MediaControlPanelEnclosureElement::MediaControlPanelEnclosureElement(HTMLMediaEl ement& mediaElement) |
251 // Mapping onto same MediaControlElementType as panel element, since it has similar properties. | 251 // Mapping onto same MediaControlElementType as panel element, since it has similar properties. |
252 : MediaControlDivElement(document, MediaControlsPanel) | 252 : MediaControlDivElement(mediaElement, MediaControlsPanel) |
253 { | 253 { |
254 } | 254 } |
255 | 255 |
256 PassRefPtr<MediaControlPanelEnclosureElement> MediaControlPanelEnclosureElement: :create(Document& document) | 256 PassRefPtr<MediaControlPanelEnclosureElement> MediaControlPanelEnclosureElement: :create(HTMLMediaElement& mediaElement) |
257 { | 257 { |
258 return adoptRef(new MediaControlPanelEnclosureElement(document)); | 258 return adoptRef(new MediaControlPanelEnclosureElement(mediaElement)); |
259 } | 259 } |
260 | 260 |
261 const AtomicString& MediaControlPanelEnclosureElement::shadowPseudoId() const | 261 const AtomicString& MediaControlPanelEnclosureElement::shadowPseudoId() const |
262 { | 262 { |
263 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-enclosure", A tomicString::ConstructFromLiteral)); | 263 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-enclosure", A tomicString::ConstructFromLiteral)); |
264 return id; | 264 return id; |
265 } | 265 } |
266 | 266 |
267 // ---------------------------- | 267 // ---------------------------- |
268 | 268 |
269 MediaControlOverlayEnclosureElement::MediaControlOverlayEnclosureElement(Documen t& document) | 269 MediaControlOverlayEnclosureElement::MediaControlOverlayEnclosureElement(HTMLMed iaElement& mediaElement) |
270 // Mapping onto same MediaControlElementType as panel element, since it has similar properties. | 270 // Mapping onto same MediaControlElementType as panel element, since it has similar properties. |
271 : MediaControlDivElement(document, MediaControlsPanel) | 271 : MediaControlDivElement(mediaElement, MediaControlsPanel) |
272 { | 272 { |
273 } | 273 } |
274 | 274 |
275 PassRefPtr<MediaControlOverlayEnclosureElement> MediaControlOverlayEnclosureElem ent::create(Document& document) | 275 PassRefPtr<MediaControlOverlayEnclosureElement> MediaControlOverlayEnclosureElem ent::create(HTMLMediaElement& mediaElement) |
276 { | 276 { |
277 return adoptRef(new MediaControlOverlayEnclosureElement(document)); | 277 return adoptRef(new MediaControlOverlayEnclosureElement(mediaElement)); |
278 } | 278 } |
279 | 279 |
280 const AtomicString& MediaControlOverlayEnclosureElement::shadowPseudoId() const | 280 const AtomicString& MediaControlOverlayEnclosureElement::shadowPseudoId() const |
281 { | 281 { |
282 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-overlay-enclo sure", AtomicString::ConstructFromLiteral)); | 282 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-overlay-enclo sure", AtomicString::ConstructFromLiteral)); |
283 return id; | 283 return id; |
284 } | 284 } |
285 | 285 |
286 // ---------------------------- | 286 // ---------------------------- |
287 | 287 |
288 MediaControlMuteButtonElement::MediaControlMuteButtonElement(Document& document) | 288 MediaControlMuteButtonElement::MediaControlMuteButtonElement(HTMLMediaElement& m ediaElement) |
289 : MediaControlInputElement(document, MediaMuteButton) | 289 : MediaControlInputElement(mediaElement, MediaMuteButton) |
290 { | 290 { |
291 } | 291 } |
292 | 292 |
293 PassRefPtr<MediaControlMuteButtonElement> MediaControlMuteButtonElement::create( Document& document) | 293 PassRefPtr<MediaControlMuteButtonElement> MediaControlMuteButtonElement::create( HTMLMediaElement& mediaElement) |
294 { | 294 { |
295 RefPtr<MediaControlMuteButtonElement> button = adoptRef(new MediaControlMute ButtonElement(document)); | 295 RefPtr<MediaControlMuteButtonElement> button = adoptRef(new MediaControlMute ButtonElement(mediaElement)); |
296 button->ensureUserAgentShadowRoot(); | 296 button->ensureUserAgentShadowRoot(); |
297 button->setType("button"); | 297 button->setType("button"); |
298 return button.release(); | 298 return button.release(); |
299 } | 299 } |
300 | 300 |
301 void MediaControlMuteButtonElement::defaultEventHandler(Event* event) | 301 void MediaControlMuteButtonElement::defaultEventHandler(Event* event) |
302 { | 302 { |
303 if (event->type() == EventTypeNames::click) { | 303 if (event->type() == EventTypeNames::click) { |
304 mediaController()->setMuted(!mediaController()->muted()); | 304 mediaControllerInterface().setMuted(!mediaControllerInterface().muted()) ; |
305 event->setDefaultHandled(); | 305 event->setDefaultHandled(); |
306 } | 306 } |
307 | 307 |
308 HTMLInputElement::defaultEventHandler(event); | 308 HTMLInputElement::defaultEventHandler(event); |
309 } | 309 } |
310 | 310 |
311 void MediaControlMuteButtonElement::updateDisplayType() | 311 void MediaControlMuteButtonElement::updateDisplayType() |
312 { | 312 { |
313 setDisplayType(mediaController()->muted() ? MediaUnMuteButton : MediaMuteBut ton); | 313 setDisplayType(mediaControllerInterface().muted() ? MediaUnMuteButton : Medi aMuteButton); |
314 } | 314 } |
315 | 315 |
316 const AtomicString& MediaControlMuteButtonElement::shadowPseudoId() const | 316 const AtomicString& MediaControlMuteButtonElement::shadowPseudoId() const |
317 { | 317 { |
318 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-mute-button", AtomicString::ConstructFromLiteral)); | 318 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-mute-button", AtomicString::ConstructFromLiteral)); |
319 return id; | 319 return id; |
320 } | 320 } |
321 | 321 |
322 // ---------------------------- | 322 // ---------------------------- |
323 | 323 |
324 MediaControlPlayButtonElement::MediaControlPlayButtonElement(Document& document) | 324 MediaControlPlayButtonElement::MediaControlPlayButtonElement(HTMLMediaElement& m ediaElement) |
325 : MediaControlInputElement(document, MediaPlayButton) | 325 : MediaControlInputElement(mediaElement, MediaPlayButton) |
326 { | 326 { |
327 } | 327 } |
328 | 328 |
329 PassRefPtr<MediaControlPlayButtonElement> MediaControlPlayButtonElement::create( Document& document) | 329 PassRefPtr<MediaControlPlayButtonElement> MediaControlPlayButtonElement::create( HTMLMediaElement& mediaElement) |
330 { | 330 { |
331 RefPtr<MediaControlPlayButtonElement> button = adoptRef(new MediaControlPlay ButtonElement(document)); | 331 RefPtr<MediaControlPlayButtonElement> button = adoptRef(new MediaControlPlay ButtonElement(mediaElement)); |
332 button->ensureUserAgentShadowRoot(); | 332 button->ensureUserAgentShadowRoot(); |
333 button->setType("button"); | 333 button->setType("button"); |
334 return button.release(); | 334 return button.release(); |
335 } | 335 } |
336 | 336 |
337 void MediaControlPlayButtonElement::defaultEventHandler(Event* event) | 337 void MediaControlPlayButtonElement::defaultEventHandler(Event* event) |
338 { | 338 { |
339 if (event->type() == EventTypeNames::click) { | 339 if (event->type() == EventTypeNames::click) { |
340 if (mediaController()->canPlay()) | 340 if (mediaControllerInterface().canPlay()) |
341 mediaController()->play(); | 341 mediaControllerInterface().play(); |
342 else | 342 else |
343 mediaController()->pause(); | 343 mediaControllerInterface().pause(); |
344 updateDisplayType(); | 344 updateDisplayType(); |
345 event->setDefaultHandled(); | 345 event->setDefaultHandled(); |
346 } | 346 } |
347 HTMLInputElement::defaultEventHandler(event); | 347 HTMLInputElement::defaultEventHandler(event); |
348 } | 348 } |
349 | 349 |
350 void MediaControlPlayButtonElement::updateDisplayType() | 350 void MediaControlPlayButtonElement::updateDisplayType() |
351 { | 351 { |
352 setDisplayType(mediaController()->canPlay() ? MediaPlayButton : MediaPauseBu tton); | 352 setDisplayType(mediaControllerInterface().canPlay() ? MediaPlayButton : Medi aPauseButton); |
353 } | 353 } |
354 | 354 |
355 const AtomicString& MediaControlPlayButtonElement::shadowPseudoId() const | 355 const AtomicString& MediaControlPlayButtonElement::shadowPseudoId() const |
356 { | 356 { |
357 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-play-button", AtomicString::ConstructFromLiteral)); | 357 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-play-button", AtomicString::ConstructFromLiteral)); |
358 return id; | 358 return id; |
359 } | 359 } |
360 | 360 |
361 // ---------------------------- | 361 // ---------------------------- |
362 | 362 |
363 MediaControlOverlayPlayButtonElement::MediaControlOverlayPlayButtonElement(Docum ent& document) | 363 MediaControlOverlayPlayButtonElement::MediaControlOverlayPlayButtonElement(HTMLM ediaElement& mediaElement) |
364 : MediaControlInputElement(document, MediaOverlayPlayButton) | 364 : MediaControlInputElement(mediaElement, MediaOverlayPlayButton) |
365 { | 365 { |
366 } | 366 } |
367 | 367 |
368 PassRefPtr<MediaControlOverlayPlayButtonElement> MediaControlOverlayPlayButtonEl ement::create(Document& document) | 368 PassRefPtr<MediaControlOverlayPlayButtonElement> MediaControlOverlayPlayButtonEl ement::create(HTMLMediaElement& mediaElement) |
369 { | 369 { |
370 RefPtr<MediaControlOverlayPlayButtonElement> button = adoptRef(new MediaCont rolOverlayPlayButtonElement(document)); | 370 RefPtr<MediaControlOverlayPlayButtonElement> button = adoptRef(new MediaCont rolOverlayPlayButtonElement(mediaElement)); |
371 button->ensureUserAgentShadowRoot(); | 371 button->ensureUserAgentShadowRoot(); |
372 button->setType("button"); | 372 button->setType("button"); |
373 return button.release(); | 373 return button.release(); |
374 } | 374 } |
375 | 375 |
376 void MediaControlOverlayPlayButtonElement::defaultEventHandler(Event* event) | 376 void MediaControlOverlayPlayButtonElement::defaultEventHandler(Event* event) |
377 { | 377 { |
378 if (event->type() == EventTypeNames::click && mediaController()->canPlay()) { | 378 if (event->type() == EventTypeNames::click && mediaControllerInterface().can Play()) { |
379 mediaController()->play(); | 379 mediaControllerInterface().play(); |
380 updateDisplayType(); | 380 updateDisplayType(); |
381 event->setDefaultHandled(); | 381 event->setDefaultHandled(); |
382 } | 382 } |
383 HTMLInputElement::defaultEventHandler(event); | 383 HTMLInputElement::defaultEventHandler(event); |
384 } | 384 } |
385 | 385 |
386 void MediaControlOverlayPlayButtonElement::updateDisplayType() | 386 void MediaControlOverlayPlayButtonElement::updateDisplayType() |
387 { | 387 { |
388 if (mediaController()->canPlay()) { | 388 if (mediaControllerInterface().canPlay()) { |
389 show(); | 389 show(); |
390 } else | 390 } else |
391 hide(); | 391 hide(); |
392 } | 392 } |
393 | 393 |
394 const AtomicString& MediaControlOverlayPlayButtonElement::shadowPseudoId() const | 394 const AtomicString& MediaControlOverlayPlayButtonElement::shadowPseudoId() const |
395 { | 395 { |
396 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-overlay-play- button", AtomicString::ConstructFromLiteral)); | 396 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-overlay-play- button", AtomicString::ConstructFromLiteral)); |
397 return id; | 397 return id; |
398 } | 398 } |
399 | 399 |
400 | 400 |
401 // ---------------------------- | 401 // ---------------------------- |
402 | 402 |
403 MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsB uttonElement(Document& document) | 403 MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsB uttonElement(HTMLMediaElement& mediaElement) |
404 : MediaControlInputElement(document, MediaShowClosedCaptionsButton) | 404 : MediaControlInputElement(mediaElement, MediaShowClosedCaptionsButton) |
405 { | 405 { |
406 } | 406 } |
407 | 407 |
408 PassRefPtr<MediaControlToggleClosedCaptionsButtonElement> MediaControlToggleClos edCaptionsButtonElement::create(Document& document) | 408 PassRefPtr<MediaControlToggleClosedCaptionsButtonElement> MediaControlToggleClos edCaptionsButtonElement::create(HTMLMediaElement& mediaElement) |
409 { | 409 { |
410 RefPtr<MediaControlToggleClosedCaptionsButtonElement> button = adoptRef(new MediaControlToggleClosedCaptionsButtonElement(document)); | 410 RefPtr<MediaControlToggleClosedCaptionsButtonElement> button = adoptRef(new MediaControlToggleClosedCaptionsButtonElement(mediaElement)); |
411 button->ensureUserAgentShadowRoot(); | 411 button->ensureUserAgentShadowRoot(); |
412 button->setType("button"); | 412 button->setType("button"); |
413 button->hide(); | 413 button->hide(); |
414 return button.release(); | 414 return button.release(); |
415 } | 415 } |
416 | 416 |
417 void MediaControlToggleClosedCaptionsButtonElement::updateDisplayType() | 417 void MediaControlToggleClosedCaptionsButtonElement::updateDisplayType() |
418 { | 418 { |
419 bool captionsVisible = mediaController()->closedCaptionsVisible(); | 419 bool captionsVisible = mediaControllerInterface().closedCaptionsVisible(); |
420 setDisplayType(captionsVisible ? MediaHideClosedCaptionsButton : MediaShowCl osedCaptionsButton); | 420 setDisplayType(captionsVisible ? MediaHideClosedCaptionsButton : MediaShowCl osedCaptionsButton); |
421 setChecked(captionsVisible); | 421 setChecked(captionsVisible); |
422 } | 422 } |
423 | 423 |
424 void MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler(Event* e vent) | 424 void MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler(Event* e vent) |
425 { | 425 { |
426 if (event->type() == EventTypeNames::click) { | 426 if (event->type() == EventTypeNames::click) { |
427 mediaController()->setClosedCaptionsVisible(!mediaController()->closedCa ptionsVisible()); | 427 mediaControllerInterface().setClosedCaptionsVisible(!mediaControllerInte rface().closedCaptionsVisible()); |
428 setChecked(mediaController()->closedCaptionsVisible()); | 428 setChecked(mediaControllerInterface().closedCaptionsVisible()); |
429 updateDisplayType(); | 429 updateDisplayType(); |
430 event->setDefaultHandled(); | 430 event->setDefaultHandled(); |
431 } | 431 } |
432 | 432 |
433 HTMLInputElement::defaultEventHandler(event); | 433 HTMLInputElement::defaultEventHandler(event); |
434 } | 434 } |
435 | 435 |
436 const AtomicString& MediaControlToggleClosedCaptionsButtonElement::shadowPseudoI d() const | 436 const AtomicString& MediaControlToggleClosedCaptionsButtonElement::shadowPseudoI d() const |
437 { | 437 { |
438 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-toggle-closed -captions-button", AtomicString::ConstructFromLiteral)); | 438 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-toggle-closed -captions-button", AtomicString::ConstructFromLiteral)); |
439 return id; | 439 return id; |
440 } | 440 } |
441 | 441 |
442 // ---------------------------- | 442 // ---------------------------- |
443 | 443 |
444 MediaControlTimelineElement::MediaControlTimelineElement(Document& document, Med iaControls* controls) | 444 MediaControlTimelineElement::MediaControlTimelineElement(HTMLMediaElement& media Element, MediaControls* controls) |
445 : MediaControlInputElement(document, MediaSlider) | 445 : MediaControlInputElement(mediaElement, MediaSlider) |
446 , m_controls(controls) | 446 , m_controls(controls) |
philipj_slow
2014/03/11 17:38:10
This can be removed now, but I've done it in a sep
| |
447 { | 447 { |
448 } | 448 } |
449 | 449 |
450 PassRefPtr<MediaControlTimelineElement> MediaControlTimelineElement::create(Docu ment& document, MediaControls* controls) | 450 PassRefPtr<MediaControlTimelineElement> MediaControlTimelineElement::create(HTML MediaElement& mediaElement, MediaControls* controls) |
451 { | 451 { |
452 ASSERT(controls); | 452 ASSERT(controls); |
453 | 453 |
454 RefPtr<MediaControlTimelineElement> timeline = adoptRef(new MediaControlTime lineElement(document, controls)); | 454 RefPtr<MediaControlTimelineElement> timeline = adoptRef(new MediaControlTime lineElement(mediaElement, controls)); |
455 timeline->ensureUserAgentShadowRoot(); | 455 timeline->ensureUserAgentShadowRoot(); |
456 timeline->setType("range"); | 456 timeline->setType("range"); |
457 timeline->setAttribute(stepAttr, "any"); | 457 timeline->setAttribute(stepAttr, "any"); |
458 return timeline.release(); | 458 return timeline.release(); |
459 } | 459 } |
460 | 460 |
461 void MediaControlTimelineElement::defaultEventHandler(Event* event) | 461 void MediaControlTimelineElement::defaultEventHandler(Event* event) |
462 { | 462 { |
463 // Left button is 0. Rejects mouse events not from left button. | 463 // Left button is 0. Rejects mouse events not from left button. |
464 if (event->isMouseEvent() && toMouseEvent(event)->button()) | 464 if (event->isMouseEvent() && toMouseEvent(event)->button()) |
465 return; | 465 return; |
466 | 466 |
467 if (!inDocument() || !document().isActive()) | 467 if (!inDocument() || !document().isActive()) |
468 return; | 468 return; |
469 | 469 |
470 if (event->type() == EventTypeNames::mousedown) | 470 if (event->type() == EventTypeNames::mousedown) |
471 mediaController()->beginScrubbing(); | 471 mediaControllerInterface().beginScrubbing(); |
472 | 472 |
473 if (event->type() == EventTypeNames::mouseup) | 473 if (event->type() == EventTypeNames::mouseup) |
474 mediaController()->endScrubbing(); | 474 mediaControllerInterface().endScrubbing(); |
475 | 475 |
476 MediaControlInputElement::defaultEventHandler(event); | 476 MediaControlInputElement::defaultEventHandler(event); |
477 | 477 |
478 if (event->type() == EventTypeNames::mouseover || event->type() == EventType Names::mouseout || event->type() == EventTypeNames::mousemove) | 478 if (event->type() == EventTypeNames::mouseover || event->type() == EventType Names::mouseout || event->type() == EventTypeNames::mousemove) |
479 return; | 479 return; |
480 | 480 |
481 double time = value().toDouble(); | 481 double time = value().toDouble(); |
482 if (event->type() == EventTypeNames::input && time != mediaController()->cur rentTime()) | 482 if (event->type() == EventTypeNames::input && time != mediaControllerInterfa ce().currentTime()) |
483 mediaController()->setCurrentTime(time, IGNORE_EXCEPTION); | 483 mediaControllerInterface().setCurrentTime(time, IGNORE_EXCEPTION); |
484 | 484 |
485 RenderSlider* slider = toRenderSlider(renderer()); | 485 RenderSlider* slider = toRenderSlider(renderer()); |
486 if (slider && slider->inDragMode()) | 486 if (slider && slider->inDragMode()) |
487 m_controls->updateCurrentTimeDisplay(); | 487 m_controls->updateCurrentTimeDisplay(); |
488 } | 488 } |
489 | 489 |
490 bool MediaControlTimelineElement::willRespondToMouseClickEvents() | 490 bool MediaControlTimelineElement::willRespondToMouseClickEvents() |
491 { | 491 { |
492 return inDocument() && document().isActive(); | 492 return inDocument() && document().isActive(); |
493 } | 493 } |
(...skipping 10 matching lines...) Expand all Loading... | |
504 | 504 |
505 | 505 |
506 const AtomicString& MediaControlTimelineElement::shadowPseudoId() const | 506 const AtomicString& MediaControlTimelineElement::shadowPseudoId() const |
507 { | 507 { |
508 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-timeline", At omicString::ConstructFromLiteral)); | 508 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-timeline", At omicString::ConstructFromLiteral)); |
509 return id; | 509 return id; |
510 } | 510 } |
511 | 511 |
512 // ---------------------------- | 512 // ---------------------------- |
513 | 513 |
514 MediaControlVolumeSliderElement::MediaControlVolumeSliderElement(Document& docum ent) | 514 MediaControlVolumeSliderElement::MediaControlVolumeSliderElement(HTMLMediaElemen t& mediaElement) |
515 : MediaControlInputElement(document, MediaVolumeSlider) | 515 : MediaControlInputElement(mediaElement, MediaVolumeSlider) |
516 { | 516 { |
517 } | 517 } |
518 | 518 |
519 PassRefPtr<MediaControlVolumeSliderElement> MediaControlVolumeSliderElement::cre ate(Document& document) | 519 PassRefPtr<MediaControlVolumeSliderElement> MediaControlVolumeSliderElement::cre ate(HTMLMediaElement& mediaElement) |
520 { | 520 { |
521 RefPtr<MediaControlVolumeSliderElement> slider = adoptRef(new MediaControlVo lumeSliderElement(document)); | 521 RefPtr<MediaControlVolumeSliderElement> slider = adoptRef(new MediaControlVo lumeSliderElement(mediaElement)); |
522 slider->ensureUserAgentShadowRoot(); | 522 slider->ensureUserAgentShadowRoot(); |
523 slider->setType("range"); | 523 slider->setType("range"); |
524 slider->setAttribute(stepAttr, "any"); | 524 slider->setAttribute(stepAttr, "any"); |
525 slider->setAttribute(maxAttr, "1"); | 525 slider->setAttribute(maxAttr, "1"); |
526 return slider.release(); | 526 return slider.release(); |
527 } | 527 } |
528 | 528 |
529 void MediaControlVolumeSliderElement::defaultEventHandler(Event* event) | 529 void MediaControlVolumeSliderElement::defaultEventHandler(Event* event) |
530 { | 530 { |
531 if (event->isMouseEvent() && toMouseEvent(event)->button() != LeftButton) | 531 if (event->isMouseEvent() && toMouseEvent(event)->button() != LeftButton) |
532 return; | 532 return; |
533 | 533 |
534 if (!inDocument() || !document().isActive()) | 534 if (!inDocument() || !document().isActive()) |
535 return; | 535 return; |
536 | 536 |
537 MediaControlInputElement::defaultEventHandler(event); | 537 MediaControlInputElement::defaultEventHandler(event); |
538 | 538 |
539 if (event->type() == EventTypeNames::mouseover || event->type() == EventType Names::mouseout || event->type() == EventTypeNames::mousemove) | 539 if (event->type() == EventTypeNames::mouseover || event->type() == EventType Names::mouseout || event->type() == EventTypeNames::mousemove) |
540 return; | 540 return; |
541 | 541 |
542 double volume = value().toDouble(); | 542 double volume = value().toDouble(); |
543 mediaController()->setVolume(volume, ASSERT_NO_EXCEPTION); | 543 mediaControllerInterface().setVolume(volume, ASSERT_NO_EXCEPTION); |
544 mediaController()->setMuted(false); | 544 mediaControllerInterface().setMuted(false); |
545 } | 545 } |
546 | 546 |
547 bool MediaControlVolumeSliderElement::willRespondToMouseMoveEvents() | 547 bool MediaControlVolumeSliderElement::willRespondToMouseMoveEvents() |
548 { | 548 { |
549 if (!inDocument() || !document().isActive()) | 549 if (!inDocument() || !document().isActive()) |
550 return false; | 550 return false; |
551 | 551 |
552 return MediaControlInputElement::willRespondToMouseMoveEvents(); | 552 return MediaControlInputElement::willRespondToMouseMoveEvents(); |
553 } | 553 } |
554 | 554 |
(...skipping 12 matching lines...) Expand all Loading... | |
567 } | 567 } |
568 | 568 |
569 const AtomicString& MediaControlVolumeSliderElement::shadowPseudoId() const | 569 const AtomicString& MediaControlVolumeSliderElement::shadowPseudoId() const |
570 { | 570 { |
571 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-volume-slider ", AtomicString::ConstructFromLiteral)); | 571 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-volume-slider ", AtomicString::ConstructFromLiteral)); |
572 return id; | 572 return id; |
573 } | 573 } |
574 | 574 |
575 // ---------------------------- | 575 // ---------------------------- |
576 | 576 |
577 MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement(Documen t& document) | 577 MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement(HTMLMed iaElement& mediaElement) |
578 : MediaControlInputElement(document, MediaEnterFullscreenButton) | 578 : MediaControlInputElement(mediaElement, MediaEnterFullscreenButton) |
579 { | 579 { |
580 } | 580 } |
581 | 581 |
582 PassRefPtr<MediaControlFullscreenButtonElement> MediaControlFullscreenButtonElem ent::create(Document& document) | 582 PassRefPtr<MediaControlFullscreenButtonElement> MediaControlFullscreenButtonElem ent::create(HTMLMediaElement& mediaElement) |
583 { | 583 { |
584 RefPtr<MediaControlFullscreenButtonElement> button = adoptRef(new MediaContr olFullscreenButtonElement(document)); | 584 RefPtr<MediaControlFullscreenButtonElement> button = adoptRef(new MediaContr olFullscreenButtonElement(mediaElement)); |
585 button->ensureUserAgentShadowRoot(); | 585 button->ensureUserAgentShadowRoot(); |
586 button->setType("button"); | 586 button->setType("button"); |
587 button->hide(); | 587 button->hide(); |
588 return button.release(); | 588 return button.release(); |
589 } | 589 } |
590 | 590 |
591 void MediaControlFullscreenButtonElement::defaultEventHandler(Event* event) | 591 void MediaControlFullscreenButtonElement::defaultEventHandler(Event* event) |
592 { | 592 { |
593 if (event->type() == EventTypeNames::click) { | 593 if (event->type() == EventTypeNames::click) { |
594 // Only use the new full screen API if the fullScreenEnabled setting has | 594 // Only use the new full screen API if the fullScreenEnabled setting has |
595 // been explicitly enabled. Otherwise, use the old fullscreen API. This | 595 // been explicitly enabled. Otherwise, use the old fullscreen API. This |
596 // allows apps which embed a WebView to retain the existing full screen | 596 // allows apps which embed a WebView to retain the existing full screen |
597 // video implementation without requiring them to implement their own fu ll | 597 // video implementation without requiring them to implement their own fu ll |
598 // screen behavior. | 598 // screen behavior. |
599 if (document().settings() && document().settings()->fullScreenEnabled()) { | 599 if (document().settings() && document().settings()->fullScreenEnabled()) { |
600 if (FullscreenElementStack::isActiveFullScreenElement(toParentMediaE lement(this))) | 600 if (FullscreenElementStack::isActiveFullScreenElement(toParentMediaE lement(this))) |
601 FullscreenElementStack::from(document()).webkitCancelFullScreen( ); | 601 FullscreenElementStack::from(document()).webkitCancelFullScreen( ); |
602 else | 602 else |
603 FullscreenElementStack::from(document()).requestFullScreenForEle ment(toParentMediaElement(this), 0, FullscreenElementStack::ExemptIFrameAllowFul lScreenRequirement); | 603 FullscreenElementStack::from(document()).requestFullScreenForEle ment(toParentMediaElement(this), 0, FullscreenElementStack::ExemptIFrameAllowFul lScreenRequirement); |
604 } else | 604 } else { |
605 mediaController()->enterFullscreen(); | 605 mediaControllerInterface().enterFullscreen(); |
606 } | |
606 event->setDefaultHandled(); | 607 event->setDefaultHandled(); |
607 } | 608 } |
608 HTMLInputElement::defaultEventHandler(event); | 609 HTMLInputElement::defaultEventHandler(event); |
609 } | 610 } |
610 | 611 |
611 const AtomicString& MediaControlFullscreenButtonElement::shadowPseudoId() const | 612 const AtomicString& MediaControlFullscreenButtonElement::shadowPseudoId() const |
612 { | 613 { |
613 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-fullscreen-bu tton", AtomicString::ConstructFromLiteral)); | 614 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-fullscreen-bu tton", AtomicString::ConstructFromLiteral)); |
614 return id; | 615 return id; |
615 } | 616 } |
616 | 617 |
617 void MediaControlFullscreenButtonElement::setIsFullscreen(bool isFullscreen) | 618 void MediaControlFullscreenButtonElement::setIsFullscreen(bool isFullscreen) |
618 { | 619 { |
619 setDisplayType(isFullscreen ? MediaExitFullscreenButton : MediaEnterFullscre enButton); | 620 setDisplayType(isFullscreen ? MediaExitFullscreenButton : MediaEnterFullscre enButton); |
620 } | 621 } |
621 | 622 |
622 // ---------------------------- | 623 // ---------------------------- |
623 | 624 |
624 MediaControlTimeRemainingDisplayElement::MediaControlTimeRemainingDisplayElement (Document& document) | 625 MediaControlTimeRemainingDisplayElement::MediaControlTimeRemainingDisplayElement (HTMLMediaElement& mediaElement) |
625 : MediaControlTimeDisplayElement(document, MediaTimeRemainingDisplay) | 626 : MediaControlTimeDisplayElement(mediaElement, MediaTimeRemainingDisplay) |
626 { | 627 { |
627 } | 628 } |
628 | 629 |
629 PassRefPtr<MediaControlTimeRemainingDisplayElement> MediaControlTimeRemainingDis playElement::create(Document& document) | 630 PassRefPtr<MediaControlTimeRemainingDisplayElement> MediaControlTimeRemainingDis playElement::create(HTMLMediaElement& mediaElement) |
630 { | 631 { |
631 return adoptRef(new MediaControlTimeRemainingDisplayElement(document)); | 632 return adoptRef(new MediaControlTimeRemainingDisplayElement(mediaElement)); |
632 } | 633 } |
633 | 634 |
634 static const AtomicString& getMediaControlTimeRemainingDisplayElementShadowPseud oId() | 635 static const AtomicString& getMediaControlTimeRemainingDisplayElementShadowPseud oId() |
635 { | 636 { |
636 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-time-remainin g-display", AtomicString::ConstructFromLiteral)); | 637 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-time-remainin g-display", AtomicString::ConstructFromLiteral)); |
637 return id; | 638 return id; |
638 } | 639 } |
639 | 640 |
640 const AtomicString& MediaControlTimeRemainingDisplayElement::shadowPseudoId() co nst | 641 const AtomicString& MediaControlTimeRemainingDisplayElement::shadowPseudoId() co nst |
641 { | 642 { |
642 return getMediaControlTimeRemainingDisplayElementShadowPseudoId(); | 643 return getMediaControlTimeRemainingDisplayElementShadowPseudoId(); |
643 } | 644 } |
644 | 645 |
645 // ---------------------------- | 646 // ---------------------------- |
646 | 647 |
647 MediaControlCurrentTimeDisplayElement::MediaControlCurrentTimeDisplayElement(Doc ument& document) | 648 MediaControlCurrentTimeDisplayElement::MediaControlCurrentTimeDisplayElement(HTM LMediaElement& mediaElement) |
648 : MediaControlTimeDisplayElement(document, MediaCurrentTimeDisplay) | 649 : MediaControlTimeDisplayElement(mediaElement, MediaCurrentTimeDisplay) |
649 { | 650 { |
650 } | 651 } |
651 | 652 |
652 PassRefPtr<MediaControlCurrentTimeDisplayElement> MediaControlCurrentTimeDisplay Element::create(Document& document) | 653 PassRefPtr<MediaControlCurrentTimeDisplayElement> MediaControlCurrentTimeDisplay Element::create(HTMLMediaElement& mediaElement) |
653 { | 654 { |
654 return adoptRef(new MediaControlCurrentTimeDisplayElement(document)); | 655 return adoptRef(new MediaControlCurrentTimeDisplayElement(mediaElement)); |
655 } | 656 } |
656 | 657 |
657 static const AtomicString& getMediaControlCurrentTimeDisplayElementShadowPseudoI d() | 658 static const AtomicString& getMediaControlCurrentTimeDisplayElementShadowPseudoI d() |
658 { | 659 { |
659 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-current-time- display", AtomicString::ConstructFromLiteral)); | 660 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-current-time- display", AtomicString::ConstructFromLiteral)); |
660 return id; | 661 return id; |
661 } | 662 } |
662 | 663 |
663 const AtomicString& MediaControlCurrentTimeDisplayElement::shadowPseudoId() cons t | 664 const AtomicString& MediaControlCurrentTimeDisplayElement::shadowPseudoId() cons t |
664 { | 665 { |
665 return getMediaControlCurrentTimeDisplayElementShadowPseudoId(); | 666 return getMediaControlCurrentTimeDisplayElementShadowPseudoId(); |
666 } | 667 } |
667 | 668 |
668 // ---------------------------- | 669 // ---------------------------- |
669 | 670 |
670 MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement(Doc ument& document) | 671 MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement(HTM LMediaElement& mediaElement) |
671 : MediaControlDivElement(document, MediaTextTrackDisplayContainer) | 672 : MediaControlDivElement(mediaElement, MediaTextTrackDisplayContainer) |
672 , m_fontSize(0) | 673 , m_fontSize(0) |
673 { | 674 { |
674 } | 675 } |
675 | 676 |
676 PassRefPtr<MediaControlTextTrackContainerElement> MediaControlTextTrackContainer Element::create(Document& document) | 677 PassRefPtr<MediaControlTextTrackContainerElement> MediaControlTextTrackContainer Element::create(HTMLMediaElement& mediaElement) |
677 { | 678 { |
678 RefPtr<MediaControlTextTrackContainerElement> element = adoptRef(new MediaCo ntrolTextTrackContainerElement(document)); | 679 RefPtr<MediaControlTextTrackContainerElement> element = adoptRef(new MediaCo ntrolTextTrackContainerElement(mediaElement)); |
679 element->hide(); | 680 element->hide(); |
680 return element.release(); | 681 return element.release(); |
681 } | 682 } |
682 | 683 |
683 RenderObject* MediaControlTextTrackContainerElement::createRenderer(RenderStyle* ) | 684 RenderObject* MediaControlTextTrackContainerElement::createRenderer(RenderStyle* ) |
684 { | 685 { |
685 return new RenderTextTrackContainerElement(this); | 686 return new RenderTextTrackContainerElement(this); |
686 } | 687 } |
687 | 688 |
688 const AtomicString& MediaControlTextTrackContainerElement::textTrackContainerEle mentShadowPseudoId() | 689 const AtomicString& MediaControlTextTrackContainerElement::textTrackContainerEle mentShadowPseudoId() |
689 { | 690 { |
690 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-text-track-container", AtomicString::ConstructFromLiteral)); | 691 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-text-track-container", AtomicString::ConstructFromLiteral)); |
691 return id; | 692 return id; |
692 } | 693 } |
693 | 694 |
694 const AtomicString& MediaControlTextTrackContainerElement::shadowPseudoId() cons t | 695 const AtomicString& MediaControlTextTrackContainerElement::shadowPseudoId() cons t |
695 { | 696 { |
696 return textTrackContainerElementShadowPseudoId(); | 697 return textTrackContainerElementShadowPseudoId(); |
697 } | 698 } |
698 | 699 |
699 void MediaControlTextTrackContainerElement::updateDisplay() | 700 void MediaControlTextTrackContainerElement::updateDisplay() |
700 { | 701 { |
701 if (!mediaController()->closedCaptionsVisible()) { | 702 if (!mediaControllerInterface().closedCaptionsVisible()) { |
702 removeChildren(); | 703 removeChildren(); |
703 return; | 704 return; |
704 } | 705 } |
705 | 706 |
706 HTMLMediaElement* mediaElement = toParentMediaElement(this); | 707 HTMLMediaElement* mediaElement = toParentMediaElement(this); |
707 // 1. If the media element is an audio element, or is another playback | 708 // 1. If the media element is an audio element, or is another playback |
708 // mechanism with no rendering area, abort these steps. There is nothing to | 709 // mechanism with no rendering area, abort these steps. There is nothing to |
709 // render. | 710 // render. |
710 if (!mediaElement || !mediaElement->isVideo()) | 711 if (!mediaElement || !mediaElement->isVideo()) |
711 return; | 712 return; |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
789 float fontSize = smallestDimension * 0.05f; | 790 float fontSize = smallestDimension * 0.05f; |
790 if (fontSize != m_fontSize) { | 791 if (fontSize != m_fontSize) { |
791 m_fontSize = fontSize; | 792 m_fontSize = fontSize; |
792 setInlineStyleProperty(CSSPropertyFontSize, fontSize, CSSPrimitiveValue: :CSS_PX); | 793 setInlineStyleProperty(CSSPropertyFontSize, fontSize, CSSPrimitiveValue: :CSS_PX); |
793 } | 794 } |
794 } | 795 } |
795 | 796 |
796 // ---------------------------- | 797 // ---------------------------- |
797 | 798 |
798 } // namespace WebCore | 799 } // namespace WebCore |
OLD | NEW |