Chromium Code Reviews| 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 |